OwlCyberSecurity - MANAGER
Edit File: redux-tabbed.js
/*global redux*/ /** * Tabbed * Dependencies : jquery * Feature added by : Kevin Provance (kprovance) * Date : 09.18.2023 */ (function ( $ ) { 'use strict'; var reduxObject; redux.field_objects = redux.field_objects || {}; redux.field_objects.tabbed = redux.field_objects.tabbed || {}; redux.field_objects.tabbed.getOptName = function ( el ) { var optName; optName = el.parents().find( '.redux-ajax-security' ).data( 'opt-name' ); if ( undefined === optName ) { optName = el.parents( '.redux-container' ).data( 'opt-name' ); } if ( undefined === optName ) { return redux; } else { return redux.optName; } }; redux.field_objects.tabbed.init = function ( selector ) { selector = $.redux.getSelector( selector, 'tabbed' ); $( selector ).each( function () { var el = $( this ); var parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } reduxObject = redux.field_objects.tabbed.getOptName( el ); el.find( '.redux-tabbed' ).each( function () { var $this = el; var links = $this.find( '.redux-tabbed-nav a' ); var contents = $this.find( '.redux-tabbed-content' ); $.redux.initFields(); links.on( 'click', function ( e ) { e.preventDefault(); var link = $( this ); var index = link.index(); var content = contents.eq( index ); link.addClass( 'redux-tabbed-active' ).siblings().removeClass( 'redux-tabbed-active' ); content.removeClass( 'hidden' ).siblings().addClass( 'hidden' ); $.redux.initFields(); } ); } ); } ); }; redux.field_objects.tabbed.check_parents_dependencies = function ( id ) { var show = ''; if ( reduxObject.required_child.hasOwnProperty( id ) ) { $.each( reduxObject.required_child[id], function ( i, parentData ) { var parentValue; var value; var idx; var x; i = null; idx = $( '#' + reduxObject.args.opt_name + '-' + parentData.parent ); if ( idx.hasClass( 'hide' ) ) { show = false; return false; } else { if ( false !== show ) { value = idx.serializeForm(); if ( null !== value && 'object' === typeof value && value.hasOwnProperty( reduxObject.args.opt_name ) ) { if ( undefined === value[reduxObject.args.opt_name][parentData.parent] ) { x = Object.values( value[reduxObject.args.opt_name] )[0][parentData.parent]; } else { x = value[reduxObject.args.opt_name][parentData.parent]; } value = x; } if ( $( '#' + reduxObject.args.opt_name + '-' + id ).hasClass( 'redux-container-media' ) ) { value = value.url; } parentValue = value; show = $.redux.check_dependencies_visibility( parentValue, parentData ); return false; } } } ); } else { show = true; } return show; }; /* jshint -W117, -W098 */ /* jscs:disable disallowUnusedParams */ /* redux_hook( $.redux, 'required', function ( returnValue, originalFunction ) { var reduxObj; reduxObj = redux.field_objects.tabbed.getOptName( $( '.redux-container-tabbed' ) ); $.each( reduxObj.folds, function ( i, v ) { var fieldset; var div; var rawTable; fieldset = $( '[id^=' + reduxObj.args.opt_name + '-' + i + ']' ); if ( fieldset.find( '*' ).hasClass( 'in-tabbed' ) ) { fieldset.addClass( 'fold' ); fieldset.parents( '.redux-tab-field' ).addClass( 'fold' ); if ( 'hide' === v ) { fieldset.addClass( 'hide' ); fieldset.parents( '.redux-tab-field' ).addClass( 'hide' ); if ( fieldset.hasClass( 'redux-container-section' ) ) { div = $( '#section-' + i ); if ( div.hasClass( 'redux-section-indent-start' ) ) { $( '#section-table-' + i ).hide().addClass( 'hide' ); div.hide().addClass( 'hide' ); } } if ( fieldset.hasClass( 'redux-container-info' ) ) { $( '#info-' + i ).hide().addClass( 'hide' ); } if ( fieldset.hasClass( 'redux-container-divide' ) ) { $( '#divide-' + i ).hide().addClass( 'hide' ); } if ( fieldset.hasClass( 'redux-container-raw' ) ) { rawTable = fieldset.parents().find( 'table#' + redux.args.opt_name + '-' + i ); rawTable.hide().addClass( 'hide' ); } } } } ); } ); */ /* redux_hook( $.redux, 'required_recursive_hide', function ( returnValue, originalFunction, id ) { var div; var rawTable; var toFade; var theId; var reduxObj; reduxObj = redux.field_objects.tabbed.getOptName( $( '.redux-container-tabbed' ) ); id = id[0]; theId = $( '#' + reduxObj.args.opt_name + '-' + id ); if ( theId.find( '*' ).hasClass( 'in-tabbed' ) ) { toFade = theId.parents( '.redux-tab-field:first' ); if ( 0 === toFade ) { toFade = theId.parents( 'li:first' ); } toFade.fadeOut( 50, function () { $( this ).addClass( 'hide' ); //$( this ).prevUntil( '.redux-tab-field' ).addClass( 'hide' ); if ( theId.hasClass( 'redux-container-section' ) ) { div = $( '#section-' + id ); if ( div.hasClass( 'redux-section-indent-start' ) ) { $( '#section-table-' + id ).fadeOut( 50 ).addClass( 'hide' ); div.fadeOut( 50 ).addClass( 'hide' ); } } if ( theId.hasClass( 'redux-container-info' ) ) { $( '#info-' + id ).fadeOut( 50 ).addClass( 'hide' ); } if ( theId.hasClass( 'redux-container-divide' ) ) { $( '#divide-' + id ).fadeOut( 50 ).addClass( 'hide' ); } if ( theId.hasClass( 'redux-container-raw' ) ) { rawTable = $( '#' + reduxObj.args.opt_name + '-' + id ).parents().find( 'table#' + reduxObj.args.opt_name + '-' + id ); rawTable.fadeOut( 50 ).addClass( 'hide' ); } if ( reduxObject.required.hasOwnProperty( id ) ) { $.each( reduxObj.required[id], function ( child ) { $.redux.required_recursive_hide( child ); } ); } } ); } } ); */ /* redux_hook( $.redux, 'check_dependencies', function ( returnValue, originalFunction, variable ) { var current; var id; var container; var is_hidden; current = $( variable[0] ); if ( $( variable ).hasClass( 'in-tabbed' ) ) { current = $( variable[0] ); id = current.parents( '.redux-field:first' ).data( 'id' ); container = current.parents( '.redux-field-container:first' ); is_hidden = container.hasClass( 'hide' ); $.each( reduxObject.required[id], function ( child, dependents ) { var current; var show; var childFieldset; current = $( this ); show = false; childFieldset = $( '#' + reduxObject.args.opt_name + '-' + child ); if ( ! is_hidden ) { show = redux.field_objects.tabbed.check_parents_dependencies( child ); } if ( true === show ) { childFieldset.fadeIn( 300, function () { $( this ).removeClass( 'hide' ); //$( this ).prevUntil( 'fieldset' ).removeClass( 'hide' ); $( this ).parents( '.redux-tab-field' ).removeClass( 'hide' ); //console.log($( '#' + reduxObject.args.opt_name + '-' + child )); //console.log($( '#' + reduxObject.args.opt_name + '-' + child ).children().first()); if ( reduxObject.required.hasOwnProperty( child ) ) { $.redux.check_dependencies( $( '#' + reduxObject.args.opt_name + '-' + child ).children().first() ); } $.redux.initFields(); } ); } else { childFieldset.fadeOut( 100, function () { $( this ).addClass( 'hide' ); //$( this ).prevUntil( 'fieldset' ).addClass( 'hide' ); $( this ).parents( '.redux-tab-field' ).addClass( 'hide' ); if ( reduxObject.required.hasOwnProperty( child ) ) { $.redux.required_recursive_hide( child ); } } ); } current.find( 'select, radio, input[type=checkbox]' ).trigger( 'change' ); //console.log(variable) console.log(current.length); console.log(Array.isArray(current)); if( current.length > 1 ){ $.each( current, function(i,v){ console.log(v) //console.log(v.find( 'select, radio, input[type=checkbox]' )); } ); } else { console.log(current.find( 'select, radio, input[type=checkbox]' )); current.find( 'select, radio, input[type=checkbox]' ).trigger( 'change' ); } } ); } } ); */ })( jQuery );