Learn more  » 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/jet-theme-core   php

Repository URL to install this package:

Version: 1.2.1 

/ js / theme.js

(function( $, themeData ) {

	'use strict';

	var JetThemePage = {

		xhr: null,

		init: function() {

			var self = this;

			$( document )
				.on( 'click.JetThemePage', 'a[data-action="update-theme"]', self.updateTheme )
				.on( 'click.JetThemePage', 'button[data-action="install-child"]', self.installChild )
				.on( 'click.JetThemePage', '.jet-backup-delete', self.confirmDelete )
				.on( 'click.JetThemePage', 'button[data-action="activate-child"]', self.activateChild );

			$( window ).on( 'cx-switcher-change', self.updateBackupsSetting );

		},

		confirmDelete: function( event ) {

			event.preventDefault();

			var $this = $( this );

			if ( confirm( 'Are you sure you want to delete this file?' ) ) {
				window.location = $this.attr( 'href' );
			}

		},

		updateBackupsSetting: function( event ) {

			var controlName   = event.controlName,
				controlStatus = event.controlStatus;

			if ( 'jet_core_auto_backup' !== controlName ) {
				return;
			}

			if ( null !== JetThemePage.xhr ) {
				JetThemePage.xhr.abort();
			}

			JetThemePage.xhr = $.ajax({
				url: ajaxurl,
				type: 'post',
				dataType: 'json',
				data: {
					action: 'jet_core_update_backup_status',
					new_value: controlStatus,
				}
			}).done( function( response ) {
				JetThemePage.xhr = null;
			});

		},

		updateTheme: function( event ) {

			event.preventDefault();

			var $this = $( this );

			$this.html( themeData.updating );

			$.ajax({
				url: ajaxurl,
				type: 'post',
				dataType: 'json',
				data: {
					action: 'jet_core_update_theme'
				}
			}).done( function( response ) {

				if ( true === response.success ) {
					$( '.jet-theme__update-notice' ).remove();
					$( '.jet-theme__version-val' ).html( response.data.newVersion );
				} else {
					$this.replaceWith( themeData.failed );
					$( '.jet-theme__errors' ).html( response.data.errorMessage );
				}

				if ( response.data.backupsList ) {
					$( '.jet-backups-wrap' ).html( response.data.backupsList );
				}

			});

		},

		installChild: function( event ) {

			event.preventDefault();

			var $this = $( this );

			$this.html( themeData.installing );

			$.ajax({
				url: ajaxurl,
				type: 'post',
				dataType: 'json',
				data: {
					action: 'jet_core_install_child_theme'
				}
			}).done( function( response ) {

				if ( true === response.success ) {
					$this.html( themeData.activate );
					$this.data( 'action', 'activate-child' );
					$this.attr( 'data-action', 'activate-child' );
					$this.data( 'theme', response.data.theme );
					$( '.jet-child-theme__status span' ).html( themeData.installed );
				} else {
					$this.replaceWith( themeData.failed );
					$( '.jet-child-theme__errors' ).html( response.data.errorMessage );
				}

			});

		},

		activateChild: function( event ) {

			event.preventDefault();

			var $this = $( this );

			$this.html( themeData.activating );

			$.ajax({
				url: ajaxurl,
				type: 'post',
				dataType: 'json',
				data: {
					action: 'jet_core_activate_child_theme'
				}
			}).done( function( response ) {

				if ( true === response.success ) {
					$this.remove();
					$( '.jet-child-theme__status span' ).html( themeData.activated );
				} else {
					$this.replaceWith( themeData.failed );
					$( '.jet-child-theme__errors' ).html( response.data.errorMessage );
				}

			});
		}

	};

	JetThemePage.init();

})( jQuery, window.JetThemeData );