--- 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);