summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/automember.js
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2013-04-18 12:38:38 +0200
committerPetr Vobornik <pvoborni@redhat.com>2013-05-06 16:22:29 +0200
commit14c276d21865f70e0ff939357b52a9830d32b5ea (patch)
tree9ccf09b0875ddbc43500c6c8bee08f5de8d20afe /install/ui/src/freeipa/automember.js
parenta513673f043e37dc0fbad0b698f3f12a6a15a06c (diff)
downloadfreeipa-14c276d21865f70e0ff939357b52a9830d32b5ea.tar.gz
freeipa-14c276d21865f70e0ff939357b52a9830d32b5ea.tar.xz
freeipa-14c276d21865f70e0ff939357b52a9830d32b5ea.zip
Convert definitions of entities to spec objects
https://fedorahosted.org/freeipa/ticket/3235
Diffstat (limited to 'install/ui/src/freeipa/automember.js')
-rw-r--r--install/ui/src/freeipa/automember.js108
1 files changed, 57 insertions, 51 deletions
diff --git a/install/ui/src/freeipa/automember.js b/install/ui/src/freeipa/automember.js
index c163e188e..997799e00 100644
--- a/install/ui/src/freeipa/automember.js
+++ b/install/ui/src/freeipa/automember.js
@@ -31,20 +31,14 @@ define([
'./entity'],
function(IPA, $, navigation, phases, reg, text) {
-IPA.automember = {};
+var exp = IPA.automember = {};
-IPA.automember.entity = function(spec) {
+var make_spec = function() {
+return {
- //HACK: Automember takes_params is missing a cn attribute. This hack
- //copies cn from mod command. Also it is set as pkey.
- var pkey_attr = IPA.metadata.commands.automember_mod.takes_args[0];
- pkey_attr.primary_key = true;
- IPA.metadata.objects.automember.takes_params.push(pkey_attr);
- IPA.metadata.objects.automember.primary_key = pkey_attr.name;
+ name: 'automember',
- spec = spec || {};
-
- spec.policies = spec.policies || [
+ policies:[
{
$factory: IPA.facet_update_policy,
source_facet: 'usergrouprule',
@@ -55,16 +49,11 @@ IPA.automember.entity = function(spec) {
source_facet: 'hostgrouprule',
dest_facet: 'searchhostgroup'
}
- ];
-
- var that = IPA.entity(spec);
-
- that.init = function() {
-
- that.entity_init();
-
- that.builder.search_facet({
+ ],
+ facets: [
+ {
$factory: IPA.automember.rule_search_facet,
+ $type: 'search',
name: 'searchgroup',
group_type: 'group',
label: '@i18n:objects.automember.usergrouprules',
@@ -74,9 +63,10 @@ IPA.automember.entity = function(spec) {
'cn',
'description'
]
- }).
- search_facet({
+ },
+ {
$factory: IPA.automember.rule_search_facet,
+ $type: 'search',
name: 'searchhostgroup',
group_type: 'hostgroup',
label: '@i18n:objects.automember.hostgrouprules',
@@ -86,47 +76,56 @@ IPA.automember.entity = function(spec) {
'cn',
'description'
]
- }).
- details_facet({
+ },
+ {
$factory: IPA.automember.rule_details_facet,
+ $type: 'details',
name: 'usergrouprule',
group_type: 'group',
label: '@i18n:objects.automember.usergrouprule',
disable_facet_tabs: true,
check_rights: false,
redirect_info: { facet: 'searchgroup' }
- }).
- details_facet({
+ },
+ {
$factory: IPA.automember.rule_details_facet,
+ $type: 'details',
name: 'hostgrouprule',
group_type: 'hostgroup',
label: '@i18n:objects.automember.hostgrouprule',
disable_facet_tabs: true,
check_rights: false,
redirect_info: { facet: 'searchhostgroup' }
- }).
- adder_dialog({
- $factory: IPA.automember.rule_adder_dialog,
- title: '@i18n:objects.automember.add_rule',
- fields: [
- {
- $type: 'entity_select',
- name: 'cn',
- other_entity: 'group',
- other_field: 'cn'
- }
- ],
- height: '300'
- }).
- deleter_dialog({
- $factory: IPA.automember.rule_deleter_dialog
- });
- };
+ }
+ ],
+ adder_dialog: {
+ $factory: IPA.automember.rule_adder_dialog,
+ title: '@i18n:objects.automember.add_rule',
+ fields: [
+ {
+ $type: 'entity_select',
+ name: 'cn',
+ other_entity: 'group',
+ other_field: 'cn'
+ }
+ ],
+ height: '300'
+ },
+ deleter_dialog: {
+ $factory: IPA.automember.rule_deleter_dialog
+ }
+};};
- return that;
+exp.metadata_extension_pre_op = function(spec, context) {
+ //HACK: Automember takes_params is missing a cn attribute. This hack
+ //copies cn from mod command. Also it is set as pkey.
+ var pkey_attr = IPA.metadata.commands.automember_mod.takes_args[0];
+ pkey_attr.primary_key = true;
+ IPA.metadata.objects.automember.takes_params.push(pkey_attr);
+ IPA.metadata.objects.automember.primary_key = pkey_attr.name;
+ return spec;
};
-
IPA.automember.rule_search_facet = function(spec) {
spec = spec || {};
@@ -698,16 +697,23 @@ IPA.automember.default_group_widget = function(spec) {
return that;
};
+exp.entity_spec = make_spec();
-IPA.register('automember', IPA.automember.entity);
-
-phases.on('registration', function() {
+exp.register = function() {
+ var e = reg.entity;
var w = reg.widget;
var f = reg.field;
+ e.register({
+ type: 'automember',
+ spec: exp.entity_spec,
+ pre_ops: [ exp.metadata_extension_pre_op ]
+ });
w.register('automember_condition', IPA.automember.condition_widget);
f.register('automember_condition', IPA.automember.condition_field);
-});
+};
+
+phases.on('registration', exp.register);
-return {};
+return exp;
}); \ No newline at end of file