RenderTopicsOfType
Display a table of topcis of a given type

Documentation

Parameters
  • TYPE: the TopicType to be searched for, defaults to BASETOPIC
  • FORM: the form definition of the TopicType, defaults to TYPE's DataForm definition
  • FIELDS: columns of formfields to display, defaults to TopicTitle, Summary, WikiApplication, Changed
  • HIDDENFIELDS: list of fields that are not shown
  • SORT: sorting of rows, defaults to unsorted
  • PAGING: boolean to enable/disable paged results, defaults to on
  • INFO: boolean to enable/disable infos for results, defaults to on
  • REVERSE: sorting direction, defaults to "off", defaults to "on" if SORT="Changed"
  • ROWS: number of rows to display initially, defauts to 10
  • FILTER: additional filter expression (optional)
  • THEWEB: web to examin, defaults to BASEWEB
  • TOPICS: list of topics to query per web, default: all
  • SAVESTATE: save state of sorting and filtering, defaults to "on"
  • SEARCHING: boolean to enable/disable, defaults to on
  • ROWNUMBERS: boolean toggle to switch on/off row numbers
  • ROWGROUP: column by which to group rows, default none
  • ROWCLASS: javascript function to add a css class to the row
  • ROWCALLBACK: javascript function to process rows
  • SELECTING: boolean toggle to switch on/off row selection, defaults to off
  • ORDERING: boolean toggle to switch on/off changing the sorting, defaults to on
  • SEARCHMODE: either have one single search box using global or one per column using multi, default global
  • LENGTHMENU: list of numbers appearing in the length menu to change the page size, defaults to 5,10,15,20,25,30,40,50,100
  • BUTTONS: list of buttons to show; possible values are excel, csv, print, pdf and copy
  • <field_name>_title: column title for the given field
  • <field_name>_width: column width for the given field

Implementation

Using JQDataTablesPlugin

%STARTINCLUDE%<noautolink>%DBCALL{
   "%WEB%.%TOPIC%"
   section="%IF{"context static" then="static" else="dynamic"}%"
}%</noautolink>%STOPINCLUDE%

static

%STARTSECTION{"dynamic"}%%DATATABLE{
  connector="dbcache"
  class="foswikiFlatTable foswikiStripes foswikiHideOnPrint"
  form="%FORM{default="%DBCALL{"Applications.GetFormOfType" TYPE="%TYPE{default="%BASETOPIC%"}%"}%"}%"
  query="TopicType=~'\b%TYPE{default="%BASETOPIC%"}%\b' %IF{"defined FILTER" then="AND %FILTER%"}%" 
  web="%THEWEB{default="%BASEWEB%"}%"
  topics="%TOPICS{default=""}%"
  topic="%BASEWEB%.%BASETOPIC%"
  columns="%IF{"'%ROWNUMBERS{default="on"}%'='on'" then="index,"}%%FIELDS{default="TopicTitle,Summary,Changed,By"}%" 
  hidecolumns="%HIDDENFIELDS{default=""}%"
  rowgroup="%ROWGROUP{default=""}%"
  rowclass="%ROWCLASS{default=""}%"
  rowcallback="%ROWCALLBACK{default=""}%"
  rows="%ROWS{default="10"}%"
  sort="%SORT{default="Changed"}%"
  reverse="%REVERSE{default="%IF{"'%SORT{default="Changed"}%'='Changed'" then="on" else="off" }%"}%" 
  paging="%PAGING{default="on"}%"
  savestate="%SAVESTATE{default="on"}%"
  searching="%SEARCHING{default="on"}%"
  ordering="%ORDERING{default="on"}%"
  searchmode="%SEARCHMODE{default="global"}%"
  width="100%"
  info="on"
  lengthmenu="%LENGTHMENU{default="%TOPICTYPE_LENGTHMENU{default="5,10,15,20,25,30,40,50,100"}%"}%"
  buttons="%BUTTONS{default="%TOPICTYPE_BUTTONS{default=""}%"}%"
  WikiApplication_title="%TRANSLATE{"Application"}%"
  TopicTitle_title="%TRANSLATE{"Title"}%"
  Summary_title="%TRANSLATE{"Summary"}%"
  Changed_title="%TRANSLATE{"Changed"}%"
  By_title="%TRANSLATE{"By"}%"
  qmstate_title="%TRANSLATE{"Status"}%"
  qmstate_progress_title="%TRANSLATE{"Progress"}%"
  %FORMATLIST{"%FIELDS{default="TopicTitle,Summary,WikiApplication,Changed"}%"
    split="\s*,\s*"
    pattern="^[#\/]?(.*)$"
    format="$percntIF{\"defined $1_title\" 
              then=\"$1_title=\\"$percnt$1_title$percnt\\"\"
            }$percnt"
    separator="$n"
  }%
  %FORMATLIST{"%FIELDS{default="TopicTitle,Summary,WikiApplication,Changed"}%"
    split="\s*,\s*"
    pattern="^[#\/]?(.*)$"
    format="$percntIF{\"defined $1_width\" 
              then=\"$1_width=\\"$percnt$1_width$percnt\\"\"
            }$percnt"
    separator="$n"
  }%
  %IF{"'%SELECTING{default="off"}%'='on'"
   then="selecting=\"on\" selectionmode=\"multi\" selectproperty=\"Topic\""
  }%
}%%ENDSECTION{"dynamic"}%

