docs/meteor/client/views/dashboard/apps/dashboard-apps-settings.js

53 lines
1.7 KiB
JavaScript
Executable File

var getConfigVars = function ($form) {
var configVars = {};
$form.find('.env-var-pair').each(function () {
var envKey = $(this).find('.env-var-key').data('key');
var envVal = $(this).find('.env-var-value').data('value');
if (envKey) {
configVars[envKey] = envVal;
}
});
return configVars;
};
Template.dashboard_apps_settings.events({
'click .btn-delete-var': function (e) {
var $button = $(e.currentTarget);
$button.attr("disabled", "disabled");
var $form = $button.parents('.form-env-vars');
var appId = $button.data('app-id');
var envKey = $button.data('key');
var configVars = getConfigVars($form);
delete configVars[envKey];
Meteor.call('configVar', appId, configVars, function () {
$button.removeAttr('disabled');
});
},
'submit .form-env-vars': function (e) {
var $form = $(e.currentTarget);
var appId = this._id;
var configVars = getConfigVars($form);
var newKey = $form.find('input[name="env-var-key"]').val().trim();
var newVal = $form.find('input[name="env-var-value"]').val().trim();
if (newKey && newVal) {
configVars[newKey] = newVal;
Meteor.call('configVar', appId, configVars, function () {
$form.find('input[name="env-var-key"]').val('');
$form.find('input[name="env-var-value"]').val('');
});
}
e.preventDefault();
e.stopPropagation();
return false;
},
'click .btn-delete-app': function () {
var result = confirm("Are you sure you want to delete this app?");
if (result === true) {
Meteor.call('deleteApp', this._id, function (err) {
if (err) { throw err; }
});
Router.go('dashboard_apps');
}
}
});