diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index 5629981e7..0f07a57b0 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -444,7 +444,7 @@ function onToolbarDeleteSelectedContacts(event) { var label = _("Are you sure you want to delete the selected contacts?"); var fields = createElement("p"); fields.appendChild(createButton("confirmBtn", "Yes", onToolbarDeleteSelectedContactsConfirm.bind(fields, dialogId))); - fields.appendChild(createButton("cancelBtn", "No", onBodyClickDialogHandler.bind(document.body, dialogId))); + fields.appendChild(createButton("cancelBtn", "No", onBodyClickDialogHandler)); var dialog = createDialog(dialogId, _("Confirmation"), label, @@ -467,6 +467,8 @@ function onToolbarDeleteSelectedContactsConfirm(dialogId) { var contactsList = $('contactsList'); var rows = contactsList.getSelectedRowsId(); for (var i = 0; i < rows.length; i++) { + // hide row? + $(rows[i]).hide(); delete cachedContacts[Contact.currentAddressBook + "/" + rows[i]]; var urlstr = (URLForFolderID(Contact.currentAddressBook) + "/" + rows[i] + "/delete"); @@ -475,7 +477,7 @@ function onToolbarDeleteSelectedContactsConfirm(dialogId) { rows[i]); } - onBodyClickDialogHandler(dialogId); + onBodyClickDialogHandler(); } function onContactDeleteEventCallback(http) { @@ -497,10 +499,12 @@ function onContactDeleteEventCallback(http) { loadContact(Contact.currentContact); } } + row.deselect(); row.parentNode.removeChild(row); } else if (parseInt(http.status) == 403) { var row = $(http.callbackData); + row.show(); var displayName = row.readAttribute("contactname"); Contact.deleteContactsRequestCount--; window.alert(labels["You cannot delete the card of \"%{0}\"."].formatted(displayName)); @@ -645,6 +649,7 @@ function refreshContacts(cname) { } function onAddressBookNew(event) { + var dialogId = "newAddressBookDialog"; createFolder(window.prompt(_("Name of the Address Book"), ""), appendAddressBook); preventDefault(event); @@ -800,10 +805,9 @@ function onAddressBookRemove(event) { function deletePersonalAddressBook(folderId) { if (folderId == "personal") { - var dialogId = "deletePersonalAddressBook"; + var dialogId = "deletePersonalAddressBookDialog"; var dialog = Contact.dialogs[dialogId]; if (dialog) { - dialog.show(); $("bgDialogDiv").show(); } else { @@ -811,22 +815,21 @@ function deletePersonalAddressBook(folderId) { var fields = createElement("p"); fields.appendChild(createButton(dialogId + "ContinueBtn", "Continue", - onBodyClickDialogHandler.bind(document.body, dialogId))); - var dialog = createDialog(dialogId, - _("Warning"), - label, - fields, - "none"); + onBodyClickDialogHandler)); + dialog = createDialog(dialogId, + _("Warning"), + label, + fields, + "none"); document.body.appendChild(dialog); - dialog.show(); Contact.dialogs[dialogId] = dialog; } + dialog.show(); } else { - var dialogId = "deleteAddressBook"; + var dialogId = "deleteAddressBookDialog"; var dialog = Contact.dialogs[dialogId]; if (dialog) { - dialog.show(); $("bgDialogDiv").show(); } else { @@ -834,34 +837,37 @@ function deletePersonalAddressBook(folderId) { var fields = createElement("p"); fields.appendChild(createButton(dialogId + "confirmBtn", "Yes", - deletePersonalAddressBookConfirm.bind(fields, folderId, dialogId))); + deletePersonalAddressBookConfirm.bind(fields))); fields.appendChild(createButton(dialogId + "cancelBtn", "No", - onBodyClickDialogHandler.bind(document.body, dialogId))); - var dialog = createDialog(dialogId, - _("Confirmation"), - label, - fields, - "none"); + onBodyClickDialogHandler)); + dialog = createDialog(dialogId, + _("Confirmation"), + label, + fields, + "none"); document.body.appendChild(dialog); - dialog.show(); Contact.dialogs[dialogId] = dialog; } + dialog.folderId = folderId; + dialog.show(); } - return false; - } + return false; +} -function deletePersonalAddressBookConfirm(folderId, dialogId) { +function deletePersonalAddressBookConfirm(event) { if (document.deletePersonalABAjaxRequest) { document.deletePersonalABAjaxRequest.aborted = true; document.deletePersonalABAjaxRequest.abort(); } + var dialog = $(this).up("DIV.dialog"); + var folderId = dialog.folderId; var url = ApplicationBaseURL + folderId + "/delete"; document.deletePersonalABAjaxRequest = triggerAjaxRequest(url, deletePersonalAddressBookCallback, folderId); - onBodyClickDialogHandler(dialogId); + onBodyClickDialogHandler(); } diff --git a/UI/WebServerResources/generic.css b/UI/WebServerResources/generic.css index b4a962279..54b86f9cd 100644 --- a/UI/WebServerResources/generic.css +++ b/UI/WebServerResources/generic.css @@ -675,6 +675,7 @@ A.button { height: 23px; padding-right: 3px; /* sliding doors padding */ text-decoration: none; + text-align: center; color: inherit; cursor: pointer; } @@ -685,6 +686,7 @@ A.button SPAN { line-height: 13px; padding: 5px 2px 5px 5px; cursor: pointer; + min-width: 70px; } A.button.actionButton SPAN diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index b7fa4432e..e3c939bb9 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -1692,7 +1692,7 @@ function createDialog(id, title, legend, content, positionClass) { else { bgDiv = createElement("div", "bgDialogDiv", ["bgDialog"]); document.body.appendChild(bgDiv); - bgDiv.observe("click", onBodyClickDialogHandler.bind(document.body, id)); + bgDiv.observe("click", onBodyClickDialogHandler); } } @@ -1723,8 +1723,12 @@ function createButton(id, caption, action) { return newButton; } -function onBodyClickDialogHandler(dialogId) { - $(dialogId).hide(); +function onBodyClickDialogHandler() { + $$("DIV.dialog").each(function(div) { + if (div.visible()) + div.hide(); + }); + $("bgDialogDiv").hide(); } diff --git a/UI/WebServerResources/iefixes.css b/UI/WebServerResources/iefixes.css index f057a07f5..af643466f 100644 --- a/UI/WebServerResources/iefixes.css +++ b/UI/WebServerResources/iefixes.css @@ -31,6 +31,9 @@ UL#userList DIV.tabsContainer > DIV.scrollToolbar > A > SPAN { line-height: 12px; } +DIV#bgDialogDiv +{ filter: alpha(opacity=30); } + /* MailerUI */ IMG.dragMessage