230 likes | 240 Views
Explore how KIT Library improved the usability of Primo Back Office through user interface changes, search features, and AJAX architecture, enhancing the efficiency of managing library resources.
E N D
Enhancing Primo Back Office Uwe DierolfKIT-Bibliothek
KIT Library • Oneofthefirst 24h libraries in Europe • Opened in April 2006 • Never closed • > 30.000 visitors per week Uwe Dierolf – KIT-Library
KIT Library • KIT Campus South = Karlsruhe University • KIT Library Campus South • 24h library • Karlsruhe Research Centre • KIT Library Campus North • KIT: University + Research Centre • Distance 12 km • University of Applied Sciences • In thecentreofthecity • Completelymanagedby KIT Library • Not partof KIT Research Centre University University ofApplied Sciences Uwe Dierolf – KIT-Library
Motivation forenhancingtheBack Office • Bad usabilityof Primo Back Office • Lot ofthingscan'tbesearched • BO islike a bigmemorygame, youhavetorememberwhereyouputthings Uwe Dierolf – KIT-Library
Usabilityproblems • Buttons arespreadacrossthewholepage • Cancel / Go back – bottomleftSave / Refresh – bottomright • Edit-buttons on therightforceuserto scroll horizontal • Navigation needs a lotofmouseclicks • Orbookmarklets • Fields areoftentooshort • XPath-namesandotherfieldsare not completelyreadable • Tables • Zebra stripesaremissing • Youcan'tcopycontent • Youcan'tfade out irrelevant lines Uwe Dierolf – KIT-Library
Changingtheuserinterface • Menus insteadofbookmarklets • You find them in everybrowser • Youcanmaintainthemcentrally on theserver • Tableswith zebra-stripedlines • Cloned Edit-buttons • Edit-buttons on theleftsidetoo, youcanhitthemmoreeasily • Importantandheavilyusedbuttonsare on top • Policy: alwaysclone, do not remove original button • Implementation of a searchfeature • Search fortext in mappingtables und normalizationrules • Technique: using Oracle database via JSONP & PHP • Betterusabilitymakesworkingmorecomfortable Uwe Dierolf – KIT-Library
Demo • A pictureisworth a thousandswords … Uwe Dierolf – KIT-Library
Menus Uwe Dierolf – KIT-Library
NormalizationRules – cloned Edit buttons Uwe Dierolf – KIT-Library
Mapping und Code Tables - cloned Edit buttons Uwe Dierolf – KIT-Library
NormalizationRules – larger fields Uwe Dierolf – KIT-Library
Mapping und Code Tables – tablesearch table-search Uwe Dierolf – KIT-Library
Code Tables – changecolumnwidth wider column Uwe Dierolf – KIT-Library
Search feature on the BO homepage Uwe Dierolf – KIT-Library
Searching II Uwe Dierolf – KIT-Library
Realization • UsageofJavascriptlibraryjQuery • Advantage: looselycoupled • Minimal invasive • Onlytwofiles in tilesdirectoryhavetobemodified • headerTile.jspund old_headerTile.jsp • SearchingisusingjQuery's JSONP-Request • Javascriptcalls a PHP scripttosearch in the Oracle database • Why JSONP? • JSONP = JSON withpadding • JSON = JavascriptObject Notation • Wecanuseservicesfromourserver • Circumventcrossdomainrestriction / same originpolicyofthebrowser Uwe Dierolf – KIT-Library
JSONP in jQuery • Client • varjsonUrl = 'http://host/path/script.php?callback=?&p1=v1'; $.getJSON(jsonUrl, jsonCallback); • The ?becomes a randomfunctionnamelikejson123456789 • Server • PHP-Skript returnsJavascriptfunctioncall • json123456789( { jsondata } ); • Think asynchron ! • Wikipedia: http://en.wikipedia.org/wiki/JSONP Uwe Dierolf – KIT-Library
AJAX-Architecture http Oracle Primo-ServerEXL Web-ServerKIT jQuery / JSONP PHP Search in Mapping TablesandNormalization Rules Uwe Dierolf – KIT-Library
Content Delivery Networks (CDN) • Motivation • Permits BO-searchfor different Primo Admins • Important in multitenantenvironments • In general: CDN permitsuserspecificdeliveryofJavascript • EndusersgetminimizedJavascript • Withoutcommentsanddebugstatements • Onlydevelopersgetthedebugversion • Additional functionsonlyforspecialusergroups • Adminsorlibrarians • CDN permitscollaborativedevelopment • Oneprimoinstallation but everydeveloperseeshisJavascriptcode Uwe Dierolf – KIT-Library
Howdoesn CDNwork? • PHP scriptcreates individual Javascriptcode • Exampleat KIT: title statisticslink onlyforlibrarians • Apache mod_rewritewithproxyrulesmakesit invisibleRewriteRule kit_primo.js$ http://server/script.php [P,L] • Browser cachingshouldbeforced • via .htaccess<Files kit_primo.php> <IfModulemod_expires.c>ExpiresActive OnExpiresByTypetext/javascript "access plus 10 minutes" </IfModule></Files> Uwe Dierolf – KIT-Library
Conclusion • Techniqually (almost) everythingispossible • Lose couplingallowsincrementalenhancements • Adaption to Primo V4 shouldbepossible • More featuresareplanned • Resultsof BO-searchas link listwhichleadsdirectlytonormalizationrulesormappingtablerecords • NiceruserinterfacebyusingjQuery UI • Desirefor Ex Libris • More speaking ID andclassnameswithin Back Office astheyuseit in the Primo frontendmakesiteasierto find thingswithin HTML • Code hasbeengivento Ex Libris ! • Perhapsthey will integrateit in futurereleaseof Primo BO Uwe Dierolf – KIT-Library
Thankyou Do youhaveanyquestions? Uwe.Dierolf@KIT.edu+49 721 608 46076 Uwe Dierolf – KIT-Library