Mini Shell

Direktori : /home/eymajans/public_html/deneme2.eymajans.com/panel/assets/assets/js/
Upload File :
Current File : /home/eymajans/public_html/deneme2.eymajans.com/panel/assets/assets/js/plugins.js

+function(){ 'use strict';
  
  var toggle = '[data-toggle="class"]';

  var ToggleClass = function() {};

  ToggleClass.prototype.toggle = function(e) {
    var $this = $(this);

    if ($this.is('.disabled, :disabled')) return;

    var target = $this.attr('data-target');
    var className = $this.attr('data-class');
    var isActive = $(target).hasClass(className);

    if (!isActive) {
      $(target).addClass(className);
      $this.attr('data-active', true);
    } else{
      $(target).removeClass(className);
      $this.attr('data-active', false);
    }

    if ($this.attr('self-toggle')) {
      var className = $this.attr('self-toggle');
      $this.toggleClass(className);
    }
  }

  $(document).on('click.app.toggleclass', toggle, ToggleClass.prototype.toggle);
}(jQuery);

var loader = loader || {};

+function($, $document, loader) { "use strict";
  var loaded = [],
  promise = false,
  deferred = $.Deferred();

  loader.load = function(srcs) {
    srcs = srcs || [];
    srcs = $.isArray(srcs) ? srcs : srcs.split(/\s+/);
    if (!promise) {
      promise = deferred.promise();
    }

    $.each(srcs, function(index, src){
      promise = promise.then(function() {
        return src.indexOf('.css') >=0 ? loadCss(src) : loadScript(src);
      });
    });

    deferred.resolve();
    return promise;
  }

  // load javascript files
  var loadScript = function(src) {
    if(loaded[src]) return loaded[src].promise();

    var deferred = $.Deferred();
    var script = $document.createElement('script');
    script.src = src;
    script.onload = function(e) {
      deferred.resolve(e);
      
    };

    script.onerror = function(e) {
      deferred.reject(e);
    };

    $document.body.appendChild(script);
    loaded[src] = deferred;
    return deferred.promise();
  };

  // load css files
  var loadCss = function(href) {
    if(loaded[href]) return loaded[href].promise();

    var deferred = $.Deferred();
    var style = $document.createElement('link');
    style.rel = 'stylesheet';
    style.type = 'text/css';
    style.href = href;
    style.onload = function(e) {
      deferred.resolve(e);
    };
    
    style.onerror = function(e) {
      deferred.reject(e);
    };
    
    $document.head.appendChild(style);
    loaded[href] = deferred;

    return deferred.promise();
  }

}(jQuery, document, loader);

+function($, LIBS) { 'use strict';
  $.fn.plugins = function(){

    var lists = this;

    lists.each(function() {
      var self = $(this);
      var options = {};
      var options = eval('[' + self.attr('data-options') + ']');
      if ($.isPlainObject(options[0])) {
        options[0] = $.extend({}, options[0]);
      }
      if(self.data('plugin') != '') {
        loader.load(LIBS[self.data('plugin')]).then( function(){
          // self refers to jQuery object
          self[self.attr('data-plugin')].apply(self, options);
        })
      }
    })

    return lists;
  }

}(jQuery, LIBS);