From 2fb70eb38cc69c1ebff2a34dd99302d5360f3d5e Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Thu, 6 Feb 2014 16:18:56 -0500 Subject: [PATCH] Remove tuples safety net for narrow filters on staging. We have shim code that makes our internal narrow operators support both a tuple interface and an object interface. We are removing the shim on staging to help expose any dark corners of the code that still rely on operators being represented as tuples. (imported from commit f9d101dbb7f49a4abec14806734b9c86bd93c4e1) --- static/js/feature_flags.js | 1 + static/js/filter.js | 9 +++++++-- zerver/tests/frontend/node/filter.js | 3 +++ zerver/tests/frontend/node/narrow.js | 4 ++++ zerver/tests/frontend/node/search_suggestion.js | 4 ++++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/static/js/feature_flags.js b/static/js/feature_flags.js index a1c1336691..b607ebfbf6 100644 --- a/static/js/feature_flags.js +++ b/static/js/feature_flags.js @@ -54,6 +54,7 @@ exports.propagate_topic_edits = true; exports.summarize_read_while_narrowed = false; exports.clicking_notification_causes_narrow = true; exports.use_socket = true; +exports.remove_filter_tuples_safety_net = page_params.staging; // Ready for deprecation. exports.collapsible = false; diff --git a/static/js/filter.js b/static/js/filter.js index 483944d32c..6d2be04731 100644 --- a/static/js/filter.js +++ b/static/js/filter.js @@ -3,9 +3,14 @@ var Filter = (function () { function filter_term(opts) { // For legacy reasons we must represent filter_terms as tuples // until we phase out all the code that assumes tuples. + // We are very close to removing the tuple code everywhere; for + // now, we remove the safety net on staging only. var term = []; - term[0] = opts.operator; - term[1] = opts.operand; + + if (!feature_flags.remove_filter_tuples_safety_net) { + term[0] = opts.operator; + term[1] = opts.operand; + } // This is the new style we are phasing in. (Yes, the same // object can be treated like either a tuple or a struct.) diff --git a/zerver/tests/frontend/node/filter.js b/zerver/tests/frontend/node/filter.js index d717e386ab..9360b9178d 100644 --- a/zerver/tests/frontend/node/filter.js +++ b/zerver/tests/frontend/node/filter.js @@ -7,6 +7,9 @@ set_global('page_params', { email: 'hamlet@zulip.com', domain: 'zulip.com' }); +set_global('feature_flags', { + remove_filter_tuples_safety_net: false +}); var Filter = require('js/filter.js'); var _ = global._; diff --git a/zerver/tests/frontend/node/narrow.js b/zerver/tests/frontend/node/narrow.js index f036afa1d2..c12bfb96f5 100644 --- a/zerver/tests/frontend/node/narrow.js +++ b/zerver/tests/frontend/node/narrow.js @@ -7,6 +7,10 @@ var narrow = require('js/narrow.js'); var Filter = global.Filter; var stream_data = global.stream_data; +set_global('feature_flags', { + remove_filter_tuples_safety_net: false +}); + function set_filter(operators) { narrow._set_current_filter(new Filter(operators)); } diff --git a/zerver/tests/frontend/node/search_suggestion.js b/zerver/tests/frontend/node/search_suggestion.js index 1b9684a924..94bb3156c4 100644 --- a/zerver/tests/frontend/node/search_suggestion.js +++ b/zerver/tests/frontend/node/search_suggestion.js @@ -28,6 +28,10 @@ set_global('stream_data', { set_global('narrow', {}); +set_global('feature_flags', { + remove_filter_tuples_safety_net: false +}); + (function test_basic_get_suggestions() { var query = 'fred';