diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index b4b0d96c4..6bb3b53f3 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -38,7 +38,7 @@ var currentContactFolder = ''; /* mail list */ function openContactWindow(sender, url) { - var msgWin = window.open(url, null, "width=544,height=525"); + var msgWin = window.open(url, null, "width=545,height=545,resizable=0"); msgWin.focus(); } diff --git a/UI/WebServerResources/SchedulerUI.css b/UI/WebServerResources/SchedulerUI.css index 7b1a0aaa2..76d96da7a 100644 --- a/UI/WebServerResources/SchedulerUI.css +++ b/UI/WebServerResources/SchedulerUI.css @@ -486,9 +486,9 @@ TABLE.freeBusy TH.attendees, TABLE.freeBusy TD.attendees { position: absolute; padding: 0px .5em; + width: 10em; border: 0px !important; background: #dbdad5 !important; - width: 10em; overflow: hidden; left: 1em; } @@ -522,10 +522,10 @@ TABLE.freeBusy TD { border-bottom: 1px solid #cecbff; border-right: 1px solid #cecbff; height: 2em; - background: #fff; } + background-color: #fff; } TABLE.freeBusy TD.noFreeBusy -{ background: #559; +{ background-color: #559; border-right: 0px; } SPAN.freeBusyZoneElement @@ -540,14 +540,22 @@ TABLE.freeBusy TR.freeBusyHeader3 SPAN.freeBusyZoneElement { height: .25em; } TABLE.freeBusy TD SPAN.freeBusyZoneElement -{ height: 100%; - background-color: #8ca6bd; } +{ height: 100%; } + +SPAN[class~="colorBox"].free, +TABLE.freeBusy TD SPAN.freeBusyZoneElement +{ background-color: #8ca6bd; } TABLE.freeBusy TH SPAN[class~="freeBusyZoneElement"].busy { background-color: #c55 !important; } +SPAN[class~="colorBox"].busy, SPAN[class~="freeBusyZoneElement"].busy { background-color: #5a6b79 !important; } +SPAN[class~="colorBox"].maybe-busy, SPAN[class~="freeBusyZoneElement"].maybe-busy { background-color: #adc0d0 !important; } + +SPAN[class~="colorBox"].noFreeBusy +{ background-color: #559; } diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index a81ac7785..2c2d5eb92 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -31,9 +31,7 @@ function newEvent(sender, type) { + "?day=" + day + "&hm=" + hour); - window.open(urlstr, "", - "width=620,height=600,resizable=0,scrollbars=0,toolbar=0," + - "location=0,directories=0,status=0,menubar=0,copyhistory=0"); + window.open(urlstr, "", "width=620,height=600,resizable=0"); return false; /* stop following the link */ } @@ -891,9 +889,29 @@ function initTimeWidgets() document.forms['editform']["startTime_time_minute"].addEventListener("change", onTimeWidgetChange, false); document.forms['editform']["endTime_time_hour"].addEventListener("change", onTimeWidgetChange, false); document.forms['editform']["endTime_time_minute"].addEventListener("change", onTimeWidgetChange, false); + + document.forms['editform']["startTime_date"].assignReplica($("FBStartTimeReplica_date")); + document.forms['editform']["endTime_date"].assignReplica($("FBEndTimeReplica_date")); + document.forms['editform']["startTime_time_hour"].assignReplica(document.forms['editform']["FBStartTimeReplica_time_hour"]); + document.forms['editform']["endTime_time_hour"].assignReplica(document.forms['editform']["FBEndTimeReplica_time_hour"]); + document.forms['editform']["startTime_time_minute"].assignReplica(document.forms['editform']["FBStartTimeReplica_time_minute"]); + document.forms['editform']["endTime_time_minute"].assignReplica(document.forms['editform']["FBEndTimeReplica_time_minute"]); } function onTimeWidgetChange() { setTimeout("redisplayFreeBusyZone();", 1000); } + +function dayAsShortDateString(node) { + var dateStr = ''; + var date = node.value.split("/"); + if (date.length == 3) + dateStr += date[2] + date[1] + date[0]; + else { + date = node.value.split("-"); + dateStr += date[0] + date[1] + date[2]; + } + + return dateStr; +} diff --git a/UI/WebServerResources/UIxAppointmentEditor.css b/UI/WebServerResources/UIxAppointmentEditor.css index e63744563..bb97be9ef 100644 --- a/UI/WebServerResources/UIxAppointmentEditor.css +++ b/UI/WebServerResources/UIxAppointmentEditor.css @@ -7,7 +7,9 @@ DIV.appointmentLabel DIV#editorTabs { - width: 100%; + left: 0px; + right: 0px; + bottom: 0px; height: 38em; } @@ -125,3 +127,47 @@ SPAN.content > INPUT LABEL#urlArea INPUT { position: static; } + +DIV.freeBusyView +{ height: 24em; + overflow: auto; } + +DIV#freeBusyFooter +{ position: absolute; + left: .5em; + right: .5em; + height: 6em; + line-height: 2em; + text-align: right; + bottom: 0px; } + +DIV#freeBusyButtons +{ float: left; + text-align: center; } + +DIV#freeBusyButtons A.button +{ width: 5em; } + +DIV#freeBusyReplicas LABEL +{ line-height: 1.5em; } + +DIV.elvis UL +{ cursor: default; + float: left; + width: 30%; + margin: 0px; + padding: 0px; + list-style-type: none; + list-style-image: none; } + +DIV.elvis UL LI +{ white-space: nowrap; + margin: 0px; + padding: 0px; } + +DIV.elvis UL IMG +{ margin-right: .5em; } + +DIV.elvis UL LI SPAN.colorBox +{ float: left; + margin-right: .5em; } diff --git a/UI/WebServerResources/UIxAppointmentEditor.js b/UI/WebServerResources/UIxAppointmentEditor.js index 81504afd4..0e71419ea 100644 --- a/UI/WebServerResources/UIxAppointmentEditor.js +++ b/UI/WebServerResources/UIxAppointmentEditor.js @@ -175,23 +175,10 @@ function saveEvent(sender) { return false; } -function _dayAsShortString(node) { - var dateStr = ''; - var date = node.value.split("/"); - if (date.length == 3) - dateStr += date[2] + date[1] + date[0]; - else { - date = node.value.split("-"); - dateStr += date[0] + date[1] + date[2]; - } - - return dateStr; -} - function startDayAsShortString() { - return _dayAsShortString($('startTime_date')); + return dayAsShortDateString($('startTime_date')); } function endDayAsShortString() { - return _dayAsShortString($('endTime_date')); + return dayAsShortDateString($('endTime_date')); } diff --git a/UI/WebServerResources/UIxTaskEditor.js b/UI/WebServerResources/UIxTaskEditor.js index a608fea9e..ee4aefdf6 100644 --- a/UI/WebServerResources/UIxTaskEditor.js +++ b/UI/WebServerResources/UIxTaskEditor.js @@ -193,3 +193,11 @@ function saveEvent(sender) { return false; } + +function startDayAsShortString() { + return dayAsShortDateString($('startTime_date')); +} + +function dueDayAsShortString() { + return dayAsShortDateString($('dueTime_date')); +} diff --git a/UI/WebServerResources/generic.css b/UI/WebServerResources/generic.css index dec7dcdd1..fe9010f04 100644 --- a/UI/WebServerResources/generic.css +++ b/UI/WebServerResources/generic.css @@ -749,7 +749,10 @@ DIV.tabsContainer > DIV.tab left: .5em; right: .5em; bottom: .5em; - visibility: hidden; } + display: none; } + +DIV.tabsContainer > DIV[class~="active"].tab +{ display: block !important; } INPUT.checkBox { border: 2px solid #000; diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index 074676df8..405fe4248 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -970,7 +970,7 @@ function initTabs() container.activeTab = firstTab; var target = $(firstTab.getAttribute("target")); - target.style.visibility = "visible;"; + target.addClassName("active"); } } @@ -987,17 +987,17 @@ function onTabClick(event) { var node = event.target; var target = node.getAttribute("target"); + var container = node.parentNode.parentNode; var oldTarget = container.activeTab.getAttribute("target"); var content = $(target); var oldContent = $(oldTarget); + oldContent.removeClassName("active"); container.activeTab.removeClassName("active"); container.activeTab = node; container.activeTab.addClassName("active"); - - oldContent.style.visibility = "hidden;"; - content.style.visibility = "visible;"; + content.addClassName("active"); return false; } @@ -1031,8 +1031,8 @@ function disableAnchor(anchor) { if (onclick) anchor.setAttribute("disabled-onclick", onclick); anchor.addClassName("_disabled"); - anchor.setAttribute("href", null); - anchor.setAttribute("onclick", null); + anchor.setAttribute("href", "#"); + anchor.setAttribute("onclick", "return false;"); anchor.disabled = 1; anchor.enabled = 0; } @@ -1220,6 +1220,24 @@ String.prototype.decodeEntities = function() { }); } +HTMLInputElement.prototype._replicate = function() { + this.replica.value = this.value; +} + +HTMLInputElement.prototype.assignReplica = function(otherInput) { + this.replica = otherInput; + this.addEventListener("change", this._replicate, false); +} + +HTMLSelectElement.prototype._replicate = function() { + this.replica.value = this.value; +} + +HTMLSelectElement.prototype.assignReplica = function(otherSelect) { + this.replica = otherSelect; + this.addEventListener("change", this._replicate, false); +} + function d2h(d) { var hD = "0123456789abcdef"; var h = hD.substr(d&15,1);