]> code.citadel.org Git - citadel.git/blobdiff - webcit/static/wclib.js
* add missing banner on preferences template
[citadel.git] / webcit / static / wclib.js
index b2d62e1a73e20185c0dd6cc1e5825cbb4b888529..f7db14842e728dd7565401bed530cba5f38dd655 100644 (file)
@@ -27,8 +27,10 @@ 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);
 //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));
 }
@@ -130,6 +132,8 @@ 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);
@@ -143,8 +147,7 @@ function setupIconBar() {
     }
   }
   var online_users = document.getElementById("online_users");
-  var ou_displayAs = online_users.style.display;
-  if (ou_displayAs != "none") {
+  if (online_users.offsetParent != null) {
     new Ajax.PeriodicalUpdater('online_users', 'do_template?template=wholist_section', {method: 'get', frequency: 30});
   }
 }
@@ -153,9 +156,7 @@ function changeIconBarEvent(event) {
 }
 function changeIconBar(target) {
   var switchTo = target.ctdlSwitchIconBarTo;
-  if (!!window.console) {
-    console.log("Changing to: " + switchTo);
-  }
+  WCLog("Changing to: " + switchTo);
   ctdlLocalPrefs.setPref("iconbar_view", target.ctdlSwitchIconBarTo);  
   if (switchTo == "rooms") {
     switch_to_room_list();
@@ -197,7 +198,8 @@ function IconBarRoomList() {
   var mailboxLI = document.createElement("li");
   ul.appendChild(mailboxLI);
   var mailboxSPAN = document.createElement("span");
-  mailboxSPAN.appendChild(document.createTextNode("Mailbox"));
+  var _mailbox = getTextContent(document.getElementById("mbox_template"));
+  mailboxSPAN.appendChild(document.createTextNode(_mailbox));
   $(mailboxSPAN).observe('click', expandFloorEvent);
   mailboxLI.appendChild(mailboxSPAN);
   mailboxLI.setAttribute("class", "floor");
@@ -657,8 +659,10 @@ function TaskViewGatherCategoriesFromTable() {
 function attachDatePicker(relative) {
        var dpck = new DatePicker({
        relative: relative,
-       language: 'en', // fix please
-       disableFutureDate: false
+             language: 'en', //wclang.substr(0,2),
+             disableFutureDate: false,
+             dateFormat: [ ["yyyy", "mm", "dd"], "-"],
+             showDuration: 0.2
        });
        document.getElementById(relative).dpck = dpck; // attach a ref to it
 }
@@ -674,9 +678,6 @@ function eventEditAllDay() {
        }
 }
 
-
-
-
 // Functions which handle show/hide of various elements in the recurrence editor
 
 function RecurrenceShowHide() {
@@ -754,3 +755,40 @@ function RecurrenceShowHide() {
        }
 
 }
+function launchChat(event) {
+window.open('chat', 'ctdl_chat_window', 'toolbar=no,location=no,directories=no,copyhistory=no,status=no,scrollbars=yes,resizable=yes');
+}
+// logger
+function WCLog(msg) {
+  if (!!window.console && !!console.log) {
+    console.log(msg);
+  } else if (!!window.opera && !!opera.postError) {
+    opera.postError(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() {
+  var elems = [$('room_banner'),$('actiondiv')];
+  fixMissingCSSTable(elems);
+}