| 1 |
( function( $ ) { |
| 2 |
'use strict'; |
| 3 |
$(document).ready(function () { |
| 4 |
$(".customize-control-betterdocs-multi-dimension").each(function() { |
| 5 |
let dimension_control = $(this).find('.betterdocs-dimension-control'); |
| 6 |
let dinput1 = $(this).find('.betterdocs-dimension-input-1'); |
| 7 |
let dinput2 = $(this).find('.betterdocs-dimension-input-2'); |
| 8 |
let dinput3 = $(this).find('.betterdocs-dimension-input-3'); |
| 9 |
let dinput4 = $(this).find('.betterdocs-dimension-input-4'); |
| 10 |
let dimension_result = { |
| 11 |
input1: dinput1.val(), |
| 12 |
input2: dinput2.val(), |
| 13 |
input3: dinput3.val(), |
| 14 |
input4: dinput4.val() |
| 15 |
}; |
| 16 |
|
| 17 |
dimension_control.val(JSON.stringify(dimension_result)).change(); |
| 18 |
|
| 19 |
// Disconnected button |
| 20 |
$( '.betterdocs-dimension-disconnected' ).on( 'click', function() { |
| 21 |
|
| 22 |
// Set up variables |
| 23 |
var elements = $(this).data( 'element-connect' ); |
| 24 |
|
| 25 |
// Add connected class |
| 26 |
$(this).parent().parent( '.betterdocs-dimension-fields' ).find( 'input' ).addClass( 'connected' ).removeClass( 'disconnected' ).attr( 'data-element-connect', elements ); |
| 27 |
|
| 28 |
// Add class |
| 29 |
$(this).parent( '.betterdocs-dimension-link' ).addClass( 'connected' ); |
| 30 |
|
| 31 |
}); |
| 32 |
|
| 33 |
// Connected button |
| 34 |
$( '.betterdocs-dimension-connected' ).on( 'click', function() { |
| 35 |
// Remove connected class |
| 36 |
$(this).parent().parent( '.betterdocs-dimension-fields' ).find( 'input' ).removeClass( 'connected' ).addClass( 'disconnected' ).attr( 'data-element-connect', '' ); |
| 37 |
|
| 38 |
// Remove class |
| 39 |
$(this).parent( '.betterdocs-dimension-link' ).removeClass( 'connected' ); |
| 40 |
|
| 41 |
} ); |
| 42 |
|
| 43 |
// Values connected inputs |
| 44 |
$(document).on( 'input', ".betterdocs-dimension-input.connected", function() { |
| 45 |
|
| 46 |
var dataElement = $(this).attr( 'data-element-connect' ); |
| 47 |
var currentFieldValue = $(this).val(); |
| 48 |
let dimension_control = $(this).parents('.customize-control-betterdocs-multi-dimension').find('.betterdocs-dimension-control'); |
| 49 |
let dimension_result = JSON.parse(dimension_control.val()); |
| 50 |
|
| 51 |
$(this).parent().parent('.betterdocs-dimension-fields').find('.connected[ data-element-connect="' + dataElement + '" ]').each(function(key, value) { |
| 52 |
$(this).val(currentFieldValue).change(); |
| 53 |
let eachDataInput = $(this).attr('data-input'); |
| 54 |
dimension_result[eachDataInput] = ( $(this).val() === undefined || $(this).val() === '' ) ? '0' : $(this).val(); |
| 55 |
dimension_control.val(JSON.stringify(dimension_result)).change(); |
| 56 |
}); |
| 57 |
}); |
| 58 |
|
| 59 |
$(document).on( 'input', ".betterdocs-dimension-input.disconnected", function() { |
| 60 |
let dimension_control = $(this).parents('.customize-control-betterdocs-multi-dimension').find('.betterdocs-dimension-control'); |
| 61 |
|
| 62 |
let dimension_result = JSON.parse(dimension_control.val()); |
| 63 |
let dataInput = $(this).attr('data-input'); |
| 64 |
dimension_result[dataInput] = ( $(this).val() === undefined || $(this).val() === '' ) ? '0' : $(this).val(); |
| 65 |
dimension_control.val(JSON.stringify(dimension_result)).change(); |
| 66 |
}); |
| 67 |
|
| 68 |
}); |
| 69 |
|
| 70 |
// Get the default values for Multidimensional Controllers |
| 71 |
var multiDimensional_controller_list = $(".customize-control-betterdocs-multi-dimension"); |
| 72 |
|
| 73 |
var default_values = {}; |
| 74 |
|
| 75 |
for( var controller of multiDimensional_controller_list ) { |
| 76 |
default_values[$(controller).attr('id')] = $(controller).children('input').val(); |
| 77 |
} |
| 78 |
|
| 79 |
// MultiDimension Reset Controller |
| 80 |
$('.betterdocs-customizer-reset.betterdocs-multi-dimension').on('click', function(e){ |
| 81 |
var current_default_values = default_values[$(this).parent().parent().attr('id')]; |
| 82 |
var input1 = JSON.parse( default_values[$(this).parent().parent().attr('id')] )['input1']; |
| 83 |
var input2 = JSON.parse( default_values[$(this).parent().parent().attr('id')] )['input2']; |
| 84 |
var input3 = JSON.parse( default_values[$(this).parent().parent().attr('id')] )['input3']; |
| 85 |
var input4 = JSON.parse( default_values[$(this).parent().parent().attr('id')] )['input4']; |
| 86 |
$(this).parent().next().next().val(current_default_values).change(); |
| 87 |
$(this).parent().next().next().next().find('.betterdocs-dimension-input-1').val(input1); |
| 88 |
$(this).parent().next().next().next().find('.betterdocs-dimension-input-2').val(input2); |
| 89 |
$(this).parent().next().next().next().find('.betterdocs-dimension-input-3').val(input3); |
| 90 |
$(this).parent().next().next().next().find('.betterdocs-dimension-input-4').val(input4); |
| 91 |
}); |
| 92 |
}); |
| 93 |
})(jQuery); |