mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-30 15:45:26 +00:00
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:
@@ -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; }
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user