Bug 8597: Add CSS, JS, and images to ccsr theme

In order for themes to work, they must include all CSS, Javascript, and
image assets that they use. This patch adds all CSS, Javascript, and
images from the prog theme to ccsr, EXCEPT for the famfamfam image set,
which needs to be moved outside of the theme directories, per bug 8624.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
This commit is contained in:
Jared Camins-Esakov 2012-08-12 20:04:19 -04:00 committed by Paul Poulain
parent f536d3edf0
commit 2ab4398fcf
410 changed files with 6665 additions and 0 deletions

View file

@ -0,0 +1,152 @@
/* ## BABELTHEQUE ## */
/* Babeltheque is a french supplier for advanced features
this babeltheque.css is not used anywhere by Koha, it's not a mistake
If you're babeltheque customer, you have access to a specific configuration URL
on babeltheque website, where you can activate this css
So: it should not be removed from Koha !
*/
#BW_etiquettes {
clear :left;
border: 1px solid #E8E8E8;
margin-top: 10px;
width: 49%;
float: left;
visibility: hidden;
visibility: visible\9;
}
#BW_etiquettes:not(:empty) {
visibility: visible;
}
#BW_etiquettes h2 {
clear:left;
background-color: #E8E8E8;
margin: 5px 10px;
padding: 0 5px;
}
#BW_ulEti {max-width:100%;}
#BW_ulEti ul {
margin:0;
padding:0 15px;
list-style-type: none;
}
#BW_ulEti a {
text-decoration: none;
}
#BW_ulEti a.tag_s0 {font-weight: 120;font-size:0.8em;}
#BW_ulEti a.tag_s1 {font-weight: 150;font-size:0.9em;}
#BW_ulEti a.tag_s2 {font-weight: 180;font-size:1.0em;}
#BW_ulEti a.tag_s3 {font-weight: 200;font-size:1.2em;}
#BW_ulEti a.tag_s4 {font-weight: 220;font-size:1.4em;}
#BW_ulEti a.tag_s5 {font-weight: 230;font-size:1.5em;}
#BW_ulEti a.tag_s6 {font-weight: 320;font-size:1.6em;}
#BW_ulEti a.tag_s7 {font-weight: 350;font-size:1.7em;}
#BW_ulEti a.tag_s8 {font-weight: 400;font-size:1.8em;}
#BW_ulEti { padding: 0px; line-height: 2em; text-align: center;}
#BW_ulEti a { padding: 2px; }
#BW_ulEti { margin: 0px; }
#BW_ulEti ol {
float:left;
display: inline;
margin: 0 10px;
}
#BW_suggestions {
border: 1px solid #E8E8E8;
margin-top: 10px;
float: right;
width: 49%;
visibility: hidden;
visibility: visible\9;
}
#BW_suggestions:not(:empty) {
visibility: visible;
}
#BW_suggestions h2 {
background-color: #E8E8E8;
margin: 5px 10px;
padding: 0 5px;
}
#BW_suggestions .BW_livres_tag_page {
padding: 0 15px;
}
#BW_suggestions .BW_livres_tag_page:before {
content : '> ';
}
#BW_droite .BW_livres_tag:before {
content : '> ';
}
#BW_videos {
clear : both;
border: 1px solid #E8E8E8;
padding-bottom: 140px;
margin-top: 10px;
max-width: 100%;
visibility: hidden;
visibility: visible\9;
}
#BW_videos:not(:empty) {
visibility: visible;
}
#BW_videos h2 {
background-color: #E8E8E8;
margin: 5px 10px;
padding: 0 5px;
}
#BW_videos .BW_bloc_vid {
clear: both;
padding: 0 15px;
}
.BW_vignette_vid {
border: 1px solid #DFD9CE;
float: left;
height: 141px;
margin: 5px;
min-height: 141px;
padding: 5px;
white-space: nowrap;
}
#BW_notes {clear :left;}
#BW_notes h2 {font-size:85%;}
#BW_citations {}
#BW_citations h2 {font-size:85%;}
#BW_critiques {}
#BW_critiques h2 {font-size:85%;}
#BW_critiques_pro {}
#BW_critiques_pro h2 {font-size:85%;}
#BW_citations,#BW_critiques,#BW_critiques_pro {
background: -moz-linear-gradient(center top , #3399FF, #3333FF) repeat scroll 0 0 transparent;
background: -webkit-gradient(linear, center top, center bottom, from(#3399FF), to(#3333FF));
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3399FF', endColorstr='#3333FF');
border: 1px solid #B7B7B7;
border-radius: 5px 5px 5px 5px;
color: #FFFFCC;
display: inline-block;
float: left;
font-weight: bold;
margin: 15px 20px 15px 0;
min-width: 150px;
padding: 0 15px 8px;
position: relative;
text-align: center;
text-shadow: 1px 1px 1px #777777;
white-space: nowrap;
}
#BW_citations a,#BW_critiques a,#BW_critiques_pro a {
color: #FFFFCC;
}

View file

@ -0,0 +1,265 @@
input.search_init {
color: #999999;
}
.sorting_asc {
padding-right: 19px;
background: url("../../img/asc.gif") no-repeat scroll right center #EEEEEE;
}
.sorting_desc {
padding-right: 19px;
background: url("../../img/desc.gif") no-repeat scroll right center #EEEEEE;
}
.sorting {
padding-right: 19px;
background: url("../../img/ascdesc.gif") no-repeat scroll right center #EEEEEE;
}
.sorting_asc_disabled {
padding-right: 19px;
background: url("../../img/datatables/sort_asc_disabled.png") no-repeat scroll right center #EEEEEE;
}
.sorting_desc_disabled {
padding-right: 19px;
background: url("../../img/datatables/sort_desc_disabled.png") no-repeat scroll right center #EEEEEE;
}
.sorting_disabled {
padding-right: 19px;
background-color: #EEEEEE;
}
div.top {clear : both; }
div.top.pager,
div.bottom.pager {
background-color : #E5E5E5;
padding : 0;
}
div.bottom.pager div.dataTables_paginate.paging_full_numbers,
div.bottom.pager div.dataTables_paginate.paging_four_button {
border-right-width : 0;
}
div.dataTables_filter,
div.dataTables_length,
div.dataTables_info,
div.dataTables_paginate {
float: left;
padding : .3em .5em .3em .5em;
}
div.dataTables_length {
border-right : 1px solid #686868;
line-height:1.9em;
}
div.dataTables_info {
border-right : 1px solid #AAA;
line-height:1.9em;
}
div.dataTables_length,
div.dataTables_filter {
border-left : 1px solid #FFF;
}
div.dataTables_filter {
line-height : 1.9em;
}
div.dataTables_paginate {
background-color : #F4F4F4;
font-size: 110%;
padding : 0;
}
.paging_full_numbers span.paginate_button,
.paging_full_numbers span.paginate_active {
border-right : 1px solid #AAA;
border-left : 1px solid #FFF;
display : block;
float : left;
line-height:1.6em;
padding: .3em .7em;
cursor: pointer;
}
.paging_full_numbers span.paginate_button {
color : #0000CC;
}
.paging_full_numbers span.paginate_button.first {
background-image : url('../../img/first.png');
background-repeat: no-repeat;
background-position : 2px center;
padding-left : 2em;
}
.paging_full_numbers span.paginate_button.previous {
background-image : url('../../img/prev.png');
background-repeat: no-repeat;
background-position : 2px center;
padding-left : 2em;
}
.paging_full_numbers span.paginate_button.next {
background-image : url('../../img/next.png');
background-repeat: no-repeat;
background-position : right center;
padding-right : 2em;
}
.paging_full_numbers span.paginate_button.last {
background-image : url('../../img/last.png');
background-repeat: no-repeat;
background-position : right center;
border-right : 1px solid #686868;
padding-right : 2em;
}
div.bottom.pager .paging_full_numbers span.paginate_button.last {
border-right-width : 0;
}
.paging_full_numbers span.paginate_active {
background-color : #FFFFEA;
color : #000;
font-weight: bold;
}
.paging_full_numbers span.paginate_button:hover {
background-color: #FFC;
}
.paging_full_numbers span.paginate_button.paginate_button_disabled {
color : #666;
}
/* Two-button version */
div.dataTables_paginate.paging_two_button,
div.dataTables_paginate.paging_four_button {
background-color : transparent;
border-right : 1px solid #686868;
border-left : 1px solid #FFF;
line-height : 1.8em;
}
.paginate_disabled_first,
.paginate_enabled_first,
.paginate_disabled_previous,
.paginate_enabled_previous,
.paginate_disabled_next,
.paginate_enabled_next,
.paginate_disabled_last,
.paginate_enabled_last {
float: left;
height: 16px;
margin: .5em;
width: 16px;
}
.paginate_disabled_first {
background-image: url("../../img/first-disabled.png");
}
.paginate_enabled_first {
background-image: url("../../img/first.png");
cursor: pointer;
}
.paginate_disabled_previous {
background-image: url("../../img/prev-disabled.png");
}
.paginate_enabled_previous {
background-image: url("../../img/prev.png");
cursor: pointer;
}
.paginate_disabled_next {
background-image: url("../../img/next-disabled.png");
}
.paginate_enabled_next {
background-image: url("../../img/next.png");
cursor: pointer;
}
.paginate_disabled_last {
background-image: url("../../img/last-disabled.png");
}
.paginate_enabled_last {
background-image: url("../../img/last.png");
cursor: pointer;
}
/*
table.display {
width: 100%;
}
table.display thead th {
border-bottom: 1px solid black;
cursor: pointer;
font-weight: bold;
padding: 3px 18px 3px 10px;
}
.dataTables_wrapper {
clear: both;
position: relative;
}
.dataTables_processing {
background-color: white;
border: 1px solid #DDDDDD;
color: #999999;
font-size: 14px;
height: 30px;
left: 50%;
margin-left: -125px;
margin-top: -15px;
padding: 14px 0 2px;
position: fixed;
text-align: center;
top: 50%;
width: 250px;
}
.dataTables_info {
float: left;
width: 60%;
}
.dataTables_paginate {
float: right;
text-align: right;
width: 44px;
}
.paging_full_numbers {
height: 22px;
line-height: 22px;
width: 400px;
}
.paging_full_numbers span.paginate_button,
.paging_full_numbers span.paginate_active {
border: 1px solid #aaa;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
padding: 2px 5px;
margin: 0 3px;
cursor: pointer;
*cursor: hand;
}
.paging_full_numbers span.paginate_button {
background-color: #ddd;
}
.paging_full_numbers span.paginate_button:hover {
background-color: #ccc;
}
.paging_full_numbers span.paginate_active {
background-color: #99B3FF;
}
.paginate_disabled_previous, .paginate_enabled_previous, .paginate_disabled_next, .paginate_enabled_next {
float: left;
height: 19px;
margin-left: 3px;
width: 19px;
}
.paginate_disabled_previous {
background-image: url("../../img/datatables/back_disabled.jpg");
}
.paginate_enabled_previous {
background-image: url("../../img/datatables/back_enabled.jpg");
}
.paginate_disabled_next {
background-image: url("../../img/datatables/forward_disabled.jpg");
}
.paginate_enabled_next {
background-image: url("../../img/datatables/forward_enabled.jpg");
}
.spacer {
clear: both;
height: 20px;
}

View file

@ -0,0 +1,105 @@
.hierarchies {
background-color:#fff;
color:#000000;
padding:5px;
margin-left:50px;
-moz-border-radius:6px;
display:block;
font-size:10px;
}
.hierarchy {
padding:5px;
width:90%;
-moz-border-radius:6px;
display:block;
}
.child {
display:none;
margin-left : 50px;
width:150%;
}
.child a:hover{
background-color:#BFCFFF;
}
.parent {
display:none;
margin-left : -50px;
}
.parent a:hover{
background-color:#BFCFFF;
}
.child0{
width : 20%;
text-align : left;
}
.child0 a:hover{
background-color:#BFCFFF;
}
.child1{
width : 20%;
text-align : left;
margin-left : 50px;
}
.child1 a:hover{
background-color:#BFCFFF;
}
.child2{
width : 20%;
text-align : left;
margin-left : 100px;
}
.child2 a:hover{
background-color:#BFCFFF;
}
.child3{
width : 20%;
text-align : left;
margin-left : 150px;
}
.child3 a:hover{
background-color:#BFCFFF;
}
.child4{
width : 20%;
text-align : left;
margin-left : 200px;
}
.child4 a:hover{
background-color:#BFCFFF;
}
.child5{
width : 20%;
text-align : left;
margin-left : 250px;
}
.child5 a:hover{
background-color:#BFCFFF;
}
.child6{
width : 20%;
text-align : left;
margin-left : 300px;
}
.child6 a:hover{
background-color:#BFCFFF;
}
.child7{
width : 20%;
text-align : left;
margin-left : 350px;
}
.child7 a:hover{
background-color:#BFCFFF;
}
.child8{
width : 10%;
text-align : left;
margin-left : 400px;
}
.child8 a:hover{
background-color:#BFCFFF;
}
.parents{
display:inline;
cursor:crosshair;
}

View file

@ -0,0 +1,12 @@
/* jQuery.Rating Plugin CSS - http://www.fyneworks.com/jquery/star-rating/ */
div.rating-cancel,div.star-rating{float:left;width:15px;height:15px;text-indent:-999em;cursor:pointer;display:block;background:transparent;overflow:hidden}
div.rating-cancel,div.rating-cancel a{background:url(../../images/delete.gif) no-repeat 0 -16px}
div.star-rating,div.star-rating a{background:url(../../images/star.gif) no-repeat 0 0px}
div.rating-cancel a,div.star-rating a{display:block;width:16px;height:100%;background-position:0 0px;border:0}
div.star-rating-on a{background-position:0 -32px!important}
div.star-rating-hover a{background-position:0 -16px}
/* Read Only CSS */
div.star-rating-readonly a{cursor:default !important}
/* Partial Star CSS */
div.star-rating{background:transparent!important;overflow:hidden!important}
/* END jQuery.Rating Plugin CSS */

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,227 @@
a:link {
color : #000066;
text-decoration: none;
}
a:visited {
color : #000066;
text-decoration: none;
}
a:hover {
color : #993300;
text-decoration: none;
}
body {
background-color : #FFF;
color : #333333;
font-family : arial, geneva, sans-serif;
font-size : 14px;
margin : 0px 0px 0px 0px;
word-wrap : break-word;
}
caption {
color : #000066;
font-size : 18px;
font-weight : bold;
margin-top : 5px;
text-align : left;
}
div.table {
width : 100%;
}
form {
margin : 0px;
padding : 0px;
}
h1
{
color : #000066;
font-size : 22px;
font-weight : bold;
margin-bottom : 3px;
margin-top : 3px;
}
h2 {
color : #000066;
font-size : 20px;
font-weight : bold;
margin-bottom : 3px;
margin-top : 3px;
}
h3 {
color : #000066;
font-size : 18px;
font-weight : bold;
margin-bottom : 3px;
margin-top : 3px;
}
h4 {
color : #000066;
font-size : 16px;
font-weight : bold;
margin-bottom : 3px;
margin-top : 3px;
}
h5 {
color : #000066;
font-size : 15px;
font-weight : bold;
margin-bottom : 1px;
margin-top : 1px;
}
h6 {
color : #000066;
font-size : 14px;
font-weight : bold;
margin-bottom : 1px;
margin-top : 1px;
}
p {
margin-top : 0px;
}
table {
background-color : #FFFFFF;
border-bottom : 0px solid #CCCCCC;
border-collapse : collapse;
border-left : 0px solid #CCCCCC;
margin : 3px 0px 5px 0px;
padding : 0px;
width : 99%;
}
td {
background-color : #FFF;
border-bottom : 1px solid #CCCCCC;
border-right : 1px solid #CCCCCC;
padding : 5px 5px 5px 5px;
vertical-align : top;
}
td:last-child {
background-color : #FFF;
border-bottom : 1px solid #CCCCCC;
border-right : 0px solid #CCCCCC;
padding : 5px 5px 5px 5px;
vertical-align : top;
}
th {
background-color : #E9E9E9;
border-bottom : 1px solid #CCCCCC;
border-right : 1px solid #CCCCCC;
font-weight : bold;
padding : 5px 5px 5px 5px;
}
th:last-child {
background-color : #E9E9E9;
border-bottom : 1px solid #CCCCCC;
border-right : 0px solid #CCCCCC;
font-weight : bold;
padding : 5px 5px 5px 5px;
}
tr.highlight {
background-color: #e9e9e9;
}
body#basket tr.highlight {
background-color : transparent;
}
body#basket a {
font-weight : bold;
}
body#basket table {
border-top : 1px solid #EEE;
border-left : 1px solid #EEE;
}
body#basket td,
body#basket th {
background-color : transparent;
padding : 2px;
}
body#basket th {
background-color : #EEE;
}
body#basket th,
body#basket th[scope=col] {
text-align : center;
vertical-align : middle;
}
body#basket th[scope=row] {
font-size : 89%;
text-align : right;
vertical-align : top;
width : 10%;
}
body#basket p {
font-size : 85%;
margin : .2em 0;
text-indent : .5em;
}
.error {
font-weight: bold;
}
.ex {
font-family : "Courier New", Courier, monospace;
}
.inline {
display : inline;
}
.screen {
display : none;
}
#bookcover {
float:left;
margin:0pt;
padding:0pt;
}
#members,#opac-main-search,#opac-user-views .ui-tabs-nav,input,h2 span.hint,td.resultscontrol,.pages,.suggestion,.views,#action,#export,#bibliodescriptions .ui-tabs-nav,#addshelf,fieldset.action, .list-actions, .ft, #facetcontainer,.results_summary.actions,.koha_url,.yui-b {
display : none;
}
#userresults {
position : absolute;
right : 0px;
word-wrap : break-word;
display : block;
}
div#userupdate input,div#userupdate textarea {
display : inline;
border : 0;
}
#yui-main,
#yui-main .yui-b,
.yui-t1 #yui-main .yui-b {
display : block !important;
margin : 0 !important;
padding : 0 !important;
width : auto !important;
float : none !important;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,341 @@
@import url("../../en/lib/yui/reset-fonts-grids.css");
@import url("../../en/lib/yui/skin.css");
a {
font-weight : bold;
}
a, a:visited {
color : #006699;
}
a:hover,input.editshelf:hover,a.editshelf:hover,input.deleteshelf:hover {
color : #990033;
}
body {
background-color : white;
text-align : left;
padding : 0 0 2.5em 0;
}
caption {
font-size : 110%;
text-align : left;
font-weight : bold;
}
fieldset {
background-color: #FFF;
border : 2px solid #EEEEEE;
margin : 1em 1em 1em 0;
padding : 1em;
}
h1,h2,h3,h4,h5,h6 {
font-weight : bold;
margin : .5em 0;
}
h1 {
font-size : 138.5%;
}
h2 {
font-size : 134%;
}
h3 {
font-size : 123.1%;
}
h4 {
font-size : 116%;
}
h5 {
font-size : 108%;
}
h6 {
font-size : 100%;
}
input[type=submit],
input[type=button],
input[type=reset],
fieldset.brief input[type=submit],
fieldset.brief input[type=button],
fieldset.brief input[type=reset]
{
background: #f4f9fc; /* Old browsers */
background: -moz-linear-gradient(top, #f4f9fc 0%, #dfeefa 4%, #bfd5ea 93%, #a1c4e2 97%, #b8d0e6 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f4f9fc), color-stop(4%,#dfeefa), color-stop(93%,#bfd5ea), color-stop(97%,#a1c4e2), color-stop(100%,#b8d0e6)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #f4f9fc 0%,#dfeefa 4%,#bfd5ea 93%,#a1c4e2 97%,#b8d0e6 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #f4f9fc 0%,#dfeefa 4%,#bfd5ea 93%,#a1c4e2 97%,#b8d0e6 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #f4f9fc 0%,#dfeefa 4%,#bfd5ea 93%,#a1c4e2 97%,#b8d0e6 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f9fc', endColorstr='#b8d0e6',GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #f4f9fc 0%,#dfeefa 4%,#bfd5ea 93%,#a1c4e2 97%,#b8d0e6 100%); /* W3C */
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
border-right: 1px solid #eeeeee;
border-bottom: 1px solid #eeeeee;
color : #333;
font-size : 93%;
font-weight : bold;
padding : 4px;
}
input[type=submit]:active, input[type=button]:active, input[type=reset]:active {
border: 1px inset #666666;
float : none;
}
.dialog {
border: 1px solid #bcbcbc;
padding : .5em;
margin : 1em auto;
width: 65%;
}
.dialog h2, .dialog h3, .dialog h4 {
margin : auto;
text-align : center;
}
div.alert {
background: #fef8d3; /* Old browsers */
background: -moz-linear-gradient(top, #fef8d3 0%, #ffec91 9%, #ffed87 89%, #f9dc00 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fef8d3), color-stop(9%,#ffec91), color-stop(89%,#ffed87), color-stop(100%,#f9dc00)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #fef8d3 0%,#ffec91 9%,#ffed87 89%,#f9dc00 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #fef8d3 0%,#ffec91 9%,#ffed87 89%,#f9dc00 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #fef8d3 0%,#ffec91 9%,#ffed87 89%,#f9dc00 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fef8d3', endColorstr='#f9dc00',GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #fef8d3 0%,#ffec91 9%,#ffed87 89%,#f9dc00 100%); /* W3C */
text-align : center;
}
div.alert strong {
color : #900;
}
div.message {
background: #ffffff; /* Old browsers */
background: -moz-linear-gradient(top, #ffffff 0%, #f4f6fa 2%, #eaeef5 23%, #e8edf6 94%, #cddbf2 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(2%,#f4f6fa), color-stop(23%,#eaeef5), color-stop(94%,#e8edf6), color-stop(100%,#cddbf2)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #ffffff 0%,#f4f6fa 2%,#eaeef5 23%,#e8edf6 94%,#cddbf2 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #ffffff 0%,#f4f6fa 2%,#eaeef5 23%,#e8edf6 94%,#cddbf2 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, #ffffff 0%,#f4f6fa 2%,#eaeef5 23%,#e8edf6 94%,#cddbf2 100%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#cddbf2',GradientType=0 ); /* IE6-9 */
background: linear-gradient(top, #ffffff 0%,#f4f6fa 2%,#eaeef5 23%,#e8edf6 94%,#cddbf2 100%); /* W3C */
border : 1px solid #bcbcbc;
width : 55%;
}
.dialog input {
background : #FFF none;
border : 1px solid #bcbcbc;
margin : .4em;
padding : .4em;
}
.dialog input.back {
background : #FFF url(../../famfamfam/silk/arrow_left.png) no-repeat 4px center;
padding : .4em .4em .4em 25px;
}
.dialog input.return {
background : #FFF url(../../famfamfam/silk/book_previous.png) no-repeat 4px center;
padding : .4em .4em .4em 25px;
}
.dialog input.renew {
background : #FFF url(../../famfamfam/silk/arrow_refresh.png) no-repeat 4px center;
padding : .4em .4em .4em 25px;
}
.dialog input.cancel {
background : #FFF url(../../famfamfam/silk/cancel.png) no-repeat 4px center;
padding : .4em .4em .4em 25px;
}
input.finish {
background : #dbe7ff url(../../famfamfam/silk/stop.png) no-repeat 4px center;
border : 1px outset #666;
padding : .2em .2em .2em 25px;
}
table {
background-color: #FFF;
border-collapse : collapse;
margin : 1em 0;
border-right : 1px solid #dddddd;
border-top : 1px solid #dddddd;
}
td,th {
background-color: #FFF;
border-left : 1px solid #dddddd;
border-bottom : 1px solid #dddddd;
padding : 3px 3px;
}
th {
background-color:#EEE;
font-weight : bold;
padding : 2px 23px;
text-align : center;
}
tr.highlight td, tr.highlight th, tr.odd td {
background-color : #F3F3F3;
border-top : 1px solid #DDDDDD;
border-bottom : 1px solid #DDDDDD;
}
tr.even td, tr.even.highlight td {
background-color: #FFF;
}
.header {
background-image:url("../../images/ascdesc.gif");
background-position:right center;
background-repeat:no-repeat;
cursor:pointer;
}
.headerSortUp {
background-image:url("../../images/asc.gif");
}
.headerSortDown {
background-image:url("../../images/desc.gif");
}
p {
margin: .7em 0;
}
strong {
font-weight : bold;
}
em {
font-style : italic;
}
#borrowerdetails {
margin-top : 1em;
}
#barcode,
#patronid {
font-size : 125%;
padding-bottom : 3px;
}
input.focus {
background-color : #FFC;
border : 2px inset #336699;
}
#checkouthelp {
background : #FFF url("../../famfamfam/silk/help.png") no-repeat 4px center;
padding : 3px 3px 3px 26px;
position : absolute;
top : 0;
right : 0;
}
div.button {
float : left;
margin-top : 2em;
padding : .4em 0;
}
div.button a:link,
div.button a:visited,
div.button a:hover,
div.button a:active {
background : #FFF url(../../famfamfam/silk/book_previous.png) no-repeat 4px center;
border : 1px outset #666;
color : #000;
padding : .4em .4em .4em 25px;
text-decoration : none;
}
div.button a:active {
border : 1px inset #666;
}
div.koha_url {
border-top: none !important;
}
span.koha_url {
position: absolute;
right: 0;
}
a.koha_url {
text-decoration: none;
color: #666666;
}
div#changelanguage{
background-color: #fff;
border-top: 1px solid #CCC;
color : #666;
font-size : 85%;
padding : 1em;
margin-top : 2em;
}
div#changelanguage a {
font-weight : normal;
padding : .5em 0;
}
div#changelanguage li.yuimenuitem {
font-size: 120%;
font-weight: normal;
margin: 0;
padding: 0 1em;
}
div#changelanguage li.yuimenuitem a.yuimenuitemlabel {
padding: 0;
}
ul#i18nMenu {
margin : 0;
padding : .2em 0;
}
ul#i18nMenu li {
border-left : 1px solid #CCC;
display : inline;
list-style : none;
padding : 0 .4em;
}
ul#i18nMenu li:first-child {
border-left : 0;
}
ul#i18nMenu li ul li {
border : 0;
display : block;
padding : 0;
}
ul#i18nMenu li.more a {
background-image : url("../../images/sprite.png");
background-position : 37px -940px;
background-repeat:no-repeat;
padding-right: 1.3em;
}
ul#i18nMenu li.more ul li a {
background-image : none;
padding: 0 1.3em;
}
span.lang{
float:left;
border-right : 1px solid black;
padding : 0 .5em;
}
div.ft {
clear : both;
}

