Skip to content

Commit f6a2806

Browse files
committed
Update component the resizer in SelectComponent
1 parent 1e9cb40 commit f6a2806

File tree

10 files changed

+80
-81
lines changed

10 files changed

+80
-81
lines changed

dist/css/grapes.min.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/commands/view/Resize.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ module.exports = {
2525
},
2626

2727
stop() {
28-
if(this.canvasResizer)
29-
this.canvasResizer.blur();
28+
const resizer = this.canvasResizer;
29+
resizer && resizer.blur();
3030
},
3131

3232
};

src/commands/view/SelectComponent.js

+18-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import {on, off} from 'utils/mixins'
1+
import {bindAll} from 'underscore';
2+
import {on, off} from 'utils/mixins';
23

34
const ToolbarView = require('dom_components/view/ToolbarView');
45
const Toolbar = require('dom_components/model/Toolbar');
@@ -10,12 +11,12 @@ const $ = Backbone.$;
1011
module.exports = {
1112

1213
init(o) {
13-
_.bindAll(this, 'onHover', 'onOut', 'onClick', 'onKeyPress');
14+
bindAll(this, 'onHover', 'onOut', 'onClick', 'onKeyPress',
15+
'copyComp', 'pasteComp', 'onFrameScroll');
1416
},
1517

1618

1719
enable() {
18-
_.bindAll(this, 'copyComp', 'pasteComp', 'onFrameScroll');
1920
this.frameOff = this.canvasOff = this.adjScroll = null;
2021
var config = this.config.em.get('Config');
2122
this.startSelectComponent();
@@ -25,7 +26,6 @@ module.exports = {
2526

2627
em.on('component:update', this.updateAttached, this);
2728
em.on('change:canvasOffset', this.updateAttached, this);
28-
em.on('change:selectedComponent', this.updateToolbar, this);
2929
},
3030

3131
/**
@@ -297,6 +297,7 @@ module.exports = {
297297
onSelect() {
298298
const editor = this.editor;
299299
const model = this.em.getSelected();
300+
this.updateToolbar(model);
300301

301302
if (model) {
302303
const el = model.view.el;
@@ -319,22 +320,28 @@ module.exports = {
319320
var editor = em ? em.get('Editor') : '';
320321
var config = em ? em.get('Config') : '';
321322
var pfx = config.stylePrefix || '';
322-
var attrName = 'data-' + pfx + 'handler';
323-
var resizeClass = pfx + 'resizing';
323+
var attrName = `data-${pfx}handler`;
324+
var resizeClass = `${pfx}resizing`;
324325
var model = em.get('selectedComponent');
325326
var resizable = model.get('resizable');
326327
var options = {};
327328
var modelToStyle;
328329

329330
var toggleBodyClass = (method, e, opts) => {
330-
opts.docs && opts.docs.find('body')[method](resizeClass);
331+
const docs = opts.docs;
332+
docs && docs.forEach(doc => {
333+
const body = doc.body;
334+
const cls = body.className || '';
335+
body.className = (method == 'add' ?
336+
`${cls} ${resizeClass}` : cls.replace(resizeClass, '')).trim();
337+
});
331338
};
332339

333340

334341
if (editor && resizable) {
335342
options = {
336343
onStart(e, opts) {
337-
toggleBodyClass('addClass', e, opts);
344+
toggleBodyClass('add', e, opts);
338345
modelToStyle = em.get('StyleManager').getModelToStyle(model);
339346
showOffsets = 0;
340347
},
@@ -343,7 +350,7 @@ module.exports = {
343350
editor.trigger('change:canvasOffset');
344351
},
345352
onEnd(e, opts) {
346-
toggleBodyClass('removeClass', e, opts);
353+
toggleBodyClass('remove', e, opts);
347354
editor.trigger('change:canvasOffset');
348355
showOffsets = 1;
349356
},
@@ -367,7 +374,8 @@ module.exports = {
367374
}
368375

369376
modelToStyle.setStyle(style, {avoidStore: 1});
370-
em.trigger('targetStyleUpdated');
377+
const updateEvent = `update:component:style`;
378+
em && em.trigger(`${updateEvent}:height ${updateEvent}:width`);
371379

372380
if (store) {
373381
modelToStyle.trigger('change:style', modelToStyle, style, {});

src/css_composer/index.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,8 @@ module.exports = () => {
7777
var elStyle = (c.em && c.em.config.style) || '';
7878
c.rules = elStyle || c.rules;
7979

80-
c.sm = c.em; // TODO Refactor
80+
c.sm = c.em;
8181
rules = new CssRules([], c);
82-
8382
rulesView = new CssRulesView({
8483
collection: rules,
8584
config: c,
@@ -182,7 +181,7 @@ module.exports = () => {
182181
opt.state = s;
183182
opt.mediaText = w;
184183
opt.selectors = '';
185-
rule = new CssRule(opt);
184+
rule = new CssRule(opt, c);
186185
rule.get('selectors').add(selectors);
187186
rules.add(rule);
188187
return rule;

src/css_composer/model/CssRule.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ module.exports = Backbone.Model.extend(Styleable).extend({
2525
stylable: true,
2626
},
2727

28-
initialize(c, opt) {
28+
initialize(c, opt = {}) {
2929
this.config = c || {};
30-
const em = opt && opt.sm;
30+
const em = opt.em;
3131
let selectors = this.config.selectors || [];
3232
this.em = em;
3333

src/css_composer/model/CssRules.js

+5-4
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ var CssRule = require('./CssRule');
44
module.exports = Backbone.Collection.extend({
55

66
initialize(models, opt) {
7-
87
// Inject editor
98
if(opt && opt.sm)
109
this.editor = opt.sm;
1110

12-
this.model = (attrs, options) => {
11+
// Not used
12+
this.model = (attrs, options) => {
1313
var model;
1414

1515
if(!options.sm && opt && opt.sm)
@@ -25,9 +25,10 @@ module.exports = Backbone.Collection.extend({
2525

2626
},
2727

28-
add(models, opt) {
29-
if(typeof models === 'string')
28+
add(models, opt = {}) {
29+
if (typeof models === 'string') {
3030
models = this.editor.get('Parser').parseCss(models);
31+
}
3132
return Backbone.Collection.prototype.add.apply(this, [models, opt]);
3233
},
3334

src/domain_abstract/model/Styleable.js

+4
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ export default {
3333
}
3434

3535
this.set('style', Object.assign({}, prop), opts);
36+
37+
for (let pr in prop) {
38+
this.trigger(`change:style:${pr}`);
39+
}
3640
},
3741

3842
/**

src/style_manager/view/PropertyView.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import {bindAll} from 'underscore';
2+
13
module.exports = Backbone.View.extend({
24

35
template(model) {
@@ -37,8 +39,10 @@ module.exports = Backbone.View.extend({
3739
},
3840

3941
initialize(o = {}) {
42+
bindAll(this, 'targetUpdated');
4043
this.config = o.config || {};
41-
this.em = this.config.em;
44+
const em = this.config.em;
45+
this.em = em;
4246
this.pfx = this.config.stylePrefix || '';
4347
this.ppfx = this.config.pStylePrefix || '';
4448
this.target = o.target || {};
@@ -57,6 +61,7 @@ module.exports = Backbone.View.extend({
5761
model.set('value', model.getDefaultValue());
5862
}
5963

64+
em && em.on(`update:component:style:${this.property}`, this.targetUpdated);
6065
this.listenTo(this.propTarget, 'update', this.targetUpdated);
6166
this.listenTo(model, 'destroy remove', this.remove);
6267
this.listenTo(model, 'change:value', this.modelValueChanged);

src/styles/scss/main.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -444,10 +444,10 @@
444444

445445
/********* Device Manager **********/
446446

447-
.#{$app-prefix}devices-c{
447+
.#{$app-prefix}devices-c {
448448
display: flex;
449449
align-items: center;
450-
padding: 4px;
450+
padding: 3px;
451451
/*
452452
padding: 10px 5px;
453453
border-bottom: 1px solid rgba(0, 0, 0, 0.2);

0 commit comments

Comments
 (0)