mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Added navigation breadcrumb.
Navigation breadcrumb has been added to the facet header. The breadcrumb will appear on details, association, and automount facets. Ticket #1323
This commit is contained in:
committed by
Adam Young
parent
c8eb76766a
commit
975e2bfa2b
@@ -28,8 +28,7 @@
|
|||||||
|
|
||||||
IPA.entity_factories.automountlocation = function() {
|
IPA.entity_factories.automountlocation = function() {
|
||||||
return IPA.entity_builder().
|
return IPA.entity_builder().
|
||||||
entity({name:'automountlocation',
|
entity({ name: 'automountlocation' }).
|
||||||
title:IPA.messages.tabs.automount}).
|
|
||||||
search_facet({
|
search_facet({
|
||||||
title: IPA.metadata.objects.automountlocation.label,
|
title: IPA.metadata.objects.automountlocation.label,
|
||||||
columns:['cn']
|
columns:['cn']
|
||||||
@@ -39,7 +38,8 @@ IPA.entity_factories.automountlocation = function() {
|
|||||||
nested_entity : 'automountmap',
|
nested_entity : 'automountmap',
|
||||||
label : IPA.metadata.objects.automountmap.label,
|
label : IPA.metadata.objects.automountmap.label,
|
||||||
name: 'maps',
|
name: 'maps',
|
||||||
columns:['automountmapname']
|
columns:['automountmapname'],
|
||||||
|
back_link_text: 'Back to Locations'
|
||||||
}).
|
}).
|
||||||
details_facet({
|
details_facet({
|
||||||
sections:[
|
sections:[
|
||||||
@@ -48,7 +48,9 @@ IPA.entity_factories.automountlocation = function() {
|
|||||||
label: IPA.messages.details.identity,
|
label: IPA.messages.details.identity,
|
||||||
fields:['cn']
|
fields:['cn']
|
||||||
}
|
}
|
||||||
]}).
|
],
|
||||||
|
back_link_text: 'Back to Locations'
|
||||||
|
}).
|
||||||
adder_dialog({
|
adder_dialog({
|
||||||
fields:['cn']
|
fields:['cn']
|
||||||
}).
|
}).
|
||||||
@@ -56,8 +58,7 @@ IPA.entity_factories.automountlocation = function() {
|
|||||||
};
|
};
|
||||||
IPA.entity_factories.automountmap = function() {
|
IPA.entity_factories.automountmap = function() {
|
||||||
return IPA.entity_builder().
|
return IPA.entity_builder().
|
||||||
entity({name:'automountmap',
|
entity({ name: 'automountmap' }).
|
||||||
title:IPA.messages.tabs.automount}).
|
|
||||||
containing_entity('automountlocation').
|
containing_entity('automountlocation').
|
||||||
nested_search_facet({
|
nested_search_facet({
|
||||||
facet_group: 'member',
|
facet_group: 'member',
|
||||||
@@ -65,7 +66,8 @@ IPA.entity_factories.automountmap = function() {
|
|||||||
label : IPA.metadata.objects.automountkey.label,
|
label : IPA.metadata.objects.automountkey.label,
|
||||||
name: 'keys',
|
name: 'keys',
|
||||||
get_values: IPA.get_option_values,
|
get_values: IPA.get_option_values,
|
||||||
columns:['automountkey','automountinformation']
|
columns:['automountkey','automountinformation'],
|
||||||
|
back_link_text: 'Back to Locations'
|
||||||
}).
|
}).
|
||||||
details_facet({
|
details_facet({
|
||||||
sections:[
|
sections:[
|
||||||
@@ -74,7 +76,8 @@ IPA.entity_factories.automountmap = function() {
|
|||||||
label: IPA.messages.details.identity,
|
label: IPA.messages.details.identity,
|
||||||
fields:['automountmapname','description']
|
fields:['automountmapname','description']
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
back_link_text: 'Back to Locations'
|
||||||
}).
|
}).
|
||||||
adder_dialog({
|
adder_dialog({
|
||||||
factory: IPA.automountmap_adder_dialog,
|
factory: IPA.automountmap_adder_dialog,
|
||||||
@@ -104,8 +107,7 @@ IPA.entity_factories.automountmap = function() {
|
|||||||
|
|
||||||
IPA.entity_factories.automountkey = function() {
|
IPA.entity_factories.automountkey = function() {
|
||||||
return IPA.entity_builder().
|
return IPA.entity_builder().
|
||||||
entity({name:'automountkey',
|
entity({ name: 'automountkey' }).
|
||||||
title:IPA.messages.tabs.automount}).
|
|
||||||
containing_entity('automountmap').
|
containing_entity('automountmap').
|
||||||
details_facet({
|
details_facet({
|
||||||
sections:[
|
sections:[
|
||||||
@@ -114,7 +116,8 @@ IPA.entity_factories.automountkey = function() {
|
|||||||
label: IPA.messages.details.identity,
|
label: IPA.messages.details.identity,
|
||||||
fields:['automountkey','automountinformation','description']
|
fields:['automountkey','automountinformation','description']
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
back_link_text: 'Back to Locations'
|
||||||
}).
|
}).
|
||||||
adder_dialog({
|
adder_dialog({
|
||||||
fields:['automountkey','automountinformation']
|
fields:['automountkey','automountinformation']
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ IPA.details_facet = function(spec) {
|
|||||||
|
|
||||||
that.create = function(container) {
|
that.create = function(container) {
|
||||||
if (that.entity.facets.length == 1) {
|
if (that.entity.facets.length == 1) {
|
||||||
that.disable_back_link = true;
|
that.disable_breadcrumb = true;
|
||||||
that.disable_facet_tabs = true;
|
that.disable_facet_tabs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ IPA.dnsrecord_facet = function(spec) {
|
|||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
|
|
||||||
spec.disable_back_link = false;
|
spec.disable_breadcrumb = false;
|
||||||
spec.disable_facet_tabs = false;
|
spec.disable_facet_tabs = false;
|
||||||
|
|
||||||
var that = IPA.search_facet(spec);
|
var that = IPA.search_facet(spec);
|
||||||
|
|||||||
@@ -326,7 +326,7 @@ IPA.entitle.entity = function(spec) {
|
|||||||
IPA.entitle.details_facet = function(spec) {
|
IPA.entitle.details_facet = function(spec) {
|
||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
spec.disable_back_link = true;
|
spec.disable_breadcrumb = true;
|
||||||
|
|
||||||
var that = IPA.details_facet(spec);
|
var that = IPA.details_facet(spec);
|
||||||
|
|
||||||
|
|||||||
@@ -36,8 +36,9 @@ IPA.facet = function (spec) {
|
|||||||
that.title = spec.title || that.label;
|
that.title = spec.title || that.label;
|
||||||
that.display_class = spec.display_class;
|
that.display_class = spec.display_class;
|
||||||
|
|
||||||
that.disable_back_link = spec.disable_back_link;
|
that.disable_breadcrumb = spec.disable_breadcrumb;
|
||||||
that.disable_facet_tabs = spec.disable_facet_tabs;
|
that.disable_facet_tabs = spec.disable_facet_tabs;
|
||||||
|
that.back_link_text = spec.back_link_text || IPA.messages.buttons.back_to_list;
|
||||||
|
|
||||||
that.header = spec.header || IPA.facet_header({ facet: that });
|
that.header = spec.header || IPA.facet_header({ facet: that });
|
||||||
|
|
||||||
@@ -186,6 +187,7 @@ IPA.facet_header = function(spec) {
|
|||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
|
|
||||||
var that = {};
|
var that = {};
|
||||||
|
|
||||||
that.facet = spec.facet;
|
that.facet = spec.facet;
|
||||||
|
|
||||||
that.select_tab = function() {
|
that.select_tab = function() {
|
||||||
@@ -203,48 +205,47 @@ IPA.facet_header = function(spec) {
|
|||||||
|
|
||||||
that.set_pkey = function(value) {
|
that.set_pkey = function(value) {
|
||||||
|
|
||||||
if (value) {
|
if (!value) return;
|
||||||
|
|
||||||
|
if (!that.facet.disable_breadcrumb) {
|
||||||
var breadcrumb = [];
|
var breadcrumb = [];
|
||||||
var current_entity = that.facet.entity.containing_entity;
|
var entity = that.facet.entity.containing_entity;
|
||||||
|
|
||||||
while(current_entity){
|
while (entity) {
|
||||||
breadcrumb.unshift($('<a/>',{
|
breadcrumb.unshift($('<a/>', {
|
||||||
text:$.bbq.getState(current_entity.name+'-pkey'),
|
text: $.bbq.getState(entity.name+'-pkey'),
|
||||||
title: current_entity.name,
|
title: entity.name,
|
||||||
click: function() {
|
click: function(entity) {
|
||||||
var entity = IPA.get_entity((this.title));
|
return function() {
|
||||||
IPA.nav.show_page(that.facet.entity.name, 'default');
|
IPA.nav.show_page(entity.name, 'default');
|
||||||
$('a', that.facet_tabs).removeClass('selected');
|
return false;
|
||||||
return false;
|
};
|
||||||
}
|
}(entity)
|
||||||
}));
|
}));
|
||||||
|
|
||||||
current_entity = current_entity.containing_entity;
|
entity = entity.containing_entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
that.title_container.empty();
|
that.path.empty();
|
||||||
var h3 = $('<h3/>').appendTo(that.title_container);
|
|
||||||
|
|
||||||
h3.empty();
|
|
||||||
h3.append(that.facet.entity.title);
|
|
||||||
h3.append(': ');
|
|
||||||
|
|
||||||
for (var i = 0; i < breadcrumb.length; i+=1){
|
|
||||||
h3.append(breadcrumb[i]);
|
|
||||||
h3.append(' > ');
|
|
||||||
|
|
||||||
|
for (var i=0; i<breadcrumb.length; i++){
|
||||||
|
that.path.append(' » ');
|
||||||
|
that.path.append(breadcrumb[i]);
|
||||||
}
|
}
|
||||||
h3.append(
|
|
||||||
$('<span/>', {
|
that.path.append(' » ');
|
||||||
'class': 'facet-pkey',
|
that.path.append(value);
|
||||||
text:value
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
that.title_container.empty();
|
|
||||||
var span = $('<h3/>',{
|
|
||||||
text: that.facet.entity.metadata.label
|
|
||||||
}).appendTo(that.title_container);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
that.title_container.empty();
|
||||||
|
var h3 = $('<h3/>').appendTo(that.title_container);
|
||||||
|
h3.append(that.facet.entity.title);
|
||||||
|
h3.append(': ');
|
||||||
|
|
||||||
|
$('<span/>', {
|
||||||
|
'class': 'facet-pkey',
|
||||||
|
text: value
|
||||||
|
}).appendTo(h3);
|
||||||
};
|
};
|
||||||
|
|
||||||
that.create_facet_link = function(container, other_facet) {
|
that.create_facet_link = function(container, other_facet) {
|
||||||
@@ -293,35 +294,44 @@ IPA.facet_header = function(spec) {
|
|||||||
|
|
||||||
that.create = function(container) {
|
that.create = function(container) {
|
||||||
|
|
||||||
that.title_container = $('<div/>', {
|
if (!that.facet.disable_breadcrumb) {
|
||||||
'class': 'facet-title'
|
that.breadcrumb = $('<div/>', {
|
||||||
}).appendTo(container);
|
'class': 'breadcrumb'
|
||||||
|
}).appendTo(container);
|
||||||
|
|
||||||
that.set_pkey(null);
|
|
||||||
|
|
||||||
if (!that.facet.disable_back_link) {
|
|
||||||
that.back_link = $('<span/>', {
|
that.back_link = $('<span/>', {
|
||||||
'class': 'back-link',
|
'class': 'back-link'
|
||||||
click: function() {
|
}).appendTo(that.breadcrumb);
|
||||||
if ($(this).hasClass('entity-facet-disabled')) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
that.back_link.append('« ');
|
||||||
|
|
||||||
|
$('<a/>', {
|
||||||
|
text: that.facet.back_link_text,
|
||||||
|
click: function() {
|
||||||
var current_entity = that.facet.entity;
|
var current_entity = that.facet.entity;
|
||||||
while(current_entity.containing_entity){
|
while(current_entity.containing_entity){
|
||||||
current_entity = current_entity.containing_entity;
|
current_entity = current_entity.containing_entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
IPA.nav.show_page(current_entity.name, 'search');
|
IPA.nav.show_page(current_entity.name, 'search');
|
||||||
$('a', that.facet_tabs).removeClass('selected');
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}).appendTo(container);
|
}).appendTo(that.back_link);
|
||||||
|
|
||||||
that.back_link.append('<span class="ipa-icon">◀</span> ');
|
|
||||||
that.back_link.append(IPA.messages.buttons.back_to_list);
|
that.path = $('<span/>', {
|
||||||
|
'class': 'path'
|
||||||
|
}).appendTo(that.breadcrumb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
that.title_container = $('<div/>', {
|
||||||
|
'class': 'facet-title'
|
||||||
|
}).appendTo(container);
|
||||||
|
|
||||||
|
var span = $('<h3/>', {
|
||||||
|
text: that.facet.entity.metadata.label
|
||||||
|
}).appendTo(that.title_container);
|
||||||
|
|
||||||
if (!that.facet.disable_facet_tabs) {
|
if (!that.facet.disable_facet_tabs) {
|
||||||
that.facet_tabs = $('<div/>', {
|
that.facet_tabs = $('<div/>', {
|
||||||
'class': 'facet-tabs'
|
'class': 'facet-tabs'
|
||||||
|
|||||||
@@ -443,7 +443,7 @@ div.tabs {
|
|||||||
|
|
||||||
.facet-title {
|
.facet-title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 10px;
|
||||||
left: 0;
|
left: 0;
|
||||||
color: gray;
|
color: gray;
|
||||||
display: block;
|
display: block;
|
||||||
@@ -461,11 +461,14 @@ div.tabs {
|
|||||||
color:black;
|
color:black;
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-link {
|
.breadcrumb {
|
||||||
cursor: pointer;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 0;
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breadcrumb a {
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---- Facet Tabs ---- */
|
/* ---- Facet Tabs ---- */
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ IPA.search_facet = function(spec) {
|
|||||||
spec.name = spec.name || 'search';
|
spec.name = spec.name || 'search';
|
||||||
spec.managed_entity_name = spec.managed_entity_name || spec.entity_name;
|
spec.managed_entity_name = spec.managed_entity_name || spec.entity_name;
|
||||||
|
|
||||||
spec.disable_back_link = spec.disable_back_link === undefined ? true : spec.disable_back_link;
|
spec.disable_breadcrumb = spec.disable_breadcrumb === undefined ? true : spec.disable_breadcrumb;
|
||||||
spec.disable_facet_tabs = spec.disable_facet_tabs === undefined ? true : spec.disable_facet_tabs;
|
spec.disable_facet_tabs = spec.disable_facet_tabs === undefined ? true : spec.disable_facet_tabs;
|
||||||
|
|
||||||
var that = IPA.table_facet(spec);
|
var that = IPA.table_facet(spec);
|
||||||
@@ -339,7 +339,7 @@ IPA.nested_search_facet = function(spec) {
|
|||||||
|
|
||||||
spec.managed_entity_name = spec.nested_entity;
|
spec.managed_entity_name = spec.nested_entity;
|
||||||
|
|
||||||
spec.disable_back_link = false;
|
spec.disable_breadcrumb = false;
|
||||||
spec.disable_facet_tabs = false;
|
spec.disable_facet_tabs = false;
|
||||||
|
|
||||||
var that = IPA.search_facet(spec);
|
var that = IPA.search_facet(spec);
|
||||||
|
|||||||
Reference in New Issue
Block a user