Monotone-Parent: 05aeb8f1ae44da7f6bcfe572acfabe06f62b5581

Monotone-Revision: ab64e7a2a001d712b867322558be1f8685e0ab71

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-10-30T22:43:13
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau 2006-10-30 22:43:13 +00:00
parent ff61bea99e
commit a55da84f79
4 changed files with 170 additions and 39 deletions

View file

@ -884,35 +884,86 @@ function browseUrl(anchor, event) {
return false;
}
function initTimeWidgets()
{
document.forms['editform']["startTime_time_hour"].addEventListener("change", onTimeWidgetChange, false);
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("/");
HTMLInputElement.prototype.valueAsDate = function () {
var newDate;
var date = this.value.split("/");
if (date.length == 3)
dateStr += date[2] + date[1] + date[0];
newDate = new Date(date[2], date[1] - 1, date[0]);
else {
date = node.value.split("-");
dateStr += date[0] + date[1] + date[2];
date = this.value.split("-");
newDate = new Date(date[0], date[1] - 1, date[2]);
}
return newDate;
}
HTMLInputElement.prototype._detectDateSeparator = function() {
var date = this.value.split("/");
if (date.length == 3)
this.dateSeparator = "/";
else
this.dateSeparator = "-";
}
HTMLInputElement.prototype.valueAsShortDateString = function() {
var dateStr = '';
if (!this.dateSeparator)
this._detectDateSeparator();
var date = this.value.split(this.dateSeparator);
if (this.dateSeparator == '/')
dateStr += date[2] + date[1] + date[0];
else
dateStr += date[0] + date[1] + date[2];
return dateStr;
}
Date.prototype.sogoDayName = function() {
var dayName = "";
var day = this.getDay();
if (day == 0) {
dayName = labels['a2_Sunday'];
} else if (day == 1) {
dayName = labels['a2_Monday'];
} else if (day == 2) {
dayName = labels['a2_Tuesday'];
} else if (day == 3) {
dayName = labels['a2_Wednesday'];
} else if (day == 4) {
dayName = labels['a2_Thursday'];
} else if (day == 5) {
dayName = labels['a2_Friday'];
} else if (day == 6) {
dayName = labels['a2_Saturday'];
}
return dayName;
}
Date.prototype.daysUpTo = function(otherDate) {
var days = new Array();
var day1 = this.getTime();
var day2 = otherDate.getTime();
var nbrDays = Math.floor((day2 - day1) / 86400000) + 1;
for (var i = 0; i < nbrDays; i++) {
var newDate = new Date();
newDate.setTime(day1 + (i * 86400000));
days.push(newDate);
}
return days;
}
Date.prototype.sogoFreeBusyStringWithSeparator = function(separator) {
var str = this.sogoDayName() + ", ";
if (separator == '-')
str += (this.getYear() + 1900) + '-' + (this.getMonth() + 1) + '-' + this.getDate();
else
str += this.getDate() + '/' + (this.getMonth() + 1) + '/' + (this.getYear() + 1900);
return str;
}

View file

@ -176,9 +176,9 @@ function saveEvent(sender) {
}
function startDayAsShortString() {
return dayAsShortDateString($('startTime_date'));
return $('startTime_date').valueAsShortDateString();
}
function endDayAsShortString() {
return dayAsShortDateString($('endTime_date'));
return $('endTime_date').valueAsShortDateString();
}

View file

@ -56,12 +56,11 @@ function resetFreeBusyZone()
{
var table = $("attendeesView").childNodesWithTag("div")[0].childNodesWithTag("table")[0];
var row = table.tHead.rows[2];
for (var i = 1; i < row.cells.length; i++)
{
var nodes = row.cells[i].childNodesWithTag("span");
for (var j = 0; j < nodes.length; j++)
nodes[j].removeClassName("busy");
}
for (var i = 1; i < row.cells.length; i++) {
var nodes = row.cells[i].childNodesWithTag("span");
for (var j = 0; j < nodes.length; j++)
nodes[j].removeClassName("busy");
}
}
function redisplayFreeBusyZone()
@ -231,6 +230,11 @@ function resetAttendeesValue()
input.value = uids.join(",");
}
function onTimeRangeChange(event)
{
window.alert("onchange: " + event);
}
function initializeFreeBusyUserSelector(selectorId)
{
freeBusySelectorId = selectorId;
@ -246,9 +250,61 @@ function resetAllFreeBusys()
for (var i = 0; i < inputs.length - 2; i++) {
var currentInput = inputs[i];
currentInput.hasfreebusy = false;
log ("input: " + currentInput.uid);
// log ("input: " + currentInput.uid);
awaitingFreeBusyRequests.push(currentInput);
}
if (awaitingFreeBusyRequests.length > 0)
displayFreeBusyForNode(awaitingFreeBusyRequests.shift());
}
function initTimeWidgets(widgets)
{
this.timeWidgets = widgets;
widgets['start']['hour'].addEventListener("change", onTimeWidgetChange, false);
widgets['end']['minute'].addEventListener("change", onTimeWidgetChange, false);
widgets['start']['hour'].addEventListener("change", onTimeWidgetChange, false);
widgets['end']['minute'].addEventListener("change", onTimeWidgetChange, false);
widgets['start']['date'].addEventListener("change", onTimeDateWidgetChange, false);
widgets['end']['date'].addEventListener("change", onTimeDateWidgetChange, false);
widgets['start']['date'].assignReplica($("FBStartTimeReplica_date"));
widgets['start']['hour'].assignReplica($("FBStartTimeReplica_time_hour"));
widgets['start']['minute'].assignReplica($("FBStartTimeReplica_time_minute"));
widgets['end']['date'].assignReplica($("FBEndTimeReplica_date"));
widgets['end']['hour'].assignReplica($("FBEndTimeReplica_time_hour"));
widgets['end']['minute'].assignReplica($("FBEndTimeReplica_time_minute"));
}
function onTimeDateWidgetChange(event) {
if (document.timeWidgetsFreeBusyAjaxRequest) {
document.timeWidgetsFreeBusyAjaxRequest.aborted = true;
document.timeWidgetsFreeBusyAjaxRequest.abort();
}
var date1 = window.timeWidgets['start']['date'].valueAsShortDateString();
var date2 = window.timeWidgets['end']['date'].valueAsShortDateString();
var attendees = $(freeBusySelectorId).value;
var urlstr = ( "../freeBusyTable?sday=" + date1 + "&eday=" + date2
+ "&attendees=" + attendees );
document.timeWidgetsFreeBusyAjaxRequest
= triggerAjaxRequest(urlstr, timeWidgetsFreeBusyCallback);
}
function timeWidgetsFreeBusyCallback(http)
{
if (http.readyState == 4) {
if (http.status == 200) {
var div = $("parentOf" + freeBusySelectorId.capitalize());
div.innerHTML = http.responseText;
resetAttendeesValue();
resetAllFreeBusys();
}
document.timeWidgetsFreeBusyAjaxRequest = null;
}
}
function onTimeWidgetChange()
{
setTimeout("redisplayFreeBusyZone();", 1000);
}

