Rename "Administration" to "Organization" in the settings UI.

This better sets expectatations for the fact that in Zulip, the
Organization settings UI is available read-only to non-administrator
users.

Tweaked by tabbott to update some additional references.
This commit is contained in:
Abhijeet Kaur
2017-04-08 01:09:58 +05:30
committed by Tim Abbott
parent 7ce200f8d7
commit 8f88b045a4
43 changed files with 119 additions and 124 deletions

View File

@@ -21,7 +21,7 @@ The CSS files are:
The CSS for the Zulip web application UI is primarily here: The CSS for the Zulip web application UI is primarily here:
* `settings.css` - CSS for the Zulip settings and administration pages * `settings.css` - CSS for the Zulip settings (including organization settings) pages
* `zulip.css` - CSS for the rest of the Zulip logged-in app * `zulip.css` - CSS for the rest of the Zulip logged-in app
* `media.css` - CSS for media queries (particularly related to screen width) * `media.css` - CSS for media queries (particularly related to screen width)

View File

@@ -61,7 +61,7 @@ using topics:
Third, setting default streams for new users is a great way to get new Third, setting default streams for new users is a great way to get new
users involved in conversations before they've accustomed themselves users involved in conversations before they've accustomed themselves
with joining streams on their own. You can do so on the with joining streams on their own. You can do so on the
`/administration` page (get there from the gear menu). `/#organization` page (get there from the gear menu).
## Notification settings ## Notification settings

View File

@@ -148,8 +148,8 @@ log in!
**Congratulations!** You are logged in as an organization **Congratulations!** You are logged in as an organization
administrator for your new Zulip organization. After getting administrator for your new Zulip organization. After getting
oriented, we recommend visiting the special "Administration" tab oriented, we recommend visiting the "Organization settings" UI (linked
linked to from the upper-right gear menu in the Zulip app to configure from the upper-right gear menu in the Zulip webapp) to configure
important policy settings like how users can join your new important policy settings like how users can join your new
organization. By default, your organization will be configured as organization. By default, your organization will be configured as
follows depending on what type of organization you selected: follows depending on what type of organization you selected:

View File

@@ -103,14 +103,14 @@ your organization.
usefulness (e.g. for conversational organization) over faithfulness usefulness (e.g. for conversational organization) over faithfulness
to the original. to the original.
The message editing policy can be configured on the realm The message editing policy can be configured on the /#organization
administration page. There are three configurations provided out of page. There are three configurations provided out of the box: (i)
the box: (i) users cannot edit messages at all, (ii) users can edit users cannot edit messages at all, (ii) users can edit any message
any message they have sent, and (iii) users can edit the content of they have sent, and (iii) users can edit the content of any message
any message they have sent in the last N minutes, and the topic of they have sent in the last N minutes, and the topic of any message
any message they have sent. In (ii) and (iii), topic edits can also they have sent. In (ii) and (iii), topic edits can also be
be propagated to other messages with the same original topic, even propagated to other messages with the same original topic, even if
if those messages were sent by other users. The default setting is those messages were sent by other users. The default setting is
(iii), with N = 10. (iii), with N = 10.
In addition, and regardless of the configuration above, messages In addition, and regardless of the configuration above, messages
@@ -156,8 +156,8 @@ your organization.
suffice to change their password or deactivate their account in the suffice to change their password or deactivate their account in the
SSO system, since neither of those prevents authenticating with the SSO system, since neither of those prevents authenticating with the
user's API key or those of bots the user has created. Instead, you user's API key or those of bots the user has created. Instead, you
should deactivate the user's account in the Zulip administration should deactivate the user's account in the "Organization settings"
interface (`/#administration`); this will automatically also interface (`/#organization`); this will automatically also
deactivate any bots the user had created. deactivate any bots the user had created.
* The Zulip mobile apps authenticate to the server by sending the * The Zulip mobile apps authenticate to the server by sending the

View File

