From e489a945a47d8bb2ce2bf0e03c9640e940cd342f Mon Sep 17 00:00:00 2001 From: delza Date: Sat, 31 Dec 2011 11:51:08 -0800 Subject: [PATCH] updates to generalized type handling --- scripts/blocks.js | 14 ++++++++------ scripts/drag.js | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/scripts/blocks.js b/scripts/blocks.js index 2c0accea..976e6393 100644 --- a/scripts/blocks.js +++ b/scripts/blocks.js @@ -21,9 +21,7 @@ $.extend($.fn,{ return this.closest('.wrapper').long_name(); }, block_type: function(){ - if (this.is('.trigger')) return 'trigger'; - if (this.is('.value')) return this.data('type'); - return 'unknown'; + return this.data('type'); }, parent_block: function(){ var p = this.closest('.wrapper').parent(); @@ -133,9 +131,10 @@ function Block(options){ if (opts['type']){ block.addClass(opts['type']); wrapper.addClass('value').addClass(opts['type']); + wrapper.data('type', opts['type']); } if(opts.containers > 0){ - wrapper.addClass('containerBlock'); //This might not be necicary + wrapper.addClass('containerBlock'); //This might not be necessary } if(opts.containers > 1){ wrapper.data('subContainerLabels', opts['subContainerLabels']); @@ -154,10 +153,12 @@ function Block(options){ } if (opts.trigger){ wrapper.addClass('trigger'); + wrapper.data('type', 'trigger'); block.append(''); }else if(opts.flap){ block.append(''); wrapper.addClass('step'); + wrapper.data('type', 'step'); } wrapper.data('containers', opts.containers); @@ -250,8 +251,9 @@ function Label(value){ value = value.replace(/\[boolean\]/g, ''); value = value.replace(/(?:\[choice\:)(\w+)(?:\:)(\w+)(?:\])/g, choice_func); value = value.replace(/(?:\[choice\:)(\w+)(?:\])/g, choice_func); - value = value.replace(/\[(\w+):(-?\d*\.?.+)\]/g, ''); - value = value.replace(/\[(\w+)\]/g, ''); + // match selector [^\[\]:] should match any character except '[', ']', and ':' + value = value.replace(/\[([^\[\]\:]+):([^\[\]:]+)\]/g, ''); + value = value.replace(/\[([^\[\]:]+)\]/g, ''); return value; } diff --git a/scripts/drag.js b/scripts/drag.js index 3b0f5ddf..5c2e9b03 100644 --- a/scripts/drag.js +++ b/scripts/drag.js @@ -78,8 +78,10 @@ } function get_potential_drop_targets(){ + console.log('drag target: %s', drag_target.block_type()); switch(drag_target.block_type()){ case 'step': return step_targets(); + case 'container': return step_targets(); case 'number': return socket_targets2('any,number'); case 'array': return socket_targets2('any,array'); case 'object': return socket_targets2('any,object');