* make who is online view via templates
authorWilfried Göesgens <willi@citadel.org>
Sun, 31 Aug 2008 13:13:33 +0000 (13:13 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sun, 31 Aug 2008 13:13:33 +0000 (13:13 +0000)
webcit/iconbar.c
webcit/roomops.c
webcit/static/t/important_msg.html [new file with mode: 0644]
webcit/static/t/who.html [new file with mode: 0644]
webcit/static/t/wholiststatic.html
webcit/webcit.c

index 67216a0544f3e24179b72fe27987483a75b8c0b1..6276030e2e79fc2db8864d3e94f60b9c864caec3 100644 (file)
@@ -262,7 +262,7 @@ void do_iconbar(void) {
 /** Users icon */
        if (IconbarIsEnabled("ib_users", 1)) {
                wprintf("<li>"
-                       "<a href=\"who\" title=\"%s\" "
+                       "<a href=\"do_template?template=who\" title=\"%s\" "
                        ">",
                        _("See who is online right now")
                );
@@ -803,6 +803,19 @@ void commit_iconbar(void) {
 }
 
 
+void tmplput_iconbar(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context)
+{
+       struct wcsession *WCC = WC;
+       
+       if ((WCC != NULL) && (WCC->logged_in)) {
+               wprintf("<div id=\"iconbar\">");
+               do_selected_iconbar();
+               /** check for instant messages (these display in a new window) */
+               page_popup();
+               wprintf("</div>");
+       }
+}
+
 void 
 InitModule_ICONBAR
 (void)
@@ -811,6 +824,8 @@ InitModule_ICONBAR
        WebcitAddUrlHandler(HKEY("iconbar_ajax_rooms"), do_iconbar_roomlist, AJAX);
        WebcitAddUrlHandler(HKEY("display_customize_iconbar"), display_customize_iconbar, 0);
        WebcitAddUrlHandler(HKEY("commit_iconbar"), commit_iconbar, 0);
+       RegisterNamespace("ICONBAR", 0, 0, tmplput_iconbar);
+
 }
 
 
index 400f7f64e01c0d9d2569207aea0642c70e895deb..ec43959a851936db870f4053be666ddde95f5cdf 100644 (file)
@@ -3660,6 +3660,13 @@ void dotgoto(void) {
        smart_goto(bstr("room"));
 }
 
+void tmplput_roombanner(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context)
+{
+       wprintf("<div id=\"banner\">\n");
+       embed_room_banner(NULL, navbar_default);
+       wprintf("</div>\n");
+}
+
 
 void 
 InitModule_ROOMOPS
@@ -3689,6 +3696,8 @@ InitModule_ROOMOPS
        WebcitAddUrlHandler(HKEY("set_room_policy"), set_room_policy, 0);
        WebcitAddUrlHandler(HKEY("set_floordiv_expanded"), set_floordiv_expanded, NEED_URL|AJAX);
        WebcitAddUrlHandler(HKEY("changeview"), change_view, 0);
+       RegisterNamespace("ROOMBANNER", 0, 0, tmplput_roombanner);
+
 }
 
 /*@}*/
diff --git a/webcit/static/t/important_msg.html b/webcit/static/t/important_msg.html
new file mode 100644 (file)
index 0000000..cf11c7e
--- /dev/null
@@ -0,0 +1,10 @@
+<?!("COND:IMPMSG", 1)>
+<div id="important_message">
+<span class="imsg">
+<?IMPORTANTMESSAGE>
+</span><br />
+</div>
+<script type="text/javascript">
+  setTimeout('hide_imsg_popup()', 5000);
+</script>
+<?!("X", 1)>
diff --git a/webcit/static/t/who.html b/webcit/static/t/who.html
new file mode 100644 (file)
index 0000000..3dcf420
--- /dev/null
@@ -0,0 +1,27 @@
+<?=head>
+<?=important_msg>
+<?ICONBAR>
+
+<script type="text/javascript">
+function ConfirmKill() { 
+return confirm('<?_("Do you really want to kill this session?")>');
+}
+</script>
+
+<div id="banner">
+<div class="room_banner">
+<img src="static/usermanag_48x.gif">
+<h1>
+<?_("Users currently on ")><?SERV_HUMANNODE>
+</h1></div>
+<ul class="room_actions">
+<li class="start_page">
+       <?OFFERSTARTPAGE>
+</li></ul>
+</div>
+
+<div id="content" class="fix_scrollbar_bug who_is_online">
+<?DOBOXED("wholiststatic", "wholiststatic_header")>
+</div>
+<?=trailing>
+
index 0fa142a35dd378aa17d5777906ea555e430dcf11..a79eb07f24e3a8fa6fc2222ab4610f6d72b1e5da 100644 (file)
@@ -1,3 +1,4 @@
+<div id="who_inner" >
 <table class="altern">
  <tr>
   <th class="edit_col"> </th>
@@ -8,3 +9,14 @@
 </tr>
 <?ITERATE("WHOLIST", "whosection")>
 </table>
+</div>
+<div class="instructions">
+<?_("Click on a name to read user info.  Click on")>
+<img align="middle" src="static/citadelchat_16x.gif" alt="(p)" border="0">
+<?_("to send an instant message to that user.")>
+</div>
+<script type="text/javascript">
+ new Ajax.PeriodicalUpdater('who_inner', 'who_inner_html',
+                            { method: 'get', frequency: 30 }  );
+</script>
+
index ef9921f0abaeedce284fb34fb2ebb2b09ac01c64..a0cc93a60493594a453293f4b47e552b67da60b8 100644 (file)
@@ -1818,6 +1818,31 @@ void download_mimepart(void) {
                 1);
 }
 
+
+int ConditionalImportantMesage(WCTemplateToken *Tokens, void *Context)
+{
+       struct wcsession *WCC = WC;
+       if (WCC != NULL)
+               return (!IsEmptyStr(WCC->ImportantMessage));
+       else
+               return 0;
+}
+
+void tmplput_importantmessage(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context)
+{
+       struct wcsession *WCC = WC;
+       
+       if (WCC != NULL) {
+               StrEscAppend(Target, NULL, WCC->ImportantMessage, 0, 0);
+                       WCC->ImportantMessage[0] = '\0';
+       }
+}
+
+void tmplput_offer_start_page(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context)
+{
+       offer_start_page();
+}
+
 void 
 InitModule_WEBCIT
 (void)
@@ -1832,4 +1857,7 @@ InitModule_WEBCIT
        WebcitAddUrlHandler(HKEY("mimepart"), view_mimepart, NEED_URL);
        WebcitAddUrlHandler(HKEY("mimepart_download"), download_mimepart, NEED_URL);
        WebcitAddUrlHandler(HKEY("diagnostics"), diagnostics, NEED_URL);
+       RegisterConditional(HKEY("COND:IMPMSG"), 0, ConditionalImportantMesage);
+       RegisterNamespace("IMPORTANTMESSAGE", 0, 0, tmplput_importantmessage);
+       RegisterNamespace("OFFERSTARTPAGE", 0, 0, tmplput_offer_start_page);
 }