@@ -5,14 +5,14 @@ help you decide how to correctly implement new settings you're adding
to Zulip. We have two types of administrative settings in Zulip: to Zulip. We have two types of administrative settings in Zulip:
server settings (which are set via configuration files are apply to server settings (which are set via configuration files are apply to
the whole Zulip installation), and realm settings (which are usually the whole Zulip installation), and realm settings (which are usually
set via the /#administration page in the Zulip web application) and set via the /#organization page in the Zulip web application) and
apply to a single Zulip realm/organization (which for most Zulip apply to a single Zulip realm/organization (which for most Zulip
servers is the only realm on the server). servers is the only realm on the server).
Philosophically, the goals of the settings system are to make it Philosophically, the goals of the settings system are to make it
convenient for: convenient for:
* Zulip server administrations to configure * Zulip server administrators to configure
Zulip's featureset for their server without needing to patch Zulip Zulip's featureset for their server without needing to patch Zulip
* Realm administrators to configure settings for their organization * Realm administrators to configure settings for their organization
independently without needing to talk with the server administrator. independently without needing to talk with the server administrator.
@@ -43,12 +43,12 @@ $ ./scripts/get-django-setting EMAIL_GATEWAY_PATTERN
Zulip has separated those settings that we expect a system Zulip has separated those settings that we expect a system
administrator to change (with nice documentation) from the ~1000 lines administrator to change (with nice documentation) from the ~1000 lines
of settings needed by the Zulip Django app. As a result, there are a of settings needed by the Zulip Django app. As a result, there are a
few files involved in the Zulip settings for server administrations. few files involved in the Zulip settings for server administrators.
In a production environment, we have: In a production environment, we have:
* `/etc/zulip/settings.py` (the template is in the Zulip repo at * `/etc/zulip/settings.py` (the template is in the Zulip repo at
`zproject/prod_settings_template.py`) is the main system `zproject/prod_settings_template.py`) is the main system
administration facing settings file for Zulip. It contains all the administrator-facing settings file for Zulip. It contains all the
server-specific settings, such as how to send outgoing email, the server-specific settings, such as how to send outgoing email, the
hostname of the Postgres database, etc., but does not contain any hostname of the Postgres database, etc., but does not contain any
secrets (e.g. passwords, secret API keys, cryptographic keys, etc.). secrets (e.g. passwords, secret API keys, cryptographic keys, etc.).

View File

@@ -145,11 +145,11 @@ for writing Casper tests in addition to the debugging notes below:
- Generally `casper.waitUntilVisible` is preferable to - Generally `casper.waitUntilVisible` is preferable to
e.g. `casper.waitForSelector`, since the former will confirm the e.g. `casper.waitForSelector`, since the former will confirm the
thing is actually on screen. E.g. if you're waiting to switch thing is actually on screen. E.g. if you're waiting to switch
from one panel of the the settings/administration overlay to from one panel of the the settings overlay to another by waiting
another by waiting for a particular widget to appear, for a particular widget to appear, `casper.waitForSelector` may
`casper.waitForSelector` may not actually wait (since the widget not actually wait (since the widget is probably in the DOM, just
is probably in the DOM, just not visible), but not visible), but casper.waitUntilVisible will wait until it's
casper.waitUntilVisible will wait until it's actually shown. actually shown.
- The selectors (i.e. things you put inside - The selectors (i.e. things you put inside
`casper.waitUntilVisible()` and friends) appearing in Casper tests `casper.waitUntilVisible()` and friends) appearing in Casper tests

View File

@@ -193,7 +193,7 @@ page, in the 'Display settings' section. The URL will be
`/#settings/display-settings` on your realm. `/#settings/display-settings` on your realm.
Organizations can set the default language for new users in their Organizations can set the default language for new users in their
organization on the `/#administration` page. organization on the `/#organization` page.
## Translation resource files ## Translation resource files

View File

@@ -230,25 +230,25 @@ The source for macros is the Markdown files under
multiple instances of particular content in the documentation, you can multiple instances of particular content in the documentation, you can
always create a new macro by adding a new file to that folder. always create a new macro by adding a new file to that folder.
### **Administration** `{!admin.md!}` macro ### **Organization settings** `{!admin.md!}` macro
* **About:** Links to the **Edit Administrator Settings** documentation. * **About:** Links to the **Organization settings** documentation.
Usually preceded by the [**Go to the** macro](#go-to-the-go-to-the-md-macro) Usually preceded by the [**Go to the** macro](#go-to-the-go-to-the-md-macro)
and a link to a particular section on the **Administration** page. and a link to a particular section on the **Organization settings** page.
* **Contents:** * **Contents:**
```.md ```.md
tab of the [Administration](/help/edit-administrator-settings) page. tab of the [Organization settings](/help/edit-administrator-settings) page.
``` ```
* **Example usage and rendering:** * **Example usage and rendering:**
```.md ```.md
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
``` ```
```.md ```.md
1. Go to the [Organization settings](/#administration/organization-settings) tab of the 1. Go to the [Organization settings](/#organization/organization-settings) tab of the
[Administration](/help/edit-administrator-settings) page. [Organization](/help/edit-administrator-settings) page.
``` ```
### **Administrator only feature** `{!admin-only.md!}` macro ### **Administrator only feature** `{!admin-only.md!}` macro
@@ -334,7 +334,7 @@ macro](#message-actions-message-actions-md-macro).
### **Go to the** `{!go-to-the.md}` macro ### **Go to the** `{!go-to-the.md}` macro
* **About:** Usually precedes the [**Settings** macro](#settings-settings-md-macro) * **About:** Usually precedes the [**Settings** macro](#settings-settings-md-macro)
or the [**Administration** macro](#administration-admin-md-macro). Transforms or the [**Organization settings** macro](#organization-settings-admin-md-macro). Transforms
following content into a step. following content into a step.
* **Contents:** * **Contents:**

View File

@@ -10,13 +10,13 @@ casper.then(function () {
}); });
casper.then(function () { casper.then(function () {
casper.test.info('Administration page'); casper.test.info('Organization page');
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
}); });
casper.waitForSelector('#settings_overlay_container.show', function () { casper.waitForSelector('#settings_overlay_container.show', function () {
casper.test.info('Administration page is active'); casper.test.info('Organization page is active');
casper.test.assertUrlMatch(/^http:\/\/[^/]+\/#administration/, 'URL suggests we are on administration page'); casper.test.assertUrlMatch(/^http:\/\/[^/]+\/#organization/, 'URL suggests we are on organization page');
}); });
// Test setting limiting stream creation to administrators // Test setting limiting stream creation to administrators
@@ -41,7 +41,7 @@ casper.then(function () {
casper.click('#settings-dropdown'); casper.click('#settings-dropdown');
casper.click('a[href^="#streams"]'); casper.click('a[href^="#streams"]');
casper.click('#settings-dropdown'); casper.click('#settings-dropdown');
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
}); });
casper.waitUntilVisible('input[type="checkbox"][id="id_realm_create_stream_by_admins_only"]', function () { casper.waitUntilVisible('input[type="checkbox"][id="id_realm_create_stream_by_admins_only"]', function () {
@@ -275,7 +275,7 @@ casper.then(function () {
casper.click('#settings-dropdown'); casper.click('#settings-dropdown');
casper.click('a[href^="#streams"]'); casper.click('a[href^="#streams"]');
casper.click('#settings-dropdown'); casper.click('#settings-dropdown');
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
casper.waitUntilVisible(".method_row[data-method='Email'] input[type='checkbox']", function () { casper.waitUntilVisible(".method_row[data-method='Email'] input[type='checkbox']", function () {
// Test Setting was saved // Test Setting was saved

View File

@@ -76,7 +76,7 @@ casper.then(function () {
// go to admin page // go to admin page
casper.then(function () { casper.then(function () {
casper.click('#settings-dropdown'); casper.click('#settings-dropdown');
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
}); });
// deactivate "allow message editing" // deactivate "allow message editing"
@@ -140,7 +140,7 @@ casper.then(function () {
// go back to admin page, and reactivate "allow message editing" // go back to admin page, and reactivate "allow message editing"
casper.then(function () { casper.then(function () {
casper.click('#settings-dropdown'); casper.click('#settings-dropdown');
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
}); });
casper.waitUntilVisible('input[type="checkbox"][id="id_realm_allow_message_editing"]', function () { casper.waitUntilVisible('input[type="checkbox"][id="id_realm_allow_message_editing"]', function () {
casper.click('input[type="checkbox"][id="id_realm_allow_message_editing"]'); casper.click('input[type="checkbox"][id="id_realm_allow_message_editing"]');
@@ -190,10 +190,10 @@ casper.waitUntilVisible('input[type="checkbox"][id="id_realm_allow_message_editi
// go to admin page // go to admin page
casper.then(function () { casper.then(function () {
casper.test.info('Administration page'); casper.test.info('Organization page');
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
casper.test.assertUrlMatch(/^http:\/\/[^\/]+\/#administration/, 'URL suggests we are on administration page'); casper.test.assertUrlMatch(/^http:\/\/[^\/]+\/#organization/, 'URL suggests we are on organization page');
casper.test.assertExists('#settings_overlay_container.show', 'Administration page is active'); casper.test.assertExists('#settings_overlay_container.show', 'Organization page is active');
}); });
casper.waitUntilVisible('form.admin-realm-form input.button'); casper.waitUntilVisible('form.admin-realm-form input.button');

View File

@@ -6,7 +6,7 @@ casper.then(function () {
var menu_selector = '#settings-dropdown'; var menu_selector = '#settings-dropdown';
casper.waitUntilVisible(menu_selector, function () { casper.waitUntilVisible(menu_selector, function () {
casper.click(menu_selector); casper.click(menu_selector);
casper.click('a[href^="#administration"]'); casper.click('a[href^="#organization"]');
}); });
}); });

View File

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View File

@@ -12,7 +12,7 @@ exports.show_or_hide_menu_item = function () {
item.show(); item.show();
} else { } else {
item.hide(); item.hide();
$(".administration-box [data-name='organization-settings']") $(".organization-box [data-name='organization-settings']")
.find("input, button, select").attr("disabled", true); .find("input, button, select").attr("disabled", true);
} }
}; };
@@ -93,11 +93,11 @@ exports.update_user_data = function (user_id, new_data) {
function failed_listing_users(xhr) { function failed_listing_users(xhr) {
loading.destroy_indicator($('#subs_page_loading_indicator')); loading.destroy_indicator($('#subs_page_loading_indicator'));
ui_report.error(i18n.t("Error listing users or bots"), xhr, $("#administration-status")); ui_report.error(i18n.t("Error listing users or bots"), xhr, $("#organization-status"));
} }
function failed_listing_streams(xhr) { function failed_listing_streams(xhr) {
ui_report.error(i18n.t("Error listing streams"), xhr, $("#administration-status")); ui_report.error(i18n.t("Error listing streams"), xhr, $("#organization-status"));
} }
function populate_users(realm_people_data) { function populate_users(realm_people_data) {
@@ -264,7 +264,7 @@ function get_non_default_streams_names(streams_data) {
} }
exports.update_default_streams_table = function () { exports.update_default_streams_table = function () {
if (/#*administration/.test(window.location.hash) || if (/#*organization/.test(window.location.hash) ||
/#*settings/.test(window.location.hash)) { /#*settings/.test(window.location.hash)) {
$("#admin_default_streams_table").expectOne().find("tr.default_stream_row").remove(); $("#admin_default_streams_table").expectOne().find("tr.default_stream_row").remove();
default_stream_table = exports.build_default_stream_table( default_stream_table = exports.build_default_stream_table(
@@ -417,13 +417,13 @@ function _setup_page() {
}; };
var admin_tab = templates.render('admin_tab', options); var admin_tab = templates.render('admin_tab', options);
$("#settings_content .administration-box").html(admin_tab); $("#settings_content .organization-box").html(admin_tab);
$("#settings_content .alert").removeClass("show"); $("#settings_content .alert").removeClass("show");
var tab = (function () { var tab = (function () {
var tab = false; var tab = false;
var hash_sequence = window.location.hash.split(/\//); var hash_sequence = window.location.hash.split(/\//);
if (/#*(administration)/.test(hash_sequence[0])) { if (/#*(organization)/.test(hash_sequence[0])) {
tab = hash_sequence[1]; tab = hash_sequence[1];
return tab || "organization-settings"; return tab || "organization-settings";
} }
@@ -636,7 +636,7 @@ function _setup_page() {
} }
}); });
$(".administration").on("submit", "form.admin-realm-form", function (e) { $(".organization").on("submit", "form.admin-realm-form", function (e) {
var name_status = $("#admin-realm-name-status").expectOne(); var name_status = $("#admin-realm-name-status").expectOne();
var description_status = $("#admin-realm-description-status").expectOne(); var description_status = $("#admin-realm-description-status").expectOne();
var restricted_to_domain_status = $("#admin-realm-restricted-to-domain-status").expectOne(); var restricted_to_domain_status = $("#admin-realm-restricted-to-domain-status").expectOne();
@@ -936,7 +936,7 @@ function _setup_page() {
var submit_button = form_row.find(".submit_name_changes"); var submit_button = form_row.find(".submit_name_changes");
var full_name = form_row.find("input[name='full_name']"); var full_name = form_row.find("input[name='full_name']");
var owner_select = $(templates.render("bot_owner_select", {users_list: users_list})); var owner_select = $(templates.render("bot_owner_select", {users_list: users_list}));
var admin_status = $('#administration-status').expectOne(); var admin_status = $('#organization-status').expectOne();
var person = people.get_person_from_user_id(user_id); var person = people.get_person_from_user_id(user_id);
if (!person) { if (!person) {
return; return;
@@ -1034,7 +1034,7 @@ function _setup_page() {
}); });
}); });
$(".administration").on("submit", "form.admin-emoji-form", function (e) { $(".organization").on("submit", "form.admin-emoji-form", function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
var emoji_status = $('#admin-emoji-status'); var emoji_status = $('#admin-emoji-status');
@@ -1083,7 +1083,7 @@ function _setup_page() {
}); });
}); });
$(".administration").on("submit", "form.admin-filter-form", function (e) { $(".organization").on("submit", "form.admin-filter-form", function (e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation(); e.stopPropagation();
var filter_status = $('#admin-filter-status'); var filter_status = $('#admin-filter-status');
@@ -1234,7 +1234,7 @@ exports.launch_page = function (tab) {
var $active_tab = $("#settings_overlay_container li[data-section='" + tab + "']"); var $active_tab = $("#settings_overlay_container li[data-section='" + tab + "']");
if ($active_tab.hasClass("admin")) { if ($active_tab.hasClass("admin")) {
$(".sidebar .ind-tab[data-tab-key='administration']").click(); $(".sidebar .ind-tab[data-tab-key='organization']").click();
} }
$("#settings_overlay_container").addClass("show"); $("#settings_overlay_container").addClass("show");

View File

@@ -575,7 +575,7 @@ $(function () {
$this.prev().addClass("no-border"); $this.prev().addClass("no-border");
if ($this.hasClass("admin")) { if ($this.hasClass("admin")) {
window.location.hash = "administration/" + section; window.location.hash = "organization/" + section;
} else { } else {
window.location.hash = "settings/" + section; window.location.hash = "settings/" + section;
} }
@@ -597,12 +597,12 @@ $(function () {
name: "settings-toggle", name: "settings-toggle",
values: [ values: [
{ label: "Settings", key: "settings" }, { label: "Settings", key: "settings" },
{ label: "Organization", key: "administration" }, { label: "Organization", key: "organization" },
], ],
callback: function (name, key) { callback: function (name, key) {
$(".sidebar li").hide(); $(".sidebar li").hide();
if (key === "administration") { if (key === "organization") {
$("li.admin").show(); $("li.admin").show();
$("li[data-section='organization-settings']").click(); $("li[data-section='organization-settings']").click();
} else { } else {

View File

@@ -152,8 +152,8 @@ function do_hashchange(from_reload) {
case "#drafts": case "#drafts":
ui_util.change_tab_to("#drafts"); ui_util.change_tab_to("#drafts");
break; break;
case "#administration": case "#organization":
ui_util.change_tab_to("#administration"); ui_util.change_tab_to("#organization");
break; break;
case "#settings": case "#settings":
ui_util.change_tab_to("#settings"); ui_util.change_tab_to("#settings");
@@ -200,7 +200,7 @@ function get_hash_components() {
var get_hash_group = (function () { var get_hash_group = (function () {
var groups = [ var groups = [
["streams"], ["streams"],
["settings", "administration"], ["settings", "organization"],
["invite"], ["invite"],
]; ];
@@ -221,7 +221,7 @@ var get_hash_group = (function () {
function should_ignore(hash) { function should_ignore(hash) {
// Hash changes within this list are overlays and should not unnarrow (etc.) // Hash changes within this list are overlays and should not unnarrow (etc.)
var ignore_list = ["streams", "drafts", "settings", "administration", "invite"]; var ignore_list = ["streams", "drafts", "settings", "organization", "invite"];
var main_hash = get_main_hash(hash); var main_hash = get_main_hash(hash);
return (ignore_list.indexOf(main_hash) > -1); return (ignore_list.indexOf(main_hash) > -1);
@@ -255,7 +255,7 @@ function hashchanged(from_reload, e) {
subs.launch(get_hash_components()); subs.launch(get_hash_components());
} else if (base === "drafts") { } else if (base === "drafts") {
drafts.launch(); drafts.launch();
} else if (/settings|administration/.test(base)) { } else if (/settings|organization/.test(base)) {
settings.setup_page(); settings.setup_page();
admin.setup_page(); admin.setup_page();
} else if (base === "invite") { } else if (base === "invite") {

View File

@@ -26,7 +26,7 @@ function open_reactions() {
} }
exports.is_settings_page = function () { exports.is_settings_page = function () {
return (/^#*(settings|administration)/g).test(window.location.hash); return (/^#*(settings|organization)/g).test(window.location.hash);
}; };
exports.is_lightbox_open = function () { exports.is_lightbox_open = function () {

View File

@@ -7,7 +7,7 @@
display: block; display: block;
} }
.alert#administration-status { .alert#organization-status {
margin: 20px; margin: 20px;
} }

View File

@@ -125,7 +125,7 @@ td .button {
border-top: 5px solid #dfdfdf; border-top: 5px solid #dfdfdf;
} }
#administration .settings-section { #organization .settings-section {
display: block; display: block;
} }
@@ -363,7 +363,7 @@ input[type=checkbox].inline-block {
margin: auto; margin: auto;
} }
#administration .settings-section .organization-settings .admin-realm-form, #organization .settings-section .organization-settings .admin-realm-form,
#settings .settings-section .account-settings-form, #settings .settings-section .account-settings-form,
#settings .settings-section .new-bot-form, #settings .settings-section .new-bot-form,
#settings .settings-section .new-alert-word-form, #settings .settings-section .new-alert-word-form,
@@ -375,7 +375,7 @@ input[type=checkbox].inline-block {
width: 100%; width: 100%;
} }
#administration .settings-section .admin-realm-form .control-label, #organization .settings-section .admin-realm-form .control-label,
#settings .settings-section .account-settings-form .control-label, #settings .settings-section .account-settings-form .control-label,
#settings .settings-section .new-bot-form .control-label, #settings .settings-section .new-bot-form .control-label,
#settings .settings-section .new-alert-word-form .control-label, #settings .settings-section .new-alert-word-form .control-label,
@@ -391,7 +391,7 @@ input[type=checkbox].inline-block {
float: none; float: none;
} }
#administration .settings-section .admin-realm-form .controls, #organization .settings-section .admin-realm-form .controls,
#settings .settings-section .account-settings-form .controls, #settings .settings-section .account-settings-form .controls,
#settings .settings-section .new-bot-form .controls, #settings .settings-section .new-bot-form .controls,
#settings .settings-section .new-alert-word-form button, #settings .settings-section .new-alert-word-form button,
@@ -404,7 +404,7 @@ input[type=checkbox].inline-block {
} }
#administration .settings-section .settings-section-icon, #organization .settings-section .settings-section-icon,
#settings .settings-section .settings-section-icon { #settings .settings-section .settings-section-icon {
margin-right: 8px; margin-right: 8px;
} }
@@ -1032,22 +1032,22 @@ input[type=text]#settings_search {
padding-bottom: 20px; padding-bottom: 20px;
} }
#administration #deactivation_stream_modal h3 { #organization #deactivation_stream_modal h3 {
overflow-wrap: break-word; overflow-wrap: break-word;
} }
#administration .centered-footer { #organization .centered-footer {
text-align: center; text-align: center;
padding: 10px 15px; padding: 10px 15px;
} }
#administration .new-realm-domain { #organization .new-realm-domain {
width: 130px; width: 130px;
margin-bottom: auto; margin-bottom: auto;
padding: 0px 2px; padding: 0px 2px;
} }
#administration #submit-add-realm-domain { #organization #submit-add-realm-domain {
width: 75px; width: 75px;
} }

View File

@@ -2442,13 +2442,13 @@ button.topic_edit_cancel {
background-color: #c9fcc1; background-color: #c9fcc1;
} }
#administration h1, #organization h1,
#settings h1 { #settings h1 {
font-size: 25px; font-size: 25px;
font-weight: 300; font-weight: 300;
} }
#administration .administration-icon, #organization .organization-icon,
#settings .settings-icon { #settings .settings-icon {
margin-right: 10px; margin-right: 10px;
font-size: 20px; font-size: 20px;

View File

@@ -1,4 +1,4 @@
<div class="alert" id="administration-status"></div> <div class="alert" id="organization-status"></div>
{{ partial "deactivation-user-modal" }} {{ partial "deactivation-user-modal" }}
{{ partial "deactivation-stream-modal" }} {{ partial "deactivation-stream-modal" }}

View File

@@ -5,7 +5,7 @@
You can add custom linkification filters to your organization that You can add custom linkification filters to your organization that
automatically turn phrases in messages into links to other pages. automatically turn phrases in messages into links to other pages.
{!go-to-the.md!} [Filter settings](/#administration/filter-settings) {!go-to-the.md!} [Filter settings](/#organization/filter-settings)
{!admin.md!} {!admin.md!}
5. In the green section labeled **Add a new filter**, find the **Regular expression** 5. In the green section labeled **Add a new filter**, find the **Regular expression**

View File

@@ -3,7 +3,7 @@
If enabled by your Zulip organization administrator, you can add custom If enabled by your Zulip organization administrator, you can add custom
emojis to your organization for other members to use. emojis to your organization for other members to use.
{!go-to-the.md!} [Emoji Settings](/#administration/emoji-settings) {!go-to-the.md!} [Emoji Settings](/#organization/emoji-settings)
{!admin.md!} {!admin.md!}
5. In the green section labeled **Add a new emoji**, find the **Emoji name** and 5. In the green section labeled **Add a new emoji**, find the **Emoji name** and

View File

@@ -11,7 +11,7 @@ members to those with email invitations.
## Limiting new membership to users invited by organization members ## Limiting new membership to users invited by organization members
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
4. Locate the **E-mail invitation required** checkbox. 4. Locate the **E-mail invitation required** checkbox.

View File

@@ -6,7 +6,7 @@ Ordinary users can [change their own names](/help/change-your-name), but
administrators can change users' names when users are administrators can change users' names when users are
unavailable. {!follow-steps.md!} change the name of a user. unavailable. {!follow-steps.md!} change the name of a user.
{!go-to-the.md!} [Users](/#administration/user-list-admin) {!go-to-the.md!} [Users](/#organization/user-list-admin)
{!admin.md!} {!admin.md!}
2. Click on the pencil (<i class="icon-vector-pencil"></i>) icon next to 2. Click on the pencil (<i class="icon-vector-pencil"></i>) icon next to

View File

@@ -4,7 +4,7 @@
{!follow-steps.md!} change the default language of your organization. {!follow-steps.md!} change the default language of your organization.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
2. Find the **Default language** option. 2. Find the **Default language** option.

View File

@@ -2,9 +2,9 @@
{!admin-only.md!} {!admin-only.md!}
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
3. Click on the tabs on the left to select the settings you'd like to edit. 3. Click on the tabs on the left to select the settings you'd like to edit.
![settings](/static/images/help/administration-settings-tab.png) ![settings](/static/images/help/organization-settings-tab.png)

View File

@@ -4,7 +4,7 @@
{!follow-steps.md!} change the name of your organization. {!follow-steps.md!} change the name of your organization.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
4. Edit your organization's name in the **Your organization's name** textbox. 4. Edit your organization's name in the **Your organization's name** textbox.

View File

@@ -11,13 +11,7 @@ in your organization.
## Deactivate a bot ## Deactivate a bot
To properly remove a bots access to a Zulip organization, it does not suffice {!go-to-the.md!} [Bots](/#organization/bot-list-admin)
to deactivate it in the SSO system, since that action does not prevent
authentication with any API keys the bot has.
Instead, you should deactivate the bot using the Zulip administration interface.
{!go-to-the.md!} [Bots](/#administration/bot-list-admin)
{!admin.md!} {!admin.md!}
4. Click the **Deactivate** button to the right of the bot that you want to 4. Click the **Deactivate** button to the right of the bot that you want to
@@ -32,7 +26,7 @@ stricken through, confirming the success of the bot's deactivation.
Zulip organization administrators can choose to reactivate a deactivated bot by Zulip organization administrators can choose to reactivate a deactivated bot by
following the following steps. following the following steps.
{!go-to-the.md!} [Bots](/#administration/bot-list-admin) {!go-to-the.md!} [Bots](/#organization/bot-list-admin)
{!admin.md!} {!admin.md!}
4. In the **Bots** section, click the **Reactivate** button to the right of the 4. In the **Bots** section, click the **Reactivate** button to the right of the

View File

@@ -7,16 +7,17 @@ organization.
## Deactivate a user ## Deactivate a user
To properly remove a users access to a Zulip organization, it does not To properly remove a users access to a Zulip organization, it does
suffice to change their password or deactivate their account in the SSO system, not suffice to change their password or deactivate their account in an
since neither of those actions prevents authentication with the users API key email system, since neither of those actions prevents authentication
or any API keys of the bots the user has created. with the users API key or any API keys of the bots the user has
Instead, you should deactivate the users account using the Zulip administration
interface; this will also automatically deactivate any bots the user has
created. created.
{!go-to-the.md!} [Users](/#administration/user-list-admin) Instead, you should deactivate the users account using the Zulip
**Manage organization** interface; this will also automatically
deactivate any bots the user has created.
{!go-to-the.md!} [Users](/#organization/user-list-admin)
{!admin.md!} {!admin.md!}
4. Click the **Deactivate** button to the right of the user account that you 4. Click the **Deactivate** button to the right of the user account that you
@@ -41,7 +42,7 @@ disappear, confirming the success of the account's deactivation.
Zulip organization administrators can choose to reactivate a user's deactivated account Zulip organization administrators can choose to reactivate a user's deactivated account
by following the following steps. by following the following steps.
{!go-to-the.md!} [Deactivated users](/#administration/deactivated-users-admin) {!go-to-the.md!} [Deactivated users](/#organization/deactivated-users-admin)
{!admin.md!} {!admin.md!}
4. Click the **Reactivate** button to the right of the user account that you 4. Click the **Reactivate** button to the right of the user account that you

View File

@@ -2,11 +2,11 @@
{!admin-only.md!} {!admin-only.md!}
In Zulip, most of the stream administration is done on the subscription page. In Zulip, most stream administration is done on the subscription page.
However, Zulip organization administrators must use their administration panels However, Zulip organization administrators must use the **Manage
to delete streams. organization** interface to delete streams.
{!go-to-the.md!} [Delete streams](/#administration/streams-list-admin) {!go-to-the.md!} [Delete streams](/#organization/streams-list-admin)
{!admin.md!} {!admin.md!}
2. Find the stream you want to delete, and click the **Delete stream** button to 2. Find the stream you want to delete, and click the **Delete stream** button to

View File

@@ -1 +1 @@
tab of the [Administration](/help/change-your-organization-settings) page. tab of the [Manage organization](/help/change-your-organization-settings) page.

View File

@@ -7,7 +7,7 @@ modifying organization-wide settings, such as changing the organization name,
activating or deactivating users, deleting streams, etc. {!follow-steps.md!} activating or deactivating users, deleting streams, etc. {!follow-steps.md!}
give any user in your organization administrative rights. give any user in your organization administrative rights.
{!go-to-the.md!} [Users](/#administration/user-list-admin) {!go-to-the.md!} [Users](/#organization/user-list-admin)
{!admin.md!} {!admin.md!}
4. Click on the **Make admin** button for the user that you wish to make an 4. Click on the **Make admin** button for the user that you wish to make an
@@ -20,13 +20,13 @@ reload and the user will gain administrative privileges immediately.
Administrators can also revoke the administrative rights given to a user. Administrators can also revoke the administrative rights given to a user.
{!go-to-the.md!} [Users](/#administration/user-list-admin) {!go-to-the.md!} [Users](/#organization/user-list-admin)
{!admin.md!} {!admin.md!}
2. Click on the **Remove admin** button. 2. Click on the **Remove admin** button.
The selected user's browser will reload automatically, and the user will no The selected user's browser will reload automatically, and the user will no
longer have access to the **Administration** page. longer have access to the **Organization** page.
!!! tip "" !!! tip ""
Users can revoke their own administrative privileges if there is at least Users can revoke their own administrative privileges if there is at least

View File

@@ -5,7 +5,7 @@
By default, any user can create new streams. You can enable a setting that By default, any user can create new streams. You can enable a setting that
only allows administrators to create new streams in the organization. only allows administrators to create new streams in the organization.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
2. Select the **Only admins may create streams** checkbox. 2. Select the **Only admins may create streams** checkbox.

View File

@@ -6,7 +6,7 @@ By default, any user in your Zulip organization can invite new users. You
can change your organization's settings to only allow administrators to can change your organization's settings to only allow administrators to
invite new users. invite new users.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
2. Select the **E-mail invitation required** and **Only admins may invite** 2. Select the **E-mail invitation required** and **Only admins may invite**

View File

@@ -11,7 +11,7 @@ solution where a user's account is managed elsewhere, you can enable a
setting that prevents them from changing their own email address via setting that prevents them from changing their own email address via
the Zulip UI. the Zulip UI.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
2. Select the **Prevent users from changing their email address** checkbox. 2. Select the **Prevent users from changing their email address** checkbox.

View File

@@ -6,7 +6,7 @@ By default, any user can change their name by going through the
steps given [here](/help/change-your-name), but administrators can enable a steps given [here](/help/change-your-name), but administrators can enable a
setting that prevents them from changing their own names via the Zulip UI. setting that prevents them from changing their own names via the Zulip UI.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
2. Select the **Prevent users from changing their name** checkbox. 2. Select the **Prevent users from changing their name** checkbox.

View File

@@ -6,7 +6,7 @@ You can easily change the time limit that your organization's users have to
change their messages after sending them. Alternatively, you can choose to change their messages after sending them. Alternatively, you can choose to
disable message editing for your organization users. disable message editing for your organization users.
{!go-to-the.md!} [Organization settings](/#administration/organization-settings) {!go-to-the.md!} [Organization settings](/#organization/organization-settings)
{!admin.md!} {!admin.md!}
4. Locate the **Users can edit old messages** 4. Locate the **Users can edit old messages**

View File

@@ -7,7 +7,7 @@ who are not in their organization. The administrator can accomplish this by
restricting users to have email addresses only from the organization's restricting users to have email addresses only from the organization's
domains. domains.
{!go-to-the.md!} [Organization settings](/#administration/) {!go-to-the.md!} [Organization settings](/#organization/)
{!admin.md!} {!admin.md!}
2. Restricting user email addresses to certain domains can be enabled or disabled 2. Restricting user email addresses to certain domains can be enabled or disabled

View File

@@ -5,7 +5,7 @@
{!follow-steps.md!} set the default streams that new users are automatically {!follow-steps.md!} set the default streams that new users are automatically
subscribed to. subscribed to.
{!go-to-the.md!} [Default streams](/#administration/default-streams-list) {!go-to-the.md!} [Default streams](/#organization/default-streams-list)
{!admin.md!} {!admin.md!}
2. To add a new stream to **Default streams**, enter the name of the stream in the 2. To add a new stream to **Default streams**, enter the name of the stream in the

View File

@@ -3,6 +3,6 @@
{!admin-only.md!} {!admin-only.md!}
You can view a list of all bots in your organization, active or deactivated You can view a list of all bots in your organization, active or deactivated
alike, by visiting the [Bots](/#administration/bot-list-admin) {!admin.md!} alike, by visiting the [Bots](/#organization/bot-list-admin) {!admin.md!}
You can [deactivate or reactivate](/help/deactivate-or-reactivate-a-bot) any You can [deactivate or reactivate](/help/deactivate-or-reactivate-a-bot) any
bots in your organization from this panel. bots in your organization from this panel.

View File

@@ -59,9 +59,9 @@
<i class="icon-vector-wrench"></i> {{ _('Settings') }} <i class="icon-vector-wrench"></i> {{ _('Settings') }}
</a> </a>
</li> </li>
<li title="{{ _('Organization') }}" class="admin-menu-item"> <li title="{{ _('Manage organization') }}" class="admin-menu-item">
<a href="#administration" role="button"> <a href="#organization" role="button">
<i class="icon-vector-bolt"></i> {{ _('Organization') }} <i class="icon-vector-bolt"></i> {{ _('Manage organization') }}
</a> </a>
</li> </li>
<li class="divider"></li> <li class="divider"></li>

View File

@@ -94,7 +94,7 @@
</div> </div>
</div> </div>
<div id="settings_content"> <div id="settings_content">
<div class="administration-box administration"> <div class="organization-box organization">
</div> </div>
<div class="settings-box"> <div class="settings-box">

View File

@@ -55,7 +55,7 @@ class Command(BaseCommand):
will need to direct your integrations at the new server. will need to direct your integrations at the new server.
Usually this means updating the URL and the bots' API keys. You Usually this means updating the URL and the bots' API keys. You
can see a list of all the bots that have been configured for can see a list of all the bots that have been configured for
your realm on the `/#administration` page, and use that list to your realm on the `/#organization` page, and use that list to
make sure you migrate them all. make sure you migrate them all.
The proper procedure for using this to export a realm is as follows: The proper procedure for using this to export a realm is as follows: