Upgrade for Foundry (core and the foundry-base theme):

- HTML for portal-workspace and portal-grid-workspace is now fully customisable
- Default stylesheet for portal-workspace included for positioning the columns
- Included these changes into the foundry-base theme
- foundry-base theme now makes use of the include template tag for header, second level nav and footer.


git-svn-id: https://svn.libreccm.org/ccm/trunk@2996 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2014-11-29 14:01:23 +00:00
parent e0c864a8ea
commit 58a27ac0d7
16 changed files with 572 additions and 393 deletions

View File

@ -9,8 +9,19 @@
<application name="navigation"> <application name="navigation">
<css-file>public.css</css-file> <css-file>public.css</css-file>
<css-file media="screen">public.css</css-file> <css-file media="screen">public.css</css-file>
</application>
<application name="navigation" class="portalGridPage">
<css-file media="screen">portal.css</css-file>
<css-file>public.css</css-file>
<css-file media="screen">public.css</css-file>
</application>
<application name="portal">
<css-file media="screen">portal.css</css-file>
<css-file>public.css</css-file>
<css-file media="screen">public.css</css-file>
</application> </application>
<default> <default>
<css-file>public.css</css-file> <css-file>public.css</css-file>
<css-file media="screen">public.css</css-file>
</default> </default>
</css-files> </css-files>

View File

@ -0,0 +1,52 @@
div.portal-workspace-columns {
position: relative;
}
div.portal-workspace-columns div.portal-col,
div.portal-grid-row div.portal-col {
float: left;
overflow: scroll;
}
div.portal-workspace-columns div.portal-col-16,
div.portal-grid-row div.portal-col-16 {
width: 16.66%;
}
div.portal-workspace-columns div.portal-col-20,
div.portal-grid-row div.portal-col-20 {
width: 20%;
}
div.portal-workspace-columns div.portal-col-25,
div.portal-grid-row div.portal-col-25 {
width: 25%;
}
div.portal-workspace-columns div.portal-col-30,
div.portal-grid-row div.portal-col-30 {
width: 30%;
}
div.portal-workspace-columns div.portal-col-33,
div.portal-grid-row div.portal-col-33 {
width: 33.33%;
}
div.portal-workspace-columns div.portal-col-40,
div.portal-grid-row div.portal-col-40 {
width: 40%;
}
div.portal-workspace-columns div.portal-col-50,
div.portal-grid-row div.portal-col-50 {
width: 50%;
}
div.portal-workspace-columns div.portal-col-100,
div.portal-grid-row div.portal-col-100 {
width: 100%;
}

View File

