diff --git a/frontend_tests/node_tests/templates.js b/frontend_tests/node_tests/templates.js index b8bf5982f2..bf7cf886d2 100644 --- a/frontend_tests/node_tests/templates.js +++ b/frontend_tests/node_tests/templates.js @@ -122,13 +122,29 @@ function render(template_name, args) { (function admin_default_streams_list() { var html = ''; var streams = ['devel', 'trac', 'zulip']; + + // When the logged in user is admin _.each(streams, function (stream) { - var args = {stream: {name: stream, invite_only: false}}; + var args = {stream: {name: stream, invite_only: false}, + can_modify: true, + }; html += render('admin_default_streams_list', args); }); html += "
"; var span = $(html).find(".default_stream_name:first"); assert.equal(span.text(), "devel"); + + // When the logged in user is not admin + html = ''; + _.each(streams, function (stream) { + var args = {stream: {name: stream, invite_only: false}, + can_modify: false, + }; + html += render('admin_default_streams_list', args); + }); + html += "
"; + span = $(html).find(".default_stream_name:first"); + assert.equal(span.text(), "devel"); global.write_handlebars_output("admin_default_streams_list", html); }()); diff --git a/static/js/admin.js b/static/js/admin.js index 304921d5e4..760593460b 100644 --- a/static/js/admin.js +++ b/static/js/admin.js @@ -15,6 +15,8 @@ exports.show_or_hide_menu_item = function () { .find("input, button, select").attr("disabled", true); $(".organization-box [data-name='auth-methods']") .find("input, button, select, checked").attr("disabled", true); + $(".organization-box [data-name='default-streams-list']") + .find("input, button, select").attr("disabled", true); } }; diff --git a/static/js/settings_streams.js b/static/js/settings_streams.js index a0e71c4e65..5704af429a 100644 --- a/static/js/settings_streams.js +++ b/static/js/settings_streams.js @@ -54,7 +54,7 @@ exports.build_default_stream_table = function (streams_data) { (function () { var table = $("#admin_default_streams_table").expectOne(); _.each(streams_data, function (stream) { - var row = $(templates.render("admin_default_streams_list", {stream: stream})); + var row = $(templates.render("admin_default_streams_list", {stream: stream, can_modify: page_params.is_admin})); set_up_remove_click_hander(row, stream.name); self.row_dict.set(stream.stream_id, row); table.append(row); diff --git a/static/templates/admin_default_streams_list.handlebars b/static/templates/admin_default_streams_list.handlebars index f0ce838691..a45f154df4 100644 --- a/static/templates/admin_default_streams_list.handlebars +++ b/static/templates/admin_default_streams_list.handlebars @@ -4,10 +4,12 @@ {{#if invite_only}}{{/if}} {{name}} + {{#if ../can_modify}} + {{/if}} {{/with}} diff --git a/static/templates/settings/default-streams-list-admin.handlebars b/static/templates/settings/default-streams-list-admin.handlebars index 5096b81bbc..c06bd5bbd9 100644 --- a/static/templates/settings/default-streams-list-admin.handlebars +++ b/static/templates/settings/default-streams-list-admin.handlebars @@ -9,11 +9,14 @@ - + {{#if is_admin}} + + {{/if}}
{{t "Name" }}{{t "Actions" }}{{t "Actions" }}
+{{#if is_admin}}
{{t "Add new default stream" }}
@@ -23,4 +26,5 @@
+{{/if}} diff --git a/templates/zerver/settings_overlay.html b/templates/zerver/settings_overlay.html index 72c8c3863c..7f3a72f19b 100644 --- a/templates/zerver/settings_overlay.html +++ b/templates/zerver/settings_overlay.html @@ -67,10 +67,12 @@
{{ _('Delete streams') }}
+ {% endif %}
  • {{ _('Default streams') }}
  • + {% if is_admin %}
  • {{ _('Filter settings') }}