From a4aeb5e54fb9f715871a2007b3f90bc6bcf6c778 Mon Sep 17 00:00:00 2001 From: Aleisha Amohia Date: Tue, 3 Oct 2023 00:03:12 +0000 Subject: [PATCH] Bug 33478: [WIP] CSS area instead of specific style inputs This patch implements a single style field for the slip to allow for more advanced CSS customisation. This prevents the forcing of default styles which override the SlipCSS syspref settings. There are links to insert selectors as helpers. --- .../bug_33478-add_letter_columns.pl | 46 +------ installer/data/mysql/kohastructure.sql | 7 +- .../includes/notice_format_translations.inc | 16 --- .../prog/en/includes/slip_content.inc | 15 --- .../prog/en/modules/circ/printslip.tt | 3 +- .../prog/en/modules/members/printfeercpt.tt | 3 +- .../prog/en/modules/members/printinvoice.tt | 3 +- .../prog/en/modules/members/printnotice.tt | 3 +- .../prog/en/modules/pos/printreceipt.tt | 3 +- .../prog/en/modules/tools/letter.tt | 122 +++++++----------- tools/letter.pl | 32 +---- 11 files changed, 62 insertions(+), 191 deletions(-) delete mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/notice_format_translations.inc diff --git a/installer/data/mysql/atomicupdate/bug_33478-add_letter_columns.pl b/installer/data/mysql/atomicupdate/bug_33478-add_letter_columns.pl index 772413026be..91caa660790 100644 --- a/installer/data/mysql/atomicupdate/bug_33478-add_letter_columns.pl +++ b/installer/data/mysql/atomicupdate/bug_33478-add_letter_columns.pl @@ -7,52 +7,12 @@ return { my ($args) = @_; my ($dbh, $out) = @$args{qw(dbh out)}; - if( !column_exists( 'letter', 'font_size' ) ) { + if( !column_exists( 'letter', 'style' ) ) { $dbh->do(q{ - ALTER TABLE letter ADD COLUMN `font_size` int(4) NOT NULL DEFAULT 14 AFTER `updated_on` + ALTER TABLE letter ADD COLUMN `style` mediumtext DEFAULT NULL AFTER `updated_on` }); - say $out "Added column 'letter.font_size'"; - } - - if( !column_exists( 'letter', 'text_justify' ) ) { - $dbh->do(q{ - ALTER TABLE letter ADD COLUMN `text_justify` enum('L','C','R') NOT NULL DEFAULT 'L' AFTER `font_size` - }); - - say $out "Added column 'letter.text_justify'"; - } - - if( !column_exists( 'letter', 'units' ) ) { - $dbh->do(q{ - ALTER TABLE letter ADD COLUMN `units` enum('POINT','INCH','MM','CM') NOT NULL DEFAULT 'INCH' AFTER `text_justify` - }); - - say $out "Added column 'letter.units'"; - } - - if( !column_exists( 'letter', 'notice_width' ) ) { - $dbh->do(q{ - ALTER TABLE letter ADD COLUMN `notice_width` float NOT NULL DEFAULT 8.5 AFTER `units` - }); - - say $out "Added column 'letter.notice_width'"; - } - - if( !column_exists( 'letter', 'top_margin' ) ) { - $dbh->do(q{ - ALTER TABLE letter ADD COLUMN `top_margin` float NOT NULL DEFAULT 0 AFTER `notice_width` - }); - - say $out "Added column 'letter.top_margin'"; - } - - if( !column_exists( 'letter', 'left_margin' ) ) { - $dbh->do(q{ - ALTER TABLE letter ADD COLUMN `left_margin` float NOT NULL DEFAULT 0 AFTER `top_margin` - }); - - say $out "Added column 'letter.left_margin'"; + say $out "Added column 'letter.style'"; } }, }; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index d2d2480a9ac..758594fb178 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3926,12 +3926,7 @@ CREATE TABLE `letter` ( `message_transport_type` varchar(20) NOT NULL DEFAULT 'email' COMMENT 'transport type for this notice', `lang` varchar(25) NOT NULL DEFAULT 'default' COMMENT 'lang of the notice', `updated_on` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT 'last modification', - `font_size` int(4) NOT NULL DEFAULT 14 COMMENT 'font size used when notice is printed', - `text_justify` enum('L','C','R') NOT NULL DEFAULT 'L' COMMENT 'text justification used when notice is printed', - `units` enum('POINT','INCH','MM','CM') NOT NULL DEFAULT 'INCH' COMMENT 'units to use for print measurements', - `notice_width` float NOT NULL DEFAULT 8.5 COMMENT 'width of notice', - `top_margin` float NOT NULL DEFAULT 0 COMMENT 'top margin for notice', - `left_margin` float NOT NULL DEFAULT 0 COMMENT 'left margin for notice', + `style` mediumtext DEFAULT NULL COMMENT 'custom styles for this notice', PRIMARY KEY (`id`), UNIQUE KEY `letter_uniq_1` (`module`,`code`,`branchcode`,`message_transport_type`,`lang`), KEY `message_transport_type_fk` (`message_transport_type`), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/notice_format_translations.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/notice_format_translations.inc deleted file mode 100644 index 972a911e7be..00000000000 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/notice_format_translations.inc +++ /dev/null @@ -1,16 +0,0 @@ -[% BLOCK translate_justification_types %] - [% SWITCH type %] - [% CASE 'L' %]left - [% CASE 'C' %]center - [% CASE 'R' %]right - [% END %] -[% END %] - -[% BLOCK translate_unit_types %] - [% SWITCH type %] - [% CASE 'POINT' %]pt - [% CASE 'INCH' %]in - [% CASE 'MM' %]mm - [% CASE 'CM' %]cm - [% END %] -[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/slip_content.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/slip_content.inc index 10b754d77f9..07e00776b13 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/slip_content.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/slip_content.inc @@ -1,18 +1,3 @@ - - [% IF notice.is_html %] [% notice.content | $raw %] [% ELSE %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt index 5596c769473..2ac23e1bc05 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/printslip.tt @@ -29,12 +29,11 @@ [% IF ( Koha.Preference('SlipCSS') ) %] [% END %] + [% INCLUDE 'slip-print.inc' #printThenClose %] -[% PROCESS 'notice_format_translations.inc' %] -
[% IF ( slip ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt index 212ec61c2f0..ecc75eca542 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printfeercpt.tt @@ -15,11 +15,10 @@ [% Asset.css("css/printreceiptinvoice.css") | $raw %] + [% INCLUDE 'blocking_errors.inc' %] -[% PROCESS 'notice_format_translations.inc' %] -
[% IF ( slip ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt index f1a2669a598..0499eef386e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printinvoice.tt @@ -15,11 +15,10 @@ [% Asset.css("css/printreceiptinvoice.css") | $raw %] + [% INCLUDE 'blocking_errors.inc' %] -[% PROCESS 'notice_format_translations.inc' %] -
[% IF ( slip ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt index e9412fd488f..11ddcc384f7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/printnotice.tt @@ -18,10 +18,9 @@ [% IF ( Koha.Preference('SlipCSS') ) %] [% END %] + -[% PROCESS 'notice_format_translations.inc' %] -
[% IF ( slip ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/printreceipt.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/printreceipt.tt index 67d38105970..5986cd10edd 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/printreceipt.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/printreceipt.tt @@ -14,11 +14,10 @@ [% Asset.css("css/printreceiptinvoice.css") | $raw %] + [% INCLUDE 'blocking_errors.inc' %] -[% PROCESS 'notice_format_translations.inc' %] -
[% IF ( slip ) %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt index ed7f083f63b..ddba3059009 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt @@ -51,29 +51,16 @@ .panel-group { margin-top: 3px; } + .css-helper::after { + content: " | "; + } + .css-helper:last-child::after { + content: none; + } [% END %] -[% text_justification_types = [ 'L','C','R' ] %] -[% BLOCK translate_justification_types %] - [% SWITCH type %] - [% CASE 'L' %]Left - [% CASE 'C' %]Center - [% CASE 'R' %]Right - [% END %] -[% END %] - -[% units = [ 'POINT','INCH','MM','CM' ] %] -[% BLOCK translate_unit_types %] - [% SWITCH type %] - [% CASE 'POINT' %]PostScript points - [% CASE 'INCH' %]US Inches - [% CASE 'MM' %]SI Millimeters - [% CASE 'CM' %]SI Centimeters - [% END %] -[% END %] - [% WRAPPER 'header.inc' %] [% INCLUDE 'letters-search.inc' %] @@ -668,60 +655,25 @@
These format settings apply when a notice is printed.
- [% SET param = letters.$lang.params %] -
-
    -
  1. - - -
  2. -
  3. - - -
  4. -
  5. - - - Existing format settings will be overwritten. -
  6. -
-
-
-
    -
  1. - - -
  2. -
  3. - - -
  4. -
  5. - - -
  6. -
  7. - - -
  8. -
-
+
+
    +
  1. + + Headings + Tables + All text +
  2. +
  3. + + +
  4. +
  5. + + + Existing format settings will be overwritten. +
  6. +
+
@@ -746,6 +698,30 @@ var new_lettercode = '[% new_lettercode | html %]'; var new_branchcode = '[% new_branchcode | html %]'; var table_settings = [% TablesSettings.GetTableSettings( 'tools', 'notices', 'lettert', 'json' ) | $raw %]; + $(document).ready(function(){ + $("#headings").click(function(){ + $("#style").val(function(i, text) { + return text + '\nh1, h2, h3, h4, h5, h6 {\n' + + '// insert CSS here\n' + + '}'; + }); + }); + $("#tables").click(function(){ + $("#style").val(function(i, text) { + return text + '\ntable, th, td, th:last-child, td:last-child {\n' + + '// insert CSS here\n' + + '}'; + }); + }); + $("#text").click(function(){ + $("#style").val(function(i, text) { + return text + '\nh1, h2, h3, h4, h5, h6,\n' + + 'table, th, td, th:last-child, td:last-child {\n' + + '// insert CSS here\n' + + '}'; + }); + }); + }); [% Asset.js("js/letter.js") | $raw %] [% END %] diff --git a/tools/letter.pl b/tools/letter.pl index b23e3de2289..8af5a1049d2 100755 --- a/tools/letter.pl +++ b/tools/letter.pl @@ -310,12 +310,7 @@ sub add_validate { my $oldmodule = $input->param('oldmodule'); my $code = $input->param('code'); my $name = $input->param('name'); - my $text_justify = $input->param('text_justify'); - my $font_size = $input->param('font_size'); - my $units = $input->param('units'); - my $notice_width = $input->param('notice_width'); - my $top_margin = $input->param('top_margin'); - my $left_margin = $input->param('left_margin'); + my $style = $input->param('style'); my $format_all = $input->param('format_all'); my @mtt = $input->multi_param('message_transport_type'); my @title = $input->multi_param('title'); @@ -326,16 +321,7 @@ sub add_validate { if ( $format_all ) { my @letters = Koha::Notice::Templates->search({ lang => $lang })->as_list; foreach my $letter ( @letters ) { - $letter->set( - { - text_justify => $text_justify, - font_size => $font_size, - units => $units, - notice_width => $notice_width, - top_margin => $top_margin, - left_margin => $left_margin, - } - )->store; + $letter->set({ style => $style })->store; } } my $is_html = $input->param("is_html_$mtt\_$lang"); @@ -371,12 +357,7 @@ sub add_validate { title => $title, content => $content, lang => $lang, - text_justify => $text_justify, - font_size => $font_size, - units => $units, - notice_width => $notice_width, - top_margin => $top_margin, - left_margin => $left_margin, + style => $style } )->store; @@ -392,12 +373,7 @@ sub add_validate { content => $content, message_transport_type => $mtt, lang => $lang, - text_justify => $text_justify, - font_size => $font_size, - units => $units, - notice_width => $notice_width, - top_margin => $top_margin, - left_margin => $left_margin, + style => $style } )->store; logaction( 'NOTICES', 'CREATE', $letter->id, $letter->content, -- 2.30.2