View file

@ -1213,6 +1213,14 @@ String.prototype.trim = function() {
return this.replace(/(^\s+|\s+$)/g, '');
}
String.prototype.capitalize = function() {
return this.replace(/\w+/g,
function(a) {
return ( a.charAt(0).toUpperCase()
+ a.substr(1).toLowerCase() );
});
}
String.prototype.decodeEntities = function() {
return this.replace(/&#(\d+);/g,
function(wholematch, parenmatch1) {
@ -1221,21 +1229,37 @@ String.prototype.decodeEntities = function() {
}
HTMLInputElement.prototype._replicate = function() {
this.replica.value = this.value;
if (this.replica) {
this.replica.value = this.value;
var onReplicaChangeEvent = document.createEvent("Event");
onReplicaChangeEvent.initEvent("change", true, true);
this.replica.dispatchEvent(onReplicaChangeEvent);
}
}
HTMLInputElement.prototype.assignReplica = function(otherInput) {
if (!this._onChangeBound) {
this.addEventListener("change", this._replicate, false);
this._onChangeBound = true;
}
this.replica = otherInput;
this.addEventListener("change", this._replicate, false);
}
HTMLSelectElement.prototype._replicate = function() {
this.replica.value = this.value;
if (this.replica) {
this.replica.value = this.value;
var onReplicaChangeEvent = document.createEvent("Event");
onReplicaChangeEvent.initEvent("change", true, true);
this.replica.dispatchEvent(onReplicaChangeEvent);
}
}
HTMLSelectElement.prototype.assignReplica = function(otherSelect) {
if (!this._onChangeBound) {
this.addEventListener("change", this._replicate, false);
this._onChangeBound = true;
}
this.replica = otherSelect;
this.addEventListener("change", this._replicate, false);
}
function d2h(d) {