@ -9,209 +9,16 @@
<load-css-files/> <load-css-files/>
</head> </head>
<body> <body>
<header> <include file="fragments/header-with-nav.xml"/>
<div class="service-panel">
<div class="content-width">
<language-selector>
<ul class="language-selector">
<language>
<li>
<a>
<span>
<language-name/>
</span>
</a>
</li>
</language>
</ul>
</language-selector>
<div class="service-links">
<a href-static="/ccm/sitemap">
<show-text>layout/service-links/sitemap</show-text>
</a>
<a href-static="/ccm/contact">
<show-text>layout/service-links/contact</show-text>
</a>
<a href-static="/ccm/privacy">
<show-text>layout/service-links/privacy</show-text>
</a>
<a href-static="/ccm/privacy">
<show-text>layout/service-links/help</show-text>
</a>
</div>
</div>
</div>
<nav class="content-width">
<div id="home-link">
<navigation-home-link>
<a title="Home">
<img src-static="images/librecms-logo.png" width="150" height="90"/>
</a>
</navigation-home-link>
</div>
<div id="page-title">
<span>
<show-text>layout/page/head/title</show-text>
</span>
</div>
<navigation max-level="1">
<navigation-links>
<ul>
<navigation-link>
<li>
<a>
<navigation-link-label/>
</a>
</li>
</navigation-link>
</ul>
</navigation-links>
</navigation>
</nav>
</header>
<main class="content-width"> <main class="content-width">
<navigation min-level="2" max-level="99"> <include file="fragments/second-level-nav.xml"/>
<nav>
<navigation-links>
<ul>
<navigation-link>
<li>
<a>
<navigation-link-label/>
</a>
<navigation-sublinks/>
</li>
</navigation-link>
</ul>
</navigation-links>
</nav>
</navigation>
<div> <div>
<h1> <h1>
<show-page-title/> <show-page-title/>
</h1> </h1>
<content-item mode="detail"/> <content-item mode="detail"/>
</div> </div>
</main> </main>
<include file="fragments/footer.xml"/>
<include file="fragments/footer.xml"/>
<!--<nav>
<navigation-home-link>
<a>
<navigation-title/>
</a>
</navigation-home-link>
<div id="header-top-line">
</div>
<h1>
<show-text>layout/page/head/title</show-text>: <show-page-title/>
</h1>
<navigation min-level="1" max-level="1">
<div class="nav-wrapper">
<navigation-links>
<ul>
<navigation-link>
<li>
<a>
<navigation-link-label/>
</a>
<navigation-sublinks/>
</li>
</navigation-link>
</ul>
</navigation-links>
</div>
</navigation>
<breadcrumbs>
<div id="breadcrumbs">
<breadcrumb-link>
<a>
<breadcrumb-label mode="mark"/>
</a>
</breadcrumb-link>
</div>
<breadcrumb-separator>
<span class="breadcrumb-separator">/</span>
</breadcrumb-separator>
</breadcrumbs>
</nav>
<main>
<div>
<content-item/>
</div>
<div>
<image-attachments>
<image-attachment from="2" to="3">
<img width="320" height="240"/>
</image-attachment>
</image-attachments>
</div>
<div id="item-list-wrapper">
<object-list id="itemList">
<ul>
<object-list-item>
<li>
<content-item mode="list"/>
</li>
</object-list-item>
</ul>
</object-list>
</div>
<div id="news-list-wrapper">
<object-list id="newsList">
<ul>
<object-list-item>
<li>
<pre>news-item</pre>
</li>
</object-list-item>
</ul>
</object-list>
</div>
</main>
<aside>
<related-links>
<ul>
<related-link>
<internal>
<li>
<content-item mode="link"/>
</li>
</internal>
<external>
<li>
<a>
<related-link-title/>
</a>
</li>
</external>
</related-link>
</ul>
</related-links>
<notes>
<div id="notes">
<note>
<div class="note">
<note-content/>
</div>
</note>
</div>
</notes>
</aside>
<footer>
<include file="fragments/footer.xml"/>
<include file="fragments/libreccm.xml" origin="internal"/>
</footer>-->
</body> </body>
</page-layout> </page-layout>

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<fragment-layout>
<header>
<div class="service-panel">
<div class="content-width">
<language-selector>
<ul class="language-selector">
<language>
<li>
<a>
<span>
<language-name/>
</span>
</a>
</li>
</language>
</ul>
</language-selector>
<div class="service-links">
<a href-static="/ccm/sitemap">
<show-text>layout/service-links/sitemap</show-text>
</a>
<a href-static="/ccm/contact">
<show-text>layout/service-links/contact</show-text>
</a>
<a href-static="/ccm/privacy">
<show-text>layout/service-links/privacy</show-text>
</a>
<a href-static="/ccm/privacy">
<show-text>layout/service-links/help</show-text>
</a>
</div>
</div>
</div>
<nav class="content-width">
<div id="home-link">
<navigation-home-link>
<a title="Home">
<img src-static="images/librecms-logo.png" width="150" height="90"/>
</a>
</navigation-home-link>
</div>
<div id="page-title">
<span>
<show-text>layout/page/head/title</show-text>
</span>
</div>
<navigation max-level="1">
<navigation-links>
<ul>
<navigation-link>
<li>
<a>
<navigation-link-label/>
</a>
</li>
</navigation-link>
</ul>
</navigation-links>
</navigation>
</nav>
</header>
</fragment-layout>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<fragment-layout>
<navigation min-level="2" max-level="99">
<nav>
<navigation-links>
<ul>
<navigation-link>
<li>
<a>
<navigation-link-label/>
</a>
<navigation-sublinks/>
</li>
</navigation-link>
</ul>
</navigation-links>
</nav>
</navigation>
</fragment-layout>

View File

