summaryrefslogtreecommitdiffstats
path: root/install/static/entity.js
diff options
context:
space:
mode:
authorAdam Young <ayoung@redhat.com>2010-11-15 16:41:21 -0500
committerEndi Sukma Dewata <edewata@redhat.com>2010-11-17 21:50:03 -0500
commit632639b62ddad72e31daa62ef21f992299ec0b8e (patch)
tree0e846397e8d6136678112bf1bd6dd0616066e323 /install/static/entity.js
parent7abd8c6ecb0a0aafeaac9a4baa1d5db96722a3ab (diff)
downloadfreeipa-632639b62ddad72e31daa62ef21f992299ec0b8e.tar.gz
freeipa-632639b62ddad72e31daa62ef21f992299ec0b8e.tar.xz
freeipa-632639b62ddad72e31daa62ef21f992299ec0b8e.zip
action select
if exactly one entity is selected, it enables the entity-facet links in the action panel, and sets the pkey in bbq to the pkey of the selected
Diffstat (limited to 'install/static/entity.js')
-rw-r--r--install/static/entity.js73
1 files changed, 47 insertions, 26 deletions
diff --git a/install/static/entity.js b/install/static/entity.js
index 74a07d009..e68ed3f2a 100644
--- a/install/static/entity.js
+++ b/install/static/entity.js
@@ -26,6 +26,7 @@ function ipa_facet(spec) {
spec = spec || {};
var that = {};
+ that.display_class = spec.display_class || 'entity-facet';
that.name = spec.name;
that.label = spec.label;
that._entity_name = spec.entity_name;
@@ -290,11 +291,16 @@ function ipa_details_only_setup(container){
ipa_entity_setup.call(this, container, 'details');
}
+function ipa_current_facet(entity){
+ return $.bbq.getState(entity.name + '-facet', true) || entity.default_facet || 'search';
+}
+
function ipa_entity_setup(container) {
var entity = this;
- var facet_name = $.bbq.getState(entity.name + '-facet', true) || entity.default_facet || 'search';
+ var facet_name = ipa_current_facet(entity);
+
var facet = entity.get_facet(facet_name);
if (!facet) return;
@@ -321,54 +327,69 @@ function ipa_entity_setup(container) {
function action_panel(entity_name){
+
+ function build_link(other_facet,label,other_entity){
+ var li = $('<li/>', {
+ "class" : other_facet.display_class,
+ title: other_entity,
+ text: label,
+ click: function(entity_name, other_facet_name) {
+ return function() {
+ if($(this).hasClass('entity-facet-disabled')){
+ return false;
+ }
+ var this_pkey = $('.action-panel input[id=pkey]').val();
+ IPA.switch_and_show_page(
+ entity_name, other_facet_name,
+ this_pkey, other_entity);
+
+ return false;
+ };
+ }(entity_name, other_facet_name)
+ });
+ return li;
+ }
+
var div = $('<div/>', {
"class":"action-panel",
html: $('<h3>Actions</h3>')
});
+
+ /*Note, for debugging purposes, it is useful to set var pkey_type = 'text';*/
+ var pkey_type = 'hidden';
+ $('<input/>',
+ {'type': pkey_type,
+ id:'pkey',
+ name:'pkey'}).appendTo(div);
+
var ul = $('<ul/>', {'class': 'action'}).appendTo(div);
var entity = IPA.get_entity(entity_name);
+ var facet_name = ipa_current_facet(entity);
for (var i=0; i<entity.facets.length; i++) {
var other_facet = entity.facets[i];
- var facet_name = other_facet.name;
+ var other_facet_name = other_facet.name;
if (other_facet.label) {
-
- var label = other_facet.label;
-
- ul.append($('<li/>', {
- title: other_facet.name,
- text: label,
- click: function(entity_name, facet_name) {
- return function() {
- IPA.show_page(entity_name, facet_name);
- };
- }(entity_name, facet_name)
- }));
-
+ ul.append(build_link(other_facet,other_facet.label));
} else { // For now empty label indicates an association facet
-
var attribute_members = IPA.metadata[entity_name].attribute_members;
for (var attribute_member in attribute_members) {
var other_entities = attribute_members[attribute_member];
for (var j = 0; j < other_entities.length; j++) {
var other_entity = other_entities[j];
var label = IPA.metadata[other_entity].label;
-
- ul.append($('<li/>', {
- title: other_entity,
- text: label,
- click: function(entity_name, facet_name, other_entity) {
- return function() {
- IPA.show_page(entity_name, facet_name, other_entity);
- };
- }(entity_name, facet_name, other_entity)
- }));
+ ul.append(build_link(other_facet,label,other_entity));
}
}
}
}
+ /*When we land on the search page, disable all facets
+ that require a pkey until one is selected*/
+ if (facet_name === 'search'){
+ $('.entity-facet', div).addClass('entity-facet-disabled');
+ }
return div;
}