Modul ccm-ldn-navigation wird jetzt als legacy-free application type

initialisiert. Das Standard-Theme ist von __ccm__ nach themes 
verschoben.

Administration unter /ccm/navigation/admin wird mit falschem Header
dargestellt. Wenn man in navigation-index.xsl den Import von
(aplaws-generic)/content-section-index.xsl auskommentiert, ist die
Darstellung richtig (dann allerdings mit altem RH theme und ohne den
APLAWS header). Der gleiche Fehler ist auch schon bei r780 (z.B. IAW)
vorhanden.


git-svn-id: https://svn.libreccm.org/ccm/trunk@903 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2011-05-12 07:42:47 +00:00
parent db6428f17e
commit 64670e96df
51 changed files with 777 additions and 48 deletions

View File

@ -2,7 +2,7 @@
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project" <ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
name="ccm-ldn-navigation" name="ccm-ldn-navigation"
prettyName="Navigation" prettyName="Navigation"
version="6.6.1" version="6.6.2"
release="1" release="1"
webapp="ROOT"> webapp="ROOT">
<ccm:dependencies> <ccm:dependencies>

View File

@ -0,0 +1,56 @@
--
-- Copyright (C) 2011 Peter Boy. All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $Id: remove_legacy_entries.sql $
-- Navigation is now initialized as a legacy free type of application so
-- entries in tables apm_package_types are no longer needed.
update applications
set package_id = null
where title like 'Navigation Control Center' ;
delete from site_nodes
where url like '/navigation/' ;
delete from apm_packages
where pretty_name like 'Navigation' ;
update application_types
set package_type_id = null
where object_type like 'com.arsdigita.london.navigation.Navigation' ;
delete from apm_package_types
where package_key like 'navigation' ;
delete from object_context
where object_id = (select acs_objects.object_id from acs_objects
where acs_objects.object_type
like '%com.arsdigita.kernel%'
AND acs_objects.display_name like '/navigation/') ;
delete from object_context
where object_id = (select acs_objects.object_id from acs_objects
where acs_objects.object_type
like '%com.arsdigita.kernel%'
AND acs_objects.display_name like 'Navigation') ;
delete from acs_objects
where object_type like '%com.arsdigita.kernel%'
AND display_name like '%avigatio%' ;

View File

@ -1,3 +1,3 @@
@@ ../oracle-se/upgrade/create-portlet-object-list.sql @@ oracle-se/1.4.1-1.4.2/create-portlet-object-list.sql
@@ ../oracle-se/upgrade/create-portlet-item-list.sql @@ oracle-se/1.4.1-1.4.2/create-portlet-item-list.sql

View File

@ -1,4 +1,4 @@
@@ ../oracle-se/upgrade/add-template_mapping_id.sql @@ oracle-se/1.4.2-1.4.3/add-template_mapping_id.sql
@@ ../oracle-se/upgrade/rename-use-context.sql @@ oracle-se/1.4.2-1.4.3/rename-use-context.sql
@@ ../oracle-se/upgrade/add-new-use-context.sql @@ oracle-se/1.4.2-1.4.3/add-new-use-context.sql

View File

@ -1,2 +1,2 @@
@@ ../oracle-se/upgrade/add-quicklink-cascade.sql @@ oracle-se/6.5.0-6.5.1/add-quicklink-cascade.sql

View File

@ -23,6 +23,6 @@
@@ ../oracle-se/upgrade/6.6.0-6.6.1/upd_nav_tree_portlet.sql @@ oracle-se/6.6.0-6.6.1/upd_nav_tree_portlet.sql
@@ ../oracle-se/upgrade/6.6.0-6.6.1/upd_acs_objects.sql @@ oracle-se/6.6.0-6.6.1/upd_acs_objects.sql
@@ ../oracle-se/upgrade/6.6.0-6.6.1/upd_application_tables.sql @@ oracle-se/6.6.0-6.6.1/upd_application_tables.sql

