fixed not allways used category color, because regular expression missed every 2. category

This commit is contained in:
Ralf Becker 2014-06-24 12:39:12 +00:00
parent 3c7a04f903
commit fe44c6bb5e

View File

@ -477,6 +477,19 @@ var et2_nextmatch_rowProvider = ClassWithAttributes.extend(
} }
}, },
/**
* Match category-ids from class attribute eg. "cat_15" or "123,456,789 "
*
* Make sure to not match numbers inside other class-names.
*
* We can NOT use something like /(^| |,|cat_)([0-9]+)( |,|$)/g as it wont find all cats in "123,456,789 "!
*/
cat_regexp: /(^| |,|cat_)([0-9]+)/g,
/**
* Regular expression used to filter out non-nummerical chars from above matches
*/
cat_cleanup: /[^0-9]/g,
/** /**
* Applies additional row data (like the class) to the tr * Applies additional row data (like the class) to the tr
* *
@ -499,10 +512,8 @@ var et2_nextmatch_rowProvider = ClassWithAttributes.extend(
var category_location = _data["class"].match(/(cat(_id|egory)?)/); var category_location = _data["class"].match(/(cat(_id|egory)?)/);
if(category_location) category_location = category_location[0]; if(category_location) category_location = category_location[0];
// Get actual categories, eg. "cat_15" or "123,456,789", make sure to not match numbers inside other class-names cats = classes.match(this.cat_regexp) || [];
cats = classes.match(/(^| |,|cat_)([0-9]+)( |,|$)/g); classes = classes.replace(this.cat_regexp, '');
if (!cats) cats = [];
classes = classes.replace(/(^| |,|cat_)([0-9]+)( |,|$)/g, '');
// Get category info // Get category info
if(!this.categories) if(!this.categories)
@ -521,8 +532,7 @@ var et2_nextmatch_rowProvider = ClassWithAttributes.extend(
for(var i = 0; i < cats.length && this.categories; i++) for(var i = 0; i < cats.length && this.categories; i++)
{ {
// Need cat_, classes can't start with a number // Need cat_, classes can't start with a number
var cat_id = cats[i]; var cat_id = cats[i].replace(this.cat_cleanup, '');
cat_id = cat_id.replace(/[^0-9]/g, '');
var cat_class = 'cat_'+cat_id; var cat_class = 'cat_'+cat_id;
// Check for existing class // Check for existing class