From d7694b59008cc8ff967c8c925a58b7600f3fc7ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Fri, 4 Jan 2013 15:50:13 +0100 Subject: [PATCH] [*] BO: Improve form of catalog price rules #PSCFV-6099 --- .../specific_price_rule/helpers/form/form.tpl | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/specific_price_rule/helpers/form/form.tpl b/admin-dev/themes/default/template/controllers/specific_price_rule/helpers/form/form.tpl index 950339566..7d9c7a1fa 100755 --- a/admin-dev/themes/default/template/controllers/specific_price_rule/helpers/form/form.tpl +++ b/admin-dev/themes/default/template/controllers/specific_price_rule/helpers/form/form.tpl @@ -137,12 +137,14 @@ var current_id_condition_group = 0; var last_condition_group = 0; var conditions = new Array(); + function toggle_condition_group(id_condition_group) { $('.condition_group > table').css('border', 'none'); $('#condition_group_'+id_condition_group+' > table').css('border', '2px solid'); current_id_condition_group = id_condition_group; } + function add_condition(id_condition_group, type, value) { var id_condition = id_condition_group+'_'+type+'_'+value; @@ -155,12 +157,14 @@ function add_condition(id_condition_group, type, value) conditions[id_condition] = condition; return id_condition; } + function delete_condition(condition) { delete conditions[condition]; $('#'+condition).remove(); return false; } + function new_condition_group() { last_condition_group++; @@ -170,6 +174,14 @@ function new_condition_group() $('#condition_group_list').append(html); toggle_condition_group(last_condition_group); } + +function appendConditionToGroup(html) +{ + if ($('#condition_group_'+current_id_condition_group+' table tbody tr').length > 0) + $('#condition_group_'+current_id_condition_group+' table tbody').append('{l s='AND' js=1}'); + $('#condition_group_'+current_id_condition_group+' table tbody').append(html); +} + $(document).ready(function() { $('#leave_bprice_on').click(function() { if (this.checked) @@ -177,72 +189,94 @@ $(document).ready(function() { else $('#price').removeAttr('disabled'); }); + $('#specific_price_rule_form').live('submit', function(e) { var html = ''; for (i in conditions) html += ''; $('#conditions').append(html); }); + $('#id_feature').change(function() { $('.id_feature_value').hide(); $('#id_feature_'+$(this).val()).show(); }); + $('#id_attribute_group').change(function() { $('.id_attribute').hide(); $('#id_attribute_'+$(this).val()).show(); }); + $('#add_condition_category').click(function() { var id_condition = add_condition(current_id_condition_group, 'category', $('#id_category option:selected').val()); if (!id_condition) return false; + var html = '{l s='Category'}'+$('#id_category option:selected').html()+''; - $('#condition_group_'+current_id_condition_group+' table tbody').append(html); + appendConditionToGroup(html); + return false; }); + $('#add_condition_manufacturer').click(function() { var id_condition = add_condition(current_id_condition_group, 'manufacturer', $('#id_manufacturer option:selected').val()); if (!id_condition) return false; + var html = '{l s='Manufacturer'}'+$('#id_manufacturer option:selected').html()+''; - $('#condition_group_'+current_id_condition_group+' table tbody').append(html); + appendConditionToGroup(html); + return false; }); + $('#add_condition_supplier').click(function() { var id_condition = add_condition(current_id_condition_group, 'supplier', $('#id_supplier option:selected').val()); if (!id_condition) return false; + var html = '{l s='Supplier'}'+$('#id_supplier option:selected').html()+''; - $('#condition_group_'+current_id_condition_group+' table tbody').append(html); + appendConditionToGroup(html); + return false; }); + $('#add_condition_attribute').click(function() { var id_condition = add_condition(current_id_condition_group, 'attribute', $('#id_attribute_'+$('#id_attribute_group option:selected').val()+' option:selected').val()); if (!id_condition) return false; + var html = '{l s='Attribute'}'+$('#id_attribute_group option:selected').html()+': '+$('#id_attribute_'+$('#id_attribute_group option:selected').val()+' option:selected').html()+''; - $('#condition_group_'+current_id_condition_group+' table tbody').append(html); + appendConditionToGroup(html); + return false; }); + $('#add_condition_feature').click(function() { var id_condition = add_condition(current_id_condition_group, 'feature', $('#id_feature_'+$('#id_feature option:selected').val()+' option:selected').val()); if (!id_condition) return false; + var html = '{l s='Feature'}'+$('#id_feature option:selected').html()+': '+$('#id_feature_'+$('#id_feature option:selected').val()+' option:selected').html()+''; - $('#condition_group_'+current_id_condition_group+' table tbody').append(html); + appendConditionToGroup(html); + return false; }); + $('#add_condition_group').click(function() { new_condition_group(); return false; }); + $('.condition_group').live('click', function() { var id = this.id.split('_'); toggle_condition_group(id[2]); return false; }); + {if $conditions|@count == 0} new_condition_group(); {/if} + {foreach from=$conditions key='id_group_condition' item='condition_group'} new_condition_group(); {foreach from=$condition_group item='condition'}