View | Details | Raw Unified | Return to bug 10858
Collapse All | Expand All

(-)a/koha-tmpl/opac-tmpl/ccsr/en/css/opac.css (-1 / +19 lines)
Lines 773-779 a.tag_add { Link Here
773
 font-size : 100%;
773
 font-size : 100%;
774
      font-weight : bold;
774
      font-weight : bold;
775
    padding-left : 31px;
775
    padding-left : 31px;
776
   color : #336699;
776
   color : #007FAE;
777
       cursor : pointer;
777
       cursor : pointer;
778
}
778
}
779
.searchresults a.highlight_toggle {
779
.searchresults a.highlight_toggle {
Lines 1149-1154 a.cancel { Link Here
1149
       font-size: 90%;
1149
       font-size: 90%;
1150
}
1150
}
1151
1151
1152
.addto {
1153
    white-space: nowrap;
1154
}
1155
1152
.cartlist {
1156
.cartlist {
1153
 margin-top : 5px;
1157
 margin-top : 5px;
1154
}
1158
}
Lines 2865-2867 a.reviewlink,a.reviewlink:visited { Link Here
2865
    display: block;
2869
    display: block;
2866
    overflow: auto;
2870
    overflow: auto;
2867
}
2871
}
2872
2873
.details_link {
2874
    display : none;
2875
}
2876
2877
.details_link a {
2878
    display: inline-block;
2879
    padding : 5px 24px;
2880
    text-decoration: none;
2881
    background-image: url("../../images/sprite.png"); /* Print */
2882
    background-position: -5px -1138px;
2883
    background-repeat: no-repeat;
2884
    white-space: nowrap;
2885
}
(-)a/koha-tmpl/opac-tmpl/ccsr/en/includes/doc-head-close.inc (+3 lines)
Lines 39-44 Link Here
39
<script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script>
39
<script type="text/javascript" src="[% yuipath %]/menu/menu-min.js"></script>
40
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
40
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery.js"></script>
41
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
41
<script type="text/javascript" src="[% themelang %]/lib/jquery/jquery-ui.js"></script>
42
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.json.js"></script>
43
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.cookie.min.js"></script>
44
<script type="text/javascript" src="[% themelang %]/js/commons.js"></script>
42
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
45
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.hoverIntent.minified.js"></script>
43
<script type="text/javascript" src="[% themelang %]/js/script.js"></script>
46
<script type="text/javascript" src="[% themelang %]/js/script.js"></script>
44
[% IF ( OPACAmazonCoverImages ) %]
47
[% IF ( OPACAmazonCoverImages ) %]
(-)a/koha-tmpl/opac-tmpl/ccsr/en/js/commons.js (+71 lines)
Line 0 Link Here
1
// Extends jQuery API
2
// http://www.wskidmore.com/downloads/jquery-uniqueArray.min.js
3
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)}});
4
5
function removeByValue(arr, val) {
6
    for(var i=0; i<arr.length; i++) {
7
        if(arr[i] == val) {
8
            arr.splice(i, 1);
9
            break;
10
        }
11
    }
12
}
13
14
function paramOfUrl( url, param ) {
15
    param = param.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
16
    var regexS = "[\\?&]"+param+"=([^&#]*)";
17
    var regex = new RegExp( regexS );
18
    var results = regex.exec( url );
19
    if( results == null ) {
20
        return "";
21
    } else {
22
        return results[1];
23
    }
24
}
25
26
function addBibToContext( bibnum ) {
27
    var bibnums = getContextBiblioNumbers();
28
    bibnums.push(bibnum);
29
    setContextBiblioNumbers( bibnums );
30
    //var store = sessionStorage.getItem( "bibs_selected" );
31
}
32
33
function delBibToContext( bibnum ) {
34
    var bibnums = getContextBiblioNumbers();
35
    removeByValue( bibnums, bibnum );
36
    setContextBiblioNumbers( $.uniqueArray( bibnums ) );
37
}
38
39
function setContextBiblioNumbers( bibnums ) {
40
    //sessionStorage.setItem("bibs_selected", JSON.stringify( bibnums ) );
41
    $.cookie('bibs_selected', JSON.stringify( bibnums ));
42
}
43
44
function getContextBiblioNumbers() {
45
    //var r = sessionStorage.getItem("bibs_selected");
46
    var r = $.cookie('bibs_selected');
47
    if ( r ) {
48
        return JSON.parse(r);
49
    }
50
    r = new Array();
51
    return r;
52
}
53
54
function resetSearchContext() {
55
    setContextBiblioNumbers( new Array() );
56
}
57
58
$(document).ready(function(){
59
    // forms with action leading to search
60
    $("form[action*='opac-search.pl']").submit(function(){
61
        resetSearchContext();
62
    });
63
    // any link to launch a search except navigation links
64
    $("[href*='opac-search.pl?']").not(".nav").not('.searchwithcontext').click(function(){
65
        resetSearchContext();
66
    });
67
    // any link to a detail page from the results page.
68
    $("#bookbag_form a[href*='opac-detail.pl?']").click(function(){
69
        resetSearchContext();
70
    });
71
});
(-)a/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.cookie.min.js (+1 lines)
Line 0 Link Here
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}};
(-)a/koha-tmpl/opac-tmpl/ccsr/en/lib/jquery/plugins/jquery.json.js (+199 lines)
Line 0 Link Here
1
/**
2
 * jQuery JSON plugin 2.4-alpha
3
 *
4
 * @author Brantley Harris, 2009-2011
5
 * @author Timo Tijhof, 2011-2012
6
 * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
7
 *         copyrighted 2005 by Bob Ippolito.
8
 * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
9
 *         website's http://www.json.org/json2.js, which proclaims:
10
 *         "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
11
 *         I uphold.
12
 * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
13
 */
