[Koha-cvs] koha/koha-tmpl/opac-tmpl/npl/en/includes livese... [dev_week]
Joshua Ferraro
jmf at kados.org
Sat Jun 10 17:50:53 CEST 2006
CVSROOT: /sources/koha
Module name: koha
Branch: dev_week
Changes by: Joshua Ferraro <kados> 06/06/10 15:50:53
Added files:
koha-tmpl/opac-tmpl/npl/en/includes: livesearch.css
livesearch.js
Log message:
adding livesearch css and js
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/opac-tmpl/npl/en/includes/livesearch.css?cvsroot=koha&only_with_tag=dev_week&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/opac-tmpl/npl/en/includes/livesearch.js?cvsroot=koha&only_with_tag=dev_week&rev=1.1.2.1
Patches:
Index: livesearch.css
===================================================================
RCS file: livesearch.css
diff -N livesearch.css
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ livesearch.css 10 Jun 2006 15:50:53 -0000 1.1.2.1
@@ -0,0 +1,80 @@
+/* LiveSearch */
+
+#keyword {
+ margin: 0 25px 5px 0;
+ padding:0px;
+ width: 600px;
+ display: block;
+ border:1px solid #99b58d;
+}
+
+
+#LSResult {
+ position: absolute;
+ background-color: #aaa;
+ width: 600px;
+ margin: 1px 0px 2px 0px;
+ padding: 0px;
+}
+
+#LSResult li {
+ padding-bottom: 2px;
+ padding-top: 2px;
+ line-height:normal;
+ margin-bottom: 0px;
+}
+
+
+ul#LSShadow {
+ position: relative;
+ right: 1px;
+ margin: 0px;
+ padding: 0px;
+ background-color: #666; /*shadow color*/
+ color: inherit;
+}
+#LSResult ul {
+ list-style-position:outside;
+ margin-bottom: -5px;
+ margin-top: 0px;
+ padding-top: 0px;
+ margin: 0px;
+ padding: 0px;
+}
+
+#LSResult ul li {
+ text-indent: -20px;
+ padding: 0px 15px 0 20px;
+ margin-top:0;
+ line-height:1em;
+ list-style-type:none;
+}
+
+.LSRes {
+ position: relative;
+ bottom: 1px;
+ right: 1px;
+ background-color: white;
+ border: 1px solid #AAA;
+ }
+#LSHighlight {
+ color: #564b47;
+ background-color: #ccc;
+}
+.LSRes li a {
+ text-decoration: none;
+ color:black;
+ cursor:default;
+ font-size:80%
+}
+.LSResRight {
+ position:absolute;
+ right:1px;
+ display:inline;
+ padding:0;margin:0;
+ width:100%;
+ color:green;
+ text-align:right;
+ font-size:80%;
+}
+
Index: livesearch.js
===================================================================
RCS file: livesearch.js
diff -N livesearch.js
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ livesearch.js 10 Jun 2006 15:50:53 -0000 1.1.2.1
@@ -0,0 +1,181 @@
+ /*
+// +----------------------------------------------------------------------+
+// | Copyright (c) 2005 LibLime |
+// +----------------------------------------------------------------------+
+// | Licensed under the Apache License, Version 2.0 (the "License"); |
+// | you may not use this file except in compliance with the License. |
+// | You may obtain a copy of the License at |
+// | http://www.apache.org/licenses/LICENSE-2.0 |
+// | Unless required by applicable law or agreed to in writing, software |
+// | distributed under the License is distributed on an "AS IS" BASIS, |
+// | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
+// | implied. See the License for the specific language governing |
+// | permissions and limitations under the License. |
+// +----------------------------------------------------------------------+
+// | Author: Joshua Ferraro <jmf at liblime dot com> |
+// | Thanks to Bitflux GmbH <devel at bitflux dot ch> |
+// +----------------------------------------------------------------------+
+
+*/
+var liveSearchReq = false;
+var t = null;
+var liveSearchLast = "";
+
+var isIE = false;
+// on !IE we only have to initialize it once
+if (window.XMLHttpRequest) {
+ liveSearchReq = new XMLHttpRequest();
+}
+
+function liveSearchInit() {
+
+ if (navigator.userAgent.indexOf("Safari") > 0) {
+ document.getElementById('keyword').addEventListener("keydown",liveSearchKeyPress,false);
+// document.getElementById('keyword').addEventListener("blur",liveSearchHide,false);
+ } else if (navigator.product == "Gecko") {
+
+ document.getElementById('keyword').addEventListener("keypress",liveSearchKeyPress,false);
+ document.getElementById('keyword').addEventListener("blur",liveSearchHideDelayed,false);
+
+ } else {
+ document.getElementById('keyword').attachEvent('onkeydown',liveSearchKeyPress);
+// document.getElementById('keyword').attachEvent("onblur",liveSearchHide,false);
+ isIE = true;
+ }
+
+ document.getElementById('keyword').setAttribute("autocomplete","off");
+
+}
+
+function liveSearchHideDelayed() {
+ window.setTimeout("liveSearchHide()",400);
+}
+
+function liveSearchHide() {
+ document.getElementById("LSResult").style.display = "none";
+ var highlight = document.getElementById("LSHighlight");
+ if (highlight) {
+ highlight.removeAttribute("id");
+ }
+}
+
+function liveSearchKeyPress(event) {
+
+ if (event.keyCode == 40 )
+ //KEY DOWN
+ {
+ highlight = document.getElementById("LSHighlight");
+ if (!highlight) {
+ highlight = document.getElementById("LSShadow").firstChild.firstChild;
+ } else {
+ highlight.removeAttribute("id");
+ highlight = highlight.nextSibling;
+ }
+ if (highlight) {
+ highlight.setAttribute("id","LSHighlight");
+ }
+ if (!isIE) { event.preventDefault(); }
+ }
+ //KEY UP
+ else if (event.keyCode == 38 ) {
+ highlight = document.getElementById("LSHighlight");
+ if (!highlight) {
+ highlight = document.getElementById("LSResult").firstChild.firstChild.lastChild;
+ }
+ else {
+ highlight.removeAttribute("id");
+ highlight = highlight.previousSibling;
+ }
+ if (highlight) {
+ highlight.setAttribute("id","LSHighlight");
+ }
+ if (!isIE) { event.preventDefault(); }
+ }
+ //ESC
+ else if (event.keyCode == 27) {
+ highlight = document.getElementById("LSHighlight");
+ if (highlight) {
+ highlight.removeAttribute("id");
+ }
+ document.getElementById("LSResult").style.display = "none";
+ }
+}
+function liveSearchStart() {
+ if (t) {
+ window.clearTimeout(t);
+ }
+ t = window.setTimeout("liveSearchDoSearch()",200);
+}
+
+function liveSearchDoSearch() {
+
+ if (typeof liveSearchRoot == "undefined") {
+ liveSearchRoot = "";
+ }
+ if (typeof liveSearchRootSubDir == "undefined") {
+ liveSearchRootSubDir = "";
+ }
+ if (typeof liveSearchParams == "undefined") {
+ liveSearchParams = "";
+ }
+ if (liveSearchLast != document.forms.searchform.value.value) {
+ if (liveSearchReq && liveSearchReq.readyState < 4) {
+ liveSearchReq.abort();
+ }
+ if ( document.forms.searchform.value.value == "") {
+ liveSearchHide();
+ return false;
+ }
+ if (window.XMLHttpRequest) {
+ // branch for IE/Windows ActiveX version
+ } else if (window.ActiveXObject) {
+ liveSearchReq = new ActiveXObject("Microsoft.XMLHTTP");
+ }
+ liveSearchReq.onreadystatechange= liveSearchProcessReqChange;
+ liveSearchReq.open("GET", liveSearchRoot + "/cgi-bin/koha/livesearch.pl?value=" + document.forms.searchform.value.value + liveSearchParams);
+ liveSearchLast = document.forms.searchform.value.value;
+ liveSearchReq.send(null);
+ }
+}
+
+function liveSearchProcessReqChange() {
+
+ if (liveSearchReq.readyState == 4) {
+ var res = document.getElementById("LSResult");
+ res.style.display = "block";
+ var sh = document.getElementById("LSShadow");
+
+ sh.innerHTML = liveSearchReq.responseText;
+
+ }
+}
+
+function liveSearchSubmit() {
+ var highlight = document.getElementById("LSHighlight");
+ if (highlight && highlight.firstChild) {
+ window.location = liveSearchRoot + liveSearchRootSubDir + highlight.firstChild.getAttribute("href");
+ return false;
+ }
+ else {
+ return true;
+ }
+}
+
+// for mouseovers
+function liveSearchHover(el) {
+ highlight = document.getElementById("LSHighlight");
+ if (highlight) {
+ highlight.removeAttribute("id");
+ }
+ el.setAttribute("id","LSHighlight");
+}
+
+function liveSearchClicked(el) {
+ highlight = document.getElementById("LSHighlight");
+ if (highlight) {
+ highlight.removeAttribute("id");
+ }
+ el.setAttribute("id","LSHighlight");
+ return liveSearchSubmit();
+}
+
More information about the Koha-cvs
mailing list