propagate from branch 'ca.inverse.sogo.1_3_12' (head 235258efee8273e9b6d2822d3d5da125520631c7)

to branch 'ca.inverse.sogo' (head b2bfdd5b59fed2950707131eca171b4758bcd635)

Monotone-Parent: 235258efee8273e9b6d2822d3d5da125520631c7
Monotone-Parent: b2bfdd5b59fed2950707131eca171b4758bcd635
Monotone-Revision: f67fbb0139df60f0e98c0aede6b166d1a8b15d81

Monotone-Author: flachapelle@inverse.ca
Monotone-Date: 2012-02-08T04:24:33
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Francis Lachapelle
2012-02-08 04:24:33 +00:00
132 changed files with 5043 additions and 3264 deletions
+44 -27
View File
@@ -258,17 +258,6 @@ function onContactContextMenuHide(event) {
this.stopObserving("contextmenu:hide", onContactContextMenuHide);
}
function onFolderMenuHide(event) {
var topNode = $('d');
if (topNode.menuSelectedEntry) {
topNode.menuSelectedEntry.deselect();
topNode.menuSelectedEntry = null;
}
if (topNode.selectedEntry)
topNode.selectedEntry.selectElement();
}
function _onContactMenuAction(folderItem, action, refresh) {
var selectedFolders = $("contactFolders").getSelectedNodes();
var folderId = $(folderItem).readAttribute("folderId");
@@ -308,8 +297,9 @@ function onContactMenuMove(event) {
function onMenuExportContact (event) {
var selectedFolders = $("contactFolders").getSelectedNodes();
var selectedFolderId = $(selectedFolders[0]).readAttribute("id");
if (selectedFolderId != "/shared") {
var canExport = (selectedFolders[0].getAttribute("owner") != "nobody");
if (canExport) {
var selectedFolderId = $(selectedFolders[0]).readAttribute("id");
var contactIds = $(document.menuTarget).collect(function(row) {
return row.getAttribute("id");
});
@@ -512,9 +502,6 @@ function onToolbarDeleteSelectedContactsConfirm(dialogId) {
var contactsList = $('contactsList');
var rows = contactsList.getSelectedRowsId();
for (var i = 0; i < rows.length; i++) {
var row = $(rows[i]);
row.deselect();
row.hide();
delete cachedContacts[Contact.currentAddressBook + "/" + rows[i]];
var urlstr = (URLForFolderID(Contact.currentAddressBook) + "/"
+ rows[i] + "/delete");
@@ -532,6 +519,7 @@ function onContactDeleteEventCallback(http) {
$("contactView").update();
Contact.currentContact = null;
}
Contact.deleteContactsRequestCount--;
if (Contact.deleteContactsRequestCount == 0) {
var nextRow = row.next("tr");
@@ -543,7 +531,10 @@ function onContactDeleteEventCallback(http) {
loadContact(Contact.currentContact);
}
}
row.parentNode.removeChild(row);
if (row) {
row.deselect();
row.parentNode.removeChild(row);
}
}
else if (parseInt(http.status) == 403) {
var row = $(http.callbackData);
@@ -598,10 +589,11 @@ function newContact(sender) {
function newList(sender) {
var li = $(Contact.currentAddressBook);
if (li.hasClassName("remote"))
showAlertDialog(_("You cannot create a list in a shared address book."));
else
var listEditing = li.getAttribute("list-editing");
if (listEditing && listEditing == "available")
openContactWindow(URLForFolderID(Contact.currentAddressBook) + "/newlist");
else
showAlertDialog(_("You cannot create a list in a shared address book."));
return false;
}
@@ -1068,15 +1060,15 @@ function onMenuSharing(event) {
var folders = $("contactFolders");
var selected = folders.getSelectedNodes()[0];
var owner = selected.getAttribute("owner");
if (owner == "nobody")
showAlertDialog(_("The user rights cannot be edited for this object!"));
else {
var aclEditing = selected.getAttribute("acl-editing");
if (aclEditing && aclEditing == "available") {
var title = this.innerHTML;
var url = URLForFolderID(selected.getAttribute("id"));
openAclWindow(url + "/acls", title);
}
else
showAlertDialog(_("The user rights cannot be edited for this object!"));
}
function onAddressBooksMenuPrepareVisibility() {
@@ -1089,30 +1081,55 @@ function onAddressBooksMenuPrepareVisibility() {
var menu = $("contactFoldersMenu").down("ul");;
var listElements = menu.childNodesWithTag("li");
var modifyOption = listElements[0];
var newListOption = listElements[3];
var removeOption = listElements[5];
var exportOption = listElements[7];
var importOption = listElements[8];
var sharingOption = listElements[listElements.length - 1];
// Disable the "Sharing" and "Modify" options when address book
// is not owned by user
if (folderOwner == UserLogin || IsSuperUser) {
modifyOption.removeClassName("disabled"); // WARNING: will fail for super users anyway
sharingOption.removeClassName("disabled");
modifyOption.removeClassName("disabled"); // WARNING: will fail
// for super users
// anyway
var aclEditing = selected[0].getAttribute("acl-editing");
if (aclEditing && aclEditing == "available") {
sharingOption.removeClassName("disabled");
}
else {
sharingOption.addClassName("disabled");
}
}
else {
modifyOption.addClassName("disabled");
sharingOption.addClassName("disabled");
}
var listEditing = selected[0].getAttribute("list-editing");
if (listEditing && listEditing == "available") {
newListOption.removeClassName("disabled");
}
else {
newListOption.addClassName("disabled");
}
/* Disable the "remove" and "export ab" options when address book is
public */
if (folderOwner == "nobody") {
exportOption.addClassName("disabled");
importOption.addClassName("disabled");
removeOption.addClassName("disabled");
}
else {
exportOption.removeClassName("disabled");
removeOption.removeClassName("disabled");
importOption.removeClassName("disabled");
if (selected[0].getAttribute("id") == "/personal") {
removeOption.addClassName("disabled");
}
else {
removeOption.removeClassName("disabled");
}
}
return true;
@@ -69,3 +69,9 @@ INPUT.comboBoxField, #emptyCategory
#otherInfos TEXTAREA
{ width: 70%; }
#birthday, #birthmonth
{ width: 18px; }
#birthyear
{ width: 36px; }
+53 -49
View File
@@ -22,9 +22,9 @@
02111-1307, USA.
*/
var dateRegex = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
var dateRegex = /^(([0-9]{2})?[0-9])?[0-9]-[0-9]?[0-9]-[0-9]?[0-9]$/;
var displayNameChanged = false;
var displaynameChanged = false;
var tabIndex = 0;
@@ -37,43 +37,43 @@ function unescapeCallbackParameter(s) {
}
function copyContact(type, email, uid, sn,
cn, givenName, telephoneNumber, facsimileTelephoneNumber,
mobile, postalAddress, homePostalAddress,
departmentNumber, l)
displayname, givenname, telephonenumber, facsimiletelephonenumber,
mobile, postalAddress, homePostalAddress,
departmentnumber, l)
{
// var type = arguments[0];
// var email = arguments[1];
// var uid = arguments[2];
// var sn = arguments[3];
// var givenName = arguments[4];
// var telephoneNumber = arguments[5];
// var facsimileTelephoneNumber = arguments[6];
// var givenname = arguments[4];
// var telephonenumber = arguments[5];
// var facsimiletelephonenumber = arguments[6];
// var mobile = arguments[7];
// var postalAddress = arguments[8];
// var homePostalAddress = arguments[9];
// var departmentNumber = arguments[10];
// var postaladdress = arguments[8];
// var homepostaladdress = arguments[9];
// var departmentnumber = arguments[10];
// var l = arguments[11];
var e;
e = $('cn');
e.setAttribute('value', unescapeCallbackParameter(cn));
e = $('displayname');
e.setAttribute('value', unescapeCallbackParameter(displayname));
e = $('email');
e.setAttribute('value', email);
e = $('sn');
e.setAttribute('value', unescapeCallbackParameter(sn));
e = $('givenName');
e.setAttribute('value', unescapeCallbackParameter(givenName));
e = $('telephoneNumber');
e.setAttribute('value', telephoneNumber);
e = $('facsimileTelephoneNumber');
e.setAttribute('value', facsimileTelephoneNumber);
e = $('givenname');
e.setAttribute('value', unescapeCallbackParameter(givenname));
e = $('telephonenumber');
e.setAttribute('value', telephonenumber);
e = $('facsimiletelephonenumber');
e.setAttribute('value', facsimileTelephonenumber);
e = $('mobile');
e.setAttribute('value', mobile);
e = $('postalAddress');
e = $('postaladdress');
e.setAttribute('value', unescapeCallbackParameter(postalAddress));
e = $('homePostalAddress');
e = $('homepostaladdress');
e.setAttribute('value', unescapeCallbackParameter(homePostalAddress));
e = $('departmentNumber');
e.setAttribute('value', unescapeCallbackParameter(departmentNumber));
e = $('departmentnumber');
e.setAttribute('value', unescapeCallbackParameter(departmentnumber));
e = $('l');
e.setAttribute('value', unescapeCallbackParameter(l));
};
@@ -81,23 +81,25 @@ function copyContact(type, email, uid, sn,
function validateContactEditor() {
var rc = true;
var e = $('workMail');
var e = $('mail');
if (e.value.length > 0
&& !emailRE.test(e.value)) {
alert(_("invalidemailwarn"));
rc = false;
}
e = $('homeMail');
e = $('mozillasecondemail');
if (e.value.length > 0
&& !emailRE.test(e.value)) {
alert(_("invalidemailwarn"));
rc = false;
}
e = $('birthday');
if (e.value.length > 0
&& !dateRegex.test(e.value)) {
var byear = $('birthyear');
var bmonth = $('birthmonth');
var bday = $('birthday');
var bdayValue = byear.value + "-" + bmonth.value + "-" + bday.value;
if (bdayValue != "--" && !dateRegex.test(bdayValue)) {
alert(_("invaliddatewarn"));
rc = false;
}
@@ -105,25 +107,25 @@ function validateContactEditor() {
return rc;
}
function onFnKeyDown() {
var fn = $("fn");
function onDisplaynameKeyDown() {
var fn = $("displayname");
fn.onkeydown = null;
displayNameChanged = true;
displaynameChanged = true;
return true;
}
function onFnNewValue(event) {
if (!displayNameChanged) {
function onDisplaynameNewValue(event) {
if (!displaynameChanged) {
var sn = $("sn").value.trim();
var givenName = $("givenName").value.trim();
var givenname = $("givenname").value.trim();
var fullName = givenName;
if (fullName && sn)
fullName += ' ';
fullName += sn;
var fullname = givenname;
if (fullname && sn)
fullname += ' ';
fullname += sn;
$("fn").value = fullName;
$("displayname").value = fullname;
}
return true;
@@ -144,7 +146,7 @@ function onEditorSubmitClick(event) {
function saveCategories() {
var container = $("categoryContainer");
var catsInput = $("contactCategories");
var catsInput = $("jsonContactCategories");
if (container && catsInput) {
var newCategories = $([]);
var inputs = container.select("INPUT");
@@ -164,8 +166,8 @@ function onDocumentKeydown(event) {
var target = Event.element(event);
if (target.tagName == "INPUT" || target.tagName == "SELECT") {
if (event.keyCode == Event.KEY_RETURN) {
var fcn = onEditorSubmitClick.bind($("submitButton"));
fcn();
var fdisplayname = onEditorSubmitClick.bind($("submitButton"));
fdisplayname();
Event.stop(event);
}
}
@@ -267,10 +269,10 @@ function initEditorForm() {
var controller = new SOGoTabsController();
controller.attachToTabsContainer(tabsContainer);
displayNameChanged = ($("fn").value.length > 0);
$("fn").onkeydown = onFnKeyDown;
$("sn").onkeyup = onFnNewValue;
$("givenName").onkeyup = onFnNewValue;
displaynameChanged = ($("displayname").value.length > 0);
$("displayname").onkeydown = onDisplaynameKeyDown;
$("sn").onkeyup = onDisplaynameNewValue;
$("givenname").onkeyup = onDisplaynameNewValue;
$("cancelButton").observe("click", onEditorCancelClick);
var submitButton = $("submitButton");
@@ -280,8 +282,10 @@ function initEditorForm() {
Event.observe(document, "keydown", onDocumentKeydown);
regenerateCategoriesMenu();
var catsInput = $("contactCategories");
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++) {
@@ -294,6 +298,6 @@ function initEditorForm() {
emptyCategory.tabIndex = 10000;
emptyCategory.observe("click", onEmptyCategoryClick);
}
}
}
document.observe("dom:loaded", initEditorForm);