1 package C4::Utils::DataTables::ColumnsSettings;
4 use List::Util qw( first );
11 C4::Context->config('intranetdir') . '/admin/columns_settings.yml';
12 my $yaml = eval { YAML::LoadFile($yml_path) };
14 "ERROR: the yaml file for DT::ColumnsSettings is not correctly formated: $@"
20 my ( $module, $page, $tablename ) = @_;
24 my $schema = Koha::Database->new->schema;
26 my $rs = $schema->resultset('ColumnsSetting')->search(
30 tablename => $tablename,
34 while ( my $c = $rs->next ) {
35 my $column = first { $c->columnname eq $_->{columnname} }
36 @{ $list->{modules}{ $c->module }{ $c->page }{ $c->tablename } };
37 $column->{is_hidden} = $c->is_hidden;
38 $column->{cannot_be_toggled} = $c->cannot_be_toggled;
41 return $list->{modules}{$module}{$page}{$tablename} || [];
47 my $schema = Koha::Database->new->schema;
48 my $rs = $schema->resultset('ColumnsSetting')->search;
50 while ( my $c = $rs->next ) {
51 my $column = first { $c->columnname eq $_->{columnname} }
52 @{ $list->{modules}{ $c->module }{ $c->page }{ $c->tablename } };
53 $column->{is_hidden} = $c->is_hidden;
54 $column->{cannot_be_toggled} = $c->cannot_be_toggled;
57 return $list->{modules};
62 my $columns = $params->{columns};
64 my $schema = Koha::Database->new->schema;
66 for my $c (@$columns) {
67 $c->{is_hidden} //= 0;
68 $c->{cannot_be_toggled} //= 0;
70 $schema->resultset('ColumnsSetting')->update_or_create(
72 module => $c->{module},
74 tablename => $c->{tablename},
75 columnname => $c->{columnname},
76 is_hidden => $c->{is_hidden},
77 cannot_be_toggled => $c->{cannot_be_toggled},