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

## 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}}
+