diff -r 192ce5938726 -r 02e3c464223f client/js/renderer/scene.js --- a/client/js/renderer/scene.js Thu Jun 23 17:50:37 2016 +0200 +++ b/client/js/renderer/scene.js Fri Jun 24 13:07:21 2016 +0200 @@ -1,7 +1,7 @@ define(['jquery', 'underscore', 'filesaver', 'requtils', 'renderer/miniframe', 'screenfull'], function ($, _, filesaver, requtils, MiniFrame, Screenfull) { 'use strict'; - + var Utils = requtils.getUtils(); /* Scene Begin */ @@ -240,37 +240,37 @@ this.$.find(".Rk-Users").mouseleave( function() { _this.$.find(".Rk-UserList").slideUp(); } ); - + if (Screenfull.enabled){ bindClick(".Rk-FullScreen-Button", "fullScreen"); - + document.addEventListener(Screenfull.raw.fullscreenchange, function () { //the listener occur too randomly and sometimes before the fullscreen is fully set up //so we add 500 delay setTimeout(function(){ var widthAft = _this.$.width(); var heightAft = _this.$.height(); - + if (_this.renkan.options.show_top_bar) { heightAft -= _this.$.find(".Rk-TopBar").height(); } if (_this.renkan.options.show_bins && (this.renkan.$.find(".Rk-Bins").position().left > 0)) { widthAft -= this.renkan.$.find(".Rk-Bins").width(); } - + paper.view.viewSize = new paper.Size([widthAft, heightAft]); _this.resize(_this.currentWidth, widthAft, _this.currentHeight, heightAft); - + _this.currentWidth = widthAft; _this.currentHeight = heightAft; - + if (!Screenfull.isFullscreen) { paper.view.onResize = function(_event) { var newWidth = _event.size._width, newHeight = _event.size._height; var prevHeight = newHeight - _event.delta.height, prevWidth = newWidth - _event.delta.width; - + _this.resize(prevWidth, newWidth, prevHeight, newHeight); }; } @@ -280,7 +280,7 @@ this.$.find(".Rk-FullScreen-Button").addClass("disabled"); this.$.find(".Rk-FullScreen-Button .Rk-TopBar-Tooltip-Contents").html(this.renkan.translate("Fullscreen not supported by your browser")); } - + bindClick(".Rk-AddNode-Button", "addNodeBtn"); bindClick(".Rk-AddEdge-Button", "addEdgeBtn"); bindClick(".Rk-Save-Button", "save"); @@ -309,7 +309,7 @@ newHeight = _event.size._height; var prevHeight = newHeight - _event.delta.height, prevWidth = newWidth - _event.delta.width; - + _this.resize(prevWidth, newWidth, prevHeight, newHeight); }); @@ -353,22 +353,22 @@ break; } }); - + this.renkan.project.on("loaded", function(){ if (_this.renkan.options.url_parameters){ - Backbone.history.start(); + Backbone.history.start(); } else { _this.fixSize(); } _this.redrawActive = true; _thRedraw(); }); - + //register router events this.renkan.router.on("router", function(_params){ _this.setViewparameters(_params); }); - + this.renkan.project.on("change:loadingStatus", function(){ if (_this.renkan.project.get("loadingStatus")){ var animate = _this.$.find(".loader").addClass("run"); @@ -836,13 +836,13 @@ }, resize: function(prevWidth, newWidth, prevHeight, newHeight){ var _ratio; - + if (this.minimap) { this.minimap.topleft = paper.view.bounds.bottomRight.subtract(this.minimap.size); this.minimap.rectangle.fitBounds(this.minimap.topleft.subtract([2,2]), this.minimap.size.add([4,4])); this.minimap.cliprectangle.fitBounds(this.minimap.topleft, this.minimap.size); } - + var ratioH = newHeight/prevHeight, ratioW = newWidth/prevWidth; if (newHeight < newWidth) { @@ -851,13 +851,14 @@ _ratio = ratioW; } this.view.resizeZoom(newWidth - prevWidth, newHeight - prevHeight, _ratio); - + this.redraw(); }, - addTempEdge: function(_from, _point) { + addTempEdge: function(_from, _point, _origin) { var _tmpEdge = this.addRepresentation("TempEdge",null); _tmpEdge.end_pos = _point; _tmpEdge.from_representation = _from; + _tmpEdge.origin = _origin; _tmpEdge.redraw(); this.click_target = _tmpEdge; }, @@ -926,7 +927,8 @@ position: { x: _coords.x, y: _coords.y - } + }, + origin: Utils.OriginEnum.NODE_BUTTON }; var _node = this.renkan.project.addNode(_data); this.getRepresentationByModel(_node).openEditor(); @@ -936,7 +938,7 @@ if (this.click_mode) { if (this.isEditable() && this.click_mode === Utils._CLICKMODE_STARTEDGE && this.click_target && this.click_target.type === "Node") { this.removeRepresentationsOfType("editor"); - this.addTempEdge(this.click_target, _point); + this.addTempEdge(this.click_target, _point, Utils.OriginEnum.EDGE_BUTTON_BAR); this.click_mode = Utils._CLICKMODE_ENDEDGE; this.notif_$.fadeOut(function() { $(this).html(this.renkan.translate("Click on a second node to complete the edge")).fadeIn(); @@ -1011,7 +1013,8 @@ position: { x: _coords.x, y: _coords.y - } + }, + origin: Utils.OriginEnum.NODE_DOUBLE_CLICK }, _node = this.renkan.project.addNode(_data); this.getRepresentationByModel(_node).openEditor(); @@ -1122,25 +1125,27 @@ var newNode = (typeof this.renkan.options.drop_handler === "undefined")?this.defaultDropHandler(_data):this.renkan.options.drop_handler(_data); var _off = this.canvas_$.offset(), - _point = new paper.Point([ - _event.pageX - _off.left, - _event.pageY - _off.top - ]), - _coords = this.toModelCoords(_point), - _nodedata = { - id: Utils.getUID('node'), - created_by: this.renkan.current_user, - uri: newNode.uri || "", - title: newNode.title || "", - description: newNode.description || "", - image: newNode.image || "", - color: newNode.color || undefined, - clip_path: newNode.clipPath || undefined, - position: { - x: _coords.x, - y: _coords.y - } - }; + _point = new paper.Point([ + _event.pageX - _off.left, + _event.pageY - _off.top + ]), + _coords = this.toModelCoords(_point), + _nodedata = { + id: Utils.getUID('node'), + created_by: this.renkan.current_user, + uri: newNode.uri || "", + title: newNode.title || "", + description: newNode.description || "", + image: newNode.image || "", + color: newNode.color || undefined, + clip_path: newNode.clipPath || undefined, + position: { + x: _coords.x, + y: _coords.y + }, + //TODO: Determine if it comes from bin or ext + origin: Utils.OriginEnum.NODE_DROP_EXT + }; var _node = this.renkan.project.addNode(_nodedata), _repr = this.getRepresentationByModel(_node); if (_event.type === "drop") { @@ -1150,7 +1155,7 @@ fullScreen: function() { this.currentWidth = this.$.width(); this.currentHeight = this.$.height(); - + var _el = this.renkan.$[0]; paper.view.off("resize"); Screenfull.toggle(_el);