diff --git a/js/View/ItemView.js b/js/View/ItemView.js index 0ba7da5..a8a751a 100644 --- a/js/View/ItemView.js +++ b/js/View/ItemView.js @@ -120,6 +120,13 @@ var ItemView = Backbone.View.extend({ }, this); }, + replaceItem: function(newItem) { + this.model = newItem; + + this.model.on('change', this.modelToView, this); + this.modelToView(); + }, + renderItem: function() { this.model.on('change', this.modelToView, this); diff --git a/js/View/SimulationView.js b/js/View/SimulationView.js index 736b134..8b5051a 100644 --- a/js/View/SimulationView.js +++ b/js/View/SimulationView.js @@ -248,11 +248,31 @@ var SimulationView = Backbone.View.extend({ var $currentItem = $('
'), $newItem = $(''), + $copy = $('') + .addClass('btn btn-info') + .append($('').addClass('icon-arrow-left icon-white')) + .append($('').html(' copy new to current')) + .on('click', _.bind(function(e) { + curItem.destroy(); + curItem = newItem.clone(); + + this.model.gearbag.add(curItem); + curItem.save(); + + curItemView.replaceItem(curItem); + + this.doItemCompare(itemslot); + }, this)), $tabpane = $('') .attr('id', tid) .data('itemslot', itemslot) - .append($currentItem) - .append($newItem), + .append($('') + .append($currentItem) + .append($newItem) + ) + .append($('') + .append($('').append($copy)) + ), $tabA = $('') .on('click', _.bind(function(e) { this.doItemCompare(itemslot); @@ -268,8 +288,10 @@ var SimulationView = Backbone.View.extend({ var curItem = this.model.getItemForSlot(itemslot, this.model.gearbag); var newItem = this.model.getItemForSlot(itemslot, this.model.new_gearbag); - (new ItemView({'el': $currentItem, 'model': curItem, 'title': 'Current Item'})).render(); - (new ItemView({'el': $newItem, 'model': newItem, 'title': 'New Item'})).render(); + var curItemView = new ItemView({'el': $currentItem, 'model': curItem, 'title': 'Current Item'}); + var newItemView = new ItemView({'el': $newItem, 'model': newItem, 'title': 'New Item'}); + curItemView.render(); + newItemView.render(); curItem.on('change', function() { this.doItemCompare(itemslot); }, this); newItem.on('change', function() { this.doItemCompare(itemslot); }, this);