From 190b19f3c269637ecfd84c58400d0f2bfdeb2af8 Mon Sep 17 00:00:00 2001 From: Tarek Khalil <45508821+khalilovcmded@users.noreply.github.com> Date: Tue, 5 Mar 2019 14:47:51 +0000 Subject: [PATCH] FEATURE: Add ignored user list to the User's preference page (#7107) * FEATURE: Add ignored user list to the User's preference page ## Why? Part of: https://meta.discourse.org/t/ability-to-ignore-a-user/110254 We want to add list of Ignored users under or along with the muted users preferences section. This way Users can find and update their list of ignored users. ## UI ![gif](https://user-images.githubusercontent.com/45508821/53746179-8e9b3c00-3e98-11e9-9e90-94b8520896a6.gif) ## Open questions Two of many options to represent a list of ignored users is that we can: 1. We can represent the ignored user list as a table with the ability to `un-ignore` but NOT to add new ignored users. 2. We can keep it functioning as the `muted user list` where you can `un-ignore` or `ignore` users. --- .../controllers/preferences/users.js.es6 | 16 ++++++++++ .../discourse/routes/app-route-map.js.es6 | 1 + .../discourse/routes/preferences-users.js.es6 | 5 ++++ .../discourse/templates/preferences.hbs | 5 ++++ .../templates/preferences/notifications.hbs | 9 ------ .../discourse/templates/preferences/users.hbs | 29 +++++++++++++++++++ app/serializers/user_serializer.rb | 5 ++++ config/locales/client.en.yml | 3 ++ config/routes.rb | 1 + config/site_settings.yml | 1 + .../javascripts/fixtures/user_fixtures.js.es6 | 1 + 11 files changed, 67 insertions(+), 9 deletions(-) create mode 100644 app/assets/javascripts/discourse/controllers/preferences/users.js.es6 create mode 100644 app/assets/javascripts/discourse/routes/preferences-users.js.es6 create mode 100644 app/assets/javascripts/discourse/templates/preferences/users.hbs diff --git a/app/assets/javascripts/discourse/controllers/preferences/users.js.es6 b/app/assets/javascripts/discourse/controllers/preferences/users.js.es6 new file mode 100644 index 0000000000..7ecb891f1f --- /dev/null +++ b/app/assets/javascripts/discourse/controllers/preferences/users.js.es6 @@ -0,0 +1,16 @@ +import PreferencesTabController from "discourse/mixins/preferences-tab-controller"; +import { popupAjaxError } from "discourse/lib/ajax-error"; + +export default Ember.Controller.extend(PreferencesTabController, { + saveAttrNames: ["muted_usernames", "ignored_usernames"], + + actions: { + save() { + this.set("saved", false); + return this.get("model") + .save(this.get("saveAttrNames")) + .then(() => this.set("saved", true)) + .catch(popupAjaxError); + } + } +}); diff --git a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 index 160a72938b..b9fc992d74 100644 --- a/app/assets/javascripts/discourse/routes/app-route-map.js.es6 +++ b/app/assets/javascripts/discourse/routes/app-route-map.js.es6 @@ -147,6 +147,7 @@ export default function() { this.route("emails"); this.route("notifications"); this.route("categories"); + this.route("users"); this.route("tags"); this.route("interface"); this.route("apps"); diff --git a/app/assets/javascripts/discourse/routes/preferences-users.js.es6 b/app/assets/javascripts/discourse/routes/preferences-users.js.es6 new file mode 100644 index 0000000000..713d79e420 --- /dev/null +++ b/app/assets/javascripts/discourse/routes/preferences-users.js.es6 @@ -0,0 +1,5 @@ +import RestrictedUserRoute from "discourse/routes/restricted-user"; + +export default RestrictedUserRoute.extend({ + showFooter: true +}); diff --git a/app/assets/javascripts/discourse/templates/preferences.hbs b/app/assets/javascripts/discourse/templates/preferences.hbs index e714afba84..82712f6026 100644 --- a/app/assets/javascripts/discourse/templates/preferences.hbs +++ b/app/assets/javascripts/discourse/templates/preferences.hbs @@ -25,6 +25,11 @@ {{i18n 'user.preferences_nav.categories'}} {{/link-to}} + {{#if siteSettings.tagging_enabled}}