|
Template:MindTouch > Reports > Controls > SearchResultsTable
SearchResultsTableTable of contentsNo headers/** * Search Results Table * * @param uri $uri - base uri (default: page.uri) * @param map $params - query params to preserve * @param str $term - term to search for * @param str $default - default sort (default: nil) * @param num $perPage - results per page (default: 30) */ var uri = $uri ?? page.uri; var params = $params ?? {}; var searchTerm = $term ?? ""; var defaultSort = $default; var resultsPerPage = $perPage ?? 30; var dateSince = $dateSince; // nullable var dateBefore = $dateBefore ?? date.now; var since = date.Format(dateSince, "yyyyMMddHHmmss"); var before = date.Format(dateBefore, "yyyyMMddHHmmss"); // compute the page var currentPage = __request.args.page ?? 1; if (currentPage < 1) { let currentPage = 1; } var currentSort = __request.args.sortBy ?? defaultSort; // fetch the results var queryResults = searchanalytics.queries{ groupby: "query", term: searchTerm, offset: (currentPage - 1) * resultsPerPage, limit: (resultsPerPage + 1), since: since, before: before }; var queryCount = #queryResults.queries; var moreResults = (queryCount > resultsPerPage); if (moreResults) { let queryCount -= 1; } // Paging Template('MindTouch/Reports/Controls/SearchPagingNext', { uri: uri, params: params, next: moreResults, showing: queryCount, perPage: resultsPerPage }); <table class="table mt-report-results"> Template('MindTouch/Controls/TableSortHeading', { uri: uri, params: params, columns: [ {width: "", label: wiki.localize("MindTouch.Reports.data.query")}, {width: "25", label: wiki.localize("MindTouch.Reports.data.searched")}, {width: "125", label: wiki.localize("MindTouch.Reports.data.clicked")}, {width: "25", label: wiki.localize("MindTouch.Reports.data.date.search")} ], //default: defaultSort, enabled: (queryCount > 0) }); if (queryCount < 1) { <tr> <td colspan="4"> wiki.localize("MindTouch.Reports.data.empty") </td> </tr> } foreach (var queryResult in queryResults.queries where __index < queryCount) { <tr class=("row-" .. (__count % 2))> <td> // @TODO guerrics: replace terms with real query id <a href=(uri & params & {query: queryResult['sorted-terms']})> queryResult['sorted-terms']; </a> </td> <td>queryResult.count</td> if (#queryResult['selected-results'] == 0) { <td class="col-3">"--"</td> } else { Template('MindTouch/Reports/Controls/TableCellPage', { id: queryResult['selected-results'][0].pageid, class: "col-3" }); } <td>"--"</td> </tr> } </table> // Paging Template('MindTouch/Reports/Controls/SearchPagingNext', { uri: uri, params: params, more: moreResults, showing: queryCount, perPage: resultsPerPage }); /*<h4>"Raw output"</h4> web.pre(json.format(queryResults)); */ |