LP1825851 Server Template Release Notes
authorBill Erickson <berickxx@gmail.com>
Mon, 22 Apr 2019 15:56:51 +0000 (08:56 -0700)
committerBill Erickson <berickxx@gmail.com>
Wed, 10 Jul 2019 20:05:19 +0000 (16:05 -0400)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
docs/RELEASE_NOTES_NEXT/Administration/server-print-templates.adoc [new file with mode: 0644]

diff --git a/docs/RELEASE_NOTES_NEXT/Administration/server-print-templates.adoc b/docs/RELEASE_NOTES_NEXT/Administration/server-print-templates.adoc
new file mode 100644 (file)
index 0000000..a08b94e
--- /dev/null
@@ -0,0 +1,82 @@
+Server-Managed Print Templates
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Adds support for generating print content via server-side web service.  
+Server print templates are implemented as Template Toolkit and content
+is compiled and generated on the server, based on runtime data provided
+by clients.
+
+Feature includes a new Angular admin interface for testing and editing
+server-managed print templates.  The UI is accessed under Admin =>
+Server Administration => Print Templates, though the menu entry may be
+moved to Admin => Local Administration, once Local Admin is migrated
+to Angular.
+
+An example template ("Address Label") is included to demonstrate how 
+it's used.  See below for instructions on enabling the Address Label 
+template.
+
+Note that while it's possible to migrate AngularJS receipt templates 
+to be server-hosted (again, see below) the main thrust of this feature
+is to provide the basis for managing templates going forward, particularly
+as interfaces are migrated to the Angular browser client.
+
+Apache Configuration
+++++++++++++++++++++
+
+Apply Apache configuration changes to eg_vhost.conf and eg_startup.
+
+* Add to eg_vhost.conf
+[source,conf]
+---------------------------------------------------------------------------
+<Location /print_template>
+    SetHandler perl-script
+    PerlHandler OpenILS::WWW::PrintTemplate
+    Options +ExecCGI
+    PerlSendHeader On
+    Require all granted
+</Location>
+---------------------------------------------------------------------------
+
+* Add to eg_startup
+
+[source,conf]
+---------------------------------------------------------------------------
+# Pass second argument of '1' to enable process-level template caching.
+use OpenILS::WWW::PrintTemplate ('/openils/conf/opensrf_core.xml', 0); 
+---------------------------------------------------------------------------
+
+New Perl Dependency
++++++++++++++++++++
+
+A new Perl module `HTML::Defang` is required for cleansing generate HTML 
+of executable code for security purposes.  The dependency is added to 
+the Makefile.install process for new builds.  Existing Evergreen instances
+will need the dependency manually installed.
+
+Installing on (for example) Ubuntu:
+
+[source,conf]
+---------------------------------------------------------------------------
+sudo apt-get install libhtml-defang-perl
+---------------------------------------------------------------------------
+
+Migrating To A Server Template
+++++++++++++++++++++++++++++++
+
+Once a template is added to the database and the admin has configured the
+template as desired, the server-managed template will be used instead of 
+the traditional TT2 templates in the AngularJS client.
+
+Using the new 'Address Label' template for example.
+
+1. Modify, test, and activate the server template labeled 'Address Label'
+2. Remove any the workstation setting which stores user-saved versions
+   of the template by deleting the workstation type.
+[source,sql]
+---------------------------------------------------------------------------
+DELETE FROM config.workstation_setting_type 
+    WHERE name = 'eg.print.template.patron_address';
+---------------------------------------------------------------------------
+3. Navigate to patron search, search for a patron, then 'Print' the address.
+