From bda9d43c56c2282583bd3a870219a4bb7a128800 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 15 Mar 2011 23:51:28 -0700 Subject: [PATCH] Extended profile - add fancy JQuery UI confirm dialog when deleting items --- .../ExtendedProfile/extendedprofilewidget.php | 7 ++++ plugins/ExtendedProfile/js/profiledetail.js | 36 ++++++++++++++----- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/plugins/ExtendedProfile/extendedprofilewidget.php b/plugins/ExtendedProfile/extendedprofilewidget.php index ebf4c0422c..5be149a0cb 100644 --- a/plugins/ExtendedProfile/extendedprofilewidget.php +++ b/plugins/ExtendedProfile/extendedprofilewidget.php @@ -77,6 +77,13 @@ class ExtendedProfileWidget extends Form */ public function formData() { + // For JQuery UI modal dialog + $this->out->elementStart( + 'div', + array('id' => 'confirm-dialog', 'title' => 'Confirmation Required') + ); + $this->out->text('Really delete this entry?'); + $this->out->elementEnd('div'); $this->showSections(); } diff --git a/plugins/ExtendedProfile/js/profiledetail.js b/plugins/ExtendedProfile/js/profiledetail.js index d24b4aabe8..fbcefe730d 100644 --- a/plugins/ExtendedProfile/js/profiledetail.js +++ b/plugins/ExtendedProfile/js/profiledetail.js @@ -44,7 +44,7 @@ SN_EXTENDED.replaceIndex = function(elem, oldIndex, newIndex) { } SN_EXTENDED.resetRow = function(elem) { - $(elem).find('input').attr('value', ''); + $(elem).find('input, textarea').attr('value', ''); $(elem).find("select option[value='office']").attr("selected", true); }; @@ -63,27 +63,47 @@ SN_EXTENDED.addRow = function() { }; SN_EXTENDED.removeRow = function() { + var div = $(this).closest('div'); var id = $(div).attr('id'); var cls = $(div).attr('class'); - var cnt = SN_EXTENDED.rowCount(cls); + + var that = this; + + $("#confirm-dialog").dialog({ + buttons : { + "Confirm" : function() { + var target = $(that).closest('tr'); + target.fadeOut("slow", function() { + $(that).remove(); + }); + SN_EXTENDED.reorder(cls); + $(this).dialog("close"); + }, + "Cancel" : function() { + $(this).dialog("close"); + } + } + }); + if (cnt > 1) { - var target = $(this).closest('tr'); - target.remove(); - SN_EXTENDED.reorder(cls); + $("#confirm-dialog").dialog("open"); } }; $(document).ready(function() { + $("#confirm-dialog").dialog({ + autoOpen: false, + modal: true + }); + $("input#extprofile-manager").autocomplete({ source: 'finduser', minLength: 2 }); - $.datepicker.formatDate('yy-mm-dd'); - - $("input[name$=-start], input[name$=-end], #extprofile-birthday").datepicker({ dateFormat: 'd M yy' }); + $("input[name$=-start], input[name$=-end], #extprofile-birthday").datepicker({ dateFormat: 'd M yy' }); var multifields = ["phone-item", "experience-item", "education-item", "im-item"];