View File

@ -0,0 +1,28 @@
--
-- Copyright (C) 2011 Peter Boy. All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $Id: oracle-se--6.6.1-6.6.2.sql $
-- Navigation is now initialized as a legacy free type of application
-- NavigationDirectoryPortlet) to ccm-ldn-navigation because it depends on
-- navigation and was misplaced there (generating horizontal dependencies).
@@ default/6.6.1-6.6.2/remove_legacy_entries.sql
-- @@ ../oracle-se/upgrade/6.6.0-6.6.1/upd_acs_objects.sql
-- @@ ../oracle-se/upgrade/6.6.0-6.6.1/upd_application_tables.sql

View File

@ -1,4 +1,4 @@
begin; begin;
\i ../postgres/upgrade/create-portlet-object-list.sql \i postgres/1.4.1-1.4.2/create-portlet-object-list.sql
\i ../postgres/upgrade/create-portlet-item-list.sql \i postgres/1.4.1-1.4.2/create-portlet-item-list.sql
commit; commit;

View File

@ -1,5 +1,5 @@
begin; begin;
\i ../postgres/upgrade/add-template_mapping_id.sql \i postgres/1.4.2-1.4.3/add-template_mapping_id.sql
\i ../postgres/upgrade/rename-use-context.sql \i postgres/1.4.2-1.4.3/rename-use-context.sql
\i ../postgres/upgrade/add-new-use-context.sql \i postgres/1.4.2-1.4.3/add-new-use-context.sql
commit; commit;

View File

@ -1,3 +1,3 @@
begin; begin;
\i ../postgres/upgrade/add-quicklink-cascade.sql \i postgres/6.5.0-6.5.1/add-quicklink-cascade.sql
commit; commit;

View File

@ -24,8 +24,8 @@
begin; begin;
\i ../postgres/upgrade/6.6.0-6.6.1/upd_nav_tree_portlet.sql \i postgres/6.6.0-6.6.1/upd_nav_tree_portlet.sql
\i ../postgres/upgrade/6.6.0-6.6.1/upd_acs_objects.sql \i postgres/6.6.0-6.6.1/upd_acs_objects.sql
\i ../postgres/upgrade/6.6.0-6.6.1/upd_application_tables.sql \i postgres/6.6.0-6.6.1/upd_application_tables.sql
commit; commit;

View File

@ -0,0 +1,31 @@
--
-- Copyright (C) 2011 Peter Boy. All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public License
-- as published by the Free Software Foundation; either version 2.1 of
-- the License, or (at your option) any later version.
--
-- This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with this library; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
--
-- $Id: postgres-6.6.1-6.6.2.sql $
-- Navigation is now initialized as a legacy free type of application
-- NavigationDirectoryPortlet) to ccm-ldn-navigation because it depends on
-- navigation and was misplaced there (generating horizontal dependencies).
begin;
\i default/6.6.1-6.6.2/remove_legacy_entries.sql
-- \i ../postgres/upgrade/6.6.0-6.6.1/upd_acs_objects.sql
-- \i ../postgres/upgrade/6.6.0-6.6.1/upd_application_tables.sql
commit;

View File

@ -16,4 +16,7 @@
<version from="6.6.0" to="6.6.1"> <version from="6.6.0" to="6.6.1">
<script sql="ccm-ldn-navigation/upgrade/::database::-6.6.0-6.6.1.sql"/> <script sql="ccm-ldn-navigation/upgrade/::database::-6.6.0-6.6.1.sql"/>
</version> </version>
<version from="6.6.1" to="6.6.2">
<script sql="ccm-ldn-navigation/upgrade/::database::-6.6.1-6.6.2.sql"/>
</version>
</upgrade> </upgrade>

View File

