:author: Bill Erickson, Software Development Engineer, King County Library System
:email: berickxx@gmail.com
:date: Evergreen Conference, May 22, 2016
-:duration: 40
+:duration: 40
:data-uri:
:backend: slidy
:max-width: 45em
== HTML Templates
+* Template Toolkit (à la TPAC, etc.)
+ ** Open-ILS/src/templates/staff/
+ ** Localization
+ ** Template Customization
+
== CSS
+* Bootstrap CSS - http://getbootstrap.com/
+ ** Consistent look and feel
+ ** Eases the transition to mobile interfaces
+* Local CSS via Template Toolkit
+ ** Open-ILS/src/templates/staff/css/
+
== I18N / L10N
+* TT2
+
+[source,html]
+------------------------------------------------------------
+<div>[% l('Renew Items') %]</div>
+------------------------------------------------------------
+
+* AngularJS / ngStrings
+
+[source,html]
+------------------------------------------------------------
+<script><!-- typically in index.tt2 -->
+angular.module('egCoreMod').run(['egStrings', function(s) {
+ s.RENEW_ITEMS = "[% l('Renew Items?') %]";
+ s.NUM_HOLDS = "[% l('Number of Holds: [_1]', '{{hold_count}}') %]"
+}]);
+</script>
+------------------------------------------------------------
+
+[source,js]
+------------------------------------------------------------
+egAlertDialog.open(egCore.strings.RENEW_ITEMS);
+
+$scope.some_label = egCore.strings.$replace(
+ egCore.strings.NUM_HOLDS,
+ {hold_count : count}
+);
+------------------------------------------------------------
+
== Network Communication
WebSocket - https://en.wikipedia.org/wiki/WebSocket
* Bi-directional data streams
* Persistent Connections
-* Cross-origin support
+* Cross-origin support
== Scripting
* AngularJS - https://angularjs.org/
+ ** Open-ILS/web/js/ui/default/staff/
== Scripting: Build and Deploy