diff --git a/frontend_tests/node_tests/templates.js b/frontend_tests/node_tests/templates.js index ad635adaa7..b6d137a6b6 100644 --- a/frontend_tests/node_tests/templates.js +++ b/frontend_tests/node_tests/templates.js @@ -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. diff --git a/static/js/settings_bots.js b/static/js/settings_bots.js index b6e7caacf3..770e8234c4 100644 --- a/static/js/settings_bots.js +++ b/static/js/settings_bots.js @@ -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); diff --git a/static/templates/settings/edit-embedded-bot-service.handlebars b/static/templates/settings/edit-embedded-bot-service.handlebars new file mode 100644 index 0000000000..798dcf1396 --- /dev/null +++ b/static/templates/settings/edit-embedded-bot-service.handlebars @@ -0,0 +1,9 @@ +