Sha256: 4dedac737ac5032bd4b60158ac483bab1886fc8b018f772cd58a7d782675e55b

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

// load module
// $.load(module_name, success_function)
// $.load(module_name, ajax_options)

(function($){
  
  var info = {};
  
  $.load = function(module, opts){
    opts = opts || {};
    
    if($.isFunction(opts)){
      opts = {
        success: opts
      };
    }
    
    if(typeof info[module] === 'undefined'){
      var defaults = {
        url: $.zff.config.load + '/' + module + '.js',
        dataType: 'script'
      };
      
      opts = $.extend(defaults, opts);
      
      var xhr = $.ajax(opts).success(function(){
        info[module].state = 200;
      }).error(function(){
        info[module].state = 500;
      });
      
      info[module] = {
        state: 202,
        xhr: xhr
      };
    }else{
      if(info[module].state === 200){
        if($.isFunction(opts.success)){
          opts.success();
        }
      }
      
      if(info[module].state === 202){
        $.each(['success', 'error', 'complete', 'statusCode'], function(i, type){
          if($.isFunction(opts[type])){
            info[module].xhr = info[module].xhr[type](opts[type]);
          }
        });
      }
    }
    return info[module].state;
  };
})($);

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
zfben_rails_assets-0.0.6 lib/zfben_rails_assets/assets/javascripts/zff/core/2_load.js
zfben_rails_assets-0.0.5 lib/zfben_rails_assets/assets/javascripts/zff/core/2_load.js
zfben_rails_assets-0.0.4 lib/zfben_rails_assets/assets/javascripts/zff/core/2_load.js
zfben_rails_assets-0.0.3 lib/zfben_rails_assets/assets/javascripts/zff/core/2_load.js