diff --git a/static/js/admin.js b/static/js/admin.js index 516668eba0..9c91331d33 100644 --- a/static/js/admin.js +++ b/static/js/admin.js @@ -163,6 +163,30 @@ exports.setup_page = function () { }); }); + $(".administration").on("submit", "form.admin-realm-name", function (e) { + e.preventDefault(); + e.stopPropagation(); + + var new_name = $("input.admin-realm-name").val(); + + var url = "/json/realm"; + var data = { + name: JSON.stringify(new_name) + }; + var status = $(".admin-realm-name .admin-realm-name-status").expectOne(); + + channel.patch({ + url: url, + data: data, + success: function () { + ui.report_success("Name changed!", status); + }, + error: function (xhr, error) { + ui.report_error("Failed!", xhr, status); + } + }); + }); + $(".admin_user_table").on("click", ".make-admin", function (e) { e.preventDefault(); e.stopPropagation(); diff --git a/static/js/server_events.js b/static/js/server_events.js index 5c973ce4f6..297ad68416 100644 --- a/static/js/server_events.js +++ b/static/js/server_events.js @@ -72,6 +72,12 @@ function get_events_success(events) { case 'update_message': messages_to_update.push(event); break; + case 'realm': + if (event.op === 'update' && event.property === 'name') { + page_params.realm_name = event.value; + notifications.redraw_title(); + } + break; case 'realm_user': if (event.op === 'add') { people.add_in_realm(event.person); diff --git a/static/styles/zulip.css b/static/styles/zulip.css index be4b684bf3..d9535c3b87 100644 --- a/static/styles/zulip.css +++ b/static/styles/zulip.css @@ -3783,6 +3783,10 @@ div.edit_bot { padding-left: 15px; } +.admin-realm-name-status { + display: none; +} + li.show-more-topics a { font-size: 75%; } diff --git a/static/templates/admin_tab.handlebars b/static/templates/admin_tab.handlebars index 35a2746234..c3d065e145 100644 --- a/static/templates/admin_tab.handlebars +++ b/static/templates/admin_tab.handlebars @@ -3,6 +3,24 @@

Administration

+ +
+
+
+ +
+ +
+
+ +
+
+ +
+
+
+

Users

diff --git a/zerver/tests/frontend/node/templates.js b/zerver/tests/frontend/node/templates.js index 2925fd61be..1a8126977c 100644 --- a/zerver/tests/frontend/node/templates.js +++ b/zerver/tests/frontend/node/templates.js @@ -64,12 +64,16 @@ function render(template_name, args) { }()); (function admin_tab() { - var html = render('admin_tab'); + var args = { + realm_name: 'Zulip' + }; + var html = render('admin_tab', args); var admin_features = ["admin_users_table", "admin_bots_table", "admin_streams_table", "admin_deactivated_users_table"]; _.each(admin_features, function (admin_feature) { assert.notEqual($(html).find("#" + admin_feature).length, 0); }); + assert.equal($(html).find("input.admin-realm-name").val(), 'Zulip'); global.write_test_output("admin_tab.handlebars", html); }());