Merged widget's metadata and param_info.

The metadata and param_info attributes in widget have been merged
because they are redundant.

Ticket #1436
This commit is contained in:
Endi S. Dewata 2011-10-26 01:20:35 -05:00
parent 6af5755de5
commit 725e2e4624
11 changed files with 135 additions and 148 deletions

View File

@ -647,9 +647,9 @@ IPA.details_facet = function(spec) {
var values = record[field.name]; var values = record[field.name];
if (!values) continue; if (!values) continue;
var param_info = field.param_info; var metadata = field.metadata;
if (param_info) { if (metadata) {
if (param_info.primary_key) continue; if (metadata.primary_key) continue;
if (values.length === 1) { if (values.length === 1) {
command.set_option(field.name, values[0]); command.set_option(field.name, values[0]);
} else if (field.join) { } else if (field.join) {

View File

@ -129,7 +129,7 @@ IPA.entity_factories.dnszone = function() {
{ {
factory: IPA.force_dnszone_add_checkbox_widget, factory: IPA.force_dnszone_add_checkbox_widget,
name: 'force', name: 'force',
param_info: IPA.get_method_option('dnszone_add', 'force') metadata: IPA.get_method_option('dnszone_add', 'force')
} }
] ]
} }
@ -180,10 +180,10 @@ IPA.dnszone_details_facet = function(spec) {
var values = field.save(); var values = field.save();
if (!values) continue; if (!values) continue;
var param_info = field.param_info; var metadata = field.metadata;
// skip primary key // skip primary key
if (param_info && param_info.primary_key) continue; if (metadata && metadata.primary_key) continue;
// check enable/disable // check enable/disable
if (field.name == 'idnszoneactive') { if (field.name == 'idnszoneactive') {
@ -192,7 +192,7 @@ IPA.dnszone_details_facet = function(spec) {
continue; continue;
} }
if (param_info) { if (metadata) {
if (values.length == 1) { if (values.length == 1) {
modify_operation.command.set_option(field.name, values[0]); modify_operation.command.set_option(field.name, values[0]);
} else if (field.join) { } else if (field.join) {
@ -464,42 +464,42 @@ IPA.entity_factories.dnsrecord = function() {
fields:[ fields:[
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
name: 'arecord', name: 'arecord',
param_info: {primary_key: false}, metadata: {primary_key: false},
label:'A' label:'A'
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
name: 'aaaarecord', name: 'aaaarecord',
param_info: {primary_key: false}, metadata: {primary_key: false},
label:'AAAA' label:'AAAA'
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
name: 'ptrrecord', name: 'ptrrecord',
param_info: {primary_key: false}, metadata: {primary_key: false},
label:'PTR' label:'PTR'
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
name: 'srvrecord', name: 'srvrecord',
param_info: {primary_key: false}, metadata: {primary_key: false},
label:'SRV' label:'SRV'
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
name: 'txtrecord', name: 'txtrecord',
param_info: {primary_key: false}, metadata: {primary_key: false},
label:'TXT' label:'TXT'
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
name: 'cnamerecord', name: 'cnamerecord',
param_info: {primary_key: false}, metadata: {primary_key: false},
label:'CNAME' label:'CNAME'
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'MX', label:'MX',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"mxrecord" name:"mxrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'NS', label:'NS',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"nsrecord" name:"nsrecord"
} }
@ -511,37 +511,37 @@ IPA.entity_factories.dnsrecord = function() {
fields:[ fields:[
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'AFSDB', label:'AFSDB',
param_info: {primary_key: false}, metadata: {primary_key: false},
name: "afsdbrecord" name: "afsdbrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'CERT', label:'CERT',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"certrecord" name:"certrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'DNAME', label:'DNAME',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"dnamerecord" name:"dnamerecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'DSRECORD', label:'DSRECORD',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"dsrecord" name:"dsrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'KEY', label:'KEY',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"keyrecord" name:"keyrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'KX', label:'KX',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"kxrecord" name:"kxrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'LOC', label:'LOC',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"locrecord" name:"locrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
@ -550,22 +550,22 @@ IPA.entity_factories.dnsrecord = function() {
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'NSEC', label:'NSEC',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"nsecrecord" name:"nsecrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'RRSIG', label:'RRSIG',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"rrsigrecord" name:"rrsigrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'SIG', label:'SIG',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"sigrecord" name:"sigrecord"
}, },
{ factory: IPA.multivalued_text_widget, { factory: IPA.multivalued_text_widget,
label:'SSHFP', label:'SSHFP',
param_info: {primary_key: false}, metadata: {primary_key: false},
name:"sshfprecord" name:"sshfprecord"
} }
] ]
@ -659,9 +659,9 @@ IPA.dnsrecord_type_widget = function(spec) {
}; };
IPA.force_dnszone_add_checkbox_widget = function(spec) { IPA.force_dnszone_add_checkbox_widget = function(spec) {
var param_info = IPA.get_method_option('dnszone_add', spec.name); var metadata = IPA.get_method_option('dnszone_add', spec.name);
spec.label = param_info.label; spec.label = metadata.label;
spec.tooltip = param_info.doc; spec.tooltip = metadata.doc;
return IPA.checkbox_widget(spec); return IPA.checkbox_widget(spec);
}; };

View File

@ -454,10 +454,10 @@ IPA.hbacrule_details_facet = function(spec) {
var values = field.save(); var values = field.save();
if (!values) continue; if (!values) continue;
var param_info = field.param_info; var metadata = field.metadata;
// skip primary key // skip primary key
if (param_info && param_info.primary_key) continue; if (metadata && metadata.primary_key) continue;
var p = field.name.indexOf('_'); var p = field.name.indexOf('_');
if (p >= 0) { if (p >= 0) {
@ -488,7 +488,7 @@ IPA.hbacrule_details_facet = function(spec) {
} }
} }
if (param_info) { if (metadata) {
if (values.length == 1) { if (values.length == 1) {
modify_operation.command.set_option(field.name, values[0]); modify_operation.command.set_option(field.name, values[0]);
} else if (field.join) { } else if (field.join) {

View File

@ -153,12 +153,12 @@ IPA.entity_factories.host = function () {
{ {
factory: IPA.text_widget, factory: IPA.text_widget,
name: 'ip_address', name: 'ip_address',
param_info: IPA.get_method_option('host_add', 'ip_address') metadata: IPA.get_method_option('host_add', 'ip_address')
}, },
{ {
factory: IPA.force_host_add_checkbox_widget, factory: IPA.force_host_add_checkbox_widget,
name: 'force', name: 'force',
param_info: IPA.get_method_option('host_add', 'force') metadata: IPA.get_method_option('host_add', 'force')
} }
] ]
} }
@ -411,9 +411,9 @@ IPA.utc_date_column_format = function(value){
IPA.force_host_add_checkbox_widget = function(spec) { IPA.force_host_add_checkbox_widget = function(spec) {
var param_info = IPA.get_method_option('host_add', spec.name); var metadata = IPA.get_method_option('host_add', spec.name);
spec.label = param_info.label; spec.label = metadata.label;
spec.tooltip = param_info.doc; spec.tooltip = metadata.doc;
return IPA.checkbox_widget(spec); return IPA.checkbox_widget(spec);
}; };

View File

@ -38,13 +38,13 @@ IPA.rule_details_section = function(spec) {
that.container = container; that.container = container;
var field = that.get_field(that.field_name); var field = that.get_field(that.field_name);
var param_info = IPA.get_entity_param(that.entity.name, that.field_name); var metadata = IPA.get_entity_param(that.entity.name, that.field_name);
container.append(param_info.doc+':'); container.append(metadata.doc+':');
var span = $('<span/>', { var span = $('<span/>', {
name: that.field_name, name: that.field_name,
title: param_info.doc, title: metadata.doc,
'class': 'field' 'class': 'field'
}).appendTo(container); }).appendTo(container);
@ -87,11 +87,11 @@ IPA.rule_details_section = function(spec) {
for (var j=0; j<that.tables.length; j++) { for (var j=0; j<that.tables.length; j++) {
var table = that.tables[j]; var table = that.tables[j];
param_info = IPA.get_entity_param(that.entity.name, table.field_name); metadata = IPA.get_entity_param(that.entity.name, table.field_name);
var table_span = $('<span/>', { var table_span = $('<span/>', {
name: table.field_name, name: table.field_name,
title: param_info ? param_info.doc : table.field_name, title: metadata ? metadata.doc : table.field_name,
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);

View File

@ -65,8 +65,8 @@ IPA.search_facet = function(spec) {
for (var i=0; i<columns.length; i++) { for (var i=0; i<columns.length; i++) {
var column = columns[i]; var column = columns[i];
column.entity = entity; column.entity = entity;
var param_info = IPA.get_entity_param(entity.name, column.name); var metadata = IPA.get_entity_param(entity.name, column.name);
column.primary_key = param_info && param_info['primary_key']; column.primary_key = metadata && metadata.primary_key;
column.link = column.primary_key; column.link = column.primary_key;
if (column.link) { if (column.link) {

View File

@ -128,7 +128,7 @@ IPA.service_adder_dialog = function(spec) {
field(IPA.checkbox_widget({ field(IPA.checkbox_widget({
name: 'force', name: 'force',
entity: spec.entity, entity: spec.entity,
param_info: IPA.get_method_option('service_add', 'force') metadata: IPA.get_method_option('service_add', 'force')
})); }));

View File

@ -403,10 +403,10 @@ IPA.sudorule_details_facet = function(spec) {
var values = field.save(); var values = field.save();
if (!values) continue; if (!values) continue;
var param_info = field.param_info; var metadata = field.metadata;
// skip primary key // skip primary key
if (param_info && param_info.primary_key) continue; if (metadata && metadata.primary_key) continue;
var p = field.name.indexOf('_'); var p = field.name.indexOf('_');
if (p >= 0) { if (p >= 0) {
@ -436,7 +436,7 @@ IPA.sudorule_details_facet = function(spec) {
categories[field.name].remove_values = true; categories[field.name].remove_values = true;
} }
if (param_info) { if (metadata) {
if (values.length == 1) { if (values.length == 1) {
modify_operation.command.set_option(field.name, values[0]); modify_operation.command.set_option(field.name, values[0]);
} else if (field.join) { } else if (field.join) {
@ -817,11 +817,11 @@ IPA.sudo.rule_details_command_section = function(spec) {
that.container = container; that.container = container;
var field = that.get_field('cmdcategory'); var field = that.get_field('cmdcategory');
var param_info = IPA.get_entity_param(that.entity.name, 'cmdcategory'); var metadata = IPA.get_entity_param(that.entity.name, 'cmdcategory');
var span = $('<span/>', { var span = $('<span/>', {
name: 'cmdcategory', name: 'cmdcategory',
title: param_info.doc, title: metadata.doc,
'class': 'field' 'class': 'field'
}).appendTo(container); }).appendTo(container);
@ -830,28 +830,28 @@ IPA.sudo.rule_details_command_section = function(spec) {
title: IPA.messages.objects.sudorule.allow title: IPA.messages.objects.sudorule.allow
}).appendTo(span); }).appendTo(span);
span.append(param_info.doc+": "); span.append(metadata.doc+": ");
that.category.create(span); that.category.create(span);
param_info = IPA.get_entity_param( metadata = IPA.get_entity_param(
that.entity.name, 'memberallowcmd_sudocmd'); that.entity.name, 'memberallowcmd_sudocmd');
var table_span = $('<span/>', { var table_span = $('<span/>', {
name: 'memberallowcmd_sudocmd', name: 'memberallowcmd_sudocmd',
title: param_info ? param_info.doc : 'memberallowcmd_sudocmd', title: metadata ? metadata.doc : 'memberallowcmd_sudocmd',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);
field = that.get_field('memberallowcmd_sudocmd'); field = that.get_field('memberallowcmd_sudocmd');
field.create(table_span); field.create(table_span);
param_info = IPA.get_entity_param( metadata = IPA.get_entity_param(
that.entity.name, 'memberallowcmd_sudocmdgroup'); that.entity.name, 'memberallowcmd_sudocmdgroup');
table_span = $('<span/>', { table_span = $('<span/>', {
name: 'memberallowcmd_sudocmdgroup', name: 'memberallowcmd_sudocmdgroup',
title: param_info ? param_info.doc : 'memberallowcmd_sudocmdgroup', title: metadata ? metadata.doc : 'memberallowcmd_sudocmdgroup',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);
@ -863,24 +863,24 @@ IPA.sudo.rule_details_command_section = function(spec) {
title: IPA.messages.objects.sudorule.deny title: IPA.messages.objects.sudorule.deny
}).appendTo(span); }).appendTo(span);
param_info = IPA.get_entity_param( metadata = IPA.get_entity_param(
that.entity.name, 'memberdenycmd_sudocmd'); that.entity.name, 'memberdenycmd_sudocmd');
table_span = $('<span/>', { table_span = $('<span/>', {
name: 'memberdenycmd_sudocmd', name: 'memberdenycmd_sudocmd',
title: param_info ? param_info.doc : 'memberdenycmd_sudocmd', title: metadata ? metadata.doc : 'memberdenycmd_sudocmd',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);
field = that.get_field('memberdenycmd_sudocmd'); field = that.get_field('memberdenycmd_sudocmd');
field.create(table_span); field.create(table_span);
param_info = IPA.get_entity_param( metadata = IPA.get_entity_param(
that.entity.name, 'memberdenycmd_sudocmdgroup'); that.entity.name, 'memberdenycmd_sudocmdgroup');
table_span = $('<span/>', { table_span = $('<span/>', {
name: 'memberdenycmd_sudocmdgroup', name: 'memberdenycmd_sudocmdgroup',
title: param_info ? param_info.doc : 'memberdenycmd_sudocmdgroup', title: metadata ? metadata.doc : 'memberdenycmd_sudocmdgroup',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);
@ -994,34 +994,34 @@ IPA.sudo.rule_details_runas_section = function(spec) {
that.container = container; that.container = container;
var field = that.get_field('ipasudorunasusercategory'); var field = that.get_field('ipasudorunasusercategory');
var param_info = IPA.get_entity_param( var metadata = IPA.get_entity_param(
that.entity.name, 'ipasudorunasusercategory'); that.entity.name, 'ipasudorunasusercategory');
var span = $('<span/>', { var span = $('<span/>', {
name: 'ipasudorunasusercategory', name: 'ipasudorunasusercategory',
title: param_info.doc, title: metadata.doc,
'class': 'field' 'class': 'field'
}).appendTo(container); }).appendTo(container);
span.append(param_info.doc+": "); span.append(metadata.doc+": ");
field.create(span); field.create(span);
span.append('<br/>'); span.append('<br/>');
param_info = IPA.get_entity_param(that.entity.name, 'ipasudorunas_user'); metadata = IPA.get_entity_param(that.entity.name, 'ipasudorunas_user');
var table_span = $('<span/>', { var table_span = $('<span/>', {
name: 'ipasudorunas_user', name: 'ipasudorunas_user',
title: param_info ? param_info.doc : 'ipasudorunas_user', title: metadata ? metadata.doc : 'ipasudorunas_user',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);
field = that.get_field('ipasudorunas_user'); field = that.get_field('ipasudorunas_user');
field.create(table_span); field.create(table_span);
param_info = IPA.get_entity_param(that.entity.name, 'ipasudorunas_group'); metadata = IPA.get_entity_param(that.entity.name, 'ipasudorunas_group');
table_span = $('<span/>', { table_span = $('<span/>', {
name: 'ipasudorunas_group', name: 'ipasudorunas_group',
title: param_info ? param_info.doc : 'ipasudorunas_group', title: metadata ? metadata.doc : 'ipasudorunas_group',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);
@ -1029,25 +1029,25 @@ IPA.sudo.rule_details_runas_section = function(spec) {
field.create(table_span); field.create(table_span);
field = that.get_field('ipasudorunasgroupcategory'); field = that.get_field('ipasudorunasgroupcategory');
param_info = IPA.get_entity_param( metadata = IPA.get_entity_param(
that.entity.name, 'ipasudorunasgroupcategory'); that.entity.name, 'ipasudorunasgroupcategory');
span = $('<span/>', { span = $('<span/>', {
name: 'ipasudorunasgroupcategory', name: 'ipasudorunasgroupcategory',
title: param_info.doc, title: metadata.doc,
'class': 'field' 'class': 'field'
}).appendTo(container); }).appendTo(container);
span.append(param_info.doc+": "); span.append(metadata.doc+": ");
field.create(span); field.create(span);
span.append('<br/>'); span.append('<br/>');
param_info = IPA.get_entity_param( metadata = IPA.get_entity_param(
that.entity.name, 'ipasudorunasgroup_group'); that.entity.name, 'ipasudorunasgroup_group');
table_span = $('<span/>', { table_span = $('<span/>', {
name: 'ipasudorunasgroup_group', name: 'ipasudorunasgroup_group',
title: param_info ? param_info.doc : 'ipasudorunasgroup_group', title: metadata ? metadata.doc : 'ipasudorunasgroup_group',
'class': 'field' 'class': 'field'
}).appendTo(span); }).appendTo(span);

View File

@ -38,37 +38,37 @@ test("Testing ipa_init().", function() {
); );
}); });
test("Testing IPA.get_param_info().", function() { test("Testing IPA.get_entity_param().", function() {
var param_info = IPA.get_entity_param("user", "uid"); var metadata = IPA.get_entity_param("user", "uid");
ok( ok(
param_info, metadata,
"IPA.get_param_info(\"user\", \"uid\") not null" "IPA.get_entity_param(\"user\", \"uid\") not null"
); );
equals( equals(
param_info["label"], "User login", metadata["label"], "User login",
"IPA.get_param_info(\"user\", \"uid\")[\"label\"]" "IPA.get_entity_param(\"user\", \"uid\")[\"label\"]"
); );
equals( equals(
IPA.get_entity_param("user", "wrong_attribute"), null, IPA.get_entity_param("user", "wrong_attribute"), null,
"IPA.get_param_info(\"user\", \"wrong_attribute\")" "IPA.get_entity_param(\"user\", \"wrong_attribute\")"
); );
equals( equals(
IPA.get_entity_param("user", null), null, IPA.get_entity_param("user", null), null,
"IPA.get_param_info(\"user\", null)" "IPA.get_entity_param(\"user\", null)"
); );
equals( equals(
IPA.get_entity_param("wrong_entity", "uid"), null, IPA.get_entity_param("wrong_entity", "uid"), null,
"IPA.get_param_info(\"wrong_entity\", \"uid\")" "IPA.get_entity_param(\"wrong_entity\", \"uid\")"
); );
equals( equals(
IPA.get_entity_param(null, "uid"), null, IPA.get_entity_param(null, "uid"), null,
"IPA.get_param_info(null, \"uid\")" "IPA.get_entity_param(null, \"uid\")"
); );
}); });

View File

@ -106,9 +106,9 @@ function text_tests(widget,input){
same(widget.is_dirty(),false, "Undo Clears is_dirty"); same(widget.is_dirty(),false, "Undo Clears is_dirty");
var old_pattern = widget.param_info.pattern; var old_pattern = widget.metadata.pattern;
widget.param_info.pattern ='abc'; widget.metadata.pattern ='abc';
input.val('not right'); input.val('not right');
input.keyup(); input.keyup();
same(widget.valid,false, 'Field is not valid'); same(widget.valid,false, 'Field is not valid');
@ -122,7 +122,7 @@ function text_tests(widget,input){
same(widget.valid,true, 'Field is valid'); same(widget.valid,true, 'Field is valid');
same(error_field.css('display'),'none','error field not visible'); same(error_field.css('display'),'none','error field not visible');
widget.param_info.pattern = old_pattern; widget.metadata.pattern = old_pattern;
} }

View File

@ -57,7 +57,6 @@ IPA.widget = function(spec) {
that.undo = spec.undo === undefined ? true : spec.undo; that.undo = spec.undo === undefined ? true : spec.undo;
that.join = spec.join; that.join = spec.join;
that.param_info = spec.param_info;
that.metadata = spec.metadata; that.metadata = spec.metadata;
that.values = []; that.values = [];
@ -66,62 +65,21 @@ IPA.widget = function(spec) {
that.dirty_changed = IPA.observer(); that.dirty_changed = IPA.observer();
var init = function() {
function set_param_info() { if (!that.metadata && that.entity) {
if (!that.param_info && that.entity) { that.metadata = IPA.get_entity_param(that.entity.name, that.name);
that.param_info =
IPA.get_entity_param(that.entity.name, that.name);
} }
if (that.param_info) { if (that.metadata) {
if (that.label === undefined) { if (that.label === undefined) {
that.label = that.param_info.label; that.label = that.metadata.label;
} }
if (that.tooltip === undefined) { if (that.tooltip === undefined) {
that.tooltip = that.param_info.doc; that.tooltip = that.metadata.doc;
} }
} }
} };
that.create_error_link = function(container) {
function meta_validate(meta, value){
var message;
if (meta.type == 'int') {
if (!value.match(/^-?\d+$/)) {
that.valid = false;
that.show_error(IPA.messages.widget.validation.integer);
return that.valid;
}
if (meta.minvalue !== undefined && value < meta.minvalue) {
that.valid = false;
message = IPA.messages.widget.validation.min_value;
message = message.replace('${value}', meta.minvalue);
that.show_error(message);
return that.valid;
}
if (meta.maxvalue !== undefined && value > meta.maxvalue) {
that.valid = false;
message = IPA.messages.widget.validation.max_value;
message = message.replace('${value}', meta.maxvalue);
that.show_error(message);
return that.valid;
}
}
if (meta.pattern) {
var regex = new RegExp(meta.pattern);
if (!value.match(regex)) {
that.valid = false;
that.show_error(meta.pattern_errmsg);
return that.valid;
}
}
return that.valid;
}
that.create_error_link = function(container){
container.append(' '); container.append(' ');
$('<span/>', { $('<span/>', {
@ -145,7 +103,7 @@ IPA.widget = function(spec) {
if (!that.writable) return false; if (!that.writable) return false;
if (that.required !== undefined) return that.required; if (that.required !== undefined) return that.required;
return that.param_info && that.param_info.required; return that.metadata && that.metadata.required;
}; };
that.set_required = function(required) { that.set_required = function(required) {
@ -191,12 +149,43 @@ IPA.widget = function(spec) {
return that.valid; return that.valid;
} }
if (that.metadata) { if (!that.metadata) {
meta_validate(that.metadata, value); return that.valid;
} }
if (that.valid && that.param_info) { var message;
meta_validate(that.param_info, value);
if (that.metadata.type == 'int') {
if (!value.match(/^-?\d+$/)) {
that.valid = false;
that.show_error(IPA.messages.widget.validation.integer);
return that.valid;
}
if (that.metadata.minvalue !== undefined && value < that.metadata.minvalue) {
that.valid = false;
message = IPA.messages.widget.validation.min_value;
message = message.replace('${value}', that.metadata.minvalue);
that.show_error(message);
return that.valid;
}
if (that.metadata.maxvalue !== undefined && value > that.metadata.maxvalue) {
that.valid = false;
message = IPA.messages.widget.validation.max_value;
message = message.replace('${value}', that.metadata.maxvalue);
that.show_error(message);
return that.valid;
}
}
if (that.metadata.pattern) {
var regex = new RegExp(that.metadata.pattern);
if (!value.match(regex)) {
that.valid = false;
that.show_error(that.metadata.pattern_errmsg);
return that.valid;
}
} }
return that.valid; return that.valid;
@ -271,12 +260,12 @@ IPA.widget = function(spec) {
that.writable = true; that.writable = true;
if (that.param_info) { if (that.metadata) {
if (that.param_info.primary_key) { if (that.metadata.primary_key) {
that.writable = false; that.writable = false;
} }
if (that.param_info.flags && 'no_update' in that.param_info.flags) { if (that.metadata.flags && 'no_update' in that.metadata.flags) {
that.writable = false; that.writable = false;
} }
} }
@ -396,9 +385,7 @@ IPA.widget = function(spec) {
that.refresh = function() { that.refresh = function() {
}; };
init();
/*widget initialization*/
set_param_info();
// methods that should be invoked by subclasses // methods that should be invoked by subclasses
that.widget_create = that.create; that.widget_create = that.create;
@ -1238,9 +1225,9 @@ IPA.column = function (spec) {
/*column initialization*/ /*column initialization*/
if (that.entity_name && !that.label) { if (that.entity_name && !that.label) {
var param_info = IPA.get_entity_param(that.entity_name, that.name); var metadata = IPA.get_entity_param(that.entity_name, that.name);
if (param_info) { if (metadata) {
that.label = param_info.label; that.label = metadata.label;
} }
} }