scinote-web/app/assets/javascripts/protocols/new_protocol.js

49 lines
1.8 KiB
JavaScript
Raw Normal View History

2023-02-17 21:27:20 +08:00
/* global dropdownSelector HelperModule */
(function() {
const protocolModal = '#newProtocolModal';
const submitButton = $('.create-protocol-button');
2023-02-17 21:27:20 +08:00
let roleSelector = `${protocolModal} #protocol_role_selector`;
2023-02-17 21:27:20 +08:00
dropdownSelector.init(roleSelector, {
noEmptyOption: true,
singleSelect: true,
closeOnSelect: true,
selectAppearance: 'simple',
onChange: function() {
$('#protocol_default_public_user_role_id').val(dropdownSelector.getValues(roleSelector));
}
});
$(protocolModal)
.on('change', '#protocol_visibility', function() {
let checked = $(this)[0].checked;
$('#roleSelectWrapper').toggleClass('hidden', !checked);
$('#protocol_default_public_user_role_id').prop('disabled', !checked);
})
.on('submit', function() {
submitButton.attr('disabled', 'disabled');
})
.on('shown.bs.modal', function() {
$(`${protocolModal} #protocol_name`).parent().removeClass('error');
$(`${protocolModal} #protocol_name`).val('');
const protocolName = $(`a[data-target="${protocolModal}"]`).attr('data-protocol-name');
if (protocolName) {
$(this).find('.sci-input-field').val(protocolName);
}
$(this).find('.sci-input-field').focus();
})
2023-02-17 21:27:20 +08:00
.on('ajax:error', 'form', function(e, error) {
let msg = error.responseJSON.error;
submitButton.attr('disabled', false);
$(`${protocolModal} #protocol_name`).parent().addClass('error').attr('data-error-text', msg);
2023-02-17 21:27:20 +08:00
})
.on('ajax:success', 'form', function(e, data) {
if (data.message) {
HelperModule.flashAlertMsg(data.message, 'success');
}
$(`${protocolModal} #protocol_name`).parent().removeClass('error');
submitButton.attr('disabled', false);
$(protocolModal).modal('hide');
2023-02-17 21:27:20 +08:00
});
}());