Browse Source

Add `disable` property to blocks

pull/2732/head
Artur Arseniev 7 years ago
parent
commit
09c4e3db77
  1. 29
      dist/grapes.js
  2. 6
      dist/grapes.min.js
  3. 2
      dist/grapes.min.js.map
  4. 2
      package-lock.json
  5. 2
      package.json
  6. 2
      src/block_manager/model/Block.js
  7. 12
      src/block_manager/view/BlockView.js

29
dist/grapes.js

@ -21551,7 +21551,7 @@ __webpack_require__.r(__webpack_exports__);
var config = this.config, var config = this.config,
em = this.em; //Right or middel click em = this.em; //Right or middel click
if (e.button !== 0 || !config.getSorter || this.el.draggable) return; if (e.button !== 0 || !config.getSorter || !this.el.draggable) return;
em.refreshCanvas(); em.refreshCanvas();
var sorter = config.getSorter(); var sorter = config.getSorter();
sorter.setDragHelper(this.el, e); sorter.setDragHelper(this.el, e);
@ -32862,32 +32862,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
/* harmony default export */ __webpack_exports__["default"] = (_Component__WEBPACK_IMPORTED_MODULE_1__["default"].extend({ /* harmony default export */ __webpack_exports__["default"] = (_Component__WEBPACK_IMPORTED_MODULE_1__["default"].extend({
defaults: _objectSpread({}, _Component__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.defaults, { defaults: _objectSpread({}, _Component__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.defaults, {
type: 'row',
tagName: 'tr', tagName: 'tr',
draggable: ['thead', 'tbody', 'tfoot'], draggable: ['thead', 'tbody', 'tfoot'],
droppable: ['th', 'td'] droppable: ['th', 'td']
}), })
initialize: function initialize(o, opt) {
_Component__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.initialize.apply(this, arguments); // Clean the row from non cell components
var cells = [];
var components = this.get('components');
components.each(function (model) {
return model.is('cell') && cells.push(model);
});
components.reset(cells);
}
}, { }, {
isComponent: function isComponent(el) { isComponent: function isComponent(el) {
var result = ''; return el.tagName == 'TR' && true;
if (el.tagName == 'TR') {
result = {
type: 'row'
};
}
return result;
} }
})); }));
@ -35819,7 +35800,7 @@ Object(utils_ColorPicker__WEBPACK_IMPORTED_MODULE_3__["default"])($);
inputEl.value = value; inputEl.value = value;
colorEl.get(0).style.backgroundColor = valueClr; // This prevents from adding multiple thumbs in spectrum colorEl.get(0).style.backgroundColor = valueClr; // This prevents from adding multiple thumbs in spectrum
if (opts.fromTarget) { if (opts.fromTarget || opts.fromInput && !opts.avoidStore) {
colorEl.spectrum('set', valueClr); colorEl.spectrum('set', valueClr);
this.noneColor = value == 'none'; this.noneColor = value == 'none';
} }
@ -38550,7 +38531,7 @@ var defaultConfig = {
editors: editors, editors: editors,
plugins: plugins, plugins: plugins,
// Will be replaced on build // Will be replaced on build
version: '0.16.8', version: '0.16.9',
/** /**
* Initialize the editor with passed options * Initialize the editor with passed options

6
dist/grapes.min.js

File diff suppressed because one or more lines are too long

2
dist/grapes.min.js.map

File diff suppressed because one or more lines are too long

2
package-lock.json

@ -1,6 +1,6 @@
{ {
"name": "grapesjs", "name": "grapesjs",
"version": "0.16.8", "version": "0.16.9",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

2
package.json

@ -1,7 +1,7 @@
{ {
"name": "grapesjs", "name": "grapesjs",
"description": "Free and Open Source Web Builder Framework", "description": "Free and Open Source Web Builder Framework",
"version": "0.16.8", "version": "0.16.9",
"author": "Artur Arseniev", "author": "Artur Arseniev",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"homepage": "http://grapesjs.com", "homepage": "http://grapesjs.com",

2
src/block_manager/model/Block.js

@ -11,6 +11,8 @@ export default Backbone.Model.extend({
resetId: 0, resetId: 0,
// Block label // Block label
label: '', label: '',
// Disable the drag of the block
disable: 0,
// HTML string for the media of the block, eg. SVG icon, image, etc. // HTML string for the media of the block, eg. SVG icon, image, etc.
media: '', media: '',
content: '', content: '',

12
src/block_manager/view/BlockView.js

@ -60,9 +60,11 @@ export default Backbone.View.extend({
* @private * @private
*/ */
startDrag(e) { startDrag(e) {
const { config, em } = this; const { config, em, model } = this;
const disable = model.get('disable');
//Right or middel click //Right or middel click
if (e.button !== 0 || !config.getSorter || this.el.draggable) return; if (e.button !== 0 || !config.getSorter || this.el.draggable || disable)
return;
em.refreshCanvas(); em.refreshCanvas();
const sorter = config.getSorter(); const sorter = config.getSorter();
sorter.setDragHelper(this.el, e); sorter.setDragHelper(this.el, e);
@ -138,18 +140,20 @@ export default Backbone.View.extend({
render() { render() {
const { em, el, ppfx, model } = this; const { em, el, ppfx, model } = this;
const disable = model.get('disable');
const className = `${ppfx}block`; const className = `${ppfx}block`;
const label = const label =
(em && em.t(`blockManager.labels.${model.id}`)) || model.get('label'); (em && em.t(`blockManager.labels.${model.id}`)) || model.get('label');
const render = model.get('render'); const render = model.get('render');
const media = model.get('media'); const media = model.get('media');
el.className += ` ${className} ${ppfx}one-bg ${ppfx}four-color-h`; const clsAdd = disable ? `${className}--disable` : `${ppfx}four-color-h`;
el.className = `${className} ${ppfx}one-bg ${clsAdd}`;
el.innerHTML = ` el.innerHTML = `
${media ? `<div class="${className}__media">${media}</div>` : ''} ${media ? `<div class="${className}__media">${media}</div>` : ''}
<div class="${className}-label">${label}</div> <div class="${className}-label">${label}</div>
`; `;
el.title = el.textContent.trim(); el.title = el.textContent.trim();
hasDnd(em) && el.setAttribute('draggable', true); el.setAttribute('draggable', hasDnd(em) && !disable ? true : false);
const result = render && render({ el, model, className, prefix: ppfx }); const result = render && render({ el, model, className, prefix: ppfx });
if (result) el.innerHTML = result; if (result) el.innerHTML = result;
return this; return this;

Loading…
Cancel
Save