summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/automember.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/src/freeipa/automember.js')
-rw-r--r--install/ui/src/freeipa/automember.js31
1 files changed, 16 insertions, 15 deletions
diff --git a/install/ui/src/freeipa/automember.js b/install/ui/src/freeipa/automember.js
index e9619b731..ae7304d95 100644
--- a/install/ui/src/freeipa/automember.js
+++ b/install/ui/src/freeipa/automember.js
@@ -19,6 +19,8 @@
*/
define([
+ 'dojo/_base/declare',
+ './field',
'./metadata',
'./ipa',
'./jquery',
@@ -31,7 +33,8 @@ define([
'./search',
'./association',
'./entity'],
- function(metadata_provider, IPA, $, navigation, phases, reg, rpc, text) {
+ function(declare, field_mod, metadata_provider, IPA, $, navigation,
+ phases, reg, rpc, text) {
var exp = IPA.automember = {};
@@ -445,28 +448,26 @@ IPA.automember.parse_condition_regex = function(regex) {
IPA.automember.condition_field = function(spec) {
spec = spec || {};
+ spec.adapter = spec.adapter || IPA.automember.condition_adapter;
var that = IPA.field(spec);
+ return that;
+};
- that.attr_name = spec.attribute || that.name;
-
- that.load = function(record) {
-
- var regexes = record[that.attr_name];
- that.values = [];
+IPA.automember.condition_adapter = declare([field_mod.Adapter], {
+ load: function(record) {
+ var regexes = this.inherited(arguments);
+ var values = [];
if (regexes) {
for (var i=0, j=0; i<regexes.length; i++) {
+ if (regexes[i] === '') continue;
var condition = IPA.automember.parse_condition_regex(regexes[i]);
- that.values.push(condition);
+ values.push(condition);
}
}
-
- that.load_writable(record);
- that.reset();
- };
-
- return that;
-};
+ return values;
+ }
+});
IPA.automember.condition_widget = function(spec) {