bug 3343 : Completed revision of ADL to support explicit ordering (incl reverse ordering) of lists

This commit is contained in:
sb 2010-01-12 17:20:16 +00:00
parent 574e4d346f
commit 63a94d8ce1
13 changed files with 147 additions and 149 deletions

2
RELEASENOTES.txt Executable file
View file

@ -0,0 +1,2 @@
Release 1.4 adds an 'order' element as a possible child of the 'list' element, in order to specify
the default order of lists. Otherwise unchanged from 1.3.

View file

@ -1,6 +1,6 @@
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<!-- -->
<!-- adl-1.3.dtd -->
<!-- adl-1.4.dtd -->
<!-- -->
<!-- Purpose: -->
<!-- Document Type Description for Application Description -->
@ -13,7 +13,7 @@
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<!--
$Revision: 1.1 $
$Revision: 1.2 $
-->
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
@ -477,7 +477,7 @@ that we can allow HTML block level entities within content elements -->
<!ELEMENT page (documentation?, ( %PageStuff;)*)>
<!ATTLIST page %PageAttrs;>
<!ELEMENT order (documentation)>
<!ELEMENT order (documentation?)>
<!ATTLIST order
property CDATA #REQUIRED
sequence %Sequences; #IMPLIED>

View file

@ -20,13 +20,13 @@
explicitly state the permission, even if it is 'none'.
$Author: sb $
$Revision: 1.8 $
$Date: 2009-04-30 17:04:00 $
$Revision: 1.9 $
$Date: 2010-01-12 17:20:17 $
-->
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="adl">
@ -74,7 +74,7 @@
* THIS FILE IS AUTOMATICALLY GENERATED AND SHOULD NOT
* BE MANUALLY EDITED.
*
* Generated using adl2canonical.xslt <xsl:value-of select="substring('$Revision: 1.8 $', 12)"/>
* Generated using adl2canonical.xslt <xsl:value-of select="substring('$Revision: 1.9 $', 12)"/>
*
***************************************************************************
</xsl:comment>

View file

