[Koha-patches] [PATCH] Bug 10858 [Follow-up] Browse selected biblios

Owen Leonard oleonard at myacpl.org
Thu Sep 26 15:21:34 CEST 2013


This follow-up adds the browse functionality to the CCSR theme and
adds some CSS for the "browse" link, including a new image in the image
sprite.

To test, apply the patch, clear your cache, and test the browsing
functionality again. Confirm that the browse link looks good and works
correctly in both the prog and CCSR themes.
---
 koha-tmpl/opac-tmpl/ccsr/en/css/opac.css           |   20 +-
 .../opac-tmpl/ccsr/en/includes/doc-head-close.inc  |    3 +
 koha-tmpl/opac-tmpl/ccsr/en/js/commons.js          |   71 +++++++
 .../en/lib/jquery/plugins/jquery.cookie.min.js     |    1 +
 .../ccsr/en/lib/jquery/plugins/jquery.json.js      |  199 ++++++++++++++++++++
 koha-tmpl/opac-tmpl/ccsr/images/sprite.png         |  Bin 8381 -> 3380 bytes
 koha-tmpl/opac-tmpl/prog/en/css/opac.css           |   18 +-
 .../opac-tmpl/prog/en/modules/opac-results.tt      |    2 +-
 koha-tmpl/opac-tmpl/prog/images/sprite.png         |  Bin 3348 -> 3380 bytes
 9 files changed, 311 insertions(+), 3 deletions(-)
 create mode 100644 koha-tmpl/opac-tmpl/ccsr/en/js/commons.js
 create mode 100644 koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.cookie.min.js
 create mode 100644 koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.json.js

