= Hatch Install Documentation = This documentation assumes Windows users will use the Hatch Windows installer. The Linux-only steps can also be done on Windows, but are not documented here. == Install Java == === Windows === Windows only requires a JRE to run Hatch, not a full JDK. Download and install JRE version 1.8 or higher from (for example) http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html[oracle.com]. === Linux === [source,sh] ------------------------------------------------------------------------- # Debian/Ubuntu version $ sudo apt-get install openjdk-8-jdk openjfx ------------------------------------------------------------------------- == Install Hatch == === Windows === Execute the 'Hatch Installer.exe' executable. NOTE: See installer/windows/README.adoc for building the Windows installer from Linux or Windows. When building the Windows installer on Windows, the full JDK will be required (for compiling Java). === Linux === [source,sh] ------------------------------------------------------------------------- $ ./hatch.sh compile ------------------------------------------------------------------------- ==== Optional: Test Hatch ==== NOTE: print commands are disabled by default in the tests to avoid unexpected printing, but they can be added by un-commenting them in src/org/evergreen_ils/hatch/TestHatch.java and recompiling. [source,sh] ------------------------------------------------------------------------- $ mkdir -p ~/.evergreen $ ./hatch.sh test ------------------------------------------------------------------------- == Install Chrome Extension [Windows & Linux] == . Install the exenstion directly in the browser from the https://chrome.google.com/webstore/detail/hatch-native-messenger/ppooibdipmklfichpmkcgplfgdplgahl[Chrome App Store] === Optional: Debugging The Chrome Extension === * Navigate to chrome://extensions * Enable "Developer Mode" along the top right of the page. * Click the "Background Page" link to see the exension console. * When the extension is loaded (or reloaded), it should show "Connecting to native messaging host: org.evergreen_ils.hatch" in the Background Page console with no errors. * Use the "Reload" link to apply local changes made to the extension (e.g. main.js). (This might only work when installing the exention manually via developer mode tools). * See also https://developer.chrome.com/extensions/getstarted === Linux: Configure Native Messaging === Edit extension/host/org.evergreen_ils.hatch.json and change the "path" value to match the location of your copy of "hatch.sh", found in the root directory of the Hatch repository. Copy the host file into Chrome's configuration directory. For Chrome: [source,sh] ------------------------------------------------------------------------- $ mkdir -p ~/.config/google-chrome/NativeMessagingHosts/ $ cp extension/host/org.evergreen_ils.hatch.json ~/.config/google-chrome/NativeMessagingHosts/ ------------------------------------------------------------------------- For Chromium: [source,sh] ------------------------------------------------------------------------- $ mkdir -p ~/.config/chromium/NativeMessagingHosts/ $ cp extension/host/org.evergreen_ils.hatch.json ~/.config/chromium/NativeMessagingHosts/ ------------------------------------------------------------------------- == Using Hatch == * In Chrome, navigate to the browser staff URL (https://HOSTNAME/eg/staff/). * Open the Javascript console. It should show messages like: [source,sh] ------------------------------------------------------------------------- Loading Hatch relay content script ... sending to Hatch: {"key":"eg.workstation.all","action":"get","msgid":1} ... Hatch responded to message ID 1 ------------------------------------------------------------------------- * Enable Hatch features by navigating to https://HOSTNAME/eg/staff/admin/workstation/hatch. * To determine if Hatch can see your printer(s), navigate to https://HOSTNAME/eg/staff/admin/workstation/print/config ** The "Select Printer" drop-down should show your printer(s). ** The various printer attribute selectors should show values supported by the selected printer.