model cleanup for views
authorcavaliet
Mon, 28 Apr 2014 16:11:21 +0200
changeset 281 9ff388c9bc8d
parent 280 1be105c235c5
child 282 12ee99b182cd
model cleanup for views
client/js/models.js
client/js/paper-renderer.js
client/test/publish-test-min.html
client/test/publish-test.html
client/test/render-test.html
client/test/test-readonly-body.html
client/test/test-readonly-div-resize.html
client/test/test-readonly-div.html
client/test/test-writable-bins-div-100.html
client/test/test-writable-bins-div.html
client/test/test-writable-bins.html
client/test/test-writable-simple-div.html
client/test/test-writable-simple.html
--- a/client/js/models.js	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/js/models.js	Mon Apr 28 16:11:21 2014 +0200
@@ -1,7 +1,7 @@
 (function() {
     "use strict";
     var root = this;
-        
+    
     var Backbone = root.Backbone;
     
     var Models = root.Rkns.Models = {};
@@ -136,6 +136,18 @@
             };
         }
     });
+    
+    // View
+    var View = Models.View = RenkanModel.extend({
+        type: "view",
+        relations: [
+            {
+                type: Backbone.HasOne,
+                key: "created_by",
+                relatedModel: User
+            }
+        ],
+    });
         
     // PROJECT
     var Project = Models.Project = RenkanModel.extend({
@@ -167,6 +179,15 @@
                 key: 'project',
                 includeInJSON: '_id'
             }
+          },
+          {
+            type: Backbone.HasMany,
+            key: "views",
+            relatedModel: View,
+            reverseRelation: {
+                key: 'project',
+                includeInJSON: '_id'
+            }
           }
         ],
         addUser: function(_props, _options) {
@@ -187,6 +208,14 @@
             this.get("edges").push(_edge, _options);
             return _edge;
         },
+        addView: function(_props, _options) {
+            _props.project = this;
+            // TODO: check if need to replace with create only
+            var _view = View.findOrCreate(_props);
+            // TODO: Should we remember only one view?
+            this.get("views").push(_view, _options);
+            return _view;
+        },
         removeNode: function(_model) {
             this.get("nodes").remove(_model);
         },
--- a/client/js/paper-renderer.js	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/js/paper-renderer.js	Mon Apr 28 16:11:21 2014 +0200
@@ -2,7 +2,7 @@
 "use strict";
 
 (function(root) {
-
+	
     var Rkns = root.Rkns,
     _ = Rkns._,
     $ = Rkns.$;
@@ -1796,12 +1796,15 @@
         bindClick(".Rk-ZoomIn", "zoomIn");
         bindClick(".Rk-ZoomFit", "autoScale");
         this.$.find(".Rk-ZoomSave").click( function() {
-            _this.renkan.project.set("views", [{id:Rkns.Utils.getUID('view'), zoom_level:_this.scale, offset_x:_this.offset.x, offset_y:_this.offset.y}]); // Save scale
+        	// Save scale and offset point
+        	_this.renkan.project.addView( { id:Rkns.Utils.getUID('view'), zoom_level:_this.scale, offset_x:_this.offset.x, offset_y:_this.offset.y } );
             _this.$.find(".Rk-ZoomSetSaved").show();
         });
         this.$.find(".Rk-ZoomSetSaved").click( function() {
-            var view = _this.renkan.project.get("views")[0];
-            _this.setScale(view.zoom_level, new paper.Point(view.offset_x, view.offset_y));
+            var view = _this.renkan.project.get("views").last();
+            if(view){
+            	_this.setScale(view.get("zoom_level"), new paper.Point(view.get("offset_x"), view.get("offset_y")));
+            }
         });
         if(this.renkan.read_only && !isNaN(parseInt(this.renkan.options.default_view))){
             this.$.find(".Rk-ZoomSetSaved").show();
--- a/client/test/publish-test-min.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/publish-test-min.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     editor_mode: false,
                     show_bins: false,
                     static_url: "../"
--- a/client/test/publish-test.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/publish-test.html	Mon Apr 28 16:11:21 2014 +0200
@@ -19,9 +19,8 @@
         <script src="../js/full-json.js"></script>
         <script src="../js/paper-renderer.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     editor_mode: false,
                     show_bins: false,
                     zoom_on_scroll: false,
--- a/client/test/render-test.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/render-test.html	Mon Apr 28 16:11:21 2014 +0200
@@ -22,9 +22,8 @@
         <script src="../js/wikipedia-bin.js"></script>
         <script src="../js/paper-renderer.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     bins: [
                     	{
                             title: "Projet Lignes de Temps",
--- a/client/test/test-readonly-body.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-readonly-body.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     editor_mode: false,
                     show_bins: false,
                     static_url: "../"
--- a/client/test/test-readonly-div-resize.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-readonly-div-resize.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     editor_mode: false,
                     show_bins: false,
                     static_url: "../"
--- a/client/test/test-readonly-div.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-readonly-div.html	Mon Apr 28 16:11:21 2014 +0200
@@ -22,9 +22,8 @@
         <script src="../js/wikipedia-bin.js"></script>
         <script src="../js/paper-renderer.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     editor_mode: false,
                     show_bins: false,
                     static_url: "../",
--- a/client/test/test-writable-bins-div-100.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-writable-bins-div-100.html	Mon Apr 28 16:11:21 2014 +0200
@@ -23,9 +23,8 @@
         <script src="../js/wikipedia-bin.js"></script>
         <script src="../js/paper-renderer.js"></script>
 	    <script type="text/javascript">
-	        var _renkan;
 	        $(function() {
-				_renkan = new Rkns.Renkan({
+	        	var _renkan = new Rkns.Renkan({
 				    search: [
 				        {
 				            type: "Ldt"
--- a/client/test/test-writable-bins-div.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-writable-bins-div.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
 	    <script type="text/javascript">
-	        var _renkan;
 	        $(function() {
-				_renkan = new Rkns.Renkan({
+	        	var _renkan = new Rkns.Renkan({
 				    search: [
 				        {
 				            type: "Ldt"
--- a/client/test/test-writable-bins.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-writable-bins.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
     <script type="text/javascript">
-        var _renkan;
         $(function() {
-			_renkan = new Rkns.Renkan({
+        	var _renkan = new Rkns.Renkan({
 			    search: [
 			        {
 			            type: "Ldt"
--- a/client/test/test-writable-simple-div.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-writable-simple-div.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     /*property_files: [ "data/properties.json" ],
                     user_id: "u-iri",
                     language: "fr",
--- a/client/test/test-writable-simple.html	Sat Apr 26 21:28:54 2014 +0200
+++ b/client/test/test-writable-simple.html	Mon Apr 28 16:11:21 2014 +0200
@@ -14,9 +14,8 @@
         <script src="../lib/paper.js"></script>
         <script src="../../build/renkan.js"></script>
         <script type="text/javascript">
-            var _renkan;
             $(function() {
-                _renkan = new Rkns.Renkan({
+            	var _renkan = new Rkns.Renkan({
                     /*property_files: [ "data/properties.json" ],
                     user_id: "u-iri",
                     language: "fr",