client/js/renderer/viewrepr.js
changeset 524 904effa4b6d7
parent 521 0d9b3f1b97e7
child 525 03aa989092bb
--- a/client/js/renderer/viewrepr.js	Tue Sep 15 17:09:42 2015 +0200
+++ b/client/js/renderer/viewrepr.js	Wed Sep 16 17:36:46 2015 +0200
@@ -46,12 +46,7 @@
                     "x": _this.offset.x,
                     "y": _this.offset.y
                 };
-                //TODO: make the if else the same function
-                if (_this.model && _this.renkan.project.get("views").indexOf(_this.model) > 0){
-                    _this.model.set( { zoom_level:_this.scale, offset:offset, hidden_nodes: _this.hiddenNodes.concat() } );
-                }else{
-                    _this.model = _this.renkan.project.addView( { zoom_level:_this.scale, offset:offset, hidden_nodes: _this.hiddenNodes.concat() } );
-                }
+                _this.model = _this.renkan.project.addView( { zoom_level:_this.scale, offset:offset, hidden_nodes: _this.hiddenNodes.concat() } );
                 _this.params = {
                         "zoom_level": _this.model.get("zoom_level"),
                         "offset": _this.model.get("offset"),
@@ -61,12 +56,19 @@
             });
             
             this.$.find(".Rk-ZoomSetSaved").click( function() {
+                _this.model = _this.renkan.project.get("views").at(_this.renkan.project.get("views").length -1);
+                _this.params = {
+                        "zoom_level": _this.model.get("zoom_level"),
+                        "offset": _this.model.get("offset"),
+                        "hidden_nodes": _this.model.get("hidden_nodes")
+                };
                 _this.setScale(_this.params.zoom_level, new paper.Point(_this.params.offset));
                 _this.showNodes(false);
                 if (_this.options.hide_nodes){
                     _this.hiddenNodes = (_this.params.hidden_nodes || []).concat();
                     _this.hideNodes();
                 }
+                _this.updateUrl();
             });
             
             this.$.find(".Rk-ShowHiddenNodes").mouseenter( function() {
@@ -89,7 +91,7 @@
         init: function(){
             var _this = this;
             _this.setScale(_this.params.zoom_level, new paper.Point(_this.params.offset));
-            _this.showNodes(false);
+            
             if (_this.options.hide_nodes){
                 _this.hiddenNodes = (_this.params.hidden_nodes || []).concat();
                 _this.hideNodes();
@@ -202,6 +204,9 @@
 
                 if (this.renkan.project.get("views").indexOf(this.model) > -1){
                     result.idView = this.renkan.project.get("views").indexOf(this.model);
+                    if (result.idView === this.renkan.project.get("views").length - 1){
+                        result.idView = -1;
+                    }
                 } else {
                     if (result.idView){
                         delete result.idView;
@@ -210,6 +215,10 @@
                 this.renkan.router.navigate("?" + decodeURIComponent($.param(result)), {trigger: false, replace: true});
             }
         },
+        destroy: function(_event) {
+            this._super("destroy");
+            this.showNodes(false);
+        }
     }).value();
 
     return ViewRepr;