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">
<css-file>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>
<default>
<css-file>public.css</css-file>
<css-file media="screen">public.css</css-file>
</default>
</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/>
</head>
<body>
<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>
<include file="fragments/header-with-nav.xml"/>
<main class="content-width">
<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>
<include file="fragments/second-level-nav.xml"/>
<div>
<h1>
<show-page-title/>
</h1>
<content-item mode="detail"/>
</div>
</main>
<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>-->
<include file="fragments/footer.xml"/>
</body>
</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/>
</head>
<body>
<nav>
<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>
<include file="fragments/header-with-nav.xml"/>
<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-row>
<portal-grid-workspace-columns>
<portal-grid-workspace-column>
<portal-grid-workspace-column-portlets/>
</portal-grid-workspace-column>
</portal-grid-workspace-columns>
<div class="portal-grid-row">
<portal-grid-workspace-columns>
<portal-grid-workspace-column>
<column-layouts format="100%">
<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-rows>
</portal-grid-workspace>

View File

@ -77,12 +77,65 @@
<divIfNotEmpty id="portal-workspace-edit-links" class="workspace-details">
<portal-workspace-edit-links/>
</divIfNotEmpty>
<portal-workspace-columns use-default-styles="true">
<portal-workspace-column>
<div>
<portal-workspace-portlets/>
</div>
</portal-workspace-column>
<portal-workspace-columns>
<div class="portal-workspace-columns">
<portal-workspace-column>
<column-layouts format="100%">
<column-layout>
<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>
</main>

View File

@ -10,6 +10,14 @@
<css-file>bootstrap/css/bootstrap.min.css</css-file>
<css-file>public.css</css-file>
</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>
<css-file>public.css</css-file>
</default>

View File

@ -14,28 +14,16 @@
<code>css-files</code> element. This element has multiple <code>application</code>
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
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
<code>application</code> element is found.
</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>
<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>
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.

View File

@ -24,7 +24,7 @@
version="2.0">
<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/search.xsl"/>-->
<xsl:import href="lib/template-parser.xsl"/>

View File

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

View File

@ -30,49 +30,19 @@
</xsl:template>
<xsl:template match="portal-grid-workspace//portal-grid-workspace-rows">
<!--<pre>grid-workspace-rows</pre>-->
<xsl:apply-templates/>
</xsl:template>
<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:copy-of select="./*"/>
</xsl:variable>
<xsl:for-each select="$data-tree/portal:gridWorkspace/portal:rows/portal:row">
<!--<pre>grid-workspace-row</pre>-->
<!--<pre><xsl:value-of select="concat('layout = ', ./@layout)"/></pre>-->
<div>
<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:apply-templates select="$row-layout-tree/*">
<xsl:with-param name="row-data-tree" tunnel="yes" select="current()"/>
</xsl:apply-templates>
</xsl:for-each>
</xsl:template>
@ -82,10 +52,6 @@
</xsl:template>
<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:variable name="class">
@ -101,48 +67,31 @@
<xsl:variable name="column-layout-tree" select="./*"/>
<!--<pre>
<xsl:value-of select="concat('count(row-data-tree/*) = ', count($row-data-tree/*))"/>
</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:variable name="layout-format"
select="$row-data-tree/@layout"/>
<xsl:for-each select="tokenize($row-data-tree/@layout, ',')">
<!--<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:apply-templates select="$column-layout-tree">
<xsl:with-param name="column-portlets"
tunnel="yes"
select="$row-data-tree/portal:portlets/bebop:portlet[@cellNumber = $col-number]"/>
</xsl:apply-templates>
</div>
<xsl:for-each select="tokenize($layout-format, ',')">
<xsl:variable name="col-number" select="position()"/>
<xsl:variable name="col-id" select="concat('[', $col-number, ']')"/>
<xsl:choose>
<xsl:when test="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]">
<xsl:apply-templates select="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]/*">
<xsl:with-param name="column-portlets"
tunnel="yes"
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:if test="$use-default-styles">
<div style="clear:both"/>
</xsl:if>
</xsl:template>
<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 match="portal-workspace//portal-workspace-columns">
<xsl:apply-templates>
<!--<xsl:apply-templates>
<xsl:with-param name="use-default-styles"
tunnel="yes"
select="foundry:boolean(./@use-default-styles)"/>
</xsl:apply-templates>
</xsl:apply-templates>-->
<xsl:apply-templates/>
</xsl:template>
<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:template match="portal-workspace//portal-workspace-columns//portal-workspace-column">
<xsl:variable name="class">
<xsl:choose>
<xsl:when test="./@class">
@ -165,35 +161,68 @@
<xsl:variable name="column-layout-tree" select="./*"/>
<xsl:for-each select="tokenize($data-tree/portal:workspace/portal:portal/@layout, ',')">
<div>
<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:apply-templates select="$column-layout-tree">
<xsl:with-param name="workspace-portlets"
tunnel="yes"
select="$data-tree/portal:workspace/portal:portal/bebop:portlet[@cellNumber = $col-number]"/>
</xsl:apply-templates>
</div>
</xsl:for-each>
<xsl:variable name="layout-format"
select="$data-tree/portal:workspace/portal:portal/@layout"/>
<xsl:if test="$use-default-styles">
<div style="clear:both"/>
</xsl:if>
<xsl:for-each select="tokenize($layout-format, ',')">
<xsl:variable name="col-number" select="position()"/>
<xsl:variable name="col-id" select="concat('[', $col-number, ']')"/>
<xsl:choose>
<xsl:when test="$column-layout-tree[@format=$layout-format]/column-layout[contains(@for, $col-id)]">
<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: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: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>
<!-- 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>
</nav>
<main>
<portal-grid-workspace use-default-styles="true">
<portal-grid-workspace>
<portal-grid-workspace-rows>
<portal-grid-workspace-row>
<portal-grid-workspace-columns>
<portal-grid-workspace-column>
<portal-grid-workspace-column-portlets/>
</portal-grid-workspace-column>
</portal-grid-workspace-columns>
<div class="portal-grid-row">
<portal-grid-workspace-columns>
<portal-grid-workspace-column>
<column-layouts format="100%">
<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-rows>
</portal-grid-workspace>

View File

@ -77,12 +77,65 @@
<divIfNotEmpty id="portal-workspace-edit-links" class="workspace-details">
<portal-workspace-edit-links/>
</divIfNotEmpty>
<portal-workspace-columns use-default-styles="true">
<portal-workspace-column>
<div>
<portal-workspace-portlets/>
</div>
</portal-workspace-column>
<portal-workspace-columns>
<div class="portal-workspace-columns">
<portal-workspace-column>
<column-layouts format="100%">
<column-layout>
<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>
</main>