@ -9,53 +9,72 @@
<load-css-files/> <load-css-files/>
</head> </head>
<body> <body>
<nav> <include file="fragments/header-with-nav.xml"/>
<navigation-home-link>
<a>
<navigation-title/>
</a>
</navigation-home-link>
<h1>
<show-text>layout/page/head/title</show-text>: <show-page-title/>
</h1>
<navigation>
<div class="nav-wrapper">
<navigation-links>
<ul>
<navigation-link>
<li>
<a>
<navigation-link-label/>
</a>
<navigation-sublinks/>
</li>
</navigation-link>
</ul>
</navigation-links>
</div>
</navigation>
<breadcrumbs>
<div id="breadcrumbs">
<breadcrumb-link>
<a>
<breadcrumb-label mode="mark"/>
</a>
</breadcrumb-link>
</div>
<breadcrumb-separator>
<span class="breadcrumb-separator">/</span>
</breadcrumb-separator>
</breadcrumbs>
</nav>
<main> <main>
<portal-grid-workspace use-default-styles="true"> <include file="fragments/second-level-nav.xml"/>
<portal-grid-workspace>
<portal-grid-workspace-rows> <portal-grid-workspace-rows>
<portal-grid-workspace-row> <portal-grid-workspace-row>
<portal-grid-workspace-columns> <div class="portal-grid-row">
<portal-grid-workspace-column> <portal-grid-workspace-columns>
<portal-grid-workspace-column-portlets/> <portal-grid-workspace-column>
</portal-grid-workspace-column> <column-layouts format="100%">
</portal-grid-workspace-columns> <column-layout>
<div class="portal-col portal-col-100">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="50%,50%">
<column-layout>
<div class="portal-col portal-col-50">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="33.33%,33.33%,33.33%">
<column-layout>
<div class="portal-col portal-col-33">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="30%,40%,30%">
<column-layout for="[1] [3]">
<div class="portal-col portal-col-30">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
<column-layout>
<div class="portal-col portal-col-40">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="25%,25%,25%,25%">
<column-layout>
<div class="portal-col portal-col-25">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="20%,20%,20%,20%,20%">
<column-layout>
<div class="portal-col portal-col-20">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="16.66%,16.66%,16.66%,16.66%,16.66%,16.66%">
<column-layout>
<div class="portal-col portal-col-16">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
</portal-grid-workspace-column>
</portal-grid-workspace-columns>
</div>
</portal-grid-workspace-row> </portal-grid-workspace-row>
</portal-grid-workspace-rows> </portal-grid-workspace-rows>
</portal-grid-workspace> </portal-grid-workspace>

View File

@ -77,12 +77,65 @@
<divIfNotEmpty id="portal-workspace-edit-links" class="workspace-details"> <divIfNotEmpty id="portal-workspace-edit-links" class="workspace-details">
<portal-workspace-edit-links/> <portal-workspace-edit-links/>
</divIfNotEmpty> </divIfNotEmpty>
<portal-workspace-columns use-default-styles="true"> <portal-workspace-columns>
<portal-workspace-column> <div class="portal-workspace-columns">
<div> <portal-workspace-column>
<portal-workspace-portlets/> <column-layouts format="100%">
</div> <column-layout>
</portal-workspace-column> <div class="portal-col portal-col-100">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="50%,50%">
<column-layout>
<div class="portal-col portal-col-50">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="33.33%,33.33%,33.33%">
<column-layout>
<div class="portal-col portal-col-33">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="30%,40%,30%">
<column-layout for="[1] [3]">
<div class="portal-col portal-col-30">
<portal-workspace-portlets/>
</div>
</column-layout>
<column-layout>
<div class="portal-col portal-col-40">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="25%,25%,25%,25%">
<column-layout>
<div class="portal-col portal-col-25">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="20%,20%,20%,20%,20%">
<column-layout>
<div class="portal-col portal-col-20">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="16.66%,16.66%,16.66%,16.66%,16.66%,16.66%">
<column-layout>
<div class="portal-col portal-col-16">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
</portal-workspace-column>
</div>
</portal-workspace-columns> </portal-workspace-columns>
</portal-workspace> </portal-workspace>
</main> </main>

View File

@ -10,6 +10,14 @@
<css-file>bootstrap/css/bootstrap.min.css</css-file> <css-file>bootstrap/css/bootstrap.min.css</css-file>
<css-file>public.css</css-file> <css-file>public.css</css-file>
</application> </application>
<application name="navigation" class="portalGridPage">
<css-file>portal.css</css-file>
<css-file>public.css</css-file>
</application>
<application name="portal">
<css-file>portal.css</css-file>
<css-file>public.css</css-file>
</application>
<default> <default>
<css-file>public.css</css-file> <css-file>public.css</css-file>
</default> </default>