14
(function ($) {
15
    'use strict';
16
17
    var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
18
        meta = {
19
            '\b': '\\b',
20
            '\t': '\\t',
21
            '\n': '\\n',
22
            '\f': '\\f',
23
            '\r': '\\r',
24
            '"' : '\\"',
25
            '\\': '\\\\'
26
        },
27
        hasOwn = Object.prototype.hasOwnProperty;
28
29
    /**
30
     * jQuery.toJSON
31
     * Converts the given argument into a JSON representation.
32
     *
33
     * @param o {Mixed} The json-serializable *thing* to be converted
34
     *
35
     * If an object has a toJSON prototype, that will be used to get the representation.
36
     * Non-integer/string keys are skipped in the object, as are keys that point to a
37
     * function.
38
     *
39
     */
40
    $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
41
        if (o === null) {
42
            return 'null';
43
        }
44
45
        var pairs, k, name, val,
46
            type = $.type(o);
47
48
        if (type === 'undefined') {
49
            return undefined;
50
        }
51
52
        // Also covers instantiated Number and Boolean objects,
53
        // which are typeof 'object' but thanks to $.type, we
54
        // catch them here. I don't know whether it is right
55
        // or wrong that instantiated primitives are not
56
        // exported to JSON as an {"object":..}.
57
        // We choose this path because that's what the browsers did.
58
        if (type === 'number' || type === 'boolean') {
59
            return String(o);
60
        }
61
        if (type === 'string') {
62
            return $.quoteString(o);
63
        }
64
        if (typeof o.toJSON === 'function') {
65
            return $.toJSON(o.toJSON());
66
        }
67
        if (type === 'date') {
68
            var month = o.getUTCMonth() + 1,
69
                day = o.getUTCDate(),
70
                year = o.getUTCFullYear(),
71
                hours = o.getUTCHours(),
72
                minutes = o.getUTCMinutes(),
73
                seconds = o.getUTCSeconds(),
74
                milli = o.getUTCMilliseconds();
75
76
            if (month < 10) {
77
                month = '0' + month;
78
            }
79
            if (day < 10) {
80
                day = '0' + day;
81
            }
82
            if (hours < 10) {
83
                hours = '0' + hours;
84
            }
85
            if (minutes < 10) {
86
                minutes = '0' + minutes;
87
            }
88
            if (seconds < 10) {
89
                seconds = '0' + seconds;
90
            }
91
            if (milli < 100) {
92
                milli = '0' + milli;
93
            }
94
            if (milli < 10) {
95
                milli = '0' + milli;
96
            }
97
            return '"' + year + '-' + month + '-' + day + 'T' +
98
                hours + ':' + minutes + ':' + seconds +
99
                '.' + milli + 'Z"';
100
        }
101
102
        pairs = [];
103
104
        if ($.isArray(o)) {
105
            for (k = 0; k < o.length; k++) {
106
                pairs.push($.toJSON(o[k]) || 'null');
107
            }
108
            return '[' + pairs.join(',') + ']';
109
        }
110
111
        // Any other object (plain object, RegExp, ..)
112
        // Need to do typeof instead of $.type, because we also
113
        // want to catch non-plain objects.
114
        if (typeof o === 'object') {
115
            for (k in o) {
116
                // Only include own properties,
117
                // Filter out inherited prototypes
118
                if (hasOwn.call(o, k)) {
119
                    // Keys must be numerical or string. Skip others
120
                    type = typeof k;
121
                    if (type === 'number') {
122
                        name = '"' + k + '"';
123
                    } else if (type === 'string') {
124
                        name = $.quoteString(k);
125
                    } else {
126
                        continue;
127
                    }
128
                    type = typeof o[k];
129
130
                    // Invalid values like these return undefined
131
                    // from toJSON, however those object members
132
                    // shouldn't be included in the JSON string at all.
133
                    if (type !== 'function' && type !== 'undefined') {
134
                        val = $.toJSON(o[k]);
135
                        pairs.push(name + ':' + val);
136
                    }
137
                }
138
            }
139
            return '{' + pairs.join(',') + '}';
140
        }
141
    };
142
143
    /**
144
     * jQuery.evalJSON
145
     * Evaluates a given json string.
146
     *
147
     * @param str {String}
148
     */
149
    $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
150
        /*jshint evil: true */
151
        return eval('(' + str + ')');
152
    };
