').text(value));
row.append($('
{{icon name='remove' iclass='text-danger'}}
').css('cursor', 'pointer').click(function () {
$(this).closest('div.row').remove();
return false;
}));
$('fieldset.method.' + cl + ' .row.' + cl + '-arg-form', form).before(row);
},
fetchAuthentication = function(identifier) {
$(form.identifier).hide();
$.getJSON($.service('auth_source', 'fetch'), {
identifier: identifier
}, function (data) {
var id = data.identifier;
$(form.existing).val(id);
$(form.identifier).val(id);
$(form.method).val(data.method).change().trigger("change.select2");
$(form.url).val(data.url);
$(form.user).val(data.user);
switch (data.method) {
case 'basic':
$(form.basic_username).val(data.arguments.username);
$(form.basic_password).val(data.arguments.password);
break;
case 'get':
$(form.get_url).val(data.arguments.url);
break;
case 'post':
$(form.post_url).val(data.arguments.post_url);
$('fieldset.method.post .row.post-arg', form).remove();
$.each(data.arguments, function (key, value) {
if (key !== 'post_url') {
addPostRow(key, value, 'post');
}
});
break;
case 'header':
$(form.header_name).val(data.arguments.header_name);
$(form.header).val(data.arguments.header);
break;
case 'body':
$('fieldset.method.body .row.body-arg', form).remove();
$.each(data.arguments, function (key, value) {
addPostRow(key, value, 'body');
});
break;
}
});
};
$(form).submit(function () {
return false;
});
$(form.existing).change(function () {
var val = $(this).val();
if (val.length) {
fetchAuthentication($(form.existing).val());
} else {
$(form.identifier).show().val('').focus();
$('input:not(:submit):not([name=ticket])', form).val('');
$('fieldset.method.post .row.post-arg').remove();
$('fieldset.method.body .row.body-arg').remove();
}
});
$(form.method).change(function () {
$('fieldset.method', form).hide();
$('fieldset.method.' + $(this).val(), form).show();
}).change();
reload();
$(form.save).click(function () {
var data = {
action: 'save',
identifier: $(form.identifier).val(),
url: $(form.url).val(),
method: $(form.method).val(),
user: $(form.user).val(),
ticket: $(form.ticket).val()
}, isNew = $(form.existing).val() === '';
switch (data.method) {
case 'basic':
data['arguments~username'] = $(form.basic_username).val();
data['arguments~password'] = $(form.basic_password).val();
break;
case 'get':
data['arguments~url'] = $(form.get_url).val();
break;
case 'post':
data['arguments~post_url'] = $(form.post_url).val();
$('fieldset.method.post .post-arg').each(function () {
data['arguments~' + $("label", this).text()] = $("div:first", this).text();
});
break;
case 'header':
data['arguments~header_name'] = $(form.header_name).val();
data['arguments~header'] = $(form.header).val();
break;
case 'body':
$('fieldset.method.body .body-arg').each(function () {
data['arguments~' + $("label", this).text()] = $("div:first", this).text();
});
break;
}
$.post($(form).attr('action'), data, function () {
if (isNew) {
$(form.existing).append($('
').text(data.identifier));
}
$(form.existing).val(data.identifier).change();
$(form.existing).trigger("change.select2");
}, 'json')
.done(function (data) {
location.href = location.href.replace(/\?.*$/, "") + '?identifier=' + encodeURIComponent(data.identifier);
});
return false;
});
$(form.delete).click(function () {
if (confirm(tr('Delete authentication?'))) {
$.post($(form).attr('action'), {
action: 'delete',
identifier: $(form.existing).val(),
ticket: $(form.ticket).val()
}, function () {
$(form.existing).val('').change();
reload();
}, 'json')
.done(function (data) {
location.href = location.href.replace(/\?.*$/, "");
});
return false;
}
});
$(form.post_new_add).click(function () {
addPostRow($(form.post_new_field).val(), $(form.post_new_value).val(), 'post');
$(form.post_new_field).val('').focus();
$(form.post_new_value).val('');
return false;
});
$(form.body_new_add).click(function () {
addPostRow($(form.body_new_field).val(), $(form.body_new_value).val(), 'body');
$(form.body_new_field).val('').focus();
$(form.body_new_value).val('');
return false;
});
if (location.href.indexOf('identifier=') > -1) {
var oneparam = [], paramarray = {}, urlparams = location.href.slice(location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < urlparams.length; i++) {
oneparam = urlparams[i].split('=');
paramarray[oneparam[0]] = decodeURIComponent(oneparam[1]);
}
fetchAuthentication(paramarray['identifier']);
}
});
{/jq}