Consistent calling syntax for view renderers
authorArt Cancro <ajc@citadel.org>
Sat, 19 Nov 2022 23:31:09 +0000 (18:31 -0500)
committerArt Cancro <ajc@citadel.org>
Sat, 19 Nov 2022 23:31:09 +0000 (18:31 -0500)
webcit-ng/static/index.html
webcit-ng/static/js/main.js
webcit-ng/static/js/view_forum.js
webcit-ng/static/js/view_mail.js
webcit-ng/static/js/views.js

index ce0d4a85535294cc8e823842a606c18ca457c3be..0fc788fb9b4e92f52b61e3cad8a8f1b18d43ad7f 100644 (file)
@@ -51,8 +51,8 @@
                        <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-mail" onClick="gotoroom('_MAIL_');"><i class="fa fa-envelope fa-fw"></i>  Mail</button>
                        <li id="ctdl_mail_folder_list" style="display:none">mail folders here</li>
                        <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-forums" onClick="render_room_list();"><i class="fas fa-comments fa-fw"></i>  Forums</button>
-                       <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-calendar"><i class="fa fa-calendar-alt fa-fw"></i>  Calendar</button>
-                       <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-contacts"><i class="fa fa-address-book fa-fw"></i>  Contacts</button>
+                       <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-calendar" onClick="gotoroom('_CALENDAR_');"><i class="fa fa-calendar-alt fa-fw"></i>  Calendar</button>
+                       <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-contacts" onClick="gotoroom('_CONTACTS_');"><i class="fa fa-address-book fa-fw"></i>  Contacts</button>
                        <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-blogs"><i class="fa fa-blog fa-fw"></i>  Blogs</button>
                        <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-wikis"><i class="fa fa-book fa-fw"></i>  Wikis</button>
                        <li><button class="ctdl-sidebar-button" id="ctdl-sidebar-button-settings"><i class="fa fa-cog fa-fw"></i>  Settings</button>
index 03735e816247e17b9ef2d9df427d99ef35a3ca8e..fd0b40767eb4089ff3d8fe2b4b4b6c0b1d901e10 100644 (file)
@@ -79,7 +79,7 @@ function gotoroom(roomname) {
                        can_delete_messages = data.can_delete_messages;
                        console.log("new mail: " + data.new_mail);
                        update_banner();
-                       render_room_view(0, 9999999999);
+                       render_room_view();
                }
        }
        fetch_room();
index 9375f13c14b3e68c2e69406cc73441623cf6bedb..aac2d5a2ba2a7b407500190a67d5b38d2567fbda 100644 (file)
@@ -503,3 +503,10 @@ function forum_close_urlbox(do_save) {
 function forum_entmsg() {
        open_reply_box("ctdl-newmsg-here", false, "", "");
 }
+
+
+// RENDERER FOR THIS VIEW
+function view_render_forums() {
+       document.getElementById("ctdl-main").innerHTML = "<div id=\"ctdl-mrp\" class=\"ctdl-forum-reading-pane\"></div>";
+       forum_readmessages("ctdl-mrp", 0, 9999999999);
+}
index 298f42786ad2e79da4577686454b588b70a853e4..503eedfc6fc76ba4ef4686ec2efe541783117b87 100644 (file)
@@ -180,8 +180,8 @@ function mail_render_row(msg) {
 }
 
 
-// Set up the mailbox view
-function mail_display() {
+// RENDERER FOR THIS VIEW
+function view_render_mail() {
        // Put the "enter new message" button into the sidebar
        document.getElementById("ctdl-newmsg-button").innerHTML = "<i class=\"fa fa-edit\"></i>" + _("Write mail");
        document.getElementById("ctdl-newmsg-button").style.display = "block";
index 85a3291a00e9229c66831fd2e340c047ec60cc7a..15933a334cc392e20ca3e3756c4b1666e5720237 100644 (file)
@@ -17,27 +17,69 @@ function clear_sidebar_selection() {
 }
 
 
-// This function is the dispatcher that determines the correct view for a room,
-// and calls the correct renderer.  Greater/Less than bounds are accepted.
-function render_room_view(gt_msg, lt_msg) {
+// This function is the dispatcher that determines the correct view for a room, and calls the correct renderer.
+function render_room_view() {
 
        document.getElementById("ctdl-newmsg-button").style.display = "none";           // the view renderer will set this
        clear_sidebar_selection();
+       document.getElementById("ctdl-main").innerHTML = _("Loading messages from server, please wait");
 
        switch(current_view) {
 
                // The "forum" module displays rooms with the "VIEW_BBS" view as classic style web forums.
                case views.VIEW_BBS:
                        document.getElementById("ctdl-sidebar-button-forums").classList.add("ctdl-sidebar-button-selected");
-                       document.getElementById("ctdl-main").innerHTML = "<div id=\"ctdl-mrp\" class=\"ctdl-forum-reading-pane\"></div>";
-                       forum_readmessages("ctdl-mrp", gt_msg, lt_msg);
+                       view_render_forums();
                        break;
 
                // The "mail" module displays rooms with the VIEW_MAILBOX view as a webmail program.
                case views.VIEW_MAILBOX:
+               case views.VIEW_DRAFTS:
                        document.getElementById("ctdl-sidebar-button-mail").classList.add("ctdl-sidebar-button-selected");
-                       document.getElementById("ctdl-main").innerHTML = "";
-                       mail_display();
+                       document.getElementById("ctdl_mail_folder_list").style.display = "block";       // show folder list
+                       view_render_mail();
+                       break;
+
+               // The "contacts" module displays rooms with the VIEW_ADDRESSBOOK view as a contacts manager.
+               case views.VIEW_ADDRESSBOOK:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is an address book but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_CALENDAR:
+               case views.VIEW_CALBRIEF:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is a calendar but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_TASKS:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is a task list but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_NOTES:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is a notes list but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_WIKI:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is a wiki but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_JOURNAL:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is a journal but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_BLOG:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>'" + current_room + "' is a blog but there is no renderer.</center>";
+                       break;
+
+               case views.VIEW_QUEUE:
+                       document.getElementById("ctdl-main").innerHTML =
+                               "<center>We ought to be displaying the email queue here.</center>";
                        break;
 
                default:
@@ -46,11 +88,6 @@ function render_room_view(gt_msg, lt_msg) {
                        break;
        }
 
-       // Show the mail folder list only when the Mail view is active.
-       if (current_view == views.VIEW_MAILBOX) {
-               document.getElementById("ctdl_mail_folder_list").style.display = "block";
-       }
-
 }