static

%STARTSECTION{"static"}%%DBQUERY{
   "TopicType=~'\b%TYPE{default="%BASETOPIC%"}%\b' %IF{"defined FILTER" then="AND %FILTER%"}%" 
   web="%THEWEB{default="%BASEWEB%"}%"
   topics="%TOPICS{default=""}%"
   reverse="%REVERSE{default="%IF{"'%SORT{default="Changed"}%'='Changed'" then="on" else="off" }%"}%" 
   sort="%SORT{default="info.date"}%"
   header="<table class='foswikiTable foswikiFlatTable foswikiStripes foswikiFullWidth'>
      <thead><tr>
      %IF{"'%ROWNUMBERS{default="on"}%'='on'" then="<th></th>"}%
      %FORMATLIST{
         "%FIELDS{default="TopicTitle,Summary,Changed,By"}%"
         exclude="%FORMATLIST{"%HIDDENFIELDS{default=""}%" header="^(" format="$1" separator="|" footer=")$"}%"
         format="<th>$percntTRANSLATE{\"$1\"}$percnt</th>"
         separator=""
         replace="%FORMATLIST{
            "%FIELDS{default="TopicTitle,Summary,Changed,By"}%"
            format="$1=$percnt$1_title{default=\"$1\"}$percnt"
         }%"
      }%</tr></thead><tbody>"
   footer="</tbody></table>"
   separator=""
   format="<tr>
      %IF{"'%ROWNUMBERS{default="on"}%'='on'" then="<td><b>$index</b></td>"}%
      %FORMATLIST{
         "%FIELDS{default="TopicTitle,Summary,Changed,By"}%"
         exclude="%FORMATLIST{"%HIDDENFIELDS{default=""}%" header="^(" format="$1" separator="|" footer=")$"}%"
         format="<td>$percntIF{
                        \"'$1'='Changed'\" then=\"$formatTime(info.date, '$day $mon $year - $hour:$min')\"
                     }$percnt$percntIF{
                        \"'$1'='By'\" then=\"$expand(info.author)\"
                     }$percnt$percntIF{
                        \"'$1'='qmstate'\" then=\"$expand(qmstate.title)\"
                     }$percnt$percntIF{
                        \"'$1'='TopicTitle'\" then=\"[[$web.$topic][$expand(topictitle)]]\"
                     }$percnt$percntIF{
                        \"'$1'=~'^#'\" 
                        then=\"[[$web.$topic][$displayValue($1)]]\"
                    }$percnt$percntIF{
                        \"'$1'=~'^(Changed|By|TopicTitle|qmstate)$'\"
                        else=\"$displayValue($1)\"
                    }$percnt</td>"
         separator=""
      }%</tr>"
}%%ENDSECTION{"static"}%

Test

topic index TopicTitle Summary WikiApplication Changed

Calls to 'RenderTopicsOfType'

Copyright

© 2006-2019 Michael Daum http://michaeldaumconsulting.com

This file is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. For more details read the LICENSE.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding arbeitsgruppe.ch? Send feedback