more template work, more fun defaults
This commit is contained in:
parent
14a2f3f714
commit
97efc633de
|
@ -4,7 +4,7 @@ var <%= plural_object_name %>View = Backbone.View.extend({
|
||||||
},
|
},
|
||||||
template: JST['<%= plural_underscore_name %>/list'],
|
template: JST['<%= plural_underscore_name %>/list'],
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
_.bindAll(this, 'render', 'addOne', 'addAll', 'new');
|
_.bindAll(this, 'render', 'addOne', 'addAll', 'addNew');
|
||||||
|
|
||||||
this.collection.bind('refresh', this.addAll);
|
this.collection.bind('refresh', this.addAll);
|
||||||
|
|
||||||
|
@ -23,6 +23,9 @@ var <%= plural_object_name %>View = Backbone.View.extend({
|
||||||
this.collection.each(this.addOne);
|
this.collection.each(this.addOne);
|
||||||
},
|
},
|
||||||
addNew: function() {
|
addNew: function() {
|
||||||
|
var facility = new <%= object_name %>();
|
||||||
|
this.collection.add(facility);
|
||||||
|
|
||||||
|
this.addOne(facility);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -14,6 +14,9 @@ describe('<%= plural_object_name %>View', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should add a new model when new is clicked', function() {
|
it('should add a new model when new is clicked', function() {
|
||||||
|
view.$('button.new').trigger('click');
|
||||||
|
|
||||||
|
expect(view.$('.list')).toContain('.<%= underscore_name %>');
|
||||||
|
expect(collection.length).toEqual(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
var <%= object_name %>View = Backbone.View.extend({
|
var <%= object_name %>View = Backbone.View.extend({
|
||||||
events: {
|
events: {
|
||||||
'click button.save': 'save'
|
'click button.save': 'save',
|
||||||
|
'click button.destroy': 'destroy'
|
||||||
},
|
},
|
||||||
attributeFields: [],
|
attributeFields: [],
|
||||||
template: JST['<%= underscore_name %>s/view'],
|
template: JST['<%= underscore_name %>s/view'],
|
||||||
|
className: '<%= underscore_name %>',
|
||||||
initialize: function() {
|
initialize: function() {
|
||||||
_.bindAll(this, 'render', 'save');
|
_.bindAll(this, 'render', 'save', 'destroy');
|
||||||
|
|
||||||
this.model.bind('change', this.render);
|
this.model.bind('change', this.render);
|
||||||
},
|
},
|
||||||
|
@ -16,6 +18,11 @@ var <%= object_name %>View = Backbone.View.extend({
|
||||||
},
|
},
|
||||||
save: function() {
|
save: function() {
|
||||||
this.model.save(this.attributes());
|
this.model.save(this.attributes());
|
||||||
|
},
|
||||||
|
destroy: function() {
|
||||||
|
if (confirm("Are you sure?")) {
|
||||||
|
this.model.destroy();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<!-- your <%= object_name %>View template fields go here -->
|
<!-- your <%= object_name %>View template fields go here -->
|
||||||
<button />
|
<button class="save" /><button class="delete" />
|
||||||
|
|
|
@ -17,6 +17,7 @@ describe('<%= object_name %>View', function() {
|
||||||
describe('existing record', function() {
|
describe('existing record', function() {
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
model = new <%= object_name %>({id: 1});
|
model = new <%= object_name %>({id: 1});
|
||||||
|
setFixtures('<div id="container" />');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should render with an update button', function() {
|
it('should render with an update button', function() {
|
||||||
|
@ -25,5 +26,24 @@ describe('<%= object_name %>View', function() {
|
||||||
|
|
||||||
expect(view.$('button.save')).toHaveText('Update');
|
expect(view.$('button.save')).toHaveText('Update');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should destroy the model' function() {
|
||||||
|
spyOn(window, 'confirm').andReturn(true);
|
||||||
|
spyOn(model, 'destroy');
|
||||||
|
|
||||||
|
$('#facility').append(view.el);
|
||||||
|
view.$('button.delete').trigger('click');
|
||||||
|
|
||||||
|
expect(model.destroy).toHaveBeenCalled();
|
||||||
|
expect(window.confirm).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should remove the view when the model is destroyed', function() {
|
||||||
|
$('#container').append(view.render().el);
|
||||||
|
|
||||||
|
expect($('button.save')).toExist();
|
||||||
|
model.trigger('remove');
|
||||||
|
expect($('button.save')).not.toExist();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue