X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=webcit%2Fstatic%2Fwclib.js;h=e9f88042e302e7eb6f0ec5e655d32c645acc1435;hp=bb193c7b2b5f04d468ac085b35dbb00472e612ba;hb=8a31ae37cda10b701d6db0f3a6935eec0eb2d5ab;hpb=091967d8bc53b1121aee57d9717a257fe3f72d13 diff --git a/webcit/static/wclib.js b/webcit/static/wclib.js index bb193c7b2..e9f88042e 100644 --- a/webcit/static/wclib.js +++ b/webcit/static/wclib.js @@ -1,27 +1,35 @@ +/*jshint strict: false, bitwise: false */ +/*global document, window, Ajax, currentlyMarkedRows, Event, event, taskViewActivate, setTimeout, fillRooms, $, ctdlLocalPrefs, currentDropTargets, iconBarRoomList, confirm, Effect */ /* - * Copyright 2005 - 2010 The Citadel Team - * Licensed under the GPL V3 - * * JavaScript function library for WebCit. + * + * Copyright (c) 2005-2012 by the citadel.org team + * + * This program is open source software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License, version 3. + * the Free Software Foundation, either version 3 of the License, or + * + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * + * along with this program. If not, see . */ - var browserType; var room_is_trash = 0; var currentlyExpandedFloor = null; var roomlist = null; -var _switchToRoomList = "switch to room list"; -var _switchToMenu = "switch to menu"; - -var currentDropTarget = null; - var supportsAddEventListener = (!!document.addEventListener); var today = new Date(); var wc_log = ""; -if (document.all) {browserType = "ie"} +if (document.all) {browserType = "ie";} if (window.navigator.userAgent.toLowerCase().match("gecko")) { browserType= "gecko"; } @@ -30,7 +38,7 @@ Event.observe(window, 'load', ToggleTaskDateOrNoDateActivate); Event.observe(window, 'load', taskViewActivate); //document.observe("dom:loaded", setupPrefEngine); document.observe("dom:loaded", setupIconBar); -function CtdlRandomString() { +function ctdlRandomString() { return((Math.random()+'').substr(3)); } function strcmp ( str1, str2 ) { @@ -44,29 +52,96 @@ function strcmp ( str1, str2 ) { // * example 2: strcmp( 'owald', 'waldo' ); // * returns 2: -1 - return ( ( str1 == str2 ) ? 0 : ( ( str1 > str2 ) ? 1 : -1 ) ); + return ( ( str1 === str2 ) ? 0 : ( ( str1 > str2 ) ? 1 : -1 ) ); +} + +function ctdlMarkLog(Which, Status) +{ + if (Status) { + document.getElementById(Which).checked = false; + } + else { + document.getElementById(Which).checked = true; + } + +} +function ToggleLogEnable(Which) +{ + var p; + var element = document.getElementById(Which); + if (element.hasOwnProperty('checked')) { + var Status = element.checked; + if (!Status) { + p = encodeURI('g_cmd=LOGS ' + Which + '|0'); + } + else { + p = encodeURI('g_cmd=LOGS ' + Which + '|1'); + } + new Ajax.Request('ajax_servcmd', { + method: 'post', + parameters: p, + onComplete: ctdlMarkLog(Which, Status) + }); + } +} + +function SMTPRunQueue() +{ + var p; + + p= encodeURI('g_cmd=SMTP runqueue'); + new Ajax.Request('ajax_servcmd', { + method: 'post', + parameters: p, + onComplete: function(transport) { ajax_important_message(transport.responseText.substr(4));} + }); +} + +function NetworkSynchronizeRoom(NodeName) +{ + var p; + + p= encodeURI('g_cmd=NSYN ' + NodeName); + new Ajax.Request('ajax_servcmd', { + method: 'post', + parameters: p, + onComplete: function(transport) { ajax_important_message(transport.responseText.substr(4));} + }); +} +function ToggleVisibility ($Which) +{ + if (document.getElementById) + { + if (document.getElementById($Which).style.display === "none") { + document.getElementById($Which).style.display = "inline"; + } + else { + document.getElementById($Which).style.display = "none"; + } + } } function emptyElement(element) { - childNodes = element.childNodes; + var childNodes = element.childNodes; for(var i=0; i 0) { - for (i=0; i= 0) { - extracted_string = extracted_string.substr(j+1); - } - } + var j, i = 0; + var extracted_string = source_string; + + if (token_num > 0) { + for (i=0; i= 0) { + extracted_string = extracted_string.substr(j+1); + } } + } - j = extracted_string.indexOf(delimiter); - if (j >= 0) { - extracted_string = extracted_string.substr(0, j); - } + j = extracted_string.indexOf(delimiter); + if (j >= 0) { + extracted_string = extracted_string.substr(0, j); + } - return extracted_string; + return extracted_string; } function CtdlSpawnContextMenu(event, source) { @@ -123,19 +198,63 @@ function disintergrateContextMenus(event) { } // This code handles the popups for important-messages. function hide_imsg_popup() { - if (browserType == "gecko") { - document.poppedLayer = eval('document.getElementById(\'important_message\')'); - } - else if (browserType == "ie") { - document.poppedLayer = eval('document.all[\'important_message\']'); - } - else { - document.poppedLayer = eval('document.layers[\'`important_message\']'); - } + if (browserType === "gecko") { + document.poppedLayer = eval('document.getElementById(\'important_message\')'); + } + else if (browserType === "ie") { + document.poppedLayer = eval('document.all[\'important_message\']'); + } + else { + document.poppedLayer = eval('document.layers[\'`important_message\']'); + } - document.poppedLayer.style.visibility = "hidden"; + document.poppedLayer.style.visibility = "hidden"; +} +function remove_something(what_to_search, new_visibility) { + if (browserType === "gecko") { + document.poppedLayer = eval('document.getElementById(\'' + what_to_search + '\')'); + } + else if (browserType === "ie") { + document.poppedLayer = eval('document.all[\'' + what_to_search + '\']'); + } + else { + document.poppedLayer = eval('document.layers[\'`' + what_to_search + '\']'); + } + if (document.poppedLayer !== null) { + document.poppedLayer.innerHTML = ""; + } } +function unhide_imsg_popup() { + if (browserType === "gecko") { + document.poppedLayer = eval('document.getElementById(\'important_message\')'); + } + else if (browserType === "ie") { + document.poppedLayer = eval('document.all[\'important_message\']'); + } + else { + document.poppedLayer = eval('document.layers[\'`important_message\']'); + } + + document.poppedLayer.style.visibility = "visible"; + setTimeout('hide_imsg_popup()', 5000); +} + +function ajax_important_message(messagetext) +{ + if (browserType === "gecko") { + document.poppedLayer = eval('document.getElementById(\'important_message\')'); + } + else if (browserType === "ie") { + document.poppedLayer = eval('document.all[\'important_message\']'); + } + else { + document.poppedLayer = eval('document.layers[\'`important_message\']'); + } + document.poppedLayer.style.visibility = "visible"; + setTimeout('hide_imsg_popup()', 5000); + document.poppedLayer.innerHTML = messagetext; +} // This function activates the ajax-powered recipient autocompleters on the message entry screen. function activate_entmsg_autocompleters() { @@ -144,202 +263,35 @@ function activate_entmsg_autocompleters() { new Ajax.Autocompleter('recp_id', 'recp_name_choices', 'recp_autocomplete', {} ); } -function setupIconBar() { - if (!document.getElementById("switch")) { - return; - } - _switchToRoomList = getTextContent(document.getElementById("rmlist_template")); - _switchToMenu = getTextContent(document.getElementById("mnlist_template")); - var switchSpan = document.getElementById("switch").firstChild; - if (switchSpan != null) { - setTextContent(switchSpan, _switchToRoomList); - $(switchSpan).observe('click', changeIconBarEvent); - var currentView = ctdlLocalPrefs.readPref("iconbar_view"); - if (currentView != null) { - switchSpan.ctdlSwitchIconBarTo = currentView; - changeIconBar(switchSpan); - } else { - switchSpan.ctdlSwitchIconBarTo = "rooms"; - } - } - var online_users = document.getElementById("online_users"); - if (online_users.offsetParent != null && online_users.offsetTop > 0) { - new Ajax.PeriodicalUpdater('online_users', 'do_template?template=who_iconbar', {method: 'get', frequency: 30}); - } -} -function changeIconBarEvent(event) { - changeIconBar(event.target); -} -function changeIconBar(target) { - var switchTo = target.ctdlSwitchIconBarTo; - WCLog("Changing to: " + switchTo); - ctdlLocalPrefs.setPref("iconbar_view", target.ctdlSwitchIconBarTo); - if (switchTo == "rooms") { - switch_to_room_list(); - setTextContent(target, _switchToMenu); - target.ctdlSwitchIconBarTo = "menu"; - } else { - switch_to_menu_buttons(); - setTextContent(target, _switchToRoomList); - target.ctdlSwitchIconBarTo = "rooms"; - } -} -function switch_to_room_list() { - var roomlist = document.getElementById("roomlist"); - var summary = document.getElementById("iconbar_menu"); - if (!rooms || !floors || !roomlist) { - FillRooms(IconBarRoomList); - } - roomlist.className = roomlist.className.replace("hidden",""); - summary.className += " hidden"; +function activate_iconbar_wholist_populat0r() +{ + new Ajax.PeriodicalUpdater('online_users', 'do_template?template=who_iconbar', {method: 'get', frequency: 30}); } -function switch_to_menu_buttons() { - if (roomlist != null) { - roomlist.className += "hidden"; - } - var iconbar = document.getElementById("iconbar_menu"); - iconbar.className = iconbar.className.replace("hidden",""); - var roomlist = document.getElementById("roomlist"); - roomlist.className += " hidden"; -} +function setupIconBar() { -function GenericTreeRoomList(roomlist) { - var currentExpanded = ctdlLocalPrefs.readPref("rooms_expanded"); - var curRoomName = ""; - if (document.getElementById("rmname")) { - curRoomName = getTextContent(document.getElementById("rmname")); - } - currentDropTargets = new Array(); - var iconbar = document.getElementById("iconbar"); - var ul = document.createElement("ul"); - roomlist.appendChild(ul); - // Add mailbox, because they are special - var mailboxLI = document.createElement("li"); - ul.appendChild(mailboxLI); - var mailboxSPAN = document.createElement("span"); - var _mailbox = getTextContent(document.getElementById("mbox_template")); - mailboxSPAN.appendChild(document.createTextNode(_mailbox)); - $(mailboxSPAN).observe('click', expandFloorEvent); - mailboxLI.appendChild(mailboxSPAN); - mailboxLI.className = "floor"; - var mailboxUL = document.createElement("ul"); - mailboxLI.appendChild(mailboxUL); - var mailboxRooms = GetMailboxRooms(); - for(var i=0; i 0) { - p = 'note_uid=' + uid_of_note_being_dragged - + '&left=' + d.style.left - + '&top=' + d.style.top - + '&r=' + CtdlRandomString(); - new Ajax.Request( - 'ajax_update_note', - { - method: 'post', - parameters: p - } - ); - } + // If any motion actually occurred, submit an ajax http call to record it to the server + if (note_was_dragged > 0) { + var p = 'note_uid=' + uid_of_note_being_dragged + + '&left=' + d.style.left + + '&top=' + d.style.top + + '&r=' + ctdlRandomString(); + new Ajax.Request( + 'ajax_update_note', + { + method: 'post', + parameters: p + } + ); + } - uid_of_note_being_dragged = ''; - return true; + uid_of_note_being_dragged = ''; + return true; } - +var saved_x, saved_y; function NotesDragMouseMove(evt) { - x = (ns6 ? evt.clientX : event.clientX); - x_increment = x - saved_x; - y = (ns6 ? evt.clientY : event.clientY); - y_increment = y - saved_y; + var x = (ns6 ? evt.clientX : event.clientX); + var x_increment = x - saved_x; + var y = (ns6 ? evt.clientY : event.clientY); + var y_increment = y - saved_y; - // Move the div - d = $('note-' + uid_of_note_being_dragged); + // Move the div + var d = $('note-' + uid_of_note_being_dragged); - divTop = parseInt(d.style.top); - divLeft = parseInt(d.style.left); + var divTop = parseInt(d.style.top); + var divLeft = parseInt(d.style.left); - d.style.top = (divTop + y_increment) + 'px'; - d.style.left = (divLeft + x_increment) + 'px'; + d.style.top = (divTop + y_increment) + 'px'; + d.style.left = (divLeft + x_increment) + 'px'; - saved_x = x; - saved_y = y; - note_was_dragged = 1; - return true; + saved_x = x; + saved_y = y; + note_was_dragged = 1; + return true; } function NotesDragMouseDown(evt, uid) { - saved_x = (ns6 ? evt.clientX : event.clientX); - saved_y = (ns6 ? evt.clientY : event.clientY); - document.onmouseup = NotesDragMouseUp; - document.onmousemove = NotesDragMouseMove; - if (document.layers) { - document.captureEvents(Event.MOUSEUP | Event.MOUSEMOVE); - } - uid_of_note_being_dragged = uid; - d = $('note-' + uid_of_note_being_dragged); - saved_cursor_style = d.style.cursor; - d.style.cursor = 'move'; - return false; // disable the default action + saved_x = (ns6 ? evt.clientX : event.clientX); + saved_y = (ns6 ? evt.clientY : event.clientY); + document.onmouseup = NotesDragMouseUp; + document.onmousemove = NotesDragMouseMove; + if (document.layers) { + document.captureEvents(Event.MOUSEUP | Event.MOUSEMOVE); + } + uid_of_note_being_dragged = uid; + var d = $('note-' + uid_of_note_being_dragged); + saved_cursor_style = d.style.cursor; + d.style.cursor = 'move'; + return false; // disable the default action } @@ -417,22 +369,22 @@ function NotesDragMouseDown(evt, uid) { // It toggles the color selector visible or invisible. function NotesClickPalette(evt, uid) { - uid_of_note_being_colored = uid; - d = $('palette-' + uid_of_note_being_colored); + var uid_of_note_being_colored = uid; + var d = $('palette-' + uid_of_note_being_colored); - if (d.style.display) { - if (d.style.display == 'none') { - d.style.display = 'block'; - } - else { - d.style.display = 'none'; - } + if (d.style.display) { + if (d.style.display === 'none') { + d.style.display = 'block'; } else { - d.style.display = 'block'; + d.style.display = 'none'; } + } + else { + d.style.display = 'block'; + } - return true; + return true; } @@ -440,30 +392,30 @@ function NotesClickPalette(evt, uid) { // Sets the desired color and then closes the color selector. function NotesClickColor(evt, uid, red, green, blue, notecolor, titlecolor) { - uid_of_note_being_colored = uid; - palette_button = $('palette-' + uid_of_note_being_colored); - note_div = $('note-' + uid_of_note_being_colored); - titlebar_div = $('titlebar-' + uid_of_note_being_colored); - - // alert('FIXME red=' + red + ' green=' + green + ' blue=' + blue); - - note_div.style.backgroundColor = notecolor; - titlebar_div.style.backgroundColor = titlecolor; - palette_button.style.display = 'none'; - - // submit an ajax http call to record it to the server - p = 'note_uid=' + uid_of_note_being_colored - + '&red=' + red - + '&green=' + green - + '&blue=' + blue - + '&r=' + CtdlRandomString(); - new Ajax.Request( - 'ajax_update_note', - { - method: 'post', - parameters: p - } - ); + var uid_of_note_being_colored = uid; + var palette_button = $('palette-' + uid_of_note_being_colored); + var note_div = $('note-' + uid_of_note_being_colored); + var titlebar_div = $('titlebar-' + uid_of_note_being_colored); + + // alert('FIXME red=' + red + ' green=' + green + ' blue=' + blue); + + note_div.style.backgroundColor = notecolor; + titlebar_div.style.backgroundColor = titlecolor; + palette_button.style.display = 'none'; + + // submit an ajax http call to record it to the server + var p = 'note_uid=' + uid_of_note_being_colored + + '&red=' + red + + '&green=' + green + + '&blue=' + blue + + '&r=' + ctdlRandomString(); + new Ajax.Request( + 'ajax_update_note', + { + method: 'post', + parameters: p + } + ); } @@ -476,125 +428,138 @@ var saved_cursor_style = 'default'; var note_was_resized = 0; function NotesResizeMouseUp(evt) { - document.onmouseup = null; - document.onmousemove = null; - if (document.layers) { - document.releaseEvents(Event.MOUSEUP | Event.MOUSEMOVE); - } + document.onmouseup = null; + document.onmousemove = null; + if (document.layers) { + document.releaseEvents(Event.MOUSEUP | Event.MOUSEMOVE); + } - d = $('note-' + uid_of_note_being_resized); - d.style.cursor = saved_cursor_style; + var d = $('note-' + uid_of_note_being_resized); + d.style.cursor = saved_cursor_style; - // If any motion actually occurred, submit an ajax http call to record it to the server - if (note_was_resized > 0) { - p = 'note_uid=' + uid_of_note_being_resized - + '&width=' + d.style.width - + '&height=' + d.style.height - + '&r=' + CtdlRandomString(); - new Ajax.Request( - 'ajax_update_note', - { - method: 'post', - parameters: p - } - ); - } + // If any motion actually occurred, submit an ajax http call to record it to the server + if (note_was_resized > 0) { + var p = 'note_uid=' + uid_of_note_being_resized + + '&width=' + d.style.width + + '&height=' + d.style.height + + '&r=' + ctdlRandomString(); + new Ajax.Request( + 'ajax_update_note', + { + method: 'post', + parameters: p + } + ); + } - uid_of_note_being_resized = ''; - return false; // disable the default action + uid_of_note_being_resized = ''; + return false; // disable the default action } function NotesResizeMouseMove(evt) { - x = (ns6 ? evt.clientX : event.clientX); - x_increment = x - saved_x; - y = (ns6 ? evt.clientY : event.clientY); - y_increment = y - saved_y; - - // Move the div - d = $('note-' + uid_of_note_being_resized); + var x = (ns6 ? evt.clientX : event.clientX); + var x_increment = x - saved_x; + var y = (ns6 ? evt.clientY : event.clientY); + var y_increment = y - saved_y; - divTop = parseInt(d.style.height); - divLeft = parseInt(d.style.width); + // Move the div + var d = $('note-' + uid_of_note_being_resized); - newHeight = divTop + y_increment; - if (newHeight < 50) newHeight = 50; + var divTop = parseInt(d.style.height); + var divLeft = parseInt(d.style.width); - newWidth = divLeft + x_increment; - if (newWidth < 50) newWidth = 50; + var newHeight = divTop + y_increment; + if (newHeight < 50) { + newHeight = 50; + } - d.style.height = newHeight + 'px'; - d.style.width = newWidth + 'px'; + var newWidth = divLeft + x_increment; + if (newWidth < 50) { + newWidth = 50; + } + d.style.height = newHeight + 'px'; + d.style.width = newWidth + 'px'; - saved_x = x; - saved_y = y; - note_was_resized = 1; - return false; // disable the default action + saved_x = x; + saved_y = y; + note_was_resized = 1; + return false; // disable the default action } function NotesResizeMouseDown(evt, uid) { - saved_x = (ns6 ? evt.clientX : event.clientX); - saved_y = (ns6 ? evt.clientY : event.clientY); - document.onmouseup = NotesResizeMouseUp; - document.onmousemove = NotesResizeMouseMove; - if (document.layers) { - document.captureEvents(Event.MOUSEUP | Event.MOUSEMOVE); - } - uid_of_note_being_resized = uid; - d = $('note-' + uid_of_note_being_resized); - saved_cursor_style = d.style.cursor; - d.style.cursor = 'move'; - return false; // disable the default action + var saved_x = (ns6 ? evt.clientX : event.clientX); + var saved_y = (ns6 ? evt.clientY : event.clientY); + document.onmouseup = NotesResizeMouseUp; + document.onmousemove = NotesResizeMouseMove; + if (document.layers) { + document.captureEvents(Event.MOUSEUP | Event.MOUSEMOVE); + } + uid_of_note_being_resized = uid; + var d = $('note-' + uid_of_note_being_resized); + saved_cursor_style = d.style.cursor; + d.style.cursor = 'move'; + return false; // disable the default action } function DeleteStickyNote(evt, uid, confirmation_prompt) { - uid_of_note_being_deleted = uid; - d = $('note-' + uid_of_note_being_deleted); + var uid_of_note_being_deleted = uid; + var d = $('note-' + uid_of_note_being_deleted); - if (confirm(confirmation_prompt)) { - new Effect.Puff(d); + if (confirm(confirmation_prompt)) { + new Effect.Puff(d); - // submit an ajax http call to delete it on the server - p = 'note_uid=' + uid_of_note_being_deleted - + '&deletenote=yes' - + '&r=' + CtdlRandomString(); - new Ajax.Request( - 'ajax_update_note', - { - method: 'post', - parameters: p - } - ); - } + // submit an ajax http call to delete it on the server + var p = 'note_uid=' + uid_of_note_being_deleted + + '&deletenote=yes' + + '&r=' + ctdlRandomString(); + new Ajax.Request( + 'ajax_update_note', + { + method: 'post', + parameters: p + } + ); + } } function ctdl_ts_getInnerText(el) { - if (typeof el == "string") return el; - if (typeof el == "undefined") { return el }; - if (el.innerText) return el.innerText; //Not needed but it is faster - var str = ""; - - var cs = el.childNodes; - var l = cs.length; - for (var i = 0; i < l; i++) { - switch (cs[i].nodeType) { - case 1: //ELEMENT_NODE - str += ts_getInnerText(cs[i]); - break; - case 3: //TEXT_NODE - str += cs[i].nodeValue; - break; - } + if (typeof el === "string") { + return el; + } + if (typeof el === "undefined") { + return el; + } + if (el.innerText) { + return el.innerText; //Not needed but it is faster + } + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; } - return str; + } + return str; } // Place a gradient loadscreen on an element, e.g to use before Ajax.updater function CtdlLoadScreen(elementid) { var elem = document.getElementById(elementid); -elem.innerHTML = "

  Loading....

