RatingResultsTable

  • O conteúdo desta página não pôde ser carregado.
  • O conteúdo desta página não pôde ser carregado.
  • O conteúdo desta página não pôde ser carregado.
Conteúdo
sem cabeçalhos
/**
 * Rating Results Table
 *
 * @param str $type - report type being run
 * @param uri $uri - base uri (default: page.uri)
 * @param map $params - query params to preserve
 * @param str $query - query to execute
 * @param str $constraint - query constraints (default: nil)
 * @param num $total - total report size
 * @param str $default - default sort (default: nil)
 * @param num $perPage - results per page (default: 30)
 */
var reportType = $type;
var uri = $uri ?? page.uri;
var params = $params;
var searchQuery = $query;
var searchConstraint = $constraint;
var queryTotal = $total;
var defaultSort = $default;
var resultsPerPage = $perPage ?? 30;

// 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 = wiki.getsearch{
    query: searchQuery,
    offset: (currentPage - 1) * resultsPerPage,
    max: resultsPerPage,
    sortBy: currentSort,
    constraint: searchConstraint
};

var queryCount = #queryResults;

// Paging
Template("MindTouch/Reports/Controls/SearchPaging", {
    uri: uri,
    params: params,
    total: queryTotal,
    perPage: resultsPerPage,
    showingKey: "MindTouch.ContentAnalytics." .. reportType .. ".results"
});


// computed page statistics
var aggregateScore = 0;
var aggregateTrendscore = 0;

<table class=("table mt-report-results" .. (queryTotal == 0 ? " ui-no-results": ""))>
    Template('MindTouch/Controls/TableSortHeading', {
        uri: uri,
        params: params,
        columns: [
            {width: "", label: wiki.localize("MindTouch.Reports.data.title"), field: "title"},
            {width: "10", label: wiki.localize("MindTouch.Reports.data.rating"), field: "rating.score"},
            {width: "10", label: wiki.localize("MindTouch.Reports.data.votes"), field: "rating.count"},
            {width: "50", label: wiki.localize("MindTouch.Reports.data.date"), field: "date"},
            {
                width: "30",
                sortclass: "views",
                label: wiki.localize("MindTouch.Reports.data.views")
            },
            {
                width: "30",
                sortclass: "edits",
                label: wiki.localize("MindTouch.Reports.data.edits")
            },
            {
                width: "30",
                sortclass: "comments",
                label: wiki.localize("MindTouch.Reports.data.comments")
            }
        ],
        default: defaultSort,
        enabled: (queryCount > 0)
    });

    if (queryCount < 1) {
        <tr>
            <td colspan="7">
                wiki.localize("MindTouch.Reports.data.empty")
            </td>
        </tr>
    }

    foreach (var queryResult in queryResults) {

        // skip empty results
        if (!#queryResult) {
            continue;
        }

        // compute page statistics
        let aggregateScore += num.cast(queryResult.rating.score ?? 0);
        let aggregateTrendscore += num.cast(queryResult.rating.trendscore ?? 0);

        <tr class=("row-" .. (__count % 2))>
            Template("MindTouch/Reports/Controls/TableCellPage", {
                page: queryResult,
                class: "col-0"
            });
            <td class="col-1 data-type-numeric">
                if ((queryResult.rating.count > 0) && (queryResult.rating.score is not nil)) {
                    <span class=("trending trending-" .. (queryResult.rating.trendscore < .5 ? "down" : "up"))>
                        num.round(queryResult.rating.score * 100) .. "%";
                    </span>
                } else {
                    "--";
                }
            </td>
            <td class="col-2 data-type-numeric">
                queryResult.rating.count;
            </td>
            <td class="col-3 data-type-numeric">
                Template("MindTouch/Controls/DateTime", [queryResult.date]);
            </td>
            <td class="col-4 data-type-numeric">queryResult.viewcount</td>
            <td class="col-5 data-type-numeric">queryResult.revision</td>
            <td class="col-6 data-type-numeric">
                <a href=(queryResult.uri .. "#comments")>#queryResult.comments</a>
            </td>
        </tr>
    }

    // computed information if results are found
    if (queryCount > 0) {
        <tr class="summary">
            <td class="col-0">&nbsp;</td>
            <td class="col-1">
                <dl>
                    <dt>"Score:"</dt>
                    <dd>num.round(aggregateScore / queryCount * 100); "%";</dd>
                    <dt>"Trend:"</dt>
                    <dd>num.round(aggregateTrendscore / queryCount * 100); "%"</dd>
                </dl>
            </td>
            <td class="col-2">&nbsp;</td>
            <td class="col-3">&nbsp;</td>
            <td class="col-4">&nbsp;</td>
            <td class="col-5">&nbsp;</td>
            <td class="col-6">&nbsp;</td>
        </tr>
    }
</table>

// Paging
Template("MindTouch/Reports/Controls/SearchPaging", {
    uri: uri,
    params: params,
    total: queryTotal,
    perPage: resultsPerPage,
    showingKey: "MindTouch.ContentAnalytics." .. reportType .. ".results"
});
Marcadores (Editar marcadores)
  • No tags
Estatísticas da página
1132 view(s), 1 edit(s) and 6197 character(s)

Comentários

Faça o login para escrever um comentário.

Anexar arquivo

Anexos