From ce5f61e1af930690c3a817721dbb0f4d029114ca Mon Sep 17 00:00:00 2001 From: Jerry Jalava Date: Fri, 18 Jan 2008 14:29:43 +0200 Subject: [PATCH] Added handling for values --- js/widgets/includes/tags.js | 58 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/js/widgets/includes/tags.js b/js/widgets/includes/tags.js index 53045f3..be935af 100644 --- a/js/widgets/includes/tags.js +++ b/js/widgets/includes/tags.js @@ -474,9 +474,25 @@ } return element; } + + function gen_data_key(data) { + var dt = data.title; + if (dt.match(/:/)) { + var value_parts = dt.split(':'); + data.context = value_parts[0]; + dt = value_parts[1]; + } + if (dt.match(/\=/)) { + var value_parts = dt.split('='); + data.value = value_parts[1]; + dt = value_parts[0]; + } + data.title = dt; + + return (typeof data.id != 'undefined' ? data.id : '') + dt + (typeof data.context != 'undefined' ? data.context : '') + (typeof data.value != 'undefined' ? data.value : ''); + } - function can_add(data) - { + function can_add(data) { if (options.selection_limit > 0) { if (list_item.length == options.selection_limit) { return false; @@ -489,15 +505,32 @@ { return n.id == data.id; } else { - if (typeof data.context != 'undefined') { + if ( typeof data.context != 'undefined' + && ( typeof data.value == 'undefined' + || typeof data.value == '')) + { return (n.title == data.title) && (n.context == data.context) } + if ( typeof data.context == 'undefined' + && ( typeof data.value != 'undefined' + && typeof data.value != '')) + { + return (n.title == data.title) && (n.value == data.value) + } + if ( typeof data.context != 'undefined' + && ( typeof data.value != 'undefined' + && typeof data.value != '')) + { + return (n.title == data.title) && (n.context == data.context) && (n.value == data.value) + } + return n.title == data.title; } }); if (existing.length > 0) { - $('#tag_'+data.title, list).highlightFade(800, 'yellow'); + var key = gen_data_key(data); + $('#tag_'+key, list).highlightFade(800, 'yellow'); return false; } @@ -510,6 +543,8 @@ // console.log('data.id: '+data.id); // console.log('data.title: '+data.title); // console.log('data.color: '+data.color); + // console.log('data.context: '+data.context); + // console.log('data.value: '+data.value); if (! can_add(data)) { return false; @@ -522,13 +557,7 @@ var input_elem_name = "__tags_widget_selections";//" + data.title + "]"; - var dt = data.title; - if (data.title.match(/:/)) { - var value_parts = data.title.split(':'); - dt = value_parts[1]; - } - - var key = (data.id != '' ? data.id : '') + dt + (data.context != '' ? data.context : ''); + var key = gen_data_key(data); data.color = String(data.color).replace("#",""); @@ -627,8 +656,15 @@ { formatted += item.context + ':'; } + formatted += item.title; + if ( typeof item.value != 'undefined' + && item.value != '') + { + formatted += '=' + item.value; + } + return formatted; } -- 2.11.4.GIT