-/* This file is part of NIT ( http://www.nitlanguage.org ).\r
-\r
- Licensed under the Apache License, Version 2.0 (the "License");\r
- you may not use this file except in compliance with the License.\r
- You may obtain a copy of the License at\r
-\r
- http://www.apache.org/licenses/LICENSE-2.0\r
-\r
- Unless required by applicable law or agreed to in writing, software\r
- distributed under the License is distributed on an "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- See the License for the specific language governing permissions and\r
- limitations under the License.\r
-\r
- Documentation generator for the nit language.\r
- Generate API documentation in HTML format from nit source code.\r
-*/\r
-\r
-/*\r
- * Nitdoc Filtering\r
- *\r
- * Allow user to filter sidebar entries and search page\r
- */\r
-define([\r
- "jquery",\r
- 'jQueryUI',\r
- "utils"\r
-], function($, UI, Utils) {\r
-\r
- var Filtering = {\r
-\r
- // Allow user to filter sidebar box entries by name\r
- enableSidebarTextFilters: function(filterSelector) {\r
- var div = $(document.createElement("div"))\r
- .addClass("nitdoc-ui-filter")\r
- .append(\r
- $(document.createElement("input"))\r
- .addClass("nitdoc-ui-filter-field")\r
- .addClass("nitdoc-ui-filter-field-notused")\r
- .attr("type", "text")\r
- .attr("value", "filter...")\r
- .keyup(function() {\r
- var box = $(this).parents("nav.filterable");\r
- var value = $(this).val();\r
- box.find("ul li:not(:icontains('" + value + "'))").hide();\r
- box.find("ul li:icontains('" + value + "')").show();\r
- })\r
- .focusout(function() {\r
- if($(this).val() == "") {\r
- $(this).addClass("nitdoc-ui-filter-field-notused");\r
- $(this).val("filter...");\r
- }\r
- })\r
- .focusin(function() {\r
- if($(this).val() == "filter...") {\r
- $(this).removeClass("nitdoc-ui-filter-field-notused");\r
- $(this).val("");\r
- }\r
- })\r
- );\r
- $(filterSelector).after(div);\r
- this.preloadSidebarTextFilters();\r
- },\r
-\r
- // Prealod filters using search query\r
- preloadSidebarTextFilters: function() {\r
- var anchor = Utils.extractAnchor(document.location.hash);\r
- if(!anchor || anchor.indexOf("q=") == -1) return;\r
-\r
- var query = anchor.substring(2);\r
- if(!query) return;\r
-\r
- $(".nitdoc-ui-filter input:text")\r
- .val(query)\r
- .removeClass("nitdoc-ui-notused")\r
- .trigger("keyup");\r
- },\r
-\r
- // Allow user to filter side bar box entries by Introduced/Refined/inHerited type\r
- enableSidebarTypeFilters: function(filterSelector) {\r
- var box = $(filterSelector);\r
- var types = {};\r
-\r
- box.find("li").each(function() {\r
- var span = $(this).find("span:first");\r
- if(!types[span.html()]) types[span.html()] = {\r
- title: span.attr("title"),\r
- class: $(this).attr("class")\r
- }\r
- });\r
-\r
- for(var type in types) {\r
- var a = $(document.createElement("a"))\r
- .addClass("nitdoc-ui-filter-link")\r
- .html(type)\r
- .attr("title", "Hide " + types[type].title)\r
- .attr("data-filter-class", types[type].class)\r
- .toggle(\r
- function() {\r
- var hclass = $(this).attr("data-filter-class");\r
- $(this).parents(filterSelector).find("li." + hclass).hide();\r
- $(this).addClass("nitdoc-ui-filter-hidden")\r
- },\r
- function() {\r
- var hclass = $(this).attr("data-filter-class");\r
- $(this).parents(filterSelector).find("li." + hclass).show();\r
- $(this).removeClass("nitdoc-ui-filter-hidden")\r
- }\r
- )\r
- $(filterSelector).find(".nitdoc-ui-filter").append(a);\r
- }\r
- },\r
-\r
- // Allow user to filter sidebar box entries by name\r
- enableSearchPageField: function(filterSelector) {\r
- var div = $(document.createElement("div"))\r
- .addClass("nitdoc-ui-searchpage-filter")\r
- .append(\r
- $(document.createElement("input"))\r
- .addClass("nitdoc-ui-searchpage-field")\r
- .addClass("nitdoc-ui-filter-field-notused")\r
- .attr("type", "text")\r
- .attr("value", "filter...")\r
- .keyup(function() {\r
- var box = $(this).parents(".content.fullpage").find("article.filterable");\r
- var value = $(this).val();\r
- box.find("ul li:not(:icontains('" + value + "'))").hide();\r
- box.find("ul li:icontains('" + value + "')").show();\r
- })\r
- .focusout(function() {\r
- if($(this).val() == "") {\r
- $(this).addClass("nitdoc-ui-filter-field-notused");\r
- $(this).val("filter...");\r
- }\r
- })\r
- .focusin(function() {\r
- if($(this).val() == "filter...") {\r
- $(this).removeClass("nitdoc-ui-filter-field-notused");\r
- $(this).val("");\r
- }\r
- })\r
- );\r
- $(filterSelector).after(div);\r
- this.preloadSearchPageField();\r
- },\r
-\r
- // Prealod filter using search query\r
- preloadSearchPageField: function() {\r
- var anchor = Utils.extractAnchor(document.location.hash);\r
- if(!anchor || anchor.indexOf("q=") == -1) return;\r
-\r
- var query = anchor.substring(2);\r
- if(!query) return;\r
-\r
- $(".nitdoc-ui-searchpage-field")\r
- .val(query)\r
- .removeClass("nitdoc-ui-notused")\r
- .trigger("keyup");\r
- }\r
- };\r
-\r
- Filtering.enableSidebarTextFilters("nav.filterable h3");\r
- Filtering.enableSidebarTypeFilters("nav.filterable");\r
- Filtering.enableSearchPageField(".content.fullpage h1:contains('Search')");\r
-\r
- return Filtering;\r
-});\r
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+
+ 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.
+
+ Documentation generator for the nit language.
+ Generate API documentation in HTML format from nit source code.
+*/
+
+/*
+ * Nitdoc Filtering
+ *
+ * Allow user to filter sidebar entries and search page
+ */
+var Filtering = {
+
+ // Allow user to filter sidebar box entries by name
+ enableSidebarTextFilters: function(filterSelector) {
+ var div = $(document.createElement("div"))
+ .addClass("nitdoc-ui-filter")
+ .append(
+ $(document.createElement("input"))
+ .addClass("nitdoc-ui-filter-field")
+ .addClass("nitdoc-ui-filter-field-notused")
+ .attr("type", "text")
+ .attr("value", "filter...")
+ .keyup(function() {
+ var box = $(this).parents("nav.filterable");
+ var value = $(this).val();
+ box.find("ul li:not(:icontains('" + value + "'))").hide();
+ box.find("ul li:icontains('" + value + "')").show();
+ })
+ .focusout(function() {
+ if($(this).val() == "") {
+ $(this).addClass("nitdoc-ui-filter-field-notused");
+ $(this).val("filter...");
+ }
+ })
+ .focusin(function() {
+ if($(this).val() == "filter...") {
+ $(this).removeClass("nitdoc-ui-filter-field-notused");
+ $(this).val("");
+ }
+ })
+ );
+ $(filterSelector).after(div);
+ this.preloadSidebarTextFilters();
+ },
+
+ // Prealod filters using search query
+ preloadSidebarTextFilters: function() {
+ var anchor = Utils.extractAnchor(document.location.hash);
+ if(!anchor || anchor.indexOf("q=") == -1) return;
+
+ var query = anchor.substring(2);
+ if(!query) return;
+
+ $(".nitdoc-ui-filter input:text")
+ .val(query)
+ .removeClass("nitdoc-ui-notused")
+ .trigger("keyup");
+ },
+
+ // Allow user to filter side bar box entries by Introduced/Refined/inHerited type
+ enableSidebarTypeFilters: function(filterSelector) {
+ var box = $(filterSelector);
+ var types = {};
+
+ box.find("li").each(function() {
+ var span = $(this).find("span:first");
+ if(!types[span.html()]) types[span.html()] = {
+ title: span.attr("title"),
+ class: $(this).attr("class")
+ }
+ });
+
+ for(var type in types) {
+ var a = $(document.createElement("a"))
+ .addClass("nitdoc-ui-filter-link")
+ .html(type)
+ .attr("title", "Hide " + types[type].title)
+ .attr("data-filter-class", types[type].class)
+ .toggle(
+ function() {
+ var hclass = $(this).attr("data-filter-class");
+ $(this).parents(filterSelector).find("li." + hclass).hide();
+ $(this).addClass("nitdoc-ui-filter-hidden")
+ },
+ function() {
+ var hclass = $(this).attr("data-filter-class");
+ $(this).parents(filterSelector).find("li." + hclass).show();
+ $(this).removeClass("nitdoc-ui-filter-hidden")
+ }
+ )
+ $(filterSelector).find(".nitdoc-ui-filter").append(a);
+ }
+ },
+
+ // Allow user to filter sidebar box entries by name
+ enableSearchPageField: function(filterSelector) {
+ var div = $(document.createElement("div"))
+ .addClass("nitdoc-ui-searchpage-filter")
+ .append(
+ $(document.createElement("input"))
+ .addClass("nitdoc-ui-searchpage-field")
+ .addClass("nitdoc-ui-filter-field-notused")
+ .attr("type", "text")
+ .attr("value", "filter...")
+ .keyup(function() {
+ var box = $(this).parents(".content.fullpage").find("article.filterable");
+ var value = $(this).val();
+ box.find("ul li:not(:icontains('" + value + "'))").hide();
+ box.find("ul li:icontains('" + value + "')").show();
+ })
+ .focusout(function() {
+ if($(this).val() == "") {
+ $(this).addClass("nitdoc-ui-filter-field-notused");
+ $(this).val("filter...");
+ }
+ })
+ .focusin(function() {
+ if($(this).val() == "filter...") {
+ $(this).removeClass("nitdoc-ui-filter-field-notused");
+ $(this).val("");
+ }
+ })
+ );
+ $(filterSelector).after(div);
+ this.preloadSearchPageField();
+ },
+
+ // Prealod filter using search query
+ preloadSearchPageField: function() {
+ var anchor = Utils.extractAnchor(document.location.hash);
+ if(!anchor || anchor.indexOf("q=") == -1) return;
+
+ var query = anchor.substring(2);
+ if(!query) return;
+
+ $(".nitdoc-ui-searchpage-field")
+ .val(query)
+ .removeClass("nitdoc-ui-notused")
+ .trigger("keyup");
+ }
+};
+
+Filtering.enableSidebarTextFilters("nav.filterable h3");
+Filtering.enableSidebarTypeFilters("nav.filterable");
+Filtering.enableSearchPageField(".content.fullpage h1:contains('Search')");