mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-04 19:53:19 +08:00
101 lines
3.3 KiB
JavaScript
101 lines
3.3 KiB
JavaScript
/* global HelperModule */
|
|
|
|
(function() {
|
|
let selectedTasks = [];
|
|
|
|
$('#module-archive').on('click', '.task-selector', function() {
|
|
let taskId = $(this).closest('.task-selector-container').data('task-id');
|
|
let index = $.inArray(taskId, selectedTasks);
|
|
|
|
// If checkbox is checked and row ID is not in list of selected folder IDs
|
|
if (this.checked && index === -1) {
|
|
selectedTasks.push(taskId);
|
|
} else if (!this.checked && index !== -1) {
|
|
selectedTasks.splice(index, 1);
|
|
}
|
|
|
|
const items = selectedTasks.length ? JSON.stringify(selectedTasks.map((item) => ({ id: item }))) : [];
|
|
window.actionToolbarComponent.fetchActions({ items });
|
|
});
|
|
|
|
function restoreMyModules(url, ids) {
|
|
$.post(url, { my_modules_ids: ids, view: 'cards' }, () => {
|
|
window.location.reload();
|
|
});
|
|
}
|
|
|
|
function initRestoreMyModules() {
|
|
$('#module-archive').on('click', '#restoreTask', (e) => {
|
|
$('#restoreTask').addClass('disable-click');
|
|
e.stopPropagation();
|
|
restoreMyModules(e.currentTarget.dataset.url, selectedTasks);
|
|
});
|
|
}
|
|
|
|
function initMoveButton() {
|
|
$('#module-archive').on('click', '#moveTask', function(e) {
|
|
e.preventDefault();
|
|
|
|
const cardsContainer = $('#cards-container');
|
|
$.get(cardsContainer.data('move-modules-modal-url'), (modalData) => {
|
|
if ($('#modal-move-modules').length > 0) {
|
|
$('#modal-move-modules').replaceWith(modalData.html);
|
|
} else {
|
|
$('#module-archive').append(modalData.html);
|
|
}
|
|
|
|
$('#modal-move-modules').on('shown.bs.modal', function() {
|
|
$(this).find('.selectpicker').selectpicker().focus();
|
|
});
|
|
|
|
$('#modal-move-modules').on('click', 'button[data-action="confirm"]', () => {
|
|
$('#modal-move-modules button[data-action="confirm"]').addClass('disable-click');
|
|
|
|
const moveParams = {
|
|
to_experiment_id: $('#modal-move-modules').find('.selectpicker').val(),
|
|
my_module_ids: selectedTasks
|
|
};
|
|
$.post(cardsContainer.data('move-modules-url'), moveParams, (data) => {
|
|
HelperModule.flashAlertMsg(data.message, 'success');
|
|
window.location.reload();
|
|
}).fail((data) => {
|
|
$('#modal-move-modules button[data-action="confirm"]').removeClass('disable-click');
|
|
HelperModule.flashAlertMsg(data.responseJSON.message, 'danger');
|
|
});
|
|
$('#modal-move-modules').modal('hide');
|
|
});
|
|
|
|
$('#modal-move-modules').modal('show');
|
|
});
|
|
});
|
|
}
|
|
|
|
function initAccessModal() {
|
|
$('#module-archive').on('click', '#openAccessModal', (e) => {
|
|
e.preventDefault();
|
|
const container = document.getElementById('accessModalContainer');
|
|
const target = e.currentTarget;
|
|
|
|
$.get(target.dataset.url, (data) => {
|
|
const object = {
|
|
...data.data.attributes,
|
|
id: data.data.id,
|
|
type: data.data.type
|
|
};
|
|
const { rolesUrl } = container.dataset;
|
|
const params = {
|
|
object,
|
|
roles_path: rolesUrl
|
|
};
|
|
const modal = $('#accessModalComponent').data('accessModal');
|
|
modal.params = params;
|
|
modal.open();
|
|
});
|
|
});
|
|
}
|
|
|
|
window.initActionToolbar();
|
|
initRestoreMyModules();
|
|
initMoveButton();
|
|
initAccessModal();
|
|
}());
|