@ -18,21 +18,14 @@
package com.arsdigita.london.navigation; package com.arsdigita.london.navigation;
// same package
// import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.kernel.ACSObjectInstantiator;
import com.arsdigita.kernel.Kernel; import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.KernelExcursion; import com.arsdigita.kernel.KernelExcursion;
import com.arsdigita.loader.PackageLoader; import com.arsdigita.loader.PackageLoader;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.runtime.ScriptContext; import com.arsdigita.runtime.ScriptContext;
import com.arsdigita.util.UncheckedWrapperException; import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.util.parameter.Parameter; import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.StringParameter; import com.arsdigita.util.parameter.StringParameter;
import com.arsdigita.web.Application; import com.arsdigita.web.Application;
import com.arsdigita.web.ApplicationSetup;
import com.arsdigita.web.ApplicationType; import com.arsdigita.web.ApplicationType;
import com.arsdigita.london.navigation.portlet.ObjectListPortlet; import com.arsdigita.london.navigation.portlet.ObjectListPortlet;
@ -73,6 +66,7 @@ public class Loader extends PackageLoader {
} }
/** /**
* Run script invoked by com.arsdigita.packing loader script.
* *
* @param ctx * @param ctx
*/ */
@ -81,11 +75,12 @@ public class Loader extends PackageLoader {
public void excurse() { public void excurse() {
setEffectiveParty(Kernel.getSystemParty()); setEffectiveParty(Kernel.getSystemParty());
loadNavigationApplicationType();
setupNavigation(); setupNavigation();
Loader.loadObjectListPortlet();
Loader.loadItemListPortlet();
NavigationTreePortlet.loadPortletType();
loadItemListPortlet();
loadObjectListPortlet();
NavigationTreePortlet.loadPortletType();
try { try {
setupTemplates(); setupTemplates();
@ -96,7 +91,66 @@ public class Loader extends PackageLoader {
}.run(); }.run();
} }
// ////////////////////////////////////////////////////////////////////////
//
// S e t u p o f a p p l i c a t i o n t y p e s
//
// ////////////////////////////////////////////////////////////////////////
/**
* Creates a Navigation ApplicationType as a legacy-free type of application,
* ie loads the class definition into persistent storage (application_types).
*/
private void loadNavigationApplicationType() {
// NOTE: The title "Navigation" is used to retrieve the application's
// name to determine the location of xsl files (by url-izing it). So
// DON'T modify it without synchronizing web directory tree accordingly!
ApplicationType type =
new ApplicationType( "Navigation",
Navigation.BASE_DATA_OBJECT_TYPE );
type.setDescription("A category based navigation system.");
}
/**
* Creates ItemListPortlet portlet type, ie loads the class definition
* into persistent storage (table application_types).
*/
public static void loadItemListPortlet() {
PortletType type = PortletType
.createPortletType("Navigation Content Item List",
PortletType.WIDE_PROFILE,
ItemListPortlet.BASE_DATA_OBJECT_TYPE);
type.setDescription("Displays a list of content items");
}
/**
* Creates ObjectListPortlet portlet type, ie loads the class definition
* into persistent storage (table application_types).
*/
public static void loadObjectListPortlet() {
PortletType type = PortletType
.createPortletType("Navigation Object List",
PortletType.WIDE_PROFILE,
ObjectListPortlet.BASE_DATA_OBJECT_TYPE);
type.setDescription("Displays a list of objects");
}
// ////////////////////////////////////////////////////////////////////////
//
// S e t u p o f N A V I G A T I O N i n s t a n c e s
//
// ////////////////////////////////////////////////////////////////////////
/**
* Creating a default navigation instance at address /navigation/
*
*/
public void setupNavigation() { public void setupNavigation() {
/*
ApplicationSetup setup = new ApplicationSetup(s_log); ApplicationSetup setup = new ApplicationSetup(s_log);
setup.setApplicationObjectType( setup.setApplicationObjectType(
@ -112,12 +166,13 @@ public class Loader extends PackageLoader {
}); });
ApplicationType type = setup.run(); ApplicationType type = setup.run();
type.save(); type.save();
*/
Navigation app = (Navigation) Navigation app = (Navigation)
Application.createApplication(type, Application.createApplication(Navigation.BASE_DATA_OBJECT_TYPE,
"navigation", "navigation",
"Navigation Control Center", "Navigation Control Center",
null); null);
app.setDescription("The default ccm-navigation instance.");
app.save(); app.save();
} }
@ -165,20 +220,4 @@ public class Loader extends PackageLoader {
template = templates.readLine(); template = templates.readLine();
} }
} }
public static void loadItemListPortlet() {
PortletType type = PortletType
.createPortletType("Navigation Object List",
PortletType.WIDE_PROFILE,
ObjectListPortlet.BASE_DATA_OBJECT_TYPE);
type.setDescription("Displays a list of objects");
}
public static void loadObjectListPortlet() {
PortletType type = PortletType
.createPortletType("Navigation Content Item List",
PortletType.WIDE_PROFILE,
ItemListPortlet.BASE_DATA_OBJECT_TYPE);
type.setDescription("Displays a list of content items");
}
} }

