summaryrefslogtreecommitdiffstats
path: root/install
diff options
context:
space:
mode:
Diffstat (limited to 'install')
-rw-r--r--install/ui/details.js71
-rw-r--r--install/ui/dialog.js9
2 files changed, 79 insertions, 1 deletions
diff --git a/install/ui/details.js b/install/ui/details.js
index b84f7f468..320ed9a4c 100644
--- a/install/ui/details.js
+++ b/install/ui/details.js
@@ -163,6 +163,70 @@ IPA.section_builder = function(spec) {
return that;
};
+IPA.facet_policy = function() {
+
+ var that = {};
+
+ that.init = function() {
+ };
+
+ that.post_create = function() {
+ };
+
+ that.post_load = function() {
+ };
+
+ return that;
+};
+
+IPA.facet_policies = function(spec) {
+
+ var that = {};
+
+ that.container = spec.container;
+ that.policies = [];
+
+ that.add_policy = function(policy) {
+
+ policy.container = that.container;
+ that.policies.push(policy);
+ };
+
+ that.add_policies = function(policies) {
+
+ if (!policies) return;
+
+ for (var i=0; i<policies.length; i++) {
+ that.add_policy(policies[i]);
+ }
+ };
+
+ that.init = function() {
+
+ for (var i=0; i<that.policies.length; i++) {
+ that.policies[i].init();
+ }
+ };
+
+ that.post_create = function() {
+
+ for (var i=0; i<that.policies.length; i++) {
+ that.policies[i].post_create();
+ }
+ };
+
+ that.post_load = function(data) {
+
+ for (var i=0; i<that.policies.length; i++) {
+ that.policies[i].post_load(data);
+ }
+ };
+
+ that.add_policies(spec.policies);
+
+ return that;
+};
+
IPA.details_facet = function(spec) {
spec = spec || {};
@@ -181,6 +245,10 @@ IPA.details_facet = function(spec) {
that.widgets = IPA.widget_container();
that.fields = IPA.field_container({ container: that });
+ that.policies = IPA.facet_policies({
+ container: that,
+ policies: spec.policies
+ });
that.fields.add_field = function(field) {
@@ -228,6 +296,7 @@ IPA.details_facet = function(spec) {
}
that.facet_create(container);
+ that.policies.post_create();
};
that.create_controls = function() {
@@ -390,6 +459,7 @@ IPA.details_facet = function(spec) {
var field = fields[i];
field.load(data);
}
+ that.policies.post_load(data);
that.enable_update(false);
};
@@ -658,6 +728,7 @@ IPA.details_facet = function(spec) {
that.create_builder();
that.builder.build(spec);
that.fields.widgets_created();
+ that.policies.init();
};
that.init();
diff --git a/install/ui/dialog.js b/install/ui/dialog.js
index c03bf801f..44bd11cc1 100644
--- a/install/ui/dialog.js
+++ b/install/ui/dialog.js
@@ -1,6 +1,7 @@
/*jsl:import ipa.js */
/* Authors:
* Endi Sukma Dewata <edewata@redhat.com>
+ * Petr Vobornik <pvoborni@redhat.com>
*
* Copyright (C) 2010 Red Hat
* see file 'COPYING' for use and warranty information
@@ -19,7 +20,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-/* REQUIRES: widget.js */
+/* REQUIRES: widget.js, details.js */
IPA.dialog_button = function(spec) {
@@ -68,6 +69,10 @@ IPA.dialog = function(spec) {
that.widgets = IPA.widget_container();
that.fields = IPA.field_container({ container: that });
that.buttons = $.ordered_map();
+ that.policies = IPA.facet_policies({
+ container: that,
+ policies: spec.policies
+ });
that.create_button = function(spec) {
var factory = spec.factory || IPA.dialog_button;
@@ -122,6 +127,7 @@ IPA.dialog = function(spec) {
widget.create(div);
}
+ that.policies.post_create();
};
that.show_message = function(message) {
@@ -233,6 +239,7 @@ IPA.dialog = function(spec) {
that.create_builder();
that.builder.build(spec);
that.fields.widgets_created();
+ that.policies.init();
};
that.init();