From 41b286232dc852f76254d8d4aa739971beb09a0e Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Fri, 30 Aug 2013 15:15:01 -0400 Subject: [PATCH] Allow filtering to alerted messages with is:alerted (imported from commit 99834f1ee1b9b2e0f5c7427afa1494bf404e3626) --- static/js/filter.js | 4 ++++ static/js/search_suggestion.js | 6 ++++++ static/js/zulip.js | 1 + zerver/tests/frontend/node/search_suggestion.js | 2 ++ zerver/views/__init__.py | 2 ++ 5 files changed, 15 insertions(+) diff --git a/static/js/filter.js b/static/js/filter.js index d23b7e9418..cfba1c7194 100644 --- a/static/js/filter.js +++ b/static/js/filter.js @@ -239,6 +239,10 @@ Filter.prototype = { if (!message.mentioned) { return false; } + } else if (operand === 'alerted') { + if (!message.alerted) { + return false; + } } break; diff --git a/static/js/search_suggestion.js b/static/js/search_suggestion.js index 2a5194ea4f..e737671f64 100644 --- a/static/js/search_suggestion.js +++ b/static/js/search_suggestion.js @@ -57,6 +57,8 @@ function describe(operators) { return 'Narrow to starred messages'; } else if (operand === 'mentioned') { return 'Narrow to mentioned messages'; + } else if (operand === 'alerted') { + return 'Narrow to alerted messages'; } break; @@ -367,6 +369,10 @@ function get_special_filter_suggestions(query, operators) { search_string: 'is:mentioned', description: '@-mentions' }, + { + search_string: 'is:alerted', + description: 'Alerted messages' + }, { search_string: 'sender:' + page_params.email, description: 'Sent by me' diff --git a/static/js/zulip.js b/static/js/zulip.js index bcde63a9a7..1926373a1e 100644 --- a/static/js/zulip.js +++ b/static/js/zulip.js @@ -552,6 +552,7 @@ function add_message_metadata(message) { message.mentioned = message.flags.indexOf("mentioned") !== -1 || message.flags.indexOf("wildcard_mentioned") !== -1; message.collapsed = message.flags.indexOf("collapsed") !== -1; + message.alerted = message.flags.indexOf("has_alert_word") !== -1; switch (message.type) { case 'stream': diff --git a/zerver/tests/frontend/node/search_suggestion.js b/zerver/tests/frontend/node/search_suggestion.js index bf75a56686..074fc111e9 100644 --- a/zerver/tests/frontend/node/search_suggestion.js +++ b/zerver/tests/frontend/node/search_suggestion.js @@ -150,6 +150,7 @@ set_global('narrow', {}); "is:private", "is:starred", "is:mentioned", + "is:alerted", "sender:bob@zulip.com", "stream:devel", "stream:office" @@ -164,6 +165,7 @@ set_global('narrow', {}); assert.equal(describe('is:private'), 'Private messages'); assert.equal(describe('is:starred'), 'Starred messages'); assert.equal(describe('is:mentioned'), '@-mentions'); + assert.equal(describe('is:alerted'), 'Alerted messages'); assert.equal(describe('sender:bob@zulip.com'), 'Sent by me'); assert.equal(describe('stream:devel'), 'Narrow to stream devel'); }()); diff --git a/zerver/views/__init__.py b/zerver/views/__init__.py index 22aba0156b..b78b135c1b 100644 --- a/zerver/views/__init__.py +++ b/zerver/views/__init__.py @@ -846,6 +846,8 @@ class NarrowBuilder(object): return Q(flags=UserMessage.flags.starred) elif operand == 'mentioned': return Q(flags=UserMessage.flags.mentioned) + elif operand == 'alerted': + return Q(flags=UserMessage.flags.mentioned) raise BadNarrowOperator("unknown 'is' operand " + operand) def by_stream(self, operand):