@ -9,15 +9,15 @@
Transform ADL into (partial) controller classes
$Author: sb $
$Revision: 1.43 $
$Date: 2009-05-12 15:43:18 $
$Revision: 1.44 $
$Date: 2010-01-12 17:20:17 $
-->
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
Whitespace (or lack of it) is significant! -->
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="urn:schemas-microsoft-com:xslt"
extension-element-prefixes="exsl">
@ -72,7 +72,7 @@
//
// Automatically generated abstract super class for controllers for the
// <xsl:value-of select="/adl:application/@name"/> application; generated using
// adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.43 $', 10)"/>
// adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.44 $', 10)"/>
//
// <xsl:value-of select="/adl:application/@revision"/>
//
@ -182,7 +182,7 @@
//
// Controller for auto-generated forms for editing <xsl:value-of select="@name"/>s
// Automatically generated from application description using
// adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.43 $', 10)"/>
// adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.44 $', 10)"/>
//
// This file is automatically generated; DO NOT EDIT IT.
//
@ -677,10 +677,8 @@
} /* if ( ! HasNoErrors()) */
<xsl:value-of select="concat( 'this.',adl:form[position()=1]/@name)"/>( record);
}
</xsl:if>
<xsl:if test="adl:form">
<!-- unless there's at least one form, we won't generate a 'delete' method -->
<!-- unless there's at least one form, we won't generate a 'delete' method -->
/// &lt;summary&gt;
/// Actually delete the selected record
/// &lt;/summary&gt;
@ -726,77 +724,9 @@
}
</xsl:if>
<xsl:apply-templates select="adl:form"/>
<xsl:apply-templates select="adl:list"/>
<xsl:if test="adl:list">
<xsl:variable name="listname" select="adl:list[position()=1]/@name"/>
<xsl:apply-templates select="adl:list"/>
/// &lt;summary&gt;
/// list all instances of this entity to allow the user to select one for editing
/// this method invokes the default list view - which is probably what you want unless
/// you've a special reason for doing something different
/// &lt;/summary&gt;
public void InternalShowList()
{
InternalShowList( "<xsl:value-of select="$listname"/>");
}
/// &lt;summary&gt;
/// list all instances of this entity to allow the user to select one for editing
/// &lt;/summary&gt;
/// &lt;param name="view"&gt;The name of the list view to show&lt;/param&gt;
public void InternalShowList( String view)
{
AssertUserCanRead();
ISession hibernator = GetDBSession();
ICriteria search =
hibernator.CreateCriteria(typeof(<xsl:value-of select="concat( $entityns, '.', @name)"/>));
Boolean withSearchCriteria = false;
<xsl:for-each select="adl:property">
<xsl:variable name="base-type">
<xsl:call-template name="base-type">
<xsl:with-param name="property" select="."/>
</xsl:call-template>
</xsl:variable>
<xsl:choose>
<xsl:when test="$base-type='boolean'"/>
<xsl:when test="$base-type='link'"/>
<xsl:when test="$base-type='list'"/>
<xsl:otherwise>
if ( ! String.IsNullOrEmpty( Params[ "<xsl:value-of select="concat( 'search_', @name)"/>"])) {
search<xsl:call-template name="add-hibernate-expression-like">
<xsl:with-param name="property" select="."/>
<xsl:with-param name="value">Params["<xsl:value-of select="concat( 'search_', @name)"/>"]</xsl:with-param>
</xsl:call-template>;
PropertyBag["<xsl:value-of select="concat( 'search_', @name)"/>"] = Params[ "<xsl:value-of select="concat( 'search_', @name)"/>"];
withSearchCriteria = true;
}
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:for-each select="adl:property[@distinct='user' or @distinct='all']">
search.AddOrder(<xsl:value-of select="concat( ' new Order( &#34;', @name, '&#34;, true)')"/>);
</xsl:for-each>
IList&lt;<xsl:value-of select="concat( $entityns, '.', @name)"/>&gt; instances = search.List&lt;<xsl:value-of select="concat( $entityns, '.', @name)"/>&gt;();
/* bug 2921: suppress pagination when searching, as we can't fold the search params into the pagination */
/* if no instances, set showRecords to one else we get a division by zero error */
int showRecords = instances.Count > 0? instances.Count: 1;
if ( ! withSearchCriteria) {
showRecords = <xsl:value-of select="$records-per-page"/>;
}
PropertyBag["instances"] =
PaginationHelper.CreatePagination( this, instances, showRecords);
RenderViewWithFailover(view + ".vm", view + ".auto.vm");
}
</xsl:if>
/// &lt;summary&gt;
/// &lt;summary&gt;
/// Check whether values for all my keys are available in the form fields
/// &lt;/summary&gt;
protected bool AllKeys() {
@ -1015,11 +945,80 @@
/// this method invokes the named view.
/// &lt;/summary&gt;
public void <xsl:value-of select="@name"/>()
{
InternalShowList( "<xsl:value-of select="@name"/>");
}
{
AssertUserCanRead();
string view = "<xsl:value-of select="@name"/>";
ISession hibernator = GetDBSession();
ICriteria search =
hibernator.CreateCriteria(typeof(<xsl:value-of select="concat( $entityns, '.', ancestor::adl:entity/@name)"/>));
Boolean withSearchCriteria = false;
</xsl:template>
<xsl:for-each select="adl:field">
<xsl:variable name="fieldprop" select="@property"/>
<xsl:variable name="property" select="ancestor::adl:entity//adl:property[@name=$fieldprop]"/>
<xsl:variable name="base-type">
<xsl:call-template name="base-type">
<xsl:with-param name="property" select="$property"/>
</xsl:call-template>
</xsl:variable>
/* <xsl:value-of select="@property"/> */
<xsl:choose>
<xsl:when test="$base-type='boolean'"/>
<xsl:when test="$base-type='link'"/>
<xsl:when test="$base-type='list'"/>
<xsl:otherwise>
if ( ! String.IsNullOrEmpty( Params[ "<xsl:value-of select="concat( 'search_', $property/@name)"/>"])) {
search<xsl:call-template name="add-hibernate-expression-like">
<xsl:with-param name="property" select="$property"/>
<xsl:with-param name="value">
Params["<xsl:value-of select="concat( 'search_', $property/@name)"/>"]
</xsl:with-param>
</xsl:call-template>;
PropertyBag["<xsl:value-of select="concat( 'search_', $property/@name)"/>"] = Params[ "<xsl:value-of select="concat( 'search_', $property/@name)"/>"];
withSearchCriteria = true;
}
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<xsl:choose>
<xsl:when test="adl:order">
/* explicit ordering */
<xsl:apply-templates select="adl:order"/>
</xsl:when>
<xsl:otherwise>
/* no explicit ordering */
<xsl:for-each select="ancestor::adl:entity//adl:property[@distinct='user' or @distinct='all']">
search.AddOrder(<xsl:value-of select="concat( ' new Order( &#34;', @name, '&#34;, true)')"/>);
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
IList&lt;<xsl:value-of select="concat( $entityns, '.', ancestor::adl:entity/@name)"/>&gt; instances = search.List&lt;<xsl:value-of select="concat( $entityns, '.', ancestor::adl:entity/@name)"/>&gt;();
/* if no instances, set showRecords to one else we get a division by zero error */
int showRecords = instances.Count > 0? instances.Count: 1;
if ( ! withSearchCriteria) {
showRecords = <xsl:value-of select="$records-per-page"/>;
}
PropertyBag["instances"] =
PaginationHelper.CreatePagination( this, instances, showRecords);
RenderViewWithFailover(view + ".vm", view + ".auto.vm");
}
</xsl:template>
<xsl:template match="adl:order">
search.AddOrder( new Order( "<xsl:value-of select="@property"/>",
<xsl:choose>
<xsl:when test="@sequence='reverse-canonical'">false</xsl:when>
<xsl:otherwise>true</xsl:otherwise>
</xsl:choose>));
</xsl:template>
<xsl:template match="adl:documentation">
/* <xsl:apply-templates/> */
@ -1102,22 +1101,22 @@
<xsl:variable name="propname" select="@property"/>
<xsl:choose>
<xsl:when test="parent::adl:auxlist"/>
<xsl:when test="$form/ancestor::adl:entity/adl:property[@name=$propname and @type='entity']">
/* produce a list of <xsl:value-of select="$form/ancestor::adl:entity/adl:property[@name=$propname]/@entity"/> to populate the select for <xsl:value-of select="$propname"/> */
<xsl:when test="$form/ancestor::adl:entity//adl:property[@name=$propname and @type='entity']">
/* produce a list of <xsl:value-of select="$form/ancestor::adl:entity//adl:property[@name=$propname]/@entity"/> to populate the select for <xsl:value-of select="$propname"/> */
<xsl:call-template name="menu">
<xsl:with-param name="property" select="$form/ancestor::adl:entity/adl:property[@name=$propname]"/>
<xsl:with-param name="property" select="$form/ancestor::adl:entity//adl:property[@name=$propname]"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$form/ancestor::adl:entity/adl:property[@name=$propname and @type='link']">
/* produce a list of <xsl:value-of select="$form/ancestor::adl:entity/adl:property[@name=$propname]/@entity"/> to populate the LHS of the shuffle for <xsl:value-of select="$propname"/> */
<xsl:when test="$form/ancestor::adl:entity//adl:property[@name=$propname and @type='link']">
/* produce a list of <xsl:value-of select="$form/ancestor::adl:entity//adl:property[@name=$propname]/@entity"/> to populate the LHS of the shuffle for <xsl:value-of select="$propname"/> */
<xsl:call-template name="menu">
<xsl:with-param name="property" select="$form/ancestor::adl:entity/adl:property[@name=$propname]"/>
<xsl:with-param name="property" select="$form/ancestor::adl:entity//adl:property[@name=$propname]"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$form/ancestor::adl:entity/adl:property[@name=$propname and @type='list']">
/* produce a list of <xsl:value-of select="$form/ancestor::adl:entity/adl:property[@name=$propname]/@entity"/> to populate the multi-select for <xsl:value-of select="@name"/> */
<xsl:when test="$form/ancestor::adl:entity//adl:property[@name=$propname and @type='list']">
/* produce a list of <xsl:value-of select="$form/ancestor::adl:entity//adl:property[@name=$propname]/@entity"/> to populate the multi-select for <xsl:value-of select="@name"/> */
<xsl:call-template name="menu">
<xsl:with-param name="property" select="$form/ancestor::adl:entity/adl:property[@name=$propname]"/>
<xsl:with-param name="property" select="$form/ancestor::adl:entity//adl:property[@name=$propname]"/>
</xsl:call-template>
</xsl:when>
</xsl:choose>
@ -1133,11 +1132,8 @@
/* there's no way I can find of producing a set of just those entities
* we'll need menus for. So we set up variables for all the menus we might
* need, and then only instantiate those we do need. */
<!-- xsl:for-each select="//adl:entity">
IList&lt;<xsl:value-of select="concat( $entityns, '.', @name)"/>&gt; <xsl:value-of select="concat( 'all', @name)"/> = null;
</xsl:for-each -->
<xsl:for-each select="$entity//adl:property[@type='entity']">
<!-- $entity//adl:property because it is possible to have type='entity' in the key -->
<xsl:for-each select="$entity/adl:property[@type='entity']">
<!-- $entity/adl:property because it is possible to have type='entity' in the key -->
<xsl:call-template name="menu">
<xsl:with-param name="property" select="."/>
</xsl:call-template>
@ -1278,7 +1274,7 @@
ADL: Error: properties of type <xsl:value-of select="$basetype"/> cannot yet be used
in equality tests
</xsl:message>
</xsl:otherwise>
</xsl:otherwise>
</xsl:choose>)
</xsl:template>
@ -1294,11 +1290,11 @@
</xsl:variable>
<xsl:choose>
<xsl:when test="$basetype='string' or $basetype='text'">
Expression.Like( "<xsl:value-of select="@name"/>", "%"+<xsl:value-of select="$value"/>+"%")
Expression.Like( "<xsl:value-of select="$property/@name"/>", "%"+<xsl:value-of select="$value"/>+"%")
</xsl:when>
<xsl:when test="$basetype='real'">
/* match to four significant places */
Expression.Between( "<xsl:value-of select="@name"/>",
Expression.Between( "<xsl:value-of select="$property/@name"/>",
Double.Parse( <xsl:value-of select="$value"/>) * 1.0001,
Double.Parse( <xsl:value-of select="$value"/>) * 0.9999)
</xsl:when>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="UTF-8" method="xml" indent="yes" />

View file

@ -8,8 +8,8 @@
Transform ADL into C# entity classes
$Author: sb $
$Revision: 1.26 $
$Date: 2009-05-08 16:27:24 $
$Revision: 1.27 $
$Date: 2010-01-12 17:20:17 $
-->
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
@ -17,7 +17,7 @@
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:include href="csharp-type-include.xslt"/>
@ -70,7 +70,7 @@
// (c)2007 Cygnet Solutions Ltd
//
// Automatically generated from application description using
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/>
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/>
//
// <xsl:value-of select="/adl:application/@revision"/>
//
@ -97,7 +97,7 @@
/// &lt;/summary&gt;
/// &lt;remarks&gt;
/// Automatically generated from description of group <xsl:value-of select="@name"/>
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/>.
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/>.
///
/// DO NOT EDIT THIS FILE!
/// &lt;/remarks&gt;
@ -123,7 +123,7 @@
// (c)2007 Cygnet Solutions Ltd
//
// Automatically generated from application description using
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/>
// adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/>
//
// <xsl:value-of select="/adl:application/@revision"/>
//
@ -149,7 +149,7 @@
/// &lt;/summary&gt;
/// &lt;remarks&gt;
/// Automatically generated from description of entity <xsl:value-of select="@name"/>
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/>.
/// using adl2entityclass.xsl revision <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/>.
/// Note that manually maintained parts of this class may be defined in
/// a separate file called <xsl:value-of select="@name"/>.manual.cs, q.v.
///

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns="urn:nhibernate-mapping-2.2"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!--
Application Description Framework
@ -12,7 +12,7 @@
Transform ADL to Hibernate
$Author: sb $
$Revision: 1.9 $
$Revision: 1.10 $
-->
<xsl:param name="namespace"/>
@ -138,7 +138,7 @@
*
* <xsl:value-of select="@revision"/>
*
* Generated using adl2hibernate.xslt revision <xsl:value-of select="substring('$Revision: 1.9 $', 12)"/>
* Generated using adl2hibernate.xslt revision <xsl:value-of select="substring('$Revision: 1.10 $', 12)"/>
*
***************************************************************************
</xsl:comment>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<!--
Application Description Language framework
@ -12,7 +12,7 @@
Convert ADL to MS-SQL
$Author: sb $
$Revision: 1.19 $
$Revision: 1.20 $
-->
<xsl:output indent="no" encoding="UTF-8" method="text"/>
@ -112,7 +112,7 @@
-- <xsl:value-of select="$product-version"/>
--
-- Database for application <xsl:value-of select="@name"/> version <xsl:value-of select="@version"/>
-- Generated for MS-SQL 2000+ using adl2mssql.xslt <xsl:value-of select="substring('$Revision: 1.19 $', 12)"/>
-- Generated for MS-SQL 2000+ using adl2mssql.xslt <xsl:value-of select="substring('$Revision: 1.20 $', 12)"/>
-- THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT IT.
--
-- <xsl:value-of select="@revision"/>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:exsl="urn:schemas-microsoft-com:xslt"
@ -15,8 +15,8 @@
Transform ADL into velocity view templates
$Author: sb $
$Revision: 1.64 $
$Date: 2010-01-12 11:48:19 $
$Revision: 1.65 $
$Date: 2010-01-12 17:20:17 $
-->
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
Whitespace (or lack of it) is significant! -->
@ -1075,7 +1075,7 @@
<xsl:value-of select="$search-name"/>
<xsl:if test="not( position() = last())">||</xsl:if>
</xsl:for-each> )
<xsl:comment>Suppressing pagination in favour of search</xsl:comment>
<span class="pagination status">(Suppressing pagination in favour of search)</span>
#else
<span class="pagination control">
#if($instances.HasFirst)
@ -1137,7 +1137,7 @@
ought to be replaced with a single template, but that template proves to be extremely hard to get
right -->
<xsl:param name="can-search"/>
<table class="sortable">
<table class="sortable" id="concat($entity/@name, '-list')">
<tr>
<xsl:for-each select="$fields">
<xsl:variable name="field" select="."/>
@ -1151,11 +1151,11 @@
</th>
</xsl:for-each>
<xsl:for-each select="$entity/adl:form">
<th>-</th>
<th class="unsortable">-</th>
</xsl:for-each>
</tr>
<xsl:if test="$can-search = 'true'">
<tr class="search">
<tr class="search sorttop">
<xsl:for-each select="$fields">
<xsl:variable name="field" select="."/>
<td class="search">
@ -1862,7 +1862,7 @@
Auto generated Velocity macro for <xsl:value-of select="@name"/>,
generated from ADL.
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.64 $', 10)"/>
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.65 $', 10)"/>
Generation parameters were:
area-name: <xsl:value-of select="$area-name"/>
default-url: <xsl:value-of select="$default-url"/>

