mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +00:00
Add UI to create bots with a default send to stream
(imported from commit 1333de89a75bd972ec85be7f11f6ea11d4fa34cd)
This commit is contained in:
@@ -44,6 +44,7 @@ exports.show_autoscroll_forever_option = page_params.show_autoscroll_forever_opt
|
|||||||
|
|
||||||
exports.full_width = false; //page_params.staging;
|
exports.full_width = false; //page_params.staging;
|
||||||
exports.cleanup_before_reload = page_params.staging || is_customer4;
|
exports.cleanup_before_reload = page_params.staging || is_customer4;
|
||||||
|
exports.new_bot_ui = page_params.staging;
|
||||||
|
|
||||||
// This list must match the list of domains in enqueue_digest_emails.
|
// This list must match the list of domains in enqueue_digest_emails.
|
||||||
exports.dont_show_digest_email_setting = _.contains(["mit.edu", "customer29.invalid", "customer20.invalid"],
|
exports.dont_show_digest_email_setting = _.contains(["mit.edu", "customer29.invalid", "customer20.invalid"],
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ var settings = (function () {
|
|||||||
|
|
||||||
var exports = {};
|
var exports = {};
|
||||||
|
|
||||||
|
var streams = [];
|
||||||
|
|
||||||
function add_bot_row(name, email, avatar_url, api_key) {
|
function add_bot_row(name, email, avatar_url, api_key) {
|
||||||
var info = {
|
var info = {
|
||||||
name: name,
|
name: name,
|
||||||
@@ -20,6 +22,16 @@ function is_local_part(value, element) {
|
|||||||
return this.optional(element) || /^[\-!#$%&'*+\/=?\^_`{}|~0-9A-Z]+(\.[\-!#$%&'*+\/=?\^_`{}|~0-9A-Z]+)*$/i.test(value);
|
return this.optional(element) || /^[\-!#$%&'*+\/=?\^_`{}|~0-9A-Z]+(\.[\-!#$%&'*+\/=?\^_`{}|~0-9A-Z]+)*$/i.test(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function build_stream_list($select) {
|
||||||
|
$select.empty();
|
||||||
|
_.each(_.pluck(streams, 'name'), function (name) {
|
||||||
|
$select.append($('<option>')
|
||||||
|
.attr('value', name)
|
||||||
|
.text(name)
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Choose avatar stamp fairly randomly, to help get old avatars out of cache.
|
// Choose avatar stamp fairly randomly, to help get old avatars out of cache.
|
||||||
exports.avatar_stamp = Math.floor(Math.random()*100);
|
exports.avatar_stamp = Math.floor(Math.random()*100);
|
||||||
|
|
||||||
@@ -45,6 +57,14 @@ exports.setup_page = function () {
|
|||||||
|
|
||||||
clear_password_change();
|
clear_password_change();
|
||||||
|
|
||||||
|
channel.get({
|
||||||
|
url: '/json/streams',
|
||||||
|
success: function (data) {
|
||||||
|
streams = data.streams;
|
||||||
|
build_stream_list($('#create_bot_default_sending_stream'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$('#api_key_button').click(function (e) {
|
$('#api_key_button').click(function (e) {
|
||||||
if (page_params.password_auth_enabled !== false) {
|
if (page_params.password_auth_enabled !== false) {
|
||||||
$("#get_api_key_box").show();
|
$("#get_api_key_box").show();
|
||||||
@@ -68,6 +88,9 @@ exports.setup_page = function () {
|
|||||||
if (feature_flags.dont_show_digest_email_setting) {
|
if (feature_flags.dont_show_digest_email_setting) {
|
||||||
$("#digest_container").hide();
|
$("#digest_container").hide();
|
||||||
}
|
}
|
||||||
|
if (!feature_flags.new_bot_ui) {
|
||||||
|
$('.new-bot-ui').hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function settings_change_error(message) {
|
function settings_change_error(message) {
|
||||||
@@ -363,10 +386,16 @@ exports.setup_page = function () {
|
|||||||
submitHandler: function () {
|
submitHandler: function () {
|
||||||
var full_name = $('#create_bot_name').val();
|
var full_name = $('#create_bot_name').val();
|
||||||
var short_name = $('#create_bot_short_name').val();
|
var short_name = $('#create_bot_short_name').val();
|
||||||
|
var default_sending_stream = $('#create_bot_default_sending_stream').val();
|
||||||
var formData = new FormData();
|
var formData = new FormData();
|
||||||
formData.append('csrfmiddlewaretoken', csrf_token);
|
formData.append('csrfmiddlewaretoken', csrf_token);
|
||||||
formData.append('full_name', full_name);
|
formData.append('full_name', full_name);
|
||||||
formData.append('short_name', short_name);
|
formData.append('short_name', short_name);
|
||||||
|
|
||||||
|
if (feature_flags.new_bot_ui) {
|
||||||
|
formData.append('default_sending_stream', default_sending_stream);
|
||||||
|
}
|
||||||
|
|
||||||
jQuery.each($('#bot_avatar_file_input')[0].files, function (i, file) {
|
jQuery.each($('#bot_avatar_file_input')[0].files, function (i, file) {
|
||||||
formData.append('file-'+i, file);
|
formData.append('file-'+i, file);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -237,6 +237,10 @@
|
|||||||
placeholder="bot_user_name" value="" />-bot@{{ page_params.domain }}
|
placeholder="bot_user_name" value="" />-bot@{{ page_params.domain }}
|
||||||
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
|
<div><label for="create_bot_short_name" generated="true" class="text-error"></label></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="control-group new-bot-ui">
|
||||||
|
<label for="create_bot_default_sending_stream" class="control-label">Send to stream</label>
|
||||||
|
<select name="bot_default_sending_stream" id="create_bot_default_sending_stream"></select>
|
||||||
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<div id="bot_avatar_file"></div>
|
<div id="bot_avatar_file"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user