From 6a5361d853eccda55eadb56ec249236cd4ab164e Mon Sep 17 00:00:00 2001
From: Tushar Nain <100490977+tusharnain4578@users.noreply.github.com>
Date: Sat, 16 Sep 2023 14:00:08 +0530
Subject: [PATCH 1/3] Fixed : Comment notification settings are visible even if
comments are disabled
Added a UX condition to display comment notification settings, only if the user has enabled the comment notifications.
---
.../users/preferences/notifications.blade.php | 30 ++++++++++---------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/resources/views/users/preferences/notifications.blade.php b/resources/views/users/preferences/notifications.blade.php
index ae89c087e..9817aac4d 100644
--- a/resources/views/users/preferences/notifications.blade.php
+++ b/resources/views/users/preferences/notifications.blade.php
@@ -20,20 +20,22 @@
'label' => trans('preferences.notifications_opt_own_page_changes'),
])
-
- @include('form.toggle-switch', [
- 'name' => 'preferences[own-page-comments]',
- 'value' => $preferences->notifyOnOwnPageComments(),
- 'label' => trans('preferences.notifications_opt_own_page_comments'),
- ])
-
-
- @include('form.toggle-switch', [
- 'name' => 'preferences[comment-replies]',
- 'value' => $preferences->notifyOnCommentReplies(),
- 'label' => trans('preferences.notifications_opt_comment_replies'),
- ])
-
+ @if (!setting('app-disable-comments'))
+
+ @include('form.toggle-switch', [
+ 'name' => 'preferences[own-page-comments]',
+ 'value' => $preferences->notifyOnOwnPageComments(),
+ 'label' => trans('preferences.notifications_opt_own_page_comments'),
+ ])
+
+
+ @include('form.toggle-switch', [
+ 'name' => 'preferences[comment-replies]',
+ 'value' => $preferences->notifyOnCommentReplies(),
+ 'label' => trans('preferences.notifications_opt_comment_replies'),
+ ])
+
+ @endif
From baa957d98049380ff2278f222600852f70b79712 Mon Sep 17 00:00:00 2001
From: Tushar Nain <100490977+tusharnain4578@users.noreply.github.com>
Date: Sun, 17 Sep 2023 23:31:01 +0530
Subject: [PATCH 2/3] Update UserPreferencesTest.php
Added Testcases for preferences menu of Comment Notifications visibility when comments are enabled/disabled.
---
tests/User/UserPreferencesTest.php | 31 ++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/tests/User/UserPreferencesTest.php b/tests/User/UserPreferencesTest.php
index f5dae3e76..30e7bb540 100644
--- a/tests/User/UserPreferencesTest.php
+++ b/tests/User/UserPreferencesTest.php
@@ -318,4 +318,35 @@ class UserPreferencesTest extends TestCase
$resp = $this->get($page->getUrl('/edit'));
$resp->assertSee('option:code-editor:favourites="javascript,ruby"', false);
}
+
+ public function test_comment_notifications_hidden_when_comments_disabled()
+ {
+ $editor = $this->users->editor();
+
+
+ setting()->putUser($editor, 'app-disable-comments', true);
+
+ $settingLabel1 = trans('preferences.notifications_opt_own_page_comments');
+ $settingLabel2 = trans('preferences.notifications_opt_comment_replies');
+
+ $resp = $this->actingAs($editor)->get('/preferences/notifications');
+
+ $resp->assertDontSee($settingLabel1, true);
+ $resp->assertDontSee($settingLabel2, true);
+ }
+
+ public function test_comment_notifications_visible_when_comments_enabled()
+ {
+ $editor = $this->users->editor();
+
+ setting()->putUser($editor, 'app-disable-comments', false);
+
+ $settingLabel1 = trans('preferences.notifications_opt_own_page_comments');
+ $settingLabel2 = trans('preferences.notifications_opt_comment_replies');
+
+ $resp = $this->actingAs($editor)->get('/preferences/notifications');
+
+ $resp->assertSee($settingLabel1, true);
+ $resp->assertSee($settingLabel2, true);
+ }
}
From c42cd29ed3e2fe1eca4c89e679197b76db699e03 Mon Sep 17 00:00:00 2001
From: Dan Brown
Date: Sun, 17 Sep 2023 22:26:51 +0100
Subject: [PATCH 3/3] Notifications: Updated comment notif. prefs. test
Combined testcases, updated to use actual text strings, and set comments
setting via correct method.
Made during review of #4552
---
tests/User/UserPreferencesTest.php | 44 +++++++++---------------------
1 file changed, 13 insertions(+), 31 deletions(-)
diff --git a/tests/User/UserPreferencesTest.php b/tests/User/UserPreferencesTest.php
index 30e7bb540..4a6cba7b3 100644
--- a/tests/User/UserPreferencesTest.php
+++ b/tests/User/UserPreferencesTest.php
@@ -156,6 +156,19 @@ class UserPreferencesTest extends TestCase
$this->assertPermissionError($resp);
}
+ public function test_notification_comment_options_only_exist_if_comments_active()
+ {
+ $resp = $this->asEditor()->get('/preferences/notifications');
+ $resp->assertSee('Notify upon comments');
+ $resp->assertSee('Notify upon replies');
+
+ setting()->put('app-disable-comments', true);
+
+ $resp = $this->get('/preferences/notifications');
+ $resp->assertDontSee('Notify upon comments');
+ $resp->assertDontSee('Notify upon replies');
+ }
+
public function test_update_sort_preference()
{
$editor = $this->users->editor();
@@ -318,35 +331,4 @@ class UserPreferencesTest extends TestCase
$resp = $this->get($page->getUrl('/edit'));
$resp->assertSee('option:code-editor:favourites="javascript,ruby"', false);
}
-
- public function test_comment_notifications_hidden_when_comments_disabled()
- {
- $editor = $this->users->editor();
-
-
- setting()->putUser($editor, 'app-disable-comments', true);
-
- $settingLabel1 = trans('preferences.notifications_opt_own_page_comments');
- $settingLabel2 = trans('preferences.notifications_opt_comment_replies');
-
- $resp = $this->actingAs($editor)->get('/preferences/notifications');
-
- $resp->assertDontSee($settingLabel1, true);
- $resp->assertDontSee($settingLabel2, true);
- }
-
- public function test_comment_notifications_visible_when_comments_enabled()
- {
- $editor = $this->users->editor();
-
- setting()->putUser($editor, 'app-disable-comments', false);
-
- $settingLabel1 = trans('preferences.notifications_opt_own_page_comments');
- $settingLabel2 = trans('preferences.notifications_opt_comment_replies');
-
- $resp = $this->actingAs($editor)->get('/preferences/notifications');
-
- $resp->assertSee($settingLabel1, true);
- $resp->assertSee($settingLabel2, true);
- }
}