mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
jQuery ordered map.
The ordered map is a jQuery extension for creating a collection which can be accessed both as an ordered list and as a map. This collection can be used to store various objects including entities, fields, columns, and dialogs. A test suite for this class has been added as well. Ticket #1232
This commit is contained in:
parent
00abd47de4
commit
46137fdf89
@ -25,6 +25,7 @@ app_DATA = \
|
||||
jquery-ui.js \
|
||||
jquery.ba-bbq.js \
|
||||
jquery-ui.css \
|
||||
jquery.ordered-map.js \
|
||||
certificate.js \
|
||||
entitle.js \
|
||||
group.js \
|
||||
|
@ -102,8 +102,9 @@ IPA.add_dialog = function (spec) {
|
||||
|
||||
var field, value;
|
||||
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
field = fields[i];
|
||||
if (!field.valid) return;
|
||||
|
||||
value = record[field.name];
|
||||
@ -119,8 +120,9 @@ IPA.add_dialog = function (spec) {
|
||||
for (var j=0; j<that.sections.length; j++) {
|
||||
var section = that.sections[j];
|
||||
|
||||
for (var k=0; k<section.fields.length; k++) {
|
||||
field = section.fields[k];
|
||||
var section_fields = section.fields.values;
|
||||
for (var k=0; k<section_fields.length; k++) {
|
||||
field = section_fields[k];
|
||||
if (!field.valid) return;
|
||||
|
||||
value = record[field.name];
|
||||
|
@ -309,16 +309,14 @@ IPA.association_table_widget = function (spec) {
|
||||
that.add_method = spec.add_method || 'add_member';
|
||||
that.remove_method = spec.remove_method || 'remove_member';
|
||||
|
||||
that.adder_columns = [];
|
||||
that.adder_columns_by_name = {};
|
||||
that.adder_columns = $.ordered_map();
|
||||
|
||||
that.get_adder_column = function(name) {
|
||||
return that.adder_columns_by_name[name];
|
||||
return that.adder_columns.get(name);
|
||||
};
|
||||
|
||||
that.add_adder_column = function(column) {
|
||||
that.adder_columns.push(column);
|
||||
that.adder_columns_by_name[column.name] = column;
|
||||
that.adder_columns.put(column.name, column);
|
||||
};
|
||||
|
||||
that.create_adder_column = function(spec) {
|
||||
@ -362,13 +360,15 @@ IPA.association_table_widget = function (spec) {
|
||||
});
|
||||
}
|
||||
|
||||
for (var i=0; i<that.columns.length; i++) {
|
||||
column = that.columns[i];
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
column = columns[i];
|
||||
column.entity_name = that.other_entity;
|
||||
}
|
||||
|
||||
for (var j=0; j<that.adder_columns.length; j++) {
|
||||
column = that.adder_columns[j];
|
||||
var adder_columns = that.adder_columns.values;
|
||||
for (var j=0; j<adder_columns.length; j++) {
|
||||
column = adder_columns[j];
|
||||
column.entity_name = that.other_entity;
|
||||
}
|
||||
|
||||
@ -504,8 +504,9 @@ IPA.association_table_widget = function (spec) {
|
||||
|
||||
that.empty();
|
||||
|
||||
if (that.columns.length == 1) { // show pkey only
|
||||
var name = that.columns[0].name;
|
||||
var columns = that.columns.values;
|
||||
if (columns.length == 1) { // show pkey only
|
||||
var name = columns[0].name;
|
||||
for (var i=0; i<that.values.length; i++) {
|
||||
var record = {};
|
||||
record[name] = that.values[i];
|
||||
@ -548,8 +549,9 @@ IPA.association_table_widget = function (spec) {
|
||||
|
||||
var dialog = that.create_add_dialog();
|
||||
|
||||
if (that.adder_columns.length) {
|
||||
dialog.set_columns(that.adder_columns);
|
||||
var columns = that.adder_columns.values;
|
||||
if (columns.length) {
|
||||
dialog.set_columns(columns);
|
||||
}
|
||||
|
||||
dialog.execute = function() {
|
||||
@ -674,19 +676,15 @@ IPA.association_facet = function (spec) {
|
||||
that.add_method = spec.add_method || 'add_member';
|
||||
that.remove_method = spec.remove_method || 'remove_member';
|
||||
|
||||
that.columns = [];
|
||||
that.columns_by_name = {};
|
||||
|
||||
that.adder_columns = [];
|
||||
that.adder_columns_by_name = {};
|
||||
that.columns = $.ordered_map();
|
||||
that.adder_columns = $.ordered_map();
|
||||
|
||||
that.get_column = function(name) {
|
||||
return that.columns_by_name[name];
|
||||
return that.columns.get(name);
|
||||
};
|
||||
|
||||
that.add_column = function(column) {
|
||||
that.columns.push(column);
|
||||
that.columns_by_name[column.name] = column;
|
||||
that.columns.put(column.name, column);
|
||||
};
|
||||
|
||||
that.create_column = function(spec) {
|
||||
@ -699,12 +697,11 @@ IPA.association_facet = function (spec) {
|
||||
};
|
||||
|
||||
that.get_adder_column = function(name) {
|
||||
return that.adder_columns_by_name[name];
|
||||
return that.adder_columns.get(name);
|
||||
};
|
||||
|
||||
that.add_adder_column = function(column) {
|
||||
that.adder_columns.push(column);
|
||||
that.adder_columns_by_name[column.name] = column;
|
||||
that.adder_columns.put(column.name, column);
|
||||
};
|
||||
|
||||
that.create_adder_column = function(spec) {
|
||||
@ -744,8 +741,9 @@ IPA.association_facet = function (spec) {
|
||||
other_entity: that.other_entity
|
||||
});
|
||||
|
||||
if (that.columns.length) {
|
||||
that.table.set_columns(that.columns);
|
||||
var columns = that.columns.values;
|
||||
if (columns.length) {
|
||||
that.table.set_columns(columns);
|
||||
|
||||
} else {
|
||||
|
||||
@ -774,13 +772,14 @@ IPA.association_facet = function (spec) {
|
||||
};
|
||||
}
|
||||
|
||||
for (i=0; i<that.columns.length; i++) {
|
||||
column = that.columns[i];
|
||||
for (i=0; i<columns.length; i++) {
|
||||
column = columns[i];
|
||||
column.entity_name = that.other_entity;
|
||||
}
|
||||
|
||||
for (i=0; i<that.adder_columns.length; i++) {
|
||||
column = that.adder_columns[i];
|
||||
var adder_columns = that.adder_columns.values;
|
||||
for (i=0; i<adder_columns.length; i++) {
|
||||
column = adder_columns[i];
|
||||
column.entity_name = that.other_entity;
|
||||
}
|
||||
|
||||
@ -871,8 +870,9 @@ IPA.association_facet = function (spec) {
|
||||
'attribute_member': that.attribute_member
|
||||
});
|
||||
|
||||
if (that.adder_columns.length) {
|
||||
dialog.set_columns(that.adder_columns);
|
||||
var adder_columns = that.adder_columns.values;
|
||||
if (adder_columns.length) {
|
||||
dialog.set_columns(adder_columns);
|
||||
}
|
||||
|
||||
dialog.execute = function() {
|
||||
@ -995,8 +995,9 @@ IPA.association_facet = function (spec) {
|
||||
var pkeys = data.result.result[that.name];
|
||||
if (!pkeys) return;
|
||||
|
||||
if (that.table.columns.length == 1) { // show pkey only
|
||||
var name = that.table.columns[0].name;
|
||||
var columns = that.table.columns.values;
|
||||
if (columns.length == 1) { // show pkey only
|
||||
var name = columns[0].name;
|
||||
for (var i=0; i<pkeys.length; i++) {
|
||||
var record = {};
|
||||
record[name] = pkeys[i];
|
||||
|
@ -40,8 +40,7 @@ IPA.details_section = function(spec) {
|
||||
that.template = spec.template;
|
||||
that._entity_name = spec.entity_name;
|
||||
|
||||
that.fields = [];
|
||||
that.fields_by_name = {};
|
||||
that.fields = $.ordered_map();
|
||||
|
||||
that.__defineGetter__('entity_name', function() {
|
||||
return that._entity_name;
|
||||
@ -50,19 +49,19 @@ IPA.details_section = function(spec) {
|
||||
that.__defineSetter__('entity_name', function(entity_name) {
|
||||
that._entity_name = entity_name;
|
||||
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
that.fields[i].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_by_name[name];
|
||||
return that.fields.get(name);
|
||||
};
|
||||
|
||||
that.add_field = function(field) {
|
||||
field.entity_name = that.entity_name;
|
||||
that.fields.push(field);
|
||||
that.fields_by_name[field.name] = field;
|
||||
that.fields.put(field.name, field);
|
||||
return field;
|
||||
};
|
||||
|
||||
@ -97,8 +96,9 @@ IPA.details_section = function(spec) {
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
field.init();
|
||||
}
|
||||
};
|
||||
@ -107,8 +107,8 @@ IPA.details_section = function(spec) {
|
||||
|
||||
if (that.template) return;
|
||||
|
||||
var fields = that.fields;
|
||||
for (var i = 0; i < fields.length; ++i) {
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
var span = $('<span/>', { 'name': field.name }).appendTo(container);
|
||||
@ -122,8 +122,8 @@ IPA.details_section = function(spec) {
|
||||
|
||||
if (that.template) return;
|
||||
|
||||
var fields = that.fields;
|
||||
for (var i = 0; i < fields.length; ++i) {
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
var span = $('span[name='+field.name+']', this.container).first();
|
||||
@ -135,14 +135,14 @@ IPA.details_section = function(spec) {
|
||||
|
||||
that.record = record;
|
||||
|
||||
var fields = that.fields;
|
||||
var fields = that.fields.values;
|
||||
|
||||
if (that.template) {
|
||||
var template = IPA.get_template(that.template);
|
||||
this.container.load(
|
||||
template,
|
||||
function(data, text_status, xhr) {
|
||||
for (var i = 0; i < fields.length; ++i) {
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
var span = $('span[name='+field.name+']', this.container).first();
|
||||
field.setup(span);
|
||||
@ -161,16 +161,18 @@ IPA.details_section = function(spec) {
|
||||
};
|
||||
|
||||
that.reset = function() {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
var span = $('span[name='+field.name+']', this.container).first();
|
||||
field.reset();
|
||||
}
|
||||
};
|
||||
|
||||
that.is_dirty = function() {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
if (field.is_dirty()) {
|
||||
return true;
|
||||
}
|
||||
@ -234,8 +236,8 @@ IPA.details_list_section = function(spec) {
|
||||
'class': 'entryattrs'
|
||||
}).appendTo(container);
|
||||
|
||||
var fields = that.fields;
|
||||
for (var i = 0; i < fields.length; ++i) {
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
var label = field.label || '';
|
||||
@ -539,8 +541,9 @@ IPA.details_facet = function(spec) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var j=0; j<section.fields.length; j++) {
|
||||
var field = section.fields[j];
|
||||
var section_fields = section.fields.values;
|
||||
for (var j=0; j<section_fields.length; j++) {
|
||||
var field = section_fields[j];
|
||||
|
||||
var span = $('span[name='+field.name+']', section.container).first();
|
||||
values = field.save();
|
||||
|
@ -40,8 +40,7 @@ IPA.dialog = function(spec) {
|
||||
|
||||
that.buttons = {};
|
||||
|
||||
that.fields = [];
|
||||
that.fields_by_name = {};
|
||||
that.fields = $.ordered_map();
|
||||
|
||||
that.sections = [];
|
||||
|
||||
@ -52,8 +51,9 @@ IPA.dialog = function(spec) {
|
||||
that.__defineSetter__("entity_name", function(entity_name){
|
||||
that._entity_name = entity_name;
|
||||
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
that.fields[i].entity_name = entity_name;
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
fields[i].entity_name = entity_name;
|
||||
}
|
||||
|
||||
for (var j=0; j<that.sections.length; j++) {
|
||||
@ -66,12 +66,11 @@ IPA.dialog = function(spec) {
|
||||
};
|
||||
|
||||
that.get_field = function(name) {
|
||||
return that.fields_by_name[name];
|
||||
return that.fields.get(name);
|
||||
};
|
||||
|
||||
that.add_field = function(field) {
|
||||
that.fields.push(field);
|
||||
that.fields_by_name[field.name] = field;
|
||||
that.fields.put(field.name, field);
|
||||
};
|
||||
|
||||
that.field = function(field) {
|
||||
@ -80,8 +79,9 @@ IPA.dialog = function(spec) {
|
||||
};
|
||||
|
||||
that.is_valid = function() {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
if (!field.valid) return false;
|
||||
}
|
||||
return true;
|
||||
@ -116,8 +116,9 @@ IPA.dialog = function(spec) {
|
||||
|
||||
that.entity = IPA.get_entity(that.entity_name);
|
||||
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
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();
|
||||
}
|
||||
@ -136,8 +137,9 @@ IPA.dialog = function(spec) {
|
||||
|
||||
var table = $('<table/>').appendTo(that.container);
|
||||
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
if (field.hidden) continue;
|
||||
|
||||
var tr = $('<tr/>').appendTo(table);
|
||||
@ -172,8 +174,9 @@ IPA.dialog = function(spec) {
|
||||
* Setup behavior
|
||||
*/
|
||||
that.setup = function() {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
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);
|
||||
@ -241,8 +244,9 @@ IPA.dialog = function(spec) {
|
||||
};
|
||||
|
||||
that.save = function(record) {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
var values = field.save();
|
||||
record[field.name] = values.join(',');
|
||||
}
|
||||
@ -262,8 +266,9 @@ IPA.dialog = function(spec) {
|
||||
};
|
||||
|
||||
that.reset = function() {
|
||||
for (var i=0; i<that.fields.length; i++) {
|
||||
var field = that.fields[i];
|
||||
var fields = that.fields.values;
|
||||
for (var i=0; i<fields.length; i++) {
|
||||
var field = fields[i];
|
||||
field.reset();
|
||||
}
|
||||
for (var j=0; j<that.sections.length; j++) {
|
||||
@ -318,16 +323,14 @@ IPA.adder_dialog = function (spec) {
|
||||
|
||||
that.width = spec.width || '600px';
|
||||
|
||||
that.columns = [];
|
||||
that.columns_by_name = {};
|
||||
that.columns = $.ordered_map();
|
||||
|
||||
that.get_column = function(name) {
|
||||
return that.columns_by_name[name];
|
||||
return that.columns.get(name);
|
||||
};
|
||||
|
||||
that.add_column = function(column) {
|
||||
that.columns.push(column);
|
||||
that.columns_by_name[column.name] = column;
|
||||
that.columns.put(column.name, column);
|
||||
};
|
||||
|
||||
that.set_columns = function(columns) {
|
||||
@ -338,8 +341,7 @@ IPA.adder_dialog = function (spec) {
|
||||
};
|
||||
|
||||
that.clear_columns = function() {
|
||||
that.columns = [];
|
||||
that.columns_by_name = {};
|
||||
that.columns.empty();
|
||||
};
|
||||
|
||||
that.create_column = function(spec) {
|
||||
@ -355,7 +357,8 @@ IPA.adder_dialog = function (spec) {
|
||||
height: '151px'
|
||||
});
|
||||
|
||||
that.available_table.set_columns(that.columns);
|
||||
var columns = that.columns.values;
|
||||
that.available_table.set_columns(columns);
|
||||
|
||||
that.available_table.init();
|
||||
|
||||
@ -365,7 +368,7 @@ IPA.adder_dialog = function (spec) {
|
||||
height: '151px'
|
||||
});
|
||||
|
||||
that.selected_table.set_columns(that.columns);
|
||||
that.selected_table.set_columns(columns);
|
||||
|
||||
that.selected_table.init();
|
||||
|
||||
|
@ -117,8 +117,9 @@ IPA.records_facet = function(spec) {
|
||||
entity_name: that.entity_name
|
||||
});
|
||||
|
||||
for (var i=0; i<that.columns.length; i++) {
|
||||
var column = that.columns[i];
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
var column = columns[i];
|
||||
that.table.add_column(column);
|
||||
}
|
||||
|
||||
|
@ -37,8 +37,7 @@ IPA.facet = function (spec) {
|
||||
that.title = spec.title || that.label;
|
||||
that._entity_name = spec.entity_name;
|
||||
|
||||
that.dialogs = [];
|
||||
that.dialogs_by_name = {};
|
||||
that.dialogs = $.ordered_map();
|
||||
|
||||
// facet group name
|
||||
that.facet_group = spec.facet_group;
|
||||
@ -52,19 +51,19 @@ IPA.facet = function (spec) {
|
||||
});
|
||||
|
||||
that.get_dialog = function(name) {
|
||||
return that.dialogs_by_name[name];
|
||||
return that.dialogs.get(name);
|
||||
};
|
||||
|
||||
that.dialog = function(dialog) {
|
||||
that.dialogs.push(dialog);
|
||||
that.dialogs_by_name[dialog.name] = dialog;
|
||||
that.dialogs.put(dialog.name, dialog);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.init = function() {
|
||||
|
||||
for (var i=0; i<that.dialogs.length; i++){
|
||||
var dialog = that.dialogs[i];
|
||||
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();
|
||||
}
|
||||
@ -148,8 +147,7 @@ IPA.table_facet = function(spec) {
|
||||
|
||||
var that = IPA.facet(spec);
|
||||
|
||||
that.columns = [];
|
||||
that.columns_by_name = {};
|
||||
that.columns = $.ordered_map();
|
||||
|
||||
that.__defineGetter__('entity_name', function() {
|
||||
return that._entity_name;
|
||||
@ -158,23 +156,23 @@ IPA.table_facet = function(spec) {
|
||||
that.__defineSetter__('entity_name', function(entity_name) {
|
||||
that._entity_name = entity_name;
|
||||
|
||||
for (var i=0; i<that.columns.length; i++) {
|
||||
that.columns[i].entity_name = entity_name;
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
columns[i].entity_name = entity_name;
|
||||
}
|
||||
});
|
||||
|
||||
that.get_columns = function() {
|
||||
return that.columns;
|
||||
return that.columns.values;
|
||||
};
|
||||
|
||||
that.get_column = function(name) {
|
||||
return that.columns_by_name[name];
|
||||
return that.columns.get(name);
|
||||
};
|
||||
|
||||
that.add_column = function(column) {
|
||||
column.entity_name = that.entity_name;
|
||||
that.columns.push(column);
|
||||
that.columns_by_name[column.name] = column;
|
||||
that.columns.put(column.name, column);
|
||||
};
|
||||
|
||||
that.create_column = function(spec) {
|
||||
@ -214,16 +212,14 @@ IPA.facet_group = function(spec) {
|
||||
that.name = spec.name;
|
||||
that.label = spec.label;
|
||||
|
||||
that.facets = [];
|
||||
that.facets_by_name = {};
|
||||
that.facets = $.ordered_map();
|
||||
|
||||
that.add_facet = function(facet) {
|
||||
that.facets.push(facet);
|
||||
that.facets_by_name[facet.name] = facet;
|
||||
that.facets.put(facet.name, facet);
|
||||
};
|
||||
|
||||
that.get_facet = function(name) {
|
||||
return that.facets_by_name[name];
|
||||
return that.facets.get(name);
|
||||
};
|
||||
|
||||
return that;
|
||||
@ -240,20 +236,16 @@ IPA.entity = function (spec) {
|
||||
|
||||
that.header = spec.header || IPA.entity_header({entity: that});
|
||||
|
||||
that.dialogs = [];
|
||||
that.dialogs_by_name = {};
|
||||
that.dialogs = $.ordered_map();
|
||||
|
||||
that.facets = [];
|
||||
that.facets_by_name = {};
|
||||
that.facets = $.ordered_map();
|
||||
that.facet_groups = $.ordered_map();
|
||||
|
||||
// current facet
|
||||
that.facet_name = null;
|
||||
|
||||
that.facet_groups = [];
|
||||
that.facet_groups_by_name = {};
|
||||
|
||||
that.get_dialog = function(name) {
|
||||
return that.dialogs_by_name[name];
|
||||
return that.dialogs.get(name);
|
||||
};
|
||||
|
||||
that.add_dialog = function(dialog) {
|
||||
@ -262,45 +254,43 @@ IPA.entity = function (spec) {
|
||||
|
||||
that.dialog = function(dialog) {
|
||||
dialog.entity_name = that.name;
|
||||
that.dialogs.push(dialog);
|
||||
that.dialogs_by_name[dialog.name] = dialog;
|
||||
that.dialogs.put(dialog.name, dialog);
|
||||
return that;
|
||||
};
|
||||
|
||||
that.add_facet_group = function(facet_group) {
|
||||
that.facet_groups.push(facet_group);
|
||||
that.facet_groups_by_name[facet_group.name] = facet_group;
|
||||
that.facet_groups.put(facet_group.name, facet_group);
|
||||
};
|
||||
|
||||
that.get_facet_group = function(name) {
|
||||
return that.facet_groups_by_name[name];
|
||||
return that.facet_groups.get(name);
|
||||
};
|
||||
|
||||
that.remove_facet_groups = function() {
|
||||
that.facet_groups = [];
|
||||
that.facet_groups_by_name = {};
|
||||
that.facet_groups.empty();
|
||||
};
|
||||
|
||||
that.get_facet = function(name) {
|
||||
if (name === 'default') {
|
||||
// return the first facet in the first facet group
|
||||
for (var i=0; i<that.facet_groups.length; i++) {
|
||||
var facet_group = that.facet_groups[i];
|
||||
if (!facet_group.facets.length) continue;
|
||||
return facet_group.facets[0];
|
||||
var facet_groups = that.facet_groups.values;
|
||||
for (var i=0; i<facet_groups.length; i++) {
|
||||
var facet_group = facet_groups[i];
|
||||
var facets = facet_group.facets.values;
|
||||
if (!facets.length) continue;
|
||||
return facets[0];
|
||||
}
|
||||
|
||||
return that.facets[0];
|
||||
return that.facets.values[0];
|
||||
}
|
||||
|
||||
return that.facets_by_name[name];
|
||||
return that.facets.get(name);
|
||||
};
|
||||
|
||||
that.add_facet = function(facet) {
|
||||
facet.entity_name = that.name;
|
||||
that.facets.push(facet);
|
||||
that.facets_by_name[facet.name] = facet;
|
||||
|
||||
that.facets.put(facet.name, facet);
|
||||
|
||||
if (facet.facet_group) {
|
||||
var facet_group = that.get_facet_group(facet.facet_group);
|
||||
if (facet_group) {
|
||||
@ -313,14 +303,16 @@ IPA.entity = function (spec) {
|
||||
|
||||
that.init = function() {
|
||||
|
||||
for (var i=0; i<that.facets.length; i++) {
|
||||
var facet = that.facets[i];
|
||||
var facets = that.facets.values;
|
||||
for (var i=0; i<facets.length; i++) {
|
||||
var facet = facets[i];
|
||||
facet.entity = that;
|
||||
facet.init();
|
||||
}
|
||||
|
||||
for (var j=0; j<that.dialogs.length; j++) {
|
||||
that.dialogs[j].init();
|
||||
var dialogs = that.dialogs.values;
|
||||
for (var j=0; j<dialogs.length; j++) {
|
||||
dialogs[j].init();
|
||||
}
|
||||
};
|
||||
|
||||
@ -382,8 +374,9 @@ IPA.entity = function (spec) {
|
||||
|
||||
IPA.current_facet = function (entity){
|
||||
var facet_name = $.bbq.getState(entity.name + '-facet', true);
|
||||
if (!facet_name && entity.facets.length) {
|
||||
facet_name = entity.facets[0].name;
|
||||
var facets = entity.facets.values;
|
||||
if (!facet_name && facets.length) {
|
||||
facet_name = facets[0].name;
|
||||
}
|
||||
return facet_name;
|
||||
};
|
||||
@ -526,8 +519,9 @@ IPA.entity_header = function(spec) {
|
||||
'class': 'facet-tab'
|
||||
}).appendTo(section);
|
||||
|
||||
for (var i=0; i<facet_group.facets.length; i++) {
|
||||
var facet = facet_group.facets[i];
|
||||
var facets = facet_group.facets.values;
|
||||
for (var i=0; i<facets.length; i++) {
|
||||
var facet = facets[i];
|
||||
that.facet_link(ul, facet);
|
||||
}
|
||||
};
|
||||
@ -574,7 +568,7 @@ IPA.entity_header = function(spec) {
|
||||
'class': 'entity-tabs'
|
||||
}).appendTo(container);
|
||||
|
||||
var facet_groups = that.entity.facet_groups;
|
||||
var facet_groups = that.entity.facet_groups.values;
|
||||
for (var i=0; i<facet_groups.length; i++) {
|
||||
var facet_group = facet_groups[i];
|
||||
if (facet_group.facets.length) {
|
||||
|
@ -434,8 +434,9 @@ IPA.hbacrule_details_facet = function (spec) {
|
||||
for (var i=0; i<that.sections.length; i++) {
|
||||
var section = that.sections[i];
|
||||
|
||||
for (var j=0; j<section.fields.length; j++) {
|
||||
var field = section.fields[j];
|
||||
var section_fields = section.fields.values;
|
||||
for (var j=0; j<section_fields.length; j++) {
|
||||
var field = section_fields[j];
|
||||
|
||||
var span = $('span[name='+field.name+']', section.container).first();
|
||||
var values = field.save();
|
||||
|
@ -8,6 +8,7 @@
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="jquery.ordered-map.js"></script>
|
||||
|
||||
<script type="text/javascript" src="ipa.js"></script>
|
||||
<script type="text/javascript" src="widget.js"></script>
|
||||
|
@ -1,3 +1,4 @@
|
||||
/*jsl:import jquery.ordered-map.js */
|
||||
/* Authors:
|
||||
* Pavel Zuna <pzuna@redhat.com>
|
||||
* Adam Young <ayoung@redhat.com>
|
||||
@ -21,6 +22,7 @@
|
||||
*/
|
||||
|
||||
|
||||
/* REQUIRES: jquery.ordered-map.js */
|
||||
/*global $:true, location:true */
|
||||
|
||||
var IPA = ( function () {
|
||||
@ -47,11 +49,9 @@ var IPA = ( function () {
|
||||
that.messages = {};
|
||||
that.whoami = {};
|
||||
|
||||
that.entities = [];
|
||||
that.entities = $.ordered_map();
|
||||
that.entity_factories = {};
|
||||
|
||||
that.entities_by_name = {};
|
||||
|
||||
that.layout = $.bbq.getState('layout');
|
||||
that.layouts_dir = 'layouts';
|
||||
|
||||
@ -127,27 +127,19 @@ var IPA = ( function () {
|
||||
};
|
||||
|
||||
that.get_entities = function() {
|
||||
return that.entities;
|
||||
return that.entities.values;
|
||||
};
|
||||
|
||||
that.get_entity = function(name) {
|
||||
return that.entities_by_name[name];
|
||||
return that.entities.get(name);
|
||||
};
|
||||
|
||||
that.add_entity = function(entity) {
|
||||
that.entities.push(entity);
|
||||
that.entities_by_name[entity.name] = entity;
|
||||
that.entities.put(entity.name, entity);
|
||||
};
|
||||
|
||||
that.remove_entity = function(name) {
|
||||
for (var i=0; i<that.entities.length; i++) {
|
||||
var entity = that.entities[i];
|
||||
if (name == entity.name) {
|
||||
that.entities.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
delete that.entities_by_name[entity.name];
|
||||
that.entities.remove(name);
|
||||
};
|
||||
|
||||
that.start_entities = function() {
|
||||
|
68
install/ui/jquery.ordered-map.js
Executable file
68
install/ui/jquery.ordered-map.js
Executable file
@ -0,0 +1,68 @@
|
||||
/* Authors:
|
||||
* Endi Dewata <edewata@redhat.com>
|
||||
*
|
||||
* Copyright (C) 2010 Red Hat
|
||||
* see file 'COPYING' for use and warranty information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
jQuery.ordered_map = jQuery.fn.ordered_map = function() {
|
||||
|
||||
var that = {};
|
||||
|
||||
/**
|
||||
* These variables can be read directly but should not be
|
||||
* modified directly. Use the provided methods instead.
|
||||
*/
|
||||
that.keys = [];
|
||||
that.values = [];
|
||||
that.map = {};
|
||||
|
||||
that.__defineGetter__('length', function() {
|
||||
return that.keys.length;
|
||||
});
|
||||
|
||||
that.get = function(key) {
|
||||
return that.map[key];
|
||||
};
|
||||
|
||||
that.put = function(key, value) {
|
||||
that.keys.push(key);
|
||||
that.values.push(value);
|
||||
that.map[key] = value;
|
||||
};
|
||||
|
||||
that.remove = function(key) {
|
||||
|
||||
var i = that.keys.indexOf(key);
|
||||
if (i<0) return null;
|
||||
|
||||
that.keys.splice(i, 1);
|
||||
that.values.splice(i, 1);
|
||||
|
||||
var value = that.map[key];
|
||||
delete that.map[key];
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
that.empty = function() {
|
||||
that.keys = [];
|
||||
that.values = [];
|
||||
that.map = {};
|
||||
};
|
||||
|
||||
return that;
|
||||
};
|
@ -117,6 +117,7 @@
|
||||
+define alert
|
||||
+define $
|
||||
+define JSON
|
||||
+define jQuery
|
||||
|
||||
### Files
|
||||
# Specify which files to lint
|
||||
@ -124,6 +125,7 @@
|
||||
# To add a set of files, use "+process FileName", "+process Folder\Path\*.js",
|
||||
# or "+process Folder\Path\*.htm".
|
||||
#
|
||||
+process jquery.ordered-map.js
|
||||
+process ipa.js
|
||||
+process widget.js
|
||||
+process dialog.js
|
||||
|
@ -67,8 +67,9 @@ IPA.search_facet = function(spec) {
|
||||
search_all: that.search_all
|
||||
});
|
||||
|
||||
for (var i=0; i<that.columns.length; i++) {
|
||||
var column = that.columns[i];
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
var column = columns[i];
|
||||
|
||||
var param_info = IPA.get_entity_param(that.entity_name, column.name);
|
||||
column.primary_key = param_info && param_info['primary_key'];
|
||||
|
@ -450,8 +450,9 @@ IPA.sudorule_details_facet = function (spec) {
|
||||
for (var i=0; i<that.sections.length; i++) {
|
||||
var section = that.sections[i];
|
||||
|
||||
for (var j=0; j<section.fields.length; j++) {
|
||||
var field = section.fields[j];
|
||||
var section_fields = section.fields.values;
|
||||
for (var j=0; j<section_fields.length; j++) {
|
||||
var field = section_fields[j];
|
||||
|
||||
var span = $('span[name='+field.name+']', section.container).first();
|
||||
var values = field.save();
|
||||
@ -1097,7 +1098,8 @@ IPA.sudo.rule_association_adder_dialog = function (spec) {
|
||||
name: 'available'
|
||||
});
|
||||
|
||||
that.available_table.set_columns(that.columns);
|
||||
var columns = that.columns.values;
|
||||
that.available_table.set_columns(columns);
|
||||
|
||||
that.available_table.init();
|
||||
|
||||
@ -1105,7 +1107,7 @@ IPA.sudo.rule_association_adder_dialog = function (spec) {
|
||||
name: 'selected'
|
||||
});
|
||||
|
||||
that.selected_table.set_columns(that.columns);
|
||||
that.selected_table.set_columns(columns);
|
||||
|
||||
that.selected_table.init();
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../widget.js"></script>
|
||||
<script type="text/javascript" src="../dialog.js"></script>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../widget.js"></script>
|
||||
<script type="text/javascript" src="../dialog.js"></script>
|
||||
@ -18,6 +19,7 @@
|
||||
<script type="text/javascript" src="../navigation.js"></script>
|
||||
<script type="text/javascript" src="../certificate.js"></script>
|
||||
<script type="text/javascript" src="../aci.js"></script>
|
||||
<script type="text/javascript" src="ordered_map_tests.js"></script>
|
||||
<script type="text/javascript" src="ipa_tests.js"></script>
|
||||
<script type="text/javascript" src="details_tests.js"></script>
|
||||
<script type="text/javascript" src="entity_tests.js"></script>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../details.js"></script>
|
||||
<script type="text/javascript" src="../search.js"></script>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../details.js"></script>
|
||||
<script type="text/javascript" src="../search.js"></script>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../widget.js"></script>
|
||||
<script type="text/javascript" src="../dialog.js"></script>
|
||||
|
@ -62,7 +62,7 @@ test("Testing IPA.details_section.create().", function() {
|
||||
section.entity_name = 'user';
|
||||
section.init();
|
||||
|
||||
var fields = section.fields;
|
||||
var fields = section.fields.values;
|
||||
var container = $("<div/>");
|
||||
section.create(container);
|
||||
|
||||
@ -264,7 +264,7 @@ test("Testing IPA.details_section_setup again()",function(){
|
||||
text({name:'cn', label:'Entity Name'}).
|
||||
text({name:'description', label:'Description'}).
|
||||
text({name:'number', label:'Entity ID'});
|
||||
var fields = section.fields;
|
||||
var fields = section.fields.values;
|
||||
var container = $("<div title='entity'/>");
|
||||
var details = $("<div/>");
|
||||
container.append(details);
|
||||
|
@ -6,6 +6,7 @@
|
||||
<script type="text/javascript" src="qunit.js"></script>
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../widget.js"></script>
|
||||
<script type="text/javascript" src="../dialog.js"></script>
|
||||
|
@ -24,6 +24,7 @@
|
||||
<div id="content">
|
||||
<a href="all_tests.html">Complete Test Suite</a>
|
||||
<ul>
|
||||
<li><a href="ordered_map_tests.html">Ordered Map Test Suite</a>
|
||||
<li><a href="ipa_tests.html">Core Test Suite</a>
|
||||
<li><a href="entity_tests.html">Entity Test Suite</a>
|
||||
<li><a href="details_tests.html">Details Test Suite</a>
|
||||
|
@ -9,6 +9,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="ipa_tests.js"></script>
|
||||
</head>
|
||||
|
@ -7,6 +7,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../entity.js"></script>
|
||||
<script type="text/javascript" src="../navigation.js"></script>
|
||||
|
21
install/ui/test/ordered_map_tests.html
Executable file
21
install/ui/test/ordered_map_tests.html
Executable file
@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Ordered Map Test Suite</title>
|
||||
<link rel="stylesheet" href="qunit.css" type="text/css" media="screen">
|
||||
<link rel="stylesheet" type="text/css" href="../jquery-ui.css" />
|
||||
|
||||
<script type="text/javascript" src="qunit.js"></script>
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="ordered_map_tests.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="qunit-header">Ordered Map Test Suite</h1>
|
||||
<h2 id="qunit-banner"></h2>
|
||||
<div id="qunit-testrunner-toolbar"></div>
|
||||
<h2 id="qunit-userAgent"></h2>
|
||||
<ol id="qunit-tests"></ol>
|
||||
<div id="qunit-fixture"></div>
|
||||
</body>
|
||||
</html>
|
128
install/ui/test/ordered_map_tests.js
Executable file
128
install/ui/test/ordered_map_tests.js
Executable file
@ -0,0 +1,128 @@
|
||||
/* Authors:
|
||||
* Endi Sukma Dewata <edewata@redhat.com>
|
||||
*
|
||||
* Copyright (C) 2010 Red Hat
|
||||
* see file 'COPYING' for use and warranty information
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
module('ordered_map');
|
||||
|
||||
test("Testing $.ordered_map constructor.", function() {
|
||||
|
||||
var test = $.ordered_map();
|
||||
|
||||
strictEqual(test.length, 0, "Checking length.");
|
||||
deepEqual(test.keys, [], "Checking keys.");
|
||||
deepEqual(test.values, [], "Checking values.");
|
||||
deepEqual(test.map, {}, "Checking map.");
|
||||
});
|
||||
|
||||
test("Testing $.ordered_map.put().", function() {
|
||||
|
||||
var test = $.ordered_map();
|
||||
|
||||
var key1 = 'key1';
|
||||
var value1 = 'value1';
|
||||
|
||||
var key2 = 'key2';
|
||||
var value2 = 'value2';
|
||||
|
||||
var map = {};
|
||||
map[key1] = value1;
|
||||
map[key2] = value2;
|
||||
|
||||
test.put(key1, value1);
|
||||
test.put(key2, value2);
|
||||
|
||||
strictEqual(test.length, 2, 'Checking length.');
|
||||
deepEqual(test.keys, [key1, key2], 'Checking keys.');
|
||||
deepEqual(test.values, [value1, value2], 'Checking values.');
|
||||
deepEqual(test.map, map, 'Checking map.');
|
||||
});
|
||||
|
||||
test("Testing $.ordered_map.get().", function() {
|
||||
|
||||
var test = $.ordered_map();
|
||||
|
||||
var key1 = 'key1';
|
||||
var value1 = 'value1';
|
||||
|
||||
var key2 = 'key2';
|
||||
var value2 = 'value2';
|
||||
|
||||
var map = {};
|
||||
map[key1] = value1;
|
||||
map[key2] = value2;
|
||||
|
||||
test.put(key1, value1);
|
||||
test.put(key2, value2);
|
||||
|
||||
var result1 = test.get(key1);
|
||||
var result2 = test.get(key2);
|
||||
|
||||
strictEqual(test.length, 2, 'Checking length.');
|
||||
deepEqual(test.keys, [key1, key2], 'Checking keys.');
|
||||
deepEqual(test.values, [value1, value2], 'Checking values.');
|
||||
deepEqual(test.map, map, 'Checking map.');
|
||||
strictEqual(result1, value1, 'Checking result 1.');
|
||||
strictEqual(result2, value2, 'Checking result 2.');
|
||||
});
|
||||
|
||||
test("Testing $.ordered_map.remove().", function() {
|
||||
|
||||
var test = $.ordered_map();
|
||||
|
||||
var key1 = 'key1';
|
||||
var value1 = 'value1';
|
||||
|
||||
var key2 = 'key2';
|
||||
var value2 = 'value2';
|
||||
|
||||
var map = {};
|
||||
map[key2] = value2;
|
||||
|
||||
test.put(key1, value1);
|
||||
test.put(key2, value2);
|
||||
|
||||
var result1 = test.remove(key1);
|
||||
|
||||
strictEqual(test.length, 1, 'Checking length.');
|
||||
deepEqual(test.keys, [key2], 'Checking keys.');
|
||||
deepEqual(test.values, [value2], 'Checking values.');
|
||||
deepEqual(test.map, map, 'Checking map.');
|
||||
strictEqual(result1, value1, 'Checking result.');
|
||||
});
|
||||
|
||||
test("Testing $.ordered_map.empty().", function() {
|
||||
|
||||
var test = $.ordered_map();
|
||||
|
||||
var key1 = 'key1';
|
||||
var value1 = 'value1';
|
||||
|
||||
var key2 = 'key2';
|
||||
var value2 = 'value2';
|
||||
|
||||
test.put(key1, value1);
|
||||
test.put(key2, value2);
|
||||
|
||||
test.empty();
|
||||
|
||||
strictEqual(test.length, 0, 'Checking length.');
|
||||
deepEqual(test.keys, [], 'Checking keys.');
|
||||
deepEqual(test.values, [], 'Checking values.');
|
||||
deepEqual(test.map, {}, 'Checking map.');
|
||||
});
|
@ -10,6 +10,7 @@
|
||||
<script type="text/javascript" src="../jquery.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="../jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="../jquery.ordered-map.js"></script>
|
||||
<script type="text/javascript" src="../ipa.js"></script>
|
||||
<script type="text/javascript" src="../widget.js"></script>
|
||||
|
||||
|
@ -1078,20 +1078,18 @@ IPA.table_widget = function (spec) {
|
||||
that.scrollable = spec.scrollable;
|
||||
that.save_values = typeof spec.save_values == 'undefined' ? true : spec.save_values;
|
||||
|
||||
that.columns = [];
|
||||
that.columns_by_name = {};
|
||||
that.columns = $.ordered_map();
|
||||
|
||||
that.get_columns = function() {
|
||||
return that.columns;
|
||||
return that.columns.values;
|
||||
};
|
||||
|
||||
that.get_column = function(name) {
|
||||
return that.columns_by_name[name];
|
||||
return that.columns.get(name);
|
||||
};
|
||||
|
||||
that.add_column = function(column) {
|
||||
that.columns.push(column);
|
||||
that.columns_by_name[column.name] = column;
|
||||
that.columns.put(column.name, column);
|
||||
};
|
||||
|
||||
that.set_columns = function(columns) {
|
||||
@ -1102,8 +1100,7 @@ IPA.table_widget = function (spec) {
|
||||
};
|
||||
|
||||
that.clear_columns = function() {
|
||||
that.columns = [];
|
||||
that.columns_by_name = {};
|
||||
that.columns.empty();
|
||||
};
|
||||
|
||||
that.create_column = function(spec) {
|
||||
@ -1115,8 +1112,9 @@ IPA.table_widget = function (spec) {
|
||||
that.init = function() {
|
||||
that.widget_init();
|
||||
|
||||
for (var i=0; i<that.columns.length; i++) {
|
||||
var column = that.columns[i];
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
var column = columns[i];
|
||||
column.init();
|
||||
}
|
||||
};
|
||||
@ -1144,12 +1142,13 @@ IPA.table_widget = function (spec) {
|
||||
'name': 'select'
|
||||
}).appendTo(th);
|
||||
|
||||
for (var i=0; i<that.columns.length; i++) {
|
||||
var column = that.columns[i];
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++) {
|
||||
var column = columns[i];
|
||||
|
||||
th = $('<th/>').appendTo(tr);
|
||||
|
||||
if (that.scrollable && (i == that.columns.length-1)) {
|
||||
if (that.scrollable && (i == columns.length-1)) {
|
||||
if (column.width) {
|
||||
var width = parseInt(column.width.substring(0, column.width.length-2),10);
|
||||
width += 16;
|
||||
@ -1168,7 +1167,7 @@ IPA.table_widget = function (spec) {
|
||||
'html': label
|
||||
}).appendTo(th);
|
||||
|
||||
if (i == that.columns.length-1) {
|
||||
if (i == columns.length-1) {
|
||||
$('<span/>', {
|
||||
'name': 'buttons',
|
||||
'style': 'float: right;'
|
||||
@ -1194,8 +1193,8 @@ IPA.table_widget = function (spec) {
|
||||
'value': 'user'
|
||||
}).appendTo(td);
|
||||
|
||||
for (/* var */ i=0; i<that.columns.length; i++) {
|
||||
/* var */ column = that.columns[i];
|
||||
for (/* var */ i=0; i<columns.length; i++) {
|
||||
/* var */ column = columns[i];
|
||||
|
||||
td = $('<td/>').appendTo(tr);
|
||||
if (column.width) {
|
||||
@ -1211,7 +1210,7 @@ IPA.table_widget = function (spec) {
|
||||
|
||||
tr = $('<tr/>').appendTo(tfoot);
|
||||
|
||||
td = $('<td/>', { colspan: that.columns.length+1 }).appendTo(tr);
|
||||
td = $('<td/>', { colspan: columns.length+1 }).appendTo(tr);
|
||||
|
||||
$('<span/>', {
|
||||
'name': 'summary'
|
||||
@ -1295,17 +1294,22 @@ IPA.table_widget = function (spec) {
|
||||
};
|
||||
|
||||
that.get_record = function(result, index) {
|
||||
|
||||
var record = {};
|
||||
for (var i=0; i<that.columns.length; i++){
|
||||
var name = that.columns[i].name;
|
||||
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++){
|
||||
var name = columns[i].name;
|
||||
var values = result[name];
|
||||
if (!values) continue;
|
||||
|
||||
if (values instanceof Array){
|
||||
record[name] = values[index];
|
||||
}else{
|
||||
record[name] = values;
|
||||
}
|
||||
}
|
||||
|
||||
return record;
|
||||
};
|
||||
|
||||
@ -1314,8 +1318,9 @@ IPA.table_widget = function (spec) {
|
||||
var tr = that.row.clone();
|
||||
tr.appendTo(that.tbody);
|
||||
|
||||
for (var i=0; i<that.columns.length; i++){
|
||||
var column = that.columns[i];
|
||||
var columns = that.columns.values;
|
||||
for (var i=0; i<columns.length; i++){
|
||||
var column = columns[i];
|
||||
|
||||
var value = record[column.name];
|
||||
value = value ? value.toString() : '';
|
||||
|
Loading…
Reference in New Issue
Block a user