From a24726ec3924d30c564c48d2279791c44fdb7ec7 Mon Sep 17 00:00:00 2001 From: Martin Artnik <85488244+artoscinote@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:08:46 +0200 Subject: [PATCH] Check for locked inventory rows when enabling edit, instead of preload [SCI-11135] (#7926) --- .../repositories/repository_datatable.js | 9 ++---- .../javascripts/repositories/row_editor.js | 28 ++++++++++++++++++- app/helpers/repository_datatable_helper.rb | 4 ++- app/views/repository_rows/index.json.jbuilder | 2 +- app/views/repository_rows/show.json.jbuilder | 1 + 5 files changed, 35 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/repositories/repository_datatable.js b/app/assets/javascripts/repositories/repository_datatable.js index 9850f40af..933bed39a 100644 --- a/app/assets/javascripts/repositories/repository_datatable.js +++ b/app/assets/javascripts/repositories/repository_datatable.js @@ -317,9 +317,7 @@ var RepositoryDatatable = (function(global) { checkAvailableColumns(); - RepositoryDatatableRowEditor.switchRowToEditMode(row); - - changeToEditMode(); + RepositoryDatatableRowEditor.switchRowToEditMode(row, changeToEditMode); }); } @@ -692,6 +690,7 @@ var RepositoryDatatable = (function(global) { }, rowCallback: function(row, data) { $(row).attr('data-editable', data.recordEditable); + $(row).attr('data-info-url', data.recordInfoUrl); $(row).attr('data-manage-stock-url', data.manageStockUrl); // Get row ID let rowId = data.DT_RowId; @@ -1003,10 +1002,8 @@ var RepositoryDatatable = (function(global) { $(TABLE_ID).find('.repository-row-edit-icon').remove(); rowsSelected.forEach(function(rowNumber) { - RepositoryDatatableRowEditor.switchRowToEditMode(TABLE.row('#' + rowNumber)); + RepositoryDatatableRowEditor.switchRowToEditMode(TABLE.row('#' + rowNumber), changeToEditMode); }); - - changeToEditMode(); }) .on('click', '#assignRepositoryRecords', function(e) { e.preventDefault(); diff --git a/app/assets/javascripts/repositories/row_editor.js b/app/assets/javascripts/repositories/row_editor.js index 48a9517c8..490b6f63d 100644 --- a/app/assets/javascripts/repositories/row_editor.js +++ b/app/assets/javascripts/repositories/row_editor.js @@ -173,11 +173,17 @@ var RepositoryDatatableRowEditor = (function() { TABLE.columns.adjust(); } - function switchRowToEditMode(row) { + function enableEditMode(row, isEditable) { + if (!isEditable) { + HelperModule.flashAlertMsg(I18n.t('repositories.table.row_locked'), 'danger'); + return false; + } + let $row = $(row.node()); let itemId = row.id(); let formId = `repositoryRowForm${itemId}`; let requestUrl = $(TABLE.table().node()).data('current-uri'); + let rowForm = $(`