HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/slfopp7cb1df/public_html/home/wp-content/themes/nanosoft/admin/js/sample-data.js
(function($) {
  "use strict";

  var methods = {
    t: function(text) {
      return typeof(this.i18n[text]) != 'undefined' ? this.i18n[text] : text;
    },

    containerClasses: function() {
      return {
        'sd-packages': true,
        'sd-clearfix': true,
        'sd-working': this.state.package != false
      }
    },

    packageClasses: function(p) {
      return {
        'sd-package': true,
        'sd-package-active': this.state.package == p
      }
    },

    taskClasses: function(t) {
      return {
        'sd-task': true,
        'sd-task-working': this.state.working == t.id,
        'sd-task-completed': this.completedTasks.indexOf(t.id) != -1
      }
    },

    start: function(p) {
      this.state.package = p;
      this.completedTasks = [];
      
      $.when(
        this.download()
          .then(this.import)
          .then(this.thumbnails)
      ).then(this.finish);
    },

    request: function(action, workingState, data, overriden) {
      var defaults = {
        method:   'post',
        dataType: 'json',
        
        data: $.extend(true, {
          'action': action
        }, data),

        beforeSend: (function(context) {
          context.state.working = workingState;
        })(this)
      };

      return $.ajax(
        this.ajaxUrl,
        $.extend(true, defaults, overriden)
      );
    },

    download: function() {
      return this
        .request('sd_download', 'download', {
          file: this.state.package.file
        })
        .then((function(response) {
          this.completedTasks.push('download');
        }).bind(this));
    },

    import: function() {
      return this
        .request('sd_import', 'import', {
          file: this.state.package.file
        })
        .then((function(response) {
          this.completedTasks.push('import');
        }).bind(this));
    },

    thumbnails: function() {
      return this
        .request('sd_thumbnails', 'thumbnails')
        .then((function(response) {
          this.completedTasks.push('thumbnails');
        }).bind(this));
    },

    finish: function() {
      $.ajax(this.ajaxUrl, {
        method: 'post',
        data: {
          action: 'sd_finish',
          package: this.state.package
        },
        dataType: 'json'
      }).then((function(response) {
        this.installedPackage = $.extend(true, {}, this.state.package);
        this.state.working = false;
        this.state.package = false;
      }).bind(this));
    }
  };

  var app = Vue.extend({
    el: '#sd-installer',
    template: '#tmpl-sd-installer',
    methods: methods
  });

  /**
   * Initialize the sample data installer
   */
  $(function() {
    new app({
      data: function() {
        return {
          ajaxUrl: ajaxurl,
          i18n: _sampleDataI18n,
          info: _sampleDataInfo,
          state: {
            working: false,
            package: false
          },
          responses: {},
          completedTasks: [],
          installedPackage: [],
          tasks: [{
            id: 'download',
            caption: 'Download sample data package'
          }, {
            id: 'import',
            caption: 'Import sample content'
          }, {
            id: 'thumbnails',
            caption: 'Regenerate attachment thumbnails'
          }]
        }
      }
    });
  });
})(jQuery);