server/src/main/webapp/static/js/main_test_models.js
changeset 58 87569ad0ff53
parent 57 01f66ed90e32
child 59 69924ca1b233
--- a/server/src/main/webapp/static/js/main_test_models.js	Wed Feb 13 13:41:19 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,306 +0,0 @@
-(function() {
-	
-	var root = this;
-		
-	var Backbone = root.Backbone;
-	
-	var Rkns = root.Rkns = {};
-
-	root.ModelView = Backbone.View.extend({
-		
-		events : {
-			"click .show_form" : "show_form",
-			"click .remove_button" : "remove_click",
-		},
-		
-		initialize: function(options) {
-			_.bindAll(this);
-			this.template = _.template(options.template);
-			this.model.bind("change", this.render);
-			this.form_view = options.form_view;
-			this.form_el = options.form_el;
-			if(typeof options.getJSON === "function") {
-				this.getJSON = options.getJSON;
-			}
-		},
-		render: function() {
-			$(this.el).html(this.template(this.getJSON()));
-			return this;
-		},
-		show_form: function(evt) {
-			if(typeof this.form_view !== "undefined") {
-				this.form_view.render();
-				$(this.form_el).empty();
-				$(this.form_el).append(this.form_view.el);
-			}
-		},
-		getJSON : function() {
-			return this.model.toJSON();			
-		},
-		remove_click : function(evt) {
-			var obj_id = $(evt.currentTarget).attr("value");
-			if(typeof this.model.collection !== "undefined") {
-				this.model.collection.remove(this.model);
-			}
-		},
-
-	});
-	
-	root.ColView = Backbone.View.extend({
-		initialize: function(options) {
-			
-			_.bindAll(this);
-			this.element = options.element;
-			this.element_form = options.element_form;
-			this.element_form_el = options.element_form_el;
-			this.rendered = false;
-			
-			var that = this;
-			this.element_views = [];
-			
-			var that = this;
-			this.collection.each(function(elt) { 
-				that.add(elt); 
-			});
-			
-			this.collection.bind('add', this.add);
-			this.collection.bind('remove', this.remove);
-		},
-		
-		render : function() {
-			this.rendered = true;
-			var that = this;
-			this.$el.empty();
-			_(this.element_views).each(function(dvs){
-				that.$el.append(dvs.disp.render().el);				
-			});
-			
-			return this;
-		},
-		
-		add : function(elt) {
-			
-			var fv_args = _.extend({}, this.element_form, {model: elt});			
-			var fv = new FormView(fv_args);
-			
-			var dv_args = _.extend({}, this.element, {model: elt, tagName: 'li', form_view: fv, form_el: this.element_form_el});			
-			var dv = new ModelView(dv_args);
-			
-			this.element_views.push({disp:dv, form:fv});
-			
-			if(this.rendered) {
-				this.$el.append(dv.render().el);
-			}
-		},
-			
-		
-		remove : function(elt) {
-			var viewsToRemove = _(this.element_views).select(function(cvs) { return cvs.disp.model === elt; })[0];
-			this.element_views = _(this.element_views).without(viewsToRemove);
-			
-			if(this.rendered) {
-				viewsToRemove.disp.$el.remove();
-				viewsToRemove.form.$el.remove();
-			}
-		},
-		
-		remove_click : function(evt) {
-			var obj_id = $(evt.currentTarget).attr("value");
-			this.collection.remove(this.collection.get(obj_id));
-		}
-		
-	});
-	
-	root.FormView = Backbone.View.extend({
-		events : {
-			"change .form_field": "changed"
-		},
-		initialize: function(options) {
-			_.bindAll(this);
-			this.template = _.template(options.template);
-			this.model.bind("change", this.render);
-			if(typeof options.getJSON === "function") {
-				this.getJSON = options.getJSON;
-			}
-		},
-		render: function() {
-			this.$el.html(this.template(this.getJSON()));
-			return this;
-		},
-		changed: function(evt) {
-			var value = $(evt.currentTarget).val();
-			var field_name = $(evt.currentTarget).attr("name");
-			if(this.model.get(field_name) != value) {
-				this.model.set(field_name, value);
-			}
-		},
-		getJSON : function() {
-			return this.model.toJSON(); 
-		}
-	});
-	
-	
-	root.SelectCurrentUserView = Backbone.View.extend({
-		initialize: function(options) {
-			_.bindAll(this);
-			this.rendered = false;
-			
-			this.child_view_constructor = options.child_view_constructor;
-			this.child_tag_name = options.child_tag_name;
-			
-			this.children_views = [];
-			this.collection.each(this.add);
-			
-			this.collection.bind('add', this.add);
-			this.collection.bind('remove', this.remove);
-		},
-		add: function(elt) {
-			var child_view = new this.child_view_constructor({
-				model: elt,
-				tagName : this.child_tag_name
-			});
-			this.children_views.push(child_view);
-			
-			if (this.rendered) {
-				this.$el.append(child_view.render().el);
-			}
-		},
-		remove: function(elt) {
-			var view_to_remove = _(this.children_views).select(function(cv) { return cv.model === elt; })[0];
-			this.children_views = _(this.children_views).without(view_to_remove);
-			if (this.rendered) {
-				view_to_remove.$el.remove();
-			}
-		},
-		render: function() {
-			this.rendered = true;
-			var that = this;
-			
-			this.$el.empty().html("<option value=\"\">Unknown</option>");
-			
-			_(this.children_views).each(function(cv){
-				that.$el.append(cv.render().el);
-			});
-			
-			return this;
-		}
-		
-	});
-	
-	root.SelectUserView = Backbone.View.extend({
-		initialize: function(options) {
-			_.bindAll(this);
-			this.model.bind("change", this.render);
-		},		
-		render: function() {
-			this.$el.val(this.model.id).text(this.model.get("title"));
-			return this;
-		}
-	});
-	
-	root.CurrentUserView = Backbone.View.extend({
-		initialize : function() {
-			this._select_view = new SelectCurrentUserView({
-				el : this.el,
-				collection : this.model.get("users"),
-				child_view_constructor: SelectUserView,
-				child_tag_name: "option",
-			});
-		},
-		render: function() {
-			this.$el.empty();
-			this._select_view.render();
-			return this;
-		}
-		
-	});
-	
-	
-	root.BasicListView = Backbone.View.extend({
-		
-		initialize: function(options) {
-			_.bindAll(this);
-			
-			this.element_view_constructor = options.element_view_constructor;
-			if(typeof options.template !== "undefined") {
-				this.template = _.template(options.template);
-			}
-			
-			this.rendered = false;
-			this.element_views = [];
-			this.collection.each(this.add);
-			
-			this.collection.bind('add', this.add);
-			this.collection.bind('remove', this.remove);
-			this.collection.bind('reset', this.reset);
-			this.collection.bind('destroy', this.destroy);
-		},
-	
-		render: function() {
-			this.rendered = true;
-			var that = this;
-			this.$el.empty();
-			if(typeof this.template !== "undefined") {
-				var data = {};
-				if(typeof this.model !== "undefined") {
-					data = this.$el.model.toJSON();
-				}
-				this.$el.html(this.template(data));
-			}
-			_(this.element_views).each(function(dvs){
-				that.$el.append(dvs.render().el);
-			});
-
-			return this;
-		},
-		
-		add: function(elt) {
-			var element_view = new this.element_view_constructor({model: elt});
-			this.element_views.push(element_view);
-			if(this.rendered) {
-				this.$el.append(element_view.render().el);
-			}
-		},
-		
-		remove: function(elt) {
-			var element_view = _(this.element_views).select(function(cv) {return cv.model === elt;})[0];
-			this.element_views = _(this.element_views).without(element_view);
-			if(this.rendered) {
-				element_view.$el.remove();
-			}
-			
-		},
-
-		reset: function() {
-			_(this.element_views).each(function(cv) {
-				cv.$el.remove();
-			});
-			this.element_views = [];
-			this.collection.each(this.add);	
-		}
-	
-	});
-	
-	
-	root.BasicModelView = Backbone.View.extend({
-				
-		initialize: function(options) {
-			_.bindAll(this);
-			if(typeof options.template !== "undefined") {
-				this.template = _.template(options.template);
-			}
-			if(typeof options.getJSON === "function") {
-				this.getJSON = options.getJSON;
-			}
-			this.model.bind("change", this.render);
-		},
-		render: function() {
-			$(this.el).html(this.template(this.getJSON()));
-			return this;
-		},
-		getJSON : function() {
-			return this.model.toJSON();			
-		}
-	});
-	
-}).call(this);