diff --git a/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties b/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties
index 5c6e0e7cb..1a5be5651 100755
--- a/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties
+++ b/ccm-ldn-aplaws/bundles/devel/cfg/integration.properties
@@ -1,4 +1,4 @@
-# Devel bundle integration.properties
+# APLAWS+ devel bundle integration.properties
#
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
#
@@ -14,7 +14,7 @@ waf.dispatcher.default_expiry=3600
;
waf.kernel.data_permission_check_enabled=false
waf.kernel.primary_user_identifier=email
-; if you activate screen_name, forum loader doesn't work.
+; if you activate screen_name, forum loader does not work.
; waf.kernel.primary_user_identifier=screen_name
waf.kernel.supported_languages=de,en
waf.kernel.language_independent_items=true
@@ -39,6 +39,9 @@ waf.xml.xsl_transformer=xalan
waf.xml.activate_full_date_formatter=true
# ccm-cms parameters
+# In order to create several content-section uncomment the line below and
+# list the desired content section names
+#com.arsdigita.cms.loader.section_names=generic,openccm,homepages
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.aplaws.ui.ItemCategoryPicker
@@ -70,6 +73,8 @@ com.arsdigita.cms.hide_udct_ui=true
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
+com.arsdigita.cms.image_browser.thumbnail_max_width=200
+com.arsdigita.cms.image_browser.thumbnail_max_height=150
# ccm-cms-types-event parameters
com.arsdigita.cms.contenttypes.event.hide_cost=true
@@ -106,11 +111,12 @@ com.arsdigita.navigation.category_menu_show_grand_children=false
; com.arsdigita.navigation.category_menu_show_nephews=false
com.arsdigita.navigation.default_cat_root_path=/navigation/
com.arsdigita.navigation.default_template=/templates/ccm-navigation/navigation/nav-default.jsp
+com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt
# ccm-ldn-search application
com.arsdigita.london.search.show_sponsored_links=true
-; Comment this out or increase the num_of_threads iv you really use remote search
+; Comment this out or increase the num_of_threads if you really use remote search
com.arsdigita.london.search.num_threads=0
diff --git a/ccm-ldn-aplaws/bundles/devel/cfg/project.xml b/ccm-ldn-aplaws/bundles/devel/cfg/project.xml
index 5b1806cce..3ef78a650 100755
--- a/ccm-ldn-aplaws/bundles/devel/cfg/project.xml
+++ b/ccm-ldn-aplaws/bundles/devel/cfg/project.xml
@@ -39,9 +39,10 @@
-
+
-
+
@@ -109,7 +110,6 @@
-
diff --git a/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info b/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info
index 5ae76207c..d1a1d5cc5 100644
--- a/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info
+++ b/ccm-ldn-aplaws/bundles/devel/res/bundle/categories/placeholder.info
@@ -1,3 +1,3 @@
-Subdirectory may optionally contain one or more local site specific
+Subdirectory may optionally contain one or more local site specific
import xml files for Terms domain categories.
diff --git a/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info b/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info
new file mode 100644
index 000000000..7e83095be
--- /dev/null
+++ b/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/placeholder.info
@@ -0,0 +1,4 @@
+Subdirectory may optionally contain a local site specific
+text files describing additional jsp templates for navigation.
+The template jsp files are stored in templates/ccm-navigation/navigation
+
diff --git a/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt b/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt
deleted file mode 100755
index 80d8612e5..000000000
--- a/ccm-ldn-aplaws/bundles/devel/res/bundle/navigation/sci-templates.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-ScientificCMS Default Items Page,Sci Default Navigation Index Page ordering items in ascending order,/templates/ccm-ldn-navigation/navigation/sci-default.jsp
-ScientificCMS Recent Items Page,Sci List of items ordered with most recent first,/templates/ccm-ldn-navigation/navigation/sci-recent.jsp
-ScientificCMS A-Z Items,Sci List of items paginated as A-Z,/templates/ccm-ldn-navigation/navigation/sci-atoz.jsp
-ScientificCMS Events Page,Sci Events Page ordering events in ??? order,/templates/ccm-ldn-navigation/navigation/sci-events.jsp
-ScientificCMS Portal Page,Sci Portal Page for embedding a portal page as navigation leaves page,/templates/ccm-ldn-navigation/navigation/sci-portal.jsp
-ScientificCMS Portal Welcome Page,Sci Portal page meant as site welcome page,/templates/ccm-ldn-navigation/navigation/sci-portal-welcome.jsp
-ScientificCMS Navigation Welcome Page,Sci site welcome page created by navigation root term,/templates/ccm-ldn-navigation/navigation/sci-welcome.jsp
-ScientificCMS Specializing Items List,Sci Specialising List item page,/templates/ccm-ldn-navigation/navigation/SpecializingList.jsp
-ScientificCMS Publications List,Sci publications listing page,/templates/ccm-ldn-navigation/navigation/SciPublicationList.jsp
diff --git a/ccm-ldn-aplaws/bundles/devel/res/placeholder.info b/ccm-ldn-aplaws/bundles/devel/res/placeholder.info
index 5ae76207c..26e338973 100644
--- a/ccm-ldn-aplaws/bundles/devel/res/placeholder.info
+++ b/ccm-ldn-aplaws/bundles/devel/res/placeholder.info
@@ -1,3 +1,7 @@
-Subdirectory may optionally contain one or more local site specific
-import xml files for Terms domain categories.
+Directory will be available during installation by classloader. All
+content has to be placed in a subdirectory, typically bundle. It can be
+addressed as /bundle/[fileName|dirName]
+EXAMPLE:
+com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt
+
diff --git a/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info b/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info
index 25d83c34e..bcb53e566 100644
--- a/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info
+++ b/ccm-ldn-aplaws/bundles/devel/templates/placeholder.info
@@ -1,3 +1,6 @@
+The installation program copies all sub-directories and files in this directory
+into the applications webapps subdirectory templates.
+
Subdirectory may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-ldn-aplaws and stored in
@@ -9,4 +12,5 @@ to the default template files. In the later case a developer must
provide a customised template.txt file replacing the default file
/src/WEB-INF/navigation/templates.txt
This file must be specified in parameter
- com.arsdigita.navigation.templates_file
\ No newline at end of file
+ com.arsdigita.navigation.templates_file
+It usually stored in res/bundle/navigation
\ No newline at end of file
diff --git a/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info b/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info
index dbae76348..a9783b63b 100644
--- a/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info
+++ b/ccm-ldn-aplaws/bundles/devel/themes/placeholder.info
@@ -10,4 +10,4 @@ directory in its document (context) root.
It is the responsibility of developer / system integrator to ensure all files
are copied to the right location and the theme works with the modification. No
-functionality or consistency check is perfordmed!
\ No newline at end of file
+functionality or consistency check is performed!
\ No newline at end of file
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java
index 067b73eb6..f6d2a5d25 100755
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Initializer.java
@@ -19,14 +19,14 @@
package com.arsdigita.aplaws;
import com.arsdigita.categorization.Categorization;
-import com.arsdigita.london.terms.TermCategoryListener;
import com.arsdigita.runtime.CompoundInitializer;
-import com.arsdigita.runtime.ContextCloseEvent;
-import com.arsdigita.runtime.DataInitEvent;
import com.arsdigita.runtime.DomainInitEvent;
+import com.arsdigita.templating.PatternStylesheetResolver;
+
+import com.arsdigita.london.terms.TermCategoryListener;
+
import org.apache.log4j.Logger;
-import com.arsdigita.templating.PatternStylesheetResolver;
/**
* The APLAWS initializer.
@@ -40,12 +40,7 @@ public class Initializer extends CompoundInitializer {
/**
- * An empty implementation of {@link Initializer#init(DataInitEvent)}.
- */
- @Override
- public void init(DataInitEvent evt) {}
-
- /**
+ * Package Implementation of {@link Initializer#init(DomainInitEvent)}.
*
* @param evt
*/
@@ -60,12 +55,4 @@ public class Initializer extends CompoundInitializer {
new WebAppPatternGenerator()
);
}
-
-
- /**
- * An empty implementation of {@link Initializer#close()}.
- */
- @Override
- public void close(ContextCloseEvent evt) {}
-
}
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java
index bbb077160..335705917 100755
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/Loader.java
@@ -276,21 +276,6 @@ public class Loader extends PackageLoader {
registerDomain(customNavKey, '/'+customNavPath+'/', null);
registerDomain(customNavKey, "/content/", customNavUseContext);
- // Switch /portal/ to use 1 column layout for funky aplaws stuff.
- // pboy: This will have no effect at all. A portal page created at
- // url /portal/ (and beneath) will always use the homepage jsp's which
- // are hardcoded to create a three column design and ignore any
- // column configuration. All portal pages at other urls are not
- // affect by this setting which touches only the one application (portal)
- // at url /portal/. Portal pages at other urls use the corresponding
- // configuration parameter for its initial value and number of columns
- // may be modified at any time using configuration ui.
- /*
- Workspace portal = (Workspace)Application
- .retrieveApplicationForPath("/portal/");
- portal.setDefaultLayout(PageLayout
- .findLayoutByFormat(PageLayout.FORMAT_ONE_COLUMN));
- */
}
public void registerServicesTemplate(String appURL) {
@@ -330,9 +315,8 @@ public class Loader extends PackageLoader {
String appURL,
String context) {
if (s_log.isDebugEnabled()) {
- s_log.debug("Mapping domain " + domainKey +
- " to app " + appURL +
- " in context " + context);
+ s_log.debug("Mapping domain " + domainKey + " to app " + appURL
+ + " in context " + context);
}
/* Determine Domain and Application objects, both MUST exist! */
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse
deleted file mode 100755
index 9b8485714..000000000
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ACSObjectCategoryPicker.java.nolongerInUse
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (C) 2001-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.aplaws.ui;
-
-import com.arsdigita.aplaws.Aplaws;
-import com.arsdigita.bebop.SimpleContainer;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.parameters.StringParameter;
-import com.arsdigita.bebop.parameters.BigDecimalParameter;
-import com.arsdigita.bebop.event.ActionEvent;
-import com.arsdigita.bebop.event.ActionListener;
-// import com.arsdigita.bebop.form.Widget;
-import com.arsdigita.persistence.SessionManager;
-import com.arsdigita.persistence.DataCollection;
-import com.arsdigita.domain.DomainCollection;
-import com.arsdigita.domain.DomainObjectFactory;
-import com.arsdigita.kernel.ACSObject;
-import com.arsdigita.london.terms.Term;
-import com.arsdigita.london.terms.Domain;
-import com.arsdigita.categorization.ui.ACSObjectCategoryForm;
-// unused imports
-// import com.arsdigita.cms.ContentItem;
-// import com.arsdigita.cms.CMS;
-// import com.arsdigita.cms.ui.authoring.ItemCategoryForm;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Iterator;
-
-import org.apache.log4j.Logger;
-
-
-// /////////////////////////////////////////////////////////////////////////////
-// Has to be refactored to extend
-// com.arsdigita.london.terms.ui.ACSObjectCategoryPicker and to
-// overwrite the method lgclSelected(Domain domain, ACSObject object)
-// to add the lgl / ANav stuff
-// (which is not included in the c.ad.ldn.terms.ui version)
-//
-// Then ItemCategoryPicker should use this aplaws version.
-// /////////////////////////////////////////////////////////////////////////////
-
-/**
- * abstracted from original version of ItemCategoryPicker r1297
- * chris gilbert
- */
-public abstract class ACSObjectCategoryPicker extends SimpleContainer {
-
- private static final Logger s_log = Logger.getLogger(ACSObjectCategoryPicker.class);
-
- private ACSObjectCategoryForm m_form;
- private BigDecimalParameter m_root;
-
- public ACSObjectCategoryPicker(BigDecimalParameter root,
- StringParameter mode) {
-
- m_form = getForm(root, mode);
- m_root = root;
-
- add(m_form);
- m_form.addCompletionListener(new ItemCategoryFormCompletion());
- }
-
- protected abstract ACSObjectCategoryForm getForm(BigDecimalParameter root, StringParameter mode);
-
- protected abstract ACSObject getObject(PageState state);
-
-
-
-
- private class ItemCategoryFormCompletion implements ActionListener {
- public void actionPerformed(ActionEvent ev) {
-
- PageState state = ev.getPageState();
- Domain domain = getDomain(state);
- String domainKey = domain.getKey();
-
- if (s_log.isDebugEnabled()) {
- s_log.debug("Saving categories in: " + domainKey);
- }
-
- ACSObject object = getObject(state);
-
- if ("LGCL".equals(domainKey)) {
- lgclSelected(domain, object);
- }
-
- else if ("LGDL".equals(domainKey)) {
- lgdlSelected(domain, object);
- }
-
- fireCompletionEvent(state);
- }
-
- private void lgclSelected(Domain domain, ACSObject object) {
- List lgclTerms = getCurrentCategories(domain, object);
-
- Domain gcl = Domain.retrieve("GCL");
- Collection gclTerms = getRelatedTerms(lgclTerms, gcl);
- clearTerms(gcl, object);
- assignTerms(gclTerms, object);
-
- // The assignment below is removed to satisfy requirement 4.1,
- // use case 1 of the document "Metadata Improvements" version 1
- // by Camden, dated 23/01/05.
- //Domain lgsl = Domain.retrieve("LGSL");
- //Collection lgslTerms = getRelatedTerms(lgclTerms, lgsl);
- //clearTerms(lgsl, object);
- //assignTerms(lgslTerms, object);
-
- // adding processing or mapping from LGCL to APLAWS-NAV too
- boolean lgclOverrideAnav = Aplaws.getAplawsConfig().getOverrideAnavFromLGCLMappings().booleanValue();
- if (lgclOverrideAnav) {
- Domain aplawsNav = Domain.retrieve("APLAWS-NAV");
- Collection aplawsNavTerms = getRelatedTerms(lgclTerms, aplawsNav);
- clearTerms(aplawsNav, object);
- assignTerms(aplawsNavTerms, object);
- }
- }
-
- // User has selected a term in the LGDL hierarchy, which includes
- // terms from the LGSL. We're only interested in LGSL terms here.
- private void lgdlSelected(Domain domain, ACSObject object) {
- Domain lgsl = Domain.retrieve("LGSL");
- Domain gcl = Domain.retrieve("GCL");
- Domain lgcl = Domain.retrieve("LGCL");
-
- // We have a mapping LGSL -> LGCL based on the reverse of a
- // published mapping. We don't have a mapping LGSL -> GCL, so we
- // do LGSL -> LGCL -> GCL instead.
-
- List lgslTerms = getCurrentCategories(lgsl, object);
- Collection lgclTerms = getRelatedTerms(lgslTerms, lgcl);
-
- LinkedList lgclIDs = new LinkedList();
- Iterator i = lgclTerms.iterator();
- while (i.hasNext()) {
- Term term = (Term) i.next();
- lgclIDs.add(term.getModel().getID());
- }
-
- Collection gclTerms = getRelatedTerms(lgclIDs, gcl);
-
- clearTerms(lgcl, object);
- assignTerms(lgclTerms, object);
-
- clearTerms(gcl, object);
- assignTerms(gclTerms, object);
- }
- }
-
- protected List getCurrentCategories(Domain domain,
- ACSObject object) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Getting terms from " + domain + " to " + object);
- }
- DomainCollection terms = domain.getTerms();
- terms.addEqualsFilter("model.childObjects.id", object.getID());
- terms.addPath("model.id");
-
- List current = new LinkedList();
- while (terms.next()) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Got term " + terms.get("model.id"));
- }
- current.add(terms.get("model.id"));
- }
- return current;
- }
-
- // TODO move out of UI code
- public static Collection getCurrentTerms(Domain domain,
- ACSObject object) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Getting terms from " + domain + " to " + object);
- }
- Collection current = new LinkedList();
- DomainCollection terms = domain.getTerms();
- terms.addEqualsFilter("model.childObjects.id", object.getID());
- terms.addPath("model.id");
- while (terms.next()) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Got term " + terms.get("model.id"));
- }
- current.add(terms.getDomainObject());
- }
- return current;
- }
-
- // TODO move out of UI code
- public static Collection getRelatedTerms(Collection src,
- Domain domain) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Getting related terms to " + domain);
-
- }
- if (src.isEmpty()) {
- // this is a hack, it would be better not to use a completion event listener as
- // this is called even when the form is cancelled...
- return new LinkedList();
- }
- DomainCollection terms = domain.getTerms();
- // these next two lines build the query
- terms.addEqualsFilter("model.parents.link.relationType", "related");
- terms.addFilter("model.parents.id in :ids").set("ids", src);
-
- Collection related = new LinkedList();
- while (terms.next()) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Got term " + terms.getDomainObject());
- }
- related.add(terms.getDomainObject());
- }
- return related;
- }
-
- protected void clearTerms(Domain domain,
- ACSObject object) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Removing terms from " + domain + " to " + object);
- }
- Iterator terms = getCurrentTerms(domain, object).iterator();
- while (terms.hasNext()) {
- Term term = (Term)terms.next();
- if (s_log.isDebugEnabled()) {
- s_log.debug("Removing term " + term + " from " + object);
- }
- term.removeObject(object);
- }
- }
-
-
- // TODO move out of UI code
- public static void assignTerms(Collection terms,
- ACSObject object) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Assigning terms to " + object);
- }
- Iterator i = terms.iterator();
- while (i.hasNext()) {
- Term term = (Term)i.next();
- if (s_log.isDebugEnabled()) {
- s_log.debug("Assigning term " + term + " to " + object);
- }
- term.addObject(object);
- }
- }
-
- protected Domain getDomain(PageState state) {
- if (s_log.isDebugEnabled()) {
- s_log.debug("Getting domain for " + state.getValue(m_root));
- }
-
- DataCollection domains = SessionManager.getSession()
- .retrieve(Domain.BASE_DATA_OBJECT_TYPE);
- domains.addEqualsFilter("model.id",
- state.getValue(m_root));
-
- if (domains.next()) {
- Domain domain = (Domain)DomainObjectFactory
- .newInstance(domains.getDataObject());
- if (s_log.isDebugEnabled()) {
- s_log.debug("Got domain " + domain);
- }
- domains.close();
- return domain;
- }
- if (s_log.isDebugEnabled()) {
- s_log.debug("No domain found");
- }
- return null;
- }
-}
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java.probably.nolongerInUse
old mode 100755
new mode 100644
similarity index 94%
rename from ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java
rename to ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java.probably.nolongerInUse
index 56e2985d2..4a50487b7
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedIndexItemTerms.java.probably.nolongerInUse
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-package com.arsdigita.aplaws.ui;
+package com.arsdigita.bundle.ui;
import com.arsdigita.bebop.PageState;
import com.arsdigita.cms.CMS;
@@ -24,7 +24,7 @@ import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.kernel.ACSObject;
-import com.arsdigita.navigation.Navigation;
+import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.london.terms.ui.AbstractAssignedTerms;
import org.apache.log4j.Logger;
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java
index 1718892d8..09168faea 100755
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/AssignedItemTerms.java
@@ -23,6 +23,12 @@ import com.arsdigita.cms.CMS;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.terms.ui.AbstractAssignedTerms;
+/**
+ *
+ * Invoked by jsp
+ * (e.g. templates/ccm-cms/content-section/default/aplaws-item.jsp
+ * previously: packages/content-section/templates/default/aplaws-item.jsp)
+ */
public class AssignedItemTerms extends AbstractAssignedTerms {
protected ACSObject getObject(PageState state) {
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse
deleted file mode 100755
index a632dfa22..000000000
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategorySubtree.java.nolongerInUse
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.arsdigita.aplaws.ui;
-
-import java.math.BigDecimal;
-// import java.util.Iterator;
-// import java.util.Map;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.log4j.Logger;
-
-import com.arsdigita.bebop.Page;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.SimpleComponent;
-// import com.arsdigita.bebop.parameters.BigDecimalParameter;
-// import com.arsdigita.bebop.parameters.IntegerParameter;
-import com.arsdigita.bebop.parameters.StringParameter;
-import com.arsdigita.categorization.Category;
-import com.arsdigita.domain.DomainObjectFactory;
-import com.arsdigita.persistence.OID;
-import com.arsdigita.xml.Element;
-
-/**
- * Generate part of the category tree. Used by Assign Category authoring step.
- *
- * @author Alan Pevec
- * @deprecated use com.arsdigita.london.terms.ui.CategorySubtree instead.
- */
-public class CategorySubtree extends SimpleComponent {
-
- StringParameter nodeIDparam = new StringParameter("nodeID");
-
- private static Logger s_log = Logger.getLogger(CategorySubtree.class);
-
- public void register(Page p) {
- super.register(p);
- p.addGlobalStateParam(nodeIDparam);
-
- }
-
- public void generateXML(PageState state, Element p) {
-
- String node = (String)state.getValue(nodeIDparam);
- s_log.debug("selected node = " + node);
- String[] pathElements = StringUtils.split(node, "-");
-
- Category root = (Category) DomainObjectFactory.newInstance(new OID(
- Category.BASE_DATA_OBJECT_TYPE, new BigDecimal(pathElements[pathElements.length - 1])));
- s_log.debug("generating subtree for cat " + root.getID());
- TermWidget.generateSubtree(p, root);
- }
-
-}
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java.probably.nolongerInUse
old mode 100755
new mode 100644
similarity index 96%
rename from ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java
rename to ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java.probably.nolongerInUse
index 146e4c9e7..70bb784d1
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/CategoryTermDetails.java.probably.nolongerInUse
@@ -16,13 +16,13 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-package com.arsdigita.aplaws.ui;
+package com.arsdigita.bundle.ui;
import com.arsdigita.london.terms.Term;
import com.arsdigita.london.terms.ui.AbstractTermDetails;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.SessionManager;
-import com.arsdigita.navigation.Navigation;
+import com.arsdigita.london.navigation.Navigation;
import com.arsdigita.categorization.Category;
import com.arsdigita.bebop.PageState;
import com.arsdigita.domain.DomainObjectFactory;
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java
new file mode 100644
index 000000000..197d8b96c
--- /dev/null
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/GenericOrgaUnitTabComponent.java
@@ -0,0 +1,96 @@
+package com.arsdigita.bundle.ui;
+
+import com.arsdigita.bebop.Page;
+import com.arsdigita.bebop.PageState;
+import com.arsdigita.cms.CMS;
+import com.arsdigita.cms.contenttypes.GenericOrganizationalUnit;
+import com.arsdigita.cms.contenttypes.ui.GenericOrgaUnitTab;
+import com.arsdigita.dispatcher.DispatcherHelper;
+import com.arsdigita.domain.DomainObjectFactory;
+import com.arsdigita.globalization.GlobalizationHelper;
+import com.arsdigita.navigation.ui.AbstractComponent;
+import com.arsdigita.persistence.OID;
+import com.arsdigita.util.UncheckedWrapperException;
+import com.arsdigita.xml.Element;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * A wrapper around {@link GenericOrgaUnitTab} which allows it to use the
+ * output of an implementation of {@link GenericOrgaUnitTab} independently from
+ * a {@link GenericOrganizationalUnit} item. This allows it to create an
+ * special JSP and the show a tab as a navigation point.
+ *
+ * @author Jens Pelzetter
+ * @version $Id: GenericOrgaUnitTabComponent.java 1430 2012-01-06 07:04:27Z jensp $
+ */
+public class GenericOrgaUnitTabComponent extends AbstractComponent {
+
+ private Page page;
+ private OID orgaunitOid;
+ private GenericOrgaUnitTab tab;
+
+ public void setPage(final Page page) {
+ this.page = page;
+ }
+
+ /**
+ * The OID of the orga unit to use. Use the OID of the master version (can
+ * be found in the overview tab in the content-center in the stable link)
+ * here
+ * @param oid
+ */
+ public void setOrgaUnit(final String oid) {
+ this.orgaunitOid = OID.valueOf(oid);
+ }
+
+ public void setOrgaUnitTab(final GenericOrgaUnitTab tab) {
+ this.tab = tab;
+ }
+
+ public Element generateXML(final HttpServletRequest request,
+ final HttpServletResponse response) {
+ final PageState state;
+ try {
+ state = new PageState(page, request, response);
+ } catch (ServletException ex) {
+ throw new UncheckedWrapperException(ex);
+ }
+
+ GenericOrganizationalUnit orgaunit =
+ (GenericOrganizationalUnit) DomainObjectFactory.
+ newInstance(orgaunitOid);
+
+ if (!(orgaunit.getLanguage().equals(GlobalizationHelper.
+ getNegotiatedLocale().getLanguage()))) {
+ orgaunit = (GenericOrganizationalUnit) orgaunit.getContentBundle().
+ getInstance(GlobalizationHelper.getNegotiatedLocale());
+ }
+
+ if ((DispatcherHelper.getDispatcherPrefix(request) == null)
+ || !DispatcherHelper.getDispatcherPrefix(request).equals("preview")) {
+ orgaunit = (GenericOrganizationalUnit) orgaunit.getLiveVersion();
+ }
+
+ final Element contentPanelElem = new Element("cms:contentPanel",
+ CMS.CMS_XML_NS);
+ final Element cmsItemElem =
+ contentPanelElem.newChildElement("cms:item",
+ CMS.CMS_XML_NS);
+ cmsItemElem.addAttribute("oid", orgaunitOid.toString());
+ final Element objTypeElem = cmsItemElem.newChildElement("objectType");
+ objTypeElem.setText(orgaunit.getClass().getName());
+
+ final Element tabsElem =
+ contentPanelElem.newChildElement("orgaUnitTabs");//new Element("orgaUnitTabs");
+ final Element selectedTabElem = tabsElem.newChildElement("selectedTab");
+
+ if (orgaunit != null) {
+ tab.generateXml(orgaunit, selectedTabElem, state);
+ }
+
+ //return tabsElem;
+ return contentPanelElem;
+ }
+}
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java
index 8f2809ac4..e8d46c514 100755
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java
+++ b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/ItemCategoryPicker.java
@@ -26,7 +26,7 @@ import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.categorization.ui.ACSObjectCategoryForm;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem;
-import com.arsdigita.cms.ui.authoring.*;
+import com.arsdigita.cms.ui.authoring.ItemCategoryForm;
import com.arsdigita.kernel.ACSObject;
import com.arsdigita.london.terms.ui.ACSObjectCategoryPicker;
import com.arsdigita.london.terms.ui.TermWidget;
diff --git a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse b/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse
deleted file mode 100755
index f45e0d7ab..000000000
--- a/ccm-ldn-aplaws/src/com/arsdigita/aplaws/ui/TermWidget.java.nolongerInUse
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * Copyright (C) 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.aplaws.ui;
-
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import com.arsdigita.aplaws.Aplaws;
-import com.arsdigita.bebop.PageState;
-import com.arsdigita.bebop.form.Widget;
-import com.arsdigita.bebop.parameters.ArrayParameter;
-import com.arsdigita.bebop.parameters.BigDecimalParameter;
-import com.arsdigita.bebop.parameters.StringParameter;
-import com.arsdigita.categorization.Category;
-import com.arsdigita.cms.CMS;
-import com.arsdigita.cms.ContentItem;
-import com.arsdigita.cms.ContentSection;
-import com.arsdigita.domain.DomainCollection;
-import com.arsdigita.domain.DomainObjectFactory;
-import com.arsdigita.london.terms.Domain;
-import com.arsdigita.london.terms.Term;
-import com.arsdigita.london.terms.indexing.Indexer;
-import com.arsdigita.london.terms.indexing.RankedTerm;
-import com.arsdigita.persistence.DataCollection;
-import com.arsdigita.persistence.SessionManager;
-import com.arsdigita.xml.Element;
-import com.arsdigita.xml.XML;
-
-/**
- * A Widget for selecting Terms. Based heavily on CategoryWidget.
- *
- * @author mbooth@redhat.com
- *
- * Chris Gilbert - updated to identify each node uniquely (correct behaviour
- * for polyhierarchical trees) - also, allow ajax update on all branches or
- * just top level branch
- *
- * nb - widget applies to allocation of categories to any ACSObject hence
- * xml prefix should be more generic eg bebop rather than cms. cms retained
- * for compatibility with existing stylesheets
- *
- * @deprecated Use c.ad.london.terms.ui.TermWidget instead!
- */
-public class TermWidget extends Widget {
- private StringParameter m_mode;
- private ACSObjectCategoryPicker m_picker;
-
- public TermWidget(StringParameter mode, ACSObjectCategoryPicker picker) {
- super(new ArrayParameter(new BigDecimalParameter("category")));
-
- m_mode = mode;
- m_picker = picker;
-
- }
-
-
-
- protected String getType() {
- return "category";
- }
-
- public boolean isCompound() {
- return false;
- }
-
- protected void generateWidget(PageState state,
- Element parent) {
- Domain domain = m_picker.getDomain(state);
-
- Element widget = parent.newChildElement("cms:categoryWidget",
- CMS.CMS_XML_NS);
- exportAttributes(widget);
-
- widget.addAttribute("mode", (String)state.getValue(m_mode));
- widget.addAttribute("name", getName());
-
- Set ids = new HashSet();
-
- BigDecimal[] values = (BigDecimal[])getValue(state);
- if (values != null) {
- for (int i = 0 ; i < values.length ; i++) {
- ids.add(values[i]);
- }
- }
-
- // only root terms at first, the rest is loaded on-demand via AJAX
- DomainCollection terms = domain.getRootTerms();
- terms.addPath("model.parents.link.sortKey");
- terms.addPath("model.parents.id");
- terms.addPath("domain.key");
-
- // Pull out everything related to the category, otherwise
- // another query per row is executed when doing term.getModel();
- terms.addPath("model.objectType");
- terms.addPath("model.displayName");
- terms.addPath("model.defaultDomainClass");
- terms.addPath("model.name");
- terms.addPath("model.description");
- terms.addPath("model.url");
- terms.addPath("model.isEnabled");
- terms.addPath("model.isAbstract");
- terms.addPath("model.defaultAncestors");
-
- List roots = new LinkedList();
- while (terms.next()) {
- Term term = (Term) terms.getDomainObject();
- roots.add(new TermSortKeyPair
- (term,(BigDecimal)terms.get("model.parents.link.sortKey")));
- }
-
- Element el = generateCategory(widget, domain.getModel(), ids, null);
-
- /**
- * Used by kea based keyphrase extraction facility.
- * (Added r1885)
- *
- * @Author: terry_permeance
- */
- Indexer indexer = Indexer.retrieve(domain);
- if (indexer != null) {
- ContentItem item = CMS.getContext().getContentItem();
- List autoTerms = indexer.index(item, 16);
- Element autoCategories = widget.newChildElement("cms:autoCategories", CMS.CMS_XML_NS);
- for (Iterator i = autoTerms.iterator(); i.hasNext(); ) {
- RankedTerm nextRankedTerm = i.next();
- Category cat = nextRankedTerm.getTerm().getModel();
- if (!ids.contains(cat.getID())) {
- String fullname = cat.getQualifiedName(" > ", false);
- if (fullname != null) {
- Element catEl = autoCategories.newChildElement("cms:category", CMS.CMS_XML_NS);
- catEl.addAttribute("id", XML.format(cat.getID()));
- catEl.addAttribute("name", cat.getName());
- catEl.addAttribute("description", cat.getDescription());
- catEl.addAttribute("isAbstract", cat.isAbstract() ? "1" : "0");
- catEl.addAttribute("isEnabled", cat.isEnabled() ? "1" : "0");
- catEl.addAttribute("sortKey", nextRankedTerm.getRanking().toString());
- catEl.addAttribute("fullname", fullname);
- }
- }
- }
- }
-
- if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) {
- // add attribute to the parent node, so that in stylesheet
- // we can look for any ancestor with this attribute (can't
- // add attribute to categoryWidget element as that is not
- // visible when subbranches are transformed)
- el.addAttribute("expand", "all" );
- }
-
- for (Iterator i=roots.iterator(); i.hasNext(); ) {
- TermSortKeyPair pair = (TermSortKeyPair) i.next();
- Term term = pair.getTerm();
- BigDecimal sortKey = pair.getSortKey();
-
- generateRootTerm(el, term, ids, sortKey);
- }
- }
-
- public static Element generateCategory(Element parent,
- Category cat,
- Set selected,
- BigDecimal sortKey) {
- Element el = parent.newChildElement("cms:category", CMS.CMS_XML_NS);
-
- el.addAttribute("id", XML.format(cat.getID()));
- el.addAttribute("name", cat.getName());
- el.addAttribute("description", cat.getDescription());
- el.addAttribute("isSelected", selected.contains(cat.getID()) ? "1" : "0");
- el.addAttribute("isAbstract", cat.isAbstract() ? "1" : "0");
- el.addAttribute("isEnabled", cat.isEnabled() ? "1" : "0");
- if (sortKey != null) {
- el.addAttribute("sortKey", sortKey.toString());
- }
- // sort order attribute added to every node so that we can
- // correctly transform xml fragments returned by ajax
- el.addAttribute("order", ContentSection.getConfig().getCategoryTreeOrder());
-
- StringBuffer path = new StringBuffer(parent.getAttribute("fullname"));
- if (path.length() > 0) path.append(" > ");
- path.append(cat.getName());
- el.addAttribute("fullname", path.toString());
-
- // need to uniquely identify each node in polyhierarchical trees
- // so that expand/contract is applied to the correct node by
- // javascript getElementByID function
- StringBuffer nodeID = new StringBuffer(parent.getAttribute("node-id"));
- if (nodeID.length() > 0) nodeID.append("-");
- nodeID.append(cat.getID());
- el.addAttribute("node-id", nodeID.toString());
-
- return el;
- }
-
- public static Element generateTerm(Element parent,
- Term term,
- Set selected,
- BigDecimal sortKey) {
- Category cat = term.getModel();
- Element el = generateCategory(parent, cat, selected, sortKey);
-
- el.addAttribute("pid", term.getUniqueID().toString());
- el.addAttribute("domain", term.getDomain().getKey());
- return el;
- }
-
- private static void generateRootTerm(Element parent,
- Term term,
- Set selected,
- BigDecimal sortKey) {
- Element el = generateTerm(parent, term, selected, sortKey);
- el.addAttribute("root","1");
- }
-
- public static void generateSubtree(Element parent, Category root) {
- DataCollection terms = SessionManager.getSession().retrieve(
- Term.BASE_DATA_OBJECT_TYPE);
- terms.addEqualsFilter("model.roTransParents.id", root.getID());
- terms.addEqualsFilter("model.parents.link.relationType", "child");
-
- Map children = new HashMap();
- while (terms.next()) {
- Term term = (Term) DomainObjectFactory.newInstance(terms
- .getDataObject());
- BigDecimal parentID = (BigDecimal) terms.get("model.parents.id");
-
- List childList = (List) children.get(parentID);
- if (childList == null) {
- childList = new LinkedList();
- children.put(parentID, childList);
- }
-
- childList.add(new TermSortKeyPair(term, (BigDecimal) terms
- .get("model.parents.link.sortKey")));
- }
-
- // XXX for isSelected
- Set ids = new HashSet();
-
- Element el = generateCategory(parent, root, ids, null);
- el.addAttribute("fullname", root.getName());
- el.addAttribute("node-id", root.getID().toString());
- el.addAttribute("order", ContentSection.getConfig().getCategoryTreeOrder());
- if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) {
- // recognisable attribute has to be in the XML for each snippet that is transformed,
- // hence add it to the parent
- el.addAttribute("expand", "all" );
- }
-
- List roots = (List) children.get(root.getID());
- if (null != roots) {
- Iterator i = roots.iterator();
- while (i.hasNext()) {
- TermSortKeyPair pair = (TermSortKeyPair) i.next();
- Term term = pair.getTerm();
- BigDecimal sortKey = pair.getSortKey();
-
- generateTermWithChildren(el, term, ids, sortKey, children);
- }
- }
- }
-
- private static void generateTermWithChildren(Element parent,
- Term term,
- Set selected,
- BigDecimal sortKey,
- Map children) {
- Category cat = term.getModel();
- Element el = generateCategory(parent, cat, selected, sortKey);
-
- el.addAttribute("pid", term.getUniqueID().toString());
- el.addAttribute("domain", term.getDomain().getKey());
-
- List c = (List) children.get(cat.getID());
- if (c != null) {
- Iterator i = c.iterator();
- while (i.hasNext()) {
- TermSortKeyPair pair = (TermSortKeyPair) i.next();
- Term child = pair.getTerm();
- BigDecimal childSortKey = pair.getSortKey();
-
- // either generate next level down, or get all levels below current
-
- if (Aplaws.getAplawsConfig().ajaxExpandAllBranches()) {
- generateTerm(el, child, selected, childSortKey);
-
- } else {
- generateTermWithChildren(el, child, selected, childSortKey,
- children);
- }
-
-
-
- }
- }
- }
-
- private static class TermSortKeyPair {
- private Term m_term;
- private BigDecimal m_sortKey;
-
- public TermSortKeyPair(Term term, BigDecimal sortKey) {
- m_term = term;
- m_sortKey = sortKey;
- }
- public Term getTerm() {
- return m_term;
- }
- public BigDecimal getSortKey() {
- return m_sortKey;
- }
- }
-}
diff --git a/ccm-ldn-aplaws/web/WEB-INF/web.empty.xml b/ccm-ldn-aplaws/web/WEB-INF/web.empty.xml
deleted file mode 100644
index 86a3470b0..000000000
--- a/ccm-ldn-aplaws/web/WEB-INF/web.empty.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
diff --git a/ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws b/ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws
deleted file mode 100755
index 721c3f6d2..000000000
--- a/ccm-ldn-aplaws/web/WEB-INF/web.xml-aplaws
+++ /dev/null
@@ -1,621 +0,0 @@
-
-
-
- CCM
- Content and Collaboration Management
-
-
-
- log4j-conf-file
- WEB-INF/conf/log4j.properties
-
-
-
-
-
-
-
- shortcuts
- com.arsdigita.shortcuts.ShortcutFilter
-
-
-
- subsite
- com.arsdigita.subsite.SubsiteFilter
-
-
-
-
-
-
- subsite
- /*
-
-
-
- shortcuts
- /*
-
-
-
-
- com.arsdigita.web.CCMApplicationContextListener
-
-
-
-
-
- reg
- com.arsdigita.web.ContextRegistrationServlet
-
- uri
- /
-
- 1
-
-
-
- legacy-dispatcher
- com.arsdigita.sitenode.SiteNodeDispatcher
- 3
-
-
-
- ccm-dispatcher
- com.arsdigita.web.DispatcherServlet
-
- fallback-servlet
- legacy-dispatcher
-
- 2
-
-
-
- legacy-adapter
- com.arsdigita.web.LegacyAdapterServlet
-
-
-
- cache-manager
- com.arsdigita.caching.CacheServlet
-
-
-
- db-test
- com.arsdigita.web.monitoring.DBTestServlet
-
-
-
- versioning-log
- com.arsdigita.versioning.VersioningServlet
-
-
-
- login
- com.arsdigita.ui.login.LoginServlet
-
-
-
- webadmin
- com.arsdigita.ui.admin.AdminServlet
-
-
-
- webadmin-sitemap
- com.arsdigita.ui.sitemap.SiteMapServlet
-
-
-
- webadmin-permissions
- com.arsdigita.ui.permissions.PermissionsServlet
-
-
-
- webdevsupport
- com.arsdigita.webdevsupport.WebDevSupportServlet
-
-
-
- oid-redirect
- com.arsdigita.web.OIDRedirectServlet
-
-
-
- resource-resolver
- com.arsdigita.web.ResourceServlet
-
-
-
-
-
- content-center
- com.arsdigita.cms.WorkspaceServlet
-
-
-
- content-section
- com.arsdigita.cms.ContentSectionServlet
-
-
-
- cms-service
- com.arsdigita.cms.ServiceServlet
-
-
-
- content-type-xsl
- com.arsdigita.cms.dispatcher.ContentTypeXSLServlet
-
-
-
- content-item-xsl
- com.arsdigita.cms.dispatcher.ContentItemXSLServlet
-
-
-
- template-xsl
- com.arsdigita.cms.dispatcher.TemplateXSLServlet
-
-
-
- TextOnlyServlet
- Text Only Servlet
-
- com.arsdigita.web.InternalPrefixerServlet
-
-
- prefix
- /text
-
-
-
-
- PrintFriendlyServlet
- Printer Friendly Output Servlet
-
- com.arsdigita.web.InternalPrefixerServlet
-
-
- prefix
- /print
-
-
-
-
-
-
-
- atoz-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-ldn-atoz
-
-
-
-
-
-
- forum-main
- com.arsdigita.forum.ForumServlet
-
-
-
-
- portalworkspace-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-portalworkspace
-
-
-
-
- navigation-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-navigation
-
-
- file-resolver
- com.arsdigita.navigation.NavigationFileResolver
-
-
-
-
- portlet-type-xsl
- com.arsdigita.dispatcher.PortletTypeXSLServlet
-
-
-
-
- rssfeed-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-rssfeed
-
-
- file-resolver
- com.arsdigita.rssfeed.RSSFileResolver
-
-
-
-
-
-
- search-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-ldn-search
-
-
-
-
- AxisServlet
- Apache-Axis Servlet
-
- org.apache.axis.transport.http.AxisServlet
-
-
-
-
-
-
- shortcuts-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-shortcuts
-
-
-
-
-
- subsite-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-subsite
-
-
-
-
-
-
- terms-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-ldn-terms
-
-
-
-
-
-
- theme-files
- com.arsdigita.web.ApplicationFileServlet
-
- template-path
- /templates/ccm-themedirector
-
-
-
-
- ThemeDownload
- com.arsdigita.themedirector.dispatcher.ThemeDownloadServlet
-
-
-
- ThemePreviewServlet
- Servlet to allow admins to preview look/feel
-
- com.arsdigita.themedirector.dispatcher.InternalThemePrefixerServlet
-
-
- prefix
- /theme
-
-
-
-
-
-
-
-
- atoz-files
- /ccm-ldn-atoz/files/*
-
-
-
-
-
- forum-main
- /forum-main/main/*
-
-
-
-
- portlet-type-xsl
- /themes/servlet/portlet-type/*
-
-
-
- portalworkspace-files
- /ccm-portalworkspace/files/*
-
-
-
- navigation-files
- /ccm-navigation/files/*
-
-
-
-
- rssfeed-files
- /ccm-rssfeed/files/*
-
-
-
-
-
- search-files
- /ccm-ldn-search/files/*
-
-
-
- AxisServlet
- /services/*
-
-
-
-
-
- shortcuts-files
- /ccm-shortcuts/files/*
-
-
-
-
- subsite-files
- /ccm-subsite/files/*
-
-
-
-
-
- terms-files
- /ccm-ldn-terms/files/*
-
-
-
-
-
- theme-files
- /theme-files/*
-
-
-
- ThemeDownload
- /theme-files/download/*
-
-
-
- ThemePreviewServlet
- /theme/*
-
-
-
-
-
-
-
- reg
- /themes/null/reg/*
-
-
-
- ccm-dispatcher
- /ccm/*
-
-
-
- legacy-adapter
- /templates/servlet/legacy-adapter/*
-
-
-
- cache-manager
- /expireCache/*
-
-
-
- db-test
- /dbtest
-
-
-
- versioning-log
- /versioning/*
-
-
-
- login
- /login/*
-
-
-
- webadmin
- /admin/*
-
-
-
- webadmin-sitemap
- /admin-sitemap/*
-
-
-
- webadmin-permissions
- /admin-permissions/*
-
-
-
- webdevsupport
- /webdevsupport/*
-
-
-
- oid-redirect
- /redirect/*
-
-
-
- resource-resolver
- /resource/*
-
-
-
-
-
- content-center
- /templates/servlet/content-center/*
-
-
-
- content-section
- /templates/servlet/content-section/*
-
-
-
- cms-service
- /templates/servlet/cms-service/*
-
-
-
- content-item-xsl
- /templates/servlet/content-item/*
-
-
-
- content-type-xsl
- /themes/servlet/content-type/*
-
-
-
- template-xsl
- /themes/servlet/template/*
-
-
-
- TextOnlyServlet
- /text/*
-
-
-
- PrintFriendlyServlet
- /print/*
-
-
-
-
-
- com.arsdigita.dispatcher.AccessDeniedException
- /error/access-denied.jsp
-
-
-
- com.arsdigita.dispatcher.ObjectNotFoundException
- /error/object-not-found.jsp
-
-
-
- com.arsdigita.kernel.permissions.PermissionException
- /error/permission-denied.jsp
-
-
-
- com.arsdigita.persistence.DbNotAvailableException
- /error/db-not-available.jsp
-
-
-
- com.arsdigita.db.DbNotAvailableException
- /error/db-not-available.jsp
-
-
-
- java.lang.Exception
- /error/general.jsp
-
-
-
- java.lang.Error
- /error/general.jsp
-
-
-
-
-
- /WEB-INF/bebop-show.tld
- /WEB-INF/bebop-show.tld
-
-
-
- /WEB-INF/bebop-define.tld
- /WEB-INF/bebop-define.tld
-
-
-
diff --git a/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp b/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp
index 4151f1d10..e019b2341 100755
--- a/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp
+++ b/ccm-ldn-aplaws/web/templates/ccm-navigation/navigation/sitemap.jsp
@@ -1,7 +1,7 @@
+ xmlns:define="/WEB-INF/bebop-define.tld"
+ xmlns:show="/WEB-INF/bebop-show.tld"
+ version="1.2">
diff --git a/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info b/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info
index 5ae76207c..d1a1d5cc5 100644
--- a/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info
+++ b/ccm-sci-bundle/bundles/custom/res/bundle/categories/placeholder.info
@@ -1,3 +1,3 @@
-Subdirectory may optionally contain one or more local site specific
+Subdirectory may optionally contain one or more local site specific
import xml files for Terms domain categories.
diff --git a/ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info b/ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info
new file mode 100644
index 000000000..7e83095be
--- /dev/null
+++ b/ccm-sci-bundle/bundles/custom/res/bundle/navigation/placeholder.info
@@ -0,0 +1,4 @@
+Subdirectory may optionally contain a local site specific
+text files describing additional jsp templates for navigation.
+The template jsp files are stored in templates/ccm-navigation/navigation
+
diff --git a/ccm-sci-bundle/bundles/custom/res/placeholder.info b/ccm-sci-bundle/bundles/custom/res/placeholder.info
index 5ae76207c..de33385f9 100644
--- a/ccm-sci-bundle/bundles/custom/res/placeholder.info
+++ b/ccm-sci-bundle/bundles/custom/res/placeholder.info
@@ -1,3 +1,6 @@
-Subdirectory may optionally contain one or more local site specific
-import xml files for Terms domain categories.
+Directory will be available during installation by classloader. All
+content has to be placed in a subdirectory, typically bundle. It can be
+addressed as /bundle/[fileName|dirName]
+EXAMPLE:
+com.arsdigita.navigation.templates_file=bundle/navigation/templates.txt
diff --git a/ccm-sci-bundle/bundles/custom/templates/placeholder.info b/ccm-sci-bundle/bundles/custom/templates/placeholder.info
index c78cf06e6..165928284 100644
--- a/ccm-sci-bundle/bundles/custom/templates/placeholder.info
+++ b/ccm-sci-bundle/bundles/custom/templates/placeholder.info
@@ -1,4 +1,7 @@
-Subdirectory