View File

@ -14,28 +14,16 @@
<code>css-files</code> element. This element has multiple <code>application</code> <code>css-files</code> element. This element has multiple <code>application</code>
child elements. Each <code>application</code> has an mandatory attribute child elements. Each <code>application</code> has an mandatory attribute
<code>name</code> which contains the name of the application for which the CSS files <code>name</code> which contains the name of the application for which the CSS files
named in the element are loaded. There should be also an <code>default</code> named in the element are loaded. To further distinguish between pages provided by the
same application the optional attribute <code>class</code> can be used.
There should be also an <code>default</code>
element which determines the CSS files to load when no matching element which determines the CSS files to load when no matching
<code>application</code> element is found. <code>application</code> element is found.
</p> </p>
<p> <p>
The name of an application is generated as follows: Some pages have no application name in the data tree XML. In this cases to name of
the application is set to <code>none</code>.
</p> </p>
<ul>
<li>
If the data tree contains an <code>application</code> attribute the value of
this attribute is used as name of the current application.
</li>
<li>
If there is no <code>application</code> but an <code>class</code> attribute the
value of the <code>class</code> attribute is used as name of the current
application.
</li>
<li>
If there is no <code>application</code> and no <code>class</code> attribute
the name of the current application is set to <code>none</code>.
</li>
</ul>
<p> <p>
Each <code>application</code> element and the <code>default</code> element Each <code>application</code> element and the <code>default</code> element
in <code>css-files.xml</code> can contain multiple <code>css-file</code> element. in <code>css-files.xml</code> can contain multiple <code>css-file</code> element.

View File

@ -24,7 +24,7 @@
version="2.0"> version="2.0">
<xsl:import href="lib/bebop.xsl"/> <xsl:import href="lib/bebop.xsl"/>
<xsl:import href="lib/portlets.xsl"/> <!--<xsl:import href="lib/portlets.xsl"/>-->
<xsl:import href="lib/global-vars.xsl"/> <xsl:import href="lib/global-vars.xsl"/>
<!--<xsl:import href="lib/search.xsl"/>--> <!--<xsl:import href="lib/search.xsl"/>-->
<xsl:import href="lib/template-parser.xsl"/> <xsl:import href="lib/template-parser.xsl"/>

View File

