Sha256: 413799ec921cd48821f4f92dac9609aaee6080293ba19209177520a7e5e9a5f3

Contents?: true

Size: 1.29 KB

Versions: 30

Compression:

Stored size: 1.29 KB

Contents

import Core from 'spotlight/core'

Core.BlockLimits = function(editor) {
  this.editor = editor;
};

Core.BlockLimits.prototype.enforceLimits = function(editor) {
  this.addEditorCallbacks(editor);
  this.checkGlobalBlockTypeLimit()();
};

Core.BlockLimits.prototype.addEditorCallbacks = function(editor) {
  SirTrevor.EventBus.on('block:create:new', this.checkBlockTypeLimitOnAdd());
  SirTrevor.EventBus.on('block:remove', this.checkGlobalBlockTypeLimit());
};

Core.BlockLimits.prototype.checkBlockTypeLimitOnAdd = function() {
  var editor = this.editor;

  return function(block) {
    var control = $(".st-block-controls__button[data-type='" + block.type + "']", editor.blockControls.el);

    control.prop("disabled", !editor.blockManager.canCreateBlock(block.class()));
  };
};

Core.BlockLimits.prototype.checkGlobalBlockTypeLimit = function() {
  // we don't know what type of block was created or removed.. So, try them all.
  var editor = this.editor;

  return function() {
    $.each(editor.blockManager.blockTypes, function(i, type) {
      var block_type = SirTrevor.Blocks[type].prototype;

      var control = $(editor.blockControls.el).find(".st-block-controls__button[data-type='" + block_type.type + "']");
      control.prop("disabled", !editor.blockManager.canCreateBlock(type));
    });
  };
};

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
blacklight-spotlight-5.0.0.pre.alpha3 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-5.0.0.pre.alpha2 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-5.0.0.pre.alpha1 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.7.1 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.7.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.6.1 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.6.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.5.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.4.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.6 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.5 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.4 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.3 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.2 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.1 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.3.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.2.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.1.2 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.1.1 app/javascript/spotlight/admin/sir-trevor/block_limits.js
blacklight-spotlight-4.1.0 app/javascript/spotlight/admin/sir-trevor/block_limits.js