/*jsl:import ipa.js */
/* Authors:
* Pavel Zuna
* Adam Young
* Endi S. Dewata
*
* Copyright (C) 2010 Red Hat
* see file 'COPYING' for use and warranty information
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
/* IPA Object Details - populating definiton lists from entry data */
/* REQUIRES: ipa.js */
IPA.expand_icon = 'ui-icon-minus';
IPA.collapse_icon = 'ui-icon-plus';
IPA.details_section = function(spec) {
spec = spec || {};
var that = {};
that.name = spec.name || '';
that.label = spec.label || '';
that.template = spec.template;
that._entity_name = spec.entity_name;
that.fields = $.ordered_map();
that.__defineGetter__('entity_name', function() {
return that._entity_name;
});
that.__defineSetter__('entity_name', function(entity_name) {
that._entity_name = entity_name;
var fields = that.fields.values;
for (var i=0; i', { 'name': field.name }).appendTo(container);
field.create(span);
}
};
that.setup = function(container) {
that.container = container;
if (that.template) return;
var fields = that.fields.values;
for (var i=0; i tag.
* The attribute name is defined inside a tag. The attribute
* value is specified within a inside a tag. If the
* attribute has multiple values the will contain be
* duplicated to display each value.
*
* Example:
*
*
* - First Name:
* -
*
* John Smith
*
*
*
* - Telephone Number:
* -
*
*
111-1111
* 222-2222
*
*
*
*
*/
IPA.details_list_section = function(spec) {
spec = spec || {};
var that = IPA.details_section(spec);
that.create = function(container) {
// do not call section_create() here
if (that.template) return;
var dl = $('
', {
'id': that.name,
'class': 'entryattrs'
}).appendTo(container);
var fields = that.fields.values;
for (var i=0; i', {
html: label+':',
title: label
}).appendTo(dl);
var dd = $('', {
'class': 'first'
}).appendTo(dl);
var span = $('', { 'name': field.name }).appendTo(dd);
field.create(span);
}
};
return that;
};
IPA.details_facet = function(spec) {
spec = spec || {};
spec.name = spec.name || 'details';
var that = IPA.facet(spec);
that.label = (IPA.messages && IPA.messages.facets && IPA.messages.facets.details) || spec.label;
that.facet_group = spec.facet_group || 'settings';
that.sections = $.ordered_map();
that.__defineGetter__("entity_name", function(){
return that._entity_name;
});
that.__defineSetter__("entity_name", function(entity_name){
that._entity_name = entity_name;
var sections = that.sections.values;
for (var i=0; i', {
name: 'expand_all',
href: 'expand_all',
text: 'Expand All',
'class': 'expand-collapse-all',
style: 'display: none;',
click: function() {
that.expand_button.css('display', 'none');
that.collapse_button.css('display', 'inline');
var sections = that.sections.values;
for (var i=0; i', {
name: 'collapse_all',
href: 'collapse_all',
text: 'Collapse All',
'class': 'expand-collapse-all',
click: function() {
that.expand_button.css('display', 'inline');
that.collapse_button.css('display', 'none');
var sections = that.sections.values;
for (var i=0; i', {
'name': 'details'
}).appendTo(container);
var sections = that.sections.values;
for (var i=0; i', {
name: section.name,
title: section.label
}).appendTo(details);
var icon = $('', {
name: 'icon',
'class': 'ui-icon section-expand '+IPA.expand_icon
}).appendTo(header);
header.append(' ');
header.append(section.label);
var div = $('', {
name: section.name,
'class': 'details-section'
}).appendTo(details);
header.click(function(section, div) {
return function() {
var visible = div.is(":visible");
that.toggle(section, !visible);
};
}(section, div));
section.create(div);
details.append('
');
}
};
that.setup = function(container) {
that.facet_setup(container);
var details = $('div[name=details]', that.container);
var sections = that.sections.values;
for (var i=0; iError: '+error_thrown.name+'
');
details.append(''+error_thrown.message+'
');
};
command.execute();
};
that.details_facet_init = that.init;
that.details_facet_create_content = that.create_content;
that.details_facet_load = that.load;
return that;
};
IPA.action_button = function(spec) {
var button = IPA.button(spec);
button.removeClass("ui-state-default").addClass("action-button");
return button;
};
IPA.button = function(spec) {
spec = spec || {};
var button = $('', {
id: spec.id,
html: spec.label,
title: spec.title || spec.label,
'class': 'ui-state-default ui-corner-all'
});
if (spec.click) {
button.click(spec.click);
}
if (spec['class']) button.addClass(spec['class']);
if (spec.icon) {
button.addClass('input_link');
button.append(' ');
} else {
button.addClass('button-without-icon');
}
return button;
};