mirror of
https://github.com/lubuntu-team/lubuntu.me.git
synced 2025-02-23 16:21:07 +00:00
58 lines
2.1 KiB
JavaScript
58 lines
2.1 KiB
JavaScript
/* global jQuery */
|
|
|
|
(function( $ ) {
|
|
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-multi-measurement', function ( e ) {
|
|
|
|
var valField = $( this ).find( 'input[type="hidden"][class="siteorigin-widget-input"]' );
|
|
var separator = valField.data( 'separator' );
|
|
var autoFillEnabled = valField.data( 'autofill' );
|
|
var values = valField.val() === '' ? [] : valField.val().split( separator );
|
|
var $valInputs = $( this ).find( '.sow-multi-measurement-input' );
|
|
var $inputContainers = $( this ).find( '.sow-multi-measurement-input-container' );
|
|
|
|
var updateValue = function ( $element ) {
|
|
var vals = valField.val() === '' ? [] : valField.val().split( separator );
|
|
var $unitInput = $element.find( '+ .sow-multi-measurement-select-unit' );
|
|
var index = $valInputs.index( $element );
|
|
vals[ index ] = $element.val() + ( $element.val() === '' ? '' : $unitInput.val() );
|
|
valField.val( vals.join( separator ) );
|
|
};
|
|
|
|
$valInputs.each( function ( index, element ) {
|
|
if ( values.length > index ) {
|
|
var valueResult = values[ index ].match( /(\d+\.?\d*)([a-z%]+)*/ );
|
|
if ( valueResult && valueResult.length ) {
|
|
var amount = valueResult[ 1 ];
|
|
var unit = valueResult[ 2 ];
|
|
$( element ).val( amount );
|
|
$( element ).find( '+ .sow-multi-measurement-select-unit' ).val( unit );
|
|
}
|
|
} else {
|
|
updateValue( $( element ) );
|
|
}
|
|
} );
|
|
|
|
$inputContainers.change( function ( event ) {
|
|
var $valInput = $( event.currentTarget ).find( '> .sow-multi-measurement-input' );
|
|
var doAutofill = autoFillEnabled;
|
|
if ( autoFillEnabled ) {
|
|
$valInputs.each( function ( index, element ) {
|
|
// Only want to autofill if it has been enabled and no other inputs have values.
|
|
if ( element !== $valInput.eq( 0 ) ) {
|
|
doAutofill = doAutofill && !( $( element ).val() );
|
|
}
|
|
} );
|
|
}
|
|
if ( doAutofill ) {
|
|
$valInputs.each( function( index, element ) {
|
|
$( element ).val( $valInput.val() );
|
|
updateValue( $( element ) );
|
|
} );
|
|
} else {
|
|
updateValue( $valInput );
|
|
}
|
|
} );
|
|
|
|
} );
|
|
})( jQuery );
|