????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 18.116.26.90 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.se/wp-content/themes/x/framework/tco/js/dist/admin/ |
Upload File : |
// ============================================================================= // JS/ADMIN/COMMON.JS // ----------------------------------------------------------------------------- // Admin scripts. // ============================================================================= // ============================================================================= // TABLE OF CONTENTS // ----------------------------------------------------------------------------- // 01. Module Loader // 02. AJAX // 03. Confirm // 04. Notice // 05. Common Scripts // 06. Vendor // ============================================================================= // Module Loader // ============================================================================= window.tco = window.tco || {}; ( function() { var modules = {}; tco.addModule = function( handle, callback ) { addModuleData( handle, 'callback', callback ); } tco.addDataSource = function( data ) { if ( !data.modules ) return; for ( var handle in data.modules ) { addModuleData( handle, 'data', data.modules[handle] ); } } tco.debug = function() { return ( tcoCommon && tcoCommon.debug == '1' ); } tco.l18n = function( handle ) { return ( tcoCommon && tcoCommon.strings && tcoCommon.strings[handle] ) ? tcoCommon.strings[handle] : ''; } tco.logo = function() { return ( tcoCommon && tcoCommon.logo ) ? tcoCommon.logo : ''; } function addModuleData( handle, key, value ) { if ( ! modules[handle] ) { modules[handle] = {} } modules[handle][key] = value; } jQuery( function( $ ) { $( '[data-tco-module]' ).each( function() { var $this = $( this ); var handle = $this.data( 'tco-module' ); if ( modules[handle] && 'function' === typeof modules[handle]['callback'] ) { var targets = {}; $.extend( $this, setupMessaging( $this ) ); $this.find( '[data-tco-module-target]' ).each( function() { var $this = $( this ); targets[ $this.data( 'tco-module-target' ) ] = $this; } ); var data = modules[handle]['data'] || {}; modules[handle]['callback'].call( this, $this, targets, data ); } } ); } ); // // Module Messaging // function setupMessaging( $module ) { var $status = $module.find( '.tco-status-text' ); if ( ! $status.length ) return {}; var $processing = $module.find( '[data-tco-module-processor]' ); $processing = ( $processing.length ) ? $processing : $module; var $backStatus = $status.clone(); $status.after( $backStatus ); var messageDuration, removalTimer, showTimer, readyTimer; var transitionTime = 650; var statusPhase = true; var $activeStatus = $status; var $inactiveStatus = $backStatus; function nothing() { } var ready = true; var next = nothing; function invertStatusPhase() { statusPhase = ! statusPhase; $activeStatus = ( statusPhase ) ? $status : $backStatus; $inactiveStatus = ( !statusPhase ) ? $status : $backStatus; } function removeMessage( delay, after ) { if ( ! ready ) { next = function() { removeMessage( delay, after ); } return; } clearTimeout( messageDuration ); if ( ! delay || ! Number.isInteger( delay ) ) return removeNow( after ); messageDuration = setTimeout( function() { removeNow( after ); }, delay ); } function removeNow( after ) { $activeStatus.removeClass( 'tco-active' ); $inactiveStatus.html( '' ); clearTimeout( removalTimer ); removalTimer = setTimeout( function() { $processing.removeClass( 'tco-processing' ); if ( 'function' === typeof after ) { after(); } }, transitionTime ); } function showMessage( text, duration, after, $extra ) { if ( ! ready ) { next = function() { showMessage( text, duration, after, $extra ); } return; } clearTimeout( messageDuration ); clearTimeout( removalTimer ); // Prevent removals if ( $processing.hasClass( 'tco-processing' ) ) { $inactiveStatus.html( text ); if ( $extra && $extra.length ) $inactiveStatus.append( $extra ); $activeStatus.removeClass( 'tco-active' ); invertStatusPhase(); delayShow( duration, after ); } else { $activeStatus.html( text ); if ( $extra && $extra.length ) $activeStatus.append( $extra ); $processing.addClass( 'tco-processing' ); delayShow( duration, after ); } } function delayShow( duration, after ) { ready = false; clearTimeout( showTimer ); showTimer = setTimeout( function() { $activeStatus.addClass( 'tco-active' ); if ( duration && Number.isInteger( duration ) ) { removeMessage( duration, after ); } clearTimeout( readyTimer ); readyTimer = setTimeout( function() { ready = true; next(); next = nothing; }, transitionTime ); }, transitionTime ); } return { tcoShowMessage: showMessage, tcoRemoveMessage: removeMessage, tcoShowErrorMessage: function( text, message, after ) { showMessage( text, false, after, tco.makeErrorDelegate({ message: message } ) ); } } } } )(); // AJAX // ============================================================================= ( function( $ ) { window.tco.ajax = function( options ) { var done = ( 'function' === typeof options.done ) ? options.done : ( function() { } ); var fail = ( 'function' === typeof options.fail ) ? options.fail : ( function() { } ); delete options.done; delete options.fail; options._tco_nonce = tcoCommon._tco_nonce; wp.ajax.post( options ).done( done ).fail( function( response ) { if ( 'string' === typeof response ) { var matches = response.match( /{"success":\w*?,"data.*/ ); var recovery = {}; try { recovery = JSON.parse( matches[0] ); } catch ( e ) { } if ( recovery.data ) { if ( true === recovery.success ) { console.warn( 'TCO AJAX recovered from malformed success response: ', response ); done( recovery.data ); return; } if ( false === recovery.success ) { console.warn( 'TCO AJAX recovered from malformed error response: ', response ); fail( recovery.data ); return; } } } fail( response ); }); } } )( jQuery ); // Confirm // ============================================================================= ( function( $ ) { var markup = '<div class="tco-modal-outer"><div class="tco-modal-inner"><div class="tco-confirm"><div class="tco-confirm-text"></div><div class="tco-confirm-actions"></div></div></div></div>'; var defaults = { // Pass a function to execute a callback, or a string to navigate accept: null, decline: null, message: '', class: '', acceptBtn: tco.l18n( 'yep' ), declineBtn: tco.l18n( 'nope' ), acceptClass: '', declineClass: '', attach: true, detach: false, }; window.tco.confirm = function( opts ) { var options = $.extend( {}, defaults, opts ); // // Build Modal // var $modal = $( markup ); $modal.find( '.tco-confirm-text' ).html( options.message ); if ( options.class ) { $modal.find( '.tco-confirm' ).addClass( options.class ); } // // Add Accept Button // if ( options.acceptBtn && '' !== options.acceptBtn ) { var $accept = $( '<button class="tco-btn">' + options.acceptBtn + '</button>' ); if ( options.acceptClass ) { $accept.addClass( options.acceptClass ); } $modal.find( '.tco-confirm-actions' ).append( $accept ); $accept.click( function() { click.call( this, 'accept' ); } ); } // // Add Decline Button // if ( options.declineBtn && '' !== options.declineBtn ) { var $decline = $( '<button class="tco-btn">' + options.declineBtn + '</button>' ); if ( options.declineClass ) { $decline.addClass( options.declineClass ); } $modal.find( '.tco-confirm-actions' ).append( $decline ); $decline.click( function() { click.call( this, 'decline' ); } ); } // // Handle button clicks // function click( button ) { var handler = options[button]; if ( 'function' === typeof handler ) { handler(); } else { var destination = handler; var newTab = false; if ( 'object' === typeof destination && destination !== null ) { newTab = ( true === destination.newTab ) destination = destination.url || null; } if ( 'string' === typeof destination ) { if ( newTab ) { var tab = window.open( destination, '_blank'); if( tab ) { tab.focus(); } } else { window.location = destination; } } } remove(); } // // Attach Handler // function attach() { $('body').append( $modal ); setTimeout( function(){ $modal.addClass( 'tco-active' ); }, 0 ); } // // Remove Handler // function remove() { $modal.removeClass( 'tco-active' ); setTimeout( function(){ $modal[( options.detach ) ? 'detach' : 'remove'](); }, 650 ); } // // Attach to body? // if ( options.attach ) attach(); return $modal; } } )( jQuery ); // Notices // ============================================================================= ( function( $ ) { var markup = '<div class="tco-notice notice"><a class="tco-notice-logo" href="https://theme.co/" target="_blank">' + tco.logo() + '</a><p></p></div>'; var defaults = { message: '', dismissible: true }; window.tco.showNotice = function( opts ) { // Locate the insertion point var $wpWrap = $( '.wrap h1, .wrap h2' ).first(); // Abort if it doesn't exist if ( ! $wpWrap.length ) { console.warn( 'tco.showNotice requires the WordPress wrap div.' ); return; } // Allow direct string passing if ( 'string' === typeof opts ) { opts = { message: opts }; } // Parse options var options = $.extend( {}, defaults, opts ); // Build Notice var $notice = $( markup ); $notice.find('p').first().html( options.message ); // Conditionally allow dismissal if ( options.dismissible ) { $notice.addClass('is-dismissible'); // Add Dismissal logic from WordPress var $button = $( '<button type="button" class="notice-dismiss"><span class="screen-reader-text"></span></button>' ); $button.find( '.screen-reader-text' ).text( commonL10n.dismiss || '' ); $button.on( 'click.wp-dismiss-notice', function( e ) { e.preventDefault(); $notice.fadeTo( 100, 0, function() { $notice.slideUp( 100, function() { $notice.remove(); }); }); }); $notice.append( $button ); } // Add notice to page $notice.insertAfter( $wpWrap ); // Give caller access to the element return $notice; } } )( jQuery ); // Error Modal // ============================================================================= ( function( $ ) { var defaults = { details: tco.l18n( 'details' ), message: '', back: tco.l18n( 'back' ), backClass: '' }; window.tco.makeErrorDelegate = function( opts ) { var options = $.extend( {}, defaults, opts ); var $el = $( '<a> ' + options.details + '</a>' ); $el.click( function(){ tco.confirm( { message: options.message, acceptBtn: '', declineBtn: options.back, declineClass: options.backClass, class: 'tco-confirm-error' }); } ); return $el; } } )( jQuery ); // Common Scripts // ============================================================================= jQuery(document).ready(function($) { // // Hash links. // $('a[href="#"]').on('click', function(e) { e.preventDefault(); }); // // Toggles. // $('[data-tco-toggle]').on('click', function(e) { e.preventDefault(); var $this = $(this); var target = $this.data('tco-toggle'); $(target).toggleClass('tco-active'); }); // // Accordions. // $('.tco-accordion-toggle').click(function() { if ( $(this).hasClass('tco-active') ) { $(this).removeClass('tco-active').next().slideUp(); return; } $('.tco-accordion-panel').slideUp(); $(this).siblings().removeClass('tco-active'); $(this).addClass('tco-active').next().slideDown(); }); }); // Vendor // ============================================================================= // // https://github.com/sindresorhus/query-string // (function(){ var exports = {}; var strictUriEncode = function (str) { return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { return '%' + c.charCodeAt(0).toString(16).toUpperCase(); }); }; exports.extract = function (str) { return str.split('?')[1] || ''; }; exports.parse = function (str) { if (typeof str !== 'string') { return {}; } str = str.trim().replace(/^(\?|#|&)/, ''); if (!str) { return {}; } return str.split('&').reduce(function (ret, param) { var parts = param.replace(/\+/g, ' ').split('='); // Firefox (pre 40) decodes `%3D` to `=` // https://github.com/sindresorhus/query-string/pull/37 var key = parts.shift(); var val = parts.length > 0 ? parts.join('=') : undefined; key = decodeURIComponent(key); // missing `=` should be `null`: // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters val = val === undefined ? null : decodeURIComponent(val); if (!ret.hasOwnProperty(key)) { ret[key] = val; } else if (Array.isArray(ret[key])) { ret[key].push(val); } else { ret[key] = [ret[key], val]; } return ret; }, {}); }; exports.stringify = function (obj) { return obj ? Object.keys(obj).sort().map(function (key) { var val = obj[key]; if (val === undefined) { return ''; } if (val === null) { return key; } if (Array.isArray(val)) { return val.slice().sort().map(function (val2) { return strictUriEncode(key) + '=' + strictUriEncode(val2); }).join('&'); } return strictUriEncode(key) + '=' + strictUriEncode(val); }).filter(function (x) { return x.length > 0; }).join('&') : ''; }; window.tco.queryString = exports; })();