View file

@ -0,0 +1,14 @@
// http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html
function verify_images() {
$("img").each(function(i){
if ((this.src.indexOf('images.amazon.com') >= 0) || (this.src.indexOf('g-images.amazon.com') >=0) || (this.src.indexOf('syndetics.com') >=0) ) {
w = this.width;
h = this.height;
if ((w == 1) || (h == 1)) {
$(this).parent().html("<span class=\"no-image\">"+NO_AMAZON_IMAGE+"</span>");
} else if ((this.complete != null) && (!this.complete)) {
$(this).parent().html("<span class=\"no-image\">"+NO_AMAZON_IMAGE+"</span>");
}
}
});
}

View file

@ -0,0 +1,11 @@
// http://www.oreillynet.com/pub/a/javascript/2003/10/21/amazonhacks.html
function bt_verify_images() {
$("img").each(function(i){
if (this.src.indexOf('btol.com') >= 0) {
h = this.height;
if (h == 20) {
$(this).before("<span class=\"no-image\" style=\"margin-bottom:5px;width:80px;\">"+NO_BAKERTAYLOR_IMAGE+"</span>");
}
}
});
}

View file

@ -0,0 +1,384 @@
// These default options are for translation but can be used
// for any other datatables settings
// MSG_DT_* variables comes from datatables-strings.inc
// To use it, write:
// $("#table_id").dataTable($.extend(true, {}, dataTableDefaults, {
// // other settings
// } ) );
var dataTablesDefaults = {
"oLanguage": {
"oPaginate": {
"sFirst" : window.MSG_DT_FIRST || "First",
"sLast" : window.MSG_DT_LAST || "Last",
"sNext" : window.MSG_DT_NEXT || "Next",
"sPrevious" : window.MSG_DT_PREVIOUS || "Previous"
},
"sEmptyTable" : window.MSG_DT_EMPTY_TABLE || "No data available in table",
"sInfo" : window.MSG_DT_INFO || "Showing _START_ to _END_ of _TOTAL_ entries",
"sInfoEmpty" : window.MSG_DT_INFO_EMPTY || "No entries to show",
"sInfoFiltered" : window.MSG_DT_INFO_FILTERED || "(filtered from _MAX_ total entries)",
"sLengthMenu" : window.MSG_DT_LENGTH_MENU || "Show _MENU_ entries",
"sLoadingRecords" : window.MSG_DT_LOADING_RECORDS || "Loading...",
"sProcessing" : window.MSG_DT_PROCESSING || "Processing...",
"sSearch" : window.MSG_DT_SEARCH || "Search:",
"sZeroRecords" : window.MSG_DT_ZERO_RECORDS || "No matching records found"
},
"sDom": '<"top pager"ilpf>t<"bottom pager"ip>'
};
// Return an array of string containing the values of a particular column
$.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
// check that we have a column id
if ( typeof iColumn == "undefined" ) return new Array();
// by default we only wany unique data
if ( typeof bUnique == "undefined" ) bUnique = true;
// by default we do want to only look at filtered data
if ( typeof bFiltered == "undefined" ) bFiltered = true;
// by default we do not wany to include empty values
if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true;
// list of rows which we're going to loop through
var aiRows;
// use only filtered rows
if (bFiltered == true) aiRows = oSettings.aiDisplay;
// use all rows
else aiRows = oSettings.aiDisplayMaster; // all row numbers
// set up data array
var asResultData = new Array();
for (var i=0,c=aiRows.length; i<c; i++) {
iRow = aiRows[i];
var aData = this.fnGetData(iRow);
var sValue = aData[iColumn];
// ignore empty values?
if (bIgnoreEmpty == true && sValue.length == 0) continue;
// ignore unique values?
else if (bUnique == true && jQuery.inArray(sValue, asResultData) > -1) continue;
// else push the value onto the result data array
else asResultData.push(sValue);
}
return asResultData;
}
// List of unbind keys (Ctrl, Alt, Direction keys, etc.)
// These keys must not launch filtering
var blacklist_keys = new Array(0, 16, 17, 18, 37, 38, 39, 40);
// Set a filtering delay for global search field
jQuery.fn.dataTableExt.oApi.fnSetFilteringDelay = function ( oSettings, iDelay ) {
/*
* Inputs: object:oSettings - dataTables settings object - automatically given
* integer:iDelay - delay in milliseconds
* Usage: $('#example').dataTable().fnSetFilteringDelay(250);
* Author: Zygimantas Berziunas (www.zygimantas.com) and Allan Jardine
* License: GPL v2 or BSD 3 point style
* Contact: zygimantas.berziunas /AT\ hotmail.com
*/
var
_that = this,
iDelay = (typeof iDelay == 'undefined') ? 250 : iDelay;
this.each( function ( i ) {
$.fn.dataTableExt.iApiIndex = i;
var
$this = this,
oTimerId = null,
sPreviousSearch = null,
anControl = $( 'input', _that.fnSettings().aanFeatures.f );
anControl.unbind( 'keyup.DT' ).bind( 'keyup.DT', function(event) {
var $$this = $this;
if (blacklist_keys.indexOf(event.keyCode) != -1) {
return this;
}else if ( event.keyCode == '13' ) {
$.fn.dataTableExt.iApiIndex = i;
_that.fnFilter( $(this).val() );
} else {
if (sPreviousSearch === null || sPreviousSearch != anControl.val()) {
window.clearTimeout(oTimerId);
sPreviousSearch = anControl.val();
oTimerId = window.setTimeout(function() {
$.fn.dataTableExt.iApiIndex = i;
_that.fnFilter( anControl.val() );
}, iDelay);
}
}
});
return this;
} );
return this;
}
// Add a filtering delay on general search and on all input (with a class 'filter')
jQuery.fn.dataTableExt.oApi.fnAddFilters = function ( oSettings, sClass, iDelay ) {
var table = this;
this.fnSetFilteringDelay(iDelay);
var filterTimerId = null;
$("input."+sClass).keyup(function(event) {
if (blacklist_keys.indexOf(event.keyCode) != -1) {
return this;
}else if ( event.keyCode == '13' ) {
table.fnFilter( $(this).val(), $(this).attr('data-column_num') );
} else {
window.clearTimeout(filterTimerId);
var input = this;
filterTimerId = window.setTimeout(function() {
table.fnFilter($(input).val(), $(input).attr('data-column_num'));
}, iDelay);
}
});
}
// Useful if you want to filter on dates with 2 inputs (start date and end date)
// You have to include calendar.inc to use it
function dt_add_rangedate_filter(begindate_id, enddate_id, dateCol) {
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var beginDate = Date_from_syspref($("#"+begindate_id).val()).getTime();
var endDate = Date_from_syspref($("#"+enddate_id).val()).getTime();
var data = Date_from_syspref(aData[dateCol]).getTime();
if ( !parseInt(beginDate) && ! parseInt(endDate) ) {
return true;
}
else if ( beginDate <= data && !parseInt(endDate) ) {
return true;
}
else if ( data <= endDate && !parseInt(beginDate) ) {
return true;
}
else if ( beginDate <= data && data <= endDate) {
return true;
}
return false;
}
);
}
//Sorting for dates (uk format)
function dt_add_type_uk_date() {
jQuery.fn.dataTableExt.aTypes.unshift(
function ( sData )
{
if (sData.match(/(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20|21)\d\d/))
{
return 'uk_date';
}
return null;
}
);
jQuery.fn.dataTableExt.oSort['uk_date-asc'] = function(a,b) {
var re = /(\d{2}\/\d{2}\/\d{4})/;
a.match(re);
var ukDatea = RegExp.$1.split("/");
b.match(re);
var ukDateb = RegExp.$1.split("/");
var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['uk_date-desc'] = function(a,b) {
var re = /(\d{2}\/\d{2}\/\d{4})/;
a.match(re);
var ukDatea = RegExp.$1.split("/");
b.match(re);
var ukDateb = RegExp.$1.split("/");
var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
}
// Sorting on html contains
// <a href="foo.pl">bar</a> sort on 'bar'
function dt_overwrite_html_sorting_localeCompare() {
jQuery.fn.dataTableExt.oSort['html-asc'] = function(a,b) {
a = a.replace(/<.*?>/g, "").replace(/\s+/g, " ");
b = b.replace(/<.*?>/g, "").replace(/\s+/g, " ");
if (typeof(a.localeCompare == "function")) {
return a.localeCompare(b);
} else {
return (a > b) ? 1 : ((a < b) ? -1 : 0);
}
};
jQuery.fn.dataTableExt.oSort['html-desc'] = function(a,b) {
a = a.replace(/<.*?>/g, "").replace(/\s+/g, " ");
b = b.replace(/<.*?>/g, "").replace(/\s+/g, " ");
if(typeof(b.localeCompare == "function")) {
return b.localeCompare(a);
} else {
return (b > a) ? 1 : ((b < a) ? -1 : 0);
}
};
}
// Sorting on string without accentued characters
function dt_overwrite_string_sorting_localeCompare() {
jQuery.fn.dataTableExt.oSort['string-asc'] = function(a,b) {
a = a.replace(/<.*?>/g, "").replace(/\s+/g, " ");
b = b.replace(/<.*?>/g, "").replace(/\s+/g, " ");
if (typeof(a.localeCompare == "function")) {
return a.localeCompare(b);
} else {
return (a > b) ? 1 : ((a < b) ? -1 : 0);
}
};
jQuery.fn.dataTableExt.oSort['string-desc'] = function(a,b) {
a = a.replace(/<.*?>/g, "").replace(/\s+/g, " ");
b = b.replace(/<.*?>/g, "").replace(/\s+/g, " ");
if(typeof(b.localeCompare == "function")) {
return b.localeCompare(a);
} else {
return (b > a) ? 1 : ((b < a) ? -1 : 0);
}
};
}
// Replace a node with a html and js contain.
function replace_html( original_node, type ) {
switch ( $(original_node).attr('data-type') ) {
case "range_dates":
var id = $(original_node).attr("data-id");
var format = $(original_node).attr("data-format");
replace_html_date( original_node, id, format );
break;
default:
alert("_(This node can't be replaced)");
}
}
// Replace a node with a "From [date] To [date]" element
// Used on tfoot > td
function replace_html_date( original_node, id, format ) {
var node = $('<span style="white-space:nowrap">' + _("From") + '<input type="text" id="' + id + 'from" readonly="readonly" placeholder=\'' + _("Pick date") + '\' size="7" /><a title="Delete this filter" style="cursor:pointer" onclick=\'$("#' + id + 'from").val("").change();\' >&times;</a></span><br/><span style="white-space:nowrap">' + _("To") + '<input type="text" id="' + id + 'to" readonly="readonly" placeholder=\'' + _("Pick date") + '\' size="7" /><a title="Delete this filter" style="cursor:pointer" onclick=\'$("#' + id + 'to").val("").change();\' >&times;</a></span>');
$(original_node).replaceWith(node);
var script = document.createElement( 'script' );
script.type = 'text/javascript';
var script_content = "Calendar.setup({";
script_content += " inputField: \"" + id + "from\",";
script_content += " ifFormat: \"" + format + "\",";
script_content += " button: \"" + id + "from\",";
script_content += " onClose: function(){ $(\"#" + id + "from\").change(); this.hide();}";
script_content += " });";
script_content += " Calendar.setup({";
script_content += " inputField: \"" + id + "to\",";
script_content += " ifFormat: \"" + format + "\",";
script_content += " button: \"" + id + "to\",";
script_content += " onClose: function(){ $(\"#" + id + "to\").change(); this.hide();}";
script_content += " });";
script.text = script_content;
$(original_node).append( script );
}
$.fn.dataTableExt.oPagination.four_button = {
/*
* Function: oPagination.four_button.fnInit
* Purpose: Initalise dom elements required for pagination with a list of the pages
* Returns: -
* Inputs: object:oSettings - dataTables settings object
* node:nPaging - the DIV which contains this pagination control
* function:fnCallbackDraw - draw function which must be called on update
*/
"fnInit": function ( oSettings, nPaging, fnCallbackDraw )
{
nFirst = document.createElement( 'span' );
nPrevious = document.createElement( 'span' );
nNext = document.createElement( 'span' );
nLast = document.createElement( 'span' );
/* nFirst.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sFirst ) );
nPrevious.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sPrevious ) );
nNext.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sNext ) );
nLast.appendChild( document.createTextNode( oSettings.oLanguage.oPaginate.sLast ) );*/
nFirst.className = "paginate_button first";
nPrevious.className = "paginate_button previous";
nNext.className="paginate_button next";
nLast.className = "paginate_button last";
nPaging.appendChild( nFirst );
nPaging.appendChild( nPrevious );
nPaging.appendChild( nNext );
nPaging.appendChild( nLast );
$(nFirst).click( function () {
oSettings.oApi._fnPageChange( oSettings, "first" );
fnCallbackDraw( oSettings );
} );
$(nPrevious).click( function() {
oSettings.oApi._fnPageChange( oSettings, "previous" );
fnCallbackDraw( oSettings );
} );
$(nNext).click( function() {
oSettings.oApi._fnPageChange( oSettings, "next" );
fnCallbackDraw( oSettings );
} );
$(nLast).click( function() {
oSettings.oApi._fnPageChange( oSettings, "last" );
fnCallbackDraw( oSettings );
} );
/* Disallow text selection */
$(nFirst).bind( 'selectstart', function () { return false; } );
$(nPrevious).bind( 'selectstart', function () { return false; } );
$(nNext).bind( 'selectstart', function () { return false; } );
$(nLast).bind( 'selectstart', function () { return false; } );
},
/*
* Function: oPagination.four_button.fnUpdate
* Purpose: Update the list of page buttons shows
* Returns: -
* Inputs: object:oSettings - dataTables settings object
* function:fnCallbackDraw - draw function which must be called on update
*/
"fnUpdate": function ( oSettings, fnCallbackDraw )
{
if ( !oSettings.aanFeatures.p )
{
return;
}
/* Loop over each instance of the pager */
var an = oSettings.aanFeatures.p;
for ( var i=0, iLen=an.length ; i<iLen ; i++ )
{
var buttons = an[i].getElementsByTagName('span');
if ( oSettings._iDisplayStart === 0 )
{
buttons[0].className = "paginate_disabled_first";
buttons[1].className = "paginate_disabled_previous";
}
else
{
buttons[0].className = "paginate_enabled_first";
buttons[1].className = "paginate_enabled_previous";
}
if ( oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay() )
{
buttons[2].className = "paginate_disabled_next";
buttons[3].className = "paginate_disabled_last";
}
else
{
buttons[2].className = "paginate_enabled_next";
buttons[3].className = "paginate_enabled_last";
}
}
}
};

View file

@ -0,0 +1,75 @@
if (typeof KOHA == "undefined" || !KOHA) {
var KOHA = {};
}
/**
* A namespace for Google related functions.
*/
KOHA.Google = {
/**
* Search all:
* <div title="biblionumber" id="isbn" class="gbs-thumbnail"></div>
* or
* <div title="biblionumber" id="isbn" class="gbs-thumbnail-preview"></div>
* and run a search with all collected isbns to Google Book Search.
* The result is asynchronously returned by Google and catched by
* gbsCallBack().
*/
GetCoverFromIsbn: function(newWindow) {
var bibkeys = [];
$("div [id^=gbs-thumbnail]").each(function(i) {
bibkeys.push($(this).attr("class")); // id=isbn
});
bibkeys = bibkeys.join(',');
var scriptElement = document.createElement("script");
this.openInNewWindow=newWindow;
scriptElement.setAttribute("id", "jsonScript");
scriptElement.setAttribute("src",
"http://books.google.com/books?bibkeys=" + escape(bibkeys) +
"&jscmd=viewapi&callback=KOHA.Google.gbsCallBack");
scriptElement.setAttribute("type", "text/javascript");
document.documentElement.firstChild.appendChild(scriptElement);
},
/**
* Add cover pages <div
* and link to preview if div id is gbs-thumbnail-preview
*/
gbsCallBack: function(booksInfo) {
var target = '';
if (this.openInNewWindow) {
target = 'target="_blank" ';
}
for (id in booksInfo) {
var book = booksInfo[id];
$("."+book.bib_key).each(function() {
var a = document.createElement("a");
a.href = book.info_url;
if (typeof(book.thumbnail_url) != "undefined") {
var img = document.createElement("img");
img.src = book.thumbnail_url;
$(this).append(img);
var re = /^gbs-thumbnail-preview/;
if ( re.exec($(this).attr("id")) ) {
$(this).append(
'<div style="margin-bottom:5px; margin-top:-5px;font-size:9px">' +
'<a '+target+'href="' +
book.info_url +
'"><img src="' +
'http://books.google.com/intl/en/googlebooks/images/gbs_preview_sticker1.gif' +
'"></a></div>'
);
}
} else {
var message = document.createElement("span");
$(message).attr("class","no-image");
$(message).html(NO_GOOGLE_JACKET);
$(this).append(message);
}
});
}
}
};

View file

@ -0,0 +1,27 @@
// Load the Google Transliteration API
google.load("elements", "1", {
packages: "transliteration"
});
function onLoad() {
var options = {
sourceLanguage: 'en',
destinationLanguage: ['hi','kn','ml','ta','te'],
shortcutKey: 'ctrl+g',
transliterationEnabled: true
};
// Create an instance on TransliterationControl with the required
// options.
var control =
new google.elements.transliteration.TransliterationControl(options);
// Enable transliteration in the textfields with the given ids.
var ids = [ "transl1" ];
control.makeTransliteratable(ids);
// Show the transliteration control which can be used to toggle between
// English and Hindi and also choose other destination language.
control.showControl('translControl');
}
google.setOnLoadCallback(onLoad);

View file

@ -0,0 +1,44 @@
if (typeof KOHA == "undefined" || !KOHA) {
var KOHA = {};
}
/**
* A namespace for local cover related functions.
*/
KOHA.LocalCover = {
/**
* Search all:
* <div title="biblionumber" id="isbn" class="openlibrary-thumbnail"></div>
* or
* <div title="biblionumber" id="isbn" class="openlibrary-thumbnail-preview"></div>
* and run a search with all collected isbns to Open Library Book Search.
* The result is asynchronously returned by OpenLibrary and catched by
* olCallBack().
*/
GetCoverFromBibnumber: function(uselink) {
$("div[id^=local-thumbnail],span[id^=local-thumbnail]").each(function(i) {
var mydiv = this;
var message = document.createElement("span");
$(message).attr("class","no-image");
$(message).html(NO_LOCAL_JACKET);
$(mydiv).append(message);
var img = $("<img />").attr('src',
'/cgi-bin/koha/opac-image.pl?thumbnail=1&biblionumber=' + $(mydiv).attr("class"))
.load(function () {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
} else {
if (uselink) {
var a = $("<a />").attr('href', '/cgi-bin/koha/opac-imageviewer.pl?biblionumber=' + $(mydiv).attr("class"));
$(a).append(img);
$(mydiv).append(a);
} else {
$(mydiv).append(img);
}
$(mydiv).children('.no-image').remove();
}
})
});
}
};

View file

@ -0,0 +1,66 @@
if (typeof KOHA == "undefined" || !KOHA) {
var KOHA = {};
}
/**
* A namespace for OpenLibrary related functions.
*/
KOHA.OpenLibrary = {
/**
* Search all:
* <div title="biblionumber" id="isbn" class="openlibrary-thumbnail"></div>
* or
* <div title="biblionumber" id="isbn" class="openlibrary-thumbnail-preview"></div>
* and run a search with all collected isbns to Open Library Book Search.
* The result is asynchronously returned by OpenLibrary and catched by
* olCallBack().
*/
GetCoverFromIsbn: function() {
var bibkeys = [];
$("div [id^=openlibrary-thumbnail]").each(function(i) {
bibkeys.push("ISBN:" + $(this).attr("class")); // id=isbn
});
bibkeys = bibkeys.join(',');
var scriptElement = document.createElement("script");
scriptElement.setAttribute("id", "jsonScript");
scriptElement.setAttribute("src",
"http://openlibrary.org/api/books?bibkeys=" + escape(bibkeys) +
"&callback=KOHA.OpenLibrary.olCallBack&jscmd=data");
scriptElement.setAttribute("type", "text/javascript");
document.documentElement.firstChild.appendChild(scriptElement);
},
/**
* Add cover pages <div
* and link to preview if div id is gbs-thumbnail-preview
*/
olCallBack: function(booksInfo) {
for (id in booksInfo) {
var book = booksInfo[id];
var isbn = id.substring(5);
$("."+isbn).each(function() {
var is_opacdetail = /openlibrary-thumbnail-preview/.exec($(this).attr("id"));
var a = document.createElement("a");
a.href = booksInfo.url;
if (book.cover) {
var img = document.createElement("img");
if (is_opacdetail) {
img.src = book.cover.medium;
$(this).append(img);
$(this).append('<div class="results_summary">' + '<a href="' + book.url + '">Preview</a></div>');
} else {
img.src = book.cover.small;
$(this).append(img);
}
} else {
var message = document.createElement("span");
$(message).attr("class","no-image");
$(message).html(NO_OL_JACKET);
$(this).append(message);
}
});
}
}
};

View file

@ -0,0 +1,157 @@
if (typeof KOHA == "undefined" || !KOHA) {
var KOHA = {};
}
/**
* A namespace for Tags related functions.
* readCookie is expected to already be declared. That's why the assignment below is unscoped.
* readCookie should be from basket.js or undefined.
$.ajaxSetup({
url: "/cgi-bin/koha/opac-tags.pl",
type: "POST",
dataType: "script"
});
*/
if (typeof(readCookie) == "undefined") {
readCookie = function (name) { // from http://www.quirksmode.org/js/cookies.html
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' '){ c = c.substring(1,c.length); }
if (c.indexOf(nameEQ) == 0){ return c.substring(nameEQ.length,c.length); }
}
return null;
}
}
KOHA.Tags = {
add_tag_button: function(){
var mybibnum = $(this).attr("title");
var mynewtag = "newtag" + mybibnum;
var mytagid = "#" + mynewtag;
var mydata = {CGISESSID: readCookie('CGISESSID')}; // Someday this should be OPACSESSID
mydata[mynewtag] = $(mytagid).val(); // need [bracket] for variable property id
var response; // AJAX from server will assign value to response.
$.post(
"/cgi-bin/koha/opac-tags.pl",
mydata,
function(data){
// alert("AJAX Response: " + data);
eval(data);
// alert("counts: " + response["added"] + response["deleted"] + response["errors"]);
KOHA.Tags.set_tag_status(
mytagid + "_status",
KOHA.Tags.common_status(response["added"], response["deleted"], response["errors"])
);
if (response.alerts) {
alert(response.alerts.join("\n\n"));
}
},
'script'
);
return false;
},
common_status : function(addcount, delcount, errcount) {
var cstat = "";
if (addcount && addcount > 0) {cstat += MSG_TAGS_ADDED + addcount + ". " ;}
if (delcount && delcount > 0) {cstat += MSG_TAGS_DELETED + delcount + ". " ;}
if (errcount && errcount > 0) {cstat += MSG_TAGS_ERRORS + errcount + ". " ;}
return cstat;
},
set_tag_status : function(tagid, newstatus) {
$(tagid).html(newstatus);
$(tagid).css({display:"inline"});
},
append_tag_status : function(tagid, newstatus) {
$(tagid).append(newstatus);
$(tagid).css({display:"inline"});
},
tag_message: {
tagsdisabled : function(arg) {return (MSG_TAGS_DISABLED);},
scrubbed_all_bad : function(arg) {return (MSG_TAG_ALL_BAD);},
badparam : function(arg) {return (MSG_ILLEGAL_PARAMETER+" "+arg);},
scrubbed : function(arg) {return (MSG_TAG_SCRUBBED+" "+arg);},
failed_add_tag : function(arg) {return (MSG_ADD_TAG_FAILED+ " "+arg+" "+MSG_ADD_TAG_FAILED_NOTE);},
failed_delete : function(arg) {return (MSG_DELETE_TAG_FAILED+ " "+arg+" "+MSG_DELETE_TAG_FAILED_NOTE);},
login : function(arg) {return (MSG_LOGIN_REQUIRED);}
},
// Used to tag multiple items at once. The main difference
// is that status is displayed on a per item basis.
add_multitags_button : function(bibarray, tag){
var mydata = {CGISESSID: readCookie('CGISESSID')}; // Someday this should be OPACSESSID
for (var i = 0; i < bibarray.length; i++) {
var mynewtag = "newtag" + bibarray[i];
mydata[mynewtag] = tag;
}
var response; // AJAX from server will assign value to response.
$.post(
"/cgi-bin/koha/opac-tags.pl",
mydata,
function(data){
eval(data);
$(".tagstatus").empty();
var bibErrors = false;
// Display the status for each tagged bib
for (var i = 0; i < bibarray.length; i++) {
var bib = bibarray[i];
var mytagid = "#newtag" + bib;
var status = "";
// Number of tags added.
if (response[bib]) {
var added = response[bib]["added"];
if (added > 0) {
status = MSG_TAGS_ADDED + added + ". ";
KOHA.Tags.set_tag_status(mytagid + "_status", status);
}
// Show a link that opens an error dialog, if necessary.
var errors = response[bib]["errors"];
if (errors.length > 0) {
bibErrors = true;
var errid = "tagerr_" + bib;
var errstat = "<a id=\"" + errid + "\" class=\"tagerror\" href=\"#\">";
errstat += MSG_TAGS_ERRORS + errors.length + ". ";
errstat += "</a>";
KOHA.Tags.append_tag_status(mytagid + "_status", errstat);
var errmsg = "";
for (var e = 0; e < errors.length; e++){
if (e) {
errmsg += "\n\n";
}
errmsg += errors[e];
}
$("#" + errid).click(function(){
alert(errmsg);
});
}
}
}
if (bibErrors || response["global_errors"]) {
var msg = "";
if (bibErrors) {
msg = MSG_MULTI_ADD_TAG_FAILED;
}
// Show global errors in a dialog.
if (response["global_errors"]) {
var global_errors = response["global_errors"];
var msg;
for (var e = 0; e < global_errors.length; e++) {
msg += "\n\n";
msg += response.alerts[global_errors[e]];
}
}
alert(msg);
}
},
'script'
);
return false;
}
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 852 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 895 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 898 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show more