@ -50,7 +50,11 @@
</foundry:doc-desc> </foundry:doc-desc>
</foundry:doc> </foundry:doc>
<xsl:template match="load-css-files"> <xsl:template match="load-css-files">
<xsl:variable name="application"> <xsl:variable name="application"
select="if ($data-tree/@application)
then $data-tree/@application
else 'none'"/>
<!--<xsl:variable name="application">
<xsl:choose> <xsl:choose>
<xsl:when test="$data-tree/@application"> <xsl:when test="$data-tree/@application">
<xsl:value-of select="$data-tree/@application"/> <xsl:value-of select="$data-tree/@application"/>
@ -62,22 +66,39 @@
<xsl:value-of select="'none'"/> <xsl:value-of select="'none'"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:variable> </xsl:variable>-->
<xsl:variable name="class"
select="if ($data-tree/@class)
then $data-tree/@class
else 'none'"/>
<xsl:variable name="css-files-map"
select="document(foundry:gen-path('conf/css-files.xml'))"/>
<xsl:choose> <xsl:choose>
<xsl:when test="document(foundry:gen-path('conf/css-files.xml'))/css-files/application[@name = $application]"> <xsl:when test="$css-files-map/css-files/application[@name = $application and @class = $class]">
<xsl:for-each select="document(foundry:gen-path('conf/css-files.xml'))/css-files/application[@name = $application]/css-file"> <xsl:for-each select="$css-files-map/css-files/application[@name = $application and @class]/css-file">
<xsl:call-template name="foundry:load-css-file">
<xsl:with-param name="filename" select="."/>
<xsl:with-param name="media" select="./@media"/>
<xsl:with-param name="origin"
select="foundry:get-attribute-value(current(), 'origin', '')"/>
</xsl:call-template>
</xsl:for-each>
</xsl:when>
<xsl:when test="$css-files-map/css-files/application[@name = $application and not(@class)]">
<xsl:for-each select="$css-files-map/css-files/application[@name = $application and not(@class)]/css-file">
<xsl:call-template name="foundry:load-css-file"> <xsl:call-template name="foundry:load-css-file">
<xsl:with-param name="filename" select="."/> <xsl:with-param name="filename" select="."/>
<xsl:with-param name="media" select="./@media"/> <xsl:with-param name="media" select="./@media"/>
<!--<xsl:with-param name="internal" select="foundry:boolean(./@internal)"/>-->
<xsl:with-param name="origin" <xsl:with-param name="origin"
select="foundry:get-attribute-value(current(), 'origin', '')"/> select="foundry:get-attribute-value(current(), 'origin', '')"/>
</xsl:call-template> </xsl:call-template>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:for-each select="document(foundry:gen-path('conf/css-files.xml'))/css-files/default/css-file"> <xsl:for-each select="$css-files-map/css-files/default/css-file">
<xsl:call-template name="foundry:load-css-file"> <xsl:call-template name="foundry:load-css-file">
<xsl:with-param name="filename" select="."/> <xsl:with-param name="filename" select="."/>
<xsl:with-param name="media" select="./@media"/> <xsl:with-param name="media" select="./@media"/>
@ -93,7 +114,7 @@
conditional comments in the other CSS files instead? --> conditional comments in the other CSS files instead? -->
<xsl:if test="$msie_version >= '5' and $msie_version &lt; '7'"> <xsl:if test="$msie_version >= '5' and $msie_version &lt; '7'">
<xsl:choose> <xsl:choose>
<xsl:when test="document(foundry:gen-path('/conf/css-files.xml'))/css-files/application[@name=$application]"> <xsl:when test="$css-files-map/css-files/application[@name=$application]">
<xsl:for-each select="document(foundry:gen-path('conf/css-files.xml'))/css-files/application[@name=$application]/iehacks"> <xsl:for-each select="document(foundry:gen-path('conf/css-files.xml'))/css-files/application[@name=$application]/iehacks">
<xsl:call-template name="foundry:load-css-file"> <xsl:call-template name="foundry:load-css-file">
<xsl:with-param name="filename" select="."/> <xsl:with-param name="filename" select="."/>
@ -102,7 +123,7 @@
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<xsl:for-each select="document(foundry:gen-path('/conf/css-files.xml'))/css-files/default/iehacks"> <xsl:for-each select="$css-files-map/css-files/default/iehacks">
<xsl:call-template name="foundry:load-css-file"> <xsl:call-template name="foundry:load-css-file">
<xsl:with-param name="filename" select="."/> <xsl:with-param name="filename" select="."/>
<xsl:with-param name="media" select="./@media"/> <xsl:with-param name="media" select="./@media"/>

View File