View file

@ -10,13 +10,13 @@
one place for ease of maintenance
$Author: sb $
$Revision: 1.3 $
$Date: 2009-04-28 13:53:17 $
$Revision: 1.4 $
$Date: 2010-01-12 17:20:17 $
-->
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="adl">

View file

@ -10,13 +10,13 @@
one place for ease of maintenance
$Author: sb $
$Revision: 1.3 $
$Date: 2009-04-28 13:53:17 $
$Revision: 1.4 $
$Date: 2010-01-12 17:20:17 $
-->
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="adl">

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt">
@ -22,8 +22,8 @@
Templates are listed in alphabetical order.
$Author: sb $
$Revision: 1.6 $
$Date: 2009-04-28 13:53:17 $
$Revision: 1.7 $
$Date: 2010-01-12 17:20:17 $
-->
<xsl:template name="i18n-add-a-new">

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns="http://libs.cygnets.co.uk/adl/1.3/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.3/"
xmlns="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:adl="http://libs.cygnets.co.uk/adl/1.4/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:exsl="urn:schemas-microsoft-com:xslt"
@ -15,8 +15,8 @@
Utility templates to find permissions on various things
$Author: sb $
$Revision: 1.5 $
$Date: 2009-05-06 18:02:35 $
$Revision: 1.6 $
$Date: 2010-01-12 17:20:17 $
-->
<!-- collect all groups which can edit the specified property -->