Browse Source

Add `getEl` in Component

pull/758/head
Artur Arseniev 9 years ago
parent
commit
5d60914cae
  1. 3
      src/asset_manager/view/FileUploader.js
  2. 5
      src/canvas/index.js
  3. 9
      src/dom_components/model/Component.js
  4. 30
      src/utils/Droppable.js

3
src/asset_manager/view/FileUploader.js

@ -290,7 +290,8 @@ module.exports = Backbone.View.extend(
*/ */
/* /*
// Show local video files // Show local video files, http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/
var URL = window.URL || window.webkitURL
var file = this.files[0] var file = this.files[0]
var type = file.type var type = file.type
var videoNode = document.createElement('video'); var videoNode = document.createElement('video');

5
src/canvas/index.js

@ -1,4 +1,5 @@
import { on, off } from 'utils/mixins'; import { on, off } from 'utils/mixins';
import Droppable from 'utils/Droppable';
module.exports = () => { module.exports = () => {
var c = {}, var c = {},
@ -393,6 +394,10 @@ module.exports = () => {
return [this.getFrameEl().contentWindow, this.getElement()]; return [this.getFrameEl().contentWindow, this.getElement()];
}, },
postRender() {
this.droppable = new Droppable(c.em);
},
/** /**
* Returns wrapper element * Returns wrapper element
* @return {HTMLElement} * @return {HTMLElement}

9
src/dom_components/model/Component.js

@ -690,6 +690,15 @@ const Component = Backbone.Model.extend(Styleable).extend(
return attrs.id || this.ccid || this.cid; return attrs.id || this.ccid || this.cid;
}, },
/**
* Get the DOM element of the model. This works only of the
* model is alredy rendered
* @return {HTMLElement}
*/
getEl() {
return this.view && this.view.el;
},
/** /**
* Return script in string format, cleans 'function() {..' from scripts * Return script in string format, cleans 'function() {..' from scripts
* if it's a function * if it's a function

30
src/utils/Droppable.js

@ -1,13 +1,14 @@
import { on, off } from 'utils/mixins'; import { on, off } from 'utils/mixins';
import { bindAll } from 'underscore'; import { bindAll } from 'underscore';
export class Droppable { export default class Droppable {
constructor(em) { constructor(em) {
this.em = em; this.em = em;
this.el = this.em const el = em
.get('DomComponents') .get('DomComponents')
.getWrapper() .getWrapper()
.getEl(); .getEl();
this.el = el;
this.counter = 0; this.counter = 0;
bindAll( bindAll(
this, this,
@ -47,32 +48,29 @@ export class Droppable {
} }
handleDragEnter(ev) { handleDragEnter(ev) {
const em = this.em;
this.updateCounter(1); this.updateCounter(1);
if (this.over) return; if (this.over) return;
this.over = 1; this.over = 1;
console.log('IM IN'); console.log('IM IN');
var utils = this.em.get('Utils'); const utils = em.get('Utils');
var canvas = this.em.get('Canvas'); const canvas = em.get('Canvas');
this.sorter = new utils.Sorter({ this.sorter = new utils.Sorter({
em,
wmargin: 1,
nested: 1,
canvasRelative: 1,
direction: 'a',
container: canvas.getBody(), container: canvas.getBody(),
placer: canvas.getPlacerEl(), placer: canvas.getPlacerEl(),
eventMoving: 'mousemove dragover', eventMoving: 'mousemove dragover',
containerSel: '*', containerSel: '*',
itemSel: '*', itemSel: '*',
pfx: 'gjs-', pfx: 'gjs-',
onStart: () => { onStart: () => em.stopDefault(),
this.em.stopDefault(); onEndMove: () => em.runDefault(),
}, document: canvas.getFrameEl().contentDocument
onEndMove: () => {
this.em.runDefault();
},
document: canvas.getFrameEl().contentDocument,
direction: 'a',
wmargin: 1,
nested: 1,
em,
canvasRelative: 1
}); });
const content = this.getContentByData(ev.dataTransfer) || '<br>'; const content = this.getContentByData(ev.dataTransfer) || '<br>';
this.sorter.setDropContent(content); // should not be empty this.sorter.setDropContent(content); // should not be empty

Loading…
Cancel
Save