@@ -, +, @@ --- .../en/modules/admin/preferences/circulation.pref | 21 +- koha-tmpl/opac-tmpl/prog/en/css/sco.css | 203 ++++++----- koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tmpl | 68 ++-- .../opac-tmpl/prog/en/modules/sco/sco-main.tmpl | 390 +++++++++++--------- opac/sco/sco-main.pl | 6 +- 5 files changed, 369 insertions(+), 319 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -295,18 +295,27 @@ Circulation: - fines (when misc/cronjobs/fines.pl is being run). Self Checkout: - + - pref: WebBasedSelfCheck + choices: + yes: Enable + no: "Don't enable" + - "the web-based self checkout system. (available at: http://your-opac.org/cgi-bin/koha/sco/sco-main.pl)" + - + - pref: WebBasedSelfCheckTimeout + class: integer + - milliseconds before the web-based self checkout session times out (1000 milliseconds/second). + - + - "Include the following HTML in the header of the web-based self checkout:" + - pref: WebBasedSelfCheckHeader + type: textarea + class: code + - - pref: ShowPatronImageInWebBasedSelfCheck choices: yes: Show no: "Don't show" - "the patron's picture (if one has been added) when they use the web-based self checkout." - - - pref: WebBasedSelfCheck - choices: - yes: Enable - no: "Don't enable" - - "the web-based self checkout system. (available at: /cgi-bin/koha/sco/sco-main.pl)" - - - pref: AutoSelfCheckAllowed choices: yes: Allow --- a/koha-tmpl/opac-tmpl/prog/en/css/sco.css +++ a/koha-tmpl/opac-tmpl/prog/en/css/sco.css @@ -1,168 +1,167 @@ -@import url("../../en/lib/yui/reset-fonts-grids.css"); -@import url("../../en/lib/yui/skin.css"); - a { - font-weight : bold; + font-weight : bold; } a, a:visited { - color : #006699; + color : #006699; } a:hover,input.editshelf:hover,a.editshelf:hover,input.deleteshelf:hover { - color : #990033; + color : #990033; } body { - background-color : white; - text-align : left; - padding : 0 0 2.5em 0; + background-color : white; + text-align : left; + padding : 0 0 2.5em 0; } caption { - font-size : 110%; - text-align : left; - font-weight : bold; + font-size : 123.1%; + text-align : left; + font-weight : bold; } fieldset { - background-color: #FFF; - border : 2px solid #EEEEEE; - margin : 1em 1em 1em 0; - padding : 1em; + 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; + font-weight : bold; + margin : .5em 0; } h1 { - font-size : 138.5%; + font-size : 138.5%; } h2 { - font-size : 134%; + font-size : 134%; } h3 { - font-size : 123.1%; + font-size : 123.1%; } h4 { - font-size : 116%; + font-size : 116%; } h5 { - font-size : 108%; + font-size : 108%; } h6 { - font-size : 100%; + font-size : 100%; } input[type=submit], input[type=button], input[type=reset] { - background : #b8d0e6 url(../../images/submit-bg.gif) repeat-x 0 0; - background-color : #b8d0e6; - 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; + background : #b8d0e6 url(../../images/submit-bg.gif) repeat-x 0 0; + background-color : #b8d0e6; + 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], input[type=reset] { - border: 1px inset #666666; - float : none; + border: 1px inset #666666; + float : none; } + .dialog { - border: 1px solid #bcbcbc; - padding : .5em; - margin : 1em auto; - width: 65%; + border: 1px solid #bcbcbc; + padding : .5em; + margin : 1em auto; + width: 65%; + font-size: 110%; } - + .dialog h2, .dialog h3, .dialog h4 { - margin : auto; - text-align : center; + margin : auto; + text-align : center; } - + div.alert { background : #FFC url(../../images/alert-bg.gif) repeat-x left 0; text-align : center; } div.alert strong { - color : #900; + color : #900; } .dialog input { - background : #FFF none; - border : 1px solid #bcbcbc; - margin : .4em; - padding : .4em; + 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; + 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; + 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; + 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; + 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; + 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; + 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; + 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; + background-color:#EEE; + font-weight : bold; + padding : 2px 23px; + text-align : center; } tr.highlight td, tr.highlight th, tr.odd td { - background-color : #F3F3F3; + background-color : #F3F3F3; border-top : 1px solid #DDDDDD; border-bottom : 1px solid #DDDDDD; } tr.even td, tr.even.highlight td { - background-color: #FFF; + background-color: #FFF; } .header { @@ -179,50 +178,60 @@ tr.even td, tr.even.highlight td { } p { - margin: .7em 0; + margin: .7em 0; } strong { - font-weight : bold; + font-weight : bold; } em { - font-style : italic; + font-style : italic; } #borrowerdetails { - margin-top : 1em; + margin-top : 1em; } #barcode, #patronid { - font-size : 125%; - padding-bottom : 3px; + font-size : 125%; + padding-bottom : 3px; } input.focus { - background-color : #FFC; - border : 2px inset #336699; + 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; + background : #FFF url("../../famfamfam/silk/help.png") no-repeat 4px center; + padding : 3px 3px 3px 26px; + position : fixed; + right : 0; } div.button { - float : left; - margin-top : 2em; - padding : .4em 0; + 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; + 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; + border : 1px inset #666; +} + +#banner { + margin-left: auto; + margin-right: auto; + text-align: center; +} + +.tag { + font-size: 110%; + padding-right: 3px; } --- a/koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tmpl +++ a/koha-tmpl/opac-tmpl/prog/en/modules/sco/help.tmpl @@ -1,36 +1,36 @@ - › Self Checkout - -" /> -/includes/favicon.ico" type="image/x-icon" /> - -/css/sco.css" /> - - -
-
-
- -

Self Checkout Help

- -

If this is your first time using the self checkout system, or if the system -is not behaving as expected, you may want to refer to this guide to get -yourself started.

- -

Step One: Enter your user id

-

Enter your User ID, and click the submit button (or press the enter key).

- -

Step Two: Scan the barcode for each item, one at a time

-

Scan each item and wait for the page to reload before scanning the next item. -The checked-out item should appear in your checkouts list. -The Submit button only needs to be clicked if you enter the barcode manually.

- -

Step Three: Click the 'Finish' button

- - - -
- + › Self Checkout + + " /> + /includes/favicon.ico" type="image/x-icon" /> + /css/sco.css" /> + + +
+
+
+

Self Checkout Help

+ +

If this is your first time using the self checkout system, or if the system + is not behaving as expected, you may want to refer to this guide to get + yourself started.

+ +

Step One: Enter your user id

+ +

Enter your User ID, and click the submit button (or press the enter key).

+ +

Step Two: Scan the barcode for each item, one at a time

+ +

Scan each item and wait for the page to reload before scanning the next item. + The checked-out item should appear in your issues list. + The Submit button only needs to be clicked if you enter the barcode manually.

+ +

Step Three: Click the 'Click here if done' link when done

+
+
+
+
+
+ + --- a/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tmpl +++ a/koha-tmpl/opac-tmpl/prog/en/modules/sco/sco-main.tmpl @@ -7,7 +7,10 @@ -/css/sco.css" /> + /css/opac.css" /> + /css/sco.css" /> - -
- -

Self Checkout System

-
-
- - -

Item cannot be checked out.

Sorry, This item cannot be checked out at this station.

-

Title:

-

- - MESSAGE 1: The system does not recognize this barcode. - - MESSAGE 2: You have borrowed too many items and can't check out any more. - - MESSAGE 3: This item is checked out to someone else. - - MESSAGE 4: You cannot renew this item again. - - MESSAGE 5: This item is not for loan. - - MESSAGE 6: You owe the library and cannot borrow. - - MESSAGE 7: This item has been withdrawn from the collection. - - MESSAGE 8: - - MESSAGE 9: This item is reserved for another patron. - - MESSAGE 10: - - MESSAGE 11: Your account has expired. - - MESSAGE 12: Your account has been suspended. - - MESSAGE 13: This card has been declared lost. - - MESSAGE 14: - - MESSAGE 15: - - Please see a member of the library staff. -

-
- -" /> - -" /> - - - -
- - -

Please confirm the checkout:

-

This item is already checked out to you. Return it?

- -
- -" /> -" /> - - - - - name="confirm" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" /> - -
-
- - -

Access Denied

-Sorry, This Self-Checkout Station has lost authentication. Please contact the administrator to resolve this problem.
- - -

Session timed out

Sorry, your session has timed out, please log in again.
-

Session Lost

You are accessing Self-Checkout from a different IP address! please log in again.
- -

Record not found

Your userid was not found in the database. Please try again.

- - - -
- -

Self Checkout

- - -
- HELP with the self checkout system -
- - - -

You are logged in as .

- - " alt="" /> - - -
- -

Sorry

The userid was not found in the database. Please try again.

-
- - - - -

Sorry

Your session has timed out due to inactivity. Please sign in.

-
- - -
-
-
Check out or return an item: - - - - " /> - -
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
Checkouts for ( total)
TitleCall No.DueRenewFines
">.01.THUMBZZZ.jpg" alt="Book Cover Image" class="thumbnail" /> "> - () -
- - " /> - " /> - - - - - name="confirm" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" /> +
+
+ + + +

Self Checkout System

- -
YesNo
- -

You currently have nothing checked out.

- - - -
-
-
- - - " value=""> - -
-
- - - -
-
-
- +
+
+ Need help? +
+ + + + + + + + " alt="" /> + + + + +
+

Sorry

+

Card number was not found in the database. Please try again.

+
+
+ + +

Item cannot be checked out.

Sorry, This item cannot be checked out at this station.

+

Title:

+

+ + MESSAGE 1: The system does not recognize this barcode. + + MESSAGE 2: You have borrowed too many items and can't check out any more. + + MESSAGE 3: This item is checked out to someone else. + + MESSAGE 4: You cannot renew this item again. + + MESSAGE 5: This item is not for loan. + + MESSAGE 6: You owe the library and cannot borrow. + + MESSAGE 7: This item has been withdrawn from the collection. + + MESSAGE 8: + + MESSAGE 9: This item is reserved for another patron. + + MESSAGE 10: + + MESSAGE 11: Your account has expired. + + MESSAGE 12: Your account has been suspended. + + MESSAGE 13: This card has been declared lost. + + MESSAGE 14: + + MESSAGE 15: + + Please see a member of the library staff. +

+
+ + " /> + + " /> + + + +
+
+ + +
+

Please confirm the checkout:

+

This item is already checked out to you. Return it?

+
+ + " /> + " /> + + + + + name="confirm" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" /> + +
+
+ + +
+

Access Denied

+ Sorry, This Self-Checkout Station has lost authentication. Please contact the administrator to resolve this problem. +
+ + +
i +

Session timed out

+ Sorry, your session has timed out, please log in again. +
+ + +
+

Session Lost

+ You are accessing Self-Checkout from a different IP address! please log in again. +
+ + +
+

Record not found

+

Your userid was not found in the database. Please try again.

+
+ +
+

Sorry

Your session has timed out due to inactivity. Please sign in.

+
+
+ +
+
+
+ +
+
+
+ +
+
+
Check out or return an item: + + + + " /> + +
+
+
+
+ Scan next item, or +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + +
Items you currently have checked out ( total):
TitleCall No.DueReturn/RenewFines
">.01.THUMBZZZ.jpg" alt="Book Cover Image" class="thumbnail" /> "> + () +
+ + " /> + " /> + + + + + name="confirm" class="renew" onclick="this.form.confirmed.value='1';this.form.submit();" /> + +
+
YesNo
+ +

You currently have nothing checked out.

+ + +
+
+
+ + " value=""> + + +
+
+
+ +
+
+
+
+ + --- a/opac/sco/sco-main.pl +++ a/opac/sco/sco-main.pl @@ -200,9 +200,13 @@ if ($borrower->{cardnumber}) { } } else { $template->param( - patronid => $patronid, nouser => $patronid, ); } +$template->param( + TIMEOUT => C4::Context->preference('WebBasedSelfCheckTimeout'), + HEADER => C4::Context->preference('WebBasedSelfCheckHeader'), +); + output_html_with_http_headers $query, $cookie, $template->output; --