"; + elem.innerHTML = "

" + + "" + + "
" + + "   Loading...." + + "

"; } @@ -603,10 +568,10 @@ elem.innerHTML = "

  Loading....

"; - p = 'which_addr_book=' + which_addr_book - + '&target_input=' + target_input - + '&r=' + CtdlRandomString(); - new Ajax.Updater( - 'address_book_inner_div', - 'display_address_book_inner_div', - { - method: 'get', - parameters: p - } - ); + + $('address_book_inner_div').innerHTML = + "

" + + "" + + "
" + + "" + + "  Loading...." + + "

"; + + p = 'which_addr_book=' + which_addr_book + + '&target_input=' + target_input + + '&r=' + ctdlRandomString() + + "&template=addressbook_namelist"; + new Ajax.Updater( + 'address_book_inner_div', + 'do_template', + { + method: 'get', + parameters: p + } + ); } // What happens when a contact is selected from the address book popup // (populate the specified target) function AddContactsToTarget(target, whichaddr) { - while (whichaddr.selectedIndex != -1) { + while (whichaddr.selectedIndex !== -1) { if (target.value.length > 0) { target.value = target.value + ', '; } @@ -661,48 +635,50 @@ function HandleRSVP(question_divname, title_divname, msgnum, cal_partnum, sc) { 0,0,0,0,0, false, false, false, false, 0, null); */ // TODO: Collapse into one function function toggleTaskDtStart(event) { - var checkBox = $('nodtstart'); - var checkBoxTime = $('dtstart_time_assoc'); - var dtstart = document.getElementById("dtstart"); - var dtstart_date = document.getElementById("dtstart_date"); - var dtstart_time = document.getElementById("dtstart_time"); - if (checkBox.checked) { - dtstart_date.style.visibility = "hidden"; - dtstart_time.style.visibility = "hidden"; + var checkBox = $('nodtstart'); + var checkBoxTime = $('dtstart_time_assoc'); + var dtstart = document.getElementById("dtstart"); + var dtstart_date = document.getElementById("dtstart_date"); + var dtstart_time = document.getElementById("dtstart_time"); + if (checkBox.checked) { + dtstart_date.style.visibility = "hidden"; + dtstart_time.style.visibility = "hidden"; + } else { + if (checkBoxTime.checked) { + dtstart_time.style.visibility = "visible"; } else { - if (checkBoxTime.checked) { - dtstart_time.style.visibility = "visible"; - } else { - dtstart_time.style.visibility = "hidden"; - } - dtstart_date.style.visibility = "visible"; - if (dtstart.value.length == 0) - dtstart.dpck._initCurrentDate(); + dtstart_time.style.visibility = "hidden"; } + dtstart_date.style.visibility = "visible"; + if (dtstart.value.length === 0) { + dtstart.dpck._initCurrentDate(); + } + } } function toggleTaskDue(event) { - var checkBox = $('nodue'); - var checkBoxTime = $('due_time_assoc'); - var due = document.getElementById("due"); - var due_date = document.getElementById("due_date"); - var due_time = document.getElementById("due_time"); - if (checkBox.checked) { - due_date.style.visibility = "hidden"; - due_time.style.visibility = "hidden"; + var checkBox = $('nodue'); + var checkBoxTime = $('due_time_assoc'); + var due = document.getElementById("due"); + var due_date = document.getElementById("due_date"); + var due_time = document.getElementById("due_time"); + if (checkBox.checked) { + due_date.style.visibility = "hidden"; + due_time.style.visibility = "hidden"; + } else { + if (checkBoxTime.checked) { + due_time.style.visibility = "visible"; } else { - if (checkBoxTime.checked) { - due_time.style.visibility = "visible"; - } else { - due_time.style.visibility = "hidden"; - } - due_date.style.visibility = "visible"; - if (due.value.length == 0) - due.dpck._initCurrentDate(); + due_time.style.visibility = "hidden"; + } + due_date.style.visibility = "visible"; + if (due.value.length === 0) { + due.dpck._initCurrentDate(); } + } } function ToggleTaskDateOrNoDateActivate(event) { var dtstart = document.getElementById("nodtstart"); - if (dtstart != null) { + if (dtstart !== null) { toggleTaskDtStart(null); toggleTaskDue(null); $('nodtstart').observe('click', toggleTaskDtStart); @@ -749,14 +725,14 @@ function RecurrenceShowHide() { $('rrule_div').style.display = 'none'; } - if ($('freq_selector').selectedIndex == 4) { + if ($('freq_selector').selectedIndex === 4) { $('weekday_selector').style.display = 'block'; } else { $('weekday_selector').style.display = 'none'; } - if ($('freq_selector').selectedIndex == 5) { + if ($('freq_selector').selectedIndex === 5) { $('monthday_selector').style.display = 'block'; } else { @@ -793,7 +769,7 @@ function RecurrenceShowHide() { $('rrmweekday').disabled = true; } - if ($('freq_selector').selectedIndex == 6) { + if ($('freq_selector').selectedIndex === 6) { $('yearday_selector').style.display = 'block'; } else { @@ -821,7 +797,7 @@ function RecurrenceShowHide() { // the attendees list is empty function EnableOrDisableCheckButton() { - if ($('attendees_box').value.length == 0) { + if ($('attendees_box').value.length === 0) { $('check_button').disabled = true; } else { @@ -833,10 +809,12 @@ function EnableOrDisableCheckButton() function launchChat(event) { -window.open('chat', 'ctdl_chat_window', 'toolbar=no,location=no,directories=no,copyhistory=no,status=no,scrollbars=yes,resizable=yes'); + window.open('chat', + 'ctdl_chat_window', + 'toolbar=no,location=no,directories=no,copyhistory=no,status=no,scrollbars=yes,resizable=yes'); } // logger -function WCLog(msg) { +function wCLog(msg) { if (!!window.console && !!console.log) { console.log(msg); } else if (!!window.opera && !!opera.postError) { @@ -847,39 +825,320 @@ function WCLog(msg) { } function RefreshSMTPqueueDisplay() { - new Ajax.Updater('smtpqueue_inner_div', - 'display_smtpqueue_inner_div', { method: 'get', + new Ajax.Updater('mailqueue_list', + 'dotskip?room=__CitadelSMTPspoolout__&view=11&ListOnly=yes', { method: 'get', parameters: Math.random() } ); } function DeleteSMTPqueueMsg(msgnum1, msgnum2) { - var p = encodeURI('g_cmd=DELE ' + msgnum1 + ',' + msgnum2); - new Ajax.Request( - 'ajax_servcmd', { - method: 'post', - parameters: p, - onComplete: RefreshSMTPqueueDisplay() - } - ); + var p = encodeURI('g_cmd=DELE ' + msgnum1 + ',' + msgnum2); + new Ajax.Request( + 'ajax_servcmd', { + method: 'post', + parameters: p, + onComplete: function(transport) { + ajax_important_message(transport.responseText.substr(4)); + RefreshSMTPqueueDisplay();} + } + ); } function ConfirmLogoff() { - new Ajax.Updater( - 'md-content', - 'do_template?template=confirmlogoff', - { - method: 'get', - onSuccess: function(cl_success) { - toggleModal(1); - } - } - ); + new Ajax.Updater( + 'md-content', + 'do_template?template=confirmlogoff', + { + method: 'get', + evalScripts: true, + onSuccess: function(cl_success) { + toggleModal(1); + } + } + ); } function switch_to_lang(new_lang) { - p = 'push?url=' + encodeURI(window.location); - new Ajax.Request(p, { method: 'get' } ); + p = 'push?url=' + encodeURI(window.location); + new Ajax.Request(p, { method: 'get' } ); window.location = 'switch_language?lang=' + new_lang ; } + + +function toggle_roomlist() +{ + /* WARNING: VILE, SLEAZY HACK. We determine the state of the box based on the image loaded. */ + if ( $('expand_roomlist').src.substring($('expand_roomlist').src.length - 12) === "collapse.gif" ) { + $('roomlist').style.display = 'none'; + $('expand_roomlist').src = 'static/webcit_icons/expand.gif'; + wstate=0; + } + + else { + $('roomlist').style.display = 'block'; + $('expand_roomlist').src = 'static/webcit_icons/collapse.gif'; + $('roomlist').innerHTML = ''; + fillRooms(iconBarRoomList); + wstate=1; + } + + // tell the server what I did + p = 'toggle_roomlist_expanded_state?wstate=' + wstate + '?rand=' + Math.random() ; + new Ajax.Request(p, { method: 'get' } ); + + return false; /* this prevents the click from registering as a roomlist button press */ +} + + +function toggle_wholist() +{ + /* WARNING: VILE, SLEAZY HACK. We determine the state of the box based on the image loaded. */ + if ( $('expand_wholist').src.substring($('expand_wholist').src.length - 12) === "collapse.gif" ) { + $('online_users').style.display = 'none'; + $('expand_wholist').src = 'static/webcit_icons/expand.gif'; + wstate=0; + } + + else { + $('online_users').style.display = 'block'; + $('expand_wholist').src = 'static/webcit_icons/collapse.gif'; + activate_iconbar_wholist_populat0r(); + wstate=1; + } + + // tell the server what I did + p = 'toggle_wholist_expanded_state?wstate=' + wstate + '?rand=' + Math.random() ; + new Ajax.Request(p, { method: 'get' } ); + + return false; /* this prevents the click from registering as a wholist button press */ +} + +function getBlogStartText(wikitype) { + var wikitext = document.getElementById("wikitext").innerHTML; + var wikipublish = document.getElementById("wikipublish").innerHTML; + var wikilinktext = document.getElementById("wikilinktext").innerHTML; + var wikilinkmore = document.getElementById("wikilinkmore").innerHTML; + var wikilinkembedmedia = document.getElementById("wikilinkembedmedia").innerHTML; + if (wikitype) { + return "\n" + + "