View File

@ -44,7 +44,8 @@ import org.apache.log4j.Logger;
/** /**
* This generate a list of all live content items which: * This generate a list of all live content items which:
* <ul> * <ul>
* <li> when viewing an item: are in first category assigned to the the item currently viewed, including the item currently viewed * <li> when viewing an item: are in first category assigned to the the item
* currently viewed, including the item currently viewed
* <li> or, when viewing a category: are in the category currently viewed * <li> or, when viewing a category: are in the category currently viewed
* </ul> * </ul>
* The list is split in sub-lists, one for each content type. * The list is split in sub-lists, one for each content type.

View File

@ -0,0 +1,18 @@
table.categoryPanel {
width: 100%;
}
table.categoryPanel tr {
vertical-align: top;
}
table.categoryPanel tr td.tree {
background-color: rgb(192,192,192);
border-right: 1px solid black;
whitespace: nowrap;
}
table.categoryPanel tr td.body {
background-color: rgb(255,255,255);
}

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:categoryPanel">
<table class="categoryPanel">
<tr>
<td class="tree">
<xsl:apply-templates select="bebop:tree"/>
</td>
<td class="details">
<xsl:if test="bebop:form[@name='categoryAdd']">
<h3>Add template</h3>
<xsl:apply-templates select="bebop:form[@name='categoryAdd']"/>
<hr/>
</xsl:if>
<xsl:if test="bebop:form[@name='category']">
<h3>Assigned templates</h3>
<xsl:apply-templates select="bebop:form[@name='category']"/>
<hr/>
</xsl:if>
<xsl:if test="nav:quickLinkPanel">
<h3>Quick links</h3>
<xsl:apply-templates select="nav:quickLinkPanel"/>
<hr/>
</xsl:if>
</td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,22 @@
ul.navCategoryPath {
}
ul.navCategoryHierarchy {
}
ul.navCategoryMenu {
}
ul.navCategoryChildren {
}
ul.navCategorySiblings {
}
ul.navCategoryTopLevel {
}
ul.navCategoryRoot {
}

View File

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:categoryPath">
<h3>Path</h3>
<ul class="navCategoryPath">
<xsl:for-each select="nav:category">
<li><xsl:apply-templates select="." mode="item"/></li>
<xsl:if test="position() != last()">
<li><span>--&gt;</span></li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
<xsl:template match="nav:categoryMenu">
<h3>Menu</h3>
<ul class="navCategoryMenu">
<xsl:apply-templates select="nav:category" mode="list"/>
</ul>
</xsl:template>
<xsl:template match="nav:categoryHierarchy">
<h3>Hierarchy</h3>
<!-- XXX items too -->
<ul class="navCategoryHierarchy">
<xsl:apply-templates select="nav:category" mode="list"/>
</ul>
</xsl:template>
<xsl:template match="nav:categoryChildren">
<h3>Children</h3>
<ul class="navCategoryChildren">
<xsl:apply-templates select="nav:category" mode="list"/>
</ul>
</xsl:template>
<xsl:template match="nav:categorySiblings">
<h3>Siblings</h3>
<ul class="navCategorySiblings">
<xsl:apply-templates select="nav:category" mode="list"/>
</ul>
</xsl:template>
<xsl:template match="nav:categoryTopLevel">
<h3>Top Level</h3>
<ul class="navCategoryTopLevel">
<xsl:apply-templates select="nav:category" mode="list"/>
</ul>
</xsl:template>
<xsl:template match="nav:categoryRoot">
<h3>Root</h3>
<ul class="navCategoryRoot">
<xsl:apply-templates select="nav:category" mode="item"/>
</ul>
</xsl:template>
<xsl:template match="nav:category">
<xsl:apply-templates select="." mode="item"/>
</xsl:template>
<xsl:template match="nav:category" mode="item">
<a class="navCategory" href="{@url}" title="{@description}"><xsl:value-of select="@title"/></a>
</xsl:template>
<xsl:template match="nav:category" mode="list">
<li>
<xsl:apply-templates select="." mode="item"/>
<xsl:if test="nav:category">
<ul>
<xsl:apply-templates select="nav:category" mode="list"/>
</ul>
</xsl:if>
</li>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:greetingItem">
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1 @@
@import(category.css)

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<!--<xsl:template name="contentLinks">-->
<xsl:template match="nav:simpleObjectList">
<xsl:for-each select="nav:objectList">
<div id="contentLinks">
<xsl:for-each select="nav:item">
<a>
<xsl:attribute name="href"><xsl:value-of select="nav:path" /></xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="nav:attribute[@name='displayName']" /></xsl:attribute>
<xsl:value-of select="nav:attribute[@name='displayName']" />
</a>
<span class="hide">|</span>
</xsl:for-each>
</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,25 @@
table.quickLinkForm {
width: 100%;
}
table.quickLinkForm thead tr {
background-color: rgb(68,68,68);
color: rgb(255,255,255);
border-bottom: 2px solid black;
}
table.quickLinkForm tbody th {
text-align: right;
}
table.quickLinkForm tfoot tr {
background-color: rgb(192,192,192);
color: rgb(0,0,0);
border-top: 1px solid black;
}
table.quickLinkForm tbody tr.even {
background-color: rgb(212,212,212);
color: rgb(0,0,0);
}

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:quickLinkForm">
<table class="quickLinkForm">
<thead>
<tr>
<th colspan="2">Quick link properties</th>
</tr>
</thead>
<tbody>
<xsl:apply-templates select="bebop:formWidget[@type='hidden']"/>
<xsl:for-each select="*[not(name() = 'bebop:formWidget' and (@type='submit' or @type='hidden'))]">
<xsl:variable name="class">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:text>even</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>odd</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<tr class="{$class}">
<th align="right">
<xsl:if test="@metadata.label">
<xsl:value-of select="@metadata.label"/>:
</xsl:if>
</th>
<td><xsl:apply-templates select="."/></td>
</tr>
</xsl:for-each>
</tbody>
<tfoot>
<tr>
<td></td>
<td><xsl:apply-templates select="bebop:formWidget[@type='submit']"/></td>
</tr>
</tfoot>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,17 @@
table.quickLinkListing {
width: 100%;
}
table.quickLinkListing tr.even {
background-color: rgb(212,212,212);
color: rgb(0,0,0);
}
table.quickLinkListing tr.odd {
background-color: rgb(255,255,255);
color: rgb(0,0,0);
}
table.quickLinkListing tr td.icon {
width: 10%;
}

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:quickLinkListing">
<table class="quickLinkListing">
<xsl:for-each select="nav:object">
<xsl:variable name="class">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<xsl:text>even</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>odd</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<tr class="{$class}">
<td rowspan="3" class="icon">
<xsl:if test="nav:icon">
<img src="{nav:icon}" border="1"/>
</xsl:if>
</td>
<td colspan="2"><a href="{nav:url}"><xsl:value-of select="nav:title"/></a></td>
</tr>
<tr class="{$class}">
<td colspan="2"><xsl:value-of select="nav:description"/></td>
</tr>
<tr class="{$class}">
<td colspan="2">
<xsl:choose>
<xsl:when test="nav:cascade = 'true'">
<xsl:text>Cascades to subcategories</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Displayed for this category only</xsl:text>
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
<tr class="{$class}">
<td>
<a href="{nav:action[@name='edit']/@url}"><img src="/__ccm__/static/cms/admin/action-group/action-generic.png" width="14" height="14" border="0"/></a>
<a href="{nav:action[@name='edit']/@url}">Edit</a>
</td>
<td>
<a href="{nav:action[@name='delete']/@url}"><img src="/__ccm__/static/cms/admin/action-group/action-delete.png" width="14" height="14" border="0"/></a>
<a href="{nav:action[@name='delete']/@url}">Delete</a>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:quickLinkPanel">
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:template match="nav:quickLinks">
<table class="quickLinksImportant">
<xsl:for-each select="nav:quickLink[nav:icon]">
<tr>
<td rowspan="2" class="icon">
<xsl:if test="nav:icon">
<img src="{nav:icon}" border="1"/>
</xsl:if>
</td>
<td><a href="{nav:url}"><xsl:value-of select="nav:title"/></a></td>
</tr>
<tr>
<td><xsl:value-of select="nav:description"/></td>
</tr>
</xsl:for-each>
</table>
<table class="quickLinksNormal">
<xsl:for-each select="nav:quickLink[nav:icon]">
<tr>
<td><a href="{nav:url}"><xsl:value-of select="nav:title"/></a></td>
</tr>
<tr>
<td><xsl:value-of select="nav:description"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,4 @@
@import url(../lib/category-panel.css);
@import url(../lib/quick-link-listing.css);
@import url(../lib/quick-link-form.css);

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:import href="../../../packages/bebop/xsl/bebop.xsl"/>
<xsl:import href="../../../packages/ui/xsl/ui.xsl"/>
<xsl:import href="../lib/category-panel.xsl"/>
<xsl:import href="../lib/quick-link-form.xsl"/>
<xsl:import href="../lib/quick-link-panel.xsl"/>
<xsl:import href="../lib/quick-link-listing.xsl"/>
<xsl:output method="html"/>
</xsl:stylesheet>

View File

@ -0,0 +1,141 @@
<!DOCTYPE stylesheet [
<!ENTITY nbsp "&#160;" ><!-- no-break space = non-breaking space, U+00A0 ISOnum -->
]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
version="1.0">
<xsl:template match="cms:contentLists">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="cms:contentList">
<p>
ContentList for <xsl:value-of select="@@type" /> (default template).
</p>
<!-- FIXME: hardcode this for categories -->
<xsl:variable name="dispatcher-prefix">/ccm</xsl:variable>
<table border="1">
<!-- display headers -->
<xsl:for-each select="cms:item[position()=1]">
<tr>
<xsl:for-each select="*">
<xsl:choose>
<xsl:when test="name() = 'creationDate'">
</xsl:when>
<xsl:when test="name() = 'type'">
</xsl:when>
<xsl:when test="name() = 'name'">
</xsl:when>
<xsl:when test="name() = 'language'">
</xsl:when>
<xsl:when test="name() = 'objectType'">
</xsl:when>
<xsl:when test="name() = 'fileAttachments'">
</xsl:when>
<xsl:when test="name() = 'images'">
</xsl:when>
<xsl:when test="name() = 'imageCaptions'">
</xsl:when>
<xsl:when test="name() = 'textAsset'">
</xsl:when>
<xsl:when test="name() = 'links'">
</xsl:when>
<xsl:otherwise>
<th><xsl:value-of select="name()" /></th>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<th>Text Asset</th>
<th>File attachment(s)</th>
<th>Image(s)</th>
<th>Link(s)</th>
</tr>
</xsl:for-each>
<!-- display rows -->
<xsl:for-each select="cms:item">
<tr>
<xsl:for-each select="*">
<xsl:choose>
<xsl:when test="name() = 'creationDate'">
</xsl:when>
<xsl:when test="name() = 'type'">
</xsl:when>
<xsl:when test="name() = 'name'">
</xsl:when>
<xsl:when test="name() = 'language'">
</xsl:when>
<xsl:when test="name() = 'objectType'">
</xsl:when>
<xsl:when test="name() = 'fileAttachments'">
</xsl:when>
<xsl:when test="name() = 'images'">
</xsl:when>
<xsl:when test="name() = 'imageCaptions'">
</xsl:when>
<xsl:when test="name() = 'textAsset'">
</xsl:when>
<xsl:when test="name() = 'links'">
</xsl:when>
<xsl:otherwise>
<td><xsl:apply-templates /></td>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<td>
<xsl:for-each select="textAsset">
<xsl:value-of select="content" disable-output-escaping="yes" />
</xsl:for-each>
</td>
<td>
<xsl:for-each select="fileAttachments">
<a>
<xsl:attribute name="href"><xsl:value-of select="$dispatcher-prefix"/>/cms-service/stream/asset/?asset_id=<xsl:value-of select="id" /></xsl:attribute>
<xsl:value-of select="description" />
</a><br />
</xsl:for-each>
</td>
<td>
<xsl:for-each select="imageCaptions">
<a>
<xsl:attribute name="href"><xsl:value-of select="$dispatcher-prefix"/>/cms-service/stream/image/?image_id=<xsl:value-of select="imageAsset/id" /></xsl:attribute>
<xsl:value-of select="caption" />
</a><br />
</xsl:for-each>
<xsl:for-each select="images">
<a>
<xsl:attribute name="href"><xsl:value-of select="$dispatcher-prefix"/>/cms-service/stream/image/?image_id=<xsl:value-of select="id" /></xsl:attribute>
<xsl:value-of select="description" />
</a><br />
</xsl:for-each>
</td>
<td>
<xsl:for-each select="links[targetType='externalLink']">
<a>
<xsl:attribute name="href"><xsl:value-of select="targetURI" /></xsl:attribute>
<xsl:value-of select="linkTitle" /> : <xsl:value-of select="linkDescription" />
</a><br />
</xsl:for-each>
<xsl:for-each select="links[targetType='internalLink']">
<a>
<xsl:attribute name="href">/redirect/?oid=<xsl:value-of select="targetItem/@@oid" /></xsl:attribute>
<xsl:value-of select="linkTitle" /> : <xsl:value-of select="linkDescription" />
</a><br />
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:nav="http://ccm.redhat.com/london/navigation"
version="1.0">
<xsl:import href="../../../packages/bebop/xsl/bebop.xsl"/>
<xsl:import href="../../../packages/ui/xsl/ui.xsl"/>
<xsl:import href="../lib/category.xsl"/>
<xsl:import href="../lib/quick-links.xsl"/>
<xsl:import href="../lib/greeting-item.xsl"/>
<xsl:import href="../lib/object-list.xsl"/>
<xsl:output method="html"/>
<xsl:template name="bebop:pageCSS">
<xsl:call-template name="bebop:pageCSSMain"/>
<xsl:call-template name="nav:pageCSSMain"/>
</xsl:template>
<xsl:template name="nav:pageCSSMain">
<link href="/themes/heirloom/apps/navigation/lib/index.css" rel="stylesheet" type="text/css"/>
</xsl:template>
</xsl:stylesheet>