]> code.citadel.org Git - citadel.git/blobdiff - webcit/static/wclib.js
More compfort for inline vieweable attachments
[citadel.git] / webcit / static / wclib.js
index 334bf03abcc7cf190714fc14bf4872b2fdb43bdd..cf409d363c7a352599cdd6935f847f66c971902c 100644 (file)
@@ -1,10 +1,8 @@
 /*
- * $Id$
- * Copyright 2005 - 2009 The Citadel Team
+ * Copyright 2005 - 2010 The Citadel Team
  * Licensed under the GPL V3
  *
  * JavaScript function library for WebCit.
- *
  */
 
 
@@ -23,7 +21,6 @@ var supportsAddEventListener = (!!document.addEventListener);
 var today = new Date();
 
 var wc_log = "";
-var is_ie6 = false;
 if (document.all) {browserType = "ie"}
 if (window.navigator.userAgent.toLowerCase().match("gecko")) {
        browserType= "gecko";
@@ -31,12 +28,8 @@ if (window.navigator.userAgent.toLowerCase().match("gecko")) {
 var ns6=document.getElementById&&!document.all;
 Event.observe(window, 'load', ToggleTaskDateOrNoDateActivate);
 Event.observe(window, 'load', taskViewActivate);
-Event.observe(window, 'load', fixbanner);
-Event.observe(window, 'load', resizeViewport);
-Event.observe(window, 'resize', resizeViewport);
 //document.observe("dom:loaded", setupPrefEngine);
 document.observe("dom:loaded", setupIconBar);
-document.observe('dom:loaded', function() { if (!!document.getElementById("ib_chat_launch")) { $('ib_chat_launch').observe('click', launchChat); } });
 function CtdlRandomString()  {
        return((Math.random()+'').substr(3));
 }
@@ -54,6 +47,19 @@ function strcmp ( str1, str2 ) {
     return ( ( str1 == str2 ) ? 0 : ( ( str1 > str2 ) ? 1 : -1 ) );
 }
 
+
+
+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;
   for(var i=0; i<childNodes.length; i++) {
@@ -151,6 +157,11 @@ function activate_entmsg_autocompleters() {
        new Ajax.Autocompleter('recp_id', 'recp_name_choices', 'recp_autocomplete', {} );
 }
 
+function activate_iconbar_wholist_populat0r() 
+{
+       new Ajax.PeriodicalUpdater('online_users', 'do_template?template=who_iconbar', {method: 'get', frequency: 30});
+}
+
 function setupIconBar() {
   if (!document.getElementById("switch")) {
       return;
@@ -170,9 +181,16 @@ function setupIconBar() {
     }
   }
   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});
-  }
+
+       /* 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 = 'block';
+               activate_iconbar_wholist_populat0r();
+       }
+       else {
+               $('online_users').style.display = 'none';
+       }
+
 }
 function changeIconBarEvent(event) {
   changeIconBar(event.target);
@@ -324,7 +342,7 @@ function roomListDropHandler(target, dropped) {
     for(msgId in currentlyMarkedRows) { //defined in summaryview.js
       msgIds += ","+msgId;
     }
-    var mvCommand = "g_cmd=MOVE " + msgIds + "|"+room+"|0";
+    var mvCommand = encodeURI("g_cmd=MOVE " + msgIds + "|"+room+"|0");
     new Ajax.Request('ajax_servcmd', {
       method: 'post',
          parameters: mvCommand,
@@ -601,7 +619,7 @@ function ctdl_ts_getInnerText(el) {
 // Place a gradient loadscreen on an element, e.g to use before Ajax.updater
 function CtdlLoadScreen(elementid) {
 var elem = document.getElementById(elementid);
-elem.innerHTML = "<div align=center><br><table border=0 cellpadding=10 bgcolor=\"#ffffff\"><tr><td><img src=\"static/throbber.gif\" /><font color=\"#AAAAAA\">&nbsp;&nbsp;Loading....</font></td></tr></table><br /></div>";
+elem.innerHTML = "<div align=center><br><table border=0 cellpadding=10 bgcolor=\"#ffffff\"><tr><td><img src=\"static/throbber.gif\" /><font color=\"#AAAAAA\">&nbsp;&nbsp;Loading....</font></td></tr></table><br></div>";
 }
 
 
@@ -623,7 +641,7 @@ function PopOpenAddressBook(target_input) {
 }
 
 function PopulateAddressBookInnerDiv(which_addr_book, target_input) {
-       $('address_book_inner_div').innerHTML = "<div align=center><br><table border=0 cellpadding=10 bgcolor=\"#ffffff\"><tr><td><img src=\"static/throbber.gif\" /><font color=\"#AAAAAA\">&nbsp;&nbsp;Loading....</font></td></tr></table><br /></div>";
+       $('address_book_inner_div').innerHTML = "<div align=center><br><table border=0 cellpadding=10 bgcolor=\"#ffffff\"><tr><td><img src=\"static/throbber.gif\" /><font color=\"#AAAAAA\">&nbsp;&nbsp;Loading....</font></td></tr></table><br></div>";
        p = 'which_addr_book=' + which_addr_book
          + '&target_input=' + target_input
          + '&r=' + CtdlRandomString();
@@ -853,92 +871,6 @@ function WCLog(msg) {
   }
 }
 
-function fixMissingCSSTable(elems) {
- if (elems[0] == null || elems[1] == null) {
-    return;
-  }
-  if (elems[0].getStyle("display") != "table-cell") {
-    var parentNode = elems[0].parentNode;
-    var table = document.createElement("table");
-    table.style.width = "100%";
-    var tbody = document.createElement("tbody");
-    table.appendChild(tbody);
-    var tr = document.createElement("tr");
-    tbody.appendChild(tr);
-    parentNode.appendChild(table);
-    for(var i=0; i<elems.length; i++) {
-      parentNode.removeChild(elems[i]);
-      var td = document.createElement("td");
-      td.appendChild(elems[i]);
-      tr.appendChild(td);
-    }
-  }
-}
-function fixbanner() {
-  // Use prototype api methods here
-  var elems = [$('room_banner'),$('actiondiv')];
-  fixMissingCSSTable(elems);
-  if (!is_ie6) {
-    Event.observe(window, 'resize', makeContentScrollable);
-    makeContentScrollable();
-  }
-}
-function makeContentScrollable() {
-if (document.getElementById("banner")
-      && document.getElementById("content") 
-      && !document.getElementById("summary_view")) {
-  WCLog("makeContentScrollable");
-    document.body.style.overflowY="hidden";
-    var global = $("global");
-    global.className += "scrollable";
-    var content = document.getElementById("content");
-    var banner = document.getElementById("banner");
-    var bannerHeight = banner.offsetHeight;
-    banner.style.width="100%";
-    var bannerPercent = (bannerHeight/document.viewport.getHeight())*100;
-    //banner.style.height=bannerPercent+"%";
-    content.style.overflowY="scroll";
-    //content.style.top=bannerPercent+"%";
-    content.style.height=(100-bannerPercent)+"%";
-    content.style.right="0px";
-  }
-}
-function fixOffsetBanner() {
-  var banner = document.getElementById("banner");
-  if (banner.offsetLeft > 0) {
-    var viewportWidth = document.viewport.getWidth();
-    var iconbarWidth = document.getElementById("iconbar").offsetWidth;
-    var contentDiv = document.getElementById("content");
-    var newContentWidth = viewportWidth-iconbarWidth;
-    contentDiv.style.width = newContentWidth+"px";
-  }
-}
-/** Attempt to stop overflowing in x-axis in IE6 */
-function resizeViewport() {
-  var documentWidth = 0;
-  var viewportWidth = document.viewport.getWidth();
-  var iconbar = $('iconbar');
-  var global = $('global');
-  if (iconbar == null || global == null || document.documentElement == null) {
-    return;
-  }
-  if (typeof window.offsetWidth != 'undefined') {
-    documentWidth = window.offsetWidth;
-  } else {
-    documentWidth = document.documentElement.offsetWidth;
-  }
-  if (documentWidth > viewportWidth) {
-    WCLog("resizeViewport");
-    document.documentElement.style.width = viewportWidth+"px";
-    document.documentElement.style.overflowX = "hidden";
-    //viewportWidth = 0.98 * viewportWidth;
-    var newIconBarSize = 0.16 * viewportWidth;
-    var newContentSize = viewportWidth - newIconBarSize;
-    iconbar.style.width = newIconBarSize+"px";
-    global.style.width = newContentSize+"px";
-  }
-}
-
 function RefreshSMTPqueueDisplay() {
        new Ajax.Updater('smtpqueue_inner_div',
        'display_smtpqueue_inner_div', { method: 'get',
@@ -946,25 +878,58 @@ function RefreshSMTPqueueDisplay() {
 }
 
 function DeleteSMTPqueueMsg(msgnum1, msgnum2) {
+       var p = encodeURI('g_cmd=DELE ' + msgnum1 + ',' + msgnum2);
        new Ajax.Request(
                'ajax_servcmd', {
                        method: 'post',
-                       parameters: 'g_cmd=DELE ' + msgnum1 + ',' + msgnum2,
+                       parameters: p,
                        onComplete: RefreshSMTPqueueDisplay()
                }
        );
 }
 
-/*
- * Update function for BBS view
- */
-function moremsgs(target_div, gt_or_lt, gt_or_lt_value, maxmsgs)
+
+function ConfirmLogoff() {
+       new Ajax.Updater(
+               'md-content',
+               'do_template?template=confirmlogoff',
+               {
+                       method: 'get',
+                       onSuccess: function(cl_success) {
+                               toggleModal(1);
+                       }
+               }
+       );
+}
+
+
+function switch_to_lang(new_lang) {
+       p = 'push?url=' + encodeURI(window.location);
+       new Ajax.Request(p, { method: 'get' } );
+       window.location = 'switch_language?lang=' + new_lang ;
+}
+
+
+function toggle_wholist() 
 {
-       $(target_div).innerHTML = '<div class="moreprompt"><img src="static/throbber.gif"></div>';
-       p = gt_or_lt + '=' + gt_or_lt_value + '&maxmsgs=' + maxmsgs
-               + '&is_summary=0&is_ajax=1'
-               + '&gt_or_lt=' + gt_or_lt
-               + '&r=' + CtdlRandomString();
-       new Ajax.Updater(target_div, 'read' + gt_or_lt,
-               { method: 'get', parameters: p, evalScripts: true } );
+       /* 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';
+               wstate=0;
+       }
+
+       else {
+               $('online_users').style.display = 'block';
+               $('expand_wholist').src = 'static/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 */
+
 }