Now doing immutable widgets correctly.
This commit is contained in:
parent
f3f4f5c5bf
commit
19a35b9115
|
@ -13,7 +13,7 @@
|
||||||
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
$Revision: 1.2 $
|
$Revision: 1.3 $
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
<!-- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
||||||
|
@ -300,6 +300,7 @@ that we can allow HTML block level entities within content elements -->
|
||||||
is not the farside primary key, then the name of that
|
is not the farside primary key, then the name of that
|
||||||
farside field
|
farside field
|
||||||
required: whether this propery is required (i.e. 'not null').
|
required: whether this propery is required (i.e. 'not null').
|
||||||
|
immutable: if true, once a value has been set it cannot be changed.
|
||||||
size: fieldwidth of the property if specified.
|
size: fieldwidth of the property if specified.
|
||||||
concrete: if set to 'false', this property is not stored in the
|
concrete: if set to 'false', this property is not stored in the
|
||||||
database but must be computed (manually written code must
|
database but must be computed (manually written code must
|
||||||
|
@ -325,6 +326,7 @@ that we can allow HTML block level entities within content elements -->
|
||||||
entity CDATA #IMPLIED
|
entity CDATA #IMPLIED
|
||||||
farkey CDATA #IMPLIED
|
farkey CDATA #IMPLIED
|
||||||
required %Boolean; #IMPLIED
|
required %Boolean; #IMPLIED
|
||||||
|
immutable %Boolean #IMPLIED
|
||||||
size CDATA #IMPLIED
|
size CDATA #IMPLIED
|
||||||
column CDATA #IMPLIED
|
column CDATA #IMPLIED
|
||||||
concrete %Boolean; #IMPLIED
|
concrete %Boolean; #IMPLIED
|
||||||
|
|
|
@ -15,8 +15,8 @@
|
||||||
Transform ADL into velocity view templates
|
Transform ADL into velocity view templates
|
||||||
|
|
||||||
$Author: sb $
|
$Author: sb $
|
||||||
$Revision: 1.23 $
|
$Revision: 1.24 $
|
||||||
$Date: 2009-02-03 13:05:08 $
|
$Date: 2009-02-04 11:32:27 $
|
||||||
-->
|
-->
|
||||||
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
<!-- WARNING WARNING WARNING: Do NOT reformat this file!
|
||||||
Whitespace (or lack of it) is significant! -->
|
Whitespace (or lack of it) is significant! -->
|
||||||
|
@ -60,6 +60,8 @@
|
||||||
<xsl:param name="layout-name"/>
|
<xsl:param name="layout-name"/>
|
||||||
<!-- bug 1800 : the name of the area (i.e. URL path part) to use -->
|
<!-- bug 1800 : the name of the area (i.e. URL path part) to use -->
|
||||||
<xsl:param name="area-name" select="auto"/>
|
<xsl:param name="area-name" select="auto"/>
|
||||||
|
<!-- the base url of the whole site -->
|
||||||
|
<xsl:param name="site-root"/>
|
||||||
|
|
||||||
<xsl:template match="adl:application">
|
<xsl:template match="adl:application">
|
||||||
<output>
|
<output>
|
||||||
|
@ -118,7 +120,7 @@
|
||||||
Auto generated Velocity maybe-delete form for <xsl:value-of select="@name"/>,
|
Auto generated Velocity maybe-delete form for <xsl:value-of select="@name"/>,
|
||||||
generated from ADL.
|
generated from ADL.
|
||||||
|
|
||||||
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.23 $', 10)"/>
|
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.24 $', 10)"/>
|
||||||
</xsl:comment>
|
</xsl:comment>
|
||||||
<xsl:call-template name="maybe-delete">
|
<xsl:call-template name="maybe-delete">
|
||||||
<xsl:with-param name="entity" select="."/>
|
<xsl:with-param name="entity" select="."/>
|
||||||
|
@ -155,7 +157,7 @@
|
||||||
Auto generated Velocity maybe-delete form for <xsl:value-of select="@name"/>,
|
Auto generated Velocity maybe-delete form for <xsl:value-of select="@name"/>,
|
||||||
generated from ADL.
|
generated from ADL.
|
||||||
|
|
||||||
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.23 $', 10)"/>
|
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.24 $', 10)"/>
|
||||||
|
|
||||||
<xsl:value-of select="/adl:application/@revision"/>
|
<xsl:value-of select="/adl:application/@revision"/>
|
||||||
</xsl:comment>
|
</xsl:comment>
|
||||||
|
@ -238,7 +240,7 @@
|
||||||
Auto generated Velocity <xsl:value-of select="@name"/> form for <xsl:value-of select="ancestor::adl:entity/@name"/>,
|
Auto generated Velocity <xsl:value-of select="@name"/> form for <xsl:value-of select="ancestor::adl:entity/@name"/>,
|
||||||
generated from ADL.
|
generated from ADL.
|
||||||
|
|
||||||
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.23 $', 10)"/>
|
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.24 $', 10)"/>
|
||||||
Generation parameters were:
|
Generation parameters were:
|
||||||
locale: <xsl:value-of select="$locale"/>
|
locale: <xsl:value-of select="$locale"/>
|
||||||
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
||||||
|
@ -263,7 +265,7 @@
|
||||||
#capturefor( headextras)
|
#capturefor( headextras)
|
||||||
<xsl:call-template name="head"/>
|
<xsl:call-template name="head"/>
|
||||||
<script type='text/javascript' language='JavaScript1.2'>
|
<script type='text/javascript' language='JavaScript1.2'>
|
||||||
var siteRoot = '$siteRoot';
|
var site-root = '$site-root';
|
||||||
|
|
||||||
function performInitialisation()
|
function performInitialisation()
|
||||||
{
|
{
|
||||||
|
@ -369,7 +371,7 @@
|
||||||
Auto generated Velocity form for <xsl:value-of select="ancestor::adl:entity/@name"/>,
|
Auto generated Velocity form for <xsl:value-of select="ancestor::adl:entity/@name"/>,
|
||||||
generated from ADL.
|
generated from ADL.
|
||||||
|
|
||||||
Generated using adl2views.xsl <xsl:value-of select="substring( '$Revision: 1.23 $', 10)"/>
|
Generated using adl2views.xsl <xsl:value-of select="substring( '$Revision: 1.24 $', 10)"/>
|
||||||
Generation parameters were:
|
Generation parameters were:
|
||||||
locale: <xsl:value-of select="$locale"/>
|
locale: <xsl:value-of select="$locale"/>
|
||||||
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
||||||
|
@ -384,7 +386,7 @@
|
||||||
<xsl:call-template name="install-scripts"/>
|
<xsl:call-template name="install-scripts"/>
|
||||||
<script type='text/javascript' language='JavaScript1.2'>
|
<script type='text/javascript' language='JavaScript1.2'>
|
||||||
|
|
||||||
var siteRoot = '$siteRoot';
|
var site-root = '$site-root';
|
||||||
|
|
||||||
function performInitialisation()
|
function performInitialisation()
|
||||||
{
|
{
|
||||||
|
@ -852,9 +854,6 @@
|
||||||
<xsl:with-param name="property" select="$property"/>
|
<xsl:with-param name="property" select="$property"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<xsl:comment>
|
|
||||||
matched adl:property; group = '<xsl:value-of select="@name"/>' permission = '<xsl:value-of select="$permission"/>'
|
|
||||||
</xsl:comment>
|
|
||||||
<tr>
|
<tr>
|
||||||
<xsl:attribute name="class">
|
<xsl:attribute name="class">
|
||||||
<xsl:value-of select="$oddness"/>
|
<xsl:value-of select="$oddness"/>
|
||||||
|
@ -952,21 +951,42 @@
|
||||||
<xsl:otherwise>1</xsl:otherwise>
|
<xsl:otherwise>1</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
|
<xsl:variable name="href">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="$property/@type='entity' and //adl:entity[@name=$property/@entity]/adl:form[@name='edit']">
|
||||||
|
<!-- if this is an entity property, and the entity which it wraps has an edit form -->
|
||||||
|
<xsl:variable name="keys">
|
||||||
|
<xsl:call-template name="entity-keys-fragment">
|
||||||
|
<xsl:with-param name="entity" select="//adl:entity[@name=$property/@entity]"/>
|
||||||
|
<xsl:with-param name="instance" select="concat( 'instance.', $property/@name)"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:value-of select="concat( '../../', $property/@entity, '/edit.rails', $keys)"/>
|
||||||
|
</xsl:when>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
<xsl:if test="exsl:node-set( $editgroups)/*">
|
<xsl:if test="exsl:node-set( $editgroups)/*">
|
||||||
<!-- NOTE! NOTE! NOTE! Whitespace is significant - any linefeeds inside the #if ( ) clause
|
<!-- NOTE! NOTE! NOTE! Whitespace is significant - any linefeeds inside the #if ( ) clause
|
||||||
cause the Velocity parser to break! -->
|
cause the Velocity parser to break! -->
|
||||||
#if ( <xsl:for-each select="exsl:node-set( $editgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")}<xsl:if test="not( position() = last())"> || </xsl:if></xsl:for-each>)
|
#if ( <xsl:for-each select="exsl:node-set( $editgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")}<xsl:if test="not( position() = last())"> || </xsl:if></xsl:for-each>)
|
||||||
${<xsl:value-of select="concat( ancestor::adl:entity/@name, 'FieldHelper')"/>.Editable( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{rendermode='<xsl:value-of select="normalize-space($render-mode)"/>',class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>'}")}
|
<xsl:choose>
|
||||||
|
<xsl:when test="$property/@immutable='true'">
|
||||||
|
${<xsl:value-of select="concat( ancestor::adl:entity/@name, 'FieldHelper')"/>.Immutable( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>',href='<xsl:value-of select="normalize-space($href)"/>'}")}
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
${<xsl:value-of select="concat( ancestor::adl:entity/@name, 'FieldHelper')"/>.Editable( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>'}")}
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
#else
|
#else
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="exsl:node-set( $insertgroups)/*">
|
<xsl:if test="exsl:node-set( $insertgroups)/*">
|
||||||
#if ( <xsl:for-each select="exsl:node-set( $insertgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")}<xsl:if test="not( position() = last())"> || </xsl:if></xsl:for-each>)
|
#if ( <xsl:for-each select="exsl:node-set( $insertgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")}<xsl:if test="not( position() = last())"> || </xsl:if></xsl:for-each>)
|
||||||
${<xsl:value-of select="concat( '$', ancestor::adl:entity/@name, 'FieldHelper')"/>.Immutable( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{rendermode='<xsl:value-of select="normalize-space($render-mode)"/>',class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>'}")}
|
${<xsl:value-of select="concat( '$', ancestor::adl:entity/@name, 'FieldHelper')"/>.Immutable( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>',href='<xsl:value-of select="normalize-space($href)"/>'}")}
|
||||||
#else
|
#else
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
<xsl:if test="exsl:node-set( $readgroups)/*">
|
<xsl:if test="exsl:node-set( $readgroups)/*">
|
||||||
#if ( <xsl:for-each select="exsl:node-set( $readgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")}<xsl:if test="not( position() = last())"> || </xsl:if></xsl:for-each>)
|
#if ( <xsl:for-each select="exsl:node-set( $readgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")}<xsl:if test="not( position() = last())"> || </xsl:if></xsl:for-each>)
|
||||||
${<xsl:value-of select="concat( ancestor::adl:entity/@name, 'FieldHelper')"/>.DisplayAndHidden( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{rendermode='<xsl:value-of select="normalize-space($render-mode)"/>',class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>'}")}
|
${<xsl:value-of select="concat( ancestor::adl:entity/@name, 'FieldHelper')"/>.DisplayAndHidden( "<xsl:value-of select="concat( 'instance.', @name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',title='<xsl:value-of select="normalize-space($if-missing)"/>',size='<xsl:value-of select="normalize-space($size)"/>',maxlength='<xsl:value-of select="normalize-space($maxlength)"/>',rows='<xsl:value-of select="normalize-space($rows)"/>',href='<xsl:value-of select="normalize-space($href)"/>'}")}
|
||||||
#else
|
#else
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
[Not authorised]
|
[Not authorised]
|
||||||
|
@ -1006,7 +1026,7 @@
|
||||||
Auto generated Velocity list for <xsl:value-of select="@name"/>,
|
Auto generated Velocity list for <xsl:value-of select="@name"/>,
|
||||||
generated from ADL.
|
generated from ADL.
|
||||||
|
|
||||||
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.23 $', 10)"/>
|
Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.24 $', 10)"/>
|
||||||
Generation parameters were:
|
Generation parameters were:
|
||||||
locale: <xsl:value-of select="$locale"/>
|
locale: <xsl:value-of select="$locale"/>
|
||||||
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
||||||
|
@ -1053,7 +1073,7 @@
|
||||||
Auto generated Velocity list for <xsl:value-of select="ancestor::adl:entity/@name"/>,
|
Auto generated Velocity list for <xsl:value-of select="ancestor::adl:entity/@name"/>,
|
||||||
generated from ADL.
|
generated from ADL.
|
||||||
|
|
||||||
Generated using adl2listview.xsl <xsl:value-of select="substring( '$Revision: 1.23 $', 10)"/>
|
Generated using adl2listview.xsl <xsl:value-of select="substring( '$Revision: 1.24 $', 10)"/>
|
||||||
Generation parameters were:
|
Generation parameters were:
|
||||||
locale: <xsl:value-of select="$locale"/>
|
locale: <xsl:value-of select="$locale"/>
|
||||||
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/>
|
||||||
|
@ -1221,24 +1241,9 @@
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</xsl:for-each>
|
</xsl:for-each>
|
||||||
<xsl:variable name="keys">
|
<xsl:variable name="keys">
|
||||||
<!-- assemble keys in a Velocity-friendly format, then splice it into
|
<xsl:call-template name="entity-keys-fragment">
|
||||||
the HREF below -->
|
<xsl:with-param name="entity" select="$entity"/>
|
||||||
<xsl:for-each select="$entity/adl:key/adl:property">
|
</xsl:call-template>
|
||||||
<xsl:variable name="sep">
|
|
||||||
<xsl:choose>
|
|
||||||
<xsl:when test="position()=1">?</xsl:when>
|
|
||||||
<xsl:otherwise>&</xsl:otherwise>
|
|
||||||
</xsl:choose>
|
|
||||||
</xsl:variable>
|
|
||||||
<xsl:choose>
|
|
||||||
<xsl:when test="@type='entity'">
|
|
||||||
<xsl:value-of select="concat( $sep, @name, '=$', $entity/@name, '.', @name, '_Value')"/>
|
|
||||||
</xsl:when>
|
|
||||||
<xsl:otherwise>
|
|
||||||
<xsl:value-of select="concat( $sep, @name, '=$', $entity/@name, '.', @name)"/>
|
|
||||||
</xsl:otherwise>
|
|
||||||
</xsl:choose>
|
|
||||||
</xsl:for-each>
|
|
||||||
</xsl:variable>
|
</xsl:variable>
|
||||||
<xsl:for-each select="$entity/adl:form">
|
<xsl:for-each select="$entity/adl:form">
|
||||||
<!-- by default create a link to each form declared for the entity.
|
<!-- by default create a link to each form declared for the entity.
|
||||||
|
@ -1421,6 +1426,28 @@
|
||||||
</td>
|
</td>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- assemble keys for this entity in a Velocity-friendly format, to splice into an HREF below -->
|
||||||
|
<xsl:template name="entity-keys-fragment">
|
||||||
|
<xsl:param name="entity"/>
|
||||||
|
<xsl:param name="instance" select="$entity/@name"/>
|
||||||
|
<xsl:for-each select="$entity/adl:key/adl:property">
|
||||||
|
<xsl:variable name="sep">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="position()=1">?</xsl:when>
|
||||||
|
<xsl:otherwise>&</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:variable>
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="@type='entity'">
|
||||||
|
<xsl:value-of select="concat( $sep, @name, '=$', $instance, '.', @name, '_Value')"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="concat( $sep, @name, '=$', $instance, '.', @name)"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:for-each>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
<!-- overall page layout -->
|
<!-- overall page layout -->
|
||||||
|
|
||||||
<xsl:template match="adl:content"/>
|
<xsl:template match="adl:content"/>
|
||||||
|
@ -1482,7 +1509,24 @@
|
||||||
<li class="navigation">
|
<li class="navigation">
|
||||||
<a>
|
<a>
|
||||||
<xsl:attribute name="href">
|
<xsl:attribute name="href">
|
||||||
<xsl:value-of select="concat( '$siteRoot', '/', $area-name, '/', @name, '/', adl:list[position()=1]/@name, '.rails')"/>
|
<xsl:choose>
|
||||||
|
<xsl:when test="string-length( $site-root) > 0">
|
||||||
|
<xsl:choose>
|
||||||
|
<xsl:when test="string-length( $area-name) > 0">
|
||||||
|
<xsl:value-of select="concat( '$site-root', '/', $area-name, '/', @name, '/', adl:list[position()=1]/@name, '.rails')"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="concat( '$site-root', '/', @name, '/', adl:list[position()=1]/@name, '.rails')"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:when test="string-length( $area-name) > 0">
|
||||||
|
<xsl:value-of select="concat( '/', $area-name, '/', @name, '/', adl:list[position()=1]/@name, '.rails')"/>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
|
<xsl:value-of select="concat( '/', @name, '/', adl:list[position()=1]/@name, '.rails')"/>
|
||||||
|
</xsl:otherwise>
|
||||||
|
</xsl:choose>
|
||||||
</xsl:attribute>
|
</xsl:attribute>
|
||||||
<xsl:value-of select="@name"/>
|
<xsl:value-of select="@name"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
Loading…
Reference in a new issue