Add datepicker for contact birthday

This commit is contained in:
Alexandre Cloutier
2014-04-08 12:12:30 -04:00
parent 0d69a476bc
commit 5699e5e1b4
6 changed files with 210 additions and 180 deletions

View File

@@ -36,10 +36,9 @@ function unescapeCallbackParameter(s) {
return s;
}
function copyContact(type, email, uid, sn,
displayname, givenname, telephonenumber, facsimiletelephonenumber,
mobile, postalAddress, homePostalAddress,
departmentnumber, l)
function copyContact(type, email, uid, sn, displayname,
givenname, telephonenumber, facsimiletelephonenumber,
mobile, postalAddress, homePostalAddress, departmentnumber, l)
{
// var type = arguments[0];
// var email = arguments[1];
@@ -79,55 +78,39 @@ function copyContact(type, email, uid, sn,
};
function validateContactEditor() {
var rc = true;
var rc = true;
var e = $('mail');
if (e.value.length > 0
&& !emailRE.test(e.value)) {
alert(_("invalidemailwarn"));
rc = false;
}
var e = $('mail');
if (e.value.length > 0
&& !emailRE.test(e.value)) {
alert(_("invalidemailwarn"));
rc = false;
}
e = $('mozillasecondemail');
if (e.value.length > 0
&& !emailRE.test(e.value)) {
alert(_("invalidemailwarn"));
rc = false;
}
var today = new Date();
var yyyy = today.getFullYear();
var mm = today.getMonth();
var dd = today.getDay();
var byear = $('birthyear');
var bmonth = $('birthmonth');
var bday = $('birthday');
if(byear.value <= yyyy && (byear.value.length == 4)){
if(bmonth.value <= mm && bmonth.value <= 12 && bmonth.value >=1){
if(bday.value <= dd && bday.value <= 31 && bday.value >=1){
var bdayValue = byear.value + "-" + bmonth.value + "-" + bday.value;
if (bdayValue != "--" && !dateRegex.test(bdayValue)) {
alert(_("invaliddatewarn"));
rc = false;
}
}
else{
alert(_("invaliddatewarn"));
rc = false;}
}
else{
alert(_("invalidmonthwarn"));
rc = false;}
}
else{
alert(_("invalidyearwarn"));
rc = false;}
return rc;
e = $('mozillasecondemail');
if (e.value.length > 0
&& !emailRE.test(e.value)) {
alert(_("invalidemailwarn"));
rc = false;
}
return rc
}
this.initTimeWidgets = function (widgets) {
this.timeWidgets = widgets;
var firstDay = new Date();
firstDay.setFullYear(1900,0,1);
var lastDay = new Date();
jQuery(widgets['birthday']['date']).closest('.date').datepicker({autoclose: true,
weekStart: 0,
endDate: lastDay,
startDate: firstDay,
setStartDate: lastDay,
startView: 2,
position: "below-shifted-left"});
};
function onDisplaynameKeyDown() {
var fn = $("displayname");
fn.onkeydown = null;
@@ -286,39 +269,43 @@ function onEmptyCategoryClick(event) {
}
function initEditorForm() {
var tabsContainer = $("editorTabs");
var controller = new SOGoTabsController();
controller.attachToTabsContainer(tabsContainer);
var tabsContainer = $("editorTabs");
var controller = new SOGoTabsController();
controller.attachToTabsContainer(tabsContainer);
displaynameChanged = ($("displayname").value.length > 0);
$("displayname").onkeydown = onDisplaynameKeyDown;
$("sn").onkeyup = onDisplaynameNewValue;
$("givenname").onkeyup = onDisplaynameNewValue;
displaynameChanged = ($("displayname").value.length > 0);
$("displayname").onkeydown = onDisplaynameKeyDown;
$("sn").onkeyup = onDisplaynameNewValue;
$("givenname").onkeyup = onDisplaynameNewValue;
$("cancelButton").observe("click", onEditorCancelClick);
var submitButton = $("submitButton");
if (submitButton) {
submitButton.observe("click", onEditorSubmitClick);
$("cancelButton").observe("click", onEditorCancelClick);
var submitButton = $("submitButton");
if (submitButton) {
submitButton.observe("click", onEditorSubmitClick);
}
Event.observe(document, "keydown", onDocumentKeydown);
if (typeof(gCategories) != "undefined") {
regenerateCategoriesMenu();
}
var catsInput = $("jsonContactCategories");
if (catsInput && catsInput.value.length > 0) {
var contactCats = $(catsInput.value.evalJSON(false));
for (var i = 0; i < contactCats.length; i++) {
appendCategoryInput(contactCats[i]);
}
}
Event.observe(document, "keydown", onDocumentKeydown);
var emptyCategory = $("emptyCategory");
if (emptyCategory) {
emptyCategory.tabIndex = 10000;
emptyCategory.observe("click", onEmptyCategoryClick);
}
var widgets = {'birthday': {'date': $("birthdayDate")}};
initTimeWidgets(widgets);
if (typeof(gCategories) != "undefined") {
regenerateCategoriesMenu();
}
var catsInput = $("jsonContactCategories");
if (catsInput && catsInput.value.length > 0) {
var contactCats = $(catsInput.value.evalJSON(false));
for (var i = 0; i < contactCats.length; i++) {
appendCategoryInput(contactCats[i]);
}
}
var emptyCategory = $("emptyCategory");
if (emptyCategory) {
emptyCategory.tabIndex = 10000;
emptyCategory.observe("click", onEmptyCategoryClick);
}
}
document.observe("dom:loaded", initEditorForm);