From 9d09c248d04d0873e18a769fedce6496f116c60c Mon Sep 17 00:00:00 2001 From: sb <sb> Date: Thu, 19 Feb 2009 15:29:27 +0000 Subject: [PATCH] Very close to having SRU working. --- transforms/adl2controllerclasses.xslt | 22 ++++++--------- transforms/adl2mssql.xslt | 26 +++++++++++++---- transforms/adl2views.xslt | 40 +++++++++++++++------------ 3 files changed, 51 insertions(+), 37 deletions(-) diff --git a/transforms/adl2controllerclasses.xslt b/transforms/adl2controllerclasses.xslt index e29f699..ccff28e 100755 --- a/transforms/adl2controllerclasses.xslt +++ b/transforms/adl2controllerclasses.xslt @@ -9,8 +9,8 @@ Transform ADL into (partial) controller classes $Author: sb $ - $Revision: 1.27 $ - $Date: 2009-02-06 17:48:58 $ + $Revision: 1.28 $ + $Date: 2009-02-19 15:29:27 $ --> <!-- WARNING WARNING WARNING: Do NOT reformat this file! @@ -70,7 +70,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.27 $', 10)"/> + // adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.28 $', 10)"/> // // <xsl:value-of select="/adl:application/@revision"/> // @@ -109,9 +109,8 @@ <xsl:choose> <xsl:when test="$authentication-layer = 'Application'"/> <xsl:when test="$authentication-layer = 'Database'"> - public <xsl:value-of select="concat( 'Abstract', /adl:application/@name, 'Controller')"/>(){ - dbSessionProvider = new DBLayerSessionProvider(); - } + /* authentication layer is requested to be 'database', but in fact database-layer + authentication does not work well with NHibernate so this is being ignored. */ </xsl:when> <xsl:otherwise> <xsl:message terminate="yes"> @@ -181,7 +180,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.27 $', 10)"/> + // adl2controllerclasses.xslt version <xsl:value-of select="substring( '$Revision: 1.28 $', 10)"/> // // This file is automatically generated; DO NOT EDIT IT. // @@ -435,7 +434,8 @@ <xsl:variable name="entityname" select="@entity"/> <xsl:choose> <xsl:when test="//adl:entity[@name=$entityname]"> - if ( ! String.IsNullOrEmpty( Form["<xsl:value-of select="concat( 'instance.', @name)"/>"])) + if ( ! String.IsNullOrEmpty( Form["<xsl:value-of select="concat( 'instance.', @name)"/>"]) && + ! EntityMenuControl<<xsl:value-of select="concat( $entityns, '.', @entity)"/>>.NULLMARKER.Equals ( Form["<xsl:value-of select="concat( 'instance.', @name)"/>"])) { record.<xsl:value-of select="@name"/> = <xsl:call-template name="fetch-property-instance"> <xsl:with-param name="property" select="."/> @@ -939,12 +939,6 @@ { ISession hibernator = GetDBSession(); - if ( record == null ){ - record = new <xsl:value-of select="concat($entityns, '.', ancestor::adl:entity/@name)"/>(); - - BindObjectInstance( record, ParamStore.Form, "instance"); - } - TypedPropertyBag = new { <xsl:call-template name="formmenus"> <xsl:with-param name="form" select="."/> diff --git a/transforms/adl2mssql.xslt b/transforms/adl2mssql.xslt index a812f5f..87408e0 100755 --- a/transforms/adl2mssql.xslt +++ b/transforms/adl2mssql.xslt @@ -12,7 +12,7 @@ Convert ADL to MS-SQL $Author: sb $ - $Revision: 1.16 $ + $Revision: 1.17 $ --> <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.16 $', 12)"/> + -- Generated for MS-SQL 2000+ using adl2mssql.xslt <xsl:value-of select="substring('$Revision: 1.17 $', 12)"/> -- THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT IT. -- -- <xsl:value-of select="@revision"/> @@ -130,10 +130,24 @@ ------------------------------------------------------------------------------------------------- <xsl:apply-templates select="adl:group"/> - ------------------------------------------------------------------------------------------------- - -- primary tables, views and permissions - ------------------------------------------------------------------------------------------------- - <xsl:apply-templates select="adl:entity" mode="table"/> + ------------------------------------------------------------------------------------------------- + -- magic view for role membership, used in establishing security credentials + ------------------------------------------------------------------------------------------------- + CREATE VIEW RoleMembership AS + SELECT dbuser.name as "dbuser", + dbrole.name as "dbrole" + FROM sysusers AS dbuser, sysmembers, sysusers AS dbrole + WHERE dbuser.uid = sysmembers.memberuid + AND dbrole.uid = sysmembers.groupuid + GO + + GRANT SELECT on RoleMembership to public + GO + + ------------------------------------------------------------------------------------------------- + -- primary tables, views and permissions + ------------------------------------------------------------------------------------------------- + <xsl:apply-templates select="adl:entity" mode="table"/> ------------------------------------------------------------------------------------------------- -- link tables diff --git a/transforms/adl2views.xslt b/transforms/adl2views.xslt index 5965604..ed9797a 100755 --- a/transforms/adl2views.xslt +++ b/transforms/adl2views.xslt @@ -15,8 +15,8 @@ Transform ADL into velocity view templates $Author: sb $ - $Revision: 1.26 $ - $Date: 2009-02-06 17:48:58 $ + $Revision: 1.27 $ + $Date: 2009-02-19 15:29:27 $ --> <!-- WARNING WARNING WARNING: Do NOT reformat this file! Whitespace (or lack of it) is significant! --> @@ -124,7 +124,7 @@ Auto generated Velocity maybe-delete form for <xsl:value-of select="@name"/>, generated from ADL. - Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/> + Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/> </xsl:comment> <xsl:call-template name="maybe-delete"> <xsl:with-param name="entity" select="."/> @@ -161,7 +161,7 @@ Auto generated Velocity maybe-delete form for <xsl:value-of select="@name"/>, generated from ADL. - Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/> + Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/> <xsl:value-of select="/adl:application/@revision"/> </xsl:comment> @@ -244,7 +244,7 @@ Auto generated Velocity <xsl:value-of select="@name"/> form for <xsl:value-of select="ancestor::adl:entity/@name"/>, generated from ADL. - Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/> + Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/> Generation parameters were: locale: <xsl:value-of select="$locale"/> generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/> @@ -320,7 +320,7 @@ Auto generated Velocity form for <xsl:value-of select="ancestor::adl:entity/@name"/>, generated from ADL. - Generated using adl2views.xsl <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/> + Generated using adl2views.xsl <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/> Generation parameters were: locale: <xsl:value-of select="$locale"/> generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/> @@ -900,7 +900,7 @@ Auto generated Velocity list for <xsl:value-of select="@name"/>, generated from ADL. - Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/> + Generated using adl2views.xslt <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/> Generation parameters were: locale: <xsl:value-of select="$locale"/> generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/> @@ -963,7 +963,7 @@ Auto generated Velocity list for <xsl:value-of select="ancestor::adl:entity/@name"/>, generated from ADL. - Generated using adl2listview.xsl <xsl:value-of select="substring( '$Revision: 1.26 $', 10)"/> + Generated using adl2listview.xsl <xsl:value-of select="substring( '$Revision: 1.27 $', 10)"/> Generation parameters were: locale: <xsl:value-of select="$locale"/> generate-site-navigation: <xsl:value-of select="$generate-site-navigation"/> @@ -1391,8 +1391,11 @@ <!-- assumed to be an instance of adl:form --> </xsl:param> <script type='text/javascript' language='JavaScript1.2'> - var site-root = '$site-root'; - + #if ( $site-root) + site-root = '$site-root'; + #else + site-root = '/'; + #end function performInitialisation() { <xsl:for-each select="$form/ancestor::adl:entity/adl:property[@type='link']"> @@ -1408,9 +1411,6 @@ we /don't/ set up a submit handler. --> </xsl:choose> </xsl:for-each> - <xsl:if test="$form/adl:fieldgroup"> - switchtab( '<xsl:value-of select="$form/adl:fieldgroup[1]/@name"/>'); - </xsl:if> } var validator = new Validation('<xsl:value-of select="$form/name"/>', {immediate : true, useTitles : true}); @@ -1540,6 +1540,12 @@ <xsl:otherwise>1</xsl:otherwise> </xsl:choose> </xsl:variable> + <xsl:variable name="required"> + <xsl:choose> + <xsl:when test="$property/@required='true'">true</xsl:when> + <xsl:otherwise>false</xsl:otherwise> + </xsl:choose> + </xsl:variable> <xsl:choose> <xsl:when test="$property/adl:option"> <!-- emit a menu of options --> @@ -1578,7 +1584,7 @@ <xsl:variable name="minimum" select="$definition/@minimum"/> <xsl:choose> <xsl:when test="$base-type='string'"> - ${<xsl:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@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:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',required='<xsl:value-of select="normalize-space( $required)"/>',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:when test="string-length($definition/@minimum) > 0 and string-length( $definition/@maximum) > 0"> <xsl:call-template name="slider-widget"> @@ -1589,7 +1595,7 @@ ${<xsl:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@name)"/>", "%{class='<xsl:value-of select="concat('slider, ', 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( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@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:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',required='<xsl:value-of select="normalize-space( $required)"/>',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:otherwise> </xsl:choose> </xsl:when> @@ -1602,13 +1608,13 @@ </xsl:variable> <!-- NOTE! NOTE! NOTE! Whitespace is significant - any linefeeds inside the #if ( ) clause cause the Velocity parser to break! --> #if ( <xsl:for-each select="exsl:node-set( $readgroups)/*">${SecurityHelper.InGroup( "<xsl:value-of select="./@name"/>")} ||</xsl:for-each> false) - ${<xsl:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@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:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',required='<xsl:value-of select="normalize-space( $required)"/>',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 [Not authorised] #end </xsl:when> <xsl:otherwise> - ${<xsl:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@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:value-of select="concat( $property/ancestor::adl:entity/@name, 'FieldHelper', '.', $mode, '(')"/> "<xsl:value-of select="concat( 'instance.', $property/@name)"/>", "%{class='<xsl:value-of select="normalize-space($cssclass)"/>',required='<xsl:value-of select="normalize-space( $required)"/>',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:otherwise> </xsl:choose> </xsl:template>