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';