]> err.no Git - scalable-opengroupware.org/blobdiff - UI/WebServerResources/SchedulerUI.js
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1032 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / WebServerResources / SchedulerUI.js
index f2d800c3c1837ad06d602b4713a963b45ff5b2ed..88a6680f6c5b3254d655483e19c79f9ed2e09247 100644 (file)
@@ -22,8 +22,13 @@ function newEvent(sender, type) {
   if (!day)
     day = currentDay;
 
+  var user = UserLogin;
+  if (sender.parentNode.getAttribute("id") != "toolbar"
+      && currentView == "multicolumndayview" && type == "event")
+     user = sender.parentNode.parentNode.getAttribute("user");
+
   var hour = sender.getAttribute("hour");
-  var urlstr = ApplicationBaseURL + "new" + type;
+  var urlstr = UserFolderURL + "../" + user + "/Calendar/new" + type;
   var params = new Array();
   if (day)
     params.push("day=" + day);
@@ -375,6 +380,7 @@ function changeDateSelectorDisplay(day, keepCurrentDay)
     if (!keepCurrentDay)
       currentDay = day;
 
+    log (backtrace());
     var month = day.substr(0, 6);
     if (cachedDateSelectors[month]) {
 //       log ("restoring cached selector for month: " + month);
@@ -442,6 +448,11 @@ function onDayOverview()
   return _ensureView("dayview");
 }
 
+function onMulticolumnDayOverview()
+{
+  return _ensureView("multicolumndayview");
+}
+
 function onWeekOverview()
 {
   return _ensureView("weekview");
@@ -773,7 +784,11 @@ function onCalendarSelectAppointment() {
 }
 
 function onCalendarSelectDay(event) {
-  var day = this.getAttribute("day");
+  var day;
+  if (currentView == "multicolumndayview")
+     day = this.parentNode.getAttribute("day");
+  else
+     day = this.getAttribute("day");
   var needRefresh = (listFilter == 'view_selectedday'
                      && day != currentDay);
 
@@ -802,36 +817,32 @@ function changeWeekCalendarDisplayOfSelectedDay(node) {
   node.addClassName("selectedDay");
 }
 
-function findMonthCalendarSelectedCell(table) {
-  var tbody = table.tBodies[0];
-  var rows = tbody.rows;
+function findMonthCalendarSelectedCell(daysContainer) {
+   var found = false;
+   var i = 0;
 
-  var i = 1;
-  while (i < rows.length && !table.selectedCell) {
-    var cells = rows[i].cells;
-    var j = 0;
-    while (j < cells.length && !table.selectedCell) {
-      if (cells[j].hasClassName("selectedDay"))
-        table.selectedCell = cells[j];
+   while (!found && i < daysContainer.childNodes.length) {
+      var currentNode = daysContainer.childNodes[i];
+      if (currentNode instanceof HTMLDivElement
+          && currentNode.hasClassName("selectedDay")) {
+         daysContainer.selectedCell = currentNode;
+         found = true;
+      }
       else
-        j++;
-    }
-    i++;
-  }
+         i++;
+   }
 }
 
 function changeMonthCalendarDisplayOfSelectedDay(node)
 {
-  var tr = node.parentNode;
-  var table = tr.parentNode.parentNode;
-
-  if (!table.selectedCell)
-    findMonthCalendarSelectedCell(table);
-
-  if (table.selectedCell)
-    table.selectedCell.removeClassName("selectedDay");
-  table.selectedCell = node;
-  node.addClassName("selectedDay");
+   var daysContainer = node.parentNode;
+   if (!daysContainer.selectedCell)
+      findMonthCalendarSelectedCell(daysContainer);
+   
+   if (daysContainer.selectedCell)
+      daysContainer.selectedCell.removeClassName("selectedDay");
+   daysContainer.selectedCell = node;
+   node.addClassName("selectedDay");
 }
 
 function onHideCompletedTasks(node)
@@ -1058,10 +1069,12 @@ function addContact(tag, fullContactName, contactId, contactName, contactEmail)
 
 function onChangeCalendar(list) {
    var form = document.forms.editform;
+   log ("before: " + form.getAttribute("action"));
    var urlElems = form.getAttribute("action").split("/");
    urlElems[urlElems.length-4]
       = list.childNodesWithTag("option")[list.value].innerHTML;
    form.setAttribute("action", urlElems.join("/"));
+   log ("after: " + form.getAttribute("action"));
 }
 
 function validateBrowseURL(input) {
@@ -1145,4 +1158,13 @@ function initCalendars() {
     initCalendarContactsSelector();
 }
 
+function onSchedulerBodyKeyUp(event) {
+   if (event.which == 46) {
+      window.alert("coucou");
+      deleteEvent();
+      event.cancelBubble = true;
+   }
+}
+
 window.addEventListener("load", initCalendars, false);
+// document.body.addEventListener("keyup", onSchedulerBodyKeyUp, false);