153
154
    /**
155
     * jQuery.secureEvalJSON
156
     * Evals JSON in a way that is *more* secure.
157
     *
158
     * @param str {String}
159
     */
160
    $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
161
        var filtered =
162
            str
163
            .replace(/\\["\\\/bfnrtu]/g, '@')
164
            .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
165
            .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
166
167
        if (/^[\],:{}\s]*$/.test(filtered)) {
168
            /*jshint evil: true */
169
            return eval('(' + str + ')');
170
        }
171
        throw new SyntaxError('Error parsing JSON, source is not valid.');
172
    };
173
174
    /**
175
     * jQuery.quoteString
176
     * Returns a string-repr of a string, escaping quotes intelligently.
177
     * Mostly a support function for toJSON.
178
     * Examples:
179
     * >>> jQuery.quoteString('apple')
180
     * "apple"
181
     *
182
     * >>> jQuery.quoteString('"Where are we going?", she asked.')
183
     * "\"Where are we going?\", she asked."
184
     */
185
    $.quoteString = function (str) {
186
        if (str.match(escape)) {
187
            return '"' + str.replace(escape, function (a) {
188
                var c = meta[a];
189
                if (typeof c === 'string') {
190
                    return c;
191
                }
192
                c = a.charCodeAt();
193
                return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
194
            }) + '"';
195
        }
196
        return '"' + str + '"';
197
    };
198
199
}(jQuery));
(-)a/koha-tmpl/opac-tmpl/prog/en/css/opac.css (-1 / +18 lines)
Lines 833-839 a.tag_add { Link Here
833
	font-size : 100%;
833
	font-size : 100%;
834
	font-weight : bold;
834
	font-weight : bold;
835
	padding-left : 31px;
835
	padding-left : 31px;
836
	color : #336699;
836
    color : #006699;
837
	cursor : pointer;
837
	cursor : pointer;
838
}
838
}
839
.searchresults a.highlight_toggle {
839
.searchresults a.highlight_toggle {
Lines 1210-1215 a.cancel { Link Here
1210
	font-size: 90%;
1210
	font-size: 90%;
1211
}
1211
}
1212
1212
1213
.addto {
1214
    white-space: nowrap;
1215
}
1216
1213
.cartlist {
1217
.cartlist {
1214
	margin-top : 5px;
1218
	margin-top : 5px;
1215
}
1219
}
Lines 3074-3076 padding: 0.1em 0; Link Here
3074
    width: 35%;
3078
    width: 35%;
3075
    font-size: 111%;
3079
    font-size: 111%;
3076
}
3080
}
3081
3082
.details_link {
3083
    display : none;
3084
}
3085
.details_link a {
3086
    display: inline-block;
3087
    padding : 5px 24px;
3088
    text-decoration: none;
3089
    background-image: url("../../images/sprite.png"); /* Print */
3090
    background-position: -5px -1138px;
3091
    background-repeat: no-repeat;
3092
    white-space: nowrap;
3093
}
(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tt (-1 / +1 lines)
Lines 529-535 $(document).ready(function(){ Link Here
529
                              Tag status here.
529
                              Tag status here.
530
                            </span>
530
                            </span>
531
            [% END %]
531
            [% END %]
532
            <span class="details_link" style="display:none" ><a href="#">Browse selected biblios &gt;&gt;</a></span>
532
            <span class="details_link"><a href="#">Browse selected records</a></span>
533
        </div>
533
        </div>
534
534
535
        </td></tr>
535
        </td></tr>

Return to bug 10858