mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
invite: Add checkbox to select all default streams.
We now add a checkbox in "Steams they should join" to directly select all default streams in the realm for the invite. We hide the stream list if that option is selected.
This commit is contained in:
@@ -47,11 +47,17 @@ function get_common_invitation_data() {
|
||||
expires_in = Number.parseFloat($("#expires_in").val());
|
||||
}
|
||||
|
||||
const stream_ids = [];
|
||||
$("#invite-stream-checkboxes input:checked").each(function () {
|
||||
const stream_id = Number.parseInt($(this).val(), 10);
|
||||
stream_ids.push(stream_id);
|
||||
});
|
||||
let stream_ids = [];
|
||||
const default_stream_ids = stream_data.get_default_stream_ids();
|
||||
if (default_stream_ids.length !== 0 && $("#invite_select_default_streams").prop("checked")) {
|
||||
stream_ids = default_stream_ids;
|
||||
} else {
|
||||
$("#invite-stream-checkboxes input:checked").each(function () {
|
||||
const stream_id = Number.parseInt($(this).val(), 10);
|
||||
stream_ids.push(stream_id);
|
||||
});
|
||||
}
|
||||
|
||||
const data = {
|
||||
csrfmiddlewaretoken: $('input[name="csrfmiddlewaretoken"]').attr("value"),
|
||||
invite_as,
|
||||
@@ -185,9 +191,11 @@ function update_subscription_checkboxes() {
|
||||
const data = {
|
||||
streams: get_invite_streams(),
|
||||
notifications_stream: stream_data.get_notifications_stream(),
|
||||
show_select_default_streams_option: stream_data.get_default_stream_ids().length !== 0,
|
||||
};
|
||||
const html = render_invite_subscription(data);
|
||||
$("#streams_to_add").html(html);
|
||||
set_streams_to_join_list_visibility();
|
||||
}
|
||||
|
||||
function prepare_form_to_be_shown() {
|
||||
@@ -270,6 +278,17 @@ function set_custom_time_inputs_visibility() {
|
||||
}
|
||||
}
|
||||
|
||||
function set_streams_to_join_list_visibility() {
|
||||
const default_streams_selected = $("#invite_select_default_streams").prop("checked");
|
||||
if (default_streams_selected) {
|
||||
$("#streams_to_add .invite-stream-controls").hide();
|
||||
$("#invite-stream-checkboxes").hide();
|
||||
} else {
|
||||
$("#streams_to_add .invite-stream-controls").show();
|
||||
$("#invite-stream-checkboxes").show();
|
||||
}
|
||||
}
|
||||
|
||||
export function initialize() {
|
||||
const time_unit_choices = ["minutes", "hours", "days", "weeks"];
|
||||
const rendered = render_invite_user({
|
||||
@@ -286,11 +305,15 @@ export function initialize() {
|
||||
set_expires_on_text();
|
||||
|
||||
$(document).on("click", "#invite_check_all_button", () => {
|
||||
$("#streams_to_add :checkbox").prop("checked", true);
|
||||
$("#invite-stream-checkboxes :checkbox").prop("checked", true);
|
||||
});
|
||||
|
||||
$(document).on("click", "#invite_uncheck_all_button", () => {
|
||||
$("#streams_to_add :checkbox").prop("checked", false);
|
||||
$("#invite-stream-checkboxes :checkbox").prop("checked", false);
|
||||
});
|
||||
|
||||
$(document).on("change", "#invite_select_default_streams", () => {
|
||||
set_streams_to_join_list_visibility();
|
||||
});
|
||||
|
||||
$("#submit-invitation").on("click", () => {
|
||||
|
@@ -1,4 +1,13 @@
|
||||
{{! Client-side Mustache template for rendering subscriptions in the "invite user" form.}}
|
||||
{{#if show_select_default_streams_option}}
|
||||
<div class="select_default_streams new-style">
|
||||
<label class="checkbox display-block">
|
||||
<input type="checkbox" id="invite_select_default_streams" checked="checked" />
|
||||
<span></span>
|
||||
{{t 'Default streams for this organization'}}
|
||||
</label>
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="invite-stream-controls">
|
||||
<button class="btn btn-link" type="button" id="invite_check_all_button">{{t "Check all" }}</button> |
|
||||
<button class="btn btn-link" type="button" id="invite_uncheck_all_button">{{t "Uncheck all" }}</button>
|
||||
|
Reference in New Issue
Block a user