" + wikitext + "

\n" + + "

" + wikipublish + "

\n" + + "" + wikilinktext + "" + + "

" + wikilinkmore + "

\n" + + "

" + wikilinkembedmedia + "

\n

\"alttext\"

\n" + + ""; + } + else { + return "#" + wikitext + "\n" + + wikipublish + "\n\n" + + "[" + wikilinktext + "](wiki?page=firstarticle)\n\n" + + wikilinkmore + "\n\n" + + wikilinkembedmedia + "\n\n ![alttext](/download_file/test.jpg)"; + } +} + +function create_blog() +{ + var er_view_blog = document.getElementById('er_view_blog'); + var Nonce = document.getElementById('Nonce'); + var roomname = document.getElementById('er_name').value; + var editroomname = roomname + '\\edit'; + var filePath = "files_" + roomname; + var floorID = document.getElementById('er_floor').value; + + var selects = document.getElementById("er_floor"); + var selectedFloor = selects.options[selects.selectedIndex].value; + var selectedFloorName = selects.options[selects.selectedIndex].text; + + var vselects = document.getElementById("er_view"); + var vselectedMarkup = vselects.options[vselects.selectedIndex].value; + var vselectedMarkupName = vselects.options[vselects.selectedIndex].text; + + var adminPW = document.getElementById('adminlist_passworded').checked; + + var passvoid = document.getElementById('er_password').value; + var roomtypeWiki = document.getElementById('er_blog_markup_html').value; + + var isHtmlWiki = vselectedMarkup === roomtypeWiki; + var starttext = getBlogStartText(isHtmlWiki); + + ToggleVisibility('er_password'); + var type_edit; + if (adminPW) { + type_edit = document.getElementById('adminlist_passworded').value; + ToggleVisibility('li_adminlist_invonly'); + ToggleVisibility('adminlist_passworded'); + + } + else { + type_edit = document.getElementById('adminlist_invonly').value; + ToggleVisibility('adminlist_invonly'); + ToggleVisibility('li_adminlist_passworded'); + } + + ToggleVisibility('er_floor'); + document.getElementById('er_floor_fixed').innerHTML = selectedFloorName; + ToggleVisibility('er_floor_fixed'); + + ToggleVisibility('er_name'); + document.getElementById('er_name_fixed').innerHTML = roomname; + ToggleVisibility('er_name_fixed'); + + ToggleVisibility('er_view'); + document.getElementById('er_view_fixed').innerHTML = vselectedMarkupName; + ToggleVisibility('er_view_fixed'); + + ToggleVisibility('create_buttons'); + + ToggleVisibility('edit_info'); + ToggleVisibility('throbber'); + + + var roomdata = { + create_blog_room: { + nonce: Nonce, + er_name: roomname, + type: 'public', + er_view: er_view_blog, + er_floor: floorID, + template: "room_result_json", + ok_button: 1 + }, + setflags_blog_room: { + nonce: Nonce, + er_name: roomname, + go: roomname, + type: 'public', + er_floor: floorID, + + directory: "yes", + er_dirname: filePath, + ulallowed: "no", + dlallowed: "yes", + ulmsg: "no", + visdir: "no", + + anon: "no", + last_tabsel: 1, + er_view: er_view_blog, + template: "room_result_json", + ok_button: 1 + }, + create_blog_edit_room: { + nonce: Nonce, + er_name: editroomname, + type: type_edit, + er_view: vselectedMarkup, + er_floor: floorID, + er_password: passvoid, + template: "room_result_json", + ok_button: 1 + }, + setflags_blog_edit_room: { + nonce: Nonce, + er_name: editroomname, + go: editroomname, + type: type_edit, + er_floor: floorID, + + directory: "yes", + er_dirname: filePath, + ulallowed: "yes", + dlallowed: "yes", + ulmsg: "no", + visdir: "yes", + + anon: "no", + last_tabsel: 1, + er_view: er_view_blog, + template: "room_result_json", + ok_button: 1 + }, + blog_wiki_startmessage : { + nonce: Nonce, + force_room: editroomname, + page: "home", + markdown: (isHtmlWiki)?0:1, + msgtext: starttext + + } + }; + + /* promises anyone? + * - create the blog room + * - set the blog rooms file flags + * - create the edit room + * - set the blog edit room flags + */ + new Ajax.Request("/entroom", + { method: 'post', + parameters: $H(roomdata.create_blog_room).toQueryString(), + onComplete: function(transport) { + new Ajax.Request("/editroom", + { method: 'post', + parameters: $H(roomdata.setflags_blog_room).toQueryString(), + onComplete: function(transport) { + new Ajax.Request("/entroom", + { method: 'post', + parameters: $H(roomdata.create_blog_edit_room).toQueryString(), + onComplete: function(transport) { + new Ajax.Request("/editroom", + { method: 'post', + parameters: $H(roomdata.setflags_blog_edit_room).toQueryString(), + onComplete: function(transport) { + ToggleVisibility('throbber'); + new Ajax.Request("/post", + { method: 'post', + parameters: $H(roomdata.blog_wiki_startmessage).toQueryString(), + onComplete: function(transport) { + + } + } + ); + } + } + ); + } + } + ); + } + } + ) + } + } + ); + + return false; +} + + +function deleteAllSelectedMessages() { + +} + + +function publishMessage() +{ + var messages = document.getElementsByClassName("message"); + var messageIdParts = messages[0].id.split('|'); + var editRoomName = getTextContent(document.getElementById("rmname")); + var roomName = editRoomName.substring(0, editRoomName.length - 5); + + var publish = { + editRoom: editRoomName, + blogRoom: roomName, + msgNo : messageIdParts[1], + msgIdStr : messageIdParts[2] + } + + mvCommand = encodeURI("g_cmd=MOVE " + publish.msgNo + "|" + publish.blogRoom + "|1"); + + new Ajax.Request("ajax_servcmd", { + parameters: mvCommand, + method: 'post', + onSuccess: function(transport) { + wCLog(transport.responseText); + } + }); +} \ No newline at end of file