Bugzilla – Attachment 187736 Details for
Bug 40982
Basket: Orders table — "Modify" and "Cancel order" columns missing or displayed incorrectly
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 40982: Allow to force visibility when needed
Bug-40982-Allow-to-force-visibility-when-needed.patch (text/plain), 5.35 KB, created by
Slava Shishkin
on 2025-10-10 14:02:26 UTC
(
hide
)
Description:
Bug 40982: Allow to force visibility when needed
Filename:
MIME Type:
Creator:
Slava Shishkin
Created:
2025-10-10 14:02:26 UTC
Size:
5.35 KB
patch
obsolete
>From 9f6a56b90139cfd75f8cd96cb2b0a837b18129b5 Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Fri, 10 Oct 2025 07:01:36 +0200 >Subject: [PATCH] Bug 40982: Allow to force visibility when needed > >The _dt_visibility function is only called when the state is >initialized. Here we want to force the visibility of some columns even >if the state exists already. > >The idea of this patch is to add a new 'force_visibility' flag to the >column when the visibility needs to be respected regardless what is in >the state. That should only be used when column cannot be toggled. > >Signed-off-by: Slava Shishkin <slavashishkin@gmail.com> >--- > .../prog/en/modules/acqui/basket.tt | 27 +++++++++----- > koha-tmpl/intranet-tmpl/prog/js/datatables.js | 36 +++++++++++++++++++ > 2 files changed, 54 insertions(+), 9 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >index d0af80fbbbd..f54610f2106 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >@@ -1267,24 +1267,33 @@ > <script> > $(document).ready(function() { > var table_settings = [% TablesSettings.GetTableSettings( 'acqui', 'basket', 'orders', 'json' ) | $raw %]; >+ >+ let supplier_report_column = table_settings.columns.find(c => c.columnname == 'supplier_report'); > [% IF !(Koha.Preference('EDIFACT') && ediaccount) %] >- table_settings.columns.find(c => c.columnname == 'supplier_report').is_hidden = 1; >- table_settings.columns.find(c => c.columnname == 'supplier_report').cannot_be_toggled = 1; >+ supplier_report_column.is_hidden = 1; >+ supplier_report_column.cannot_be_toggled = 1; > [% ELSE %] >- table_settings.columns.find(c => c.columnname == 'supplier_report').is_hidden = 0; >+ supplier_report_column.is_hidden = 0; > [% END %] >+ supplier_report_column.force_visibility = 1; >+ >+ let modify_column = table_settings.columns.find(c => c.columnname == 'modify'); > [% IF ( active && !closedate ) %] >- table_settings.columns.find(c => c.columnname == 'modify').is_hidden = 0; >+ modify_column.is_hidden = 0; > [% ELSE %] >- table_settings.columns.find(c => c.columnname == 'modify').is_hidden = 1; >- table_settings.columns.find(c => c.columnname == 'modify').cannot_be_toggled = 1; >+ modify_column.is_hidden = 1; >+ modify_column.cannot_be_toggled = 1; > [% END %] >+ modify_column.force_visibility = 1; >+ >+ let cancel_column = table_settings.columns.find(c => c.columnname == 'cancel'); > [% IF !closedate || Koha.Preference('CancelOrdersInClosedBaskets') %] >- table_settings.columns.find(c => c.columnname == 'cancel').is_hidden = 0; >+ cancel_column.is_hidden = 0; > [% ELSE %] >- table_settings.columns.find(c => c.columnname == 'cancel').is_hidden = 1; >- table_settings.columns.find(c => c.columnname == 'cancel').cannot_be_toggled = 1; >+ cancel_column.is_hidden = 1; >+ cancel_column.cannot_be_toggled = 1; > [% END %] >+ cancel_column.force_visibility = 1; > > $("#orders").kohaTable({ > bKohaColumnsUseNames: true, >diff --git a/koha-tmpl/intranet-tmpl/prog/js/datatables.js b/koha-tmpl/intranet-tmpl/prog/js/datatables.js >index 3af04d2a160..68d135b4ec3 100644 >--- a/koha-tmpl/intranet-tmpl/prog/js/datatables.js >+++ b/koha-tmpl/intranet-tmpl/prog/js/datatables.js >@@ -950,6 +950,39 @@ function _dt_buttons(params) { > return buttons; > } > >+function _dt_force_visibility(table_settings, table_dt, state) { >+ var columns_settings = table_settings.columns; >+ let i = 0; >+ let use_names = $(table_dt.table().node()).data("bKohaColumnsUseNames"); >+ if (use_names) { >+ let force_vis_columns = table_settings.columns.filter( >+ c => c.force_visibility >+ ); >+ if (!force_vis_columns.length) return state; >+ table_dt >+ .columns( >+ force_vis_columns >+ .map(c => "[data-colname='%s']".format(c.columnname)) >+ .join(",") >+ ) >+ .every(function () { >+ state.columns[this.index()].visible = >+ table_settings.columns.find( >+ c => >+ c.columnname == >+ this.header().getAttribute("data-colname") >+ ).is_hidden >+ ? false >+ : true; >+ }); >+ } else { >+ throw new Error( >+ "Cannot force column visibility without bKohaColumnsUseNames!" >+ ); >+ } >+ return state; >+} >+ > function _dt_visibility(table_settings, table_dt) { > let hidden_ids = []; > if (table_settings) { >@@ -1183,6 +1216,9 @@ function _dt_save_restore_state(table_settings, external_filter_nodes = {}) { > delete state.search; > state.columns.forEach(c => delete c.search); > } >+ >+ state = _dt_force_visibility(table_settings, this.api(), state); >+ > return state; > }; > >-- >2.51.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 40982
:
187651
|
187711
|
187712
|
187724
|
187726
|
187735
| 187736 |
187737
|
187738