diff --git a/ChangeLog b/ChangeLog index 5cf2b767f..885747a24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2010-08-19 Francis Lachapelle + * UI/WebServerResources/generic.js (showConfirmDialog): new + function to replace window.confirm(). + * UI/WebServerResources/MailerUI.js (onMenuEmptyTrash): delete the cache of the trash mailbox when called. diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index b07b61168..01b75f7a3 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -9,8 +9,7 @@ var usersRightsWindowWidth = 450; var Contact = { currentAddressBook: null, currentContact: null, - deleteContactsRequestCount: null, - dialogs: {} + deleteContactsRequestCount: null }; function validateEditorInput(sender) { @@ -433,29 +432,10 @@ function onToolbarDeleteSelectedContacts(event) { var contactsList = $('contactsList'); var rows = contactsList.getSelectedRowsId(); - if (rows.length) { - var dialogId = "deleteContactsDialog"; - var dialog = Contact.dialogs[dialogId]; - if (dialog) { - dialog.show(); - $("bgDialogDiv").show(); - } - else { - 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"), disposeDialog)); - var dialog = createDialog(dialogId, - _("Confirmation"), - label, - fields, - "none"); - document.body.appendChild(dialog); - dialog.show(); - Contact.dialogs[dialogId] = dialog; - } - return false; - } + if (rows.length) + showConfirmDialog(_("Confirmation"), + _("Are you sure you want to delete the selected contacts?"), + onToolbarDeleteSelectedContactsConfirm); else showAlertDialog(_("Please select a contact.")); @@ -807,45 +787,21 @@ function onAddressBookRemove(event) { } function deletePersonalAddressBook(folderId) { - if (folderId == "personal") { + if (folderId == "personal") showAlertDialog(_("You cannot remove nor unsubscribe from your personal addressbook.")); - } - else { - var dialogId = "deleteAddressBookDialog"; - var dialog = Contact.dialogs[dialogId]; - if (dialog) { - $("bgDialogDiv").show(); - } - else { - var label = _("Are you sure you want to delete the selected address book?"); - var fields = createElement("p"); - fields.appendChild(createButton(dialogId + "confirmBtn", - "Yes", - deletePersonalAddressBookConfirm.bind(fields))); - fields.appendChild(createButton(dialogId + "cancelBtn", - "No", - disposeDialog)); - dialog = createDialog(dialogId, - _("Confirmation"), - label, - fields, - "none"); - document.body.appendChild(dialog); - Contact.dialogs[dialogId] = dialog; - } - dialog.folderId = folderId; - dialog.show(); - } + else + showConfirmDialog(_("Confirmation"), + _("Are you sure you want to delete the selected address book?"), + deletePersonalAddressBookConfirm.bind(this, folderId)); + return false; } -function deletePersonalAddressBookConfirm(event) { +function deletePersonalAddressBookConfirm(folderId) { 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, diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index ed8177e58..2171b3312 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -2044,13 +2044,17 @@ function onMenuRenameFolderConfirm() { } function onMenuDeleteFolder(event) { - var answer = window.confirm(_("Do you really want to move this folder into the trash ?")); - if (answer) { - var folderID = document.menuTarget.getAttribute("dataname"); - var urlstr = URLForFolderID(folderID) + "/delete"; - var errorLabel = _("The folder could not be deleted."); - triggerAjaxRequest(urlstr, folderOperationCallback, errorLabel); - } + showConfirmDialog(_("Confirmation"), + _("Do you really want to move this folder into the trash ?"), + onMenuDeleteFolderConfirm); +} + +function onMenuDeleteFolderConfirm() { + var folderID = document.menuTarget.getAttribute("dataname"); + var urlstr = URLForFolderID(folderID) + "/delete"; + var errorLabel = _("The folder could not be deleted."); + triggerAjaxRequest(urlstr, folderOperationCallback, errorLabel); + disposeDialog(); } function onMenuExpungeFolder(event) { diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index 114f86193..4f4d20898 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -2592,14 +2592,17 @@ function onCalendarRemove(event) { } function deletePersonalCalendar(folderElement) { - var folderId = folderElement.substr(1); - var label - = labels["Are you sure you want to delete the calendar \"%{0}\"?"].formatted($(folderElement).lastChild.nodeValue.strip()); - if (window.confirm(label)) { - removeFolderRequestCount++; - var url = ApplicationBaseURL + "/" + folderId + "/delete"; - triggerAjaxRequest(url, deletePersonalCalendarCallback, folderId); - } + showConfirmDialog(_("Confirmation"), + _("Are you sure you want to delete the calendar \"%{0}\"?").formatted($(folderElement).lastChild.nodeValue.strip()), + deletePersonalCalendarConfirm.bind(folderElement)); +} + +function deletePersonalCalendarConfirm() { + var folderId = this.substr(1); + removeFolderRequestCount++; + var url = ApplicationBaseURL + "/" + folderId + "/delete"; + triggerAjaxRequest(url, deletePersonalCalendarCallback, folderId); + disposeDialog(); } function deletePersonalCalendarCallback(http) { diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index 01cb4abf0..210d82a06 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -1801,6 +1801,26 @@ function _showAlertDialog(label) { dialog.show(); } +function showConfirmDialog(title, label, callback) { + var dialog = dialogs[label]; + if (dialog) { + $("bgDialogDiv").show(); + } + else { + var fields = createElement("p"); + fields.appendChild(createButton(null, _("Yes"), callback)); + fields.appendChild(createButton(null, _("No"), disposeDialog)); + dialog = createDialog(null, + title, + label, + fields, + "none"); + document.body.appendChild(dialog); + dialogs[label] = dialog; + } + dialog.show(); +} + function showPromptDialog(title, label, callback, defaultValue) { var dialog = dialogs[label]; v = defaultValue?defaultValue:"";