X-Git-Url: http://nitlanguage.org
diff --git a/share/nitdoc/scripts/js-facilities.js b/share/nitdoc/scripts/js-facilities.js
index d67ef9c..4297dd3 100644
--- a/share/nitdoc/scripts/js-facilities.js
+++ b/share/nitdoc/scripts/js-facilities.js
@@ -4,7 +4,6 @@
$.expr[':'].icontains = function(obj, index, meta, stack){
return (obj.textContent.replace(/\[[0-9]+\]/g, "") || obj.innerText.replace(/\[[0-9]+\]/g, "") || jQuery(obj).text().replace(/\[[0-9]+\]/g, "") || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};
-
/*
* Quick Search global vars
*/
@@ -15,7 +14,6 @@ var currentTable = null;
//Hightlighted index in search result preview table
var currentIndex = -1;
-
/*
* Add folding and filtering facilities to class description page.
*/
@@ -24,8 +22,8 @@ $(document).ready(function() {
/*
* Highlight the spoted element
*/
- highlightBlock(currentAnchor());
-
+ highlightBlock(currentAnchor());
+
/*
* Nav block folding
*/
@@ -45,8 +43,8 @@ $(document).ready(function() {
$(this).find("a.fold").html("+");
}
$(this).nextAll().toggle();
- })
-
+ })
+
// Insert search field
$("nav.main ul")
.append(
@@ -134,14 +132,17 @@ $(document).ready(function() {
// Escape regexp related characters in query
var query = $("#search").val();
+ query = query.replace(/\\/gi, "\\\\");
query = query.replace(/\[/gi, "\\[");
query = query.replace(/\|/gi, "\\|");
query = query.replace(/\*/gi, "\\*");
query = query.replace(/\+/gi, "\\+");
- query = query.replace(/\\/gi, "\\\\");
query = query.replace(/\?/gi, "\\?");
query = query.replace(/\(/gi, "\\(");
query = query.replace(/\)/gi, "\\)");
+ query = query.replace(/&/gi, "&&");
+ query = query.replace(/>/gi, ">");
+ query = query.replace(/ 10) {
break;
@@ -187,6 +188,13 @@ $(document).ready(function() {
currentTable.width($("#search").outerWidth());
$("header").append(currentTable);
currentTable.offset({left: $("#search").offset().left + ($("#search").outerWidth() - currentTable.outerWidth()), top: $("#search").offset().top + $("#search").outerHeight()});
+
+ // Preselect first entry
+ if(currentTable.find("tr").length > 0) {
+ currentIndex = 0;
+ $(currentTable.find("tr")[currentIndex]).addClass("activeSearchResult");
+ $("#search").focus();
+ }
break;
}
})
@@ -208,14 +216,16 @@ $(document).ready(function() {
})
)
);
-
- /*
- * Anchors jumps
- */
- $("a[href^='#']").click( function() {
- var a = $(this).attr("href").replace(/#/, "");
- highlightBlock(a);
- });
+
+ // Close quicksearch list on click
+ $(document).click(function(e) {
+ if(e.target != $("#search")[0] && e.target != $("#searchTable")[0]) {
+ if(currentTable != null) {
+ currentTable.remove();
+ currentTable = null;
+ }
+ }
+ });
// Insert filter field
$("article.filterable h2, nav.filterable h3")
@@ -247,7 +257,7 @@ $(document).ready(function() {
})
)
);
-
+
// Filter toggle between H I R in nav porperties list
$("nav.properties.filterable .filter")
.append(
@@ -297,9 +307,9 @@ $(document).ready(function() {
$(this).toggleClass("hidden");
})
- );
-
- // Filter toggle between I R in
+ );
+
+ // Filter toggle between I R in
$("article.properties.filterable .filter, article.classes.filterable .filter")
.append(
$(document.createElement("a"))
@@ -332,10 +342,29 @@ $(document).ready(function() {
$(this).toggleClass("hidden");
})
- );
-
- //Preload filter fields with query string
+ );
+
+ /*
+ * Anchors jumps
+ */
+ $("a[href*='#']").click( function() {
+ highlightBlock($(this).attr("href").split(/#/)[1]);
+ });
+
+ //Preload filter fields with query string
preloadFilters();
+
+ //Copy to clipboard utility on signatures
+ $(".signature").each(function(){
+ $(this).append(
+ $("")
+ .append($(""))
+ )
+ });
+
+ var clip = new ZeroClipboard($(".copyButton"), {
+ moviePath: "./ZeroClipboard.swf"
+ } );
});
/* Parse current URL and return anchor name */
@@ -347,24 +376,24 @@ function currentAnchor() {
return null;
}
-/* Prealod filters field using search query */
-function preloadFilters() {
- // Parse URL and get query string
- var search = currentAnchor();
-
- if(search == null || search.indexOf("q=") == -1)
- return;
-
+/* Prealod filters field using search query */
+function preloadFilters() {
+ // Parse URL and get query string
+ var search = currentAnchor();
+
+ if(search == null || search.indexOf("q=") == -1)
+ return;
+
search = search.substring(2, search.length);
-
- if(search == "" || search == "undefined")
- return;
- $(":text").val(search);
- $(".filter :text")
- .removeClass("notUsed")
- .trigger("keyup");
-
+ if(search == "" || search == "undefined")
+ return;
+
+ $(":text").val(search);
+ $(".filter :text")
+ .removeClass("notUsed")
+ .trigger("keyup");
+
}
/* Hightlight the spoted block */
@@ -383,4 +412,4 @@ function highlightBlock(a) {
target.addClass("highlighted");
target.show();
-}
\ No newline at end of file
+}