mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
removing setters setup and init
change widget and widget unit tests to hold on to entity, not entity name. Replacing entity_name with entity.name in most places. The one exception is columns for table_widget. Widgets that refer to other entities have to have late resolution of the entity object, due to circular dependencies. cleanup entity assignment. removed template and layout, merged setup into create adder dialogs adjust height for external removed init from widget, isection, association, facet, host and service Make unit tests use factory. fix functional tests to click find link correctly. tweak to activation test, but still broken. moved initialization code to the end use --all for hbacrule find, so the type shows up now fixed dns exception code and exception handling for get_entity replace metadata look up with value from entity. fixed author lines removed duplicate columns in managed by facets. tweak to nav fix in order to initialize tab. more defensive code update metadata for true false one line init for entity_name in widget move init code to end of constructor functions moved constants to start of function for adder_dialog external fields for dialogs initialized at dialog creation sudo sections: move add fields and columns to widget definition. The parameter validation in IPA.column ...This is precondition checking. Note that it merely throws an exception if the entity_name is not set. I want this stuff at the top of the function so that it is obvious to people looking to use them what is required. I added a comment to make this clear, but I'd like to keep precondition checking at the top of the function. decreased the scope of the pkey_name and moved the initiailzation fof columns into the setup_column function for association_tables return false at the end of click handler removed blank labels in sudo command section fix radio buttons for sudo category fixed table side for adder dialogs with external fields comments for future direction with add_columns https://fedorahosted.org/freeipa/ticket/1451 https://fedorahosted.org/freeipa/ticket/1462 https://fedorahosted.org/freeipa/ticket/1493 https://fedorahosted.org/freeipa/ticket/1497 https://fedorahosted.org/freeipa/ticket/1532 https://fedorahosted.org/freeipa/ticket/1534
This commit is contained in:
parent
264ed38fa2
commit
b36df6e9b9
@ -222,9 +222,6 @@ IPA.attributes_widget = function(spec) {
|
||||
|
||||
var id = spec.name;
|
||||
|
||||
that.setup = function() {
|
||||
};
|
||||
|
||||
that.create = function(container) {
|
||||
that.container = container;
|
||||
|
||||
@ -366,31 +363,26 @@ IPA.rights_widget = function(spec) {
|
||||
var that = IPA.checkboxes_widget(spec);
|
||||
|
||||
that.rights = ['write', 'add', 'delete'];
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.widget_init();
|
||||
|
||||
for (var i=0; i<that.rights.length; i++) {
|
||||
var right = that.rights[i];
|
||||
that.add_option({label: right, value: right});
|
||||
}
|
||||
};
|
||||
for (var i=0; i<that.rights.length; i++) {
|
||||
var right = that.rights[i];
|
||||
that.add_option({label: right, value: right});
|
||||
}
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
|
||||
IPA.rights_section = function() {
|
||||
IPA.rights_section = function(spec) {
|
||||
|
||||
var spec = {
|
||||
name: 'rights',
|
||||
label: IPA.messages.objects.permission.rights
|
||||
};
|
||||
spec = spec || {};
|
||||
|
||||
spec.name = 'rights';
|
||||
spec.label = IPA.messages.objects.permission.rights;
|
||||
|
||||
var that = IPA.details_section(spec);
|
||||
|
||||
that.add_field(IPA.rights_widget({
|
||||
entity: that.entity,
|
||||
name: 'permissions',
|
||||
join: true
|
||||
}));
|
||||
@ -407,8 +399,13 @@ IPA.target_section = function(spec) {
|
||||
that.section = true;
|
||||
that.undo = typeof spec.undo == 'undefined' ? true : spec.undo;
|
||||
|
||||
that.filter_text = IPA.text_widget({name: 'filter', undo: that.undo});
|
||||
that.filter_text = IPA.text_widget({
|
||||
name: 'filter',
|
||||
undo: that.undo,
|
||||
entity: spec.entity
|
||||
});
|
||||
that.subtree_textarea = IPA.textarea_widget({
|
||||
entity: spec.entity,
|
||||
name: 'subtree',
|
||||
cols: 30, rows: 1,
|
||||
undo: that.undo
|
||||
@ -419,9 +416,15 @@ IPA.target_section = function(spec) {
|
||||
other_field: 'cn',
|
||||
undo: that.undo
|
||||
});
|
||||
that.type_select = IPA.select_widget({name: 'type', undo: that.undo});
|
||||
that.type_select = IPA.select_widget({
|
||||
name: 'type',
|
||||
undo: that.undo
|
||||
});
|
||||
that.attribute_table = IPA.attributes_widget({
|
||||
name: 'attrs', undo: that.undo});
|
||||
entity: spec.entity,
|
||||
name: 'attrs',
|
||||
undo: that.undo
|
||||
});
|
||||
|
||||
that.add_field(that.filter_text);
|
||||
that.add_field(that.subtree_textarea);
|
||||
@ -542,7 +545,7 @@ IPA.target_section = function(spec) {
|
||||
name: 'type'
|
||||
}).appendTo(dd);
|
||||
that.type_select.create(span);
|
||||
that.type_select.setup(span);
|
||||
|
||||
|
||||
span = $('<dd/>', {
|
||||
name: 'attrs',
|
||||
|
@ -32,82 +32,30 @@ IPA.add_dialog = function (spec) {
|
||||
that.method = spec.method || 'add';
|
||||
that.pre_execute_hook = spec.pre_execute_hook;
|
||||
|
||||
function show_edit_page(entity_name,result){
|
||||
var pkey_name = IPA.metadata.objects[entity_name].primary_key;
|
||||
function show_edit_page(entity,result){
|
||||
var pkey_name = entity.metadata.primary_key;
|
||||
var pkey = result[pkey_name];
|
||||
if (pkey instanceof Array) {
|
||||
pkey = pkey[0];
|
||||
}
|
||||
IPA.nav.show_page(that.entity_name, 'default', pkey);
|
||||
IPA.nav.show_entity_page(that.entity, 'default', pkey);
|
||||
}
|
||||
|
||||
that.show_edit_page = spec.show_edit_page || show_edit_page;
|
||||
|
||||
that.init = function() {
|
||||
that.add_button(IPA.messages.buttons.add, function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
that.add(
|
||||
record,
|
||||
function(data, text_status, xhr) {
|
||||
var facet = IPA.current_entity.get_facet();
|
||||
var table = facet.table;
|
||||
table.refresh();
|
||||
that.close();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
that.add_button(IPA.messages.buttons.add_and_add_another, function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
that.add(
|
||||
record,
|
||||
function(data, text_status, xhr) {
|
||||
var facet = IPA.current_entity.get_facet();
|
||||
var table = facet.table;
|
||||
table.refresh();
|
||||
that.reset();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button(IPA.messages.buttons.add_and_edit, function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
that.add(
|
||||
record,
|
||||
function(data, text_status, xhr) {
|
||||
that.close();
|
||||
|
||||
var entity_name = that.entity_name;
|
||||
var result = data.result.result;
|
||||
that.show_edit_page(entity_name,result);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button(IPA.messages.buttons.cancel, function() {
|
||||
that.close();
|
||||
});
|
||||
|
||||
that.dialog_init();
|
||||
};
|
||||
|
||||
that.add = function(record, on_success, on_error) {
|
||||
|
||||
var field, value, pkey_prefix;
|
||||
var pkey_name = IPA.metadata.objects[that.entity_name].primary_key;
|
||||
var pkey_name = that.entity.metadata.primary_key;
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: that.method,
|
||||
on_success: on_success,
|
||||
on_error: on_error
|
||||
});
|
||||
|
||||
pkey_prefix = IPA.get_entity(that.entity_name).get_primary_key_prefix();
|
||||
pkey_prefix = that.entity.get_primary_key_prefix();
|
||||
|
||||
for (var h=0; h<pkey_prefix.length; h++) {
|
||||
command.add_arg(pkey_prefix[h]);
|
||||
@ -168,7 +116,52 @@ IPA.add_dialog = function (spec) {
|
||||
|
||||
};
|
||||
|
||||
that.add_dialog_init = that.init;
|
||||
/*dialog initialization*/
|
||||
that.add_button(IPA.messages.buttons.add, function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
that.add(
|
||||
record,
|
||||
function(data, text_status, xhr) {
|
||||
var facet = IPA.current_entity.get_facet();
|
||||
var table = facet.table;
|
||||
table.refresh();
|
||||
that.close();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button(IPA.messages.buttons.add_and_add_another, function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
that.add(
|
||||
record,
|
||||
function(data, text_status, xhr) {
|
||||
var facet = IPA.current_entity.get_facet();
|
||||
var table = facet.table;
|
||||
table.refresh();
|
||||
that.reset();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button(IPA.messages.buttons.add_and_edit, function() {
|
||||
var record = {};
|
||||
that.save(record);
|
||||
that.add(
|
||||
record,
|
||||
function(data, text_status, xhr) {
|
||||
that.close();
|
||||
var result = data.result.result;
|
||||
that.show_edit_page(that.entity,result);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
that.add_button(IPA.messages.buttons.cancel, function() {
|
||||
that.close();
|
||||
});
|
||||
|
||||
|
||||
return that;
|
||||
};
|
||||
|
@ -30,7 +30,7 @@ IPA.associator = function (spec) {
|
||||
|
||||
var that = {};
|
||||
|
||||
that.entity_name = spec.entity_name;
|
||||
that.entity = spec.entity;
|
||||
that.pkey = spec.pkey;
|
||||
|
||||
that.other_entity = spec.other_entity;
|
||||
@ -72,7 +72,7 @@ IPA.serial_associator = function(spec) {
|
||||
|
||||
var args = [value];
|
||||
var options = {};
|
||||
options[that.entity_name] = that.pkey;
|
||||
options[that.entity.name] = that.pkey;
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.other_entity,
|
||||
@ -123,7 +123,7 @@ IPA.bulk_associator = function(spec) {
|
||||
options[that.other_entity] = value;
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: that.method,
|
||||
args: args,
|
||||
options: options,
|
||||
@ -145,42 +145,34 @@ IPA.bulk_associator = function(spec) {
|
||||
IPA.association_adder_dialog = function (spec) {
|
||||
|
||||
spec = spec || {};
|
||||
/*
|
||||
TODO: columns map in IPA.adder_dialog should be removed and add_column()
|
||||
should be modified to add the column directly into the available_table
|
||||
and selected_table. This way IPA.association_adder_dialog can call
|
||||
create_column() from the initialization area, no need to modify the
|
||||
parameters.
|
||||
*/
|
||||
default_columns(spec);
|
||||
|
||||
var that = IPA.adder_dialog(spec);
|
||||
|
||||
that.entity_name = spec.entity_name;
|
||||
that.entity = spec.entity;
|
||||
that.pkey = spec.pkey;
|
||||
that.other_entity = spec.other_entity;
|
||||
that.attribute_member = spec.attribute_member;
|
||||
|
||||
that.init = function() {
|
||||
if (!that.columns.length) {
|
||||
var pkey_name = IPA.metadata.objects[that.other_entity].primary_key;
|
||||
that.create_column({
|
||||
name: pkey_name,
|
||||
label: IPA.metadata.objects[that.other_entity].label,
|
||||
primary_key: true,
|
||||
width: '200px'
|
||||
});
|
||||
}
|
||||
|
||||
/* FIXME: event not firing? */
|
||||
$('input[name=hidememb]', that.container).click(that.search);
|
||||
|
||||
that.adder_dialog_init();
|
||||
};
|
||||
|
||||
that.search = function() {
|
||||
function on_success(data, text_status, xhr) {
|
||||
var results = data.result;
|
||||
that.clear_available_values();
|
||||
|
||||
var pkey_attr = IPA.metadata.objects[that.entity_name].primary_key;
|
||||
var pkey_attr = that.entity.metadata.primary_key;
|
||||
|
||||
for (var i=0; i<results.count; i++){
|
||||
var result = results.result[i];
|
||||
if (result[pkey_attr] != spec.pkey)
|
||||
if (result[pkey_attr] != spec.pkey){
|
||||
that.add_available_value(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -203,7 +195,7 @@ IPA.association_adder_dialog = function (spec) {
|
||||
|
||||
var relationship = relationships[other_attribute_member];
|
||||
if (relationship) {
|
||||
var param_name = relationship[2] + that.entity_name;
|
||||
var param_name = relationship[2] + that.entity.name;
|
||||
options[param_name] = that.pkey;
|
||||
}
|
||||
}
|
||||
@ -217,8 +209,18 @@ IPA.association_adder_dialog = function (spec) {
|
||||
}).execute();
|
||||
};
|
||||
|
||||
that.association_adder_dialog_init = that.init;
|
||||
that.association_adder_dialog_setup = that.setup;
|
||||
/*initialization*/
|
||||
function default_columns(spec){
|
||||
if (!spec.columns) {
|
||||
var pkey_name = IPA.metadata.objects[spec.other_entity].primary_key;
|
||||
spec.columns = [{
|
||||
name: pkey_name,
|
||||
label: IPA.metadata.objects[spec.other_entity].label,
|
||||
primary_key: true,
|
||||
width: '200px'
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
return that;
|
||||
};
|
||||
@ -233,7 +235,7 @@ IPA.association_deleter_dialog = function (spec) {
|
||||
|
||||
var that = IPA.deleter_dialog(spec);
|
||||
|
||||
that.entity_name = spec.entity_name;
|
||||
that.entity = spec.entity;
|
||||
that.pkey = spec.pkey;
|
||||
that.other_entity = spec.other_entity;
|
||||
that.values = spec.values;
|
||||
@ -247,13 +249,13 @@ IPA.association_deleter_dialog = function (spec) {
|
||||
that.execute = function() {
|
||||
|
||||
var associator = that.associator({
|
||||
'entity_name': that.entity_name,
|
||||
'pkey': that.pkey,
|
||||
'other_entity': that.other_entity,
|
||||
'values': that.values,
|
||||
'method': that.method,
|
||||
'on_success': that.on_success,
|
||||
'on_error': that.on_error
|
||||
entity: that.entity,
|
||||
pkey: that.pkey,
|
||||
other_entity: that.other_entity,
|
||||
values: that.values,
|
||||
method: that.method,
|
||||
on_success: that.on_success,
|
||||
on_error: that.on_error
|
||||
});
|
||||
|
||||
associator.execute();
|
||||
@ -280,6 +282,7 @@ IPA.association_config = function (spec) {
|
||||
IPA.association_table_widget = function (spec) {
|
||||
|
||||
spec = spec || {};
|
||||
spec.managed_entity_name = spec.other_entity;
|
||||
|
||||
var that = IPA.table_widget(spec);
|
||||
|
||||
@ -301,24 +304,12 @@ IPA.association_table_widget = function (spec) {
|
||||
};
|
||||
|
||||
that.create_adder_column = function(spec) {
|
||||
spec.entity_name = that.other_entity;
|
||||
var column = IPA.column(spec);
|
||||
that.add_adder_column(column);
|
||||
return column;
|
||||
};
|
||||
|
||||
/*this is duplicated in the facet... should be unified*/
|
||||
var i;
|
||||
if (spec.columns){
|
||||
for (i = 0; i < spec.columns.length; i+= 1){
|
||||
that.create_column(spec.columns[i]);
|
||||
}
|
||||
}
|
||||
if (spec.adder_columns){
|
||||
for (i = 0; i < spec.adder_columns.length; i+= 1){
|
||||
that.create_adder_column(spec.adder_columns[i]);
|
||||
}
|
||||
}
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
var column;
|
||||
@ -326,16 +317,17 @@ IPA.association_table_widget = function (spec) {
|
||||
// create a column if none defined
|
||||
if (!that.columns.length) {
|
||||
that.create_column({
|
||||
'name': that.name,
|
||||
'label': IPA.metadata.objects[that.other_entity].label,
|
||||
'primary_key': true
|
||||
name: that.name,
|
||||
label: IPA.metadata.objects[that.other_entity].label,
|
||||
entity_name: that.other_entity,
|
||||
primary_key: true
|
||||
});
|
||||
}
|
||||
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
column = columns[i];
|
||||
column.entity_name = that.other_entity;
|
||||
column.entity = IPA.get_entity(that.other_entity);
|
||||
|
||||
if (column.link) {
|
||||
column.link_handler = function(value) {
|
||||
@ -351,8 +343,6 @@ IPA.association_table_widget = function (spec) {
|
||||
column.entity_name = that.other_entity;
|
||||
}
|
||||
|
||||
that.table_init();
|
||||
|
||||
that.table_create(container);
|
||||
|
||||
var button = IPA.action_button({
|
||||
@ -381,11 +371,11 @@ IPA.association_table_widget = function (spec) {
|
||||
return;
|
||||
}
|
||||
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var facet = entity.get_facet();
|
||||
var facet = that.entity.get_facet();
|
||||
|
||||
if (facet.is_dirty()) {
|
||||
var dialog = IPA.dirty_dialog({
|
||||
entity:that.entity,
|
||||
facet: facet
|
||||
});
|
||||
|
||||
@ -393,7 +383,6 @@ IPA.association_table_widget = function (spec) {
|
||||
that.show_add_dialog();
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
dialog.open(that.container);
|
||||
|
||||
} else {
|
||||
@ -406,11 +395,11 @@ IPA.association_table_widget = function (spec) {
|
||||
return;
|
||||
}
|
||||
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var facet = entity.get_facet();
|
||||
var facet = that.entity.get_facet();
|
||||
|
||||
if (facet.is_dirty()) {
|
||||
var dialog = IPA.dirty_dialog({
|
||||
entity:that.entity,
|
||||
facet: facet
|
||||
});
|
||||
|
||||
@ -418,7 +407,6 @@ IPA.association_table_widget = function (spec) {
|
||||
that.show_remove_dialog();
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
dialog.open(that.container);
|
||||
|
||||
} else {
|
||||
@ -445,7 +433,7 @@ IPA.association_table_widget = function (spec) {
|
||||
}
|
||||
|
||||
var batch = IPA.batch_command({
|
||||
'name': that.entity_name+'_'+that.name,
|
||||
'name': that.entity.name+'_'+that.name,
|
||||
'on_success': on_success,
|
||||
'on_error': on_error
|
||||
});
|
||||
@ -501,27 +489,29 @@ IPA.association_table_widget = function (spec) {
|
||||
};
|
||||
|
||||
that.create_add_dialog = function() {
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
var label = IPA.metadata.objects[that.other_entity].label;
|
||||
var title = IPA.messages.association.add;
|
||||
|
||||
title = title.replace('${entity}', IPA.metadata.objects[that.entity_name].label_singular);
|
||||
title = title.replace(
|
||||
'${entity}',
|
||||
that.entity.metadata.label_singular);
|
||||
title = title.replace('${primary_key}', pkey);
|
||||
title = title.replace('${other_entity}', label);
|
||||
|
||||
return IPA.association_adder_dialog({
|
||||
'title': title,
|
||||
'entity_name': that.entity_name,
|
||||
'pkey': pkey,
|
||||
'other_entity': that.other_entity,
|
||||
'attribute_member': that.attribute_member,
|
||||
title: title,
|
||||
entity: that.entity,
|
||||
pkey: pkey,
|
||||
other_entity: that.other_entity,
|
||||
attribute_member: that.attribute_member,
|
||||
method: that.add_method
|
||||
});
|
||||
};
|
||||
|
||||
that.show_add_dialog = function() {
|
||||
|
||||
var dialog = that.create_add_dialog();
|
||||
var dialog = that.create_add_dialog({entity:that.entity});
|
||||
|
||||
var columns = that.adder_columns.values;
|
||||
if (columns.length) {
|
||||
@ -542,17 +532,15 @@ IPA.association_table_widget = function (spec) {
|
||||
);
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
that.add = function(values, on_success, on_error) {
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: that.add_method,
|
||||
args: [pkey],
|
||||
on_success: on_success,
|
||||
@ -573,17 +561,19 @@ IPA.association_table_widget = function (spec) {
|
||||
return;
|
||||
}
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
var label = IPA.metadata.objects[that.other_entity].label;
|
||||
var title = IPA.messages.association.remove;
|
||||
|
||||
title = title.replace('${entity}', IPA.metadata.objects[that.entity_name].label_singular);
|
||||
title = title.replace(
|
||||
'${entity}',
|
||||
that.entity.metadata.label_singular);
|
||||
title = title.replace('${primary_key}', pkey);
|
||||
title = title.replace('${other_entity}', label);
|
||||
|
||||
var dialog = IPA.association_deleter_dialog({
|
||||
'title': title,
|
||||
'entity_name': that.entity_name,
|
||||
'entity': that.entity,
|
||||
'pkey': pkey,
|
||||
'other_entity': that.other_entity,
|
||||
'values': selected_values,
|
||||
@ -604,17 +594,16 @@ IPA.association_table_widget = function (spec) {
|
||||
);
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
that.remove = function(values, on_success, on_error) {
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: that.remove_method,
|
||||
args: [pkey],
|
||||
on_success: on_success,
|
||||
@ -637,9 +626,9 @@ IPA.association_table_widget = function (spec) {
|
||||
summary.append(error_thrown.name+': '+error_thrown.message);
|
||||
}
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'show',
|
||||
args: [pkey],
|
||||
options: {'all': true, 'rights': true},
|
||||
@ -648,8 +637,23 @@ IPA.association_table_widget = function (spec) {
|
||||
}).execute();
|
||||
};
|
||||
|
||||
/*initialization code*/
|
||||
/*this is duplicated in the facet... should be unified*/
|
||||
var i;
|
||||
if (spec.columns){
|
||||
for (i = 0; i < spec.columns.length; i+= 1){
|
||||
spec.columns[i].entity_name = spec.columns[i].entity_name ||
|
||||
that.other_entity;
|
||||
that.create_column(spec.columns[i]);
|
||||
}
|
||||
}
|
||||
if (spec.adder_columns){
|
||||
for (i = 0; i < spec.adder_columns.length; i+= 1){
|
||||
that.create_adder_column(spec.adder_columns[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// methods that should be invoked by subclasses
|
||||
that.association_table_widget_init = that.init;
|
||||
that.association_table_widget_show_add_dialog = that.show_add_dialog;
|
||||
that.association_table_widget_show_remove_dialog = that.show_remove_dialog;
|
||||
|
||||
@ -661,8 +665,19 @@ IPA.association_facet = function (spec) {
|
||||
|
||||
spec = spec || {};
|
||||
|
||||
/*
|
||||
Link parameter is used to turn off the links in selfservice mode.
|
||||
Default it to true if not set so that facets that would not otherwise
|
||||
link by default get links set.
|
||||
|
||||
link must be set before the call to the base class, to affect the table.
|
||||
*/
|
||||
spec.link = spec.link === undefined ? true : spec.link;
|
||||
|
||||
spec.managed_entity_name = spec.other_entity;
|
||||
var that = IPA.table_facet(spec);
|
||||
|
||||
that.entity = spec.entity;
|
||||
that.attribute_member = spec.attribute_member;
|
||||
that.indirect_attribute_member = spec.indirect_attribute_member;
|
||||
|
||||
@ -672,7 +687,6 @@ IPA.association_facet = function (spec) {
|
||||
that.facet_group = spec.facet_group;
|
||||
|
||||
that.read_only = spec.read_only;
|
||||
that.link = spec.link === undefined ? true : spec.link;
|
||||
|
||||
that.associator = spec.associator || IPA.bulk_associator;
|
||||
that.add_method = spec.add_method || 'add_member';
|
||||
@ -691,40 +705,49 @@ IPA.association_facet = function (spec) {
|
||||
that.adder_columns.put(column.name, column);
|
||||
};
|
||||
|
||||
/*TODO try to reuse the association_table_widget in association_facet*/
|
||||
that.create_adder_column = function(spec) {
|
||||
var column;
|
||||
var factory;
|
||||
if (spec instanceof Object) {
|
||||
var factory = spec.factory || IPA.column;
|
||||
column = factory(spec);
|
||||
factory = spec.factory || IPA.column;
|
||||
} else {
|
||||
column = IPA.column({ name: spec });
|
||||
factory = IPA.column;
|
||||
spec = { name: spec };
|
||||
}
|
||||
spec.entity = that.entity;
|
||||
column = factory(spec);
|
||||
that.add_adder_column(column);
|
||||
return column;
|
||||
};
|
||||
|
||||
var adder_columns = spec.adder_columns || [];
|
||||
for (var i=0; i<adder_columns.length; i++) {
|
||||
that.create_adder_column(adder_columns[i]);
|
||||
}
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.facet_init();
|
||||
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
function setup_columns(){
|
||||
var column;
|
||||
var i;
|
||||
|
||||
var label = IPA.metadata.objects[that.other_entity] ? IPA.metadata.objects[that.other_entity].label : that.other_entity;
|
||||
var pkey_name = IPA.metadata.objects[that.other_entity].primary_key;
|
||||
var pkey_name;
|
||||
if (that.other_entity){
|
||||
pkey_name = IPA.metadata.objects[that.other_entity].primary_key;
|
||||
}
|
||||
|
||||
if (!that.columns.length){
|
||||
that.create_column({
|
||||
name: pkey_name,
|
||||
primary_key: true,
|
||||
link: spec.link
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
var label = IPA.metadata.objects[that.other_entity] ?
|
||||
IPA.metadata.objects[that.other_entity].label : that.other_entity;
|
||||
|
||||
that.table = IPA.table_widget({
|
||||
id: that.entity_name+'-'+that.other_entity,
|
||||
id: that.entity.name+'-'+that.other_entity,
|
||||
'class': 'content-table',
|
||||
name: pkey_name,
|
||||
label: label,
|
||||
entity_name: that.entity_name,
|
||||
entity: that.entity,
|
||||
other_entity: that.other_entity,
|
||||
page_length: that.page_length,
|
||||
scrollable: true,
|
||||
@ -732,13 +755,6 @@ IPA.association_facet = function (spec) {
|
||||
});
|
||||
|
||||
var columns = that.columns.values;
|
||||
if (!columns.length) {
|
||||
that.create_column({
|
||||
name: pkey_name,
|
||||
primary_key: true,
|
||||
link: that.link
|
||||
});
|
||||
}
|
||||
|
||||
that.table.set_columns(columns);
|
||||
|
||||
@ -804,14 +820,13 @@ IPA.association_facet = function (spec) {
|
||||
that.refresh_table();
|
||||
};
|
||||
|
||||
that.table.init();
|
||||
};
|
||||
}
|
||||
|
||||
that.create_header = function(container) {
|
||||
|
||||
that.facet_create_header(container);
|
||||
|
||||
that.pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
that.pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
var other_label = IPA.metadata.objects[that.other_entity].label;
|
||||
|
||||
if (!that.read_only) {
|
||||
@ -884,31 +899,31 @@ IPA.association_facet = function (spec) {
|
||||
};
|
||||
|
||||
that.create_content = function(container) {
|
||||
|
||||
that.table.create(container);
|
||||
that.table.setup(container);
|
||||
};
|
||||
|
||||
that.show = function() {
|
||||
that.facet_show();
|
||||
|
||||
that.pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
that.pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
that.header.set_pkey(that.pkey);
|
||||
};
|
||||
|
||||
that.show_add_dialog = function() {
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
var label = IPA.metadata.objects[that.other_entity] ? IPA.metadata.objects[that.other_entity].label : that.other_entity;
|
||||
var title = IPA.messages.association.add;
|
||||
|
||||
title = title.replace('${entity}', IPA.metadata.objects[that.entity_name].label_singular);
|
||||
title = title.replace(
|
||||
'${entity}',
|
||||
that.entity.metadata.label_singular);
|
||||
title = title.replace('${primary_key}', pkey);
|
||||
title = title.replace('${other_entity}', label);
|
||||
|
||||
var dialog = IPA.association_adder_dialog({
|
||||
'title': title,
|
||||
'entity_name': that.entity_name,
|
||||
'entity': that.entity,
|
||||
'pkey': pkey,
|
||||
'other_entity': that.other_entity,
|
||||
'attribute_member': that.attribute_member
|
||||
@ -921,10 +936,10 @@ IPA.association_facet = function (spec) {
|
||||
|
||||
dialog.execute = function() {
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
var associator = that.associator({
|
||||
'entity_name': that.entity_name,
|
||||
'entity': that.entity,
|
||||
'pkey': pkey,
|
||||
'other_entity': that.other_entity,
|
||||
'values': dialog.get_selected_values(),
|
||||
@ -942,8 +957,6 @@ IPA.association_facet = function (spec) {
|
||||
associator.execute();
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
@ -958,16 +971,18 @@ IPA.association_facet = function (spec) {
|
||||
return;
|
||||
}
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
var title = IPA.messages.association.remove;
|
||||
|
||||
title = title.replace('${entity}', IPA.metadata.objects[that.entity_name].label_singular);
|
||||
title = title.replace(
|
||||
'${entity}',
|
||||
that.entity.metadata.label_singular);
|
||||
title = title.replace('${primary_key}', pkey);
|
||||
title = title.replace('${other_entity}', label);
|
||||
|
||||
var dialog = IPA.association_deleter_dialog({
|
||||
title: title,
|
||||
entity_name: that.entity_name,
|
||||
entity: that.entity,
|
||||
pkey: pkey,
|
||||
other_entity: that.other_entity,
|
||||
values: values
|
||||
@ -976,7 +991,7 @@ IPA.association_facet = function (spec) {
|
||||
dialog.execute = function() {
|
||||
|
||||
var associator = that.associator({
|
||||
entity_name: that.entity_name,
|
||||
entity: that.entity,
|
||||
pkey: pkey,
|
||||
other_entity: that.other_entity,
|
||||
values: values,
|
||||
@ -994,8 +1009,6 @@ IPA.association_facet = function (spec) {
|
||||
associator.execute();
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
@ -1062,7 +1075,7 @@ IPA.association_facet = function (spec) {
|
||||
if (!length) return;
|
||||
|
||||
var batch = IPA.batch_command({
|
||||
'name': that.entity_name+'_'+that.get_attribute_name(),
|
||||
'name': that.entity.name+'_'+that.get_attribute_name(),
|
||||
'on_success': on_success,
|
||||
'on_error': on_error
|
||||
});
|
||||
@ -1111,10 +1124,10 @@ IPA.association_facet = function (spec) {
|
||||
if (that.remove_button) that.remove_button.css('display', 'none');
|
||||
}
|
||||
|
||||
var pkey = IPA.get_entity(that.entity_name).get_primary_key();
|
||||
var pkey = IPA.get_entity(that.entity.name).get_primary_key();
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'show',
|
||||
args: pkey
|
||||
});
|
||||
@ -1128,7 +1141,11 @@ IPA.association_facet = function (spec) {
|
||||
command.execute();
|
||||
};
|
||||
|
||||
that.association_facet_init = that.init;
|
||||
|
||||
/*initialization*/
|
||||
var adder_columns = spec.adder_columns || [];
|
||||
for (var i=0; i<adder_columns.length; i++) {
|
||||
that.create_adder_column(adder_columns[i]);
|
||||
}
|
||||
setup_columns();
|
||||
return that;
|
||||
};
|
||||
|
@ -89,20 +89,24 @@ IPA.entity_factories.automountmap = function() {
|
||||
undo: false,
|
||||
label: IPA.messages.objects.automountmap.map_type,
|
||||
options: [
|
||||
{ value: 'add', label: IPA.messages.objects.automountmap.direct },
|
||||
{ value: 'add_indirect', label: IPA.messages.objects.automountmap.indirect }
|
||||
{ value: 'add',
|
||||
label: IPA.messages.objects.automountmap.direct },
|
||||
{ value: 'add_indirect',
|
||||
label: IPA.messages.objects.automountmap.indirect }
|
||||
]
|
||||
},
|
||||
'automountmapname','description',
|
||||
{
|
||||
name: 'key',
|
||||
label: IPA.get_method_option('automountmap_add_indirect', 'key').label,
|
||||
label: IPA.get_method_option(
|
||||
'automountmap_add_indirect', 'key').label,
|
||||
conditional: true,
|
||||
undo: false
|
||||
},
|
||||
{
|
||||
name: 'parentmap',
|
||||
label: IPA.get_method_option('automountmap_add_indirect', 'parentmap').label,
|
||||
label: IPA.get_method_option(
|
||||
'automountmap_add_indirect', 'parentmap').label,
|
||||
conditional: true,
|
||||
undo: false
|
||||
}]
|
||||
@ -148,13 +152,13 @@ IPA.entity_factories.automountkey = function() {
|
||||
}
|
||||
}).
|
||||
adder_dialog({
|
||||
show_edit_page : function(entity_name, result){
|
||||
show_edit_page : function(entity, result){
|
||||
var key = result.automountkey[0];
|
||||
var info = result.automountinformation[0];
|
||||
var state = IPA.nav.get_path_state(entity_name);
|
||||
state[entity_name + '-facet'] = 'default';
|
||||
state[entity_name + '-info'] = info;
|
||||
state[entity_name + '-pkey'] = key;
|
||||
var state = IPA.nav.get_path_state(entity.name);
|
||||
state[entity.name + '-facet'] = 'default';
|
||||
state[entity.name + '-info'] = info;
|
||||
state[entity.name + '-pkey'] = key;
|
||||
IPA.nav.push_state(state);
|
||||
return false;
|
||||
},
|
||||
@ -193,9 +197,9 @@ IPA.automount_key_column = function(spec){
|
||||
IPA.automountmap_adder_dialog = function(spec){
|
||||
var that = IPA.add_dialog(spec);
|
||||
|
||||
that.super_setup = that.setup;
|
||||
that.setup = function(container) {
|
||||
that.super_setup(container);
|
||||
that.super_create = that.create;
|
||||
that.create = function(container) {
|
||||
that.super_create(container);
|
||||
that.disable_conditional_fields();
|
||||
};
|
||||
|
||||
@ -223,8 +227,10 @@ IPA.method_radio_widget = function(spec){
|
||||
|
||||
var that = IPA.radio_widget(spec);
|
||||
|
||||
that.setup = function(container) {
|
||||
that.radio_create = that.create;
|
||||
|
||||
that.create = function(container) {
|
||||
that.radio_create(container);
|
||||
var input = $('input[name="'+that.name+'"]', that.container);
|
||||
input.
|
||||
filter("[value="+ that.dialog.method+"]").
|
||||
|
@ -504,11 +504,7 @@ IPA.cert.status_widget = function(spec) {
|
||||
'name': 'create',
|
||||
'value': IPA.messages.objects.cert.new_certificate
|
||||
}).appendTo(content_div);
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
that.status_valid = $('div[name=certificate-valid]', that.container);
|
||||
that.status_revoked = $('div[name=certificate-revoked]', that.container);
|
||||
@ -676,7 +672,6 @@ IPA.cert.status_widget = function(spec) {
|
||||
'sha1_fingerprint': result['sha1_fingerprint']
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
@ -699,7 +694,6 @@ IPA.cert.status_widget = function(spec) {
|
||||
certificate: entity_certificate
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
@ -731,7 +725,6 @@ IPA.cert.status_widget = function(spec) {
|
||||
}
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
@ -769,7 +762,6 @@ IPA.cert.status_widget = function(spec) {
|
||||
}
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
@ -802,7 +794,6 @@ IPA.cert.status_widget = function(spec) {
|
||||
}
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
|
@ -37,29 +37,15 @@ IPA.details_section = function(spec) {
|
||||
|
||||
that.name = spec.name || '';
|
||||
that.label = spec.label || '';
|
||||
that._entity_name = spec.entity_name;
|
||||
|
||||
that.entity = spec.entity;
|
||||
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<fields.length; i++) {
|
||||
fields[i].entity_name = entity_name;
|
||||
}
|
||||
});
|
||||
|
||||
that.get_field = function(name) {
|
||||
return that.fields.get(name);
|
||||
};
|
||||
|
||||
that.add_field = function(field) {
|
||||
field.entity_name = that.entity_name;
|
||||
field.entity = that.entity;
|
||||
that.fields.put(field.name, field);
|
||||
return field;
|
||||
};
|
||||
@ -70,44 +56,39 @@ IPA.details_section = function(spec) {
|
||||
};
|
||||
|
||||
that.text = function(spec) {
|
||||
spec.entity = that.entity;
|
||||
var field = IPA.text_widget(spec);
|
||||
that.add_field(field);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.multivalued_text = function(spec) {
|
||||
spec.entity_name = that.entity_name;
|
||||
spec.entity = that.entity;
|
||||
var field = IPA.multivalued_text_widget(spec);
|
||||
that.add_field(field);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.textarea = function(spec) {
|
||||
spec.entity = that.entity;
|
||||
var field = IPA.textarea_widget(spec);
|
||||
that.add_field(field);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.radio = function(spec) {
|
||||
spec.entity = that.entity;
|
||||
var field = IPA.radio_widget(spec);
|
||||
that.add_field(field);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
field.init();
|
||||
}
|
||||
};
|
||||
|
||||
that.create = function(container) {
|
||||
that.container = container;
|
||||
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
var field_container = $('<div/>', {
|
||||
name: field.name,
|
||||
'class': 'details-field'
|
||||
@ -116,18 +97,6 @@ IPA.details_section = function(spec) {
|
||||
}
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.container = container;
|
||||
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
var field_container = $('.details-field[name='+field.name+']', this.container).first();
|
||||
field.setup(field_container);
|
||||
}
|
||||
};
|
||||
|
||||
that.load = function(record) {
|
||||
|
||||
@ -160,7 +129,6 @@ IPA.details_section = function(spec) {
|
||||
};
|
||||
|
||||
// methods that should be invoked by subclasses
|
||||
that.section_init = that.init;
|
||||
that.section_create = that.create;
|
||||
that.section_setup = that.setup;
|
||||
that.section_load = that.load;
|
||||
@ -205,6 +173,7 @@ IPA.details_list_section = function(spec) {
|
||||
var that = IPA.details_section(spec);
|
||||
|
||||
that.create = function(container) {
|
||||
that.container = container;
|
||||
|
||||
// do not call section_create() here
|
||||
|
||||
@ -243,7 +212,7 @@ IPA.details_facet = function(spec) {
|
||||
spec.name = spec.name || 'details';
|
||||
|
||||
var that = IPA.facet(spec);
|
||||
|
||||
that.entity = spec.entity;
|
||||
that.pre_execute_hook = spec.pre_execute_hook;
|
||||
that.post_update_hook = spec.post_update_hook;
|
||||
|
||||
@ -252,21 +221,9 @@ IPA.details_facet = function(spec) {
|
||||
|
||||
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<sections.length; i++) {
|
||||
sections[i].entity_name = entity_name;
|
||||
}
|
||||
});
|
||||
|
||||
that.add_section = function(section) {
|
||||
section.entity_name = that.entity_name;
|
||||
section.entity = that.entity;
|
||||
that.sections.put(section.name, section);
|
||||
return section;
|
||||
};
|
||||
@ -276,33 +233,23 @@ IPA.details_facet = function(spec) {
|
||||
};
|
||||
|
||||
that.create_section = function(spec) {
|
||||
spec.entity = that.entity;
|
||||
var section = IPA.details_section(spec);
|
||||
that.add_section(section);
|
||||
return section;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.facet_init();
|
||||
|
||||
var sections = that.sections.values;
|
||||
for (var i=0; i<sections.length; i++) {
|
||||
var section = sections[i];
|
||||
section.init();
|
||||
}
|
||||
};
|
||||
|
||||
/* the primary key used for show and update is built as an array.
|
||||
for most entities, this will be a single element long, but for some
|
||||
it requires the containing entities primary keys as well.*/
|
||||
that.get_primary_key = function(from_url) {
|
||||
|
||||
var pkey = IPA.get_entity(that.entity_name).get_primary_key_prefix();
|
||||
var pkey = that.entity.get_primary_key_prefix();
|
||||
|
||||
if (from_url) {
|
||||
pkey.push(that.pkey);
|
||||
} else {
|
||||
var pkey_name = IPA.metadata.objects[that.entity_name].primary_key;
|
||||
var pkey_name = that.entity.metadata.primary_key;
|
||||
if (!pkey_name){
|
||||
return pkey;
|
||||
}
|
||||
@ -359,7 +306,7 @@ IPA.details_facet = function(spec) {
|
||||
|
||||
that.facet_create_header(container);
|
||||
|
||||
that.pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
that.pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
that.create_controls();
|
||||
|
||||
@ -450,24 +397,10 @@ IPA.details_facet = function(spec) {
|
||||
}).appendTo(container);
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.facet_setup(container);
|
||||
|
||||
var sections = that.sections.values;
|
||||
for (var i=0; i<sections.length; i++) {
|
||||
var section = sections[i];
|
||||
|
||||
var div = $('.details-section[name='+section.name+']', that.container);
|
||||
|
||||
section.setup(div);
|
||||
}
|
||||
};
|
||||
|
||||
that.show = function() {
|
||||
that.facet_show();
|
||||
|
||||
that.pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
that.pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
that.header.set_pkey(that.pkey);
|
||||
};
|
||||
|
||||
@ -486,7 +419,7 @@ IPA.details_facet = function(spec) {
|
||||
};
|
||||
|
||||
that.needs_update = function() {
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
return pkey != that.pkey;
|
||||
};
|
||||
|
||||
@ -520,8 +453,6 @@ 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);
|
||||
@ -545,7 +476,7 @@ IPA.details_facet = function(spec) {
|
||||
var args = that.get_primary_key();
|
||||
|
||||
var command = IPA.command({
|
||||
entity: entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'mod',
|
||||
args: args,
|
||||
options: {
|
||||
@ -574,7 +505,6 @@ IPA.details_facet = function(spec) {
|
||||
|
||||
values = field.save();
|
||||
if (!values) continue;
|
||||
|
||||
var param_info = field.param_info;
|
||||
if (param_info) {
|
||||
if (param_info.primary_key) continue;
|
||||
@ -609,16 +539,16 @@ IPA.details_facet = function(spec) {
|
||||
|
||||
that.refresh = function() {
|
||||
|
||||
that.pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
that.pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
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);
|
||||
IPA.details_refresh_devel_hook(that.entity.name, command, that.pkey);
|
||||
}
|
||||
|
||||
if (that.pkey) {
|
||||
@ -642,7 +572,6 @@ IPA.details_facet = function(spec) {
|
||||
command.execute();
|
||||
};
|
||||
|
||||
that.details_facet_init = that.init;
|
||||
that.details_facet_create_content = that.create_content;
|
||||
that.details_facet_load = that.load;
|
||||
that.details_facet_setup = that.setup;
|
||||
@ -650,41 +579,3 @@ IPA.details_facet = function(spec) {
|
||||
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 = $('<a/>', {
|
||||
id: spec.id,
|
||||
name: spec.name,
|
||||
href: spec.href || '#' + (spec.name || 'button'),
|
||||
title: spec.title || spec.label,
|
||||
'class': 'ui-state-default ui-corner-all input_link',
|
||||
style: spec.style,
|
||||
click: spec.click,
|
||||
blur: spec.blur
|
||||
});
|
||||
|
||||
if (spec['class']) button.addClass(spec['class']);
|
||||
|
||||
if (spec.icon) {
|
||||
$('<span/>', {
|
||||
'class': 'icon '+spec.icon
|
||||
}).appendTo(button);
|
||||
}
|
||||
|
||||
if (spec.label) {
|
||||
$('<span/>', {
|
||||
'class': 'button-label',
|
||||
html: spec.label
|
||||
}).appendTo(button);
|
||||
}
|
||||
|
||||
return button;
|
||||
};
|
||||
|
@ -30,10 +30,9 @@ IPA.dialog = function(spec) {
|
||||
|
||||
var that = {};
|
||||
|
||||
that.entity = spec.entity;
|
||||
that.name = spec.name;
|
||||
that.title = spec.title;
|
||||
that._entity_name = spec.entity_name;
|
||||
|
||||
that.width = spec.width || 400;
|
||||
that.height = spec.height;
|
||||
|
||||
@ -67,24 +66,6 @@ IPA.dialog = function(spec) {
|
||||
}
|
||||
};
|
||||
|
||||
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<fields.length; i++) {
|
||||
fields[i].entity_name = entity_name;
|
||||
}
|
||||
|
||||
var sections = that.sections.values;
|
||||
for (var j=0; j<sections.length; j++) {
|
||||
sections[j].entity_name = entity_name;
|
||||
}
|
||||
});
|
||||
|
||||
that.add_button = function(name, handler) {
|
||||
that.buttons[name] = handler;
|
||||
};
|
||||
@ -120,7 +101,7 @@ IPA.dialog = function(spec) {
|
||||
that.field(IPA.text_widget({
|
||||
name: name,
|
||||
undo: false,
|
||||
entity_name : that.entity_name
|
||||
entity : that.entity
|
||||
}));
|
||||
return that;
|
||||
};
|
||||
@ -141,25 +122,6 @@ IPA.dialog = function(spec) {
|
||||
return section;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.entity = IPA.get_entity(that.entity_name);
|
||||
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
field.entity_name = that.entity_name;
|
||||
field.init();
|
||||
}
|
||||
|
||||
var sections = that.sections.values;
|
||||
for (var j=0; j<sections.length; j++) {
|
||||
var section = sections[j];
|
||||
section.entity_name = that.entity_name;
|
||||
section.init();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Create content layout
|
||||
*/
|
||||
@ -178,8 +140,14 @@ IPA.dialog = function(spec) {
|
||||
style: 'vertical-align: top;',
|
||||
title: field.label
|
||||
}).appendTo(tr);
|
||||
var label_text = field.label;
|
||||
if (label_text !== null){
|
||||
label_text += ': ';
|
||||
}else{
|
||||
label_text = '';
|
||||
}
|
||||
td.append($('<label />',{id: field.name+'-label',
|
||||
text:field.label+': '}));
|
||||
text: label_text}));
|
||||
|
||||
td = $('<td/>', {
|
||||
style: 'vertical-align: top;'
|
||||
@ -217,30 +185,9 @@ IPA.dialog = function(spec) {
|
||||
|
||||
section.create(div);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Setup behavior
|
||||
*/
|
||||
that.setup = function() {
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
var span = $('span[name="'+field.name+'"]', that.container);
|
||||
field.setup(span);
|
||||
}
|
||||
|
||||
var sections = that.sections.values;
|
||||
for (var j=0; j<sections.length; j++) {
|
||||
var section = sections[j];
|
||||
|
||||
var div = $('div.details-section[name='+section.name+']',
|
||||
that.container);
|
||||
|
||||
section.setup(div);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Open dialog
|
||||
@ -248,13 +195,11 @@ IPA.dialog = function(spec) {
|
||||
that.open = function(container) {
|
||||
|
||||
that.container = $('<div/>');
|
||||
|
||||
if (container) {
|
||||
container.append(that.container);
|
||||
}
|
||||
|
||||
that.create();
|
||||
that.setup();
|
||||
|
||||
that.container.dialog({
|
||||
'title': that.title,
|
||||
@ -308,9 +253,7 @@ IPA.dialog = function(spec) {
|
||||
}
|
||||
};
|
||||
|
||||
that.dialog_init = that.init;
|
||||
that.dialog_create = that.create;
|
||||
that.dialog_setup = that.setup;
|
||||
that.dialog_open = that.open;
|
||||
|
||||
var fields = spec.fields || [];
|
||||
@ -320,6 +263,7 @@ IPA.dialog = function(spec) {
|
||||
|
||||
if (field_spec instanceof Object) {
|
||||
var factory = field_spec.factory || IPA.text_widget;
|
||||
field_spec.entity = that.entity;
|
||||
field = factory(field_spec);
|
||||
|
||||
/* This is a bit of a hack, and is here to support ACI
|
||||
@ -335,7 +279,10 @@ IPA.dialog = function(spec) {
|
||||
}
|
||||
|
||||
} else {
|
||||
field = IPA.text_widget({ name: field_spec, undo: false });
|
||||
field = IPA.text_widget({
|
||||
name: field_spec,
|
||||
entity:that.entity,
|
||||
undo: false });
|
||||
that.add_field(field);
|
||||
}
|
||||
}
|
||||
@ -348,16 +295,27 @@ IPA.dialog = function(spec) {
|
||||
* values from the available results.
|
||||
*/
|
||||
IPA.adder_dialog = function (spec) {
|
||||
var NORMAL_HEIGHT = '151px';
|
||||
var EXTERNAL_HEIGHT = '119px';
|
||||
|
||||
spec = spec || {};
|
||||
|
||||
var that = IPA.dialog(spec);
|
||||
|
||||
that.external = spec.external;
|
||||
that.width = spec.width || 600;
|
||||
that.height = spec.height || 360;
|
||||
|
||||
if (!that.entity){
|
||||
var except = {
|
||||
expected: false,
|
||||
message:'Adder dialog created without entity.'
|
||||
};
|
||||
throw except;
|
||||
}
|
||||
|
||||
that.columns = $.ordered_map();
|
||||
|
||||
|
||||
that.get_column = function(name) {
|
||||
return that.columns.get(name);
|
||||
};
|
||||
@ -378,38 +336,40 @@ IPA.adder_dialog = function (spec) {
|
||||
};
|
||||
|
||||
that.create_column = function(spec) {
|
||||
spec.entity = that.entity;
|
||||
var column = IPA.column(spec);
|
||||
that.add_column(column);
|
||||
return column;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
function initialize_table(){
|
||||
var table_height = NORMAL_HEIGHT;
|
||||
if (that.external){
|
||||
table_height = EXTERNAL_HEIGHT;
|
||||
}
|
||||
|
||||
that.available_table = IPA.table_widget({
|
||||
entity: that.entity,
|
||||
name: 'available',
|
||||
scrollable: true,
|
||||
height: '151px'
|
||||
height: table_height
|
||||
});
|
||||
|
||||
var columns = that.columns.values;
|
||||
that.available_table.set_columns(columns);
|
||||
|
||||
that.available_table.init();
|
||||
|
||||
that.selected_table = IPA.table_widget({
|
||||
entity: that.entity,
|
||||
name: 'selected',
|
||||
scrollable: true,
|
||||
height: '151px'
|
||||
height: NORMAL_HEIGHT
|
||||
});
|
||||
|
||||
that.selected_table.set_columns(columns);
|
||||
|
||||
that.selected_table.init();
|
||||
|
||||
that.dialog_init();
|
||||
};
|
||||
|
||||
}
|
||||
that.create = function() {
|
||||
|
||||
|
||||
// do not call that.dialog_create();
|
||||
|
||||
var search_panel = $('<div/>', {
|
||||
@ -465,6 +425,7 @@ IPA.adder_dialog = function (spec) {
|
||||
|
||||
that.available_table.create(available_panel);
|
||||
|
||||
|
||||
var buttons_panel = $('<div/>', {
|
||||
name: 'buttons',
|
||||
'class': 'adder-dialog-buttons'
|
||||
@ -495,17 +456,6 @@ IPA.adder_dialog = function (spec) {
|
||||
}).appendTo(selected_panel);
|
||||
|
||||
that.selected_table.create(selected_panel);
|
||||
};
|
||||
|
||||
that.setup = function() {
|
||||
|
||||
// do not call that.dialog_setup();
|
||||
|
||||
var available_panel = $('div[name=available]', that.container);
|
||||
that.available_table.setup(available_panel);
|
||||
|
||||
var selected_panel = $('div[name=selected]', that.container);
|
||||
that.selected_table.setup(selected_panel);
|
||||
|
||||
that.filter_field = $('input[name=filter]', that.container);
|
||||
|
||||
@ -513,7 +463,10 @@ IPA.adder_dialog = function (spec) {
|
||||
that.find_button = IPA.button({
|
||||
name: 'find',
|
||||
'label': button.val(),
|
||||
'click': function() { that.search(); }
|
||||
'click': function() {
|
||||
that.search();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
button.replaceWith(that.find_button);
|
||||
|
||||
@ -539,9 +492,29 @@ IPA.adder_dialog = function (spec) {
|
||||
});
|
||||
button.replaceWith(that.add_button);
|
||||
|
||||
if (that.external) {
|
||||
var external_panel = $('<div/>', {
|
||||
name: 'external',
|
||||
'class': 'adder-dialog-external'
|
||||
}).appendTo(results_panel);
|
||||
|
||||
$('<div/>', {
|
||||
html: IPA.messages.objects.sudorule.external,
|
||||
'class': 'ui-widget-header'
|
||||
}).appendTo(external_panel);
|
||||
|
||||
that.external_field = $('<input/>', {
|
||||
type: 'text',
|
||||
name: 'external',
|
||||
style: 'width: 244px'
|
||||
}).appendTo(external_panel);
|
||||
|
||||
}
|
||||
|
||||
that.search();
|
||||
};
|
||||
|
||||
|
||||
that.open = function(container) {
|
||||
|
||||
that.buttons[IPA.messages.buttons.enroll] = that.execute;
|
||||
@ -584,9 +557,16 @@ IPA.adder_dialog = function (spec) {
|
||||
return that.selected_table.save();
|
||||
};
|
||||
|
||||
that.adder_dialog_init = that.init;
|
||||
/*dialog initialization */
|
||||
if (spec.columns){
|
||||
for (var i =0; i < spec.columns.length; i +=1){
|
||||
that.create_column(spec.columns[i]);
|
||||
}
|
||||
}
|
||||
|
||||
initialize_table();
|
||||
|
||||
that.adder_dialog_create = that.create;
|
||||
that.adder_dialog_setup = that.setup;
|
||||
|
||||
return that;
|
||||
};
|
||||
|
@ -27,7 +27,10 @@
|
||||
IPA.entity_factories.dnszone = function() {
|
||||
|
||||
if (!IPA.dns_enabled) {
|
||||
throw "DNS not enabled on server";
|
||||
var except = {
|
||||
expected: true
|
||||
};
|
||||
throw except;
|
||||
}
|
||||
|
||||
return IPA.entity_builder().
|
||||
@ -106,93 +109,6 @@ IPA.dnszone_adder_dialog = function(spec) {
|
||||
|
||||
var that = IPA.add_dialog(spec);
|
||||
|
||||
that.create = function() {
|
||||
|
||||
var table = $('<table/>').appendTo(that.container);
|
||||
|
||||
var field = that.fields.get('idnsname');
|
||||
var tr = $('<tr/>').appendTo(table);
|
||||
|
||||
var td = $('<td/>', {
|
||||
style: 'vertical-align: top;',
|
||||
title: field.label
|
||||
}).appendTo(tr);
|
||||
|
||||
td.append($('<label/>', {
|
||||
text: field.label+':'
|
||||
}));
|
||||
|
||||
td = $('<td/>', {
|
||||
style: 'vertical-align: top;'
|
||||
}).appendTo(tr);
|
||||
|
||||
var span = $('<span/>', {
|
||||
name: field.name
|
||||
}).appendTo(td);
|
||||
|
||||
field.create(span);
|
||||
field.field_span = span;
|
||||
|
||||
field = that.fields.get('name_from_ip');
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>', {
|
||||
style: 'vertical-align: top;',
|
||||
title: field.label
|
||||
}).appendTo(tr);
|
||||
|
||||
td = $('<td/>', {
|
||||
style: 'vertical-align: top;'
|
||||
}).appendTo(tr);
|
||||
|
||||
span = $('<span/>', {
|
||||
name: field.name
|
||||
}).appendTo(td);
|
||||
|
||||
td.append($('<label/>', {
|
||||
text: field.label
|
||||
}));
|
||||
|
||||
field.create(span);
|
||||
field.field_span = span;
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>', {
|
||||
colspan: 2,
|
||||
html: ' '
|
||||
}).appendTo(tr);
|
||||
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
field = fields[i];
|
||||
if (field.name == 'idnsname' || field.name == 'name_from_ip') continue;
|
||||
if (field.hidden) continue;
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>', {
|
||||
style: 'vertical-align: top;',
|
||||
title: field.label
|
||||
}).appendTo(tr);
|
||||
|
||||
td.append($('<label/>', {
|
||||
text: field.label+':'
|
||||
}));
|
||||
|
||||
td = $('<td/>', {
|
||||
style: 'vertical-align: top;'
|
||||
}).appendTo(tr);
|
||||
|
||||
span = $('<span/>', {
|
||||
name: field.name
|
||||
}).appendTo(td);
|
||||
|
||||
field.create(span);
|
||||
field.field_span = span;
|
||||
}
|
||||
};
|
||||
|
||||
that.save = function(record) {
|
||||
|
||||
var idnsname;
|
||||
@ -259,7 +175,10 @@ IPA.dns_record_search_load = function (result) {
|
||||
IPA.entity_factories.dnsrecord = function() {
|
||||
|
||||
if (!IPA.dns_enabled) {
|
||||
throw "DNS not enabled on server";
|
||||
var except = {
|
||||
expected: true
|
||||
};
|
||||
throw except;
|
||||
}
|
||||
|
||||
return IPA.entity_builder().
|
||||
@ -459,8 +378,7 @@ IPA.dnsrecord_redirection_dialog = function(spec) {
|
||||
IPA.dnsrecord_host_link_widget = function(spec){
|
||||
var that = IPA.entity_link_widget(spec);
|
||||
that.other_pkeys = function(){
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var pkey = entity.get_primary_key();
|
||||
var pkey = that.entity.get_primary_key();
|
||||
return [pkey[0]+'.'+pkey[1]];
|
||||
};
|
||||
return that;
|
||||
|
@ -526,7 +526,6 @@ IPA.entitle.certificate_column = function(spec) {
|
||||
certificate: certificate,
|
||||
add_pem_delimiters: false
|
||||
});
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
return false;
|
||||
}
|
||||
@ -706,8 +705,6 @@ IPA.entitle.download_widget = function(spec) {
|
||||
certificate: userpkcs12[0].__base64__,
|
||||
add_pem_delimiters: false
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
dialog.open();
|
||||
}
|
||||
);
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
/* Authors:
|
||||
* Pavel Zuna <pzuna@redhat.com>
|
||||
* Endi S. Dewata <edewata@redhat.com>
|
||||
* Endi Sukma Dewata <edewata@redhat.com>
|
||||
* Adam Young <ayoung@redhat.com>
|
||||
*
|
||||
* Copyright (C) 2010-2011 Red Hat
|
||||
@ -31,6 +31,8 @@ IPA.facet = function (spec) {
|
||||
|
||||
var that = {};
|
||||
|
||||
that.entity = spec.entity;
|
||||
|
||||
that.name = spec.name;
|
||||
that.label = spec.label;
|
||||
that.title = spec.title || that.label;
|
||||
@ -41,7 +43,7 @@ IPA.facet = function (spec) {
|
||||
|
||||
that.header = spec.header || IPA.facet_header({ facet: that });
|
||||
|
||||
that._entity_name = spec.entity_name;
|
||||
that.entity_name = spec.entity_name;
|
||||
|
||||
that.dialogs = $.ordered_map();
|
||||
|
||||
@ -50,14 +52,6 @@ IPA.facet = function (spec) {
|
||||
|
||||
that.state = {};
|
||||
|
||||
that.__defineGetter__('entity_name', function() {
|
||||
return that._entity_name;
|
||||
});
|
||||
|
||||
that.__defineSetter__('entity_name', function(entity_name) {
|
||||
that._entity_name = entity_name;
|
||||
});
|
||||
|
||||
that.get_dialog = function(name) {
|
||||
return that.dialogs.get(name);
|
||||
};
|
||||
@ -67,16 +61,6 @@ IPA.facet = function (spec) {
|
||||
return that;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
|
||||
var dialogs = that.dialogs.values;
|
||||
for (var i=0; i<dialogs.length; i++){
|
||||
var dialog = dialogs[i];
|
||||
dialog.entity_name = that._entity_name;
|
||||
dialog.init();
|
||||
}
|
||||
};
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
that.container = container;
|
||||
@ -112,10 +96,6 @@ IPA.facet = function (spec) {
|
||||
element.html(title);
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
that.container = container;
|
||||
};
|
||||
|
||||
that.show = function() {
|
||||
that.container.css('display', 'block');
|
||||
};
|
||||
@ -178,11 +158,9 @@ IPA.facet = function (spec) {
|
||||
|
||||
|
||||
// methods that should be invoked by subclasses
|
||||
that.facet_init = that.init;
|
||||
that.facet_create = that.create;
|
||||
that.facet_create_header = that.create_header;
|
||||
that.facet_create_content = that.create_content;
|
||||
that.facet_setup = that.setup;
|
||||
that.facet_show = that.show;
|
||||
that.facet_hide = that.hide;
|
||||
that.facet_load = that.load;
|
||||
@ -385,7 +363,7 @@ IPA.table_facet = function(spec) {
|
||||
|
||||
var that = IPA.facet(spec);
|
||||
|
||||
that.managed_entity_name = spec.managed_entity_name || that.entity_name;
|
||||
that.managed_entity_name = spec.managed_entity_name || that.entity.name;
|
||||
|
||||
that.columns = $.ordered_map();
|
||||
|
||||
@ -406,10 +384,14 @@ IPA.table_facet = function(spec) {
|
||||
var column;
|
||||
if (spec instanceof Object) {
|
||||
var factory = spec.factory || IPA.column;
|
||||
column = factory(spec);
|
||||
} else {
|
||||
column = IPA.column({ name: spec });
|
||||
factory = IPA.column;
|
||||
spec = { name: spec };
|
||||
}
|
||||
|
||||
spec.entity_name = that.managed_entity_name;
|
||||
column = factory(spec);
|
||||
|
||||
that.add_column(column);
|
||||
return column;
|
||||
};
|
||||
@ -522,6 +504,8 @@ IPA.entity = function (spec) {
|
||||
|
||||
that.add_facet = function(facet) {
|
||||
facet.entity_name = that.name;
|
||||
facet.entity = that;
|
||||
|
||||
that.facets.put(facet.name, facet);
|
||||
|
||||
if (facet.facet_group) {
|
||||
@ -534,26 +518,11 @@ IPA.entity = function (spec) {
|
||||
return that;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
|
||||
var facets = that.facets.values;
|
||||
for (var i=0; i<facets.length; i++) {
|
||||
var facet = facets[i];
|
||||
facet.entity = that;
|
||||
facet.init();
|
||||
}
|
||||
|
||||
var dialogs = that.dialogs.values;
|
||||
for (var j=0; j<dialogs.length; j++) {
|
||||
dialogs[j].init();
|
||||
}
|
||||
};
|
||||
|
||||
that.create = function(container) {
|
||||
that.container = container;
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
that.display = function(container) {
|
||||
|
||||
var prev_entity = IPA.current_entity;
|
||||
var prev_facet = prev_entity ? prev_entity.facet : null;
|
||||
@ -580,7 +549,6 @@ IPA.entity = function (spec) {
|
||||
}).appendTo(that.container);
|
||||
|
||||
that.facet.create(facet_container);
|
||||
that.facet.setup(facet_container);
|
||||
}
|
||||
|
||||
that.facet.show();
|
||||
@ -617,7 +585,6 @@ IPA.entity = function (spec) {
|
||||
return [that.name + '-pkey'];
|
||||
};
|
||||
|
||||
that.entity_init = that.init;
|
||||
|
||||
return that;
|
||||
};
|
||||
@ -707,7 +674,10 @@ IPA.entity_builder = function(){
|
||||
|
||||
spec.metadata = spec.metadata || IPA.metadata.objects[spec.name];
|
||||
if (!spec.metadata) {
|
||||
throw "Entity not supported by server.";
|
||||
throw {
|
||||
expected: true,
|
||||
message: "Entity " + spec.name + "not supported by server."
|
||||
};
|
||||
}
|
||||
|
||||
entity = factory(spec);
|
||||
@ -725,6 +695,7 @@ IPA.entity_builder = function(){
|
||||
};
|
||||
|
||||
that.facet_group = function(spec) {
|
||||
spec.entity = entity;
|
||||
if (spec instanceof Object) {
|
||||
var factory = spec.factory || IPA.facet_group;
|
||||
facet_group = factory(spec);
|
||||
@ -756,6 +727,7 @@ IPA.entity_builder = function(){
|
||||
entity.remove_facet_groups();
|
||||
|
||||
for (var i=0; i<specs.length; i++) {
|
||||
specs[i].entity = entity;
|
||||
that.facet_group(specs[i]);
|
||||
}
|
||||
|
||||
@ -763,15 +735,14 @@ IPA.entity_builder = function(){
|
||||
};
|
||||
|
||||
that.facet = function(spec) {
|
||||
spec.entity_name = entity.name;
|
||||
spec.entity = entity;
|
||||
facet = spec.factory(spec);
|
||||
entity.add_facet(facet);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.search_facet = function(spec) {
|
||||
|
||||
spec.entity_name = entity.name;
|
||||
spec.entity = entity;
|
||||
spec.title = spec.title || entity.metadata.label;
|
||||
spec.label = spec.label || IPA.messages.facets.search;
|
||||
|
||||
@ -785,7 +756,7 @@ IPA.entity_builder = function(){
|
||||
|
||||
that.nested_search_facet = function(spec) {
|
||||
|
||||
spec.entity_name = entity.name;
|
||||
spec.entity = entity;
|
||||
spec.title = spec.title || entity.metadata.label_singular;
|
||||
spec.label = spec.label || IPA.messages.facets.search;
|
||||
|
||||
@ -799,8 +770,8 @@ IPA.entity_builder = function(){
|
||||
that.details_facet = function(spec) {
|
||||
|
||||
var sections = spec.sections;
|
||||
spec.entity = entity;
|
||||
spec.sections = null;
|
||||
spec.entity_name = entity.name;
|
||||
spec.title = spec.title || entity.metadata.label_singular;
|
||||
spec.label = spec.label || IPA.messages.facets.details;
|
||||
|
||||
@ -819,7 +790,7 @@ IPA.entity_builder = function(){
|
||||
|
||||
that.association_facet = function(spec) {
|
||||
|
||||
spec.entity_name = entity.name;
|
||||
spec.entity = entity;
|
||||
|
||||
var index = spec.name.indexOf('_');
|
||||
spec.attribute_member = spec.attribute_member ||
|
||||
@ -864,6 +835,7 @@ IPA.entity_builder = function(){
|
||||
that.standard_association_facets = function(spec) {
|
||||
|
||||
spec = spec || {};
|
||||
spec.entity = entity;
|
||||
|
||||
var direct_associations = [];
|
||||
var indirect_associations = [];
|
||||
@ -903,7 +875,7 @@ IPA.entity_builder = function(){
|
||||
};
|
||||
|
||||
that.section = function(spec) {
|
||||
spec.entity_name = entity.name;
|
||||
spec.entity = entity;
|
||||
|
||||
if (!spec.label) {
|
||||
var obj_messages = IPA.messages.objects[entity.name];
|
||||
@ -923,13 +895,13 @@ IPA.entity_builder = function(){
|
||||
var field;
|
||||
|
||||
if (field_spec instanceof Object) {
|
||||
field_spec.entity_name = entity.name;
|
||||
field_spec.entity = entity;
|
||||
var factory = field_spec.factory || IPA.text_widget;
|
||||
field = factory(field_spec);
|
||||
} else {
|
||||
field = IPA.text_widget({
|
||||
name: field_spec,
|
||||
entity_name: entity.name
|
||||
entity: entity
|
||||
});
|
||||
}
|
||||
section.add_field(field);
|
||||
@ -953,9 +925,13 @@ IPA.entity_builder = function(){
|
||||
var dialog;
|
||||
if (spec instanceof Object) {
|
||||
var factory = spec.factory || IPA.dialog;
|
||||
spec.entity = entity;
|
||||
dialog = factory(spec);
|
||||
} else {
|
||||
dialog = IPA.dialog({ name: spec });
|
||||
dialog = IPA.dialog({
|
||||
name: spec,
|
||||
entity: entity
|
||||
});
|
||||
}
|
||||
entity.dialog(dialog);
|
||||
return that;
|
||||
@ -964,6 +940,7 @@ IPA.entity_builder = function(){
|
||||
that.adder_dialog = function(spec) {
|
||||
spec.factory = spec.factory || IPA.add_dialog;
|
||||
spec.name = spec.name || 'add';
|
||||
spec.entity = entity;
|
||||
|
||||
if (!spec.title) {
|
||||
var title = IPA.messages.dialogs.add_title;
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
/* Authors:
|
||||
* Endi Sukma Dewata <edewata@redhat.com>
|
||||
* Adam Young <ayoung@redhat.com>
|
||||
*
|
||||
* Copyright (C) 2010 Red Hat
|
||||
* see file 'COPYING' for use and warranty information
|
||||
@ -26,6 +27,7 @@ IPA.entity_factories.hbacrule = function() {
|
||||
return IPA.entity_builder().
|
||||
entity('hbacrule').
|
||||
search_facet({
|
||||
search_all:true,
|
||||
columns:['cn',
|
||||
{
|
||||
factory: IPA.column,
|
||||
@ -47,20 +49,7 @@ IPA.entity_factories.hbacrule = function() {
|
||||
factory: IPA.hbacrule_details_facet
|
||||
}).
|
||||
adder_dialog({
|
||||
fields:[
|
||||
'cn',
|
||||
{
|
||||
factory: IPA.radio_widget,
|
||||
'name': 'accessruletype',
|
||||
'options': [
|
||||
{ 'value': 'allow',
|
||||
'label': IPA.messages.objects.hbacrule.allow
|
||||
},
|
||||
{ 'value': 'deny',
|
||||
'label': IPA.messages.objects.hbacrule.deny
|
||||
}],
|
||||
'undo': false
|
||||
}]
|
||||
fields:['cn']
|
||||
}).
|
||||
build();
|
||||
};
|
||||
@ -115,33 +104,32 @@ IPA.hbacsvcgroup_member_hbacsvc_table_widget = function(spec) {
|
||||
|
||||
var that = IPA.association_table_widget(spec);
|
||||
|
||||
that.init = function() {
|
||||
|
||||
var column = that.create_column({
|
||||
name: 'cn',
|
||||
primary_key: true,
|
||||
width: '150px',
|
||||
link: true
|
||||
});
|
||||
var column = that.create_column({
|
||||
name: 'cn',
|
||||
primary_key: true,
|
||||
width: '150px',
|
||||
entity:that.entity,
|
||||
link: true
|
||||
});
|
||||
|
||||
that.create_column({
|
||||
name: 'description',
|
||||
width: '350px'
|
||||
});
|
||||
that.create_column({
|
||||
name: 'description',
|
||||
entity:that.entity,
|
||||
|
||||
that.create_adder_column({
|
||||
name: 'cn',
|
||||
primary_key: true,
|
||||
width: '100px'
|
||||
});
|
||||
width: '350px'
|
||||
});
|
||||
|
||||
that.create_adder_column({
|
||||
name: 'description',
|
||||
width: '100px'
|
||||
});
|
||||
that.create_adder_column({
|
||||
name: 'cn',
|
||||
primary_key: true,
|
||||
width: '100px'
|
||||
});
|
||||
|
||||
that.association_table_widget_init();
|
||||
};
|
||||
that.create_adder_column({
|
||||
name: 'description',
|
||||
width: '100px'
|
||||
});
|
||||
|
||||
return that;
|
||||
};
|
||||
@ -154,157 +142,193 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
|
||||
var that = IPA.details_facet(spec);
|
||||
|
||||
that.init = function() {
|
||||
|
||||
var section = IPA.hbacrule_details_general_section({
|
||||
'name': 'general',
|
||||
'label': IPA.messages.details.general
|
||||
function general_section(){
|
||||
var section = IPA.details_list_section({
|
||||
name: 'general',
|
||||
entity:that.entity,
|
||||
label: IPA.messages.details.general
|
||||
});
|
||||
that.add_section(section);
|
||||
|
||||
section.text({name: 'cn', read_only: true});
|
||||
section.radio({name: 'accessruletype'});
|
||||
section.text({
|
||||
name: 'accessruletype',
|
||||
read_only:true
|
||||
});
|
||||
section.textarea({name: 'description'});
|
||||
section.radio({name: 'ipaenabledflag'});
|
||||
|
||||
var param_info = IPA.get_entity_param('hbacrule', 'usercategory');
|
||||
|
||||
section = IPA.rule_details_section({
|
||||
'name': 'user',
|
||||
'label': IPA.messages.objects.hbacrule.user,
|
||||
'text': param_info.doc+':',
|
||||
'field_name': 'usercategory',
|
||||
'options': [
|
||||
{ 'value': 'all', 'label': IPA.messages.objects.hbacrule.anyone },
|
||||
{ 'value': '', 'label': IPA.messages.objects.hbacrule.specified_users }
|
||||
],
|
||||
'tables': [
|
||||
{ 'field_name': 'memberuser_user' },
|
||||
{ 'field_name': 'memberuser_group' }
|
||||
section.radio({
|
||||
name: 'ipaenabledflag',
|
||||
options:[
|
||||
{'value': 'TRUE',label: IPA.messages['true']},
|
||||
{'value': 'FALSE',label:IPA.messages['false']}
|
||||
]
|
||||
});
|
||||
return section;
|
||||
}
|
||||
|
||||
|
||||
function user_category_section(){
|
||||
var param_info = IPA.get_entity_param('hbacrule', 'usercategory');
|
||||
|
||||
var section = IPA.rule_details_section({
|
||||
name: 'user',
|
||||
entity:that.entity,
|
||||
|
||||
label: IPA.messages.objects.hbacrule.user,
|
||||
text: param_info.doc+':',
|
||||
field_name: 'usercategory',
|
||||
options: [
|
||||
{ value: 'all', label: IPA.messages.objects.hbacrule.anyone },
|
||||
{ value: '',
|
||||
label: IPA.messages.objects.hbacrule.specified_users }
|
||||
],
|
||||
tables: [
|
||||
{ field_name: 'memberuser_user' },
|
||||
{ field_name: 'memberuser_group' }
|
||||
]
|
||||
});
|
||||
that.add_section(section);
|
||||
|
||||
var category = section.add_field(IPA.radio_widget({
|
||||
name: 'usercategory'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-memberuser_user',
|
||||
'name': 'memberuser_user', 'category': category,
|
||||
'other_entity': 'user', 'add_method': 'add_user', 'remove_method': 'remove_user'
|
||||
id: that.entity.name+'-memberuser_user',
|
||||
name: 'memberuser_user', category: category,
|
||||
other_entity: 'user', add_method: 'add_user',
|
||||
remove_method: 'remove_user'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-memberuser_group',
|
||||
'name': 'memberuser_group', 'category': category,
|
||||
'other_entity': 'group', 'add_method': 'add_user', 'remove_method': 'remove_user'
|
||||
id: that.entity.name+'-memberuser_group',
|
||||
name: 'memberuser_group', category: category,
|
||||
other_entity: 'group', add_method: 'add_user',
|
||||
remove_method: 'remove_user'
|
||||
}));
|
||||
return section;
|
||||
}
|
||||
|
||||
param_info = IPA.get_entity_param('hbacrule', 'hostcategory');
|
||||
function hostcategory_section(){
|
||||
var param_info = IPA.get_entity_param('hbacrule', 'hostcategory');
|
||||
|
||||
section = IPA.rule_details_section({
|
||||
'name': 'host',
|
||||
'label': IPA.messages.objects.hbacrule.host,
|
||||
'text': param_info.doc+':',
|
||||
'field_name': 'hostcategory',
|
||||
'options': [
|
||||
{ 'value': 'all', 'label': IPA.messages.objects.hbacrule.any_host },
|
||||
{ 'value': '', 'label': IPA.messages.objects.hbacrule.specified_hosts }
|
||||
var section = IPA.rule_details_section({
|
||||
name: 'host',
|
||||
label: IPA.messages.objects.hbacrule.host,
|
||||
entity:that.entity,
|
||||
text: param_info.doc+':',
|
||||
field_name: 'hostcategory',
|
||||
options: [
|
||||
{ value: 'all', label: IPA.messages.objects.hbacrule.any_host },
|
||||
{ value: '',
|
||||
label: IPA.messages.objects.hbacrule.specified_hosts }
|
||||
],
|
||||
'tables': [
|
||||
{ 'field_name': 'memberhost_host' },
|
||||
{ 'field_name': 'memberhost_hostgroup' }
|
||||
]
|
||||
tables: [
|
||||
{ field_name: 'memberhost_host' },
|
||||
{ field_name: 'memberhost_hostgroup' }
|
||||
]
|
||||
});
|
||||
that.add_section(section);
|
||||
|
||||
category = section.add_field(IPA.radio_widget({
|
||||
var category = section.add_field(IPA.radio_widget({
|
||||
name: 'hostcategory'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-memberhost_host',
|
||||
'name': 'memberhost_host', 'category': category,
|
||||
'other_entity': 'host', 'add_method': 'add_host', 'remove_method': 'remove_host'
|
||||
id: that.entity.name+'-memberhost_host',
|
||||
name: 'memberhost_host', category: category,
|
||||
other_entity: 'host', add_method: 'add_host',
|
||||
remove_method: 'remove_host'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-memberhost_hostgroup',
|
||||
'name': 'memberhost_hostgroup', 'category': category,
|
||||
'other_entity': 'hostgroup', 'add_method': 'add_host', 'remove_method': 'remove_host'
|
||||
id: that.entity.name+'-memberhost_hostgroup',
|
||||
name: 'memberhost_hostgroup', category: category,
|
||||
other_entity: 'hostgroup', add_method: 'add_host',
|
||||
remove_method: 'remove_host'
|
||||
}));
|
||||
return section;
|
||||
}
|
||||
|
||||
param_info = IPA.get_entity_param('hbacrule', 'servicecategory');
|
||||
function servicecategory_section(){
|
||||
var param_info = IPA.get_entity_param('hbacrule', 'servicecategory');
|
||||
|
||||
section = IPA.rule_details_section({
|
||||
'name': 'service',
|
||||
'label': IPA.messages.objects.hbacrule.service,
|
||||
'text': param_info.doc+':',
|
||||
'field_name': 'servicecategory',
|
||||
'options': [
|
||||
{ 'value': 'all', 'label': IPA.messages.objects.hbacrule.any_service },
|
||||
{ 'value': '', 'label': IPA.messages.objects.hbacrule.specified_services }
|
||||
var section = IPA.rule_details_section({
|
||||
name: 'service',
|
||||
entity:that.entity,
|
||||
label: IPA.messages.objects.hbacrule.service,
|
||||
text: param_info.doc+':',
|
||||
field_name: 'servicecategory',
|
||||
options: [
|
||||
{ value: 'all',
|
||||
label: IPA.messages.objects.hbacrule.any_service },
|
||||
{ value: '',
|
||||
label: IPA.messages.objects.hbacrule.specified_services }
|
||||
],
|
||||
'tables': [
|
||||
{ 'field_name': 'memberservice_hbacsvc' },
|
||||
{ 'field_name': 'memberservice_hbacsvcgroup' }
|
||||
{ field_name: 'memberservice_hbacsvc' },
|
||||
{ field_name: 'memberservice_hbacsvcgroup' }
|
||||
]
|
||||
});
|
||||
that.add_section(section);
|
||||
|
||||
category = section.add_field(IPA.radio_widget({
|
||||
var category = section.add_field(IPA.radio_widget({
|
||||
name: 'servicecategory'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-memberservice_hbacsvc',
|
||||
'name': 'memberservice_hbacsvc', 'category': category,
|
||||
'other_entity': 'hbacsvc', 'add_method': 'add_service', 'remove_method': 'remove_service'
|
||||
id: that.entity.name+'-memberservice_hbacsvc',
|
||||
name: 'memberservice_hbacsvc', category: category,
|
||||
other_entity: 'hbacsvc', add_method: 'add_service',
|
||||
remove_method: 'remove_service'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-memberservice_hbacsvcgroup',
|
||||
'name': 'memberservice_hbacsvcgroup', 'category': category,
|
||||
'other_entity': 'hbacsvcgroup', 'add_method': 'add_service', 'remove_method': 'remove_service'
|
||||
id: that.entity.name+'-memberservice_hbacsvcgroup',
|
||||
name: 'memberservice_hbacsvcgroup', category: category,
|
||||
other_entity: 'hbacsvcgroup', add_method: 'add_service',
|
||||
remove_method: 'remove_service'
|
||||
}));
|
||||
return section;
|
||||
}
|
||||
|
||||
param_info = IPA.get_entity_param('hbacrule', 'sourcehostcategory');
|
||||
function sourcehostcategory_section(){
|
||||
|
||||
section = IPA.rule_details_section({
|
||||
'name': 'sourcehost',
|
||||
'label': IPA.messages.objects.hbacrule.sourcehost,
|
||||
'text': param_info.doc+':',
|
||||
'field_name': 'sourcehostcategory',
|
||||
'options': [
|
||||
{ 'value': 'all', 'label': IPA.messages.objects.hbacrule.any_host },
|
||||
{ 'value': '', 'label': IPA.messages.objects.hbacrule.specified_hosts }
|
||||
var param_info = IPA.get_entity_param('hbacrule', 'sourcehostcategory');
|
||||
|
||||
var section = IPA.rule_details_section({
|
||||
name: 'sourcehost',
|
||||
entity:that.entity,
|
||||
label: IPA.messages.objects.hbacrule.sourcehost,
|
||||
text: param_info.doc+':',
|
||||
field_name: 'sourcehostcategory',
|
||||
options: [
|
||||
{ value: 'all', label: IPA.messages.objects.hbacrule.any_host },
|
||||
{ value: '',
|
||||
label: IPA.messages.objects.hbacrule.specified_hosts }
|
||||
],
|
||||
'tables': [
|
||||
{ 'field_name': 'sourcehost_host' },
|
||||
{ 'field_name': 'sourcehost_hostgroup' }
|
||||
tables: [
|
||||
{ field_name: 'sourcehost_host' },
|
||||
{ field_name: 'sourcehost_hostgroup' }
|
||||
]
|
||||
});
|
||||
that.add_section(section);
|
||||
|
||||
category = section.add_field(IPA.radio_widget({
|
||||
var category = section.add_field(IPA.radio_widget({
|
||||
name: 'sourcehostcategory'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-sourcehost_host',
|
||||
'name': 'sourcehost_host', 'category': category,
|
||||
'other_entity': 'host', 'add_method': 'add_sourcehost', 'remove_method': 'remove_sourcehost'
|
||||
id: that.entity.name+'-sourcehost_host',
|
||||
name: 'sourcehost_host', category: category,
|
||||
other_entity: 'host', add_method: 'add_sourcehost',
|
||||
remove_method: 'remove_sourcehost'
|
||||
}));
|
||||
section.add_field(IPA.rule_association_table_widget({
|
||||
'id': that.entity_name+'-sourcehost_hostgroup',
|
||||
'name': 'sourcehost_hostgroup', 'category': category,
|
||||
'other_entity': 'hostgroup', 'add_method': 'add_sourcehost', 'remove_method': 'remove_sourcehost'
|
||||
id: that.entity.name+'-sourcehost_hostgroup',
|
||||
name: 'sourcehost_hostgroup', category: category,
|
||||
other_entity: 'hostgroup', add_method: 'add_sourcehost',
|
||||
remove_method: 'remove_sourcehost'
|
||||
}));
|
||||
that.details_facet_init();
|
||||
};
|
||||
return section;
|
||||
}
|
||||
|
||||
that.update = function(on_success, on_error) {
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
var modify_operation = {
|
||||
'execute': false,
|
||||
'command': IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'mod',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true}
|
||||
@ -331,7 +355,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
'category': 'usercategory',
|
||||
'has_values': false,
|
||||
'command': IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'remove_user',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true}
|
||||
@ -341,7 +365,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
'category': 'hostcategory',
|
||||
'has_values': false,
|
||||
'command': IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'remove_host',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true}
|
||||
@ -351,7 +375,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
'category': 'servicecategory',
|
||||
'has_values': false,
|
||||
'command': IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'remove_service',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true}
|
||||
@ -361,7 +385,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
'category': 'sourcehostcategory',
|
||||
'has_values': false,
|
||||
'command': IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'remove_sourcehost',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true}
|
||||
@ -372,7 +396,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
var enable_operation = {
|
||||
'execute': false,
|
||||
'command': IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'enable',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true}
|
||||
@ -391,7 +415,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
var values = field.save();
|
||||
if (!values) continue;
|
||||
|
||||
var param_info = IPA.get_entity_param(that.entity_name, field.name);
|
||||
var param_info = IPA.get_entity_param(that.entity.name, field.name);
|
||||
|
||||
// skip primary key
|
||||
if (param_info && param_info['primary_key']) continue;
|
||||
@ -469,6 +493,7 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (modify_operation.execute) batch.add_command(modify_operation.command);
|
||||
if (enable_operation.execute) batch.add_command(enable_operation.command);
|
||||
|
||||
@ -480,170 +505,18 @@ IPA.hbacrule_details_facet = function(spec) {
|
||||
batch.execute();
|
||||
};
|
||||
|
||||
/*initialization*/
|
||||
that.add_section(general_section());
|
||||
that.add_section(user_category_section());
|
||||
that.add_section(hostcategory_section());
|
||||
that.add_section(servicecategory_section());
|
||||
that.add_section(sourcehostcategory_section());
|
||||
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
|
||||
IPA.hbacrule_details_general_section = function(spec) {
|
||||
|
||||
spec = spec || {};
|
||||
|
||||
var that = IPA.details_section(spec);
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
var table = $('<table/>', {
|
||||
'style': 'width: 100%;'
|
||||
}).appendTo(container);
|
||||
|
||||
var tr = $('<tr/>').appendTo(table);
|
||||
|
||||
var td = $('<td/>', {
|
||||
'style': 'width: 100px; text-align: right;'
|
||||
}).appendTo(tr);
|
||||
|
||||
var param_info = IPA.get_entity_param('hbacrule', 'cn');
|
||||
td.append(param_info.label+':');
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
|
||||
var field = that.get_field('cn');
|
||||
var span = $('<span/>', {
|
||||
name: 'cn',
|
||||
'class': 'details-field'
|
||||
}).appendTo(td);
|
||||
|
||||
$('<label/>', {
|
||||
name: 'cn',
|
||||
style: 'display: none;'
|
||||
}).appendTo(span);
|
||||
|
||||
$('<input/>', {
|
||||
'type': 'text',
|
||||
'name': 'cn',
|
||||
'size': 30
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
field.create_undo(span);
|
||||
|
||||
td = $('<td/>', {
|
||||
'style': 'text-align: right;'
|
||||
}).appendTo(tr);
|
||||
|
||||
param_info = IPA.get_entity_param('hbacrule', 'accessruletype');
|
||||
td.append(param_info.label+':');
|
||||
|
||||
field = that.get_field('accessruletype');
|
||||
span = $('<span/>', {
|
||||
name: 'accessruletype',
|
||||
'class': 'details-field'
|
||||
}).appendTo(td);
|
||||
|
||||
$('<input/>', {
|
||||
'type': 'radio',
|
||||
'name': 'accessruletype',
|
||||
'value': 'allow'
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
span.append(IPA.messages.objects.hbacrule.allow);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
$('<input/>', {
|
||||
'type': 'radio',
|
||||
'name': 'accessruletype',
|
||||
'value': 'deny'
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
span.append(IPA.messages.objects.hbacrule.deny);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
field.create_undo(span);
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>', {
|
||||
'style': 'text-align: right; vertical-align: top;'
|
||||
}).appendTo(tr);
|
||||
|
||||
param_info = IPA.get_entity_param('hbacrule', 'description');
|
||||
td.append(param_info.label+':');
|
||||
|
||||
td = $('<td/>', {
|
||||
'colspan': 2
|
||||
}).appendTo(tr);
|
||||
|
||||
field = that.get_field('description');
|
||||
span = $('<span/>', {
|
||||
name: 'description',
|
||||
'class': 'details-field'
|
||||
}).appendTo(td);
|
||||
|
||||
$('<textarea/>', {
|
||||
'name': 'description',
|
||||
'rows': 5,
|
||||
'style': 'width: 100%'
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
field.create_undo(span);
|
||||
|
||||
tr = $('<tr/>').appendTo(table);
|
||||
|
||||
td = $('<td/>', {
|
||||
'style': 'text-align: right; vertical-align: top;'
|
||||
}).appendTo(tr);
|
||||
|
||||
td.append(IPA.messages.objects.hbacrule.ipaenabledflag+':');
|
||||
|
||||
td = $('<td/>', {
|
||||
'colspan': 2
|
||||
}).appendTo(tr);
|
||||
|
||||
field = that.get_field('ipaenabledflag');
|
||||
span = $('<span/>', {
|
||||
name: 'ipaenabledflag',
|
||||
'class': 'details-field'
|
||||
}).appendTo(td);
|
||||
|
||||
$('<input/>', {
|
||||
'type': 'radio',
|
||||
'name': 'ipaenabledflag',
|
||||
'value': 'TRUE'
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
span.append(IPA.messages.objects.hbacrule.active);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
$('<input/>', {
|
||||
'type': 'radio',
|
||||
'name': 'ipaenabledflag',
|
||||
'value': 'FALSE'
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
span.append(IPA.messages.objects.hbacrule.inactive);
|
||||
|
||||
span.append(' ');
|
||||
|
||||
field.create_undo(span);
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
IPA.hbac_deny_warning_dialog = function(container) {
|
||||
var dialog = IPA.dialog({
|
||||
'title': 'HBAC Deny Rules found'
|
||||
@ -676,7 +549,5 @@ IPA.hbac_deny_warning_dialog = function(container) {
|
||||
dialog.close();
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open();
|
||||
};
|
||||
|
@ -192,8 +192,7 @@ IPA.host_dnsrecord_entity_link_widget = function(spec){
|
||||
var that = IPA.entity_link_widget(spec);
|
||||
|
||||
that.other_pkeys = function(){
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var pkey = entity.get_primary_key()[0];
|
||||
var pkey = that.entity.get_primary_key()[0];
|
||||
var first_dot = pkey.search(/\./);
|
||||
var pkeys = [];
|
||||
pkeys[1] = pkey.substring(0,first_dot);
|
||||
@ -312,14 +311,10 @@ IPA.host_provisioning_status_widget = function (spec) {
|
||||
'name': 'enroll',
|
||||
'value': IPA.messages.objects.host.set_otp
|
||||
}).appendTo(content_div);
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
that.status_valid = $('div[name=kerberos-key-valid]', that.container);
|
||||
that.status_missing = $('div[name=kerberos-key-missing]', that.container);
|
||||
that.status_missing = $('div[name=kerberos-key-missing]',
|
||||
that.container);
|
||||
|
||||
var button = $('input[name=unprovision]', that.container);
|
||||
that.unprovision_button = IPA.button({
|
||||
@ -350,7 +345,7 @@ IPA.host_provisioning_status_widget = function (spec) {
|
||||
|
||||
that.show_unprovision_dialog = function() {
|
||||
|
||||
var label = IPA.metadata.objects[that.entity_name].label_singular;
|
||||
var label = that.entity.metadata.label_singular;
|
||||
var title = IPA.messages.objects.host.unprovision_title;
|
||||
title = title.replace('${entity}', label);
|
||||
|
||||
@ -374,19 +369,16 @@ IPA.host_provisioning_status_widget = function (spec) {
|
||||
);
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
that.unprovision = function(on_success, on_error) {
|
||||
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var pkey = entity.get_primary_key();
|
||||
var pkey = that.entity.get_primary_key();
|
||||
|
||||
var command = IPA.command({
|
||||
name: that.entity_name+'_disable_'+pkey,
|
||||
entity: that.entity_name,
|
||||
name: that.entity.name+'_disable_'+pkey,
|
||||
entity: that.entity.name,
|
||||
method: 'disable',
|
||||
args: pkey,
|
||||
options: { all: true, rights: true },
|
||||
@ -399,13 +391,12 @@ IPA.host_provisioning_status_widget = function (spec) {
|
||||
|
||||
that.set_otp = function() {
|
||||
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var pkey = entity.get_primary_key();
|
||||
var pkey = that.entity.get_primary_key();
|
||||
var otp = that.otp_input.val();
|
||||
that.otp_input.val('');
|
||||
|
||||
var command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'mod',
|
||||
args: pkey,
|
||||
options: {
|
||||
@ -441,28 +432,26 @@ IPA.host_certificate_status_widget = function (spec) {
|
||||
|
||||
var that = IPA.cert.status_widget(spec);
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.entity_label = IPA.metadata.objects[that.entity_name].label_singular;
|
||||
that.entity_label = that.entity.metadata.label_singular;
|
||||
|
||||
that.get_entity_pkey = function(result) {
|
||||
var values = result['fqdn'];
|
||||
return values ? values[0] : null;
|
||||
};
|
||||
that.get_entity_pkey = function(result) {
|
||||
var values = result['fqdn'];
|
||||
return values ? values[0] : null;
|
||||
};
|
||||
|
||||
that.get_entity_name = function(result) {
|
||||
return that.get_entity_pkey(result);
|
||||
};
|
||||
that.get_entity_name = function(result) {
|
||||
return that.get_entity_pkey(result);
|
||||
};
|
||||
|
||||
that.get_entity_principal = function(result) {
|
||||
var values = result['krbprincipalname'];
|
||||
return values ? values[0] : null;
|
||||
};
|
||||
that.get_entity_principal = function(result) {
|
||||
var values = result['krbprincipalname'];
|
||||
return values ? values[0] : null;
|
||||
};
|
||||
|
||||
that.get_entity_certificate = function(result) {
|
||||
var values = result['usercertificate'];
|
||||
return values ? values[0].__base64__ : null;
|
||||
};
|
||||
that.get_entity_certificate = function(result) {
|
||||
var values = result['usercertificate'];
|
||||
return values ? values[0].__base64__ : null;
|
||||
};
|
||||
|
||||
return that;
|
||||
@ -477,22 +466,11 @@ IPA.host_managedby_host_facet = function (spec) {
|
||||
that.add_method = 'add_managedby';
|
||||
that.remove_method = 'remove_managedby';
|
||||
|
||||
that.init = function() {
|
||||
|
||||
var column = that.create_column({
|
||||
name: 'fqdn',
|
||||
primary_key: true,
|
||||
link: true
|
||||
});
|
||||
|
||||
that.create_adder_column({
|
||||
name: 'fqdn',
|
||||
primary_key: true,
|
||||
width: '200px'
|
||||
});
|
||||
|
||||
that.association_facet_init();
|
||||
};
|
||||
that.create_adder_column({
|
||||
name: 'fqdn',
|
||||
primary_key: true,
|
||||
width: '200px'
|
||||
});
|
||||
|
||||
return that;
|
||||
};
|
||||
|
@ -131,17 +131,29 @@ var IPA = ( function () {
|
||||
return that.entities.values;
|
||||
};
|
||||
|
||||
|
||||
|
||||
that.get_entity = function(name) {
|
||||
var entity = that.entities.get(name);
|
||||
if (!entity){
|
||||
var factory = that.entity_factories[name];
|
||||
if (!factory){
|
||||
return null;
|
||||
}
|
||||
try {
|
||||
entity = factory();
|
||||
that.add_entity(entity);
|
||||
entity.init();
|
||||
} catch (e) {
|
||||
/*exceptions thrown by builder just mean that entities
|
||||
are not to be registered. */
|
||||
if (e.expected){
|
||||
/*expected exceptions thrown by builder just mean that
|
||||
entities are not to be registered. */
|
||||
return null;
|
||||
}
|
||||
if (e.message){
|
||||
alert(e.message);
|
||||
}else{
|
||||
alert(e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -597,4 +609,4 @@ IPA.dirty_dialog = function(spec) {
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
||||
};
|
||||
|
@ -29,10 +29,7 @@ jQuery.ordered_map = jQuery.fn.ordered_map = function() {
|
||||
that.keys = [];
|
||||
that.values = [];
|
||||
that.map = {};
|
||||
|
||||
that.__defineGetter__('length', function() {
|
||||
return that.keys.length;
|
||||
});
|
||||
that.length = 0;
|
||||
|
||||
that.get = function(key) {
|
||||
return that.map[key];
|
||||
@ -42,6 +39,7 @@ jQuery.ordered_map = jQuery.fn.ordered_map = function() {
|
||||
that.keys.push(key);
|
||||
that.values.push(value);
|
||||
that.map[key] = value;
|
||||
that.length = that.keys.length;
|
||||
};
|
||||
|
||||
that.remove = function(key) {
|
||||
@ -54,7 +52,7 @@ jQuery.ordered_map = jQuery.fn.ordered_map = function() {
|
||||
|
||||
var value = that.map[key];
|
||||
delete that.map[key];
|
||||
|
||||
that.length = that.keys.length;
|
||||
return value;
|
||||
};
|
||||
|
||||
@ -62,6 +60,7 @@ jQuery.ordered_map = jQuery.fn.ordered_map = function() {
|
||||
that.keys = [];
|
||||
that.values = [];
|
||||
that.map = {};
|
||||
that.length = that.keys.length;
|
||||
};
|
||||
|
||||
return that;
|
||||
|
@ -137,7 +137,6 @@ IPA.navigation = function(spec) {
|
||||
$.bbq.pushState(params);
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
dialog.open(that.container);
|
||||
|
||||
return false;
|
||||
@ -230,10 +229,14 @@ IPA.navigation = function(spec) {
|
||||
}
|
||||
|
||||
if (pkeys) {
|
||||
var current_entity = entity;
|
||||
while (current_entity){
|
||||
state[current_entity.name + '-pkey'] = pkeys.pop();
|
||||
current_entity = current_entity.containing_entity;
|
||||
if (pkeys instanceof Array){
|
||||
var current_entity = entity;
|
||||
while (current_entity){
|
||||
state[current_entity.name + '-pkey'] = pkeys.pop();
|
||||
current_entity = current_entity.containing_entity;
|
||||
}
|
||||
}else{
|
||||
state[entity.name + '-pkey'] = pkeys;
|
||||
}
|
||||
}
|
||||
|
||||
@ -394,7 +397,7 @@ IPA.navigation = function(spec) {
|
||||
}
|
||||
|
||||
entity_container.css('display', 'block');
|
||||
tab.entity.setup(tab.content);
|
||||
tab.entity.display(tab.content);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -36,10 +36,12 @@ IPA.rule_details_section = function(spec) {
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
that.container = container;
|
||||
|
||||
if (that.text) container.append(that.text);
|
||||
|
||||
var field = that.get_field(that.field_name);
|
||||
var param_info = IPA.get_entity_param(that.entity_name, that.field_name);
|
||||
var param_info = IPA.get_entity_param(that.entity.name, that.field_name);
|
||||
|
||||
var span = $('<span/>', {
|
||||
name: that.field_name,
|
||||
@ -47,32 +49,46 @@ IPA.rule_details_section = function(spec) {
|
||||
'class': 'details-field'
|
||||
}).appendTo(container);
|
||||
|
||||
if (that.options.length) {
|
||||
for (var i=0; i<that.options.length; i++) {
|
||||
var option = that.options[i];
|
||||
|
||||
$('<input/>', {
|
||||
'type': 'radio',
|
||||
'name': that.field_name,
|
||||
'value': option.value
|
||||
}).appendTo(span);
|
||||
|
||||
span.append(' ');
|
||||
function update_tables(value) {
|
||||
var enabled = ('' === value);
|
||||
for (var i=0; i<that.tables.length; i++) {
|
||||
var table = that.tables[i];
|
||||
|
||||
span.append(option.label);
|
||||
|
||||
span.append(' ');
|
||||
var field = that.get_field(table.field_name);
|
||||
field.set_enabled(enabled);
|
||||
}
|
||||
|
||||
field.create_undo(span);
|
||||
|
||||
span.append('<br/>');
|
||||
}
|
||||
|
||||
if (that.options.length) {
|
||||
var category = that.get_field(that.field_name);
|
||||
category.options=that.options;
|
||||
category.reset = function() {
|
||||
category.widget_reset();
|
||||
var values = category.save();
|
||||
if (values.length === 0){
|
||||
return;
|
||||
}
|
||||
var value = values[0];
|
||||
update_tables(value);
|
||||
};
|
||||
category.create(span);
|
||||
|
||||
var inputs = $('input[name='+that.field_name+']', container);
|
||||
inputs.change(function() {
|
||||
var input = $(this);
|
||||
var value = input.val();
|
||||
update_tables(value);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
for (var j=0; j<that.tables.length; j++) {
|
||||
var table = that.tables[j];
|
||||
|
||||
param_info = IPA.get_entity_param(that.entity_name, table.field_name);
|
||||
param_info = IPA.get_entity_param(that.entity.name, table.field_name);
|
||||
|
||||
var table_span = $('<span/>', {
|
||||
name: table.field_name,
|
||||
@ -83,41 +99,8 @@ IPA.rule_details_section = function(spec) {
|
||||
field = that.get_field(table.field_name);
|
||||
field.create(table_span);
|
||||
}
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.section_setup(container);
|
||||
|
||||
function update_tables(value) {
|
||||
|
||||
var enabled = ('' === value);
|
||||
|
||||
for (var i=0; i<that.tables.length; i++) {
|
||||
var table = that.tables[i];
|
||||
|
||||
var field = that.get_field(table.field_name);
|
||||
field.set_enabled(enabled);
|
||||
}
|
||||
}
|
||||
|
||||
var category = that.get_field(that.field_name);
|
||||
category.reset = function() {
|
||||
category.widget_reset();
|
||||
var values = category.save();
|
||||
if (values.length === 0){
|
||||
return;
|
||||
}
|
||||
var value = values[0];
|
||||
update_tables(value);
|
||||
};
|
||||
|
||||
var inputs = $('input[name='+that.field_name+']', container);
|
||||
inputs.change(function() {
|
||||
var input = $(this);
|
||||
var value = input.val();
|
||||
update_tables(value);
|
||||
});
|
||||
};
|
||||
|
||||
return that;
|
||||
@ -150,7 +133,7 @@ IPA.rule_association_table_widget = function(spec) {
|
||||
|
||||
that.add = function(values, on_success, on_error) {
|
||||
|
||||
var pkey = IPA.nav.get_state(that.entity_name+'-pkey');
|
||||
var pkey = IPA.nav.get_state(that.entity.name+'-pkey');
|
||||
|
||||
var batch = IPA.batch_command({
|
||||
'on_success': on_success,
|
||||
@ -161,7 +144,7 @@ IPA.rule_association_table_widget = function(spec) {
|
||||
|
||||
if (that.category) {
|
||||
command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: 'mod',
|
||||
args: [pkey],
|
||||
options: {all: true, rights: true},
|
||||
@ -176,7 +159,7 @@ IPA.rule_association_table_widget = function(spec) {
|
||||
}
|
||||
|
||||
command = IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity.name,
|
||||
method: that.add_method,
|
||||
args: [pkey]
|
||||
});
|
||||
|
@ -29,10 +29,12 @@ IPA.search_facet = function(spec) {
|
||||
spec = spec || {};
|
||||
|
||||
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_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_breadcrumb =
|
||||
spec.disable_breadcrumb === undefined ? true : spec.disable_breadcrumb;
|
||||
spec.disable_facet_tabs =
|
||||
spec.disable_facet_tabs === undefined ? true : spec.disable_facet_tabs;
|
||||
|
||||
var that = IPA.table_facet(spec);
|
||||
|
||||
@ -45,19 +47,15 @@ IPA.search_facet = function(spec) {
|
||||
|
||||
that.get_values = spec.get_values || get_values;
|
||||
|
||||
that.init = function() {
|
||||
that.facet_init();
|
||||
function initialize_table_columns(){
|
||||
that.managed_entity = IPA.get_entity(that.managed_entity_name);
|
||||
that.init_table(that.managed_entity);
|
||||
};
|
||||
|
||||
that.init_table = function(entity){
|
||||
var entity = that.managed_entity;
|
||||
|
||||
that.table = IPA.table_widget({
|
||||
'class': 'content-table',
|
||||
name: 'search',
|
||||
label: entity.metadata.label,
|
||||
entity_name: entity.name,
|
||||
entity: entity,
|
||||
search_all: that.search_all,
|
||||
scrollable: true,
|
||||
selectable: that.selectable
|
||||
@ -66,7 +64,7 @@ IPA.search_facet = function(spec) {
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
var column = columns[i];
|
||||
|
||||
column.entity = entity;
|
||||
var param_info = IPA.get_entity_param(entity.name, column.name);
|
||||
column.primary_key = param_info && param_info['primary_key'];
|
||||
column.link = column.primary_key;
|
||||
@ -88,8 +86,13 @@ IPA.search_facet = function(spec) {
|
||||
that.table.refresh = function() {
|
||||
that.refresh();
|
||||
};
|
||||
}
|
||||
|
||||
that.table.init();
|
||||
that.create_content = function(container) {
|
||||
/*should be in the initialize section, but can not, due to
|
||||
get_entity circular references.*/
|
||||
initialize_table_columns();
|
||||
that.table.create(container);
|
||||
};
|
||||
|
||||
that.create_header = function(container) {
|
||||
@ -132,7 +135,9 @@ IPA.search_facet = function(spec) {
|
||||
label: IPA.messages.buttons.remove,
|
||||
icon: 'remove-icon',
|
||||
click: function() {
|
||||
if (that.remove_button.hasClass('input_link_disabled')) return false;
|
||||
if (that.remove_button.hasClass('input_link_disabled')) {
|
||||
return false;
|
||||
}
|
||||
that.remove();
|
||||
return false;
|
||||
}
|
||||
@ -149,17 +154,12 @@ IPA.search_facet = function(spec) {
|
||||
}).appendTo(that.controls);
|
||||
};
|
||||
|
||||
that.create_content = function(container) {
|
||||
|
||||
that.table.create(container);
|
||||
that.table.setup(container);
|
||||
};
|
||||
|
||||
that.show = function() {
|
||||
that.facet_show();
|
||||
|
||||
if (that.filter) {
|
||||
var filter = IPA.nav.get_state(that.entity_name+'-filter');
|
||||
var filter = IPA.nav.get_state(that.entity.name+'-filter');
|
||||
that.filter.val(filter);
|
||||
}
|
||||
};
|
||||
@ -213,8 +213,6 @@ IPA.search_facet = function(spec) {
|
||||
|
||||
dialog.set_values(values);
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
@ -290,9 +288,7 @@ IPA.search_facet = function(spec) {
|
||||
};
|
||||
|
||||
// methods that should be invoked by subclasses
|
||||
that.search_facet_init = that.init;
|
||||
that.search_facet_create_content = that.create_content;
|
||||
that.search_facet_setup = that.setup;
|
||||
|
||||
return that;
|
||||
};
|
||||
|
@ -112,24 +112,28 @@ IPA.service_add_dialog = function(spec) {
|
||||
field(IPA.widget({
|
||||
name: 'krbprincipalname',
|
||||
optional:true,
|
||||
entity:spec.entity,
|
||||
hidden: true
|
||||
})).
|
||||
field(IPA.service_select_widget({
|
||||
name: 'service',
|
||||
label: IPA.messages.objects.service.service,
|
||||
size: 20,
|
||||
entity:spec.entity,
|
||||
undo: false
|
||||
})).
|
||||
field(IPA.entity_select_widget({
|
||||
name: 'host',
|
||||
other_entity: 'host',
|
||||
other_field: 'fqdn',
|
||||
entity:spec.entity,
|
||||
label: IPA.messages.objects.service.host,
|
||||
undo: false
|
||||
})).
|
||||
field(
|
||||
IPA.checkbox_widget({
|
||||
name: 'force',
|
||||
entity:spec.entity,
|
||||
label: IPA.get_method_option('service_add', 'force').label,
|
||||
tooltip: IPA.get_method_option('service_add', 'force').doc,
|
||||
undo: false
|
||||
@ -247,11 +251,6 @@ IPA.service_provisioning_status_widget = function (spec) {
|
||||
}).appendTo(div);
|
||||
|
||||
content_div.append('<b>'+IPA.messages.objects.service.missing+'</b>');
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
that.status_valid = $('div[name=kerberos-key-valid]', that.container);
|
||||
that.status_missing = $('div[name=kerberos-key-missing]', that.container);
|
||||
@ -267,7 +266,7 @@ IPA.service_provisioning_status_widget = function (spec) {
|
||||
|
||||
that.unprovision = function() {
|
||||
|
||||
var label = IPA.metadata.objects[that.entity_name].label_singular;
|
||||
var label = that.entity.metadata.label_singular;
|
||||
var title = IPA.messages.objects.service.unprovision_title;
|
||||
title = title.replace('${entity}', label);
|
||||
|
||||
@ -282,7 +281,7 @@ IPA.service_provisioning_status_widget = function (spec) {
|
||||
dialog.add_button(IPA.messages.objects.service.unprovision, function() {
|
||||
var pkey = that.result['krbprincipalname'][0];
|
||||
IPA.command({
|
||||
entity: that.entity_name,
|
||||
entity: that.entity,
|
||||
method: 'disable',
|
||||
args: [pkey],
|
||||
on_success: function(data, text_status, xhr) {
|
||||
@ -295,8 +294,6 @@ IPA.service_provisioning_status_widget = function (spec) {
|
||||
}).execute();
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
|
||||
return false;
|
||||
@ -322,28 +319,26 @@ IPA.service_certificate_status_widget = function (spec) {
|
||||
|
||||
var that = IPA.cert.status_widget(spec);
|
||||
|
||||
that.init = function() {
|
||||
|
||||
that.entity_label = IPA.metadata.objects[that.entity_name].label_singular;
|
||||
that.entity_label = that.entity.metadata.label_singular;
|
||||
|
||||
that.get_entity_pkey = function(result) {
|
||||
var values = result['krbprincipalname'];
|
||||
return values ? values[0] : null;
|
||||
};
|
||||
that.get_entity_pkey = function(result) {
|
||||
var values = result['krbprincipalname'];
|
||||
return values ? values[0] : null;
|
||||
};
|
||||
|
||||
that.get_entity_name = function(result) {
|
||||
var value = that.get_entity_pkey(result);
|
||||
return value ? value.replace(/@.*$/, '') : null;
|
||||
};
|
||||
that.get_entity_name = function(result) {
|
||||
var value = that.get_entity_pkey(result);
|
||||
return value ? value.replace(/@.*$/, '') : null;
|
||||
};
|
||||
|
||||
that.get_entity_principal = function(result) {
|
||||
return that.get_entity_pkey(result);
|
||||
};
|
||||
that.get_entity_principal = function(result) {
|
||||
return that.get_entity_pkey(result);
|
||||
};
|
||||
|
||||
that.get_entity_certificate = function(result) {
|
||||
var values = result['usercertificate'];
|
||||
return values ? values[0].__base64__ : null;
|
||||
};
|
||||
that.get_entity_certificate = function(result) {
|
||||
var values = result['usercertificate'];
|
||||
return values ? values[0].__base64__ : null;
|
||||
};
|
||||
|
||||
return that;
|
||||
@ -355,22 +350,13 @@ IPA.service_managedby_host_facet = function(spec) {
|
||||
|
||||
var that = IPA.association_facet(spec);
|
||||
|
||||
that.init = function() {
|
||||
that.create_adder_column({
|
||||
name: 'fqdn',
|
||||
label: IPA.messages.objects.service.host,
|
||||
primary_key: true,
|
||||
width: '200px'
|
||||
});
|
||||
|
||||
var column = that.create_column({
|
||||
name: 'fqdn',
|
||||
primary_key: true,
|
||||
link: true
|
||||
});
|
||||
|
||||
that.create_adder_column({
|
||||
name: 'fqdn',
|
||||
primary_key: true,
|
||||
width: '200px'
|
||||
});
|
||||
|
||||
that.association_facet_init();
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
||||
};
|
File diff suppressed because it is too large
Load Diff
@ -21,6 +21,7 @@
|
||||
|
||||
var target_container;
|
||||
var target_section;
|
||||
var entity = {name:'bogus'};
|
||||
|
||||
module('aci',{
|
||||
setup: function() {
|
||||
@ -36,8 +37,11 @@ module('aci',{
|
||||
);
|
||||
|
||||
target_container = $('<div id="target"/>').appendTo(document.body);
|
||||
target_section = IPA.target_section({name: 'target', label: 'Target'});
|
||||
target_section.init();
|
||||
target_section = IPA.target_section({
|
||||
name: 'target',
|
||||
label: 'Target',
|
||||
entity:entity
|
||||
});
|
||||
target_section.create(target_container);
|
||||
},
|
||||
teardown: function() {
|
||||
@ -56,12 +60,12 @@ test("IPA.attributes_widget.", function() {
|
||||
|
||||
var widget = IPA.attributes_widget({
|
||||
name: 'attrs',
|
||||
object_type: 'user'
|
||||
object_type: 'user',
|
||||
entity:entity
|
||||
|
||||
});
|
||||
|
||||
widget.init();
|
||||
widget.create(container);
|
||||
widget.setup(container);
|
||||
|
||||
var table = $('table', container);
|
||||
|
||||
@ -112,12 +116,11 @@ test("IPA.rights_widget.", function() {
|
||||
});
|
||||
|
||||
var widget = IPA.rights_widget({
|
||||
name: 'permissions'
|
||||
name: 'permissions',
|
||||
entity:entity
|
||||
});
|
||||
|
||||
widget.init();
|
||||
widget.create(container);
|
||||
widget.setup(container);
|
||||
|
||||
var inputs = $('input', container);
|
||||
|
||||
|
@ -32,7 +32,7 @@ test("Testing serial_associator().", function() {
|
||||
var params = {
|
||||
method: 'add_member',
|
||||
pkey: 'test',
|
||||
entity_name: 'user',
|
||||
entity: {name:'user'},
|
||||
other_entity: 'group'
|
||||
};
|
||||
|
||||
@ -78,7 +78,7 @@ test("Testing serial_associator().", function() {
|
||||
|
||||
test("Testing bulk_associator().", function() {
|
||||
|
||||
expect(5);
|
||||
expect(4);
|
||||
|
||||
var orig_ipa_command = IPA.command;
|
||||
|
||||
@ -87,7 +87,7 @@ test("Testing bulk_associator().", function() {
|
||||
var params = {
|
||||
method: "add_member",
|
||||
pkey: "test",
|
||||
entity_name: "user",
|
||||
entity: {name:"user"},
|
||||
other_entity: "group"
|
||||
};
|
||||
|
||||
@ -100,11 +100,6 @@ test("Testing bulk_associator().", function() {
|
||||
that.execute = function() {
|
||||
counter++;
|
||||
|
||||
equals(
|
||||
that.entity, params.entity_name,
|
||||
'Checking IPA.command() parameter: entity'
|
||||
);
|
||||
|
||||
equals(
|
||||
that.method, params.method,
|
||||
'Checking IPA.command() parameter: method'
|
||||
|
@ -2351,7 +2351,7 @@
|
||||
"minlength": null,
|
||||
"multivalue": true,
|
||||
"name": "usercertificate",
|
||||
"noextrawhitespace": true,
|
||||
"noextrawhitespace": false,
|
||||
"pattern": null,
|
||||
"pattern_errmsg": null,
|
||||
"primary_key": false,
|
||||
@ -9651,8 +9651,13 @@
|
||||
"sudocmd",
|
||||
"sudocommand",
|
||||
"sudohost",
|
||||
"sudonotafter",
|
||||
"sudonotbefore",
|
||||
"sudooption",
|
||||
"sudoorder",
|
||||
"sudorunas",
|
||||
"sudorunasgroup",
|
||||
"sudorunasuser",
|
||||
"sudouser",
|
||||
"supportedalgorithms",
|
||||
"supportedcontrol",
|
||||
@ -10139,7 +10144,7 @@
|
||||
"include": null,
|
||||
"label": "Time to live",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": null,
|
||||
"minvalue": -2147483648,
|
||||
"multivalue": false,
|
||||
"name": "dnsttl",
|
||||
"primary_key": false,
|
||||
@ -10556,7 +10561,7 @@
|
||||
"include": null,
|
||||
"label": "SOA time to live",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": null,
|
||||
"minvalue": -2147483648,
|
||||
"multivalue": false,
|
||||
"name": "dnsttl",
|
||||
"primary_key": false,
|
||||
@ -10922,7 +10927,7 @@
|
||||
"include": null,
|
||||
"label": "GID",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": null,
|
||||
"minvalue": -2147483648,
|
||||
"multivalue": false,
|
||||
"name": "gidnumber",
|
||||
"primary_key": false,
|
||||
@ -10973,7 +10978,6 @@
|
||||
"container_dn": "cn=hbac",
|
||||
"default_attributes": [
|
||||
"cn",
|
||||
"accessruletype",
|
||||
"ipaenabledflag",
|
||||
"description",
|
||||
"usercategory",
|
||||
@ -11080,8 +11084,13 @@
|
||||
"cli_short_name": null,
|
||||
"default": "allow",
|
||||
"doc": "Rule type (allow)",
|
||||
"exclude": null,
|
||||
"flags": [],
|
||||
"exclude": [
|
||||
"webui"
|
||||
],
|
||||
"flags": [
|
||||
"no_option",
|
||||
"no_output"
|
||||
],
|
||||
"hint": null,
|
||||
"include": null,
|
||||
"label": "Rule type",
|
||||
@ -15450,7 +15459,7 @@
|
||||
"include": null,
|
||||
"label": "GID",
|
||||
"maxvalue": 2147483647,
|
||||
"minvalue": null,
|
||||
"minvalue": -2147483648,
|
||||
"multivalue": false,
|
||||
"name": "gidnumber",
|
||||
"primary_key": false,
|
||||
@ -15891,6 +15900,7 @@
|
||||
"details": "Settings",
|
||||
"search": "Search"
|
||||
},
|
||||
"false": "False",
|
||||
"login": {
|
||||
"header": "Logged In As"
|
||||
},
|
||||
@ -16132,6 +16142,7 @@
|
||||
"role": "Role Based Access Control",
|
||||
"sudo": "Sudo"
|
||||
},
|
||||
"true": "True",
|
||||
"widget": {
|
||||
"next": "Next",
|
||||
"optional": "Optional field: click to show",
|
||||
@ -16160,30 +16171,30 @@
|
||||
"Administrator"
|
||||
],
|
||||
"gidnumber": [
|
||||
"193200000"
|
||||
"349800000"
|
||||
],
|
||||
"homedirectory": [
|
||||
"/home/admin"
|
||||
],
|
||||
"ipauniqueid": [
|
||||
"c300021e-a445-11e0-80b9-525400b55a47"
|
||||
"3d3de554-b49b-11e0-921a-525400b55a47"
|
||||
],
|
||||
"krbextradata": [
|
||||
{
|
||||
"__base64__": "AAgBAA=="
|
||||
},
|
||||
{
|
||||
"__base64__": "AAL2bA5Ocm9vdC9hZG1pbkBTRVJWRVIxNS5BWU9VTkcuQk9TVE9OLkRFVkVMLlJFREhBVC5DT00A"
|
||||
"__base64__": "AALU0ylOcm9vdC9hZG1pbkBTRVJWRVIxNS5BWU9VTkcuQk9TVE9OLkRFVkVMLlJFREhBVC5DT00A"
|
||||
}
|
||||
],
|
||||
"krblastpwdchange": [
|
||||
"20110702005726Z"
|
||||
"20110722194732Z"
|
||||
],
|
||||
"krblastsuccessfulauth": [
|
||||
"20110705180548Z"
|
||||
"20110725162159Z"
|
||||
],
|
||||
"krbpasswordexpiration": [
|
||||
"20110930005726Z"
|
||||
"20111020194732Z"
|
||||
],
|
||||
"krbprincipalname": [
|
||||
"admin@SERVER15.AYOUNG.BOSTON.DEVEL.REDHAT.COM"
|
||||
@ -16211,7 +16222,7 @@
|
||||
"admin"
|
||||
],
|
||||
"uidnumber": [
|
||||
"193200000"
|
||||
"349800000"
|
||||
]
|
||||
}
|
||||
],
|
||||
@ -16219,7 +16230,7 @@
|
||||
"truncated": false
|
||||
},
|
||||
{
|
||||
"count": 67,
|
||||
"count": 68,
|
||||
"error": null,
|
||||
"result": {
|
||||
"basedn": "dc=server15,dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
|
||||
@ -16278,7 +16289,7 @@
|
||||
"mount_jsonserver": "json",
|
||||
"mount_xmlserver": "xml",
|
||||
"prompt_all": false,
|
||||
"ra_plugin": "dogtag",
|
||||
"ra_plugin": "selfsign",
|
||||
"realm": "SERVER15.AYOUNG.BOSTON.DEVEL.REDHAT.COM",
|
||||
"rpc_json_uri": "http://localhost:8888/ipa/json",
|
||||
"script": "/var/www/mod_wsgi",
|
||||
@ -16286,12 +16297,13 @@
|
||||
"startup_traceback": false,
|
||||
"validate_api": false,
|
||||
"verbose": 0,
|
||||
"wait_for_attr": false,
|
||||
"webui_assets_dir": null,
|
||||
"webui_prod": true,
|
||||
"xmlrpc_uri": "https://server15.ayoung.boston.devel.redhat.com/ipa/xml"
|
||||
},
|
||||
"summary": "67 variables",
|
||||
"total": 67
|
||||
"summary": "68 variables",
|
||||
"total": 68
|
||||
},
|
||||
{
|
||||
"error": null,
|
||||
@ -16300,54 +16312,11 @@
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"count": 0,
|
||||
"error": null,
|
||||
"id": null,
|
||||
"result": {
|
||||
"count": 2,
|
||||
"result": [
|
||||
{
|
||||
"accessruletype": [
|
||||
"allow"
|
||||
],
|
||||
"cn": [
|
||||
"allow_all"
|
||||
],
|
||||
"description": [
|
||||
"Allow all users to access any host from any host"
|
||||
],
|
||||
"dn": "ipauniqueid=75841b24-acba-11e0-aeb9-525400b55a47,cn=hbac,dc=server15,dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
|
||||
"hostcategory": [
|
||||
"all"
|
||||
],
|
||||
"ipaenabledflag": [
|
||||
"TRUE"
|
||||
],
|
||||
"servicecategory": [
|
||||
"all"
|
||||
],
|
||||
"sourcehostcategory": [
|
||||
"all"
|
||||
],
|
||||
"usercategory": [
|
||||
"all"
|
||||
]
|
||||
},
|
||||
{
|
||||
"accessruletype": [
|
||||
"allow"
|
||||
],
|
||||
"cn": [
|
||||
"allow_somnething"
|
||||
],
|
||||
"dn": "ipauniqueid=137053da-acc4-11e0-8d43-525400b55a47,cn=hbac,dc=server15,dc=ayoung,dc=boston,dc=devel,dc=redhat,dc=com",
|
||||
"ipaenabledflag": [
|
||||
"TRUE"
|
||||
]
|
||||
}
|
||||
],
|
||||
"summary": "2 HBAC rules matched",
|
||||
"truncated": false
|
||||
}
|
||||
"result": [],
|
||||
"summary": "0 HBAC rules matched",
|
||||
"truncated": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -59,13 +59,13 @@ module('details', {
|
||||
test("Testing IPA.details_section.create().", function() {
|
||||
|
||||
var section = IPA.details_list_section({
|
||||
entity: IPA.get_entity('user'),
|
||||
name:'IDIDID', label:'NAMENAMENAME'}).
|
||||
text({name:'cn'}).
|
||||
text({name:'uid'}).
|
||||
text({name:'mail'});
|
||||
|
||||
section.entity_name = 'user';
|
||||
section.init();
|
||||
|
||||
var fields = section.fields.values;
|
||||
var container = $("<div/>");
|
||||
@ -116,7 +116,7 @@ test("Testing IPA.details_section.create().", function() {
|
||||
|
||||
|
||||
|
||||
test("Testing details lifecycle: create, setup, load.", function(){
|
||||
test("Testing details lifecycle: create, load.", function(){
|
||||
|
||||
var result = {};
|
||||
|
||||
@ -133,7 +133,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
}
|
||||
}).execute();
|
||||
|
||||
var setup_called = false;
|
||||
var save_called = false;
|
||||
var load_called = false;
|
||||
|
||||
@ -142,9 +141,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
var update_success_called = false;
|
||||
var update_failure_called = false;
|
||||
|
||||
function setup_status(){
|
||||
setup_called = true;
|
||||
}
|
||||
|
||||
function save_password(){
|
||||
save_called = true;
|
||||
@ -158,11 +154,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
function test_widget(spec){
|
||||
var widget = IPA.widget(spec);
|
||||
|
||||
widget.setup = function(container) {
|
||||
setup_called = true;
|
||||
widget.widget_setup(container);
|
||||
};
|
||||
|
||||
widget.load = function(record) {
|
||||
load_called = true;
|
||||
widget.widget_load(record);
|
||||
@ -198,7 +189,7 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
name:'facsimiletelephonenumber'}]
|
||||
}
|
||||
]}).build();
|
||||
entity.init();
|
||||
|
||||
|
||||
var entity_container = $('<div/>', {
|
||||
name: 'user',
|
||||
@ -216,7 +207,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
});
|
||||
|
||||
facet.create(facet_container);
|
||||
facet.setup(facet_container);
|
||||
|
||||
facet.load(result);
|
||||
|
||||
@ -243,11 +233,6 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
|
||||
facet_container.attr('id','user');
|
||||
|
||||
ok (
|
||||
setup_called,
|
||||
'Setup status called'
|
||||
);
|
||||
|
||||
ok (load_called, 'load manager called');
|
||||
|
||||
var section = facet.sections.get('contact');
|
||||
@ -266,10 +251,10 @@ test("Testing details lifecycle: create, setup, load.", function(){
|
||||
});
|
||||
|
||||
|
||||
test("Testing IPA.details_section_setup again()",function(){
|
||||
test("Testing IPA.details_section_create again()",function(){
|
||||
|
||||
var section = IPA.details_list_section({
|
||||
name: 'IDIDID', label: 'NAMENAMENAME'}).
|
||||
name: 'IDIDID', label: 'NAMENAMENAME',entity: IPA.get_entity('user'),}).
|
||||
text({name:'cn', label:'Entity Name'}).
|
||||
text({name:'description', label:'Description'}).
|
||||
text({name:'number', label:'Entity ID'});
|
||||
@ -281,13 +266,8 @@ test("Testing IPA.details_section_setup again()",function(){
|
||||
var result = {};
|
||||
|
||||
section.create(container);
|
||||
section.setup(container);
|
||||
section.load(result);
|
||||
|
||||
//var h2= container.find('h2');
|
||||
//ok(h2);
|
||||
//ok(h2[0].innerHTML.indexOf(section.label) > 1,"find name in html");
|
||||
|
||||
var dl = $('dl', container);
|
||||
ok(
|
||||
dl.length,
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* Authors:
|
||||
* Endi Sukma Dewata <edewata@redhat.com>
|
||||
* Adam Young <ayoung@redhat.com>
|
||||
*
|
||||
* Copyright (C) 2010 Red Hat
|
||||
* see file 'COPYING' for use and warranty information
|
||||
@ -66,7 +67,6 @@ test('Testing IPA.entity_set_search_definition().', function() {
|
||||
search_facet({
|
||||
columns:['uid']}).
|
||||
build();
|
||||
entity.init();
|
||||
|
||||
var entity_container = $('<div/>', {
|
||||
name: 'user',
|
||||
@ -84,7 +84,6 @@ test('Testing IPA.entity_set_search_definition().', function() {
|
||||
});
|
||||
|
||||
facet.create(facet_container);
|
||||
facet.setup(facet_container);
|
||||
|
||||
var column = facet.get_columns()[0];
|
||||
ok(
|
||||
|
@ -47,9 +47,9 @@ test("Testing IPA.navigation.create().", function() {
|
||||
IPA.entity_factories.user = function() {
|
||||
var that = IPA.entity({name: 'user',
|
||||
metadata:IPA.metadata.objects.user});
|
||||
that.add_facet(IPA.search_facet({'entity_name':'user'}));
|
||||
that.add_facet(IPA.search_facet({'entity':that}));
|
||||
|
||||
that.setup = function(container){
|
||||
that.display = function(container){
|
||||
user_mock_called = true;
|
||||
same(container.attr('name'), 'user', 'user container name');
|
||||
same(container[0].nodeName, 'DIV', 'user container element');
|
||||
@ -59,7 +59,7 @@ test("Testing IPA.navigation.create().", function() {
|
||||
IPA.entity_factories.group = function(){
|
||||
var that = IPA.entity({name: 'group',
|
||||
metadata:IPA.metadata.objects.group});
|
||||
that.setup = function(container){
|
||||
that.display = function(container){
|
||||
group_mock_called = true;
|
||||
same(container.attr('name'), 'group','user container name');
|
||||
same(container[0].nodeName, 'DIV', 'user container element');
|
||||
|
@ -20,6 +20,9 @@
|
||||
|
||||
|
||||
var widget_container;
|
||||
var widget;
|
||||
var factory
|
||||
var spec;
|
||||
|
||||
|
||||
module('widget',{
|
||||
@ -35,40 +38,46 @@ module('widget',{
|
||||
}
|
||||
);
|
||||
widget_container = $('<div id="widget"/>').appendTo(document.body);
|
||||
|
||||
widget = null;
|
||||
factory = null;
|
||||
spec = null;
|
||||
|
||||
|
||||
},
|
||||
teardown: function() {
|
||||
widget_container.remove();
|
||||
}}
|
||||
);
|
||||
|
||||
function base_widget_test(widget,entity_name, value){
|
||||
|
||||
function base_widget_test(value){
|
||||
spec.entity = {
|
||||
name:'user'
|
||||
};
|
||||
|
||||
widget = factory(spec);
|
||||
|
||||
var entity_name = 'user';
|
||||
var field_name = widget.name;
|
||||
ok (widget, "Created Widget");
|
||||
widget.init();
|
||||
ok(!widget.label,'widget with no entity has no label');
|
||||
ok(!widget.tooltip,'widget with entity and name has no tooltip');
|
||||
|
||||
//init reads param info for an entity. We'll use the user entity
|
||||
widget.entity_name = entity_name;
|
||||
widget.name = field_name;
|
||||
|
||||
widget.init();
|
||||
ok(widget.label,'widget with entity and name has label');
|
||||
ok(widget.tooltip,'widget with entity and name has tooltip');
|
||||
|
||||
|
||||
ok(!widget.container,'widget has no container before setup');
|
||||
ok(!widget.container,'widget has no container before create');
|
||||
widget.create(widget_container);
|
||||
widget.setup(widget_container);
|
||||
|
||||
ok(widget.container,'widget has container after setup');
|
||||
|
||||
ok(widget.container,'widget has container after create');
|
||||
|
||||
}
|
||||
|
||||
|
||||
function widget_string_test(widget) {
|
||||
var value = 'test_title';
|
||||
function widget_string_test() {
|
||||
var value = 'test_title';
|
||||
var mock_record = {'title': value};
|
||||
|
||||
widget.load(mock_record);
|
||||
@ -143,9 +152,17 @@ function multivalued_text_tests(widget) {
|
||||
}
|
||||
|
||||
test("IPA.table_widget" ,function(){
|
||||
var widget = IPA.table_widget({undo:true,name:'users'});
|
||||
|
||||
factory = IPA.table_widget;
|
||||
spec = {
|
||||
undo:true,
|
||||
name:'users',
|
||||
entity: {
|
||||
name:'user'
|
||||
}
|
||||
};
|
||||
widget = factory(spec);
|
||||
widget.add_column(IPA.column({
|
||||
entity: spec.entity,
|
||||
name:'uid',
|
||||
label:'User ID',
|
||||
primary_key:'uid',
|
||||
@ -153,6 +170,7 @@ test("IPA.table_widget" ,function(){
|
||||
entity_name:'user'
|
||||
}));
|
||||
widget.add_column(IPA.column({
|
||||
entity: spec.entity,
|
||||
name:'title',
|
||||
lable:'Title',
|
||||
primary_key:'uid',
|
||||
@ -160,13 +178,9 @@ test("IPA.table_widget" ,function(){
|
||||
entity_name:'user'
|
||||
}));
|
||||
|
||||
widget.init();
|
||||
|
||||
ok(!widget.container,'widget has no container before setup');
|
||||
ok(!widget.container,'widget has no container before create');
|
||||
widget.create(widget_container);
|
||||
widget.setup(widget_container);
|
||||
|
||||
ok(widget.container,'widget has container after setup');
|
||||
ok(widget.container,'widget has container after create');
|
||||
|
||||
|
||||
var mock_results = {
|
||||
@ -184,49 +198,48 @@ test("IPA.table_widget" ,function(){
|
||||
|
||||
test("Testing base widget.", function() {
|
||||
var update_called = false;
|
||||
var spec = {
|
||||
spec = {
|
||||
name:'title'
|
||||
};
|
||||
|
||||
var widget = IPA.widget(spec);
|
||||
widget.update = function() {
|
||||
update_called = true;
|
||||
};
|
||||
|
||||
base_widget_test(widget,'user','test_value');
|
||||
widget_string_test(widget);
|
||||
ok (update_called, 'Update called');
|
||||
|
||||
factory = IPA.widget;
|
||||
base_widget_test('test_value');
|
||||
widget_string_test();
|
||||
});
|
||||
|
||||
|
||||
|
||||
test("IPA.textarea_widget" ,function(){
|
||||
var widget = IPA.textarea_widget({undo:true,name:'title'});
|
||||
base_widget_test(widget,'user','test_value');
|
||||
widget_string_test(widget);
|
||||
spec = {undo:true,name:'title'};
|
||||
factory = IPA.textarea_widget;
|
||||
base_widget_test('test_value');
|
||||
widget_string_test();
|
||||
text_tests(widget, $('textarea',widget_container));
|
||||
|
||||
});
|
||||
|
||||
|
||||
test("Testing text widget.", function() {
|
||||
var widget = IPA.text_widget({undo:true,name:'title'});
|
||||
base_widget_test(widget,'user','test_value');
|
||||
widget_string_test(widget);
|
||||
factory = IPA.text_widget;
|
||||
spec = {undo:true,name:'title'};
|
||||
base_widget_test('test_value');
|
||||
widget_string_test();
|
||||
text_tests(widget, $('input[type=text]',widget_container));
|
||||
|
||||
});
|
||||
|
||||
test("Testing multi-valued text widget.", function() {
|
||||
var widget = IPA.multivalued_text_widget({undo:true,name:'title'});
|
||||
base_widget_test(widget,'user','test_value');
|
||||
widget_string_test(widget);
|
||||
factory = IPA.multivalued_text_widget;
|
||||
spec = {undo:true,name:'title'};
|
||||
base_widget_test('test_value');
|
||||
widget_string_test();
|
||||
multivalued_text_tests(widget);
|
||||
});
|
||||
|
||||
test("Testing checkbox widget.", function() {
|
||||
var widget = IPA.checkbox_widget({name:'title'});
|
||||
base_widget_test(widget,'user','test_value');
|
||||
factory = IPA.checkbox_widget;
|
||||
spec = {name:'title'};
|
||||
base_widget_test('test_value');
|
||||
|
||||
mock_record = {'title':'something'};
|
||||
|
||||
@ -252,28 +265,30 @@ test("Testing checkbox widget.", function() {
|
||||
|
||||
|
||||
test("IPA.checkboxes_widget" ,function(){
|
||||
var widget = IPA.checkboxes_widget({undo:true, name:'title' });
|
||||
base_widget_test(widget,'user','test_value');
|
||||
factory = IPA.checkboxes_widget;
|
||||
spec = {undo:true, name:'title' };
|
||||
base_widget_test('test_value');
|
||||
|
||||
});
|
||||
test("IPA.select_widget" ,function(){
|
||||
|
||||
var widget = IPA.select_widget({undo:true,name:'title'});
|
||||
base_widget_test(widget,'user','test_value');
|
||||
factory = IPA.select_widget;
|
||||
spec = {undo:true,name:'title'};
|
||||
base_widget_test('test_value');
|
||||
|
||||
});
|
||||
|
||||
|
||||
test("IPA.entity_select_widget" ,function(){
|
||||
|
||||
var widget = IPA.entity_select_widget({
|
||||
factory = IPA.entity_select_widget;
|
||||
spec = {
|
||||
name: 'uid',
|
||||
other_entity: 'user',
|
||||
other_field: 'uid'
|
||||
});
|
||||
other_entity:'user',
|
||||
field_name:'uid',
|
||||
other_field: 'uid' };
|
||||
|
||||
base_widget_test(widget,'user','test_value');
|
||||
ok( $('option', widget.container).length > 1,"options populated from AJAX");
|
||||
base_widget_test('test_value');
|
||||
ok( $('option',widget.list ).length > 1,"options come from AJAX");
|
||||
mock_record = {'uid':'kfrog'};
|
||||
widget.load(mock_record);
|
||||
same(widget.values[0],'kfrog','select set from values');
|
||||
@ -281,10 +296,11 @@ test("IPA.entity_select_widget" ,function(){
|
||||
|
||||
|
||||
test("IPA.entity_link_widget" ,function(){
|
||||
var widget = IPA.entity_link_widget({
|
||||
factory = IPA.entity_link_widget;
|
||||
spec = {
|
||||
name: 'gidnumber',
|
||||
other_entity:'group'
|
||||
});
|
||||
};
|
||||
base_widget_test(widget,'user','test_value');
|
||||
|
||||
var mock_entity = {
|
||||
@ -315,15 +331,14 @@ test("IPA.entity_link_widget" ,function(){
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
test("IPA.radio_widget" ,function(){
|
||||
var options = [{label:"Engineer",value:"engineer"},
|
||||
{label:"Manager", value:"manager"},
|
||||
{label:"Director",value:"director"},
|
||||
{label:"Vice President",value:"VP"}];
|
||||
var widget = IPA.radio_widget({undo:true, name: 'title',options:options});
|
||||
base_widget_test(widget,'user','test_value');
|
||||
factory = IPA.radio_widget;
|
||||
spec = {undo:true, name: 'title',options:options};
|
||||
base_widget_test('test_value');
|
||||
var mock_record = {'title':["director"]};
|
||||
widget.load(mock_record);
|
||||
var values = widget.save();
|
||||
|
@ -172,8 +172,7 @@ IPA.user_status_widget = function(spec) {
|
||||
name: 'link',
|
||||
click: function() {
|
||||
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var facet = entity.get_facet();
|
||||
var facet = that.entity.get_facet();
|
||||
|
||||
if (facet.is_dirty()) {
|
||||
var dialog = IPA.dirty_dialog({
|
||||
@ -184,7 +183,6 @@ IPA.user_status_widget = function(spec) {
|
||||
that.show_activation_dialog();
|
||||
};
|
||||
|
||||
dialog.init();
|
||||
dialog.open(container);
|
||||
|
||||
} else {
|
||||
@ -255,8 +253,7 @@ IPA.user_status_widget = function(spec) {
|
||||
that.set_status(
|
||||
action == 'activate',
|
||||
function(data, textStatus, xhr) {
|
||||
var entity = IPA.get_entity(that.entity_name);
|
||||
var facet = entity.get_facet();
|
||||
var facet = that.entity.get_facet();
|
||||
facet.refresh();
|
||||
dialog.close();
|
||||
}
|
||||
@ -267,8 +264,6 @@ IPA.user_status_widget = function(spec) {
|
||||
dialog.close();
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
@ -383,8 +378,6 @@ IPA.user_password_widget = function(spec) {
|
||||
dialog.close();
|
||||
});
|
||||
|
||||
dialog.init();
|
||||
|
||||
dialog.open(that.container);
|
||||
};
|
||||
|
||||
|
@ -31,6 +31,8 @@ IPA.widget = function(spec) {
|
||||
|
||||
var that = {};
|
||||
|
||||
|
||||
that.entity = spec.entity;
|
||||
that.id = spec.id;
|
||||
that.name = spec.name;
|
||||
that.label = spec.label;
|
||||
@ -41,14 +43,12 @@ IPA.widget = function(spec) {
|
||||
that.conditional = spec.conditional;
|
||||
that.optional = spec.optional || false;
|
||||
|
||||
// read_only is set during initialization
|
||||
// read_only is set when widget is created
|
||||
that.read_only = spec.read_only;
|
||||
|
||||
// writable is set during load
|
||||
that.writable = true;
|
||||
|
||||
that._entity_name = spec.entity_name;
|
||||
|
||||
that.width = spec.width;
|
||||
that.height = spec.height;
|
||||
|
||||
@ -62,13 +62,21 @@ IPA.widget = function(spec) {
|
||||
that.dirty = false;
|
||||
that.valid = true;
|
||||
|
||||
that.__defineGetter__("entity_name", function(){
|
||||
return that._entity_name;
|
||||
});
|
||||
|
||||
that.__defineSetter__("entity_name", function(entity_name){
|
||||
that._entity_name = entity_name;
|
||||
});
|
||||
function set_param_info(){
|
||||
if (!that.param_info && that.entity){
|
||||
that.param_info =
|
||||
IPA.get_entity_param(that.entity.name, that.name);
|
||||
}
|
||||
if (that.param_info) {
|
||||
if (that.label === undefined) {
|
||||
that.label = that.param_info.label;
|
||||
}
|
||||
if (that.tooltip === undefined) {
|
||||
that.tooltip = that.param_info.doc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function meta_validate(meta, value){
|
||||
@ -159,25 +167,6 @@ IPA.widget = function(spec) {
|
||||
}
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
if (that.entity_name) {
|
||||
that.entity = IPA.get_entity(that.entity_name);
|
||||
if (!that.param_info){
|
||||
that.param_info =
|
||||
IPA.get_entity_param(that.entity_name, that.name);
|
||||
}
|
||||
if (that.param_info) {
|
||||
|
||||
if (that.label === undefined) {
|
||||
that.label = that.param_info.label;
|
||||
}
|
||||
|
||||
if (that.tooltip === undefined) {
|
||||
that.tooltip = that.param_info.doc;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* This function compares the original values and the
|
||||
@ -231,10 +220,6 @@ IPA.widget = function(spec) {
|
||||
that.container = container;
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
that.container = container;
|
||||
};
|
||||
|
||||
/**
|
||||
* This function stores the entire record and the values
|
||||
* of the field, then invoke reset() to update the UI.
|
||||
@ -352,10 +337,12 @@ IPA.widget = function(spec) {
|
||||
that.refresh = function() {
|
||||
};
|
||||
|
||||
|
||||
/*widget initialization*/
|
||||
set_param_info();
|
||||
|
||||
// methods that should be invoked by subclasses
|
||||
that.widget_init = that.init;
|
||||
that.widget_create = that.create;
|
||||
that.widget_setup = that.setup;
|
||||
that.widget_load = that.load;
|
||||
that.widget_reset = that.reset;
|
||||
that.widget_save = that.save;
|
||||
@ -419,11 +406,6 @@ IPA.text_widget = function(spec) {
|
||||
}
|
||||
|
||||
that.create_error_link(container);
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
var input = $('input[name="'+that.name+'"]', that.container);
|
||||
input.keyup(function() {
|
||||
@ -587,11 +569,6 @@ IPA.multivalued_text_widget = function(spec) {
|
||||
'class': 'ui-state-highlight ui-corner-all undo',
|
||||
html: 'undo all'
|
||||
}).appendTo(container);
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
that.template = $('div[name=value]', that.container);
|
||||
that.template.detach();
|
||||
@ -789,11 +766,6 @@ IPA.checkbox_widget = function (spec) {
|
||||
if (that.undo) {
|
||||
that.create_undo(container);
|
||||
}
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
var input = $('input[name="'+that.name+'"]', that.container);
|
||||
input.change(function() {
|
||||
@ -874,11 +846,6 @@ IPA.checkboxes_widget = function (spec) {
|
||||
if (that.undo) {
|
||||
that.create_undo(container);
|
||||
}
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
var input = $('input[name="'+that.name+'"]', that.container);
|
||||
input.change(function() {
|
||||
@ -891,6 +858,7 @@ IPA.checkboxes_widget = function (spec) {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
that.load = function(record) {
|
||||
that.values = record[that.name] || [];
|
||||
that.reset();
|
||||
@ -956,11 +924,6 @@ IPA.radio_widget = function(spec) {
|
||||
if (that.undo) {
|
||||
that.create_undo(container);
|
||||
}
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
var input = $('input[name="'+that.name+'"]', that.container);
|
||||
input.change(function() {
|
||||
@ -1038,10 +1001,6 @@ IPA.select_widget = function(spec) {
|
||||
container.append(' ');
|
||||
that.create_undo(container);
|
||||
}
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
that.widget_setup(container);
|
||||
|
||||
that.select = $('select[name="'+that.name+'"]', that.container);
|
||||
that.select.change(function() {
|
||||
@ -1118,12 +1077,6 @@ IPA.textarea_widget = function (spec) {
|
||||
|
||||
that.create_error_link(container);
|
||||
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
|
||||
var input = $('textarea[name="'+that.name+'"]', that.container);
|
||||
input.keyup(function() {
|
||||
that.set_dirty(that.test_dirty());
|
||||
@ -1160,7 +1113,9 @@ IPA.textarea_widget = function (spec) {
|
||||
return that;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
The entity name must be set in the spec either directly or via entity.name
|
||||
*/
|
||||
IPA.column = function (spec) {
|
||||
|
||||
spec = spec || {};
|
||||
@ -1170,26 +1125,22 @@ IPA.column = function (spec) {
|
||||
that.name = spec.name;
|
||||
that.label = spec.label;
|
||||
that.width = spec.width;
|
||||
|
||||
that.entity_name = spec.entity_name;
|
||||
that.entity_name = spec.entity ? spec.entity.name : spec.entity_name;
|
||||
that.primary_key = spec.primary_key;
|
||||
that.link = spec.link;
|
||||
|
||||
that.format = spec.format;
|
||||
|
||||
that.init = function() {
|
||||
if (that.entity_name && !that.label) {
|
||||
var param_info = IPA.get_entity_param(that.entity_name, that.name);
|
||||
if (param_info) {
|
||||
that.label = param_info.label;
|
||||
} else {
|
||||
alert('Cannot find label for ' + that.entity_name + ' ' +
|
||||
that.name);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!that.entity_name){
|
||||
var except = {
|
||||
expected: false,
|
||||
message:'Column created without an entity_name.'
|
||||
};
|
||||
throw except;
|
||||
}
|
||||
|
||||
function setup(container, record) {
|
||||
|
||||
|
||||
container.empty();
|
||||
|
||||
var value = record[that.name];
|
||||
@ -1218,6 +1169,16 @@ IPA.column = function (spec) {
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
/*column initialization*/
|
||||
if (that.entity_name && !that.label) {
|
||||
var param_info = IPA.get_entity_param(that.entity_name, that.name);
|
||||
if (param_info) {
|
||||
that.label = param_info.label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return that;
|
||||
};
|
||||
|
||||
@ -1267,15 +1228,6 @@ IPA.table_widget = function (spec) {
|
||||
return column;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
that.widget_init();
|
||||
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
var column = columns[i];
|
||||
column.init();
|
||||
}
|
||||
};
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
@ -1312,7 +1264,10 @@ IPA.table_widget = function (spec) {
|
||||
|
||||
select_all_checkbox.change(function() {
|
||||
var checked = select_all_checkbox.is(':checked');
|
||||
select_all_checkbox.attr('title', checked ? IPA.messages.search.unselect_all : IPA.messages.search.select_all);
|
||||
select_all_checkbox.attr(
|
||||
'title', checked ?
|
||||
IPA.messages.search.unselect_all :
|
||||
IPA.messages.search.select_all);
|
||||
var checkboxes = $('input[name=select]', that.tbody).get();
|
||||
for (var i=0; i<checkboxes.length; i++) {
|
||||
checkboxes[i].checked = checked;
|
||||
@ -1338,7 +1293,9 @@ IPA.table_widget = function (spec) {
|
||||
/* don't use the checkbox column as part of the overall
|
||||
calculation for column widths. It is so small
|
||||
that it throws off the average. */
|
||||
width = (that.table.width() - (that.selectable ? IPA.checkbox_column_width : 0)) /
|
||||
width = (that.table.width() -
|
||||
(that.selectable ?
|
||||
IPA.checkbox_column_width : 0)) /
|
||||
columns.length;
|
||||
}
|
||||
width += 'px';
|
||||
@ -1492,11 +1449,6 @@ IPA.table_widget = function (spec) {
|
||||
that.select_changed = function() {
|
||||
};
|
||||
|
||||
that.setup = function(container) {
|
||||
|
||||
that.widget_setup(container);
|
||||
};
|
||||
|
||||
that.empty = function() {
|
||||
that.tbody.empty();
|
||||
};
|
||||
@ -1622,9 +1574,7 @@ IPA.table_widget = function (spec) {
|
||||
}
|
||||
|
||||
// methods that should be invoked by subclasses
|
||||
that.table_init = that.init;
|
||||
that.table_create = that.create;
|
||||
that.table_setup = that.setup;
|
||||
that.table_set_enabled = that.set_enabled;
|
||||
that.table_prev_page = that.prev_page;
|
||||
that.table_next_page = that.next_page;
|
||||
@ -1644,7 +1594,6 @@ IPA.combobox_widget = function(spec) {
|
||||
that.list_size = spec.list_size || 5;
|
||||
|
||||
that.create = function(container) {
|
||||
|
||||
that.widget_create(container);
|
||||
|
||||
container.addClass('combobox-widget');
|
||||
@ -1926,4 +1875,44 @@ IPA.entity_link_widget = function(spec) {
|
||||
|
||||
|
||||
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 = $('<a/>', {
|
||||
id: spec.id,
|
||||
name: spec.name,
|
||||
href: spec.href || '#' + (spec.name || 'button'),
|
||||
title: spec.title || spec.label,
|
||||
'class': 'ui-state-default ui-corner-all input_link',
|
||||
style: spec.style,
|
||||
click: spec.click,
|
||||
blur: spec.blur
|
||||
});
|
||||
|
||||
if (spec['class']) button.addClass(spec['class']);
|
||||
|
||||
if (spec.icon) {
|
||||
$('<span/>', {
|
||||
'class': 'icon '+spec.icon
|
||||
}).appendTo(button);
|
||||
}
|
||||
|
||||
if (spec.label) {
|
||||
$('<span/>', {
|
||||
'class': 'button-label',
|
||||
html: spec.label
|
||||
}).appendTo(button);
|
||||
}
|
||||
|
||||
return button;
|
||||
};
|
||||
|
||||
|
@ -94,6 +94,8 @@ class i18n_messages(Command):
|
||||
|
||||
messages={
|
||||
"login": {"header" :_("Logged In As")},
|
||||
"true": "True",
|
||||
"false": "False",
|
||||
"objects": {
|
||||
"aci": {
|
||||
"attribute":_("Attribute"),
|
||||
|
Loading…
Reference in New Issue
Block a user