Re: [Freeipa-devel] [PATCH] 114 Save changes before modifying association.

2011-03-02 Thread Adam Young

On 03/02/2011 12:08 PM, Endi Sukma Dewata wrote:

On 2/23/2011 4:11 PM, Endi Sukma Dewata wrote:

In a details page, usually any changes done to the fields will not be
applied until the user clicks the Update button. However, if the page
contains an association table, any addition/deletion to the table will
be applied immediately.

To avoid any confusion, the user is now required to save or reset all
changes to the page before modifying the association. A dialog box will
appear if the page contains any unsaved changes.


Rebased.


___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

ACK
___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Re: [Freeipa-devel] [PATCH] 114 Save changes before modifying association.

2011-03-02 Thread Adam Young

On 03/02/2011 12:43 PM, Adam Young wrote:

On 03/02/2011 12:08 PM, Endi Sukma Dewata wrote:

On 2/23/2011 4:11 PM, Endi Sukma Dewata wrote:

In a details page, usually any changes done to the fields will not be
applied until the user clicks the Update button. However, if the page
contains an association table, any addition/deletion to the table will
be applied immediately.

To avoid any confusion, the user is now required to save or reset all
changes to the page before modifying the association. A dialog box will
appear if the page contains any unsaved changes.


Rebased.


___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

ACK


___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Pushed to master
___
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

[Freeipa-devel] [PATCH] 114 Save changes before modifying association.

2011-02-23 Thread Endi Sukma Dewata

In a details page, usually any changes done to the fields will not be
applied until the user clicks the Update button. However, if the page
contains an association table, any addition/deletion to the table will
be applied immediately.

To avoid any confusion, the user is now required to save or reset all
changes to the page before modifying the association. A dialog box will
appear if the page contains any unsaved changes.

--
Endi S. Dewata
From e3e26e9dae6ad228c6bbbe98e649e3e0abbd2131 Mon Sep 17 00:00:00 2001
From: Endi S. Dewata edew...@redhat.com
Date: Wed, 23 Feb 2011 12:35:45 -0600
Subject: [PATCH] Save changes before modifying association.

In a details page, usually any changes done to the fields will not be
applied until the user clicks the Update button. However, if the page
contains an association table, any addition/deletion to the table will
be applied immediately.

To avoid any confusion, the user is now required to save or reset all
changes to the page before modifying the association. A dialog box will
appear if the page contains any unsaved changes.
---
 install/ui/associate.js |   42 --
 install/ui/ipa.js   |4 +-
 install/ui/test/data/i18n_messages.json |3 +-
 install/ui/test/data/ipa_init.json  |3 +-
 ipalib/plugins/internal.py  |7 +++--
 5 files changed, 49 insertions(+), 10 deletions(-)

diff --git a/install/ui/associate.js b/install/ui/associate.js
index 600cd55c3abb99f810c8e322da83262c21b5e2c3..2f1a28d5a66e989d562c3605fa335763bcd00324 100644
--- a/install/ui/associate.js
+++ b/install/ui/associate.js
@@ -351,6 +351,28 @@ IPA.association_table_widget = function (spec) {
 
 that.table_setup(container);
 
+var dialog = $('div/', {
+html: IPA.messages.dialogs.dirty_message
+}).appendTo(container);
+
+var buttons = {};
+
+buttons[IPA.messages.buttons.ok] = function() {
+dialog.dialog('close');
+};
+
+dialog.dialog({
+autoOpen: false,
+title: IPA.messages.dialogs.dirty_title,
+modal: true,
+width: '20em',
+buttons: buttons
+});
+
+var entity = IPA.get_entity(that.entity_name);
+var facet_name = IPA.current_facet(entity);
+var facet = entity.get_facet(facet_name);
+
 var button = $('input[name=remove]', container);
 button.replaceWith(IPA.action_button({
 'label': button.val(),
@@ -359,7 +381,13 @@ IPA.association_table_widget = function (spec) {
 if ($(this).hasClass('action-button-disabled')) {
 return false;
 }
-that.show_remove_dialog();
+
+if (facet.is_dirty()) {
+dialog.dialog('open');
+} else {
+that.show_remove_dialog();
+}
+
 return false;
 }
 }));
@@ -369,8 +397,16 @@ IPA.association_table_widget = function (spec) {
 'label': button.val(),
 'icon': 'ui-icon-plus',
 'click': function() {
-if ($(this).hasClass('action-button-disabled')) return false;
-that.show_add_dialog();
+if ($(this).hasClass('action-button-disabled')) {
+return false;
+}
+
+if (facet.is_dirty()) {
+dialog.dialog('open');
+} else {
+that.show_add_dialog();
+}
+
 return false;
 }
 }));
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index 2c07d742a71b3e0428eac0637fc75f5fc0419280..ec15332f4a3d56fd54412bba99898b8e73986ef4 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -137,7 +137,7 @@ var IPA = ( function () {
 var facet = IPA.current_entity.facets_by_name[facet_name];
 if (facet.is_dirty()){
 var message_box =  $(div/,{
-html: IPA.messages.dirty
+html: IPA.messages.dialogs.dirty_message
 }).
 appendTo($(#navigation));
 
@@ -148,7 +148,7 @@ var IPA = ( function () {
 };
 
 message_box.dialog({
-title: 'Dirty',
+title: IPA.messages.dialogs.dirty_title,
 modal:true,
 width: '20em',
 buttons: buttons
diff --git a/install/ui/test/data/i18n_messages.json b/install/ui/test/data/i18n_messages.json
index f5aa841ec1483618a3851871362477e2a6756241..076bdbf4c94694401f8079e1f5adfc189473dce4 100644
--- a/install/ui/test/data/i18n_messages.json
+++ b/install/ui/test/data/i18n_messages.json
@@ -42,12 +42,13 @@
 },
 dialogs: {
 available: Available,
+dirty_message: This page has unsaved changes.