summaryrefslogtreecommitdiffstats
path: root/install/ui/details.js
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/details.js')
-rw-r--r--install/ui/details.js396
1 files changed, 200 insertions, 196 deletions
diff --git a/install/ui/details.js b/install/ui/details.js
index 433f682f..a4b36db7 100644
--- a/install/ui/details.js
+++ b/install/ui/details.js
@@ -266,9 +266,6 @@ IPA.details_facet = function(spec) {
that.label = (IPA.messages && IPA.messages.facets && IPA.messages.facets.details) || spec.label;
- that.update = spec.update || IPA.details_update;
- that.refresh = spec.refresh || IPA.details_refresh;
-
that.sections = [];
that.__defineGetter__("entity_name", function(){
@@ -319,38 +316,82 @@ IPA.details_facet = function(spec) {
}
};
- that.create_content = function(container) {
+ that.create_header = function(container) {
+
+ that.facet_create_header(container);
+ that.pkey = $.bbq.getState(that.entity_name + '-pkey', true) || '';
var label = IPA.metadata.objects[that.entity_name].label;
var title = IPA.messages.details.settings;
title = title.replace('${entity}', label);
+ title = title.replace('${primary_key}', that.pkey);
- $('<h1/>',{
- html: "<span id='headerpkey' />"+title
- }).append(IPA.create_network_spinner()).
- appendTo(container);
+ that.set_title(container, title);
- var details = $('<div/>', {
- 'name': 'details'
- }).appendTo(container);
+ that.reset_button = IPA.action_button({
+ label: IPA.messages.buttons.reset,
+ icon: 'ui-icon-refresh',
+ 'class': 'details-reset',
+ click: function() {
+ that.reset();
+ return false;
+ }
+ }).appendTo(that.controls);
+
+ that.update_button = IPA.action_button({
+ label: IPA.messages.buttons.update,
+ icon: 'ui-icon-check',
+ 'class': 'details-update',
+ click: function() {
+ that.update();
+ return false;
+ }
+ }).appendTo(that.controls);
- $('<a/>', {
+ that.expand_button = $('<a/>', {
name: 'expand_all',
href: 'expand_all',
text: 'Expand All',
'class': 'expand-collapse-all',
- style: 'display: none;'
- }).appendTo(details);
+ style: 'display: none;',
+ click: function() {
+ that.expand_button.css('display', 'none');
+ that.collapse_button.css('display', 'inline');
+
+ for (var i=0; i<that.sections.length; i++) {
+ var section = that.sections[i];
+ that.toggle(section, true);
+ }
+
+ return false;
+ }
+ }).appendTo(that.controls);
- $('<a/>', {
+ that.collapse_button = $('<a/>', {
name: 'collapse_all',
href: 'collapse_all',
text: 'Collapse All',
- 'class': 'expand-collapse-all'
- }).appendTo(details);
+ 'class': 'expand-collapse-all',
+ click: function() {
+ that.expand_button.css('display', 'inline');
+ that.collapse_button.css('display', 'none');
+
+ for (var i=0; i<that.sections.length; i++) {
+ var section = that.sections[i];
+ that.toggle(section, false);
+ }
+
+ return false;
+ }
+ }).appendTo(that.controls);
+ };
+
+ that.create_content = function(container) {
- details.append('<br/>');
+ var details = $('<div/>', {
+ 'name': 'details'
+ }).appendTo(container);
for (var i = 0; i < that.sections.length; ++i) {
var section = that.sections[i];
@@ -374,6 +415,13 @@ IPA.details_facet = function(spec) {
'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('<hr/>');
@@ -384,72 +432,33 @@ IPA.details_facet = function(spec) {
that.facet_setup(container);
- that.reset_button = IPA.action_button({
- 'label': 'Reset',
- 'icon': 'ui-icon-refresh',
- 'class': 'details-reset',
- 'click': function() {
- that.reset();
- return false;
- }
- }).appendTo(that.entity_header.buttons);
-
- that.update_button = IPA.action_button({
- 'label': 'Update',
- 'icon': 'ui-icon-check',
- 'class': 'details-update',
- 'click': function() {
- that.update();
- return false;
- }
- }).appendTo(that.entity_header.buttons);
-
var details = $('div[name=details]', that.container);
- var expand_all = $('a[name=expand_all]', details);
- expand_all.click(function() {
- expand_all.css('display', 'none');
- collapse_all.css('display', 'inline');
-
- for (var i=0; i<that.sections.length; i++) {
- var section = that.sections[i];
- toggle(section, true);
- }
-
- return false;
- });
-
- var collapse_all = $('a[name=collapse_all]', details);
- collapse_all.click(function() {
- expand_all.css('display', 'inline');
- collapse_all.css('display', 'none');
-
- for (var i=0; i<that.sections.length; i++) {
- var section = that.sections[i];
- toggle(section, false);
- }
-
- return false;
- });
-
for (var i = 0; i < that.sections.length; ++i) {
var section = that.sections[i];
- var header = $('h2[name='+section.name+']', that.container);
var div = $('div.details-section[name='+section.name+']', that.container);
- header.click(function(section, div) {
- return function() {
- var visible = div.is(":visible");
- toggle(section, !visible);
- };
- }(section, div));
-
section.setup(div);
}
};
- function toggle(section, visible) {
+ that.show = function() {
+ that.facet_show();
+
+ that.pkey = $.bbq.getState(that.entity_name+'-pkey', true) || '';
+ that.entity.header.set_pkey(that.pkey);
+
+ if (that.entity.facets.length == 1) {
+ that.entity.header.back_link.css('visibility', 'hidden');
+ that.entity.header.facet_tabs.css('visibility', 'hidden');
+ } else {
+ that.entity.header.back_link.css('visibility', 'visible');
+ that.entity.header.facet_tabs.css('visibility', 'visible');
+ }
+ };
+
+ that.toggle = function(section, visible) {
var header = $('h2[name='+section.name+']', that.container);
var icon = $('span[name=icon]', header);
@@ -461,7 +470,7 @@ IPA.details_facet = function(spec) {
if (visible != div.is(":visible")) {
div.slideToggle();
}
- }
+ };
function new_key(){
var pkey = $.bbq.getState(that.entity_name + '-pkey', true) || '';
@@ -488,9 +497,6 @@ IPA.details_facet = function(spec) {
var section = that.sections[i];
section.load(record);
}
- if (that.pkey){
- that.entity_header.set_pkey(that.pkey);
- }
};
that.reset = function() {
@@ -501,6 +507,123 @@ IPA.details_facet = function(spec) {
}
};
+ that.update = function(on_win, on_fail) {
+
+ var entity_name = that.entity_name;
+
+ function on_success(data, text_status, xhr) {
+ if (on_win)
+ on_win(data, text_status, xhr);
+ if (data.error)
+ return;
+
+ var result = data.result.result;
+ that.load(result);
+ }
+
+ function on_error(xhr, text_status, error_thrown) {
+ if (on_fail)
+ on_fail(xhr, text_status, error_thrown);
+ }
+
+ var values;
+ var modlist = {'all': true, 'setattr': [], 'addattr': [], 'rights': true};
+ var attrs_wo_option = {};
+
+ for (var i=0; i<that.sections.length; i++) {
+ var section = that.sections[i];
+
+ if (section.save){
+ section.save(modlist);
+ continue;
+ }
+
+ for (var j=0; j<section.fields.length; j++) {
+ var field = section.fields[j];
+
+ var span = $('span[name='+field.name+']', section.container).first();
+ values = field.save();
+ if (!values) continue;
+
+ var param_info = IPA.get_entity_param(entity_name, field.name);
+ if (param_info) {
+ if (param_info['primary_key']) continue;
+ if (values.length === 1) {
+ modlist[field.name] = values[0];
+ } else if (values.length > 1){
+ if (field.join) {
+ modlist[field.name] = values.join(',');
+ } else {
+ modlist[field.name] = values;
+ }
+ } else if (param_info['multivalue']){
+ modlist[field.name] = [];
+ }
+ } else {
+ if (values.length) attrs_wo_option[field.name] = values;
+ }
+ }
+ }
+
+ for (var attr in attrs_wo_option) {
+ values = attrs_wo_option[attr];
+ modlist['setattr'].push(attr + '=' + values[0]);
+ for (var k = 1; k < values.length; ++k){
+ modlist['addattr'].push(attr + '=' + values[k]);
+ }
+ }
+
+ var pkey = that.get_primary_key();
+
+ var args = pkey ? [pkey] : [];
+
+ var command = IPA.command({
+ entity: entity_name,
+ method: 'mod',
+ args: args,
+ options: modlist,
+ on_success: on_success,
+ on_error: on_error
+ });
+
+ //alert(JSON.stringify(command.to_json()));
+
+ command.execute();
+ };
+
+ that.refresh = function() {
+
+ that.pkey = $.bbq.getState(that.entity_name + '-pkey', true) ;
+
+ var command = IPA.command({
+ entity: that.entity_name,
+ method: 'show',
+ options: { all: true, rights: true }
+ });
+
+ if (IPA.details_refresh_devel_hook){
+ IPA.details_refresh_devel_hook(that.entity_name,command,that.pkey);
+ }
+
+
+ if (that.pkey){
+ command.args = [that.pkey];
+ }
+
+ command.on_success = function(data, text_status, xhr) {
+ that.load(data.result.result);
+ };
+
+ command.on_error = function(xhr, text_status, error_thrown) {
+ var details = $('.details', that.container).empty();
+ details.append('<p>Error: '+error_thrown.name+'</p>');
+ details.append('<p>'+error_thrown.title+'</p>');
+ details.append('<p>'+error_thrown.message+'</p>');
+ };
+
+ command.execute();
+ };
+
that.details_facet_init = that.init;
that.details_facet_create_content = that.create_content;
that.details_facet_load = that.load;
@@ -540,122 +663,3 @@ IPA.button = function(spec) {
return button;
};
-
-IPA.details_refresh = function() {
-
- var that = this;
-
- that.pkey = $.bbq.getState(that.entity_name + '-pkey', true) ;
-
- var command = IPA.command({
- entity: that.entity_name,
- method: 'show',
- options: { all: true, rights: true }
- });
-
- if (IPA.details_refresh_devel_hook){
- IPA.details_refresh_devel_hook(that.entity_name,command,that.pkey);
- }
-
-
- if (that.pkey){
- command.args = [that.pkey];
- }
-
- command.on_success = function(data, text_status, xhr) {
- that.load(data.result.result);
- };
-
- command.on_error = function(xhr, text_status, error_thrown) {
- var details = $('.details', that.container).empty();
- details.append('<p>Error: '+error_thrown.name+'</p>');
- details.append('<p>'+error_thrown.title+'</p>');
- details.append('<p>'+error_thrown.message+'</p>');
- };
-
- command.execute();
-};
-
-IPA.details_update = function(on_win, on_fail) {
- var that = this;
- var entity_name = that.entity_name;
-
- function on_success(data, text_status, xhr) {
- if (on_win)
- on_win(data, text_status, xhr);
- if (data.error)
- return;
-
- var result = data.result.result;
- that.load(result);
- }
-
- function on_error(xhr, text_status, error_thrown) {
- if (on_fail)
- on_fail(xhr, text_status, error_thrown);
- }
-
- var values;
- var modlist = {'all': true, 'setattr': [], 'addattr': [], 'rights': true};
- var attrs_wo_option = {};
-
- for (var i=0; i<that.sections.length; i++) {
- var section = that.sections[i];
-
- if (section.save){
- section.save(modlist);
- continue;
- }
-
- for (var j=0; j<section.fields.length; j++) {
- var field = section.fields[j];
-
- var span = $('span[name='+field.name+']', section.container).first();
- values = field.save();
- if (!values) continue;
-
- var param_info = IPA.get_entity_param(entity_name, field.name);
- if (param_info) {
- if (param_info['primary_key']) continue;
- if (values.length === 1) {
- modlist[field.name] = values[0];
- } else if (values.length > 1){
- if (field.join) {
- modlist[field.name] = values.join(',');
- } else {
- modlist[field.name] = values;
- }
- } else if (param_info['multivalue']){
- modlist[field.name] = [];
- }
- } else {
- if (values.length) attrs_wo_option[field.name] = values;
- }
- }
- }
-
- for (var attr in attrs_wo_option) {
- values = attrs_wo_option[attr];
- modlist['setattr'].push(attr + '=' + values[0]);
- for (var k = 1; k < values.length; ++k){
- modlist['addattr'].push(attr + '=' + values[k]);
- }
- }
-
- var pkey = that.get_primary_key();
-
- var args = pkey ? [pkey] : [];
-
- var command = IPA.command({
- entity: entity_name,
- method: 'mod',
- args: args,
- options: modlist,
- on_success: on_success,
- on_error: on_error
- });
-
- //alert(JSON.stringify(command.to_json()));
-
- command.execute();
-};