@ -30,49 +30,19 @@
</xsl:template> </xsl:template>
<xsl:template match="portal-grid-workspace//portal-grid-workspace-rows"> <xsl:template match="portal-grid-workspace//portal-grid-workspace-rows">
<!--<pre>grid-workspace-rows</pre>-->
<xsl:apply-templates/> <xsl:apply-templates/>
</xsl:template> </xsl:template>
<xsl:template match="portal-grid-workspace//portal-grid-workspace-rows//portal-grid-workspace-row"> <xsl:template match="portal-grid-workspace//portal-grid-workspace-rows//portal-grid-workspace-row">
<xsl:param name="use-default-styles"
as="xs:boolean"
tunnel="yes"
select="true()"/>
<xsl:variable name="class">
<xsl:choose>
<xsl:when test="./@class">
<xsl:value-of select="./@class"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="''"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="row-layout-tree"> <xsl:variable name="row-layout-tree">
<xsl:copy-of select="./*"/> <xsl:copy-of select="./*"/>
</xsl:variable> </xsl:variable>
<xsl:for-each select="$data-tree/portal:gridWorkspace/portal:rows/portal:row"> <xsl:for-each select="$data-tree/portal:gridWorkspace/portal:rows/portal:row">
<!--<pre>grid-workspace-row</pre>--> <xsl:apply-templates select="$row-layout-tree/*">
<!--<pre><xsl:value-of select="concat('layout = ', ./@layout)"/></pre>--> <xsl:with-param name="row-data-tree" tunnel="yes" select="current()"/>
<div> </xsl:apply-templates>
<xsl:if test="$use-default-styles">
<xsl:attribute name="style">
<xsl:value-of select="'position: relative; width: 100%'"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$class != ''">
<xsl:attribute name="class" select="$class"/>
</xsl:if>
<xsl:apply-templates select="$row-layout-tree/*">
<xsl:with-param name="row-data-tree" tunnel="yes" select="current()"/>
</xsl:apply-templates>
</div>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
@ -82,10 +52,6 @@
</xsl:template> </xsl:template>
<xsl:template match="portal-grid-workspace-columns//portal-grid-workspace-column"> <xsl:template match="portal-grid-workspace-columns//portal-grid-workspace-column">
<xsl:param name="use-default-styles"
as="xs:boolean"
tunnel="yes"
select="true()"/>
<xsl:param name="row-data-tree" tunnel="yes"/> <xsl:param name="row-data-tree" tunnel="yes"/>
<xsl:variable name="class"> <xsl:variable name="class">
@ -101,48 +67,31 @@
<xsl:variable name="column-layout-tree" select="./*"/> <xsl:variable name="column-layout-tree" select="./*"/>
<!--<pre> <xsl:variable name="layout-format"
<xsl:value-of select="concat('count(row-data-tree/*) = ', count($row-data-tree/*))"/> select="$row-data-tree/@layout"/>
</pre>
<pre>
<xsl:value-of select="count($row-data-tree/portal:portlets)"/>
</pre>
<pre>
<xsl:value-of select="concat('cols = ', $row-data-tree/@layout)"/>
</pre>-->
<xsl:for-each select="tokenize($row-data-tree/@layout, ',')"> <xsl:for-each select="tokenize($layout-format, ',')">
<!--<pre>grid-workspace-row-column</pre>-->
<div>
<xsl:if test="$use-default-styles">
<xsl:choose>
<xsl:when test="current() = '100%'">
<!--<xsl:attribute name="style"
select="concat('float:left; width = ', current(), ';')"/>-->
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style"
select="concat('float:left; width: ', current(), ';')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
<xsl:if test="$class != ''">
<xsl:attribute name="class" select="$class"/>
</xsl:if>
<xsl:variable name="col-number" select="position()"/> <xsl:variable name="col-number" select="position()"/>
<xsl:variable name="col-id" select="concat('[', $col-number, ']')"/>
<xsl:apply-templates select="$column-layout-tree"> <xsl:choose>
<xsl:with-param name="column-portlets" <xsl:when test="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]">
tunnel="yes" <xsl:apply-templates select="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]/*">
select="$row-data-tree/portal:portlets/bebop:portlet[@cellNumber = $col-number]"/> <xsl:with-param name="column-portlets"
</xsl:apply-templates> tunnel="yes"
</div> select="$row-data-tree/portal:portlets/bebop:portlet[@cellNumber = $col-number]"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$column-layout-tree[@format=$layout-format]/column-layout[not(@for)]/*">
<xsl:with-param name="column-portlets"
tunnel="yes"
select="$row-data-tree/portal:portlets/bebop:portlet[@cellNumber = $col-number]"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each> </xsl:for-each>
<xsl:if test="$use-default-styles">
<div style="clear:both"/>
</xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="portal-grid-workspace-columns//portal-grid-workspace-column//portal-grid-workspace-column-portlets"> <xsl:template match="portal-grid-workspace-columns//portal-grid-workspace-column//portal-grid-workspace-column-portlets">

View File

@ -139,19 +139,15 @@
</xsl:template> </xsl:template>
<xsl:template match="portal-workspace//portal-workspace-columns"> <xsl:template match="portal-workspace//portal-workspace-columns">
<xsl:apply-templates> <!--<xsl:apply-templates>
<xsl:with-param name="use-default-styles" <xsl:with-param name="use-default-styles"
tunnel="yes" tunnel="yes"
select="foundry:boolean(./@use-default-styles)"/> select="foundry:boolean(./@use-default-styles)"/>
</xsl:apply-templates> </xsl:apply-templates>-->
<xsl:apply-templates/>
</xsl:template> </xsl:template>
<xsl:template match="portal-workspace//portal-workspace-columns/portal-workspace-column"> <xsl:template match="portal-workspace//portal-workspace-columns//portal-workspace-column">
<xsl:param name="use-default-styles"
as="xs:boolean"
tunnel="yes"
select="true()"/>
<xsl:variable name="class"> <xsl:variable name="class">
<xsl:choose> <xsl:choose>
<xsl:when test="./@class"> <xsl:when test="./@class">
@ -165,35 +161,68 @@
<xsl:variable name="column-layout-tree" select="./*"/> <xsl:variable name="column-layout-tree" select="./*"/>
<xsl:for-each select="tokenize($data-tree/portal:workspace/portal:portal/@layout, ',')"> <xsl:variable name="layout-format"
<div> select="$data-tree/portal:workspace/portal:portal/@layout"/>
<xsl:if test="$use-default-styles">
<xsl:attribute name="style"
select="concat('float:left; width = ', current(), ';')"/>
</xsl:if>
<xsl:if test="$class != ''">
<xsl:attribute name="class" select="$class"/>
</xsl:if>
<xsl:variable name="col-number" select="position()"/> <xsl:for-each select="tokenize($layout-format, ',')">
<xsl:apply-templates select="$column-layout-tree"> <xsl:variable name="col-number" select="position()"/>
<xsl:with-param name="workspace-portlets" <xsl:variable name="col-id" select="concat('[', $col-number, ']')"/>
tunnel="yes"
select="$data-tree/portal:workspace/portal:portal/bebop:portlet[@cellNumber = $col-number]"/> <xsl:choose>
</xsl:apply-templates> <xsl:when test="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]">
</div> <xsl:apply-templates select="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]/*">
<xsl:with-param name="workspace-portlets"
tunnel="yes"
select="$data-tree/portal:workspace/portal:portal/bebop:portlet[@cellNumber = $col-number]"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$column-layout-tree[@format=$layout-format]/column-layout[not(@for)]/*">
<xsl:with-param name="workspace-portlets"
tunnel="yes"
select="$data-tree/portal:workspace/portal:portal/bebop:portlet[@cellNumber = $col-number]"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each> </xsl:for-each>
<xsl:if test="$use-default-styles">
<div style="clear:both"/>
</xsl:if>
</xsl:template> </xsl:template>
<xsl:template match="portal-workspace//portal-workspace-columns/portal-workspace-column//portal-workspace-portlets"> <xsl:template match="portal-workspace//portal-workspace-columns//portal-workspace-column//portal-workspace-portlets">
<xsl:param name="workspace-portlets" tunnel="yes"/> <xsl:param name="workspace-portlets" tunnel="yes"/>
<xsl:apply-templates select="$workspace-portlets"/> <xsl:variable name="workspace"
select="$data-tree/portal:workspace/portal:workspaceDetails/primaryURL"/>
<xsl:variable name="template-map">
<xsl:copy-of select="document(foundry:gen-path('conf/templates.xml'))/templates/portlets/*"/>
</xsl:variable>
<xsl:for-each select="$workspace-portlets">
<xsl:variable name="classname">
<xsl:value-of select="./@bebop:classname"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$template-map/portlet[@class=$classname and @workspace = $workspace]">
<xsl:apply-templates select="document(foundry:gen-path(concat('templates/', normalize-space($template-map/portlet[@class=$classname and @workspace=$workspace]))))/*">
<xsl:with-param name="portlet-data-tree" tunnel="yes" select="current()"/>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$template-map/portlet[@class=$classname]">
<xsl:apply-templates select="document(foundry:gen-path(concat('templates/', normalize-space($template-map/portlet[@class=$classname]))))/*">
<xsl:with-param name="portlet-data-tree" tunnel="yes" select="current()"/>
</xsl:apply-templates>
</xsl:when>
<xsl:when test="$template-map/default">
<xsl:apply-templates select="document(foundry:gen-path(concat('templates/', normalize-space($template-map/default))))/*">
<xsl:with-param name="portlet-data-tree" tunnel="yes" select="current()"/>
</xsl:apply-templates>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<!--<xsl:apply-templates select="$workspace-portlets"/>-->
</xsl:template> </xsl:template>
<!-- Styles for Portal Admin page. Some of the containers have special names so we need templates <!-- Styles for Portal Admin page. Some of the containers have special names so we need templates

View File

@ -0,0 +1,52 @@
div.portal-workspace-columns {
position: relative;
}
div.portal-workspace-columns div.portal-col,
div.portal-grid-row div.portal-col {
float: left;
overflow: scroll;
}
div.portal-workspace-columns div.portal-col-16,
div.portal-grid-row div.portal-col-16 {
width: 16.66%;
}
div.portal-workspace-columns div.portal-col-20,
div.portal-grid-row div.portal-col-20 {
width: 20%;
}
div.portal-workspace-columns div.portal-col-25,
div.portal-grid-row div.portal-col-25 {
width: 25%;
}
div.portal-workspace-columns div.portal-col-30,
div.portal-grid-row div.portal-col-30 {
width: 30%;
}
div.portal-workspace-columns div.portal-col-33,
div.portal-grid-row div.portal-col-33 {
width: 33.33%;
}
div.portal-workspace-columns div.portal-col-40,
div.portal-grid-row div.portal-col-40 {
width: 40%;
}
div.portal-workspace-columns div.portal-col-50,
div.portal-grid-row div.portal-col-50 {
width: 50%;
}
div.portal-workspace-columns div.portal-col-100,
div.portal-grid-row div.portal-col-100 {
width: 100%;
}

View File

@ -48,14 +48,69 @@
</breadcrumbs> </breadcrumbs>
</nav> </nav>
<main> <main>
<portal-grid-workspace use-default-styles="true"> <portal-grid-workspace>
<portal-grid-workspace-rows> <portal-grid-workspace-rows>
<portal-grid-workspace-row> <portal-grid-workspace-row>
<portal-grid-workspace-columns> <div class="portal-grid-row">
<portal-grid-workspace-column> <portal-grid-workspace-columns>
<portal-grid-workspace-column-portlets/> <portal-grid-workspace-column>
</portal-grid-workspace-column> <column-layouts format="100%">
</portal-grid-workspace-columns> <column-layout>
<div class="portal-col portal-col-100">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="50%,50%">
<column-layout>
<div class="portal-col portal-col-50">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="33.33%,33.33%,33.33%">
<column-layout>
<div class="portal-col portal-col-33">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="30%,40%,30%">
<column-layout for="[1] [3]">
<div class="portal-col portal-col-30">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
<column-layout>
<div class="portal-col portal-col-40">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="25%,25%,25%,25%">
<column-layout>
<div class="portal-col portal-col-25">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="20%,20%,20%,20%,20%">
<column-layout>
<div class="portal-col portal-col-20">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="16.66%,16.66%,16.66%,16.66%,16.66%,16.66%">
<column-layout>
<div class="portal-col portal-col-16">
<portal-grid-workspace-column-portlets/>
</div>
</column-layout>
</column-layouts>
</portal-grid-workspace-column>
</portal-grid-workspace-columns>
</div>
</portal-grid-workspace-row> </portal-grid-workspace-row>
</portal-grid-workspace-rows> </portal-grid-workspace-rows>
</portal-grid-workspace> </portal-grid-workspace>

View File

@ -77,12 +77,65 @@
<divIfNotEmpty id="portal-workspace-edit-links" class="workspace-details"> <divIfNotEmpty id="portal-workspace-edit-links" class="workspace-details">
<portal-workspace-edit-links/> <portal-workspace-edit-links/>
</divIfNotEmpty> </divIfNotEmpty>
<portal-workspace-columns use-default-styles="true"> <portal-workspace-columns>
<portal-workspace-column> <div class="portal-workspace-columns">
<div> <portal-workspace-column>
<portal-workspace-portlets/> <column-layouts format="100%">
</div> <column-layout>
</portal-workspace-column> <div class="portal-col portal-col-100">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="50%,50%">
<column-layout>
<div class="portal-col portal-col-50">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="33.33%,33.33%,33.33%">
<column-layout>
<div class="portal-col portal-col-33">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="30%,40%,30%">
<column-layout for="[1] [3]">
<div class="portal-col portal-col-30">
<portal-workspace-portlets/>
</div>
</column-layout>
<column-layout>
<div class="portal-col portal-col-40">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="25%,25%,25%,25%">
<column-layout>
<div class="portal-col portal-col-25">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="20%,20%,20%,20%,20%">
<column-layout>
<div class="portal-col portal-col-20">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
<column-layouts format="16.66%,16.66%,16.66%,16.66%,16.66%,16.66%">
<column-layout>
<div class="portal-col portal-col-16">
<portal-workspace-portlets/>
</div>
</column-layout>
</column-layouts>
</portal-workspace-column>
</div>
</portal-workspace-columns> </portal-workspace-columns>
</portal-workspace> </portal-workspace>
</main> </main>