<div class="ctdl-grid-sidebar-item" id="sidebar">
<ul id="ctdl-sidebar">
<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">id="ctdl_mail_folder_list"</li>
+ <li style="ctdl_mail_folders" id="ctdl_mail_folder_list" style="display:none">
<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" 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>
});
// Turn it into displayable markup
- let rendered_list = "";
- rendered_list += "<ul class=\"ctdl_mail_folders\">\n";
+ let rendered_list = "<ul class=\"ctdl_mail_folders\" id=\"ctdl_mail_folders\">\n";
for (let i=0; i<roomlist_json.length; ++i) {
if (roomlist_json[i].current_view == views.VIEW_MAILBOX) {
rendered_list += "<li "
+ "id=\"" + randomString() + "\" "
- + "onDragEnter=\"return mail_dragenter_handler(event)\" "
- + "onDragOver=\"return mail_dragover_handler(event)\" "
- + "onDragLeave=\"return mail_dragleave_handler(event)\" "
- + "onDrop=\"return mail_drop_handler(event, '" + escapeJS(roomlist_json[i].name) + "')\" "
- + "onClick=\"gotoroom('" + roomlist_json[i].name + "');\">"
+ + "onclick=\"gotoroom('" + roomlist_json[i].name + "')\" "
+ + "ondragover=\"mail_folder_dragover(event)\" "
+ + "ondrop=\"mail_folder_drop(event)\" "
+ + ">"
+ ((roomlist_json[i].name == "Mail") ? _("INBOX") : escapeHTML(roomlist_json[i].name))
+ "</li>\n"
;
}
-function mail_dragenter_handler(event) {
+function mail_folder_dragover(event) {
event.preventDefault();
- return false;
+ console.log("target dragover");
}
-function mail_dragover_handler(event) {
- event.preventDefault();
- return false;
-}
-
-
-function mail_dragleave_handler(event) {
- event.preventDefault();
- return false;
+function mail_folder_drop(event) {
+ console.log("target DROP!");
}
-
-
-function mail_drop_handler(event, to_room) {
- console.log("Drop! " + event.currentTarget.id + " to room '" + to_room + "'");
- event.preventDefault();
- return false;
-}
-
-
d = document.getElementById("ctdl_draggo");
d.innerHTML = "<font size='+3'><i class='fa fa-envelope' style='color: red'></i> " + count + "</font>"
event.dataTransfer.setDragImage(d, 0, 0);
+ event.dataTransfer.setData("text/html", "blah blah blah");
+ console.log("source dragstart");
+}
+
+
+// Handler function for dragging email messages to other folders
+function mail_dragend(event) {
+ console.log("source dragend");
}
if (row.classList.contains("ctdl-mail-selected")) {
row.draggable = "true"
row.addEventListener("dragstart", mail_dragstart);
+ row.addEventListener("dragend", mail_dragend);
}
else {
row.draggable = "false"
row.removeEventListener("dragstart", mail_dragstart);
+ row.removeEventListener("dragend", mail_dragend);
}
}
}
-// This function is the dispatcher that determines the correct view for a room, and calls the correct renderer.
-function render_room_view() {
+// Clear any drop handlers that might have been set by the previous view
+function clear_drop_handlers() {
+}
- // The view renderer will set its own room navigation buttons
+
+// Clear the top bar navigation buttons. The view renderer will set its own buttons.
+function clear_navigation_buttons() {
for (const d of ["ctdl-newmsg-button", "ctdl-ungoto-button", "ctdl-skip-button", "ctdl-goto-button", "ctdl-delete-button"]) {
document.getElementById(d).style.display = "none";
}
+}
+
+// This function is the dispatcher that determines the correct view for a room, and calls the correct renderer.
+function render_room_view() {
+
+ clear_navigation_buttons();
clear_sidebar_selection();
+ clear_drop_handlers();
+
document.getElementById("ctdl-main").innerHTML =
"<div class=\"ctdl-middle\">"
+ _("Loading messages from server, please wait")