summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2013-05-14 18:13:48 +0200
committerPetr Vobornik <pvoborni@redhat.com>2013-05-17 12:32:16 +0200
commit17caa5dd5af37826d5fe830edcab344e6a975608 (patch)
treed509578e01965ba3350f6007e9703f651fd0190e
parent6e90920233cc9a7c9feb040dea22cda837715c39 (diff)
downloadfreeipa-17caa5dd5af37826d5fe830edcab344e6a975608.tar.gz
freeipa-17caa5dd5af37826d5fe830edcab344e6a975608.tar.xz
freeipa-17caa5dd5af37826d5fe830edcab344e6a975608.zip
Unite and move facet pre_ops to related modules
Facet pre_ops defined in ./facet module were moved to modules where facet are actually defined. Moved pre_ops were united with the ones defined for the facets in these modules. The move simplifies module dependencies - there is no reason to have general facet module dependent on specialized facet modules. Pre_ops uniting makes the code simpler. https://fedorahosted.org/freeipa/ticket/3605
-rw-r--r--install/ui/src/freeipa/association.js67
-rw-r--r--install/ui/src/freeipa/details.js10
-rw-r--r--install/ui/src/freeipa/facet.js115
-rw-r--r--install/ui/src/freeipa/search.js21
4 files changed, 90 insertions, 123 deletions
diff --git a/install/ui/src/freeipa/association.js b/install/ui/src/freeipa/association.js
index e599001de..e2ddaf866 100644
--- a/install/ui/src/freeipa/association.js
+++ b/install/ui/src/freeipa/association.js
@@ -24,16 +24,19 @@
define([
'dojo/Deferred',
+ './_base/metadata_provider',
'./ipa',
'./jquery',
'./navigation',
'./phases',
'./reg',
+ './spec_util',
'./text',
'./facet',
'./search',
'./dialog'],
- function(Deferred, IPA, $, navigation, phases, reg, text, mod_facet) {
+ function(Deferred, metadata_provider, IPA, $, navigation,
+ phases, reg, su, text) {
var exp = {};
@@ -765,6 +768,45 @@ IPA.association_table_field = function (spec) {
exp.association_facet_pre_op = function(spec, context) {
+ var has_indirect_attribute_member = function(spec) {
+
+ var indirect_members = entity.metadata.attribute_members[spec.attribute_member + 'indirect'];
+ var has_indirect = !!(indirect_members && indirect_members.indexOf(spec.other_entity) > -1);
+ return has_indirect;
+ };
+
+ var entity = context.entity;
+ su.context_entity(spec, context);
+ spec.entity = entity;
+
+ var index = spec.name.indexOf('_');
+ spec.attribute_member = spec.attribute_member ||
+ spec.name.substring(0, index);
+ spec.other_entity = spec.other_entity ||
+ spec.name.substring(index+1);
+
+ spec.add_title = '@i18n:association.add.'+spec.attribute_member;
+ spec.remove_title = '@i18n:association.remove.'+spec.attribute_member;
+
+ spec.facet_group = spec.facet_group || spec.attribute_member;
+
+ spec.label = spec.label || entity.metadata.label_singular;
+
+ spec.tab_label = spec.tab_label ||
+ metadata_provider.get('@mo:'+spec.other_entity+'.label') ||
+ spec.other_entity;
+
+ if (has_indirect_attribute_member(spec)) {
+
+ spec.indirect_attribute_member = spec.attribute_member + 'indirect';
+ }
+
+ if (spec.facet_group === 'memberindirect' ||
+ spec.facet_group === 'memberofindirect') {
+
+ spec.read_only = true;
+ }
+
/*
Link parameter is used to turn off the links in self-service mode.
Default it to true if not set so that facets that would not otherwise
@@ -824,6 +866,12 @@ exp.association_facet_pre_op = function(spec, context) {
IPA.association_type_state_evaluator,
IPA.read_only_state_evaluator);
+ entity.policies.add_policy(IPA.build({
+ $factory: IPA.facet_update_policy,
+ source_facet: 'search',
+ dest_facet: spec.name
+ }));
+
return spec;
};
@@ -1191,6 +1239,21 @@ exp.association_facet = IPA.association_facet = function (spec, no_init) {
exp.attribute_facet_pre_op = function(spec, context) {
+ var entity = context.entity;
+ su.context_entity(spec, context);
+
+ spec.title = spec.title || entity.metadata.label_singular;
+ spec.label = spec.label || entity.metadata.label_singular;
+
+ var attr_metadata = IPA.get_entity_param(entity.name, spec.attribute);
+ spec.tab_label = spec.tab_label || attr_metadata.label;
+
+ entity.policies.add_policy(IPA.build({
+ $factory: IPA.facet_update_policy,
+ source_facet: 'search',
+ dest_facet: spec.name
+ }));
+
//default buttons and their actions
spec.actions = spec.actions || [];
spec.actions.unshift(
@@ -1494,7 +1557,6 @@ phases.on('registration', function() {
type: 'association',
factory: exp.association_facet,
pre_ops: [
- mod_facet.facet_preops.association,
exp.association_facet_pre_op
]
});
@@ -1503,7 +1565,6 @@ phases.on('registration', function() {
type: 'attribute',
factory: exp.attribute_facet,
pre_ops: [
- mod_facet.facet_preops.attribute,
exp.attribute_facet_pre_op
]
});
diff --git a/install/ui/src/freeipa/details.js b/install/ui/src/freeipa/details.js
index 6811a1dfb..149a04e43 100644
--- a/install/ui/src/freeipa/details.js
+++ b/install/ui/src/freeipa/details.js
@@ -30,10 +30,11 @@ define([
'./jquery',
'./phases',
'./reg',
+ './spec_util',
'./text',
'./facet',
'./add'],
- function(lang, builder, IPA, $, phases, reg, text, mod_facet) {
+ function(lang, builder, IPA, $, phases, reg, su, text) {
var exp = {};
@@ -243,7 +244,13 @@ exp.facet_policies = IPA.facet_policies = function(spec) {
exp.details_facet_pre_op = function(spec, context) {
+ var entity = context.entity;
+ su.context_entity(spec, context);
+
spec.name = spec.name || 'details';
+ spec.title = spec.title || entity.metadata.label_singular;
+ spec.label = spec.label || entity.metadata.label_singular;
+ spec.tab_label = spec.tab_label || '@i18n:facets.details';
spec.actions = spec.actions || [];
spec.actions.unshift(
@@ -1241,7 +1248,6 @@ exp.register = function() {
type: 'details',
factory: IPA.details_facet,
pre_ops: [
- mod_facet.facet_preops.details,
exp.details_facet_pre_op
]
});
diff --git a/install/ui/src/freeipa/facet.js b/install/ui/src/freeipa/facet.js
index 46aea0cc3..80e867125 100644
--- a/install/ui/src/freeipa/facet.js
+++ b/install/ui/src/freeipa/facet.js
@@ -28,7 +28,6 @@ define([
'dojo/on',
'dojo/Stateful',
'dojo/Evented',
- './_base/metadata_provider',
'./_base/Singleton_registry',
'./builder',
'./ipa',
@@ -41,7 +40,7 @@ define([
'./dialog',
'./field',
'./widget'
- ], function(declare, lang, construct, on, Stateful, Evented, metadata_provider,
+ ], function(declare, lang, construct, on, Stateful, Evented,
Singleton_registry, builder, IPA, $, navigation, phases, reg, su, text) {
/**
@@ -1467,118 +1466,6 @@ exp.facet_group = IPA.facet_group = function(spec) {
return that;
};
-exp.facet_preops = {
- search: function(spec, context) {
-
- var entity = context.entity;
- su.context_entity(spec, context);
-
- spec.title = spec.title || entity.metadata.label;
- spec.label = spec.label || entity.metadata.label;
- spec.tab_label = spec.tab_label || '@i18n:facets.search';
-
- return spec;
- },
-
- nested_search: function(spec, context) {
-
- var entity = context.entity;
- su.context_entity(spec, context);
-
- spec.title = spec.title || entity.metadata.label_singular;
- spec.label = spec.label || entity.metadata.label;
- spec.tab_label = spec.tab_label || '@i18n:facets.search';
-
- return spec;
- },
-
- details: function(spec, context) {
-
- var entity = context.entity;
- su.context_entity(spec, context);
-
- spec.title = spec.title || entity.metadata.label_singular;
- spec.label = spec.label || entity.metadata.label_singular;
- spec.tab_label = spec.tab_label || '@i18n:facets.details';
-
- return spec;
- },
-
- attribute: function(spec, context) {
-
- var entity = context.entity;
- su.context_entity(spec, context);
-
- spec.title = spec.title || entity.metadata.label_singular;
- spec.label = spec.label || entity.metadata.label_singular;
-
- var attr_metadata = IPA.get_entity_param(entity.name, spec.attribute);
- spec.tab_label = spec.tab_label || attr_metadata.label;
-
- entity.policies.add_policy(IPA.build({
- $factory: IPA.facet_update_policy,
- source_facet: 'search',
- dest_facet: spec.name
- }));
-
- return spec;
- },
-
- association: function(spec, context) {
-
- var has_indirect_attribute_member = function(spec) {
-
- var indirect_members = entity.metadata.attribute_members[spec.attribute_member + 'indirect'];
- if (indirect_members) {
- if (indirect_members.indexOf(spec.other_entity) > -1) {
- return true;
- }
- }
- return false;
- };
-
- var entity = context.entity;
- su.context_entity(spec, context);
- spec.entity = entity;
-
- var index = spec.name.indexOf('_');
- spec.attribute_member = spec.attribute_member ||
- spec.name.substring(0, index);
- spec.other_entity = spec.other_entity ||
- spec.name.substring(index+1);
-
- spec.add_title = '@i18n:association.add.'+spec.attribute_member;
- spec.remove_title = '@i18n:association.remove.'+spec.attribute_member;
-
- spec.facet_group = spec.facet_group || spec.attribute_member;
-
- spec.label = spec.label || entity.metadata.label_singular;
-
- spec.tab_label = spec.tab_label ||
- metadata_provider.get('@mo:'+spec.other_entity+'.label') ||
- spec.other_entity;
-
- if (has_indirect_attribute_member(spec)) {
-
- spec.indirect_attribute_member = spec.attribute_member + 'indirect';
- }
-
- if (spec.facet_group === 'memberindirect' ||
- spec.facet_group === 'memberofindirect') {
-
- spec.read_only = true;
- }
-
- entity.policies.add_policy(IPA.build({
- $factory: IPA.facet_update_policy,
- source_facet: 'search',
- dest_facet: spec.name
- }));
-
- return spec;
- }
-};
-
exp.action = IPA.action = function(spec) {
spec = spec || {};
diff --git a/install/ui/src/freeipa/search.js b/install/ui/src/freeipa/search.js
index 8dc80cd55..e923316f6 100644
--- a/install/ui/src/freeipa/search.js
+++ b/install/ui/src/freeipa/search.js
@@ -26,15 +26,23 @@ define([
'./jquery',
'./phases',
'./reg',
+ './spec_util',
'./text',
'./facet'],
- function(IPA, $, phases, reg, text, mod_facet) {
+ function(IPA, $, phases, reg, su, text, mod_facet) {
var exp = {};
exp.search_facet_pre_op = function(spec, context) {
+ var entity = context.entity;
+ su.context_entity(spec, context);
+
spec.name = spec.name || 'search';
+ spec.title = spec.title || entity.metadata.label;
+ spec.label = spec.label || entity.metadata.label;
+ spec.tab_label = spec.tab_label || '@i18n:facets.search';
+
spec.managed_entity = spec.managed_entity ? IPA.get_entity(spec.managed_entity) : spec.entity;
spec.disable_breadcrumb =
@@ -361,7 +369,14 @@ IPA.search_deleter_dialog = function(spec) {
exp.nested_search_facet_preop = function(spec, context) {
- spec.managed_entity = IPA.get_entity(spec.nested_entity);
+ var entity = context.entity;
+ su.context_entity(spec, context);
+
+ spec.title = spec.title || entity.metadata.label_singular;
+ spec.label = spec.label || entity.metadata.label;
+ spec.tab_label = spec.tab_label || '@i18n:facets.search';
+
+ spec.managed_entity = spec.nested_entity;
spec.disable_breadcrumb = false;
spec.disable_facet_tabs = false;
@@ -537,7 +552,6 @@ exp.register = function() {
type: 'search',
factory: IPA.search_facet,
pre_ops: [
- mod_facet.facet_preops.search,
exp.search_facet_pre_op
]
});
@@ -546,7 +560,6 @@ exp.register = function() {
type: 'nested_search',
factory: IPA.nested_search_facet,
pre_ops: [
- mod_facet.facet_preops.nested_search,
exp.nested_search_facet_preop
]
});