From 4a872823e75fe54f752eca12b14a35108b2e871c Mon Sep 17 00:00:00 2001 From: Penar Musaraj Date: Wed, 1 Aug 2018 17:41:27 -0400 Subject: [PATCH] Improvements to user drafts (#6226) * drafts in user profile: only show to user herself (not to admins), use avatar replying to (instead of topic OP), add keyboard shortcut for drafts, simplify display labels * use JSON when testing Draft.stream --- .../discourse/components/user-stream.js.es6 | 2 +- .../discourse/controllers/user.js.es6 | 6 ++-- .../discourse/lib/keyboard-shortcuts.js.es6 | 1 + .../discourse/models/user-draft.js.es6 | 8 ++---- .../modal/keyboard-shortcuts-help.hbs | 1 + app/controllers/drafts_controller.rb | 28 +++++++++---------- app/models/draft.rb | 4 ++- config/locales/client.en.yml | 6 ++-- config/locales/server.en.yml | 2 +- lib/guardian/user_guardian.rb | 4 --- spec/components/guardian_spec.rb | 18 ------------ spec/models/draft_spec.rb | 8 +++--- 12 files changed, 34 insertions(+), 54 deletions(-) diff --git a/app/assets/javascripts/discourse/components/user-stream.js.es6 b/app/assets/javascripts/discourse/components/user-stream.js.es6 index 7bd7ff01439..f28c2968494 100644 --- a/app/assets/javascripts/discourse/components/user-stream.js.es6 +++ b/app/assets/javascripts/discourse/components/user-stream.js.es6 @@ -89,7 +89,7 @@ export default Ember.Component.extend(LoadMore, { const stream = this.get("stream"); Draft.clear(draft.draft_key, draft.sequence) .then(() => { - stream.load(this.site); + stream.remove(draft); }) .catch(error => { popupAjaxError(error); diff --git a/app/assets/javascripts/discourse/controllers/user.js.es6 b/app/assets/javascripts/discourse/controllers/user.js.es6 index 06518682d28..96b2a333f23 100644 --- a/app/assets/javascripts/discourse/controllers/user.js.es6 +++ b/app/assets/javascripts/discourse/controllers/user.js.es6 @@ -62,9 +62,9 @@ export default Ember.Controller.extend(CanCheckEmails, { return viewingSelf || isAdmin; }, - @computed("viewingSelf", "currentUser.admin") - showDrafts(viewingSelf, isAdmin) { - return viewingSelf || isAdmin; + @computed("viewingSelf") + showDrafts(viewingSelf) { + return viewingSelf; }, @computed("viewingSelf", "currentUser.admin") diff --git a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 index d9bced4bd41..5e3907da2c9 100644 --- a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 +++ b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 @@ -31,6 +31,7 @@ const bindings = { "g b": { path: "/bookmarks" }, "g p": { path: "/my/activity" }, "g m": { path: "/my/messages" }, + "g d": { path: "/my/activity/drafts" }, home: { handler: "goToFirstPost", anonymous: true }, "command+up": { handler: "goToFirstPost", anonymous: true }, j: { handler: "selectDown", anonymous: true }, diff --git a/app/assets/javascripts/discourse/models/user-draft.js.es6 b/app/assets/javascripts/discourse/models/user-draft.js.es6 index 2f8d431eb73..5004457c773 100644 --- a/app/assets/javascripts/discourse/models/user-draft.js.es6 +++ b/app/assets/javascripts/discourse/models/user-draft.js.es6 @@ -31,17 +31,15 @@ export default RestModel.extend({ ); }, - @computed("draft_key", "post_number") - draftType(draftKey, postNumber) { + @computed("draft_key") + draftType(draftKey) { switch (draftKey) { case NEW_TOPIC_KEY: return I18n.t("drafts.new_topic"); case NEW_PRIVATE_MESSAGE_KEY: return I18n.t("drafts.new_private_message"); default: - return postNumber - ? I18n.t("drafts.post_reply", { postNumber }) - : I18n.t("drafts.topic_reply"); + return false; } } }); diff --git a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs index a7b6c0705b8..9d5ae70e07c 100644 --- a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs +++ b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs @@ -14,6 +14,7 @@ {{#if siteSettings.enable_personal_messages}}
  • {{{i18n 'keyboard_shortcuts_help.jump_to.messages'}}}
  • {{/if}} +
  • {{{i18n 'keyboard_shortcuts_help.jump_to.drafts'}}}
  • {{i18n 'keyboard_shortcuts_help.navigation.title'}}