mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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
This commit is contained in:
parent
6e90920233
commit
17caa5dd5a
@ -24,16 +24,19 @@
|
|||||||
|
|
||||||
define([
|
define([
|
||||||
'dojo/Deferred',
|
'dojo/Deferred',
|
||||||
|
'./_base/metadata_provider',
|
||||||
'./ipa',
|
'./ipa',
|
||||||
'./jquery',
|
'./jquery',
|
||||||
'./navigation',
|
'./navigation',
|
||||||
'./phases',
|
'./phases',
|
||||||
'./reg',
|
'./reg',
|
||||||
|
'./spec_util',
|
||||||
'./text',
|
'./text',
|
||||||
'./facet',
|
'./facet',
|
||||||
'./search',
|
'./search',
|
||||||
'./dialog'],
|
'./dialog'],
|
||||||
function(Deferred, IPA, $, navigation, phases, reg, text, mod_facet) {
|
function(Deferred, metadata_provider, IPA, $, navigation,
|
||||||
|
phases, reg, su, text) {
|
||||||
|
|
||||||
var exp = {};
|
var exp = {};
|
||||||
|
|
||||||
@ -765,6 +768,45 @@ IPA.association_table_field = function (spec) {
|
|||||||
|
|
||||||
exp.association_facet_pre_op = function(spec, context) {
|
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.
|
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
|
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.association_type_state_evaluator,
|
||||||
IPA.read_only_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;
|
return spec;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1191,6 +1239,21 @@ exp.association_facet = IPA.association_facet = function (spec, no_init) {
|
|||||||
|
|
||||||
exp.attribute_facet_pre_op = function(spec, context) {
|
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
|
//default buttons and their actions
|
||||||
spec.actions = spec.actions || [];
|
spec.actions = spec.actions || [];
|
||||||
spec.actions.unshift(
|
spec.actions.unshift(
|
||||||
@ -1494,7 +1557,6 @@ phases.on('registration', function() {
|
|||||||
type: 'association',
|
type: 'association',
|
||||||
factory: exp.association_facet,
|
factory: exp.association_facet,
|
||||||
pre_ops: [
|
pre_ops: [
|
||||||
mod_facet.facet_preops.association,
|
|
||||||
exp.association_facet_pre_op
|
exp.association_facet_pre_op
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -1503,7 +1565,6 @@ phases.on('registration', function() {
|
|||||||
type: 'attribute',
|
type: 'attribute',
|
||||||
factory: exp.attribute_facet,
|
factory: exp.attribute_facet,
|
||||||
pre_ops: [
|
pre_ops: [
|
||||||
mod_facet.facet_preops.attribute,
|
|
||||||
exp.attribute_facet_pre_op
|
exp.attribute_facet_pre_op
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
@ -30,10 +30,11 @@ define([
|
|||||||
'./jquery',
|
'./jquery',
|
||||||
'./phases',
|
'./phases',
|
||||||
'./reg',
|
'./reg',
|
||||||
|
'./spec_util',
|
||||||
'./text',
|
'./text',
|
||||||
'./facet',
|
'./facet',
|
||||||
'./add'],
|
'./add'],
|
||||||
function(lang, builder, IPA, $, phases, reg, text, mod_facet) {
|
function(lang, builder, IPA, $, phases, reg, su, text) {
|
||||||
|
|
||||||
var exp = {};
|
var exp = {};
|
||||||
|
|
||||||
@ -243,7 +244,13 @@ exp.facet_policies = IPA.facet_policies = function(spec) {
|
|||||||
|
|
||||||
exp.details_facet_pre_op = function(spec, context) {
|
exp.details_facet_pre_op = function(spec, context) {
|
||||||
|
|
||||||
|
var entity = context.entity;
|
||||||
|
su.context_entity(spec, context);
|
||||||
|
|
||||||
spec.name = spec.name || 'details';
|
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 = spec.actions || [];
|
||||||
spec.actions.unshift(
|
spec.actions.unshift(
|
||||||
@ -1241,7 +1248,6 @@ exp.register = function() {
|
|||||||
type: 'details',
|
type: 'details',
|
||||||
factory: IPA.details_facet,
|
factory: IPA.details_facet,
|
||||||
pre_ops: [
|
pre_ops: [
|
||||||
mod_facet.facet_preops.details,
|
|
||||||
exp.details_facet_pre_op
|
exp.details_facet_pre_op
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
@ -28,7 +28,6 @@ define([
|
|||||||
'dojo/on',
|
'dojo/on',
|
||||||
'dojo/Stateful',
|
'dojo/Stateful',
|
||||||
'dojo/Evented',
|
'dojo/Evented',
|
||||||
'./_base/metadata_provider',
|
|
||||||
'./_base/Singleton_registry',
|
'./_base/Singleton_registry',
|
||||||
'./builder',
|
'./builder',
|
||||||
'./ipa',
|
'./ipa',
|
||||||
@ -41,7 +40,7 @@ define([
|
|||||||
'./dialog',
|
'./dialog',
|
||||||
'./field',
|
'./field',
|
||||||
'./widget'
|
'./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) {
|
Singleton_registry, builder, IPA, $, navigation, phases, reg, su, text) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1467,118 +1466,6 @@ exp.facet_group = IPA.facet_group = function(spec) {
|
|||||||
return that;
|
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) {
|
exp.action = IPA.action = function(spec) {
|
||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
|
@ -26,15 +26,23 @@ define([
|
|||||||
'./jquery',
|
'./jquery',
|
||||||
'./phases',
|
'./phases',
|
||||||
'./reg',
|
'./reg',
|
||||||
|
'./spec_util',
|
||||||
'./text',
|
'./text',
|
||||||
'./facet'],
|
'./facet'],
|
||||||
function(IPA, $, phases, reg, text, mod_facet) {
|
function(IPA, $, phases, reg, su, text, mod_facet) {
|
||||||
|
|
||||||
var exp = {};
|
var exp = {};
|
||||||
|
|
||||||
exp.search_facet_pre_op = function(spec, context) {
|
exp.search_facet_pre_op = function(spec, context) {
|
||||||
|
|
||||||
|
var entity = context.entity;
|
||||||
|
su.context_entity(spec, context);
|
||||||
|
|
||||||
spec.name = spec.name || 'search';
|
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.managed_entity = spec.managed_entity ? IPA.get_entity(spec.managed_entity) : spec.entity;
|
||||||
|
|
||||||
spec.disable_breadcrumb =
|
spec.disable_breadcrumb =
|
||||||
@ -361,7 +369,14 @@ IPA.search_deleter_dialog = function(spec) {
|
|||||||
|
|
||||||
exp.nested_search_facet_preop = function(spec, context) {
|
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_breadcrumb = false;
|
||||||
spec.disable_facet_tabs = false;
|
spec.disable_facet_tabs = false;
|
||||||
@ -537,7 +552,6 @@ exp.register = function() {
|
|||||||
type: 'search',
|
type: 'search',
|
||||||
factory: IPA.search_facet,
|
factory: IPA.search_facet,
|
||||||
pre_ops: [
|
pre_ops: [
|
||||||
mod_facet.facet_preops.search,
|
|
||||||
exp.search_facet_pre_op
|
exp.search_facet_pre_op
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -546,7 +560,6 @@ exp.register = function() {
|
|||||||
type: 'nested_search',
|
type: 'nested_search',
|
||||||
factory: IPA.nested_search_facet,
|
factory: IPA.nested_search_facet,
|
||||||
pre_ops: [
|
pre_ops: [
|
||||||
mod_facet.facet_preops.nested_search,
|
|
||||||
exp.nested_search_facet_preop
|
exp.nested_search_facet_preop
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user