X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=webcit%2Fstatic%2Fwclib.js;h=e8c0c4ee72c2aa1cd2df3f9e8132c02c284d9552;hp=cf409d363c7a352599cdd6935f847f66c971902c;hb=fc08ae6465b6da1d9008ce4b20b3cc2c2a5781af;hpb=d49105d4192e5e9a59e56b7522cb21a89087bc22 diff --git a/webcit/static/wclib.js b/webcit/static/wclib.js index cf409d363..e8c0c4ee7 100644 --- a/webcit/static/wclib.js +++ b/webcit/static/wclib.js @@ -1,8 +1,21 @@ /* - * Copyright 2005 - 2010 The Citadel Team - * Licensed under the GPL V3 - * * JavaScript function library for WebCit. + * + * Copyright (c) 2005-2011 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 as + * published by the Free Software Foundation; either version 3 of the + * License, or (at your option) any later version. + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ @@ -11,10 +24,6 @@ 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); @@ -163,24 +172,16 @@ function activate_iconbar_wholist_populat0r() } 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"); + + /* 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 = 'block'; + $('roomlist').innerHTML = ''; + FillRooms(IconBarRoomList); + } + else { + $('roomlist').style.display = 'none'; + } /* 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" ) { @@ -192,42 +193,6 @@ function setupIconBar() { } } -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 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 GenericTreeRoomList(roomlist) { var currentExpanded = ctdlLocalPrefs.readPref("rooms_expanded"); @@ -305,7 +270,7 @@ function addRoomToList(floorUL,room, roomToEmphasize) { var hasNewMsgs = ((raflags & UA_HASNEWMSGS) == UA_HASNEWMSGS); var roomLI = document.createElement("li"); var roomA = document.createElement("a"); - roomA.setAttribute("href","dotgoto?room="+roomName); + roomA.setAttribute("href","dotgoto?room="+encodeURIComponent(roomName)); roomA.appendChild(document.createTextNode(roomName)); roomLI.appendChild(roomA); floorUL.appendChild(roomLI); @@ -337,17 +302,26 @@ function addRoomToList(floorUL,room, roomToEmphasize) { function roomListDropHandler(target, dropped) { if (dropped.getAttribute("citadel:msgid")) { - var room = getTextContent(target); - var msgIds = ""; - for(msgId in currentlyMarkedRows) { //defined in summaryview.js - msgIds += ","+msgId; - } - var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0"); - new Ajax.Request('ajax_servcmd', { - method: 'post', + var room = getTextContent(target); + var msgIds = ""; + for(msgId in currentlyMarkedRows) { //defined in summaryview.js + msgIds += ","+msgId; + if (msgIds.length > 800) { + var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0"); + new Ajax.Request("ajax_servcmd", { + parameters: mvCommand, + method: 'post', + }); + msgIds = ""; + } + + } + var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0"); + new Ajax.Request('ajax_servcmd', { + method: 'post', parameters: mvCommand, onComplete: deleteAllMarkedRows()}); - } + } } function expandFloorEvent(event) { expandFloor(event.target); @@ -895,6 +869,7 @@ function ConfirmLogoff() { 'do_template?template=confirmlogoff', { method: 'get', + evalScripts: true, onSuccess: function(cl_success) { toggleModal(1); } @@ -910,18 +885,43 @@ function switch_to_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/expand.gif'; + $('expand_wholist').src = 'static/webcit_icons/expand.gif'; wstate=0; } else { $('online_users').style.display = 'block'; - $('expand_wholist').src = 'static/collapse.gif'; + $('expand_wholist').src = 'static/webcit_icons/collapse.gif'; activate_iconbar_wholist_populat0r(); wstate=1; } @@ -931,5 +931,6 @@ function toggle_wholist() new Ajax.Request(p, { method: 'get' } ); return false; /* this prevents the click from registering as a wholist button press */ - } + +