mobilistache/embed_group.html

82 lines
3.1 KiB
HTML
Raw Normal View History

2025-07-09 10:31:47 +02:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Mobilistache, Mobilizon with a mustache</title>
<link rel="stylesheet" type="text/css" href="res/css/base.css">
<link rel="stylesheet" type="text/css" href="res/css/layout.css">
<link rel="stylesheet" type="text/css" href="res/css/module_base.css">
<link rel="stylesheet" type="text/css" href="res/css/module_button.css">
<link rel="stylesheet" type="text/css" href="res/css/module_date.css">
<link rel="stylesheet" type="text/css" href="res/css/module_event.css">
<link rel="stylesheet" type="text/css" href="res/css/module_group.css">
<link rel="stylesheet" type="text/css" href="res/css/module_tag.css">
<script type="text/javascript" src="src/context.js"></script>
<script type="text/javascript" src="src/global.js"></script>
<script type="text/javascript" src="src/route.js"></script>
<script type="text/javascript" src="src/model/event.js"></script>
<script type="text/javascript" src="src/model/group.js"></script>
<script type="text/javascript" src="src/request/req_group.js"></script>
<script type="text/javascript" src="src/widgets/button_view.js"></script>
<script type="text/javascript" src="src/widgets/date_view.js"></script>
<script type="text/javascript" src="src/widgets/event_view.js"></script>
<script type="text/javascript" src="src/widgets/tag_tpl.js"></script>
<script type="text/javascript">
class PageGroupEmbed extends Page {
boot() {
var query = splitHandle(GET("handle"));
if (!query) {
console.error("Error reading handle from " + location.href);
document.getElementById("content").innerHTML = "<p>Incorrect handle \"" + GET("handle") + "\", check the \"handle\" parameter in your url.</p>";
return;
}
var host = query.host;
var name = query.name;
var customCss = GET("css");
if (customCss) {
var css = document.createElement("link");
css.setAttribute("rel", "stylesheet");
css.setAttribute("type", "text/css");
css.setAttribute("href", customCss);
document.getElementsByTagName("head")[0].appendChild(css);
}
if (host && name) {
requestGroup(host, name, function(request, status, result) {
if (status === 200) {
setTitle(result.name);
var content = new WidgetGroupEmbed(result);
content.showIn(document.getElementById("content"));
}
});
}
}
}
const PAGE_GROUP_EMBED = new PageGroupEmbed();
class WidgetGroupEmbed extends Widget {
constructor(group) {
super();
this.group = group;
this.root = document.createElement("section");
this.root.classList.add("group-detail", "l-section");
var template = `<ul class="l-nobullet l-centered"></ul>`;
this.root.innerHTML = template;
var events = [];
var eventList = this.root.getElementsByTagName("ul")[0];
this.group.getEvents().forEach(evt => {
var evtItem = new WidgetEventListItem(evt, 2, {linkToInstance: true});
evtItem.showIn(eventList);
});
}
}
function embedRoute() {
CTX.init();
CTX.setPage(PAGE_GROUP_EMBED);
}
document.addEventListener('DOMContentLoaded', embedRoute);
</script>
</head>
<body id="content" class="l-centered"></body>
</html>