目次
ヘッダーがありません
/** * 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 preserve = $params ?? {}; var searchTerm = $term ?? ""; var defaultSort = $default; var resultsPerPage = $perPage ?? 30; var dateSince = $dateSince; // nullable var dateBefore = $dateBefore ?? date.now; // 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: dateSince, before: dateBefore }; var queryCount = #queryResults.queries; var moreResults = (queryCount > resultsPerPage); if (moreResults) { let queryCount -= 1; } // Paging Template('MindTouch/Reports/Controls/SearchPagingNext', { uri: uri, params: preserve, next: moreResults, showing: queryCount, perPage: resultsPerPage, showingKey: "MindTouch.SearchAnalytics.paging.results" }); <table class="table mt-report-results"> Template('MindTouch/Controls/TableSortHeading', { uri: uri, params: preserve, columns: [ { width: "300", label: wiki.localize("MindTouch.SearchAnalytics.data.query") }, { width: "25", label: wiki.localize("MindTouch.SearchAnalytics.data.hits"), class: "data-type-numeric" }, { width: "", label: wiki.localize("MindTouch.SearchAnalytics.data.date.search"), class: "data-type-datetime" }, { width: "", label: wiki.localize("MindTouch.SearchAnalytics.data.clicked") } ], 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> if (#queryResult.sortedterms) { <a href=(uri & preserve & {term: searchTerm, query: queryResult.sortedterms})> queryResult.sortedterms; </a> } else { <em>wiki.localize("MindTouch.SearchAnalytics.terms.none")</em> } </td> <td class="data-type-numeric"> queryResult.count </td> <td class="data-type-datetime"> Template("MindTouch/Controls/DateTime", [queryResult.datesearched, "datetime"]); </td> if (#queryResult.selectedresults == 0) { <td>"--"</td> } else { Template( "MindTouch/Reports/Controls/TableCellResult", queryResult.selectedresults[0] ); } </tr> } </table> // Paging Template('MindTouch/Reports/Controls/SearchPagingNext', { uri: uri, params: preserve, more: moreResults, showing: queryCount, perPage: resultsPerPage, showingKey: "MindTouch.SearchAnalytics.paging.results" }); // debugging //web.pre(json.format(queryResults));
コメント