mirror of https://github.com/zulip/zulip.git
streams: Make stream settings and create stream UI more consistent.
This commit make changes in create stream panel by moving announce stream option below stream description and adds a "Stream permissions" section heading just above "Who can access the stream?" and also rewords the text "Announce stream". Also now announce stream option is only shown if the user creating stream have access to the announcement stream name. When option is not shown, default behaviour is to announce public and web-public streams. Fixes #23327.
This commit is contained in:
parent
308f42eded
commit
449febf036
|
@ -437,7 +437,7 @@ Create new public stream "public1" and add Hamlet:
|
||||||
|
|
||||||
- Type "public1" in the text box and then click "Create new stream."
|
- Type "public1" in the text box and then click "Create new stream."
|
||||||
- Select "People must be invited" and then verify you can't
|
- Select "People must be invited" and then verify you can't
|
||||||
select "Announce stream".
|
select "Announce new stream in #[announcement stream]".
|
||||||
- Select "Anyone can join" again to make it be public.
|
- Select "Anyone can join" again to make it be public.
|
||||||
- Check the checkbox for Hamlet.
|
- Check the checkbox for Hamlet.
|
||||||
- Hit the "Create" button.
|
- Hit the "Create" button.
|
||||||
|
|
|
@ -36,11 +36,10 @@ There are several parameters you can set while creating a stream. All but
|
||||||
* **Stream description**: Helps users decide whether to subscribe when they
|
* **Stream description**: Helps users decide whether to subscribe when they
|
||||||
are browsing streams.
|
are browsing streams.
|
||||||
|
|
||||||
* **Who can access the stream?**: See [Stream permissions](/help/stream-permissions).
|
* **Announce new stream in the [stream configured by your organization](/help/configure-notification-bot#new-stream-announcements)**:
|
||||||
|
Posts a message in the "new streams" topic advertising the new stream.
|
||||||
|
|
||||||
* **Announce stream**: Posts a message to `#general` advertising the new
|
* **Who can access the stream?**: See [Stream permissions](/help/stream-permissions).
|
||||||
stream. Organization administrators can change the stream used for [stream
|
|
||||||
creation announcements](/help/configure-notification-bot#new-stream-announcements).
|
|
||||||
|
|
||||||
* **Who can post to the stream?**: See [Stream permissions](/help/stream-permissions).
|
* **Who can post to the stream?**: See [Stream permissions](/help/stream-permissions).
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,7 @@ import * as stream_events from "./stream_events";
|
||||||
import * as stream_list from "./stream_list";
|
import * as stream_list from "./stream_list";
|
||||||
import * as stream_settings_ui from "./stream_settings_ui";
|
import * as stream_settings_ui from "./stream_settings_ui";
|
||||||
import * as stream_topic_history from "./stream_topic_history";
|
import * as stream_topic_history from "./stream_topic_history";
|
||||||
|
import * as stream_ui_updates from "./stream_ui_updates";
|
||||||
import * as sub_store from "./sub_store";
|
import * as sub_store from "./sub_store";
|
||||||
import * as submessage from "./submessage";
|
import * as submessage from "./submessage";
|
||||||
import * as typing_events from "./typing_events";
|
import * as typing_events from "./typing_events";
|
||||||
|
@ -219,7 +220,7 @@ export function dispatch_normal_event(event) {
|
||||||
move_messages_between_streams_policy: noop,
|
move_messages_between_streams_policy: noop,
|
||||||
name: notifications.redraw_title,
|
name: notifications.redraw_title,
|
||||||
name_changes_disabled: settings_account.update_name_change_display,
|
name_changes_disabled: settings_account.update_name_change_display,
|
||||||
notifications_stream_id: noop,
|
notifications_stream_id: stream_ui_updates.update_announce_stream_option,
|
||||||
org_type: noop,
|
org_type: noop,
|
||||||
private_message_policy: noop,
|
private_message_policy: noop,
|
||||||
send_welcome_emails: noop,
|
send_welcome_emails: noop,
|
||||||
|
|
|
@ -123,7 +123,7 @@ let stream_announce_previous_value =
|
||||||
// Within the new stream modal...
|
// Within the new stream modal...
|
||||||
function update_announce_stream_state() {
|
function update_announce_stream_state() {
|
||||||
// If there is no notifications_stream, we simply hide the widget.
|
// If there is no notifications_stream, we simply hide the widget.
|
||||||
if (!stream_data.realm_has_notifications_stream()) {
|
if (stream_data.get_notifications_stream() === "") {
|
||||||
$("#announce-new-stream").hide();
|
$("#announce-new-stream").hide();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -235,9 +235,18 @@ function create_stream() {
|
||||||
|
|
||||||
data.message_retention_days = JSON.stringify(message_retention_selection);
|
data.message_retention_days = JSON.stringify(message_retention_selection);
|
||||||
|
|
||||||
const announce =
|
let announce =
|
||||||
stream_data.realm_has_notifications_stream() &&
|
stream_data.get_notifications_stream() !== "" &&
|
||||||
$("#announce-new-stream input").prop("checked");
|
$("#announce-new-stream input").prop("checked");
|
||||||
|
|
||||||
|
if (
|
||||||
|
stream_data.get_notifications_stream() === "" &&
|
||||||
|
stream_data.realm_has_notifications_stream() &&
|
||||||
|
!invite_only
|
||||||
|
) {
|
||||||
|
announce = true;
|
||||||
|
}
|
||||||
|
|
||||||
data.announce = JSON.stringify(announce);
|
data.announce = JSON.stringify(announce);
|
||||||
|
|
||||||
// TODO: We can eliminate the user_ids -> principals conversion
|
// TODO: We can eliminate the user_ids -> principals conversion
|
||||||
|
|
|
@ -677,7 +677,11 @@ export function setup_page(callback) {
|
||||||
// TODO: Ideally we'd indicate in some way what stream types
|
// TODO: Ideally we'd indicate in some way what stream types
|
||||||
// the user can create, by showing other options as disabled.
|
// the user can create, by showing other options as disabled.
|
||||||
const stream_privacy_policy = stream_data.stream_privacy_policy_values.public.code;
|
const stream_privacy_policy = stream_data.stream_privacy_policy_values.public.code;
|
||||||
|
const notifications_stream = stream_data.get_notifications_stream();
|
||||||
|
const notifications_stream_sub = stream_data.get_sub_by_name(notifications_stream);
|
||||||
|
|
||||||
const template_data = {
|
const template_data = {
|
||||||
|
notifications_stream_sub,
|
||||||
ask_to_announce_stream: true,
|
ask_to_announce_stream: true,
|
||||||
can_create_streams:
|
can_create_streams:
|
||||||
settings_data.user_can_create_private_streams() ||
|
settings_data.user_can_create_private_streams() ||
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import $ from "jquery";
|
import $ from "jquery";
|
||||||
|
|
||||||
|
import render_announce_stream_checkbox from "../templates/stream_settings/announce_stream_checkbox.hbs";
|
||||||
import render_stream_privacy_icon from "../templates/stream_settings/stream_privacy_icon.hbs";
|
import render_stream_privacy_icon from "../templates/stream_settings/stream_privacy_icon.hbs";
|
||||||
import render_stream_settings_tip from "../templates/stream_settings/stream_settings_tip.hbs";
|
import render_stream_settings_tip from "../templates/stream_settings/stream_settings_tip.hbs";
|
||||||
|
|
||||||
|
@ -155,6 +156,24 @@ export function enable_or_disable_permission_settings_in_edit_panel(sub) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function update_announce_stream_option() {
|
||||||
|
if (!hash_util.is_create_new_stream_narrow()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (stream_data.get_notifications_stream() === "") {
|
||||||
|
$("#announce-new-stream").hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$("#announce-new-stream").show();
|
||||||
|
|
||||||
|
const notifications_stream = stream_data.get_notifications_stream();
|
||||||
|
const notifications_stream_sub = stream_data.get_sub_by_name(notifications_stream);
|
||||||
|
const rendered_announce_stream = render_announce_stream_checkbox({
|
||||||
|
notifications_stream_sub,
|
||||||
|
});
|
||||||
|
$("#announce-new-stream").expectOne().html(rendered_announce_stream);
|
||||||
|
}
|
||||||
|
|
||||||
export function update_stream_privacy_icon_in_settings(sub) {
|
export function update_stream_privacy_icon_in_settings(sub) {
|
||||||
if (!hash_util.is_editing_stream(sub.stream_id)) {
|
if (!hash_util.is_editing_stream(sub.stream_id)) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<label class="checkbox">
|
||||||
|
<input type="checkbox" name="announce" value="announce" checked />
|
||||||
|
<span></span>
|
||||||
|
{{t "Announce new stream in"}}
|
||||||
|
{{#if notifications_stream_sub}}
|
||||||
|
<strong>
|
||||||
|
{{> ../inline_decorated_stream_name
|
||||||
|
stream=notifications_stream_sub
|
||||||
|
}}
|
||||||
|
</strong>
|
||||||
|
{{/if}}
|
||||||
|
{{> ../help_link_widget link="/help/configure-notification-bot#new-stream-announcements"}}
|
||||||
|
</label>
|
|
@ -20,8 +20,14 @@
|
||||||
<input type="text" name="stream_description" id="create_stream_description" class="settings_text_input"
|
<input type="text" name="stream_description" id="create_stream_description" class="settings_text_input"
|
||||||
placeholder="{{t 'Stream description' }}" value="" autocomplete="off" maxlength="{{ max_stream_description_length }}" />
|
placeholder="{{t 'Stream description' }}" value="" autocomplete="off" maxlength="{{ max_stream_description_length }}" />
|
||||||
</section>
|
</section>
|
||||||
|
{{#if ask_to_announce_stream}}
|
||||||
|
<div id="announce-new-stream">
|
||||||
|
{{>announce_stream_checkbox }}
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
<section class="block" id="make-invite-only">
|
<section class="block" id="make-invite-only">
|
||||||
<div class="stream-types">
|
<div class="stream-types">
|
||||||
|
<h3 class="stream_setting_subsection_title">{{t "Stream permissions" }}</h3>
|
||||||
{{> stream_types
|
{{> stream_types
|
||||||
stream_post_policy=stream_post_policy_values.everyone.code
|
stream_post_policy=stream_post_policy_values.everyone.code
|
||||||
is_stream_edit=false
|
is_stream_edit=false
|
||||||
|
|
|
@ -16,17 +16,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if ask_to_announce_stream}}
|
|
||||||
<div id="announce-new-stream">
|
|
||||||
<label class="checkbox">
|
|
||||||
<input type="checkbox" name="announce" value="announce" checked />
|
|
||||||
<span></span>
|
|
||||||
{{t "Announce stream" }}
|
|
||||||
</label>
|
|
||||||
<span class="fa fa-info-circle settings-info-icon" aria-hidden="true" id="announce-stream-docs"></span>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<label class="dropdown-title">{{t 'Who can post to the stream?'}}
|
<label class="dropdown-title">{{t 'Who can post to the stream?'}}
|
||||||
{{> ../help_link_widget link="/help/stream-sending-policy" }}
|
{{> ../help_link_widget link="/help/stream-sending-policy" }}
|
||||||
|
|
Loading…
Reference in New Issue