From 96e7e1fa4896863480a5fd6709e14cff6a591696 Mon Sep 17 00:00:00 2001 From: pb Date: Wed, 29 Feb 2012 01:09:21 +0000 Subject: [PATCH] 1. Teil portalserver auf legacy free migrieren, diverse Reste. git-svn-id: https://svn.libreccm.org/ccm/trunk@1526 8810af33-2d31-482b-a856-94f89814c4df --- .../arsdigita/ui/admin/AdminConstants.java | 8 +- .../com/arsdigita/ui/admin/AdminServlet.java | 24 +-- ...ava => ApplicationsAdministrationTab.java} | 4 +- .../arsdigita/ui/admin/UserBrowsePane.java | 4 +- .../ECMPresentationManager.java.nolongerInUse | 73 --------- .../com/arsdigita/portalserver/Loader.java | 149 +++--------------- .../arsdigita/portalserver/PortalServlet.java | 21 ++- .../arsdigita/portalserver/PortalSite.java | 139 +++++++++++----- .../portalserver/ui/PortalHomePage.java | 43 +++-- .../web/WEB-INF/web.ccm-portalserver.xml | 18 +++ .../personal-portal-creator/xsl/index.xsl | 2 +- .../apps/personal-portal/xsl/index.xsl | 2 +- .../heirloom/apps/portal-admin/xsl/index.xsl | 2 +- .../apps/portal-archive/xsl/index.xsl | 2 +- .../heirloom/apps/portal-create/xsl/index.xsl | 2 +- .../{portalsite => portal-site}/xsl/index.xsl | 2 +- .../apps/portal-sitemap/xsl/index.xsl | 2 +- ccm-sci-bundle/bundles/devel/cfg/project.xml | 2 +- 18 files changed, 216 insertions(+), 283 deletions(-) rename ccm-core/src/com/arsdigita/ui/admin/{SitemapAdministrationTab.java => ApplicationsAdministrationTab.java} (95%) delete mode 100644 ccm-portalserver/src/com/arsdigita/portalserver/ECMPresentationManager.java.nolongerInUse create mode 100644 ccm-portalserver/web/WEB-INF/web.ccm-portalserver.xml rename ccm-portalserver/web/themes/heirloom/apps/{portalsite => portal-site}/xsl/index.xsl (62%) diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java b/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java index 4730ef762..e753420a7 100755 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminConstants.java @@ -63,8 +63,8 @@ interface AdminConstants { (new GlobalizedMessage("ui.admin.tab.group.title", BUNDLE_NAME)); - Label SITEMAP_TAB_TITLE = new Label - (new GlobalizedMessage("ui.admin.tab.sitemap.title", + Label APPLICATIONS_TAB_TITLE = new Label + (new GlobalizedMessage("ui.admin.tab.applications.title", BUNDLE_NAME)); GlobalizedMessage USER_NAVBAR_TITLE = @@ -104,8 +104,8 @@ interface AdminConstants { BigDecimalParameter GROUP_ID_PARAM = new BigDecimalParameter("group_id"); - BigDecimalParameter SITEMAP_ID_PARAM = - new BigDecimalParameter("sitemap_id"); + BigDecimalParameter APPLICATIONS_ID_PARAM = + new BigDecimalParameter("application_id"); BigDecimalParameter USER_ID_PARAM = new BigDecimalParameter("user_id"); diff --git a/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java b/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java index e9631b412..31c2bc30a 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java +++ b/ccm-core/src/com/arsdigita/ui/admin/AdminServlet.java @@ -85,20 +85,6 @@ public class AdminServlet extends BaseApplicationServlet addPage("/", buildAdminIndexPage()); // index page at address ~/ds // addPage("/index.jsp", buildIndexPage()); // index page at address ~/ds - // addPage("/log4j", buildLog4jPage()); // Logger Adjuster at addr. ~/ds/log4j - // addPage("/config", buildConfigPage()); // config browser @ ~/ds/config - // cache table browser @ ~/ds/cache-table - // addPage("/cache-table", buildCacheTablePage()); - - // XXXX!! - // QueryLog is a class of its own in webdevsupport, based upon - // dispatcher.Disp and prints out all queries in a request - // put("query-log", new QueryLog()); - - // addPage("/request-info", buildRequestInfoPage()); - // addPage("/query-info", buildQueryInfoPage()); - // addPage("/query-plan", buildQueryPlanPage()); - } @@ -188,7 +174,7 @@ public class AdminServlet extends BaseApplicationServlet p.addGlobalStateParam(USER_ID_PARAM); p.addGlobalStateParam(GROUP_ID_PARAM); - // p.addGlobalStateParam(SITEMAP_ID_PARAM); + // p.addGlobalStateParam(APPLICATIONS_ID_PARAM); /** * Create User split panel. @@ -217,8 +203,8 @@ public class AdminServlet extends BaseApplicationServlet /* * Create group administration panel */ - // SitemapAdministrationTab sitemapAdministrationTab = - // new SitemapAdministrationTab(); + // ApplicationsAdministrationTab appsAdministrationTab = + // new ApplicationsAdministrationTab(); // Create the Admin's page tab bar, currently 2 elements: user & groups TabbedPane tb = new TabbedPane(); @@ -226,11 +212,11 @@ public class AdminServlet extends BaseApplicationServlet tb.addTab(USER_TAB_TITLE, userSplitPanel); tb.addTab(GROUP_TAB_TITLE, groupAdministrationTab); - // tb.addTab(SITEMAP_TAB_TITLE, sitemapAdministrationTab); + // tb.addTab(APPLICATIONS_TAB_TITLE, appsAdministrationTab); browsePane.setTabbedPane(tb); browsePane.setGroupAdministrationTab(groupAdministrationTab); - // browsePane.setSitemapAdministrationTab(sitemapAdministrationTab); + // browsePane.setAppsAdministrationTab(appsAdministrationTab); p.add(tb); p.lock(); diff --git a/ccm-core/src/com/arsdigita/ui/admin/SitemapAdministrationTab.java b/ccm-core/src/com/arsdigita/ui/admin/ApplicationsAdministrationTab.java similarity index 95% rename from ccm-core/src/com/arsdigita/ui/admin/SitemapAdministrationTab.java rename to ccm-core/src/com/arsdigita/ui/admin/ApplicationsAdministrationTab.java index 2ec6c6dfb..d54f1f901 100644 --- a/ccm-core/src/com/arsdigita/ui/admin/SitemapAdministrationTab.java +++ b/ccm-core/src/com/arsdigita/ui/admin/ApplicationsAdministrationTab.java @@ -20,7 +20,7 @@ import java.math.BigDecimal; * * @author pb */ -public class SitemapAdministrationTab extends BoxPanel +public class ApplicationsAdministrationTab extends BoxPanel implements AdminConstants, ChangeListener { private GlobalizedMessage m_title; @@ -29,7 +29,7 @@ public class SitemapAdministrationTab extends BoxPanel /** * Constructor */ - public SitemapAdministrationTab() { + public ApplicationsAdministrationTab() { // m_title = "TEST für ein neues Pannel"; setClassAttr("sidebarNavPanel"); diff --git a/ccm-core/src/com/arsdigita/ui/admin/UserBrowsePane.java b/ccm-core/src/com/arsdigita/ui/admin/UserBrowsePane.java index 5c85023ac..e3bc80d51 100755 --- a/ccm-core/src/com/arsdigita/ui/admin/UserBrowsePane.java +++ b/ccm-core/src/com/arsdigita/ui/admin/UserBrowsePane.java @@ -102,7 +102,7 @@ class UserBrowsePane extends SegmentedPanel private Component m_extremeActionPanel; private Component m_userDeleteFailedPanel; private GroupAdministrationTab m_groupAdministrationTab; - private SitemapAdministrationTab m_sitemapAdministrationTab; + private ApplicationsAdministrationTab m_sitemapAdministrationTab; private TabbedPane m_tabbedPane; private List m_groupList = null; @@ -556,7 +556,7 @@ class UserBrowsePane extends SegmentedPanel m_groupAdministrationTab = groupAdministrationTab; } - public void setSitemapAdministrationTab(SitemapAdministrationTab + public void setSitemapAdministrationTab(ApplicationsAdministrationTab sitemapAdministrationTab) { m_sitemapAdministrationTab = sitemapAdministrationTab; } diff --git a/ccm-portalserver/src/com/arsdigita/portalserver/ECMPresentationManager.java.nolongerInUse b/ccm-portalserver/src/com/arsdigita/portalserver/ECMPresentationManager.java.nolongerInUse deleted file mode 100644 index 29f060c3e..000000000 --- a/ccm-portalserver/src/com/arsdigita/portalserver/ECMPresentationManager.java.nolongerInUse +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2002-2004 Red Hat Inc. 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 - * - */ -package com.arsdigita.portalserver; - -import com.arsdigita.bebop.page.PageTransformer; -import com.arsdigita.persistence.*; -import com.arsdigita.kernel.*; -import com.arsdigita.sitenode.*; -import com.arsdigita.web.*; -import java.util.*; - -/** - * ECMPresentationManager - * - * @author rhs@mit.edu - * @version $Revision: #5 $ $Date: 2004/08/17 $ - * @version $Id: ECMPresentationManager.java pboy $ - **/ - -public class ECMPresentationManager extends PageTransformer { - - - private static Map m_sheets = new HashMap(); - - protected synchronized Stylesheet findStylesheet(SiteNode node, Locale l, - String outputType) { - TransactionContext ctx = - SessionManager.getSession().getTransactionContext(); - - boolean commit = false; - if (!ctx.inTxn()) { - ctx.beginTxn(); - commit = true; - } - - String key = l + "." + outputType; - - Stylesheet result = (Stylesheet) m_sheets.get(key); - - if (result == null || !result.isValid()) { - ApplicationType type = - ApplicationType.retrieveApplicationTypeForApplication( - PortalSite.BASE_DATA_OBJECT_TYPE); - PackageType pkg = type.getPackageType(); - result = pkg.getStylesheet(l, outputType); - result.disconnect(); - m_sheets.put(key, result); - } - - if (commit) { - ctx.commitTxn(); - } - - return result; - } - -} diff --git a/ccm-portalserver/src/com/arsdigita/portalserver/Loader.java b/ccm-portalserver/src/com/arsdigita/portalserver/Loader.java index ab6f7262d..c361d163e 100644 --- a/ccm-portalserver/src/com/arsdigita/portalserver/Loader.java +++ b/ccm-portalserver/src/com/arsdigita/portalserver/Loader.java @@ -43,7 +43,6 @@ import com.arsdigita.portalserver.ui.admin.PortalSiteMap; import com.arsdigita.runtime.*; import com.arsdigita.web.Application; -import com.arsdigita.web.ApplicationSetup; import com.arsdigita.web.ApplicationType; // USED BY loadSubsite() which es meant to replace the applications mounted @@ -138,81 +137,27 @@ public class Loader extends PackageLoader { */ private void loadPortalSiteApplicationType() { - // Step 1: Create an application type for portalserver - // Try: new style legacy free application - // ApplicationType type = - // new ApplicationType("Portal Site", // creates portalsite as - // // module name for XSL - // PortalSite.BASE_DATA_OBJECT_TYPE ); - // type.setDescription - // ("A Portal Site is a center for content aggregation. It usually" + - // "has its own set of applications, such as a discussion forum" + - // "and content items, as well as a list of participants."); - -/* s_log.info("PackageType 'portalsite' is not installed. " + - "Installing now..."); - - // Stylesheet stylesheet = Stylesheet.createStylesheet - // ("/packages/portalserver/xsl/portalserver.xsl"); - - PackageType packageType = PackageType.create - ("portalsite", "PortalSite", "PortalSites", - "http://arsdigita.com/portalsite"); - // packageType.addStylesheet(stylesheet); - packageType.setDispatcherClass - ("com.arsdigita.portalserver.ui.PortalDispatcher"); - packageType.save(); -*/ - //Step 2: Create themes - // buildDefaultThemes(); - - // Step 3: Create legacy compatible ApplicationType - ApplicationType type = ApplicationType.createApplicationType( + /* First try: create a new style, legacy compatible application */ +/* ApplicationType type = ApplicationType.createApplicationType( "portalsite", "Portal Site", PortalSite.BASE_DATA_OBJECT_TYPE); - type.setDescription - ("A Portal Site is a center for content aggregation. It usually" + - "has its own set of applications, such as a discussion forum " + - "and content items, as well as a list of participants."); // Current code requires an apps specific dispatcher class. Has to be // modified to be able to create a legacy free app type. type.setDispatcherClass ("com.arsdigita.portalserver.ui.PortalDispatcher"); - -/* - ApplicationSetup setup = new ApplicationSetup(s_log); - - setup.setApplicationObjectType(PortalSite.BASE_DATA_OBJECT_TYPE); - // setup.setPackageType(packageType); - setup.setKey("portalsite"); - setup.setTitle("Portal Site"); - setup.setDescription - ("A Portal Site is a center for content aggregation. It usually" + - "has its own set of applications, such as a discussion forum" + - "and content items, as well as a list of participants."); - setup.setDispatcherClass - ("com.arsdigita.portalserver.ui.PortalDispatcher"); - setup.setPortalApplication(false); - setup.setInstantiator(new ACSObjectInstantiator() { - @Override - protected DomainObject doNewInstance(DataObject dataObject) { - return new PortalSite(dataObject); - } - }); - setup.run(); */ - /* Should not be requiered here - DomainObjectFactory.registerInstantiator( - Role.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() { - public DomainObject doNewInstance(DataObject dataObject) { - return new Role(dataObject); - } - } - ); - * - */ + + // Try: new style legacy free application + ApplicationType type = new + ApplicationType("Portal Site", // title + PortalSite.BASE_DATA_OBJECT_TYPE ); + type.setDescription + ("A Portal Site is a center for content aggregation. It usually" + + "has its own set of applications, such as a discussion forum " + + "and content items, as well as a list of participants."); + type.save(); } /** @@ -294,27 +239,6 @@ public class Loader extends PackageLoader { // modified to be able to create a legacy free app type. type.setDispatcherClass ("com.arsdigita.portalserver.admin.ui.Dispatcher"); -/* - ApplicationSetup setup = new ApplicationSetup(s_log); - - setup.setApplicationObjectType(PSAdmin.BASE_DATA_OBJECT_TYPE); - setup.setTitle("Portal Server Site Administration"); - setup.setDescription("Displays common administration tasks."); - setup.setPortalApplication(false); - setup.setKey("portal-admin"); - // db based stylesheets no longer used. - // setup.setStylesheet("/packages/portalserver/xsl/portalserver.xsl"); - setup.setDispatcherClass("com.arsdigita.portalserver.admin.ui.Dispatcher"); - setup.setInstantiator(new ACSObjectInstantiator() { - @Override - protected DomainObject doNewInstance(DataObject dataObject) { - return new PSAdmin(dataObject); - } - }); - // setupAdminInstance(setup.run()); - setup.run(); - // setupPortalSiteAdminInstance(setup.run()) - */ } @@ -336,26 +260,6 @@ public class Loader extends PackageLoader { // modified to be able to create a legacy free app type. type.setDispatcherClass ("com.arsdigita.portalserver.ui.admin.PortalCreateDispatcher"); -/* - ApplicationSetup setup = new ApplicationSetup(s_log); - setup.setApplicationObjectType(PortalCreator.BASE_DATA_OBJECT_TYPE); - setup.setTitle("Portal Creator"); - setup.setDescription("Creates portals."); - setup.setWorkspaceApplication(false); - setup.setKey("portal-create"); -// setup.setStylesheet("/packages/portalserver/xsl/portalserver.xsl"); - setup.setDispatcherClass( - "com.arsdigita.portalserver.ui.admin.PortalCreateDispatcher"); - setup.setInstantiator(new ACSObjectInstantiator() { - @Override - protected DomainObject doNewInstance(DataObject dataObject) { - return new PortalCreator(dataObject); - } - }); - - setup.run(); - // return setup.run(); -*/ } @@ -492,26 +396,21 @@ public class Loader extends PackageLoader { // S e t u p o f P O R T A L a p p l i c a t i o n s // // //////////////////////////////////////////////////////////////////////// + + + /** + * Instantiate an application of type PortalSite with site wide administration + * tools. + */ private void setupAdminPortal() { - // First check, whether an instance of /administration / is already - // installed. - // Running in a Loader, this is just impossible. So we can create - // /administration/ immediately - // try { - // SiteNode sn = SiteNode.getSiteNode("/administration", false); - // if (!"administration".equals(sn.getName())) { - PortalSite ps = PortalSite.createPortalSite( - "administration", "Administration", null); - ps.setMission("Administration Portal"); - ps.save(); - // } - // } catch (DataObjectNotFoundException e) { - // Assert.fail(e.getMessage()); - // } - } + PortalSite ps = PortalSite.createPortalSite("administration", + "Administration", + null); + ps.setMission("Administration Portal"); + ps.save(); - /* FORMERLY admin.Initializer */ + } /** * Setup an PortalServer Administration Instance as legacy compatible diff --git a/ccm-portalserver/src/com/arsdigita/portalserver/PortalServlet.java b/ccm-portalserver/src/com/arsdigita/portalserver/PortalServlet.java index 8c6ccfca2..637775f82 100644 --- a/ccm-portalserver/src/com/arsdigita/portalserver/PortalServlet.java +++ b/ccm-portalserver/src/com/arsdigita/portalserver/PortalServlet.java @@ -38,6 +38,21 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; + +// //////////////////////////////////////////////////////////////////////////// +// +// UNKNOWN whether this is unfinished work in progress or really used in some +// way. +// +// Might be a first shot to replace ui.PortalDispatcher by a new legacy free +// servlet because it uses the same pages (PortalHomePage, PortalParticipants +// but additionally a PortalAdminPage (from package c.ad.ps.ui.admin) +// On the other hand this is the same as m_portalsiteAdminDispatcher of +// PortalDispatcher +// +// //////////////////////////////////////////////////////////////////////////// + + /** * * @author Justin Ross <jross@redhat.com> @@ -56,12 +71,12 @@ public class PortalServlet extends BaseApplicationServlet { private static Page s_adminPage = null; static { - TransactionContext ctx = SessionManager.getSession().getTransactionContext(); - ctx.beginTxn(); + // TransactionContext ctx = SessionManager.getSession().getTransactionContext(); + // ctx.beginTxn(); s_adminPage = new PortalAdminPage(); - ctx.commitTxn(); + // ctx.commitTxn(); } public void doService(HttpServletRequest sreq, diff --git a/ccm-portalserver/src/com/arsdigita/portalserver/PortalSite.java b/ccm-portalserver/src/com/arsdigita/portalserver/PortalSite.java index c20a85945..dd24a193b 100644 --- a/ccm-portalserver/src/com/arsdigita/portalserver/PortalSite.java +++ b/ccm-portalserver/src/com/arsdigita/portalserver/PortalSite.java @@ -45,6 +45,7 @@ import com.arsdigita.web.Application; import com.arsdigita.web.ApplicationCollection; import com.arsdigita.web.ApplicationType; +import com.arsdigita.web.URL; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; @@ -104,6 +105,10 @@ public class PortalSite extends Application { super(dataObject); } + /** + * + * Do we really need this when PortalSite is a new style application? + */ @Override protected void initialize() { super.initialize(); @@ -122,6 +127,14 @@ public class PortalSite extends Application { } } + /** + * + * @param urlName + * @param title + * @param parent + * @param inheritPermissions + * @return + */ public static PortalSite createPortalSite (String urlName, String title, PortalSite parent, boolean inheritPermissions) { @@ -147,7 +160,10 @@ public class PortalSite extends Application { /** - * Creates an Instance ot ApplicationType PortalSite as a legacy free + * Creates an Instance ot ApplicationType PortalSite + * Whether is is a legacy free or a legacy compatible application depends + * on the property of its application type. Nothing to adjust here for that. + * * application. * @param urlName * @param title @@ -158,19 +174,18 @@ public class PortalSite extends Application { String title, PortalSite parent) { - ApplicationType type = - ApplicationType.retrieveApplicationTypeForApplication - (BASE_DATA_OBJECT_TYPE); + ApplicationType type = ApplicationType + .retrieveApplicationTypeForApplication + (BASE_DATA_OBJECT_TYPE); + /* Uses class Application's create method. Type of created application + * depends on the type of ApplicationType */ PortalSite ps = (PortalSite) Application.createApplication - (type, urlName, title, parent); + (type, urlName, title, parent); ps.setUnarchived(); - ps.setDraft(false); - ps.setCreationDate(); - ps.setPersonalizable(false); return ps; @@ -217,30 +232,6 @@ public class PortalSite extends Application { return portalsiteCollection; } - /** - * - * @param siteNode - * @return Can return null. - */ -/* OBVIOUSLY NO LONGER USED - public static PortalSite retrievePortalSiteForSiteNode(SiteNode siteNode) { - DataQuery query = SessionManager.getSession().retrieveQuery - ("com.arsdigita.workspace.workspaceForSiteNodeID"); - - query.setParameter("siteNodeID", siteNode.getID()); - - PortalSite portalsite = null; - - if (query.next()) { - DataObject dataObject = (DataObject) query.get("workspace"); - portalsite = PortalSite.retrievePortalSite(dataObject); - } - - query.close(); - - return portalsite; - } -*/ // Can return null. public static PortalSite retrievePortalSite(BigDecimal id) { return (PortalSite) Application.retrieveApplication(id); @@ -445,15 +436,19 @@ public class PortalSite extends Application { return currentPortalSite; } - private static PortalSite - doGetCurrentPortalSite(HttpServletRequest request) { + /** + * + * @param request + * @return + */ + private static PortalSite doGetCurrentPortalSite(HttpServletRequest req) { // First, assume that the user is at a PortalSite already, // since we can save a query if we're right. This logic will // not make sense if we find that this method is called mostly // from sub applications of a portal site, since it incurs an // extra query in that case. - Application application = Application.getCurrentApplication(request); + Application application = Application.getCurrentApplication(req); if (application instanceof PortalSite) { return (PortalSite) application; @@ -472,6 +467,10 @@ public class PortalSite extends Application { } } + /** + * + * @return + */ public static PortalSiteCollection getRootPortalSites() { DataQuery query = SessionManager.getSession().retrieveQuery ("com.arsdigita.workspace.rootWorkspaces"); @@ -488,6 +487,10 @@ public class PortalSite extends Application { return psc; } + /** + * + * @return + */ public static PortalSiteCollection getAllRootPortalSites() { DataQuery query = SessionManager.getSession().retrieveQuery ("com.arsdigita.workspace.rootWorkspaces"); @@ -505,10 +508,18 @@ public class PortalSite extends Application { return new PortalSiteCollection(collection); } + /** + * + * @param portalsite + */ public void addRelatedPortalSite(PortalSite portalsite) { add("relatedWorkspace", portalsite); } + /** + * + * @param portalsite + */ public void removeRelatedPortalSite(PortalSite portalsite) { remove("relatedWorkspace", portalsite); } @@ -636,6 +647,10 @@ public class PortalSite extends Application { } } + /** + * + * @return + */ public PartyCollection getParticipants() { return new PartyCollection( ((DataAssociation) get("participants")).cursor()); @@ -768,7 +783,11 @@ public class PortalSite extends Application { remove("workspaceTab",ptab); } - // Can return null. + /** + * + * + * @return (Can return null.) + */ public PortalTabCollection getTabsForPortalSite() { DataAssociation association = (DataAssociation)get("workspaceTab"); @@ -918,6 +937,9 @@ public class PortalSite extends Application { return (Date)get("archiveDate"); } + /** + * + */ public void archive() { Party p; @@ -1022,6 +1044,12 @@ public class PortalSite extends Application { return result.listIterator(); } + /** + * + * @param ps + * @param user + * @return + */ public static PortalSite createSubPortal(PortalSite ps, User user) { String urlfrag = "U-" + user.getID().toString(); PortalSite psite = createPortalSite(urlfrag,ps.getDisplayName(),ps); @@ -1081,4 +1109,43 @@ public class PortalSite extends Application { return psite; } + /** + * Returns the path name of the location of the applications servlet/JSP. + * + * Application implementations may overwrite this method to provide an + * application specific location, especially if an application (module) is + * to be installed along with others in one context. + * + * If you install the module into its own context you may use a standard + * location. In most cases though all modules (applications) of an + * webapplication should be installed into one context. + * + * Frequently it is a symbolic name/path, which will be mapped in the web.xml + * to the real location in the file system. Example: + * + * applicationName-files + * com.arsdigita.web.ApplicationFileServlet + * + * template-path + * /templates/ccm-applicationName + * + * + * + * + * applicationName-files + * /ccm-applicationName/files/* + * + * + * NOTE: According to Servlet API the path always starts with a leading '/' + * and includes either the servlet name or a path to the servlet, but does + * not include any extra path information or a query string. Returns an + * empry string ("") is the servlet used was matched using the "/*" pattern. + * + * @return path name to the applications servlet/JSP + */ + @Override + public String getServletPath() { + return URL.SERVLET_DIR + "/portalsite"; + } + } diff --git a/ccm-portalserver/src/com/arsdigita/portalserver/ui/PortalHomePage.java b/ccm-portalserver/src/com/arsdigita/portalserver/ui/PortalHomePage.java index d8142c219..e7a6c08f8 100644 --- a/ccm-portalserver/src/com/arsdigita/portalserver/ui/PortalHomePage.java +++ b/ccm-portalserver/src/com/arsdigita/portalserver/ui/PortalHomePage.java @@ -61,19 +61,14 @@ import org.apache.log4j.Logger; * * @author Justin Ross * @author Jim Parsons - * @version $Id: //portalserver/dev/src/com/arsdigita/portalserver/ui/PortalHomePage.java#7 $ + * @version $Id: PortalHomePage.java#7 $ $DateTime: 2004/08/17 23:19:25 $ */ public class PortalHomePage extends PortalPage { + + private static final Logger s_log = Logger.getLogger(PortalHomePage.class); + private static final Cookie[] EMPTY_COOKIES = {}; - public static final String versionId = - "$Id: //portalserver/dev/src/com/arsdigita/portalserver/ui/PortalHomePage.java#7 $" + - "$Author: dennis $" + - "$DateTime: 2004/08/17 23:19:25 $"; - - private static final Logger s_log = Logger.getLogger - (PortalHomePage.class); - public static final String PORTAL_XML_NS = "http://www.arsdigita.com/portalserver/1.0"; @@ -91,23 +86,38 @@ public class PortalHomePage extends PortalPage { } }; + /** + * Constructor + */ public PortalHomePage() { super(); addRequestListener(new PortalRequestListener()); - lock(); } + /** + * + * @param ps + * @return + */ private boolean hasAdmin(PageState ps) { return m_hasAdmin.get(ps).equals(Boolean.TRUE); } - // Can return null. + /** + * + * @param pageState + * @return (Can return null.) + */ protected PortalSite getPortalSite(PageState pageState) { return PortalSite.getCurrentPortalSite(pageState.getRequest()); } + /** + * + */ + @Override protected void buildContextBar() { DimensionalNavbar navbar = new DimensionalNavbar(); @@ -119,8 +129,14 @@ public class PortalHomePage extends PortalPage { getHeader().add(navbar); } + /** + * + * @param header + */ + @Override protected void buildHeader(Container header) { Link adminLink = new Link( new Label(GlobalizationUtil.globalize("cw.workspace.ui.configure_workspace")), "./admin") { + @Override public boolean isVisible(PageState ps) { return hasAdmin(ps); } @@ -164,6 +180,11 @@ public class PortalHomePage extends PortalPage { header.add(new SearchComponent()); } + /** + * + * @param body + */ + @Override protected void buildBody(Container body) { ListModelBuilder lmb = new ListModelBuilder() { boolean m_isLocked; diff --git a/ccm-portalserver/web/WEB-INF/web.ccm-portalserver.xml b/ccm-portalserver/web/WEB-INF/web.ccm-portalserver.xml new file mode 100644 index 000000000..14506135e --- /dev/null +++ b/ccm-portalserver/web/WEB-INF/web.ccm-portalserver.xml @@ -0,0 +1,18 @@ + + + + + + portalsite + com.arsdigita.portalserver.PortalServlet + + + + portalsite + /templates/servlet/portalsite/* + + + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/personal-portal-creator/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/personal-portal-creator/xsl/index.xsl index 3bd9ce051..cf2744089 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/personal-portal-creator/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/personal-portal-creator/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/personal-portal/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/personal-portal/xsl/index.xsl index 3bd9ce051..cf2744089 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/personal-portal/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/personal-portal/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/portal-admin/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/portal-admin/xsl/index.xsl index 3bd9ce051..cf2744089 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/portal-admin/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/portal-admin/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/portal-archive/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/portal-archive/xsl/index.xsl index 3bd9ce051..cf2744089 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/portal-archive/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/portal-archive/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/portal-create/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/portal-create/xsl/index.xsl index 3bd9ce051..cf2744089 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/portal-create/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/portal-create/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/portalsite/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/portal-site/xsl/index.xsl similarity index 62% rename from ccm-portalserver/web/themes/heirloom/apps/portalsite/xsl/index.xsl rename to ccm-portalserver/web/themes/heirloom/apps/portal-site/xsl/index.xsl index 3bd9ce051..cf2744089 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/portalsite/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/portal-site/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-portalserver/web/themes/heirloom/apps/portal-sitemap/xsl/index.xsl b/ccm-portalserver/web/themes/heirloom/apps/portal-sitemap/xsl/index.xsl index 738520a64..be4f4e759 100644 --- a/ccm-portalserver/web/themes/heirloom/apps/portal-sitemap/xsl/index.xsl +++ b/ccm-portalserver/web/themes/heirloom/apps/portal-sitemap/xsl/index.xsl @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/ccm-sci-bundle/bundles/devel/cfg/project.xml b/ccm-sci-bundle/bundles/devel/cfg/project.xml index fe61c2950..647a9697f 100644 --- a/ccm-sci-bundle/bundles/devel/cfg/project.xml +++ b/ccm-sci-bundle/bundles/devel/cfg/project.xml @@ -146,8 +146,8 @@ -