From 87159bd9a03aae31434ce38e2d1560030a66a6b2 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Thu, 12 Feb 2015 15:18:17 +1030 Subject: [PATCH] Rename and delete discussion controls --- ember/app/controllers/discussion.js | 13 +++++++++++++ ember/app/templates/discussion.hbs | 2 +- ember/app/views/discussion.js | 16 ++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/ember/app/controllers/discussion.js b/ember/app/controllers/discussion.js index 616f855f7..42183059f 100644 --- a/ember/app/controllers/discussion.js +++ b/ember/app/controllers/discussion.js @@ -102,6 +102,19 @@ export default Ember.Controller.extend(Ember.Evented, UseComposerMixin, { postRemoved: function(post) { this.get('stream').removePost(post); + }, + + rename: function(title) { + var discussion = this.get('model'); + discussion.set('title', title); + discussion.save(); + }, + + delete: function() { + var controller = this; + this.get('model').destroyRecord().then(function() { + controller.transitionToRoute('index'); + }); } } }); diff --git a/ember/app/templates/discussion.hbs b/ember/app/templates/discussion.hbs index e8707e44e..903102561 100644 --- a/ember/app/templates/discussion.hbs +++ b/ember/app/templates/discussion.hbs @@ -1,6 +1,6 @@
-

{{model.title}}

+

{{model.title}}

diff --git a/ember/app/views/discussion.js b/ember/app/views/discussion.js index 446e22866..f3a3fd9d6 100644 --- a/ember/app/views/discussion.js +++ b/ember/app/views/discussion.js @@ -66,5 +66,21 @@ export default Ember.View.extend(HasItemLists, { view.get('streamContent').send('goToLast'); view.get('controller').send('reply'); }); + + this.addSeparatorItem(items); + + this.addActionItem(items, 'rename', 'Rename', 'pencil', 'discussion.canEdit', function() { + var discussion = view.get('controller.model'); + var title = prompt('Enter a new title for this discussion:', discussion.get('title')); + if (title) { + view.get('controller').send('rename', title); + } + }); + + this.addActionItem(items, 'delete', 'Delete', 'times', 'discussion.canDelete', function() { + if (confirm('Are you sure you want to delete this discussion?')) { + view.get('controller').send('delete'); + } + }); } });