Bug 8508 - Holds to Pull : Library dropdown options are erroneously concatenated by br tags

This patch introduces a new javascript function that breaks apart option
strings that are erroneously concatenated by br tags. The split strings
are then checked against non-concatenated option strings, and pushed into
the option array if there is no duplication.

This function is nestled into the JQuery datatable function for populating
the drop-down menu.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
David Cook 2012-09-11 07:18:54 +10:00 committed by Chris Cormack
parent 43e679156a
commit 7b28feafac
1 changed files with 27 additions and 0 deletions

View File

@ -12,7 +12,34 @@ $(document).ready(function() {
var holdst = $("#holdst").dataTable($.extend(true, {}, dataTablesDefaults, {
}));
holdst.fnAddFilters("filter");
[%# add separateData function to cleanse jQuery select lists by breaking apart strings glued with BR tags and then de-duplicating any repeated library codes %]
function separateData ( ColumnData ){
var cD = ColumnData;
var new_array = new Array();
for ( j=0 ; j<cD.length ; j++ ) {
var strMatch = cD[j].match(/<br>/gi);
if (strMatch) {
var split_array = cD[j].split(/<br>/gi);
for ( k=0 ; k<split_array.length ; k++ ){
var check_array = $.inArray(split_array[k], new_array);
if (check_array == -1) {
new_array.push(split_array[k]);
}
}
}
else {
var check_array = $.inArray(cD[j], new_array);
if (check_array == -1) {
new_array.push(cD[j]);
}
}
}
new_array.sort();
return new_array;
}
[%# add SeparateData function into createSelect function, so that it does the createSelect on clean data %]
function createSelect( data ) {
data = separateData(data);
var r='<select style="width:99%"><option value="">None</option>', i, len=data.length;
for ( i=0 ; i<len ; i++ ) {
r += '<option value="'+data[i]+'">'+data[i]+'</option>';