Sha256: 312c720d0ee8cfd5e78b7ad196f3084c5c5e77f920894cdf914df716bc46774f

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

EasyGem.dynamic = {
  _alreadyLoaded: {},
  /**
   * Append Javascript <script> tag to page
   * @example
   * EasyGem.dynamic.jsTag("/plugin_assets/my_plugin/javascripts/counter.js");
   * EasyGem.schedule.require(function(counter){
   *   setInterval(counter.count(), 1000);
   * }, function(){
   *   return window.utils.counter;
   * })
   * @param {String} src - absolute path to requested file
   */
  jsTag: function (src) {
    if (this._alreadyLoaded[src]) return;
    this._alreadyLoaded[src] = true;
    var jsScript = document.createElement("script");
    jsScript.setAttribute("src", src);
    jsScript.setAttribute("defer", "true");
    document.head.appendChild(jsScript);
  },
  /**
   * Append CSS <link> tag to page
   * @param {String} src - absolute path to requested file
   */
  cssTag: function (src) {
    if (this._alreadyLoaded[src]) return;
    this._alreadyLoaded[src] = true;
    var link = document.createElement('link');
    link.rel = "stylesheet";
    link.type = "text/css";
    link.href = src;
    link.media = "all";
    document.head.appendChild(link);
  },
  /**
   * Load multiple JS files into page
   * @param {Array.<String>} array
   */
  jsTags: function (array) {
    for (var i = 0; i < array.length; i++) {
      this.jsTag(array[i]);
    }
  },
  /**
   * Load multiple CSS files into page
   * @param {Array.<String>} array
   */
  cssTags: function (array) {
    for (var i = 0; i < array.length; i++) {
      this.cssTag(array[i]);
    }
  }
};

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
redmine_extensions-0.2.10 app/assets/javascripts/redmine_extensions/dynamic_loading.js
redmine_extensions-0.2.9 app/assets/javascripts/redmine_extensions/dynamic_loading.js
redmine_extensions-0.2.8 app/assets/javascripts/redmine_extensions/dynamic_loading.js