From 1c322ca5950c318360d9e52b15b4cd384c192fe1 Mon Sep 17 00:00:00 2001 From: Martin Stenberg Date: Fri, 18 Sep 2015 14:30:39 +0200 Subject: [PATCH] Bug 8628: Digital signs - db changes - Adding edit_digital_signs permission for managing digital signs - Adding OPACDigitalSigns, OPACDigitalSignsCSS and OPACDigitalSignsSwatches system preferences - Adding signs, sign_streams and signs_to_streams tables - Updating sysprefs.sql and kohastructure.sql Signed-off-by: Lisette Scheer --- .../bug_8628-digital-signs-permissions.perl | 7 ++++ .../bug_8628-digital-signs-sysprefs.perl | 11 ++++++ .../mysql/atomicupdate/bug_8628-digital-signs.perl | 37 +++++++++++++++++ installer/data/mysql/kohastructure.sql | 46 ++++++++++++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 3 ++ 5 files changed, 104 insertions(+) create mode 100644 installer/data/mysql/atomicupdate/bug_8628-digital-signs-permissions.perl create mode 100644 installer/data/mysql/atomicupdate/bug_8628-digital-signs-sysprefs.perl create mode 100644 installer/data/mysql/atomicupdate/bug_8628-digital-signs.perl diff --git a/installer/data/mysql/atomicupdate/bug_8628-digital-signs-permissions.perl b/installer/data/mysql/atomicupdate/bug_8628-digital-signs-permissions.perl new file mode 100644 index 0000000000..1d17026b19 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_8628-digital-signs-permissions.perl @@ -0,0 +1,7 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{INSERT IGNORE INTO permissions (module_bit, code, description) VALUES (13, 'edit_digital_signs', 'Create and edit digital signs for the OPAC') }); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 8628 - adding permission for managing digital signs)\n"; +} diff --git a/installer/data/mysql/atomicupdate/bug_8628-digital-signs-sysprefs.perl b/installer/data/mysql/atomicupdate/bug_8628-digital-signs-sysprefs.perl new file mode 100644 index 0000000000..38c1c5d291 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_8628-digital-signs-sysprefs.perl @@ -0,0 +1,11 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{INSERT IGNORE INTO systempreferences (`variable`,`value`,`options`,`explanation`,`type`) VALUES + ('OPACDigitalSigns',0,NULL,'Turn digital signs in the OPAC on or off.','YesNo'), + ('OPACDigitalSignsCSS','',NULL,'Extra CSS to be included in all signs','Textarea'), + ('OPACDigitalSignsSwatches','abcde',NULL,'List the swatches that can be chosen when creating a new sign','free') + }); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 8628 - Adding OPACDigitalSigns, OPACDigitalSignsCSS and OPACDigitalSignsSwatches system preferences)\n"; +} diff --git a/installer/data/mysql/atomicupdate/bug_8628-digital-signs.perl b/installer/data/mysql/atomicupdate/bug_8628-digital-signs.perl new file mode 100644 index 0000000000..54e24c141a --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_8628-digital-signs.perl @@ -0,0 +1,37 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{DROP TABLE IF EXISTS sign_streams }); + $dbh->do(q{DROP TABLE IF EXISTS signs }); + $dbh->do(q{CREATE TABLE sign_streams ( + sign_stream_id int(11) NOT NULL auto_increment, -- primary key, used to identify streams + saved_sql_id int(11) NOT NULL, -- foreign key from the saved_sql table + name varchar(64), -- name/title of the sign + PRIMARY KEY (sign_stream_id), + CONSTRAINT sign_streams_ibfk_1 FOREIGN KEY (saved_sql_id) REFERENCES saved_sql (id) ON DELETE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 }); + $dbh->do(q{CREATE TABLE signs ( + sign_id int(11) NOT NULL auto_increment, -- primary key, used to identify signs + name varchar(64), -- name/title of the deck + webapp int(1) NOT NULL DEFAULT 0, -- display as web app or normal page + transition char(16) NOT NULL DEFAULT 'none', -- transition to use between pages, must be one of the transitions defined by jQuery Mobile (see their docs) + swatch char(1) NOT NULL DEFAULT '', -- swatches determine the colors of page elements + idleafter int(11) NOT NULL default 0, -- seconds to wait before automatic page turning cicks in + pagedelay int(11) NOT NULL default 0, -- seconds to wait before turning to a new page/record + reloadafter int(11) NOT NULL default 0, -- seconds to wait before reloading all the pages + PRIMARY KEY (sign_id) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 }); + + $dbh->do(q{DROP TABLE IF EXISTS signs_to_streams }); + $dbh->do(q{CREATE TABLE signs_to_streams ( + sign_to_stream_id int(11) NOT NULL auto_increment, -- primary key, used to identify connections between signs and streams (the same stream can be attached to a sign more than once, with different parameters) + sign_stream_id int(11) NOT NULL, -- foreign key from the decks sign_streams table + sign_id int(11) NOT NULL, -- foreign key from the signs table + params varchar(255) NOT NULL DEFAULT '', -- list of parameters for the SQL associated with the sign_stream + PRIMARY KEY (sign_to_stream_id), + CONSTRAINT signs_to_streams_ibfk_1 FOREIGN KEY (sign_stream_id) REFERENCES sign_streams (sign_stream_id) ON DELETE CASCADE, + CONSTRAINT signs_to_streams_ibfk_2 FOREIGN KEY (sign_id) REFERENCES signs (sign_id) ON DELETE CASCADE + ) ENGINE=InnoDB DEFAULT CHARSET=utf8 }); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 8628 - add signs, sign_streams and signs_to_streams tables)\n"; +} diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index ae247e67c8..4142a4b0cd 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -5325,6 +5325,52 @@ CREATE TABLE `zebraqueue` ( KEY `zebraqueue_lookup` (`server`,`biblio_auth_number`,`operation`,`done`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table 'sign_streams' +-- + +DROP TABLE IF EXISTS sign_streams; +CREATE TABLE sign_streams ( + `sign_stream_id` int(11) NOT NULL auto_increment, -- primary key, used to identify streams + `saved_sql_id` int(11) NOT NULL, -- foreign key from the saved_sql table + `name` varchar(64), -- name/title of the sign + PRIMARY KEY (`sign_stream_id`), + CONSTRAINT `sign_streams_ibfk_1` FOREIGN KEY (`saved_sql_id`) REFERENCES `saved_sql` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table 'signs' +-- + +DROP TABLE IF EXISTS signs; +CREATE TABLE signs ( + `sign_id` int(11) NOT NULL auto_increment, -- primary key, used to identify signs + `name` varchar(64), -- name/title of the deck + `webapp` int(1) NOT NULL DEFAULT 0, -- display as web app or normal page + `transition` char(16) NOT NULL DEFAULT 'none', -- transition to use between pages, must be one of the transitions defined by jQuery Mobile (see their docs) + `swatch` char(1) NOT NULL DEFAULT '', -- swatches determine the colors of page elements + `idleafter` int(11) NOT NULL default 0, -- seconds to wait before automatic page turning clicks in + `pagedelay` int(11) NOT NULL default 0, -- seconds to wait before turning to a new page/record + `reloadafter` int(11) NOT NULL default 0, -- seconds to wait before reloading all the pages + PRIMARY KEY (`sign_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Table structure for table 'signs_to_streams' +-- + +DROP TABLE IF EXISTS signs_to_streams; +CREATE TABLE signs_to_streams ( + `sign_to_stream_id` int(11) NOT NULL auto_increment, -- primary key, used to identify connections between signs and streams (the same stream can be attached to a sign more than once, with different parameters) + `sign_stream_id` int(11) NOT NULL, -- foreign key from the decks sign_streams table + `sign_id` int(11) NOT NULL, -- foreign key from the signs table + `params` varchar(255) NOT NULL DEFAULT '', -- list of parameters for the SQL associated with the sign_stream + PRIMARY KEY (`sign_to_stream_id`), + CONSTRAINT `signs_to_streams_ibfk_1` FOREIGN KEY (`sign_stream_id`) REFERENCES `sign_streams` (`sign_stream_id`) ON DELETE CASCADE, + CONSTRAINT `signs_to_streams_ibfk_2` FOREIGN KEY (`sign_id`) REFERENCES `signs` (`sign_id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index 1034313061..46ee1cab42 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -396,6 +396,9 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('OPACdefaultSortField','relevance','relevance|popularity|call_number|pubdate|acqdate|title|author','Specify the default field used for sorting','Choice'), ('OPACdefaultSortOrder','dsc','asc|dsc|za|az','Specify the default sort order','Choice'), ('OPACdidyoumean','',NULL,'Did you mean? configuration for the OPAC. Do not change, as this is controlled by /cgi-bin/koha/admin/didyoumean.pl.','Free'), +('OPACDigitalSigns',0,NULL, 'Turn digital signs in the OPAC on or off.','YesNo'), +('OPACDigitalSignsCSS','',NULL,'Extra CSS to be included in all signs','Textarea'), +('OPACDigitalSignsSwatches','abcde',NULL,'List the swatches that can be chosen when creating a new sign','free'), ('OPACDisplay856uAsImage','OFF','OFF|Details|Results|Both','Display the URI in the 856u field as an image, the corresponding OPACXSLT option must be on','Choice'), ('OpacExportOptions','bibtex,dc,marcxml,marc8,utf8,marcstd,mods,ris,isbd','','Define export options available on OPAC detail page.','multiple'), ('OPACFallback', 'prog', 'bootstrap|prog', 'Define the fallback theme for the OPAC interface.', 'Themes'), -- 2.11.0