frontend: Add embedded bot config data editing.

This commit is contained in:
Robert Hönig
2018-02-01 13:57:24 +01:00
committed by Tim Abbott
parent 7b7f4cc62d
commit 695b3e48e8
3 changed files with 32 additions and 2 deletions

View File

@@ -1531,6 +1531,16 @@ function render(template_name, args) {
assert.equal($(html).find('#edit_service_interface').attr('value'), args.service.interface);
}());
(function edit_embedded_bot_service() {
var args = {
service: {service_name: "giphy",
config_data: {key: "abcd1234"}},
};
var html = render('edit-embedded-bot-service', args);
assert.equal($(html).find('#embedded_bot_key_edit').attr('name'), 'key');
assert.equal($(html).find('#embedded_bot_key_edit').val(), 'abcd1234');
}());
// By the end of this test, we should have compiled all our templates. Ideally,
// we will also have exercised them to some degree, but that's a little trickier
// to enforce.

View File

@@ -279,11 +279,16 @@ exports.set_up = function () {
var errors = form.find('.bot_edit_errors');
$("#settings_page .edit_bot .edit-bot-owner select").val(bot.owner);
var service = bot_data.get_services(bot_id)[0];
if (bot.bot_type.toString() === OUTGOING_WEBHOOK_BOT_TYPE) {
var services = bot_data.get_services(bot_id);
$("#service_data").append(templates.render("edit-outgoing-webhook-service",
{service: services[0]}));
{service: service}));
}
if (bot.bot_type.toString() === EMBEDDED_BOT_TYPE) {
$("#service_data").append(templates.render("edit-embedded-bot-service",
{service: service}));
}
avatar_widget.clear();
form.validate({
@@ -312,6 +317,12 @@ exports.set_up = function () {
var service_interface = $("#edit_service_interface :selected").val();
formData.append('service_payload_url', JSON.stringify(service_payload_url));
formData.append('service_interface', service_interface);
} else if (type === EMBEDDED_BOT_TYPE) {
var config_data = {};
$("#config_edit_inputbox input").each(function () {
config_data[$(this).attr('name')] = $(this).val();
});
formData.append('config_data', JSON.stringify(config_data));
}
jQuery.each(file_input[0].files, function (i, file) {
formData.append('file-'+i, file);

View File

@@ -0,0 +1,9 @@
<div id="config_edit_inputbox">
{{#each service.config_data}}
<div class="input-group">
<label for="embedded_bot_{{@key}}_edit">{{@key}}</label>
<input type="text" name="{{@key}}" id="embedded_bot_{{@key}}_edit"
maxlength=1000 value="{{this}}" />
</div>
{{/each}}
</div>