Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

jsarnowski / jsarnowski/cartflows-pro   php

Repository URL to install this package:

Version: 1.6.10 

/ assets / js / admin-menu-settings.js

( function ( $ ) {
	/**
	 * AJAX Request Queue
	 *
	 * - add()
	 * - remove()
	 * - run()
	 * - stop()
	 *
	 * @since 1.0.0
	 */
	var UaelAjaxQueue = ( function () {
		var requests = [];

		return {
			/**
			 * Add AJAX request
			 *
			 * @since 1.0.0
			 */
			add: function ( opt ) {
				requests.push( opt );
			},

			/**
			 * Remove AJAX request
			 *
			 * @since 1.0.0
			 */
			remove: function ( opt ) {
				if ( jQuery.inArray( opt, requests ) > -1 )
					requests.splice( $.inArray( opt, requests ), 1 );
			},

			/**
			 * Run / Process AJAX request
			 *
			 * @since 1.0.0
			 */
			run: function () {
				var self = this,
					oriSuc;

				if ( requests.length ) {
					oriSuc = requests[ 0 ].complete;

					requests[ 0 ].complete = function () {
						if ( typeof oriSuc === 'function' ) oriSuc();
						requests.shift();
						self.run.apply( self, [] );
					};

					jQuery.ajax( requests[ 0 ] );
				} else {
					self.tid = setTimeout( function () {
						self.run.apply( self, [] );
					}, 1000 );
				}
			},

			/**
			 * Stop AJAX request
			 *
			 * @since 1.0.0
			 */
			stop: function () {
				requests = [];
				clearTimeout( this.tid );
			},
		};
	} )();

	UaelAdmin = {
		init: function () {
			/**
			 * Run / Process AJAX request
			 */
			UaelAjaxQueue.run();
			this._knowledgebase();
			this._support();

			$( document ).on(
				'click',
				'.uael-activate-widget',
				UaelAdmin._activate_widget
			);
			$( document ).on(
				'click',
				'.uael-deactivate-widget',
				UaelAdmin._deactivate_widget
			);

			$( document ).on(
				'click',
				'.uael-activate-all',
				UaelAdmin._bulk_activate_widgets
			);
			$( document ).on(
				'click',
				'.uael-deactivate-all',
				UaelAdmin._bulk_deactivate_widgets
			);

			$( document ).on(
				'click',
				'#uael-gen-enable-beta-update',
				UaelAdmin._allow_beta_updates
			);

			/* White Label */
			$( document ).on(
				'change',
				'#uael-wl-enable-knowledgebase',
				UaelAdmin._knowledgebase
			);
			$( document ).on(
				'change',
				'#uael-wl-enable-support',
				UaelAdmin._support
			);
		},

		/**
		 * Activate All Widgets.
		 */
		_bulk_activate_widgets: function ( e ) {
			var button = $( this );

			var data = {
				action: 'uael_bulk_activate_widgets',
				nonce: uael.ajax_nonce,
			};

			if ( button.hasClass( 'updating-message' ) ) {
				return;
			}

			$( button ).addClass( 'updating-message' );

			UaelAjaxQueue.add( {
				url: ajaxurl,
				type: 'POST',
				data: data,
				success: function ( data ) {
					console.log( data );

					// Bulk add or remove classes to all modules.
					$( '.uael-widget-list' )
						.children( 'li' )
						.addClass( 'activate' )
						.removeClass( 'deactivate' );
					$( '.uael-widget-list' )
						.children( 'li' )
						.find( '.uael-activate-widget' )
						.addClass( 'uael-deactivate-widget' )
						.text( uael.deactivate )
						.removeClass( 'uael-activate-widget' );
					$( button ).removeClass( 'updating-message' );
				},
			} );
			e.preventDefault();
		},

		/**
		 * Deactivate All Widgets.
		 */
		_bulk_deactivate_widgets: function ( e ) {
			var button = $( this );

			var data = {
				action: 'uael_bulk_deactivate_widgets',
				nonce: uael.ajax_nonce,
			};

			if ( button.hasClass( 'updating-message' ) ) {
				return;
			}
			$( button ).addClass( 'updating-message' );

			UaelAjaxQueue.add( {
				url: ajaxurl,
				type: 'POST',
				data: data,
				success: function ( data ) {
					console.log( data );
					// Bulk add or remove classes to all modules.
					$( '.uael-widget-list' )
						.children( 'li' )
						.addClass( 'deactivate' )
						.removeClass( 'activate' );
					$( '.uael-widget-list' )
						.children( 'li' )
						.find( '.uael-deactivate-widget' )
						.addClass( 'uael-activate-widget' )
						.text( uael.activate )
						.removeClass( 'uael-deactivate-widget' );
					$( button ).removeClass( 'updating-message' );
				},
			} );
			e.preventDefault();
		},

		/**
		 * Activate Module.
		 */
		_activate_widget: function ( e ) {
			var button = $( this ),
				id = button.parents( 'li' ).attr( 'id' );

			var data = {
				module_id: id,
				action: 'uael_activate_widget',
				nonce: uael.ajax_nonce,
			};

			if ( button.hasClass( 'updating-message' ) ) {
				return;
			}

			$( button ).addClass( 'updating-message' );

			UaelAjaxQueue.add( {
				url: ajaxurl,
				type: 'POST',
				data: data,
				success: function ( data ) {
					// Add active class.
					$( '#' + id )
						.addClass( 'activate' )
						.removeClass( 'deactivate' );
					// Change button classes & text.
					$( '#' + id )
						.find( '.uael-activate-widget' )
						.addClass( 'uael-deactivate-widget' )
						.text( uael.deactivate )
						.removeClass( 'uael-activate-widget' )
						.removeClass( 'updating-message' );
				},
			} );

			e.preventDefault();
		},

		/**
		 * Deactivate Module.
		 */
		_deactivate_widget: function ( e ) {
			var button = $( this ),
				id = button.parents( 'li' ).attr( 'id' );
			var data = {
				module_id: id,
				action: 'uael_deactivate_widget',
				nonce: uael.ajax_nonce,
			};

			if ( button.hasClass( 'updating-message' ) ) {
				return;
			}

			$( button ).addClass( 'updating-message' );

			UaelAjaxQueue.add( {
				url: ajaxurl,
				type: 'POST',
				data: data,
				success: function ( data ) {
					// Remove active class.
					$( '#' + id )
						.addClass( 'deactivate' )
						.removeClass( 'activate' );

					// Change button classes & text.
					$( '#' + id )
						.find( '.uael-deactivate-widget' )
						.addClass( 'uael-activate-widget' )
						.text( uael.activate )
						.removeClass( 'uael-deactivate-widget' )
						.removeClass( 'updating-message' );
				},
			} );
			e.preventDefault();
		},

		/**
		 * Allow Beta Updates.
		 */
		_allow_beta_updates: function ( e ) {
			var $this = $( this );
			var allow_beta = $this.attr( 'data-value' );

			if ( 'disable' === allow_beta ) {
				allow_beta = 'enable';
			} else {
				allow_beta = 'disable';
			}

			$this.addClass( 'loading' );

			var data = {
				allow_beta: allow_beta,
				action: 'uael_allow_beta_updates',
				nonce: uael.ajax_nonce,
			};

			UaelAjaxQueue.add( {
				url: ajaxurl,
				type: 'POST',
				data: data,
				success: function ( data ) {
					window.location.href += '&message=saved';
				},
			} );
		},

		/**
		 * Knowledge Base.
		 */
		_knowledgebase: function () {
			if ( $( '#uael-wl-enable-knowledgebase' ).is( ':checked' ) ) {
				$( 'p.uael-knowledgebase-url' ).show();
			} else {
				$( 'p.uael-knowledgebase-url' ).hide();
			}
		},
		/**
		 * Support.
		 */
		_support: function () {
			if ( $( '#uael-wl-enable-support' ).is( ':checked' ) ) {
				$( 'p.uael-support-url' ).show();
			} else {
				$( 'p.uael-support-url' ).hide();
			}
		},
	};

	$( function () {
		UaelAdmin.init();
	} );
} )( jQuery );