Foundry: Some improvements for the filters of object lists
git-svn-id: https://svn.libreccm.org/ccm/trunk@3382 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
d03c5d4a96
commit
5e67377166
|
|
@ -1,444 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE stylesheet [<!ENTITY nbsp ' '>
|
||||
<!ENTITY shy '­'>]>
|
||||
<!--
|
||||
Copyright 2014 Jens Pelzetter for the LibreCCM Foundation
|
||||
|
||||
This file is part of the Foundry Theme Engine for LibreCCM
|
||||
|
||||
Foundry 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.
|
||||
|
||||
Foundry is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with Foundry If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
|
||||
xmlns:foundry="http://foundry.libreccm.org"
|
||||
xmlns:nav="http://ccm.redhat.com/navigation"
|
||||
xmlns:ui="http://www.arsdigita.com/ui/1.0"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://www.w3.org/1999/xhtml"
|
||||
exclude-result-prefixes="xsl xs bebop foundry ui"
|
||||
version="2.0">
|
||||
|
||||
<foundry:doc-file>
|
||||
<foundry:doc-file-title>Object lists</foundry:doc-file-title>
|
||||
<foundry:doc-file-desc>
|
||||
<p>
|
||||
This tags are used to create the HTML representation of
|
||||
object lists.
|
||||
</p>
|
||||
</foundry:doc-file-desc>
|
||||
</foundry:doc-file>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Root tag for an object list. Checks if there is an object list
|
||||
and outputs it using the HTML definied in it if there is any.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list">
|
||||
<xsl:variable name="object-list-id" select="./@id"/>
|
||||
|
||||
<xsl:if test="$data-tree//nav:simpleObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:complexObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:customizableObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:atozObjectList[@id = $object-list-id]
|
||||
| $data-tree//nav:filterObjectList[@id = $object-list-id]">
|
||||
|
||||
<xsl:variable name="object-list-datatree">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$data-tree//nav:simpleObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:simpleObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:complexObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:complexObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:customizableObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:customizableObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:atozObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:atozObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="$data-tree//nav:filterObjectList[@id = $object-list-id]">
|
||||
<xsl:copy-of select="$data-tree//nav:filterObjectList[@id = $object-list-id]/*"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:if test="count($object-list-datatree/nav:objectList/nav:item) >= 1">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="object-list-datatree"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Defines the HTML for outputting an individual object in an
|
||||
object list.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//object-list-item" name="object-list-items">
|
||||
<xsl:param name="object-list-datatree" tunnel="yes"/>
|
||||
<xsl:param name="class-first" select="''"/>
|
||||
<xsl:param name="class-last" select="''"/>
|
||||
|
||||
<!--<pre>Object-list-item</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('count(object-list-datatree) = ', count($object-list-datatree))"/>
|
||||
</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('count(object-list-datatree/*) = ', count($object-list-datatree/*))"/>
|
||||
</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('name(object-list-datatree/*[1]) = ', name($object-list-datatree/*[1]))"/>
|
||||
</pre>
|
||||
<pre>
|
||||
<xsl:value-of select="concat('count(object-list-datatree/nav:objectList/nav:item = ', count($object-list-datatree/nav:objectList/nav:item))"/>
|
||||
</pre>-->
|
||||
|
||||
<xsl:variable name="object-list-item-layouttree" select="current()"/>
|
||||
|
||||
<xsl:for-each select="$object-list-datatree/nav:objectList/nav:item">
|
||||
<xsl:apply-templates select="$object-list-item-layouttree/*">
|
||||
<xsl:with-param name="contentitem-tree"
|
||||
tunnel="yes"
|
||||
select="current()"/>
|
||||
<xsl:with-param name="id"
|
||||
select="concat(./nav:attribute[@name = 'masterVersion.id'],
|
||||
'_',
|
||||
nav:attribute[@name = 'name'])"/>
|
||||
<xsl:with-param name="href"
|
||||
tunnel="yes"
|
||||
select="./nav:path"/>
|
||||
<xsl:with-param name="class">
|
||||
<xsl:choose>
|
||||
<xsl:when test="position() = 1">
|
||||
<xsl:value-of select="$class-first"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="position() = last()">
|
||||
<xsl:value-of select="$class-last"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
</xsl:apply-templates>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Root element for creating the paginator for an object list. Provides the paginator
|
||||
data for the elements enclosed by this element via XSL parameters. The content is
|
||||
of this element is only processed if the number of pages is greater than one or
|
||||
if the <code>show</code> attribute is set to <code>always</code>.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
<foundry:doc-attributes>
|
||||
<foundry:doc-attribute name="show">
|
||||
<p>
|
||||
If set to <code>always</code> the paginator is shown even if there is only one
|
||||
page.
|
||||
</p>
|
||||
</foundry:doc-attribute>
|
||||
</foundry:doc-attributes>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator">
|
||||
<xsl:param name="object-list-datatree" tunnel="yes"/>
|
||||
|
||||
<xsl:if test="($object-list-datatree/nav:objectList/nav:paginator/@pageCount > 1)
|
||||
or ./@show = 'always'">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="paginator-baseurl"
|
||||
tunnel="yes">
|
||||
<xsl:choose>
|
||||
<xsl:when test="contains($object-list-datatree/nav:objectList/nav:paginator/@baseURL, '?')">
|
||||
<xsl:value-of select="concat($object-list-datatree/nav:objectList/nav:paginator/@baseURL, '&')"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="not(contains($object-list-datatree/nav:objectList/nav:paginator/@baseURL, '?'))">
|
||||
<xsl:value-of select="concat($object-list-datatree/nav:objectList/nav:paginator/@baseURL, '?')"/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="paginator-object-begin"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@objectBegin"/>
|
||||
<xsl:with-param name="paginator-object-count"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@objectCount"/>
|
||||
<xsl:with-param name="paginator-object-end"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@objectEnd"/>
|
||||
<xsl:with-param name="paginator-page-count"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@pageCount"/>
|
||||
<xsl:with-param name="paginator-page-number"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@pageNumber"/>
|
||||
<xsl:with-param name="paginator-page-param"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@pageParam"/>
|
||||
<xsl:with-param name="paginator-page-size"
|
||||
tunnel="yes"
|
||||
select="$object-list-datatree/nav:objectList/nav:paginator/@pageSize"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Outputs the index of the first object shown on the current page. The value is
|
||||
provided by the surrounding <code>paginator</code> element via a XSL parameter.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//object-begin">
|
||||
<xsl:param name="paginator-object-begin" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="$paginator-object-begin != ''">
|
||||
<xsl:value-of select="$paginator-object-begin"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Outputs the index of the last object shown on the current page. The value is
|
||||
provided by the surrounding <code>paginator</code> element via a XSL parameter.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//object-end">
|
||||
<xsl:param name="paginator-object-end" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="$paginator-object-end != ''">
|
||||
<xsl:value-of select="$paginator-object-end"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Outputs the number of elements in list.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//object-count">
|
||||
<xsl:param name="paginator-object-count" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="$paginator-object-count != ''">
|
||||
<xsl:value-of select="$paginator-object-count"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Outputs the number of pages.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//page-count">
|
||||
<xsl:param name="paginator-page-count" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="$paginator-page-count != ''">
|
||||
<xsl:value-of select="$paginator-page-count"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Outputs the number of the current page.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//current-page">
|
||||
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="$paginator-page-number != ''">
|
||||
<xsl:value-of select="$paginator-page-number"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Outputs the size of page (the number of items on each page).
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//page-size">
|
||||
<xsl:param name="paginator-page-size" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="$paginator-page-size != ''">
|
||||
<xsl:value-of select="$paginator-page-size"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Provides the URL to the previous page of the list for an enclosed <code>a</code>
|
||||
element.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//prev-page-link">
|
||||
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="($paginator-page-number != '') and ($paginator-page-number > 1)">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="href"
|
||||
tunnel="yes"
|
||||
select="concat($paginator-baseurl,
|
||||
$paginator-page-param,
|
||||
'=',
|
||||
$paginator-page-number -1)"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Provides the URL to the next page of the list for an enclosed <code>a</code>
|
||||
element.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//next-page-link">
|
||||
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-page-count" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="($paginator-page-number != '')
|
||||
and ($paginator-page-number < $paginator-page-count)">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="href"
|
||||
tunnel="yes"
|
||||
select="concat($paginator-baseurl,
|
||||
$paginator-page-param,
|
||||
'=',
|
||||
$paginator-page-number + 1)"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Provides the URL to the first page of the list for an enclosed <code>a</code>
|
||||
element.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//first-page-link">
|
||||
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="($paginator-page-number != '') and ($paginator-page-number > 1)">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="href"
|
||||
tunnel="yes"
|
||||
select="concat($paginator-baseurl, $paginator-page-param, '=1')"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<foundry:doc section="user" type="template-tag">
|
||||
<foundry:doc-desc>
|
||||
<p>
|
||||
Provides the URL to the last page of the list for an enclosed <code>a</code>
|
||||
element.
|
||||
</p>
|
||||
</foundry:doc-desc>
|
||||
</foundry:doc>
|
||||
<xsl:template match="object-list//paginator//last-page-link">
|
||||
<xsl:param name="paginator-page-number" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-page-count" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-baseurl" tunnel="yes" select="''"/>
|
||||
<xsl:param name="paginator-page-param" tunnel="yes" select="''"/>
|
||||
|
||||
<xsl:if test="($paginator-page-number != '')
|
||||
and ($paginator-page-number < $paginator-page-count)">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="href"
|
||||
tunnel="yes"
|
||||
select="concat($paginator-baseurl,
|
||||
$paginator-page-param,
|
||||
'=',
|
||||
$paginator-page-count)"/>
|
||||
</xsl:apply-templates>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="filters">
|
||||
<xsl:if test="$data-tree//filters">
|
||||
<xsl:apply-templates>
|
||||
<xsl:with-param name="filters"
|
||||
tunnel="yes"
|
||||
select="$data-tree//filters"/>
|
||||
</xsl:apply-templates>
|
||||
<input type="submit"
|
||||
label="{foundry:get-static-text('filters', 'apply-filters')}"/>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="filters//filter">
|
||||
<xsl:param name="filters" tunnel="yes"/>
|
||||
|
||||
<xsl:for-each select="$filters/filter">
|
||||
<xsl:choose>
|
||||
<xsl:when test="./@type = 'text'">
|
||||
<label for="./@label">
|
||||
<xsl:value-of select="foundry:get-static-text('filters',
|
||||
./@label)"/>
|
||||
</label>
|
||||
<input type="text" id="{./@label}"/>
|
||||
</xsl:when>
|
||||
<xsl:when test="./@type = 'select'">
|
||||
<label for="./@label">
|
||||
<xsl:value-of select="foundry:get-static-text('filters',
|
||||
./@label)"/>
|
||||
</label>
|
||||
<select id="{./@label}">
|
||||
<xsl:for-each select="./option">
|
||||
<option value="{./@label}">
|
||||
<xsl:if test="./@selected = 'selected'">
|
||||
<xsl:attribute name="selected"
|
||||
select="'selected'"/>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="./@label"/>
|
||||
</option>
|
||||
</xsl:for-each>
|
||||
</select>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
Loading…
Reference in New Issue