diff --git a/koha-tmpl/opac-tmpl/ccsr/en/css/opac.css b/koha-tmpl/opac-tmpl/ccsr/en/css/opac.css
index 0901d6b..70f5ba8 100644
--- a/koha-tmpl/opac-tmpl/ccsr/en/css/opac.css
+++ b/koha-tmpl/opac-tmpl/ccsr/en/css/opac.css
@@ -786,7 +786,7 @@ a.tag_add {
  font-size : 100%;
       font-weight : bold;
     padding-left : 31px;
-   color : #336699;
+   color : #007FAE;
        cursor : pointer;
 }
 .searchresults a.highlight_toggle {
@@ -1162,6 +1162,10 @@ a.cancel {
        font-size: 90%;
 }
 
+.addto {
+    white-space: nowrap;
+}
+
 .cartlist {
  margin-top : 5px;
 }
@@ -2876,3 +2880,17 @@ a.reviewlink,a.reviewlink:visited {
     display: block;
     overflow: auto;
 }
+
+.details_link {
+    display : none;
+}
+
+.details_link a {
+    display: inline-block;
+    padding : 5px 24px;
+    text-decoration: none;
+    background-image: url("../../images/sprite.png"); /* Print */
+    background-position: -5px -1138px;
+    background-repeat: no-repeat;
+    white-space: nowrap;
+}
\ No newline at end of file
diff --git a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc b/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc
index af6e886..747e84f 100644
--- a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc
+++ b/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc
@@ -39,6 +39,9 @@
 <script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script>
 <script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
 <script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
+<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.json.js"></script>
+<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
+<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
 <script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
 <script type="text/javascript" src="[% themelang %]/js/script.js"></script>
 [% IF ( OPACAmazonCoverImages ) %]
diff --git a/koha-tmpl/opac-tmpl/ccsr/en/js/commons.js b/koha-tmpl/opac-tmpl/ccsr/en/js/commons.js
new file mode 100644
index 0000000..6661a61
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/ccsr/en/js/commons.js
@@ -0,0 +1,71 @@
+// Extends jQuery API
+// http://www.wskidmore.com/downloads/jquery-uniqueArray.min.js
+jQuery.extend({uniqueArray:function(e){if($.isArray(e)){var c={};var a,b;for(b=0,a=e.length;b<a;b++){var d=e[b].toString();if(c[d]){e.splice(b,1);a--;b--}else{c[d]=true}}}return(e)}});
+
+function removeByValue(arr, val) {
+    for(var i=0; i<arr.length; i++) {
+        if(arr[i] == val) {
+            arr.splice(i, 1);
+            break;
+        }
+    }
+}
+
+function paramOfUrl( url, param ) {
+    param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
+    var regexS = "[\\?&]"+param+"=([^&#]*)";
+    var regex = new RegExp( regexS );
+    var results = regex.exec( url );
+    if( results == null ) {
+        return "";
+    } else {
+        return results[1];
+    }
+}
+
+function addBibToContext( bibnum ) {
+    var bibnums = getContextBiblioNumbers();
+    bibnums.push(bibnum);
+    setContextBiblioNumbers( bibnums );
+    //var store = sessionStorage.getItem( "bibs_selected" );
+}
+
+function delBibToContext( bibnum ) {
+    var bibnums = getContextBiblioNumbers();
+    removeByValue( bibnums, bibnum );
+    setContextBiblioNumbers( $.uniqueArray( bibnums ) );
+}
+
+function setContextBiblioNumbers( bibnums ) {
+    //sessionStorage.setItem("bibs_selected", JSON.stringify( bibnums ) );
+    $.cookie('bibs_selected', JSON.stringify( bibnums ));
+}
+
+function getContextBiblioNumbers() {
+    //var r = sessionStorage.getItem("bibs_selected");
+    var r = $.cookie('bibs_selected');
+    if ( r ) {
+        return JSON.parse(r);
+    }
+    r = new Array();
+    return r;
+}
+
+function resetSearchContext() {
+    setContextBiblioNumbers( new Array() );
+}
+
+$(document).ready(function(){
+    // forms with action leading to search
+    $("form[action*='opac-search.pl']").submit(function(){
+        resetSearchContext();
+    });
+    // any link to launch a search except navigation links
+    $("[href*='opac-search.pl?']").not(".nav").not('.searchwithcontext').click(function(){
+        resetSearchContext();
+    });
+    // any link to a detail page from the results page.
+    $("#bookbag_form a[href*='opac-detail.pl?']").click(function(){
+        resetSearchContext();
+    });
+});
diff --git a/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.cookie.min.js b/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.cookie.min.js
new file mode 100644
index 0000000..eb129db
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.cookie.min.js
@@ -0,0 +1 @@
+jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};
\ No newline at end of file
diff --git a/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.json.js b/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.json.js
new file mode 100644
index 0000000..b4b94a7
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.json.js
@@ -0,0 +1,199 @@
+/**
+ * jQuery JSON plugin 2.4-alpha
+ *
+ * @author Brantley Harris, 2009-2011
+ * @author Timo Tijhof, 2011-2012
+ * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
+ *         copyrighted 2005 by Bob Ippolito.
+ * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
+ *         website's http://www.json.org/json2.js, which proclaims:
+ *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
+ *         I uphold.
+ * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
+ */
+(function ($) {
+    'use strict';
+
+    var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
+        meta = {
+            '\b': '\\b',
+            '\t': '\\t',
+            '\n': '\\n',
+            '\f': '\\f',
+            '\r': '\\r',
+            '"' : '\\"',
+            '\\': '\\\\'
+        },
+        hasOwn = Object.prototype.hasOwnProperty;
+
+    /**
+     * jQuery.toJSON
+     * Converts the given argument into a JSON representation.
+     *
+     * @param o {Mixed} The json-serializable *thing* to be converted
+     *
+     * If an object has a toJSON prototype, that will be used to get the representation.
+     * Non-integer/string keys are skipped in the object, as are keys that point to a
+     * function.
+     *
+     */
+    $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
+        if (o === null) {
+            return 'null';
+        }
+
+        var pairs, k, name, val,
+            type = $.type(o);
+
+        if (type === 'undefined') {
+            return undefined;
+        }
+
+        // Also covers instantiated Number and Boolean objects,
+        // which are typeof 'object' but thanks to $.type, we
+        // catch them here. I don't know whether it is right
+        // or wrong that instantiated primitives are not
+        // exported to JSON as an {"object":..}.
+        // We choose this path because that's what the browsers did.
+        if (type === 'number' || type === 'boolean') {
+            return String(o);
+        }
+        if (type === 'string') {
+            return $.quoteString(o);
+        }
+        if (typeof o.toJSON === 'function') {
+            return $.toJSON(o.toJSON());
+        }
+        if (type === 'date') {
+            var month = o.getUTCMonth() + 1,
+                day = o.getUTCDate(),
+                year = o.getUTCFullYear(),
+                hours = o.getUTCHours(),
+                minutes = o.getUTCMinutes(),
+                seconds = o.getUTCSeconds(),
+                milli = o.getUTCMilliseconds();
+
+            if (month < 10) {
+                month = '0' + month;
+            }
+            if (day < 10) {
+                day = '0' + day;
+            }
+            if (hours < 10) {
+                hours = '0' + hours;
+            }
+            if (minutes < 10) {
+                minutes = '0' + minutes;
+            }
+            if (seconds < 10) {
+                seconds = '0' + seconds;
+            }
+            if (milli < 100) {
+                milli = '0' + milli;
+            }
+            if (milli < 10) {
+                milli = '0' + milli;
+            }
+            return '"' + year + '-' + month + '-' + day + 'T' +
+                hours + ':' + minutes + ':' + seconds +
+                '.' + milli + 'Z"';
+        }
+
+        pairs = [];
+
+        if ($.isArray(o)) {
+            for (k = 0; k < o.length; k++) {
+                pairs.push($.toJSON(o[k]) || 'null');
+            }
+            return '[' + pairs.join(',') + ']';
+        }
+
+        // Any other object (plain object, RegExp, ..)
+        // Need to do typeof instead of $.type, because we also
+        // want to catch non-plain objects.
+        if (typeof o === 'object') {
+            for (k in o) {
+                // Only include own properties,
+                // Filter out inherited prototypes
+                if (hasOwn.call(o, k)) {
+                    // Keys must be numerical or string. Skip others
+                    type = typeof k;
+                    if (type === 'number') {
+                        name = '"' + k + '"';
+                    } else if (type === 'string') {
+                        name = $.quoteString(k);
+                    } else {
+                        continue;
+                    }
+                    type = typeof o[k];
+
+                    // Invalid values like these return undefined
+                    // from toJSON, however those object members
+                    // shouldn't be included in the JSON string at all.
+                    if (type !== 'function' && type !== 'undefined') {
+                        val = $.toJSON(o[k]);
+                        pairs.push(name + ':' + val);
+                    }
+                }
+            }
+            return '{' + pairs.join(',') + '}';
+        }
+    };
+
+    /**
+     * jQuery.evalJSON
+     * Evaluates a given json string.
+     *
+     * @param str {String}
+     */
+    $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
+        /*jshint evil: true */
+        return eval('(' + str + ')');
+    };
+
+    /**
+     * jQuery.secureEvalJSON
+     * Evals JSON in a way that is *more* secure.
+     *
+     * @param str {String}
+     */
+    $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
+        var filtered =
+            str
+            .replace(/\\["\\\/bfnrtu]/g, '@')
+            .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
+            .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
+
+        if (/^[\],:{}\s]*$/.test(filtered)) {
+            /*jshint evil: true */
+            return eval('(' + str + ')');
+        }
+        throw new SyntaxError('Error parsing JSON, source is not valid.');
+    };
+
+    /**
+     * jQuery.quoteString
+     * Returns a string-repr of a string, escaping quotes intelligently.
+     * Mostly a support function for toJSON.
+     * Examples:
+     * >>> jQuery.quoteString('apple')
+     * "apple"
+     *
+     * >>> jQuery.quoteString('"Where are we going?", she asked.')
+     * "\"Where are we going?\", she asked."
+     */
+    $.quoteString = function (str) {
+        if (str.match(escape)) {
+            return '"' + str.replace(escape, function (a) {
+                var c = meta[a];
+                if (typeof c === 'string') {
+                    return c;
+                }
+                c = a.charCodeAt();
+                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
+            }) + '"';
+        }
+        return '"' + str + '"';
+    };
+
+}(jQuery));
diff --git a/koha-tmpl/opac-tmpl/ccsr/images/sprite.png b/koha-tmpl/opac-tmpl/ccsr/images/sprite.png
index 6ed641dddba694cf60a4284e304d1cda79b74639..646a74aed5c7814fe8694e42ebb269aa0074ba1c 100644
GIT binary patch
delta 2887
zcmV-N3%K;XL9`l>7Yc|70{{R3GoFv#ks&>iVUm&dH-9i<mEG<9;_v)1WS9E-`s48Z
z?)Lt^+u|)=kbHc6{r&wTQh_aBkR?@xfTr7Wa&qeP{>(Eoe}8{>cXu*nm-hDdF=Lgr
z-TyLVm+JKW-tGO2jEpd2mHhqxB~*kgU623FW-VQhdU|^M{r)jxmEYvT>GS>j`}_Cz
z_lSsy=zsJ5=j+n$_Wj=K_it}+<L~`1VU&A&d)n;%^z`&(jKc5s{v%O=^78WV_WdDG
ze$3|n_WJ+g at BQBG{3=_GD_f0ud3pKy`D<%yDO!u^^!+4LgzM|;^Yim;Y;1&tge_l@
z@$vEDNFM3){_^<#TwGi+WtT2sk}hDA_WS<f?|=RK at xbEn{9BH}aBy(`{{AReh+U#u
z`uzUU;q;NS)sVzO|Lg$F=l+bPzW4k8^Z5QLS&7-~{Uud~;_&_B at ci)b at F7osF=CW+
zb90W4j_&U6>gwtuQGh90j3-xzEL at ITj=<E^)LUCyE?|)+RfSksSm^Tn_4)qy`v33u
z{(p*!ihX^3DOic&?*07y{9ayOWS7b)S&IMUW|ESUE?<&UQ&TTsl3I?z_xk>LczE~w
z{vb|&FkzG7 at BaGy|N8y@`~3eRPk<_0i at 49`_4d&+W0oaUgX8b~Ay9zp^!*}Hf?tuv
zFk+NCh0rEdhGJr3baZqlScfcJjitfeiARZvAWnVu`TihIe&*)pC|8FqV3FGF{_^?$
zKyIAx_Wkws_0`qY-R=G6@%`rV{w`sYDq4*H|IGjY|8;>PNdN!=0CZALQ<HH6_>+JG
z2Y&!l_Xi~a00^#0L_t(|+U?v4d=pg~0PrYxb#1*D6mS6#JchKGkZnj(dq8VTsR3%c
zAf?g++hRE at tz7{DT?=-%9IGG-s2s9f%C3O-fd?zz#~z-$x`*z%hxfIO-<wJD+RppF
zl9vpm?E7XWf#09^^5)HaFCm$Ewg4HnHh+IK0^>A0i!_W~Q}Xj&6)ubmQd6({WvUxv
z&$YLE9`EJB`1-4UG3mx}3o*{k9-BLM*3B57m3hS#3o>V8JZjYCmyepbq62pf#fmLw
zTPUa$<Vk2wK}f><3Kx}vsi|%>1+VpZJdb;*6dX5hA)12OW5 at C&G^gO#3o<h^XMa;E
zIC0_%D>_xN;>c3)WBgsPQBS}|jO(Yk-R>zaJp}yDV=uk5>9JQfy|QUjseu1`rrU@!
zdwnS2|Ml+EyH6k3diVaLfY1LnSo)i9&lm7_w?I5K|CZP1KlOruONwDB8Co)QXi0I*
zJ5{mb$a#bjK^FT+qH<93wMSaka(~5&BjFL8#pf}ZCDeI7(g>NR at eGuEZF9@bt+TRI
z6)W!gtc60zT5B-CQPxP-!lhA#5HVW_X380Bw;qvlIIQV&#flXlQ4S?IGH}_0VT_6<
zHA))F*<3j0rL{I;X05eN=sSiM29C6JD_e|+sI>XTtvH~H6?YM4DL{-&c7J1l5OZkk
zKn4%ULZ+=k24D;iBGwFH3kyMh8_WhMg7s>|92`L6n>EeWPTR58fi+Xa{%ldK_$cRR
zpCx(Fph0xy at 6)_y?~oyT*9_VF;+hxN2>3+1J+z)E;1jOCI<%f3;2udmAd- at jdQ3|a
z at Nv_o1=r(5P5V)J75CZ?f`5T@>bd9AeSYDE6!$v=qF=u=`ic3RbAnGXKi-NJ#{*x&
zLYf0iBWLabnyuS!#qrD|VC&>ZN6DWoM;c*S%M~k*n&J8wiW}`aD6aSY8RvqnTfJKg
z9>O>wXI at TiZ30?(;wkBmB%+mX-1y1r2RCj+_`Df2W}F4vd15{$6n|pAVEtR`*ROx`
z9~X%EWQfn%gGGl#v0}x6SX_8(vx&H|(QZUznuss*)%zeS>V5elF7SHYk9xfYk9rG4
zobbhg+61=D+alt`#Odj$e3YJ^o|q`&m04M<v$E#Hc2LBXl^J^M%*cp+uPIinxZMCE
z=8x at q{99c5y>&YV{C{D<x*bU6`I}odx3sk6BV0PE)afk!Qz^nHWzX7{{ciS2V&0$N
z at f_Hnu;svh5ik5nIIb6P*_Fq`l3P|*c6^zD58nM#wm{tdpnzYyXYM_7=d$h7*`lTu
zSHi;LZEKF0V#SBd)Q1CpU(TyY0{ebn;j6Exs2BgI$NR5T?|(zy)PlddMeM2d<Rs+O
z&hs4DBKmOf$n@#(`5=8yV&a}Xf)5Atv*5Eq*6Onlp8di>Gk>siXGUd4Wo4yBy{1 at k
zB=4aex&2?#(g+ at q=CZpm{<RCx=ldB}y3_~g_1=$Fe!mwmC+7yNslS;An4W$mwkKuN
z0kc-2JG$~$S%0fCit%16$tbp}&lM{^9Q@;8{J)h}thmdtQxA-tb`~Kw^Sa-ybH0JG
zv&H$Db91PAGf$cXE5^=k+1s+SL#;Ej5tem}V#SArwN6TFov;xox9W>Er2|G`oIB~3
zLny6T(&vgTV(Nez*GNMM8O#XX&CCNiQ;pEb6WJoR8-L3Y;ZRs~Ko!THmn>bnWC^Td
zUK-4UrDFDvf$+mBWdCRgKdgSgkgNUGh1J#7{=z~57dF+^6*e{16|yk%obAoc&D*y(
zmzS5%DHrgZyu3WNS=4Kat>9?BeoIqdzbWn_yr?6$$MSN5VN4s7hjHGMPfmalc>-1%
zuv=AC)qgUq@@`;@7cX9hwH&afsHmt0+p!w3x}qo0Zh4}vZt~>Gc&`Ck)#r-iicdRD
zf55nJ- at a@^EB`qQ;<X149!xathb&MYKYl#haMmBJ=@!Lt$M;TV5BFl+y?b|kLx)@z
z)Nudu%S6+5{e9OiKgu(2n+e-(D9_aYjWyk(IDcN*MzYPefxG~912OqBXc|8Ga_V0;
zz{IcQ%&%^I^5v^?b9;HH$(Py0uhh)1vu>s)UuF}(k~6=qu=0>7KDv17ty764y5r8@
z-bzfLeAm=Fr{YPJpMTdKDv1;y{k*SvpO{bWd1}v|&z=6C1~K<!Nwj<4>0gPt|Jwee
z`+xV}{T%Yz&%<|;Rij5gkMO{vfep(aC>n_H!wn5hO$`kXBmBU9%kNtbE5gs*1hM<3
zXAnNth`(9b=Za&>TAL8DJru2C)_-S$M=>+e6=7zeC>v#EOEW`XJ6JQ;@;38)b<%4w
zKO~Cdn&}BM;d~D=qOCzj^wJ<BiZfH3;eRy06lcf*K;e#srY{XEXRb&Zgl8X(y3ZAN
z4W=(((fD{O9&+v6%?wJi{@OU}L9 at LBcXa$jKBTJ#OxIeNoipO}&=dOus`x15Xfsr!
zGgONzLt!IXWvJrA#+H3U=7Ny_hRg#Y{|#9#g!+a|@!{ZWqTy>UyDW0%3egE$w}0P?
zEnx at A4uTzqIxsf0BXbW|U}AFxoXr)OnO8t|i^H-`ReU7aL9zp7{WK%kVJLo{i?f6~
z*>XqJ`+Z29l1y>Ra0%vmapcT(m;`f`V6GC(Rf4%nFjooYD#2VOn5zVHje-No7fUgB
zDdsN4+ at +Yi6myqi?o!NMin&WMcYhh?F2&rFWBhKAl0x(Fl&Bay3LXX?1%pSy%;i~k
zX*OJzgD%M-m*cQYF?Si}F7;-?Rf4%nFjpB4s}zS+j)N-6hRU+8(#%wzLFE}#o|BVf
z_2ED6*haE(Lmzq19z2ux?7=g6&mKIJ_w2zldCwj^Q}^rz0_vW<c;Q7fms~F*815Bb
zn at 5zMFlOyq>L!kERZl<NjcEBYxag2Mao=2Z4YA)fUsnG!5K#Bc#g3!=B^Ta{h#y<^
lcS&g;Ml<u_>X+Qk`Fq0eZEp#KAMpSH002ovPDHLkV1hsX1>OJv

literal 8381
zcmd^EcU;rg+W#d4hzx~_B_d+NG9n--h*ppg2!bF4L1f7?AYA5EEGhy4!ybkx;4V~9
zYt;f39IY)wT2NeEv`eWVB1 at TundCkv46nW3@rr#v at 8|RKNAk-#=XcICzt8tMq%j>f
z$jhk6U>GKEYh$$;zSS^{5Ji-LC#Sov- at _MShs7of4Ew6iL^8b-elLt-xJ5Zf1V%;s
z?F_&ySP}jKWZN*m9RZsI{8)ScS|4DFVG<bA-i6WB)U;&N{@~0 at etv$5iHXU{$&QKT
z_V)ID!@`~+VfT=b>XyDSw&c4OA$|9`&B at o6du2N&ly6PHvD7u$Jp9Cq0fC*J-JpkD
zd3pJRHTqpn3)cMQlu5{`{t*$A$)qsjU0q#Q_#d|3d(r>!k3X9)^~|bT;ge$=bliMr
zQQYw>hOAs&?}IM;i`In~s&7s-3O~=Q>J^C^L?V$@>}A*E&G(*<eOlIIl2NYd!Z~_0
zP~9m33p~mn6Kc661qQC7x~07y6OIc+WXHHwfk!(A1g*UjhOGRtu`vVx+$S$5p7ja7
z`>pjAU#REJ-M at do#^wZpK%liHY3I(JdOlqCncupG1kusaU4z1gRjXD8<Qs0!Eq@~7
z^ZD`d at he&RnVFf*F9j0<k-_#{QA42awu4$O9KCG^I|l{7w^a`h4|fa-UUWCU;tNt!
zQ^y6u@$qp(|J;51_GvgJJnI$2#Ka5?4D|5 at 6vw#cuHj#M1P$#%R%UfXL_{xNI5af0
z!td~M&#dn5ZVrdj{BmMoMCj$^rSE%4$1{sRCgP6^TY3efqoW}qA<H~6ItPWFLjp}_
zPHV3qG&FQ at aInQjP0uH%zrWuwAYb2?w|DPe?oE1T at poer!UruwIbS~%^<djR_ZaW5
zZ0(zfjEo!}7YT*Jh8IH5>?-Qk)Yd-1v%U$6WBk&sDTe-sv$M08xu^B@^>uZ1sXMWk
zd1U_5BN!YJ>Uw4G+O<n-OY*B%uROCWJv}|s)6<u^rS%RAMQwo{0~0(RZ+KkD%D)vG
z8>{cbdp#<gn3xzI6FECOQ{B_`eREd$^0c=kd3$@ixw&~{SGBwn?Afzt7#uet>g5Xz
z{0_DB3dbfywD1#S0%7}rP{%XlS?|PBx0IFJ^R!$Je3EpZ!epyEC8|5JyN3h@{)b=l
zAH073T6;@!R#sM2RMgdb?YdrB#Z^zp4zXm1IR2=R>=57H-cH?`qUW3QYmabXRQTkj
zpuJz<@9*!EQ>*WHNXH{n$1 at YcY@11ZFNWc;sLc+}@bmxkALcwPt%YH#Cbm`<E_;6U
zA33Ou5fmg6>xnpOBZlK>zGM;b4wH{zxgEU`xjT~7<rQc)jR~t)FFv`tVrt5#qB?F#
zidni54Wrna6b&cwQ?8u0ksv7WE`PPPBqFlkMJbq#(Rr>z_BKKM3mbBzh-A%RlPh&L
zSFU!VJ#Mnin=pJT8#Ykn!XzHXtY|7^HWBTDgO}CGa4w+;_dbg_M<tzBQfQbT%c9Ai
zs6adCu5e_IV0viL;mNU*hUVtDB|EhVL~^DsDVsM3hbJ1#?vs>09Y_b^?<ATZGc%id
zscMb*B?4Xk1Bv(!WrN)N%sli!T${${PvzXQCk at X?tEi|*bM?jMOMneKrI+gac<*ez
z&$G14E2_SU;fc0m85i^jbvqv)NW*~xhI}0K9rX3d?QP#mh+heQ`5W_zc|=If<YGr<
z1+No7?~ZM)U1ea1eB_XhuhzV%sdur6dV~b-AR5ok`0vnc#*KbC6&%c95t&`mDP{Ys
z#SsX(hmlu%;@MbrxQRXA9FC7v`BOqdELF)_mo>6vHmUE-GZBhG6XgkMBH2E89g!W0
zqVaF=fs2?sF%KfI2SuemOiO*cw(rjt>|aE^-^T75ELB2*Mrs^OW at 33DjcVf<6SAXP
z|KhyAL4wF#4X_vhD=xbjL3G0Bfy}zs3o8y3L)zfZep3ZgV#P_3oV4{Eq!xa`pBKP0
zZvO96+O$@UngJOfSS7ibxC*ZfIL&byB3VSySt1yg at V+BL2oMe-SpZ=ZnP<-}n*$y!
zQ4V?fxjYpE3#>5~tBcn7S9+_}h#>>L at N_49C~W_b!1C{6TdcHhV`_4(2!e}K%v!mU
zZe)fcD&|@MAs1YeSuOEcX;os|D-lu(ce)LCWsh7TARov56H?;fnx=h7g~n#QZQ?EM
z0)WOAUh>EKFm0*wxJ_c?JAtt!_t8%%NHZ0Z><(Zw%<w6-serKva>!=x|ElIQ2+k~?
zx5WAosOu6O5D?&k>VV0FiH<UveZM%rck`Af<zBmgN_wuGCvgo_)7N9M2$po3J`F3h
z8{Dy at M!}pbt3c~$3{4EBk*U<WJPNT5Pf)mS<Y+CW)X%<(-nq!(urV^*fSxr^hHMJi
zz<qR|)(+?wc%-{a{jUIumL48b#G>MWqAKyU>(&itz!NkM>@?fr@*iUWSpq7l96ksh
z#H+dTKOPpK?1R`O)&`Tx#6gW}Umrr;*%rW`i(3vE!%@DCijds)?x5ty!EN;_C<lz-
zV-}V4KPu}IJf!tGs6*Ux{c(`-dC;kFqw?DI)+pXtot2B%seVd0#X!Ks3J(9w<Fga0
z;VcvqhF-L$=WHy!1#G2j7Q_FEadyW&YqU-?_)dDd41 at g0iYNZ1O`=UcoV<4L#od$R
z?I-8*;24T+23EC6Awd(-glg6Q1E at y)t=hAw8VCY+t031>T5wy at E&>c=>v6BNPLVi}
zt}1Bp2W`LYdsJ1$KXSnGsbLE3D)^sbyUWKcw?;m(yj#3LQ;*Dju0Hmtww8f8Rfuc4
z+}58MmoCju7@>N}!Tv?EGNzTj7gMCsFCszq1H{mKV7EBVwX?kU0fjt26l2rbkJAT0
zrZygIzmONNZZ7 at B69W1v^z^K#xO|zMo`-Nz{iMpVzxd^h87-jT(QLJM?U&!a+BZkT
z3ewhn--;_Y1Yg{E-0k=>Nmi`-_d#od*kWcA<sq{|VeCwCasQdBNiNe-rlUYe3^?nD
z?5Y_XX7 at br)<y-P>pVn!SZ5gvFbeT;3fd=uiu=$c^G#|<H1`OWklD;4zww>xs~Dh%
zvBWy>`dzxWZZA*F0PAc#`(w-LtQvRe<CXb+S!+?qhkdrax8~&`=a6`r=1(vpx$TFl
zgbTX9<COu&*_9PxOhnDXRqdlBE9AYDzgWCwokWNl?8F=Tx;(^8##BZ|hT8*5;;X=j
z at 9DcY3j7O59Qs6Q6HsyzQ|lyi_>>UJj8gF4rOP#%?wm#TzELkj?d({CbB8tD-DmNO
zdgrUEJ|fQnbEmh2sIqzM*WVy2f*!j^+dT at 3GVEl$0JQI$=1DaaF1r*KxgM}W`gUgS
zr7*R=Z6*jqG at 5u^O_2x=!Y9c5d3w#1DsIumLJWyd>;S02U;js{@rR*56GLa at VHWFE
zVzyu;W|3ZHm=|j=7%%tKu8{0nc`<0_RRooegqJR;-2)RjbLAx|;$dEe+w<~Uw`Cvh
zMx^#tsI1ag5GuI%cM^tKSDUw^O*1%F7uCD66N=7Y$dU`6S|Jcu3a)E)Lc)n at o7k3@
zla2%(L!|D!QSxnY_O9K_(}A$~by?@k(&3zIg;)}l*N)&jMB`hq_1Z<1d^d7EB9PW}
z#)G-g0WMomT91=~)U>0EtIQjl7iASFPyndj*6TvXNkux;RPqm~F+ipIe_o}T#WC8O
zx;k;{S3%E08^^@<1GbSUA#&z|BxFT`GJq1RlN?RPKC-ZgMBdK1D|buoc0+ at ljO+oF
zNW7?@+pb?PsXx?RO~Z7gP;aQU=**_$6 at E3BtE;Pd^mC|y*yWFmjwTrJVv)dZ?=LV>
z?t6rlEhZqzV%(3UID{}Y5r|rhpvL#jw7S6r2t!Ez9S*DPLv)kqGCQWh(Keeug*LLX
zPSC&*87gjPBu5G-uN8jJ(I~C_Xzj<7U?ZXBJ}@|VoXY`+)<zbvoTH;nc&1?F>#EeF
zi{{TiB&!UVYIG2%wX55oUpWc^s-_#$)z$j!S&J9&MWQjQUQEJi1s{MBay0ey=V~ZG
z-g1kIi;5~q3nBf=TAXRv!$`1XsV9RWc?UWYdR`s at Cnm(a?9^0jJ4;+G4e&VRvF{Q1
zykDHnbdPkN_pprB1<T3n7Pyx+u$BVVH at 78X=MmBJc<ghX6KH}WCL;buYz(9#q8~r$
zUc$B3im!Hbw at J7jKo<{$iTA&Lc~e-<7;Rh*s9;dEaN!F|KR9a_PNxjD`}B3A3#b{5
z1jziRLq1_ at cP-6g7s5ivIL2D^z;uk;H2j+J_Mm}7+|<ZiAM3ZLh at 7?Wm7+7Idz&Qt
z*(_aQZ`}&Xuut2=AVfshM4Z)p{oc3%UDgw at WM0~Y;Kd4Bg$!f`OC2Jgn+8s#Y2zVb
zjuPJ<{174b#-zzcHAXB7NaLSTno;`olEWij>4*c{H1-tOU(T_>yCeUW0u#D+yFSb`
zHFN=T at n=!d(f6XG&C_(nOJxjYiZ6b%U5ShG%yw*laA#Y6aq){B at y~t3cORX+NaIW{
zeW8-zyZzbP$wCvD%=W26T at 9J}{^45UNT_;Y3c=v6^6BP$MgIyZRPZQ+_G31O5H~vS
zxg;}3n+FT-MAoI55|Qbzc={{}P(jv4l{)Ghiywa>+XB8HyG=>aP)BW*yUObmD-0m(
z at r4MPK1fHP+E_w@2$fPTvsREoy*1aEQv!a*rCc!K%t3b#EOGn3Nkvl at H9VmkaEX&6
z&*hwB3p5+x@`0l+zwSFF{c#|Oq>?)I014>vX*rBs2|PrNLOa-U*4LhHl|TZIWXLev
zzz*eg#`Js;S}9mV?j<@tYt4Y76d2QPZ#MEMsnJ at T>9x<1BRQQBN?(B;`5OICLjf31
z30ekV^mHFvTs at l;JJHows^RRg{SPW~Eg^Vlb0vx7%c|!OYD47?TC21T(Xciq`1*EY
z2QV?BrHXM1fOCQ>VuCxVAVyswio8Dz&Pp~77OHI=)J0`-A=_^e7j}4SG%2nGeGTXk
zM^p_KpT_<KJrb<zz={E!24y0113acy5*LC{Bnm2$AC|6C8y}KTmZ8Yt7Jq3;zmG2T
zP<1dYsPnG_e~B6U(^<I1D0r6<O03+~8}cD?rC29 at -IW%A>viRG7^r?oDP<VSK{`c!
z^8kIx<sUyy0#A{It2dNFw{37hvNjmGW471$63rv%zEzI&1uh9Le&o)LH9SE1tVP*g
zhgy!NsO%g&lyf_D2q<?d^Kp|Mf)Ip6ERJLO>rE0JZ1QRFeCKo16;!IHED&9kig8`e
zEkNFP+MuM8Th%k>^vzAOn=+?=rH(8z1={l_d&|fA(*+RsrLGqWPDDf`T-~qE9C4v6
z@*hrUdDj7yMd6{zl&PJFwcCk%k4(SbL`%9od07b~g$$~_n)dWMGee8#e$(3-e6-T)
z&D5&-32&xKSiW3S`)S!KswJrN(8ZhBD&<dCu0DVu5`{{&caX}=SuNC(ECgFt1y{ko
z;>9QI><tk1Yt8q&HT4QT=ZC}7)5j7F0b0ZXSQro=1w>VB){Z3UV?esZ%sBIN=`Ctg
zMhdJ-QU{kJLQS+QP0^ix_AE@(oPG|;$>2_Jf1@(__Ozf*k84!4k!-6W=%l_iz5`@o
z(uX5D*Tj at foCZ(7 at JRr^HR+RA=NA(oLMA6dx3F<jGD&&Ks}NB|5PS5ro}}bdPLWDX
zp83wa{^(;(Rn#wmo%|~w?O|Y3C)PC{nYpMl^nHZYp*NI<r}p?~=0FU)r-oYj%Vseh
za3bfs9rF;OHQ at IYqPyGnQ)cL&V%23k=DEX8B`<%mY=z+pvlttor0OL*=E3$Hl_}Yg
z%zuE*cekLNiio+3LHzV6N-{Wu(tCVxxqDX%iluYo?Rol)-)`anV8`3Dm+Y`WiG4YC
z7yO%-Isg)0i_l-CoCYrG5Z;YV5Ys;X9e}|ECc?CTl0X8ZKeTCzTjUmm!JjR|!Riv-
GH}UUkQ_24T

diff --git a/koha-tmpl/opac-tmpl/prog/en/css/opac.css b/koha-tmpl/opac-tmpl/prog/en/css/opac.css
index 0311bdd..cf20233 100644
--- a/koha-tmpl/opac-tmpl/prog/en/css/opac.css
+++ b/koha-tmpl/opac-tmpl/prog/en/css/opac.css
@@ -846,7 +846,7 @@ a.tag_add {
 	font-size : 100%;
 	font-weight : bold;
 	padding-left : 31px;
-	color : #336699;
+    color : #006699;
 	cursor : pointer;
 }
 .searchresults a.highlight_toggle {
@@ -1223,6 +1223,10 @@ a.cancel {
 	font-size: 90%;
 }
 
+.addto {
+    white-space: nowrap;
+}
+
 .cartlist {
 	margin-top : 5px;
 }
@@ -3063,3 +3067,15 @@ padding: 0.1em 0;
     display: block;
     overflow: auto;
 }
+.details_link {
+    display : none;
+}
+.details_link a {
+    display: inline-block;
+    padding : 5px 24px;
+    text-decoration: none;
+    background-image: url("../../images/sprite.png"); /* Print */
+    background-position: -5px -1138px;
+    background-repeat: no-repeat;
+    white-space: nowrap;
+}
\ No newline at end of file
diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt
index 4ccc009..dc80036 100644
--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt
+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt
@@ -529,7 +529,7 @@ $(document).ready(function(){
                               Tag status here.
                             </span>
             [% END %]
-            <span class="details_link" style="display:none" ><a href="#">Browse selected biblios >></a></span>
+            <span class="details_link"><a href="#">Browse selected records</a></span>
         </div>
 
         </td></tr>
diff --git a/koha-tmpl/opac-tmpl/prog/images/sprite.png b/koha-tmpl/opac-tmpl/prog/images/sprite.png
index a6037a9122ac7c7b3f3773bba42d7d3b745de01d..646a74aed5c7814fe8694e42ebb269aa0074ba1c 100644
GIT binary patch
delta 2887
zcmV-N3%K- at 8nhaa7Yc|70{{R3GoFv#ks&>iVUm&dH-9i<mEG<9;_v)1WS9E-`s48Z
z?)Lt^+u|)=kbHc6{r&wTQh_aBkR?@xfTr7Wa&qeP{>(Eoe}8{>cXu*nm-hDdF=Lgr
z-TyLVm+JKW-tGO2jEpd2mHhqxB~*kgU623FW-VQhdU|^M{r)jxmEYvT>GS>j`}_Cz
z_lSsy=zsJ5=j+n$_Wj=K_it}+<L~`1VU&A&d)n;%^z`&(jKc5s{v%O=^78WV_WdDG
ze$3|n_WJ+g at BQBG{3=_GD_f0ud3pKy`D<%yDO!u^^!+4LgzM|;^Yim;Y;1&tge_l@
z@$vEDNFM3){_^<#TwGi+WtT2sk}hDA_WS<f?|=RK at xbEn{9BH}aBy(`{{AReh+U#u
z`uzUU;q;NS)sVzO|Lg$F=l+bPzW4k8^Z5QLS&7-~{Uud~;_&_B at ci)b at F7osF=CW+
zb90W4j_&U6>gwtuQGh90j3-xzEL at ITj=<E^)LUCyE?|)+RfSksSm^Tn_4)qy`v33u
z{(p*!ihX^3DOic&?*07y{9ayOWS7b)S&IMUW|ESUE?<&UQ&TTsl3I?z_xk>LczE~w
z{vb|&FkzG7 at BaGy|N8y@`~3eRPk<_0i at 49`_4d&+W0oaUgX8b~Ay9zp^!*}Hf?tuv
zFk+NCh0rEdhGJr3baZqlScfcJjitfeiARZvAWnVu`TihIe&*)pC|8FqV3FGF{_^?$
zKyIAx_Wkws_0`qY-R=G6@%`rV{w`sYDq4*H|IGjY|8;>PNdN!=0CZALQ<HH6_>+JG
z2Y&!l_Xi~a00^#0L_t(|+U?v4d=pg~0PrYxb#1*D6mS6#JchKGkZnj(dq8VTsR3%c
zAf?g++hRE at tz7{DT?=-%9IGG-s2s9f%C3O-fd?zz#~z-$x`*z%hxfIO-<wJD+RppF
zl9vpm?E7XWf#09^^5)HaFCm$Ewg4HnHh+IK0^>A0i!_W~Q}Xj&6)ubmQd6({WvUxv
z&$YLE9`EJB`1-4UG3mx}3o*{k9-BLM*3B57m3hS#3o>V8JZjYCmyepbq62pf#fmLw
zTPUa$<Vk2wK}f><3Kx}vsi|%>1+VpZJdb;*6dX5hA)12OW5 at C&G^gO#3o<h^XMa;E
zIC0_%D>_xN;>c3)WBgsPQBS}|jO(Yk-R>zaJp}yDV=uk5>9JQfy|QUjseu1`rrU@!
zdwnS2|Ml+EyH6k3diVaLfY1LnSo)i9&lm7_w?I5K|CZP1KlOruONwDB8Co)QXi0I*
zJ5{mb$a#bjK^FT+qH<93wMSaka(~5&BjFL8#pf}ZCDeI7(g>NR at eGuEZF9@bt+TRI
z6)W!gtc60zT5B-CQPxP-!lhA#5HVW_X380Bw;qvlIIQV&#flXlQ4S?IGH}_0VT_6<
zHA))F*<3j0rL{I;X05eN=sSiM29C6JD_e|+sI>XTtvH~H6?YM4DL{-&c7J1l5OZkk
zKn4%ULZ+=k24D;iBGwFH3kyMh8_WhMg7s>|92`L6n>EeWPTR58fi+Xa{%ldK_$cRR
zpCx(Fph0xy at 6)_y?~oyT*9_VF;+hxN2>3+1J+z)E;1jOCI<%f3;2udmAd- at jdQ3|a
z at Nv_o1=r(5P5V)J75CZ?f`5T@>bd9AeSYDE6!$v=qF=u=`ic3RbAnGXKi-NJ#{*x&
zLYf0iBWLabnyuS!#qrD|VC&>ZN6DWoM;c*S%M~k*n&J8wiW}`aD6aSY8RvqnTfJKg
z9>O>wXI at TiZ30?(;wkBmB%+mX-1y1r2RCj+_`Df2W}F4vd15{$6n|pAVEtR`*ROx`
z9~X%EWQfn%gGGl#v0}x6SX_8(vx&H|(QZUznuss*)%zeS>V5elF7SHYk9xfYk9rG4
zobbhg+61=D+alt`#Odj$e3YJ^o|q`&m04M<v$E#Hc2LBXl^J^M%*cp+uPIinxZMCE
z=8x at q{99c5y>&YV{C{D<x*bU6`I}odx3sk6BV0PE)afk!Qz^nHWzX7{{ciS2V&0$N
z at f_Hnu;svh5ik5nIIb6P*_Fq`l3P|*c6^zD58nM#wm{tdpnzYyXYM_7=d$h7*`lTu
zSHi;LZEKF0V#SBd)Q1CpU(TyY0{ebn;j6Exs2BgI$NR5T?|(zy)PlddMeM2d<Rs+O
z&hs4DBKmOf$n@#(`5=8yV&a}Xf)5Atv*5Eq*6Onlp8di>Gk>siXGUd4Wo4yBy{1 at k
zB=4aex&2?#(g+ at q=CZpm{<RCx=ldB}y3_~g_1=$Fe!mwmC+7yNslS;An4W$mwkKuN
z0kc-2JG$~$S%0fCit%16$tbp}&lM{^9Q@;8{J)h}thmdtQxA-tb`~Kw^Sa-ybH0JG
zv&H$Db91PAGf$cXE5^=k+1s+SL#;Ej5tem}V#SArwN6TFov;xox9W>Er2|G`oIB~3
zLny6T(&vgTV(Nez*GNMM8O#XX&CCNiQ;pEb6WJoR8-L3Y;ZRs~Ko!THmn>bnWC^Td
zUK-4UrDFDvf$+mBWdCRgKdgSgkgNUGh1J#7{=z~57dF+^6*e{16|yk%obAoc&D*y(
zmzS5%DHrgZyu3WNS=4Kat>9?BeoIqdzbWn_yr?6$$MSN5VN4s7hjHGMPfmalc>-1%
zuv=AC)qgUq@@`;@7cX9hwH&afsHmt0+p!w3x}qo0Zh4}vZt~>Gc&`Ck)#r-iicdRD
zf55nJ- at a@^EB`qQ;<X149!xathb&MYKYl#haMmBJ=@!Lt$M;TV5BFl+y?b|kLx)@z
z)Nudu%S6+5{e9OiKgu(2n+e-(D9_aYjWyk(IDcN*MzYPefxG~912OqBXc|8Ga_V0;
zz{IcQ%&%^I^5v^?b9;HH$(Py0uhh)1vu>s)UuF}(k~6=qu=0>7KDv17ty764y5r8@
z-bzfLeAm=Fr{YPJpMTdKDv1;y{k*SvpO{bWd1}v|&z=6C1~K<!Nwj<4>0gPt|Jwee
z`+xV}{T%Yz&%<|;Rij5gkMO{vfep(aC>n_H!wn5hO$`kXBmBU9%kNtbE5gs*1hM<3
zXAnNth`(9b=Za&>TAL8DJru2C)_-S$M=>+e6=7zeC>v#EOEW`XJ6JQ;@;38)b<%4w
zKO~Cdn&}BM;d~D=qOCzj^wJ<BiZfH3;eRy06lcf*K;e#srY{XEXRb&Zgl8X(y3ZAN
z4W=(((fD{O9&+v6%?wJi{@OU}L9 at LBcXa$jKBTJ#OxIeNoipO}&=dOus`x15Xfsr!
zGgONzLt!IXWvJrA#+H3U=7Ny_hRg#Y{|#9#g!+a|@!{ZWqTy>UyDW0%3egE$w}0P?
zEnx at A4uTzqIxsf0BXbW|U}AFxoXr)OnO8t|i^H-`ReU7aL9zp7{WK%kVJLo{i?f6~
z*>XqJ`+Z29l1y>Ra0%vmapcT(m;`f`V6GC(Rf4%nFjooYD#2VOn5zVHje-No7fUgB
zDdsN4+ at +Yi6myqi?o!NMin&WMcYhh?F2&rFWBhKAl0x(Fl&Bay3LXX?1%pSy%;i~k
zX*OJzgD%M-m*cQYF?Si}F7;-?Rf4%nFjpB4s}zS+j)N-6hRU+8(#%wzLFE}#o|BVf
z_2ED6*haE(Lmzq19z2ux?7=g6&mKIJ_w2zldCwj^Q}^rz0_vW<c;Q7fms~F*815Bb
zn at 5zMFlOyq>L!kERZl<NjcEBYxag2Mao=2Z4YA)fUsnG!5K#Bc#g3!=B^Ta{h#y<^
lcS&g;Ml<u_>X+Qk`Fq0eZEp#KAMpSH002ovPDHLkV1l{11&#m!

delta 2855
zcmV+?3)u9u8k8E47Ycp|0{{R3 at Ktr$ks&<;)YR0GUXlUKk?uKv;_v)1WS9E-`Y>XZ
z-R=D2 at cq8q;_mkTEnbj(e0(EPf&KmcB~^uTa&j$SkbtJ!>h%40cX#UZ{>(EoGG&)B
zW0ket|MvFwe}8{6WS5MLjNa}2{QdthW0n8RW-MKgB~*khU61MW{omxm_xJbc^Zn=R
z((d;Ch=_>${r>xZ`};9sm3n%5BT<3l at BMpwd-C$~@b>*7Pk!F&_uB0J%;x at NjKXhk
zZ}0a0^z`&EVU#OdjqB^{goK3N?fmli{#;yKE?|=?TaEVm|MvU-;qU$V`T1*WYbjcb
z>GS^S^!+4LgyQf0Y;0`v^Yh_I9xY#y@$vC7WtT2sl6iT5d62|HjHSN%{QlA5^pUgG
z|Lg!=qFVd$z~b=yaBy(<`~Uv_{><n8TaLjfSBT>9{p0ZbAy0oNSBEiTl#Y&$DOri|
z at bK#D>LO8qDO!x#?EUlj{w!RMb8~YgRfg{F?puz)TU%R-ii#;%iSPIR|Kw)q^8AvL
zlK1=mWS7c+eSLi{Uy}9t{`~y>_xk at +Q&T8eiY{Q0FJO`;RfS$&URYRIT8_ct?)`Xp
zc=!7L`~3g!_Wdwnli~0F`uzVuZk+o4{^s)jDqD-=@BAlNhcaW9B~*hth0q~TfFe<X
zB2R$p^!+eml=b$}_4V~8Rfdg?jdXN$xX<P+T#cnc!QCKEeIQPL_WAxGPJia+<|tQ(
zEntz_?Edok{@v~U=JEYvVq#yB#V%o!Dq4&xTa5qz|6MnK?*IS+0CZALQ<HH6_>+JG
z2Y&!l_Xi~a00 at prL_t(|+U?wVU=vju0PuF at t}d;J2PlVtBBEo{YC^UlNo}DmJ!pV}
zwSW{`DfWh1SfL0OQNRPL1>{hXLqP;o4pF at Ez*~3SRrfx<bx)5y>i1 at nytebcujC~I
z0pB+>$sa%7%bPdzy at ct^i)kUF6~`KZaeu0fMJmS5X?c0hN+-toDJeJKlH$VHecc1@
zr at FZ@zTukNCfq)83C1~D<8sE$x(nlhnO9wPW99;kM~%ATicwQmwd3}oSh3|C8we@|
zc at mma5Rx#j(n+OYN{S0j!Ry>^_fu{v1t(5if~H{BxN$rQ%_;cJjhUI53#b&FGJj>2
z6`iVBacC*{CH^f~uP0zV#<kO2F4r`t9s>T|%kRFs>E-7(J-2C7iGcrkj?0L1y8TAL
z|LfkPdygKlb?^Qw0blr`zx1~sUMS%IE`@k|#nNA_c>6U07Z<`(Jgj)wu;RjqcdBB=
zq4NkM{4Dm7MCG95XOFb3<%$)D!ha(;i_c>+OQ`dFq!BVr;~6OT+2)p;TW4jbDpq{_
zvla*;Yl;2<M_D6T3zkL|Ld0w#m?>wh-Fk$|!LX*!6)RSJOgWI?$iQXuhcPOe)F^2v
zXLI3*m)2T^nYF}Lq3;-47&z3 at iEJ?<q|)XOx8i^*R(zZ=O95hJvKa$}n12If2Qqj-
z7BWo~G5}+E5wT_nTUZG4+h8_85v*4uX8!;Z-K=RbZL|$*?N~EK<j)qxicfHU{&|uI
z4H`sO{vVpR9vCv at z}6uL-rD-sRso-Cvjx^u1>E!6YXfUf0e4C00+EoA&}Bw~fKQ$=
z!@r&^YTCKMRorVo_6O3bLw|?TeSXnJ6!$$FqHo```-=Je^ZjoTKi-NJM+0BZLYiBc
zhR)nuXtr*@6-P6VfUSc+I!gY at a-<QKwOp~{uo>=;p}5|*o#I;WA92p#zu&Vz|8<Px
zvgc=)m&c)%$M;TqCLXPP?b?5Be0A+wgfEygXU;&_E)esN0wLz%>wo{ce*OB-z8Eg%
z(;(hwFBTmV#flZTMB>KV*jN$Q*V~M!PZjaS-dZn2Wvw?)#Q7eN>qU<z|3y!}h~s{K
zxIB(6^LL6kK7M9e at 6XfH(&FPqygEI7V|w}u*ba%fx;jIT9T^#s?={7W6}K5c#QddA
zkFUg~|FCX*|3CF#w|^a}Ja13qp2o(;JcLUolsFtEe=b3|SJtd;S-;NeCFX;1ZujAX
zaXSwm6!HJB48{!tF1`8`SaM2BOHU~k at S!a~WedcXR|WjuV{;#yJC|+$ULa~(VKpo)
zerwGUQ>^%infh_SpUe3>lEB`dReEbHD{IC7>GAw6#q+u+C4c{8mx$fv?(Dei^7-z=
zJ4HVZo|!olejlXmjgQ~ESMcLtMLPU8NZ)wgq4QolWahu@*pX44QC(eaQLiah9LjfS
zdv1%VsRZ{=b=sU5KjH-RdhftWmv{j^o`<l?AMyZZXWxpo{L%S<X=ztuJ61XqF#RU9
zTUI}qep5yv-hXSw8HHB$xnjkNDgKE+erTl?|KQl62gVK?i-4PX-3RL&zr@(l==j>P
zCs4haCrp49W5>3vZCP1?)|uG|%eqCe;-kV^2c at +R*a(yp^~IXfEk<FSJLr}pD6Lu2
z=ZY<2>VO*eNJ9u2%n04h%mX=7jnK#w*&?<X%Q4|VSbuat6-S<zuUxr&Ijmw{>Cc0e
zV)l)N at WCo%-)IOQtUjNR%Y0=8Wo2c)f&u{-G&M97G&MC8urTxNUCqtSyLL6#)YQzb
z5%BEX++4O<)N6{Z;BYR#rK-zsijNas)1KR6O%1^?rj5<TIQNAYCc}t487mFgsj8}K
z5mtF8uzzLCmMy|s4p>oCR8)cOSOr)^(UWMmJlW7Nb?Q{S*8r{RbH!1`XPlwGVBDuq
zAGV>D-^qgb?7 at Qv6HPmd1<I2qO=26)`inK)qB!dK;ZNAh!x(q&+*#kyA(sU;+`sb<
z(X at S^?%U@>dEWi=V7njXdHTPxrdt$8E60)?8-Kfjya9CsG5IoRDn9vg%I`P8#INMc
zuP%J@<!f?sy1A*zm)XRx)XcB5?xH4NW)r`XGrz8~@{lM#v3UA@(}^Uy_wJ|fBc at Nj
zXZqdK at g&O2yXRh&M2b&*j%kh&^XXkr at 7nd*GyhR1=B_M>cE_BFl<v2=-{^k*c0Y at J
z_J1pIO|okA=vNRPP&A-!@e at S@5Pq|+uBoZ6?oEWBczp5Wi(y6hjfD`q7rue;Nk)8U
zVV^6GC~K`k#I`^ridp|V6TFI<iLMAU14Y>=D_fcw`q}=Pv6i=*=c|KWi})c?9Mw!u
zm<i{*pAk*;GooYsj3~}bafZ`;49<`PfPcar3rt at cRL)$HGziW<8g`#6K0cVffkorv
zsd&h>aW^w4$@*vGtOw1ucHG|a6Zwel8Zg~!VRp`l(?d_>52)f3jKj at Pjm}UltPF*X
zWR;<cj~ZKch0F;de}&8qA%BG|2SQyTQ+zb|`f&LA@#8~ht`Hrtb^EQ at 61J0UCx6&(
zs2yWN+cWoI1tvCEz}Z}ZnRx|dx7aP~RK;>^C)tj&exeX;Hxxfp#pgM9vgP)$_ggW+
z$w?F^Un;>|FAJTyULwI<C77!ObCqDO63kVCxk at ls3Fa!nT*Kg&q|2n3yA*SmV(wDR
zU5dF&F?T8EF2&rXn7a&fmtyWo5r6(RNKU5t(&VrhJPf`BJPZa8gPF^-?$T_yEc;!O
z11`rwmtyWR%w6isf~y2`m0+$i98 at U|s2uxMk`0w*U8R|+JcG(Js5~bnMe4_Y)Nw4y
z#-oVj(}wU)K5Yo^<kN=mPCji2 at 8r{l at J>B#*wUh&HjEZtLvzg<g5fFW%{;k8>B(a^
zZ>AnU=~VU7OPz?8FM``8nG;X^l~oY?UGWiP^~7IT{5^qZbGQED894v|002ovPDHLk
FV1nvl at a_Nr

-- 
1.7.9.5


More information about the Koha-patches mailing list