Using published folder search Last updated: 09. Jan 2023
This search function searches all the documents in a published folder and sub folders.
ATM only filenames are searched.
jQuery example
var data = new FormData();
data.append("__func", "search");
data.append("q", "<your search here>");
data.append("page", "0"); /* 0 indexed paging, default = 0 */
data.append("pagesize", "10"); /* items per page, default = 10 */
data.append("exclude", "6345,6546,6547"); /* CSV of folder ID's to exclude from search, default = # folder is excluded */
$.ajax({
url: "<your site root map here>", /* To search within a specific folder specify folder url here */
type: "POST",
dataType: "json",
data: data,
cache: false,
contentType: false,
processData: false
}).then(function (response) {
/* Enter code to show search result here */
console.log(response);
}, function(xhr) {
var err = xhr.responseJSON;
if (err.Message) alert(err.Message); /* Display / handle error messages here */
});
This example writes the search response object (in this example called "response") to the developer toolbar (F12). See picture below:
Response structure (C#)
public class SearchResultDto
{
public int ResultCount { get; set; }
public IEnumerable<object> Items { get; set; }
public int Page { get; set; }
public int PageSize { get; set; }
public int PageCount { get; set; }
}
Items structure
The array of items use the same structure as the "GetPages" function, see page:
https://developers.docly.net/JavaScript-examples/Files-and-folders/GetFiles-and-Folders---examples
Complete example
<!--#master file="master.html" -->
<html lang="no">
<head>
<title xdt:Transform="Replace">Søkeside - Interkodex AS</title>
</head>
<body>
<section id="Kontaktpersoner" xdt:Transform="Remove"></section>
<section id="main" xdt:Transform="Replace">
<!--#include file="Nav.hash" -->
<article style="padding-bottom:10em">
<form class="container main-container" id="Form1">
<h1>Search in site:</h1>
<input autofocus class="input-lg form-control" id="query" style="width:20em;display:inline-block" />
<button type="submit" id="search" style="position:relative;top:-2px;padding-left:4em;padding-right:4em" class="btn btn-lg btn-default">Søk</button>
</form>
<div class="container main-container" id="Resultat"></div>
</article>
</section>
<div id="submitform" xdt:Transform="Replace">
<script>
$(function() {
$("#Form1").off("submit");
$("#Form1").on("submit", function() {
var data = new FormData();
data.append("__func", "search");
data.append("q", $("#query").val());
data.append("page", "0"); /* 0 indexed paging, default = 0 */
data.append("pagesize", "10"); /* items per page, default = 10 */
$("#Resultat").empty();
$.ajax({
url: "https://www.mydomain.no/articles/", /* To search within a specific folder specify folder url here */
type: "POST",
dataType: "json",
data: data,
cache: false,
contentType: false,
processData: false
}).then(function (response) {
$.each(response.Items, function() {
var $item = $("<div><a href=\"" + this.Url + "\">" + this.filename + " (" + this.FormName + ")</a></div>");
$("#Resultat").append($item);
});
if (response.ResultCount === 0)
{
$("#Resultat").html("Søket ga ingen treff.");
}
}, function(xhr) {
var err = xhr.responseJSON;
alert(err.Message);
});
return false;
});
});
</script>
</div>
</body>
</html>