From 87f46d96e8c576c819dc96cde51d5b4a7aff7896 Mon Sep 17 00:00:00 2001 From: Olle Haerstedt Date: Wed, 12 Oct 2016 10:58:17 +0200 Subject: [PATCH] Dev: Fix regexp tab in condition designer --- .../includes/form_editconditions_header.php | 2 +- scripts/admin/conditions.js | 64 +++++++++---------- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/application/views/admin/conditions/includes/form_editconditions_header.php b/application/views/admin/conditions/includes/form_editconditions_header.php index 389c8646432..d4788ea0635 100644 --- a/application/views/admin/conditions/includes/form_editconditions_header.php +++ b/application/views/admin/conditions/includes/form_editconditions_header.php @@ -118,7 +118,7 @@ - diff --git a/scripts/admin/conditions.js b/scripts/admin/conditions.js index ab6293573c2..1dbe7313a19 100644 --- a/scripts/admin/conditions.js +++ b/scripts/admin/conditions.js @@ -161,23 +161,33 @@ function populateCanswersSelect(evt) { } } +/** + * When user selects method in "Comparison operator", we need to + * disable/enable regexp and activate the tab. + */ function selectTabFromOper() { var val = $('#method').val(); if(val == 'RX') { - $('#conditiontarget').bootTabs('enable', 4); - $('#conditiontarget').bootTabs('option','active', 4); - $('#conditiontarget').bootTabs('disable', 0); - $('#conditiontarget').bootTabs('disable', 1); - $('#conditiontarget').bootTabs('disable', 2); - $('#conditiontarget').bootTabs('disable', 3); + $('a[href="#CANSWERSTAB"]').parent().addClass('disabled'); + $('a[href="#CONST"]').parent().addClass('disabled'); + $('a[href="#PREVQUESTIONS"]').parent().addClass('disabled'); + $('a[href="#TOKENATTRS"]').parent().addClass('disabled'); + $('a[href="#REGEXP"]').parent().removeClass('disabled'); + $('a[href="#REGEXP"]').trigger('click'); } else { - $('#conditiontarget').bootTabs('enable', 0); - $('#conditiontarget').bootTabs('enable', 1); - $('#conditiontarget').bootTabs('enable', 2); - if (!isAnonymousSurvey) $('#conditiontarget').bootTabs('enable', 3); - $('#conditiontarget').bootTabs('option','active', 0); - $('#conditiontarget').bootTabs('disable', 4); + //if (!isAnonymousSurvey) $('#conditiontarget').bootTabs('enable', 3); + + $('a[href="#CANSWERSTAB"]').parent().removeClass('disabled'); + $('a[href="#CONST"]').parent().removeClass('disabled'); + $('a[href="#PREVQUESTIONS"]').parent().removeClass('disabled'); + $('a[href="#TOKENATTRS"]').parent().removeClass('disabled'); + $('a[href="#REGEXP"]').parent().addClass('disabled'); + + // If regexp tab is selected, trigger click on first tab instead + if ($('a[href="#REGEXP"]').parent().hasClass('active')) { + $('a[href="#CANSWERSTAB"]').trigger('click'); + } } } @@ -260,7 +270,7 @@ $(document).ready(function(){ ); // Select the condition target Tab depending on operator - //selectTabFromOper($('#method').val()); + //selectTabFromOper($('#method').val()); $('#method').change(selectTabFromOper); $('#cquestions').change(populateCanswersSelect); @@ -268,32 +278,12 @@ $(document).ready(function(){ $('#csrctoken').change(function() { $('#cqid').val(0); }); - - // At editing, a hidden field gives the Tab that should be selected - // Louis : that suppose to be a numerical input not a string !!! - //if ($('#editTargetTab').val() != '') { - //$('#conditiontarget').bootTabs('option','active', $('#editTargetTab').val()); - //} - - // At editing, a hidden field gives the Tab that should be selected - /* - if ($('#editSourceTab').val() != '') { - var val = $('#editSourceTab').val(); - - // Only two tabs: SRCPREVQUEST, SRCTOKENATTRS - var nr = (val === '#SRCPREVQUEST' ? 0 : 1); - $('#conditionsource').bootTabs('option','active', val); - $('#conditionsource').tabs({active: nr}); - } - */ // At editing, if cquestions is set, populate answers if ($('#cquestions').val() != '') { populateCanswersSelect(null); } - //$('#conditiontarget').bootTabs('option','active', 1); - $('.nav-tabs').click(function(e) { e.preventDefault(); $(this).tab('show'); @@ -317,6 +307,14 @@ $(document).ready(function(){ $('input[name="editTargetTab"]').val(href); }); + // Disable clicks on disabled tabs (regexp) + $(".nav-tabs a[data-toggle=tab]").on("click", function(e) { + if ($(this).parent().hasClass("disabled")) { + e.preventDefault(); + return false; + } + }); + }); /**