Various minor bugs in some packages needed by APLAWS spin. Both aplaws bundles now compile, deploy and run. Further testing needed.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2783 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2014-08-03 08:43:13 +00:00
parent 659d0dfa39
commit ea7facb2e0
139 changed files with 2175 additions and 1830 deletions

View File

@ -3,7 +3,7 @@
<!-- ======================================================================
project.xml - STANDARD - includes a set of modules supposed to be
useful for most (or even any) installations of LibreCMS.
Other modules are commented out but compiled into an add-on bundle to
be used by a site administrator to create a customized installation
using ccm-hostinit command.

View File

@ -1,3 +1,3 @@
Subdirectory <cat> may optionally contain one or more local site specific
Subdirectory <categories> may optionally contain one or more local site specific
import xml files for Terms domain categories.

View File

@ -1,3 +1,6 @@
Subdirectory <cat> may optionally contain one or more local site specific
import xml files for Terms domain categories.
Directory <res> 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

View File

@ -1,4 +1,7 @@
Subdirectory <nav> may optionally contain navigation item templates for
The installation program copies all sub-directories and files in this directory
into the applications webapps subdirectory templates.
Subdirectory <navigation> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
@ -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/sci-templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
com.arsdigita.navigation.templates_file
It is usually stored in res/bundle/navigation

View File

@ -1 +1,4 @@
Just a dummy file for test purpose during development.
Just a dummy file as a placeholder. This directory may contain theme files
which are used by themedirector for download a base theme to be further
customized by a site designer. If it should be used this way, ccm-themedirector
must be configured appropriately

View File

@ -1,12 +1,13 @@
Subdirectory <nav> may optionally contain navigation item templates for
navigation index pages which either overwrite or ammend those templates
which are default for ccm-sci-bundle and stored in
/web/templates/ccm-navigation/navigation
Bundle subdir themes
Templates of the same name in this subdirectory just overwrite the
default files. Templates of different names are stored in addition
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/sci-templates.txt
This file must be specified in parameter
com.arsdigita.navigation.templates_file
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for LibreCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
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 performed!

View File

@ -69,6 +69,7 @@ public class MOTDItem extends ContentPage {
super(type);
}
@Override
public void beforeSave() {
super.beforeSave();
@ -110,6 +111,7 @@ public class MOTDItem extends ContentPage {
setAssociation(FILE, file);
}
@Override
public String getSearchSummary() {
return com.arsdigita.util.StringUtils.truncateString(getMessage(),
SUMMARY_LENGTH,

View File

@ -47,7 +47,11 @@ public class MOTDComponent extends SimpleComponent {
/**
* Generate XML for the domain object supplied by the
* selection model.
*
* @param state
* @param parent
*/
@Override
public void generateXML(PageState state, Element parent) {
Element messages = new Element("bebop:motd", BEBOP_XML_NS);

View File

@ -42,6 +42,8 @@ public class MOTDGlobalizationUtil implements Globalized {
/**
* This returns a globalized message using the package specific bundle,
* provided by BUNDLE_NAME.
* @param key
* @return
*/
public static GlobalizedMessage globalize(String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);
@ -51,6 +53,9 @@ public class MOTDGlobalizationUtil implements Globalized {
* Returns a globalized message object, using the package specific bundle,
* as specified by BUNDLE_NAME. Also takes in an Object[] of arguments to
* interpolate into the retrieved message using the MessageFormat class.
* @param key
* @param args
* @return
*/
public static GlobalizedMessage globalize(String key, Object[] args) {
return new GlobalizedMessage(key, BUNDLE_NAME, args);

View File

@ -46,17 +46,14 @@ import org.w3c.dom.Node;
import org.w3c.dom.Text;
/**
* Creation History Start
@Author Name: CS Gupta
@Create Date: 23/11/2004
@Class Name: Converter.java
@Purpose: This servlet class uses Apache's FOP and format xml data in PDF Format
@Company: Infoaxon Technology
@Copyright: Copyright (c) 2004
@Version : 1.0
* This servlet class uses Apache's FOP and format xml data in PDF Format.
*
* Creation History Start
* @Author Name: CS Gupta
* @Create Date: 23/11/2004
* @Company: Infoaxon Technology
* Creation History End
*
**/
*/
public class Converter extends HttpServlet
{

View File

@ -54,7 +54,7 @@ public class PDFConfig extends AbstractConfig {
m_xslFile = new StringParameter(
"com.arsdigita.formbuilder.pdf.xsl_file",
Parameter.REQUIRED,
"/packages/ccm-formbuilder-pdf/xsl/main.xsl");
"/themes/heirloom/packages/ccm-formbuilder-pdf/xsl/main.xsl");
// if installed into its own webapp context, originally:
// "webapps/ccm-formbuilder-pdf/xsl/main.xsl");

View File

@ -13,8 +13,8 @@
<ccm:requires name="ccm-portalworkspace" version="6.6.1" relation="ge"/>
<ccm:requires name="ccm-navigation" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-subsite" version="6.6.0" relation="ge"/>
<!-- <ccm:requires name="ccm-rssfeed" version="6.6.0" relation="ge"/> -->
<ccm:requires name="ccm-ldn-dublin" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-rssfeed" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-ldn-dublin" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-ldn-search" version="6.6.0" relation="ge"/>
<ccm:requires name="ccm-ldn-terms" version="6.6.0" relation="ge"/>
</ccm:dependencies>

View File

@ -1,3 +1,9 @@
* Fr Aug 01 2014 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.3.0
* Mo March 26 2012 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.0.0
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.

View File

@ -1,7 +1,5 @@
# ##############################################################################
# APLAWS+ Base Bundle integration.properties
# Main purpose is to ensurecompatibility among all CCM packages and to provide
# Add On packages.
# APLAWS+ Base bundle integration.properties, version 2.3.x
# ##############################################################################
#
#
@ -135,6 +133,7 @@ com.arsdigita.cms.soon_expired_timespan_months=0
com.arsdigita.cms.unpublished_not_found=false
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.delete_workflow_after_publication=false
# ccm-cms-types-event parameters
@ -144,7 +143,7 @@ com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.start_year=2010
com.arsdigita.cms.contenttypes.event.end_year_delta=5
@ -154,11 +153,6 @@ com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# AtoZ configuration parameters
# ##############################################################################
@ -215,9 +209,9 @@ com.arsdigita.london.search.num_threads=0
# ##############################################################################
com.arsdigita.london.cms.dublin.audience_domain=LGAL
# SCI bundle integration package configuration parameters
# LDN bundle integration package configuration parameters
# ##############################################################################
# ccm-sci-bundle (Loader only)
# ccm-ldn-aplaws (Loader only)
#com.arsdigita.bundle.loader.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
#com.arsdigita.bundle.loader.custom_app_instances=com.arsdigita.navigation.Navigation:scimenu:ScientificCMS Navigation Menu,com.arsdigita.navigation.Navigation:libmenu:LibreCMS Navigation Menu
#com.arsdigita.bundle.loader.domain_mappings=STD-NAV:/navigation/,STD-NAV:/generic/,STD-NAV:/portal/
@ -234,10 +228,10 @@ com.arsdigita.london.cms.dublin.audience_domain=LGAL
#waf.admin.password.question=12345
#waf.admin.password.answer=6
waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm
waf.runtime.jdbc_pool_size=60
#waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm42web
#waf.runtime.jdbc_pool_size=60
waf.web.server=localhost\:8080
#waf.web.server=localhost\:8080
# =============================================================================================

View File

@ -1,20 +1,22 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml - BASE - containing all modules of the current aplaws
<!-- ======================================================================
project.xml - BASE - containing all modules of the current aplaws
repository. A set of core modules is active, others are commented out
and may be activated (uncomment) according to customers requirements.
The unmodified (as distributed) bundle may be used to create a custom
set of packages by a site administrator using ccm-hostinit command and
an appropriate set of add-on packages. -->
an appropriate set of add-on packages.
======================================================================= -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus Base Bundle"
version="2-0-0"
release="base-beta-1"
version="2.3.0"
release="base-beta"
webxml="web.xml"
webapp="ROOT"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools-ng/common/xsd/project.xsd">
@ -24,7 +26,7 @@
<ccm:database name="oracle-se"/>
</ccm:databases>
<ccm:build>
<ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ set of CORE packages -->
@ -47,83 +49,127 @@
in class ui.PortletTypeForm -->
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-portalworkspace-homepage"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-shortcuts"/>
<ccm:application name="ccm-subsite"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN core extensions -->
<ccm:application name="ccm-ldn-aplaws"/>
<ccm:application name="ccm-ldn-dublin"/>
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- APLAWS bundle -->
<ccm:application name="ccm-ldn-aplaws"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ OPTIONAL packages -->
<!-- Various combinations of these packages make up specific bundles -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Base Add-On packages (& Standard Bundle's included packages) -->
<!-- Uncomment according to your site's requirements. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Optional Modules for an Aplaws installation. -->
<!-- Uncomment according to your site's requirements. -->
<!-- Base bundle's Add-on (& Standard Bundle's) Content Assets -->
<!-- <ccm:application name="ccm-cms-assets-fileattachment"/> -->
<!-- <ccm:application name="ccm-cms-assets-relatedlink"/> -->
<!-- Additional Assets -->
<!-- <ccm:application name="ccm-cms-assets-fileattachment"/> -->
<!-- <ccm:application name="ccm-cms-assets-notes"/> -->
<!-- Base bundle's Add-on (& Standard Bundle's) Content Types -->
<!--
<ccm:application name="ccm-cms-types-filestorageitem"/>
<ccm:application name="ccm-cms-types-formitem"/>
<ccm:application name="ccm-cms-types-formsectionitem"/>
<ccm:application name="ccm-cms-types-inlinesite"/>
<ccm:application name="ccm-cms-types-mparticle"/>
<ccm:application name="ccm-cms-types-newsitem"/>
<ccm:application name="ccm-cms-types-pressrelease"/>
<ccm:application name="ccm-cms-types-xmlfeed"/>
-->
<!-- Additional Content Types -->
<!-- Base bundle's Add-on (& Standard Bundle's) Applications -->
<!-- <ccm:application name="ccm-forum"/> -->
<!-- Base bundle's Add-on (& Standard Bundle's) LDN extensions -->
<!-- <ccm:application name="ccm-ldn-atoz"/> -->
<!-- <ccm:application name="ccm-ldn-importer"/> -->
<!-- <ccm:application name="ccm-ldn-types-contact"/> -->
<!-- <ccm:application name="ccm-ldn-types-esdservice"/> -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ potential ADD-ONS packages -->
<!-- These packages are not included in any distribution bundle. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- The followong modules are part of the deprecated Complete Bundle -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Assets -->
<!-- <ccm:application name="ccm-cms-assets-imagestep"/> -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Types -->
<!-- <ccm:application name="ccm-cms-types-agenda"/> -->
<!-- <ccm:application name="ccm-cms-types-bookmark"/> -->
<!-- <ccm:application name="ccm-cms-types-contact"/> -->
<!-- <ccm:application name="ccm-cms-types-esdservice"/> -->
<!-- <ccm:application name="ccm-cms-types-event"/> -->
<!-- <ccm:application name="ccm-cms-types-faqitem"/> -->
<!-- <ccm:application name="ccm-cms-types-glossaryitem"/> -->
<!-- <ccm:application name="ccm-cms-types-image"/> -->
<!-- <ccm:application name="ccm-cms-types-inlinesite"/> -->
<!-- <ccm:application name="ccm-cms-types-job"/> -->
<!-- <ccm:application name="ccm-cms-types-legalnotice"/> -->
<!-- <ccm:application name="ccm-cms-types-minutes"/> -->
<!-- <ccm:application name="ccm-cms-types-motditem"/>
Current code does not include any xsl templates, conent type does not
appear in the list of types in content center.
For the moment no longer supported (2012-02-06) -->
<!-- <ccm:application name="ccm-cms-types-mparticle"/> -->
<!-- <ccm:application name="ccm-cms-types-newsitem"/> -->
<!-- <ccm:application name="ccm-cms-types-organization"/> -->
<!-- <ccm:application name="ccm-cms-types-pressrelease"/> -->
<!-- <ccm:application name="ccm-cms-types-service"/> -->
<!-- <ccm:application name="ccm-cms-types-simpleaddress"/> -->
<!-- <ccm:application name="ccm-cms-types-xmlfeed"/> -->
<!-- <ccm:application name="ccm-cms-types-siteproxy"/> -->
<!-- Current code does not include any xsl templates,
neither it does not appear in content center
DON'T use it in a new installation ! -->
<!-- <ccm:application name="ccm-cms-types-motditem"/> -->
<!-- Additional Content Applications -->
<!-- Standard bundle's Add-On & Complete Bundle's Applications -->
<!-- <ccm:application name="ccm-atoz-siteproxy"/> <!- - requires siteproxy!-->
<!-- <ccm:application name="ccm-auth-http"/> -->
<!-- <ccm:application name="ccm-bookmarks"/> -->
<!-- <ccm:application name="ccm-docmngr"/> -->
<!-- <ccm:application name="ccm-docrepo"/> -->
<!-- <ccm:application name="ccm-faq"/> -->
<!-- <ccm:application name="ccm-formbuilder-pdf"/> -->
<!-- <ccm:application name="ccm-forum"/> -->
<!-- <ccm:application name="ccm-forum-categorised"/> -->
<!-- <ccm:application name="ccm-simplesurvey"/> -->
<!-- Standard bundle's Add-On (& Complete Bundle's) LDN extensions -->
<!-- <ccm:application name="ccm-ldn-exporter"/> -->
<!-- <ccm:application name="ccm-ldn-freeform"/> -->
<!-- <ccm:application name="ccm-ldn-importer"/> -->
<!-- <ccm:application name="ccm-ldn-userpreferences"/> -->
<!-- <ccm:application name="ccm-portalserver"/> -->
<!-- <ccm:application name="ccm-portlet"/> -->
<!-- <ccm:application name="ccm-portlet-helloworld"/> -->
<!-- <ccm:application name="ccm-simplesurvey"/> -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ potential ADD-ONS packages -->
<!-- These packages are not included in any distribution bundle. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- ADD-ONs Content Assets -->
<!--
<ccm:application name="ccm-cms-assets-notes"/>
-->
<!-- ADD-ONs Bundle's Content Types -->
<!--
<ccm:application name="ccm-cms-types-image"/>
-->
<!-- ADD-ONs Bundle's Applications -->
<!--
<ccm:application name="ccm-bookmarks"/>
<ccm:application name="ccm-docrepo"/>
<ccm:application name="ccm-faq"/>
<ccm:application name="ccm-forum-categorised"/>
-->
<!-- <ccm:application name="ccm-user-preferences"/> -->
<!-- <ccm:application name="ccm-weblog"/> -->
<!-- <ccm:application name="ccm-webpage"/> -->
<!-- tools will be downloaded from trunk, but does not
contain java code to be compiled!
<ccm:application name="tools"/> -->
</ccm:build>

View File

@ -77,20 +77,10 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
<servlet-class>com.arsdigita.web.CCMDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
@ -173,29 +163,6 @@
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET DECLARATIONS SECTION
@ -435,11 +402,6 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/themes/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
@ -525,16 +487,6 @@
<url-pattern>/themes/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ERROR PAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

View File

@ -13,4 +13,4 @@ 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
It usually stored in res/bundle/navigation
It is usually stored in res/bundle/navigation

View File

@ -0,0 +1,13 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
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!

View File

@ -1,3 +1,9 @@
* Fr Aug 01 2014 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.3.0
* Mo March 26 2012 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.0.0
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.

View File

@ -1,5 +1,5 @@
# ##############################################################################
# APLAWS+ Complete Bundle integration.properties, version 2.0.x
# APLAWS+ Complete Bundle integration.properties, version 2.3.x
# Complete Bundle is DEPRECATED!
# Main purpose is to ensurecompatibility among all CCM packages and to provide
# Add On packages.
@ -39,7 +39,7 @@ waf.auto_registration_on=false
# CORE MAIL configuration parameters
# ##############################################################################
waf.mail.default_from=webmanager@camden.gov.uk
waf.mail.default_from=webmaster@aplaws.org
# CORE SEARCH.LUCENE configuration parameters
@ -136,6 +136,7 @@ com.arsdigita.cms.soon_expired_timespan_months=0
com.arsdigita.cms.unpublished_not_found=false
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.delete_workflow_after_publication=false
# ccm-cms-types-event parameters
@ -145,7 +146,7 @@ com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.start_year=2010
com.arsdigita.cms.contenttypes.event.end_year_delta=5
@ -155,11 +156,6 @@ com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# AtoZ configuration parameters
# ##############################################################################
@ -216,9 +212,9 @@ auth.http.admin_identifier=webmaster
# ##############################################################################
com.arsdigita.london.cms.dublin.audience_domain=LGAL
# SCI bundle integration package configuration parameters
# LDN bundle integration package configuration parameters
# ##############################################################################
# ccm-sci-bundle (Loader only)
# ccm-ldn-aplaws (Loader only)
#com.arsdigita.bundle.loader.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
#com.arsdigita.bundle.loader.custom_app_instances=com.arsdigita.navigation.Navigation:scimenu:ScientificCMS Navigation Menu,com.arsdigita.navigation.Navigation:libmenu:LibreCMS Navigation Menu
#com.arsdigita.bundle.loader.domain_mappings=STD-NAV:/navigation/,STD-NAV:/generic/,STD-NAV:/portal/
@ -235,7 +231,7 @@ com.arsdigita.london.cms.dublin.audience_domain=LGAL
#waf.admin.password.question=12345
#waf.admin.password.answer=6
#waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm
#waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm42web
#waf.runtime.jdbc_pool_size=60
#waf.web.server=localhost\:8080

View File

@ -1,14 +1,17 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml - COMPLETE - containing a nearly complete set of modules. -->
<!-- DEPRECATED! DON'T USE for new installations! -->
<!-- ======================================================================
project.xml - COMPLETE - containing a nearly complete set of modules
of the current aplaws repository.
DEPRECATED! DON'T USE for new installations!
======================================================================= -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus Complete Bundle"
version="2-0-0"
version="2.3.0"
release="compl-beta-1"
webxml="web.xml"
webapp="ROOT"
@ -37,18 +40,19 @@
in class ui.PortletTypeForm -->
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-portalworkspace-homepage"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-shortcuts"/>
<ccm:application name="ccm-subsite"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN core extensions -->
<ccm:application name="ccm-ldn-aplaws"/>
<ccm:application name="ccm-ldn-dublin"/>
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- APLAWS bundle -->
<ccm:application name="ccm-ldn-aplaws"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ OPTIONAL packages -->
@ -60,8 +64,8 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard Bundle's Content Assets -->
<ccm:application name="ccm-cms-assets-relatedlink"/>
<ccm:application name="ccm-cms-assets-fileattachment"/>
<ccm:application name="ccm-cms-assets-relatedlink"/>
<!-- Standard Bundle's Content Types -->
<ccm:application name="ccm-cms-types-filestorageitem"/>
@ -82,14 +86,20 @@
<ccm:application name="ccm-ldn-types-contact"/>
<ccm:application name="ccm-ldn-types-esdservice"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Extended Bundle -->
<!-- APLAWS+ potential ADD-ONS packages -->
<!-- These packages are not included in any distribution bundle. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Extended Bundle's Content Assets -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- The followong modules are part of the (deprecated) Complete Bundle -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Assets -->
<ccm:application name="ccm-cms-assets-imagestep"/>
<!-- Extended Bundle's Content Types -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Types -->
<ccm:application name="ccm-cms-types-agenda"/>
<ccm:application name="ccm-cms-types-bookmark"/>
<ccm:application name="ccm-cms-types-event"/>
@ -106,13 +116,13 @@
neither it does not appear in content center -->
<ccm:application name="ccm-cms-types-motditem"/>
<!-- Complete Bundle's Applications -->
<!-- Standard bundle's Add-On & Complete Bundle's Applications -->
<ccm:application name="ccm-atoz-siteproxy"/> <!-- requires siteproxy!-->
<ccm:application name="ccm-auth-http"/>
<!-- currently doesn't work for unknown reason -->
<ccm:application name="ccm-simplesurvey"/>
<!-- Without known funcionality -->
<ccm:application name="ccm-formbuilder-pdf"/>
<!-- currently doesn't work for unknown reason -->
<ccm:application name="ccm-simplesurvey"/>
<!-- Complete Bundle's LDN extensions -->
<ccm:application name="ccm-ldn-exporter"/>
@ -120,8 +130,6 @@
<ccm:application name="ccm-ldn-userpreferences"/>
</ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ potential ADD-ONS packages -->
@ -148,4 +156,5 @@
-->
</ccm:build>
</ccm:project>

View File

@ -77,20 +77,10 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
<servlet-class>com.arsdigita.web.CCMDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
@ -173,29 +163,6 @@
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET DECLARATIONS SECTION
@ -435,11 +402,6 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/themes/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
@ -525,16 +487,6 @@
<url-pattern>/themes/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ERROR PAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

View File

@ -13,4 +13,4 @@ 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
It usually stored in res/bundle/navigation
It is usually stored in res/bundle/navigation

View File

@ -0,0 +1,13 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
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!

View File

@ -1,3 +1,9 @@
* Fr Aug 01 2014 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.3.0
* Mo March 26 2012 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.0.0
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.

View File

@ -1,5 +1,10 @@
# APLAWS+ Demo bundle integration.properties
# ##############################################################################
# APLAWS+ DEMO bundle integration.properties, version 2.3.x
# ##############################################################################
#
#
# CORE BEBOP configuration parameters
# ##############################################################################
waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
#
; dhtml editor to use (system wide)
@ -11,7 +16,10 @@ waf.bebop.base_page=com.arsdigita.aplaws.ui.SimplePage
waf.categorization.show_internal_name=true
waf.dispatcher.default_expiry=3600
;
# CORE KERNEL configuration parameters
# ##############################################################################
waf.kernel.data_permission_check_enabled=false
waf.kernel.primary_user_identifier=email
; if you activate screen_name, forum loader does not work.
@ -19,31 +27,73 @@ waf.kernel.primary_user_identifier=email
waf.kernel.supported_languages=en,de,fr
waf.kernel.language_independent_items=true
; security.properties:
# CORE KERNEL.SECURITY configuration parameters
# ##############################################################################
; waf.login_config resembles DEFAULTS, but leaves off RegisterSSO, TODO CHECK!!
; config file is cad.kernel.security.SecurityConfig
; waf.login_config=Request\:com.arsdigita.kernel.security.AdminLoginModule\:sufficient,Request\:com.arsdigita.kernel.security.RecoveryLoginModule\:sufficient,Request\:com.arsdigita.kernel.security.CookieLoginModule\:requisite,Register\:com.arsdigita.kernel.security.LocalLoginModule\:requisite,Register\:com.arsdigita.kernel.security.UserIDLoginModule\:requisite,Register\:com.arsdigita.kernel.security.CookieLoginModule\:optional
waf.auto_registration_on=false
# CORE MAIL configuration parameters
# ##############################################################################
waf.mail.default_from=webmaster@aplaws.org
# CORE SEARCH.LUCENE configuration parameters
# ##############################################################################
waf.search.indexer=lucene
; Below parameter used in version 1.0.4, now outdated und not valid anymore
; May be useful to chech the lucene serach functionality. Has to be deleted
; after all QA testing
; waf.lucene.location=/var/ccm-devel/web/redhat/intratest/data/lucene
# CORE TEMPLATING configuration parameters
# ##############################################################################
; Searches for localized style sheet (among others)
waf.templating.stylesheet_resolver=com.arsdigita.templating.PatternStylesheetResolver
waf.templating.stylesheet_paths=/WEB-INF/resources/aplaws-stylesheet-paths.txt
core.ui.pagemap.root_page_url=portal/
core.ui.pagemap.workspace_url=portal/
core.ui.pagemap.user_redirect_url=content-center/redirect.jsp
# CORE UI configuration parameters
# ##############################################################################
core.ui.pagemap.root_page_url=/portal/
#core.ui.pagemap.user_redirect_url=content-center/redirect.jsp
core.ui.pagemap.user_redirect_url=/content-center/
core.ui.pagemap.workspace_url=/portal/
# With version 2 moved from kernel/security to ui rsp ui.permissions and
# no longer intended to be user configurable.
# TODO CHECK what these URLS (esp. ../one) is used for.
# waf.pagemap.permission=permissions/ ; DEFAULT
# waf.pagemap.perm_single=permissions/one
; workflow configuration
# CORE WEB configuration parameters
# ##############################################################################
# TODO: Check what exactly happens with/without this parameter set
;waf.web.cache_policy=none
; Default value is FALSE
;waf.web.deactivate_cache_host_notifications=true
;waf.web.dynamic_host_provider=com.arsdigita.util.servlet.HttpHost.SubsiteDynamicHostProvider
# CORE WORKFLOW configuration parameters
# ##############################################################################
waf.workflow.simple.alerts_enabled=true
waf.workflow.simple.alerts_sender=root@localhost.localdomain
; Configures the xml processing
# CORE XML processing configuration parameters
# ##############################################################################
waf.xml.xsl_transformer=xalan
waf.xml.activate_full_date_formatter=true
# ccm-cms parameters
# CMS configuration parameters
# ##############################################################################
com.arsdigita.cms.allow_content_create_in_section_listing=false
# 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
# Replace CMS category form with a terms specific widget
com.arsdigita.cms.category_authoring_add_form=com.arsdigita.london.terms.ui.ItemCategoryPicker
com.arsdigita.cms.default_folder_template_path=/default/aplaws-folder.jsp
com.arsdigita.cms.default_item_template_path=/default/aplaws-item.jsp
@ -58,15 +108,8 @@ com.arsdigita.cms.default_template_resolver_class=com.arsdigita.subsite.dispatch
; to use FCKeditor:
; com.arsdigita.cms.dhtml_editor_config=FCKEditor.Config.StyleDefault?,/assets/fckeditor/config/fckconfigOpenCCM.js
; com.arsdigita.cms.dhtml_editor_hidden_buttons=
; com.arsdigita.cms.dhtml_editor_plugins=
; to use deprecated HTMLarea (NOT recommended!):
; currently configuration is hardcoded, so the fest alternative works
; com.arsdigita.cms.dhtml_editor_config=HTMLArea
; com.arsdigita.cms.dhtml_editor_config=HTMLArea,/assets/htmlarea/config/Styled.js
; com.arsdigita.cms.dhtml_editor_plugins=TableOperations,CSS
com.arsdigita.cms.allow_content_create_in_section_listing=false
com.arsdigita.cms.disable_item_pfs=true
com.arsdigita.cms.hide_admin_tabs=true
@ -76,12 +119,18 @@ com.arsdigita.cms.hide_templates_tab=true
com.arsdigita.cms.hide_timezone=true
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
com.arsdigita.cms.soon_expired_timespan_days=7
com.arsdigita.cms.soon_expired_timespan_months=0
com.arsdigita.cms.unpublished_not_found=false
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.delete_workflow_after_publication=false
# ccm-cms-types-event parameters
com.arsdigita.cms.contenttypes.event.hide_cost=true
com.arsdigita.cms.contenttypes.event.hide_date_description=false
@ -89,7 +138,7 @@ com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.start_year=2010
com.arsdigita.cms.contenttypes.event.end_year_delta=5
@ -99,16 +148,21 @@ com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# atoz
# AtoZ configuration parameters
# ##############################################################################
com.arsdigita.atoz.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
# ccm-navigation application
# FORUM application
# ##############################################################################
# com.arsdigita.forum.admin_can_edit_posts=true ; DEFAULT anyway
com.arsdigita.forum.allow_quick_finish=true
# com.arsdigita.forum.author_can_edit_posts=true ; DEFAULT anyway
com.arsdigita.forum.disable_page_caching=true
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
# NAVIGATION application
# ##############################################################################
; com.arsdigita.navigation.category_menu_show_grand_children_min=1
; com.arsdigita.navigation.category_menu_show_grand_children=adaptive
; com.arsdigita.navigation.category_menu_show_grand_children_limit=1
@ -121,43 +175,57 @@ com.arsdigita.navigation.default_template=/templates/ccm-navigation/navigation/n
#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 if you really use remote search
com.arsdigita.london.search.num_threads=0
# ccm-subsite application
# SUBSITE configuration parameters
# ##############################################################################
com.arsdigita.subsite.root_category_picker=com.arsdigita.london.terms.ui.RootCategoryPicker
# ccm-themedirector application
# THEMEDIRECTOR configuration parameters
# ##############################################################################
# Required to point to the package containing the theme to copy from when creating
# a new theme! (In addition to default_theme_path. Otherwise no files are copied!
themedirector.default_theme_manifest=ccm-ldn-aplaws.web.mf
# Required to denote the dir containing the default theme!
themedirector.default_theme_path=themes/static/aplaws
# ccm-auth-http application
; auth.http.admin_email=webmaster@aplaws.org
; auth.http.admin_identifier=webmaster
# LDN-SEARCH application
# ##############################################################################
com.arsdigita.london.search.show_sponsored_links=true
; Comment this out or increase the num_of_threads if you really use remote search
com.arsdigita.london.search.num_threads=0
# AUTH-HTTP application
# ##############################################################################
auth.http.admin_email=webmaster@aplaws.org
auth.http.admin_identifier=webmaster
# LDN Dublin Core configuration parameters
# ##############################################################################
com.arsdigita.london.cms.dublin.audience_domain=LGAL
; =============================================================================================
; runtime specific configurations
# LDN bundle integration package configuration parameters
# ##############################################################################
# ccm-ldn-aplaws (Loader only)
#com.arsdigita.bundle.loader.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
#com.arsdigita.bundle.loader.custom_app_instances=com.arsdigita.navigation.Navigation:scimenu:ScientificCMS Navigation Menu,com.arsdigita.navigation.Navigation:libmenu:LibreCMS Navigation Menu
#com.arsdigita.bundle.loader.domain_mappings=STD-NAV:/navigation/,STD-NAV:/generic/,STD-NAV:/portal/
waf.admin.email=webmaster@example.org
waf.admin.name.given=Aplaws
waf.admin.name.family=Administrator
waf.admin.password=123456
waf.admin.password.question=12345
waf.admin.password.answer=6
waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm
waf.runtime.jdbc_pool_size=60
# ==============================================================================
# runtime specific configurations
# ==============================================================================
waf.web.server=localhost\:8080
#waf.admin.email=webmaster@aplaws.org
#waf.admin.name.given=Aplaws
#waf.admin.name.family=Administrator
#waf.admin.password=123456
#waf.admin.password.question=12345
#waf.admin.password.answer=6
#waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm42web
#waf.runtime.jdbc_pool_size=60
#waf.web.server=localhost\:8080
# =============================================================================================

View File

@ -1,15 +1,17 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml - (ldn)demo - containing the same set of modules as the
extended set, with a complete, ready to run pre-configuration.
Has to keep synchronized with the extended bundle! -->
<!-- ======================================================================
project.xml - (ldn)demo - containing the same set of modules as the
standard set, with a complete, ready to run pre-configuration.
Has to keep synchronized with the extended bundle!
======================================================================= -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus Demo Spin"
version="2-0-0"
version="2.3.0"
release="demo"
webxml="web.xml"
webapp="ROOT"
@ -21,7 +23,7 @@
</ccm:databases>
<ccm:build>
<ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ set of CORE packages -->
@ -44,18 +46,19 @@
in class ui.PortletTypeForm -->
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-portalworkspace-homepage"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-shortcuts"/>
<ccm:application name="ccm-subsite"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN core extensions -->
<ccm:application name="ccm-ldn-aplaws"/>
<ccm:application name="ccm-ldn-dublin"/>
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- APLAWS bundle -->
<ccm:application name="ccm-ldn-aplaws"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ OPTIONAL packages -->
@ -67,8 +70,8 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard Bundle's Content Assets -->
<ccm:application name="ccm-cms-assets-relatedlink"/>
<ccm:application name="ccm-cms-assets-fileattachment"/>
<ccm:application name="ccm-cms-assets-relatedlink"/>
<!-- Standard Bundle's Content Types -->
<ccm:application name="ccm-cms-types-filestorageitem"/>
@ -90,7 +93,6 @@
<ccm:application name="ccm-ldn-types-esdservice"/>
</ccm:build>
</ccm:build>
</ccm:project>

View File

@ -15,6 +15,21 @@
</context-param>
<!-- Require secure connection by redirect to host-port part
of parameter waf.web.secure_server
<filter>
<filter-name>secured</filter-name>
<filter-class>com.arsdigita.web.SecureFilter</filter-class>
</filter>
-->
<!-- Initialize Profiler timers
NOT USED with standard / production
<filter>
<filter-name>profiler</filter-name>
<filter-class>com.arsdigita.profiler.ProfilerFilter</filter-class>
</filter>
-->
<filter>
<filter-name>shortcuts</filter-name>
<filter-class>com.arsdigita.shortcuts.ShortcutFilter</filter-class>
@ -25,6 +40,19 @@
<filter-class>com.arsdigita.subsite.SubsiteFilter</filter-class>
</filter>
<!-- NOT USED HERE
<filter-mapping>
<filter-name>secured</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>profiler</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
-->
<filter-mapping>
<filter-name>subsite</filter-name>
<url-pattern>/*</url-pattern>
@ -50,20 +78,11 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.CCMDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>cache-manager</servlet-name>
<servlet-class>com.arsdigita.caching.CacheServlet</servlet-class>
@ -116,7 +135,7 @@
<servlet>
<servlet-name>content-center</servlet-name>
<servlet-class>com.arsdigita.cms.WorkspaceServlet</servlet-class>
<servlet-class>com.arsdigita.cms.ContentCenterServlet</servlet-class>
</servlet>
<servlet>
@ -144,29 +163,6 @@
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET DECLARATIONS SECTION
@ -406,11 +402,6 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/themes/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
@ -496,16 +487,6 @@
<url-pattern>/themes/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ERROR PAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

View File

@ -13,4 +13,4 @@ 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
It usually stored in res/bundle/navigation
It is usually stored in res/bundle/navigation

View File

@ -0,0 +1,13 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
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!

View File

@ -1,5 +1,8 @@
* Mo March 26 29012 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure ov version 2.0.0
* Fr Aug 01 2014 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.3.0
* Mo March 26 2012 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.0.0
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.

View File

@ -1,5 +1,5 @@
# ##############################################################################
# APLAWS+ devel bundle integration.properties, version 2.2.x
# APLAWS+ devel bundle integration.properties, version 2.3.x
# Main purpose is to ensure compatibility among all CCM packages and to provide
# Add On packages.
# ##############################################################################
@ -134,6 +134,7 @@ com.arsdigita.cms.soon_expired_timespan_months=0
com.arsdigita.cms.unpublished_not_found=false
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.delete_workflow_after_publication=false
# ccm-cms-types-event parameters
@ -143,7 +144,7 @@ com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.start_year=2010
com.arsdigita.cms.contenttypes.event.end_year_delta=5
@ -153,11 +154,6 @@ com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# AtoZ configuration parameters
# ##############################################################################
@ -214,9 +210,9 @@ auth.http.admin_identifier=webmaster
# ##############################################################################
com.arsdigita.london.cms.dublin.audience_domain=LGAL
# SCI bundle integration package configuration parameters
# LDN bundle integration package configuration parameters
# ##############################################################################
# ccm-sci-bundle (Loader only)
# ccm-ldn-aplaws (Loader only)
#com.arsdigita.bundle.loader.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
#com.arsdigita.bundle.loader.custom_app_instances=com.arsdigita.navigation.Navigation:scimenu:ScientificCMS Navigation Menu,com.arsdigita.navigation.Navigation:libmenu:LibreCMS Navigation Menu
#com.arsdigita.bundle.loader.domain_mappings=STD-NAV:/navigation/,STD-NAV:/generic/,STD-NAV:/portal/

View File

@ -1,16 +1,18 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml - (ldn)devel - containing all modules of the current aplaws
<!-- ======================================================================
project.xml - (ldn) DEVEL - containing all modules of the current aplaws
repository. It is specifically for developers to help them to make
every module deployable and to create the distribution.
It is NOT a production grade bundle! -->
It is NOT a production grade bundle!
======================================================================= -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus (devel)"
version="2-0-0"
version="2.3.0"
release="devel"
webxml="web.xml"
webapp="ROOT"
@ -22,7 +24,7 @@
</ccm:databases>
<ccm:build>
<ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ set of CORE packages -->
@ -45,18 +47,19 @@
in class ui.PortletTypeForm -->
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-portalworkspace-homepage"/>
<!-- <ccm:application name="ccm-rssfeed"/> -->
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-shortcuts"/>
<ccm:application name="ccm-subsite"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN core extensions -->
<ccm:application name="ccm-ldn-aplaws"/>
<ccm:application name="ccm-ldn-dublin"/>
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- APLAWS bundle -->
<ccm:application name="ccm-ldn-aplaws"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ OPTIONAL packages -->
@ -68,8 +71,8 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard Bundle's Content Assets -->
<ccm:application name="ccm-cms-assets-relatedlink"/>
<ccm:application name="ccm-cms-assets-fileattachment"/>
<ccm:application name="ccm-cms-assets-relatedlink"/>
<!-- Standard Bundle's Content Types -->
<ccm:application name="ccm-cms-types-filestorageitem"/>
@ -90,14 +93,20 @@
<ccm:application name="ccm-ldn-types-contact"/>
<ccm:application name="ccm-ldn-types-esdservice"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Complete Bundle DEPRECATED! -->
<!-- APLAWS+ potential ADD-ONS packages -->
<!-- These packages are not included in any distribution bundle. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Complete Bundle's Content Assets -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- The followong modules are part of the deprecated Complete Bundle -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Assets -->
<ccm:application name="ccm-cms-assets-imagestep"/>
<!-- Complete Bundle's Content Types -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Types -->
<ccm:application name="ccm-cms-types-agenda"/>
<ccm:application name="ccm-cms-types-bookmark"/>
<ccm:application name="ccm-cms-types-event"/>
@ -111,21 +120,22 @@
<ccm:application name="ccm-cms-types-simpleaddress"/>
<ccm:application name="ccm-cms-types-siteproxy"/>
<!-- Current code does not include any xsl templates,
neither it does not appear in content center -->
neither it does not appear in content center
DON'T use it in a new installation ! -->
<ccm:application name="ccm-cms-types-motditem"/>
<!-- Complete Bundle's Applications -->
<!-- Standard bundle's Add-On & Complete Bundle's Applications -->
<ccm:application name="ccm-atoz-siteproxy"/> <!-- requires siteproxy!-->
<ccm:application name="ccm-auth-http"/>
<!-- Without known funcionality, Don't use it in new installation! -->
<ccm:application name="ccm-formbuilder-pdf"/>
<!-- currently doesn't work for unknown reason -->
<ccm:application name="ccm-simplesurvey"/>
<!-- Without known funcionality -->
<ccm:application name="ccm-formbuilder-pdf"/>
<ccm:application name="ccm-ldn-userpreferences"/>
<!-- Complete Bundle's LDN extensions -->
<!-- Standard bundle's Add-On (& Complete Bundle's) LDN extensions -->
<ccm:application name="ccm-ldn-exporter"/>
<ccm:application name="ccm-ldn-freeform"/>
<ccm:application name="ccm-ldn-userpreferences"/>
@ -161,15 +171,25 @@
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Content Types under evaluation -->
<!--
<ccm:application name="ccm-webpage"/>
-->
<!-- Applications under evaluation -->
<!-- Currently broken. -->
<!--
<ccm:application name="ccm-docmgr"/>
-->
<!-- some minor program issues -->
<!--
<ccm:application name="ccm-portalserver"/>
-->
<!-- no documentation -->
<!--
<ccm:application name="ccm-weblog"/>
-->
<!-- Portlets under evaluation -->
<!-- Currently broken.
@ -179,5 +199,5 @@
<ccm:application name="ccm-portlet-helloworld"/> -->
</ccm:build>
</ccm:build>
</ccm:project>

View File

@ -77,20 +77,10 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
<servlet-class>com.arsdigita.web.CCMDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
@ -173,29 +163,6 @@
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET DECLARATIONS SECTION
@ -435,11 +402,6 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/themes/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
@ -525,16 +487,6 @@
<url-pattern>/themes/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ERROR PAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

View File

@ -13,4 +13,4 @@ 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
It usually stored in res/bundle/navigation
It is usually stored in res/bundle/navigation

View File

@ -0,0 +1,13 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
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!

View File

@ -1,3 +1,9 @@
* Fr Aug 01 2014 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.3.0
* Mo March 26 2012 Peter Boy <pboy@barkhof.uni-bremen.de>
- Modified to new deployment structure of version 2.0.0
* Thu Sep 22 2005 Alan Pevec <apevec@redhat.com>
- Build all APLAWS+ bundles from the common set of templates.

View File

@ -1,5 +1,5 @@
# ##############################################################################
# APLAWS+ Standard bundle integration.properties, version 2.2.x
# APLAWS+ Standard bundle integration.properties, version 2.3.x
# ##############################################################################
#
#
@ -132,6 +132,7 @@ com.arsdigita.cms.soon_expired_timespan_months=0
com.arsdigita.cms.unpublished_not_found=false
com.arsdigita.cms.use_section_categories=false
com.arsdigita.cms.use_streamlined_creation=true
com.arsdigita.cms.delete_workflow_after_publication=false
# ccm-cms-types-event parameters
@ -141,7 +142,7 @@ com.arsdigita.cms.contenttypes.event.hide_event_type=true
com.arsdigita.cms.contenttypes.event.hide_link_to_map=true
com.arsdigita.cms.contenttypes.event.hide_main_contributor=true
com.arsdigita.cms.contenttypes.event.use_html_date_description=false
com.arsdigita.cms.contenttypes.event.start_year=2000
com.arsdigita.cms.contenttypes.event.start_year=2010
com.arsdigita.cms.contenttypes.event.end_year_delta=5
@ -151,11 +152,6 @@ com.arsdigita.cms.contenttypes.newsitem.start_year=2000
com.arsdigita.cms.contenttypes.newsitem.end_year_delta=5
# Forum application
com.arsdigita.forum.show_new_tabs=true
com.arsdigita.forum.use_wysiwyg_editor=true
com.arsdigita.forum.allow_quick_finish=true
com.arsdigita.forum.disable_page_caching=true
# AtoZ configuration parameters
# ##############################################################################
@ -212,9 +208,9 @@ auth.http.admin_identifier=webmaster
# ##############################################################################
com.arsdigita.london.cms.dublin.audience_domain=LGAL
# SCI bundle integration package configuration parameters
# LDN bundle integration package configuration parameters
# ##############################################################################
# ccm-sci-bundle (Loader only)
# ccm-ldn-aplaws (Loader only)
#com.arsdigita.bundle.loader.category_files=bundle/categories/sci-nav-domain-1.00.xml,bundle/categories/sci-nav-hierarchy-1.00.xml
#com.arsdigita.bundle.loader.custom_app_instances=com.arsdigita.navigation.Navigation:scimenu:ScientificCMS Navigation Menu,com.arsdigita.navigation.Navigation:libmenu:LibreCMS Navigation Menu
#com.arsdigita.bundle.loader.domain_mappings=STD-NAV:/navigation/,STD-NAV:/generic/,STD-NAV:/portal/
@ -231,7 +227,7 @@ com.arsdigita.london.cms.dublin.audience_domain=LGAL
#waf.admin.password.question=12345
#waf.admin.password.answer=6
#waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm
#waf.runtime.jdbc_url=jdbc\:postgresql\://localhost/ccm?user\=ccm&password\=ccm42web
#waf.runtime.jdbc_pool_size=60
#waf.web.server=localhost\:8080

View File

@ -1,18 +1,24 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- project.xml - (ldn)standard - containing those modules of current
aplaws repository which are used by most Local Authorities. -->
<!-- ======================================================================
project.xml - (ldn)standard - includes a set of modules supposed to be
useful for most (or even any) Local Authorities.
Other modules are commented out but compiled into an add-on bundle to
be used by a site administrator to create a customized installation
using ccm-hostinit command.
======================================================================= -->
<ccm:project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ccm="http://ccm.redhat.com/ccm-project"
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus Standard Spin"
version="2.2.2"
release="std-beta"
webxml="web.xml"
webapp="ROOT"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools-ng/common/xsd/project.xsd">
ccmVersion="6.1"
name="aplaws"
prettyName="APLAWS plus Standard Spin"
version="2.3.0"
release="std-beta"
webxml="web.xml"
webapp="ROOT"
xsi:schemaLocation="http://ccm.redhat.com/ccm-project file:tools-ng/common/xsd/project.xsd">
<ccm:databases>
<ccm:database name="postgres"/>
@ -20,7 +26,8 @@
</ccm:databases>
<ccm:build>
<ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ set of CORE packages -->
<!-- NONE can be omitted for technical reasons / internal dependencies -->
@ -42,18 +49,19 @@
in class ui.PortletTypeForm -->
<ccm:application name="ccm-portalworkspace"/>
<ccm:application name="ccm-portalworkspace-homepage"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-rssfeed"/>
<ccm:application name="ccm-shortcuts"/>
<ccm:application name="ccm-subsite"/>
<ccm:application name="ccm-themedirector"/>
<!-- LDN core extensions -->
<ccm:application name="ccm-ldn-aplaws"/>
<ccm:application name="ccm-ldn-dublin"/>
<ccm:application name="ccm-ldn-search"/>
<ccm:application name="ccm-ldn-terms"/>
<ccm:application name="ccm-ldn-util"/>
<!-- APLAWS bundle -->
<ccm:application name="ccm-ldn-aplaws"/>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ OPTIONAL packages -->
@ -88,21 +96,21 @@
<ccm:application name="ccm-ldn-types-esdservice"/>
</ccm:build>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ potential ADD-ONS packages -->
<!-- These packages are not included in any distribution bundle. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- ADD-ONs Content Assets -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- The followong modules are part of the deprecated Complete Bundle -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Standard bundle's Add-On & Complete Bundle's Content Assets -->
<!--
<ccm:application name="ccm-cms-assets-imagestep"/>
<ccm:application name="ccm-cms-assets-notes"/>
-->
<!-- ADD-ONs Bundle's Content Types -->
<!-- Standard bundle's Add-On (& Complete Bundle's) Content Types -->
<!--
<ccm:application name="ccm-cms-types-agenda"/>
<ccm:application name="ccm-cms-types-bookmark"/>
@ -120,20 +128,50 @@
-->
<!-- Standard bundle's Add-On & Complete Bundle's Applications -->
<!--
<ccm:application name="ccm-atoz-siteproxy"/> <!- - requires siteproxy!- ->
<ccm:application name="ccm-auth-http"/>
<ccm:application name="ccm-forum-categorised"/>
<!- - Without known funcionality
DON't use it in a new installation! - ->
<ccm:application name="ccm-formbuilder-pdf"/>
<!- - currently doesn't work for unknown reason - ->
<ccm:application name="ccm-simplesurvey"/>
-->
<!-- Standard bundle's Add-On (& Complete Bundle's) LDN extensions -->
<!--
<ccm:application name="ccm-ldn-exporter"/>
<ccm:application name="ccm-ldn-freeform"/>
<ccm:application name="ccm-ldn-userpreferences"/>
-->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- APLAWS+ potential ADD-ONS packages -->
<!-- These packages are not included in any distribution bundle. -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- ADD-ONs Content Assets -->
<!--
<ccm:application name="ccm-cms-assets-notes"/>
-->
<!-- ADD-ONs Bundle's Content Types -->
<!--
<ccm:application name="ccm-cms-types-image"/>
-->
<!-- ADD-ONs Bundle's Applications -->
<!--
<ccm:application name="ccm-auth-http"/>
<ccm:application name="ccm-bookmarks"/>
<ccm:application name="ccm-docrepo"/>
<ccm:application name="ccm-faq"/>
<ccm:application name="ccm-forum-categorised"/>
<ccm:application name="ccm-atoz-siteproxy"/>
-->
<!-- ADD-ONs Bundle's LDN extensions -->
<!--
<ccm:application name="ccm-ldn-exporter"/>
<ccm:application name="ccm-ldn-freeform"/>
-->
</ccm:build>
</ccm:project>

View File

@ -77,20 +77,10 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>com.arsdigita.web.ContextRegistrationServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>/</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ccm-dispatcher</servlet-name>
<servlet-class>com.arsdigita.web.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
<servlet-class>com.arsdigita.web.CCMDispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
@ -173,29 +163,6 @@
<servlet-class>com.arsdigita.cms.dispatcher.TemplateXSLServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>TextOnlyServlet</servlet-name>
<display-name>Text Only Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/text</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>PrintFriendlyServlet</servlet-name>
<display-name>Printer Friendly Output Servlet</display-name>
<servlet-class>
com.arsdigita.web.InternalPrefixerServlet
</servlet-class>
<init-param>
<param-name>prefix</param-name>
<param-value>/print</param-value>
</init-param>
</servlet>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MODULES SERVLET DECLARATIONS SECTION
@ -435,11 +402,6 @@
basically requirred by ccm-core
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/themes/null/reg/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ccm-dispatcher</servlet-name>
<url-pattern>/ccm/*</url-pattern>
@ -525,16 +487,6 @@
<url-pattern>/themes/servlet/template/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>TextOnlyServlet</servlet-name>
<url-pattern>/text/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>PrintFriendlyServlet</servlet-name>
<url-pattern>/print/*</url-pattern>
</servlet-mapping>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ERROR PAGES
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

View File

@ -13,4 +13,4 @@ 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
It usually stored in res/bundle/navigation
It is usually stored in res/bundle/navigation

View File

@ -0,0 +1,13 @@
Bundle subdir themes
Purpose:
This subdir may optionally contain theme files which either replace part of the
theme or add files to the theme provided as default for ScientificCMS and this
way adopt the theme for site specific design.
All files and subdirectories all copied asis to the applications ~/themes
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!

View File

@ -3,45 +3,71 @@
# "PatternStylesheetResolver". Please read the Javadoc for that file for
# the full story.
# Output type is for things such as text/javascript
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::-::locale::.xsl
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::.xsl
# Currently the "resource" part is actually "short-circuited", see
# Templating#transformURL(url). As long as we store and synchronize all theme
# files in each server's local file system, we use the direct file apprach to
# avoid unnecessary http request and traffic between client (user) and server!
# Additionally all modules are installed into one webapp context, so the
# webapp tag is redundant, but sort of required by some part of the code.
# Theme with single entry point (e.g Mandalay) managed by themedirector
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/start.xsl
#http://::host::/::webapp::/themes/::themedir::/::theme::/start.xsl
# Theme with single entry point (e.g Mandalay) unmanaged default
#http://::host::/resource/::webapp::/themes/mandalay/start.xsl
#http://::host::/::webapp::/themes/mandalay/start.xsl
# ==============================================================================
# The following is for multi-entry themes, the traditional way in APLAWS
# ==============================================================================
# Output type is for things such as text/javascript stored in tradition default theme
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::-::locale::.xsl
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::.xsl
http://::host::/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::-::locale::.xsl
http://::host::/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::outputtype::.xsl
# Grabs custom item xsl for CMS
http://::host::/themes/servlet/content-item/index.xsl?oid=::item_template_oid::&delegated=::item_delegated_url::
# added by Quasimodo
# Theme with single entry point (e.g Mandalay)
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/start.xsl
# Theme, managed by themedirector, with optional locale & prefix
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::-::locale::.xsl
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::.xsl
http://::host::/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::.xsl
# Theme, with optional locale & prefix
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::prefix::.xsl
# Theme, with optional locale
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::locale::.xsl
http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::.xsl
# Theme managed by themedirector, with optional locale (without prefix)
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::locale::.xsl
#http://::host::/resource/::webapp::/themes/::themedir::/::theme::/::application::-::url::.xsl
http://::host::/::webapp::/themes/::themedir::/::theme::/::application::-::url::-::locale::.xsl
http://::host::/::webapp::/themes/::themedir::/::theme::/::application::-::url::.xsl
# APLAWS default, with locale and prefix
# XXX change ROOT -> ccm-ldn-aplaws
http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::-::prefix::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::-::prefix::.xsl
#http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::-::prefix::-::locale::.xsl
#http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::-::prefix::.xsl
#http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::-::prefix::-::locale::.xsl
#http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::-::prefix::.xsl
http://::host::/::webapp::/themes/static/aplaws/::application::-::url::-::prefix::-::locale::.xsl
http://::host::/::webapp::/themes/static/aplaws/::application::-::url::-::prefix::.xsl
#http://::host::/ROOT/__ccm__/themes/aplaws/::application::-::url::-::prefix::-::locale::.xsl
#http://::host:://ROOT/__ccm__/themes/aplaws/::application::-::url::-::prefix::.xsl
# APLAWS default, with locale
# XXX change ROOT -> ccm-ldn-aplaws
http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::-::locale::.xsl
http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::-::locale::.xsl
http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::.xsl
# APLAWS generic default, with locale (without prefix)
#http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::-::locale::.xsl
#http://::host::/resource/ROOT/themes/static/aplaws/::application::-::url::.xsl
#http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::-::locale::.xsl
#http://::host::/resource/ROOT/__ccm__/themes/aplaws/::application::-::url::.xsl
http://::host::/::webapp::/themes/static/aplaws/::application::-::url::-::locale::.xsl
http://::host::/::webapp::/themes/static/aplaws/::application::-::url::.xsl
#http://::host::/::webapp::/__ccm__/themes/aplaws/::application::-::url::-::locale::.xsl
#http://::host::/::webapp::/__ccm__/themes/aplaws/::application::-::url::.xsl
# Global default, from application's own web app
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::.xsl
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
#http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::.xsl
http://::host::/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/::webapp::/themes/heirloom/apps/::application::/xsl/::url::.xsl
# Global default, from application's own web app - relocated version >= 6.6.1
http://::host::/resource/ROOT/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/resource/ROOT/themes/heirloom/apps/::application::/xsl/::url::.xsl
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::-::locale::.xsl
http://::host::/resource/::webapp::/themes/heirloom/apps/::application::/xsl/::url::.xsl

View File

@ -107,18 +107,19 @@ public class Loader extends PackageLoader {
"bundle/aplaws/hierarchy-nav-1.03.xml"
};
private StringParameter m_servicesDomain;
private StringParameter m_navigationDomain;
private StringParameter m_interactionDomain;
private StringParameter m_subjectDomain;
private StringParameter m_rssDomain;
private BooleanParameter m_liteLoad;
private StringParameter m_customNavKey;
private final StringParameter m_servicesDomain;
private final StringParameter m_navigationDomain;
private final StringParameter m_interactionDomain;
private final StringParameter m_subjectDomain;
private final StringParameter m_rssDomain;
private final BooleanParameter m_liteLoad;
private final StringParameter m_customNavKey;
private final StringParameter m_customNavPath;
private final StringParameter m_customNavUseContext;
private final StringParameter m_customNavTitle;
private final StringParameter m_customNavDesc;
private URLParameter m_customNavDomainURL;
private StringParameter m_customNavPath;
private StringParameter m_customNavUseContext;
private StringParameter m_customNavTitle;
private StringParameter m_customNavDesc;
public Loader() {
m_servicesDomain = new StringParameter(
@ -201,6 +202,7 @@ public class Loader extends PackageLoader {
}
@Override
public void run(final ScriptContext ctx) {
/* */
@ -271,7 +273,7 @@ public class Loader extends PackageLoader {
customNavTitle, customNavDesc, "1.0.0", new Date());
registerDomain(customNavKey, '/'+customNavPath+'/', null);
registerDomain(customNavKey, "/main/", customNavUseContext);
registerDomain(customNavKey, "/info/", customNavUseContext);
}

View File

@ -0,0 +1,3 @@
version = 2.3.x
appname = ScientificCMS
apphomepage = http://www.scientificcms.org

View File

@ -9,13 +9,13 @@
version="1.0">
<!-- IMPORT DEFINITIONS ccm-forum installed as separate web application
<xsl:import href="../../../../ROOT/__ccm__/themes/aplaws/category-step.xsl"/>
<xsl:import href="../../../../ROOT/__ccm__/static/cms/admin/category-step/category-step.xsl"/>
<xsl:import href="../../../../ROOT/themes/static/aplaws/category-step.xsl"/>
<xsl:import href="../../../../ROOT/themes/heirloom/packages/cms/admin/category-step/category-step.xsl"/>
-->
<!-- IMPORT DEFINITIONS ccm-forum installed into the main CCM webapp
-->
<xsl:import href="../../../__ccm__/themes/aplaws/category-step.xsl"/>
<xsl:import href="../../../__ccm__/static/cms/admin/category-step/category-step.xsl"/>
<xsl:import href="../../category-step.xsl"/>
<xsl:import href="../../../heirloom/packages/cms/xsl/admin/category-step/category-step.xsl"/>
<xsl:output method="html" indent="yes"/>

View File

@ -1,14 +1,13 @@
<?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:aplaws="http://www.arsdigita.com/aplaws/1.0"
xmlns:ui="http://www.arsdigita.com/ui/1.0"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:terms="http://xmlns.redhat.com/london/terms/1.0"
exclude-result-prefixes="xsl bebop aplaws ui nav cms terms"
version="1.0">
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bebop="http://www.arsdigita.com/bebop/1.0"
xmlns:aplaws="http://www.arsdigita.com/aplaws/1.0"
xmlns:ui="http://www.arsdigita.com/ui/1.0"
xmlns:cms="http://www.arsdigita.com/cms/1.0"
xmlns:nav="http://ccm.redhat.com/navigation"
xmlns:terms="http://xmlns.redhat.com/london/terms/1.0"
exclude-result-prefixes="xsl bebop aplaws ui nav cms terms"
version="1.0">
<xsl:import href="../types/ContentTypes.xsl"/>
@ -31,11 +30,21 @@
<div id="utils">
<span class="hide">|</span>
<a href="{$dispatcher-prefix}/portal/" title="home" accesskey="1">home</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/atoz" title="a-z">a-z</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/navigation/sitemap.jsp" title="site map" accesskey="3">site map</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="/contact" title="contact us" accesskey="9">contact us</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="/help" title="help" accesskey="6">help</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/portal/" title="home" accesskey="1">home</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/atoz" title="a-z">a-z</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/navigation/sitemap.jsp" title="site map" accesskey="3">site map</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="/contact" title="contact us" accesskey="9">contact us</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="/help" title="help" accesskey="6">help</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
</div>
@ -110,7 +119,23 @@
<xsl:template name="TLC">
<span class="hide">|</span>
<!-- CONFIGURED TO MATCH LGCL TOP CATEGORIES-->
<a href="{$dispatcher-prefix}/navigation/business" title="business channel">business</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/community-and-living" title="community and living channel">community and living</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/council--government-and-democracy" title="council, government and democracy channel">council, government and democracy</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/education-and-learning" title="education and learning channel">education</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/environment" title="environment channel">environment</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/health-and-social-care" title="health and social care channel">health and social care</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/housing" title="housing channel">housing</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/jobs-and-careers" title="jobs and careers channel">jobs and careers</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/legal-services" title="legal services channel">legal services</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/leisure-and-culture" title="leisure and culture channel">leisure and culture</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/policing-and-public-safety" title="policing and public safety channel">policing and public safety</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/social-issues" title="social issues channel">social issues</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/transport-and-streets" title="transport and streets channel">transport and streets</a>
<a href="{$dispatcher-prefix}/navigation/business" title="business channel">business</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/navigation/community-and-living" title="community and living channel">community and living</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/navigation/council--government-and-democracy" title="council, government and democracy channel">council, government and democracy</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/education-and-learning" title="education and learning channel">education</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/environment" title="environment channel">environment</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/health-and-social-care" title="health and social care channel">health and social care</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/housing" title="housing channel">housing</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/jobs-and-careers" title="jobs and careers channel">jobs and careers</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/legal-services" title="legal services channel">legal services</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/leisure-and-culture" title="leisure and culture channel">leisure and culture</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/policing-and-public-safety" title="policing and public safety channel">policing and public safety</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/social-issues" title="social issues channel">social issues</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/transport-and-streets" title="transport and streets channel">transport and streets</a>
</xsl:template>
@ -121,7 +146,21 @@
<p id="foottlc">
<span class="hide">|</span>
<!-- CONFIGURED TO MATCH LGCL TOP CATEGORIES-->
<a href="{$dispatcher-prefix}/navigation/business" title="business channel">business</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/community-and-living" title="community and living channel">community and living</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/council--government-and-democracy" title="council, government and democracy channel">council, government and democracy</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/education-and-learning" title="education and learning channel">education</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/environment" title="environment channel">environment</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/health-and-social-care" title="health and social care channel">health and social care</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/housing" title="housing channel">housing</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/jobs-and-careers" title="jobs and careers channel">jobs and careers</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/legal-services" title="legal services channel">legal services</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/leisure-and-culture" title="leisure and culture channel">leisure and culture</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/policing-and-public-safety" title="policing and public safety channel">policing and public safety</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/social-issues" title="social issues channel">social issues</a><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/transport-and-streets" title="transport and streets channel">transport and streets</a>
<a href="{$dispatcher-prefix}/navigation/business" title="business channel">business</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
<a href="{$dispatcher-prefix}/navigation/community-and-living" title="community and living channel">community and living</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/council--government-and-democracy" title="council, government and democracy channel">council, government and democracy</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/education-and-learning" title="education and learning channel">education</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/environment" title="environment channel">environment</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/health-and-social-care" title="health and social care channel">health and social care</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/housing" title="housing channel">housing</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/jobs-and-careers" title="jobs and careers channel">jobs and careers</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/legal-services" title="legal services channel">legal services</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/leisure-and-culture" title="leisure and culture channel">leisure and culture</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/policing-and-public-safety" title="policing and public safety channel">policing and public safety</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/social-issues" title="social issues channel">social issues</a>
<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;|<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;<a href="{$dispatcher-prefix}/navigation/transport-and-streets" title="transport and streets channel">transport and streets</a>
</p>
<p id="legal">
@ -132,9 +171,11 @@
<p>
<span class="hide">|</span>
<a href="http://validator.w3.org/check/referer"><img border="0" src="{$theme-prefix}/images/w3c-xhtml.png" alt="Valid HTML 4.01!" height="31" width="88" /></a>
<a href="http://validator.w3.org/check/referer">
<img border="0" src="{$theme-prefix}/images/w3c-xhtml.png" alt="Valid HTML 4.01!" height="31" width="88" /></a>
<span class="hide">|</span>
<a href="http://jigsaw.w3.org/css-validator/"><img style="border:0;width:88px;height:31px" src="{$theme-prefix}/images/w3c-css.png" alt="Valid CSS!" /></a>
<a href="http://jigsaw.w3.org/css-validator/">
<img style="border:0;width:88px;height:31px" src="{$theme-prefix}/images/w3c-css.png" alt="Valid CSS!" /></a>
</p>

View File

@ -25,18 +25,19 @@ import com.arsdigita.util.parameter.BooleanParameter;
public class DublinCoreConfig extends AbstractConfig {
private Parameter m_audience;
private Parameter m_coverageSpatial;
private Parameter m_coverageUnit;
private Parameter m_owner;
private Parameter m_owner_contact;
private Parameter m_rights;
private Parameter m_publisher;
private Parameter m_use_ccn_portal;
private final Parameter m_audience;
private final Parameter m_coverageSpatial;
private final Parameter m_coverageUnit;
private final Parameter m_owner;
private final Parameter m_owner_contact;
private final Parameter m_rights;
private final Parameter m_publisher;
private final Parameter m_use_ccn_portal;
private Parameter m_relatedItemsSubjectDomain;
private final Parameter m_relatedItemsSubjectDomain;
public DublinCoreConfig() {
m_audience = new StringParameter(
"com.arsdigita.london.cms.dublin.audience_domain",
Parameter.OPTIONAL,

View File

@ -63,8 +63,9 @@ import org.apache.log4j.Logger;
public class DublinCoreItem extends ContentItem {
private static final Logger logger = Logger.getLogger(DublinCoreItem.class);
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.london.cms.dublin.DublinCoreItem";
"com.arsdigita.london.cms.dublin.DublinCoreItem";
private static final DublinCoreConfig s_config = new DublinCoreConfig();
static {
@ -288,10 +289,12 @@ public class DublinCoreItem extends ContentItem {
/*Language*/
@Override
public String getLanguage() {
return getOwner().getLanguage();
}
@Override
public void setLanguage(String language) {
throw new UnsupportedOperationException(
"Metadata language is no longer set explicitly. " +
@ -396,6 +399,7 @@ public class DublinCoreItem extends ContentItem {
}
@Override
public void beforeSave() {
super.beforeSave();
if (get(DC_LANGUAGE) == null) {

View File

@ -32,35 +32,42 @@ public class Initializer extends ContentAssetInitializer {
super("ccm-ldn-dublin.pdl.mf");
}
@Override
public String getTraversalXML() {
return "/WEB-INF/traversal-adapters/com/arsdigita/" +
"cms/contentassets/DublinCore.xml";
}
@Override
public String getProperty() {
return "dublinCore";
}
@Override
public String getBaseType() {
return ContentPage.BASE_DATA_OBJECT_TYPE;
}
@Override
public Class getAuthoringStep() {
return DublinCoreEdit.class;
}
@Override
public GlobalizedMessage getAuthoringStepLabel() {
return new GlobalizedMessage(
"com.arsdigita.london.cms.dublin.dublin_core_label",
"com.arsdigita.london.cms.dublin.DublinCoreResources");
}
@Override
public GlobalizedMessage getAuthoringStepDescription() {
return new GlobalizedMessage(
"com.arsdigita.london.cms.dublin.dublin_core_description",
"com.arsdigita.london.cms.dublin.DublinCoreResources");
}
@Override
public int getAuthoringStepSortKey() {
return 3; // XXX config param please
}

View File

@ -28,6 +28,7 @@ import com.arsdigita.categorization.Category;
public class RelatedItemsQueryFactoryImpl extends RelatedItemsQueryFactory {
@Override
public RelatedItemsQuery getRelatedItems(ContentPage page,
Category current) {
ContentBundle bundle = (ContentBundle)page.getParent();

View File

@ -15,37 +15,13 @@
package com.arsdigita.london.cms.dublin.ui;
import com.arsdigita.london.cms.dublin.DublinCoreItem;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.bebop.form.SingleSelect;
import com.arsdigita.bebop.FormSection;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.form.DateTime;
import com.arsdigita.bebop.form.TextArea;
import com.arsdigita.bebop.form.Widget;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.bebop.parameters.TrimmedStringParameter;
import com.arsdigita.bebop.SaveCancelSection;
import com.arsdigita.bebop.parameters.DateTimeParameter;
import com.arsdigita.bebop.parameters.StringLengthValidationListener;
import com.arsdigita.bebop.ColumnPanel;
import com.arsdigita.bebop.form.Submit;
import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.Party;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.bebop.Form;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.form.Option;
import com.arsdigita.london.terms.Domain;
import java.util.Date;
import org.apache.log4j.Logger;
@ -55,7 +31,7 @@ public class DublinCoreForm extends Form {
private ItemSelectionModel m_itemModel;
private DublinCoreFormSection m_section;
private final DublinCoreFormSection m_section;
public DublinCoreForm(ItemSelectionModel itemModel) {
@ -63,10 +39,12 @@ public class DublinCoreForm extends Form {
m_itemModel = itemModel;
m_section = new DublinCoreFormSection(false) {
@Override
protected String getInitialDescription(ContentItem item) {
return ((ContentPage) item).getSearchSummary();
}
@Override
protected ContentItem getSelectedItem(PageState state) {
return m_itemModel.getSelectedItem(state);
}

View File

@ -25,7 +25,6 @@ import com.arsdigita.bebop.parameters.StringLengthValidationListener;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.bebop.parameters.TrimmedStringParameter;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.Party;
@ -37,54 +36,56 @@ public abstract class DublinCoreFormSection extends FormSection
private static final Logger s_log = Logger.getLogger(DublinCoreFormSection.class);
private Widget m_audience;
private final Widget m_audience;
private Widget m_ccn_portal_instance;
// private TextField m_contributor; // obviously not used anywhere, nevertheless
// a db field! Not part of the UI
private Widget m_coverageSpatial;
private final Widget m_coverageSpatial;
private TextField m_coveragePostcode;
private final TextField m_coveragePostcode;
private Widget m_coverageUnit;
private final Widget m_coverageUnit;
private DateTime m_temporalBegin;
private final DateTime m_temporalBegin;
private DateTime m_temporalEnd;
private final DateTime m_temporalEnd;
private TextArea m_creatorOwner;
private final TextArea m_creatorOwner;
private TextField m_creatorContact;
private final TextField m_creatorContact;
private TextArea m_description;
private final TextArea m_description;
// private TextField m_identifier;
// private TextField m_location;
// private TextField m_preservation;
private TextArea m_publisher;
private final TextArea m_publisher;
// private TextField m_relation;
private TextArea m_rights;
private final TextArea m_rights;
// private TextField m_source;
private TextField m_coverageSpatialRef;
private final TextField m_coverageSpatialRef;
private TextField m_dateValid;
private final TextField m_dateValid;
private TextField m_disposalReview;
private final TextField m_disposalReview;
private TextField m_keywords;
private final TextField m_keywords;
private boolean editableDescription;
private final boolean editableDescription;
private Submit m_cancel;
private final Submit m_cancel;
public DublinCoreFormSection(boolean editableDescription) {
this.editableDescription = editableDescription;
m_audience = createControlledList("audience", DublinCoreItem
.getConfig().getAudienceDomain());
m_audience = createControlledList("audience",
DublinCoreItem.getConfig()
.getAudienceDomain());
m_coverageSpatial = createControlledList("coverageSpatial",
DublinCoreItem.getConfig().getCoverageSpatialDomain());
@ -267,6 +268,7 @@ public abstract class DublinCoreFormSection extends FormSection
}
}
@Override
public void init(FormSectionEvent fse) throws FormProcessException {
PageState state = fse.getPageState();
@ -329,6 +331,7 @@ public abstract class DublinCoreFormSection extends FormSection
}
}
@Override
public void process(FormSectionEvent fse) throws FormProcessException {
PageState state = fse.getPageState();

View File

@ -223,6 +223,7 @@ public class DublinCoreSummary extends ColumnPanel {
}
}
@Override
public void generateXML(PageState state,
Element parent) {
ContentPage item = (ContentPage)m_itemModel.getSelectedObject(state);
@ -299,8 +300,8 @@ public class DublinCoreSummary extends ColumnPanel {
protected class CategoryListModelBuilder extends LockableImpl
implements ListModelBuilder
{
private ItemSelectionModel m_itemModel;
private String m_context;
private final ItemSelectionModel m_itemModel;
private final String m_context;
public CategoryListModelBuilder(ItemSelectionModel itemModel,
String context) {
@ -308,6 +309,7 @@ public class DublinCoreSummary extends ColumnPanel {
m_context = context;
}
@Override
public ListModel makeModel( List l, PageState state ) {
ContentPage item = (ContentPage) m_itemModel.getSelectedObject(state);
return new CategoryIteratorListModel(item.getCategories(m_context));
@ -315,6 +317,7 @@ public class DublinCoreSummary extends ColumnPanel {
}
protected class SimpleCellRenderer implements ListCellRenderer {
@Override
public Component getComponent(List list, PageState state, Object value,
String key, int index,
boolean isSelected) {

View File

@ -101,6 +101,9 @@ public class FreeformContentItem extends ContentPage {
/**
* Retrieves all assets with the specified mime type and returns
* the one with the specified ranking.
* @param mimeType
* @param rank
* @return
**/
public Asset getOneAsset(String mimeType, String rank) {
Asset asset = null;
@ -157,7 +160,8 @@ public class FreeformContentItem extends ContentPage {
/**
* remove an asset from associationw with the FreeformContentItem
*
* TODO: what to do if the asset isn't already associated ?
* TODO: what to do if the asset isn't already associated ?
* @param oneAsset
**/
public void removeAsset( Asset oneAsset ) {
DataAssociationCursor da = ((DataAssociation)get(ASSETS)).cursor();

View File

@ -43,6 +43,7 @@ public class Loader extends PackageLoader {
private static final Logger s_log = Logger.getLogger(Loader.class);
@Override
public void run(final ScriptContext ctx) {
// Nada yet
}

View File

@ -62,6 +62,7 @@ public class FreeformTextAsset extends TextAsset {
/* abstract implementation */
@Override
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
@ -69,6 +70,7 @@ public class FreeformTextAsset extends TextAsset {
// This is a temporary fix to a null value being inserted into
// acs_object.display_name.
@Override
public void beforeSave() {
String displayName = getDisplayName();
set(com.arsdigita.kernel.ACSObject.DISPLAY_NAME, displayName);

View File

@ -3,7 +3,7 @@
name="ccm-ldn-types-contact"
prettyName="Red Hat CCM Content Types"
version="6.6.1"
release="1"
release="2"
webapp="ROOT">
<ccm:dependencies>
<ccm:requires name="ccm-core" version="6.6.0" relation="ge"/>

View File

@ -18,7 +18,7 @@
// $Id: Contact.pdl 1689 2007-10-26 11:06:23Z chrisg23 $
// $DateTime: 2004/08/17 23:15:09 $
model com.arsdigita.london.contenttypes;
model com.arsdigita.cms.contenttypes.ldn;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ContentItem;

View File

@ -18,7 +18,7 @@
// $Id: ContactAddress.pdl 287 2005-02-22 00:29:02Z sskracic $
// $DateTime: 2004/08/17 23:15:09 $
model com.arsdigita.london.contenttypes;
model com.arsdigita.cms.contenttypes.ldn;
import com.arsdigita.cms.ContentItem;

View File

@ -18,7 +18,7 @@
// $Id: ContactPhone.pdl 287 2005-02-22 00:29:02Z sskracic $
// $DateTime: 2004/08/17 23:15:09 $
model com.arsdigita.london.contenttypes;
model com.arsdigita.cms.contenttypes.ldn;
import com.arsdigita.cms.ContentItem;

View File

@ -18,7 +18,7 @@
// $Id: ContactType.pdl 287 2005-02-22 00:29:02Z sskracic $
// $DateTime: 2004/08/17 23:15:09 $
model com.arsdigita.london.contenttypes;
model com.arsdigita.cms.contenttypes.ldn;
import com.arsdigita.cms.ContentItem;

View File

@ -24,11 +24,11 @@ alter table init_requirements drop constraint init_requirements_init_f_cmmdn ;
alter table init_requirements drop constraint init_require_requ_init_f_i6rgg ;
update inits
set class_name='com.arsdigita.london.contenttypes.ContactInitializer'
set class_name='com.arsdigita.cms.contenttypes.ldn.ContactInitializer'
where class_name='com.arsdigita.cms.contenttypes.ContactInitializer' ;
update init_requirements
set init='com.arsdigita.london.contenttypes.ContactInitializer'
set init='com.arsdigita.cms.contenttypes.ldn.ContactInitializer'
where init='com.arsdigita.cms.contenttypes.ContactInitializer' ;
ALTER TABLE init_requirements
@ -42,56 +42,56 @@ ALTER TABLE init_requirements
update content_types
set object_type='com.arsdigita.london.contenttypes.Contact',
set object_type='com.arsdigita.cms.contenttypes.ldn.Contact',
label='LDN Contact',
description='A London Contact person in CMS',
classname='com.arsdigita.london.contenttypes.Contact'
classname='com.arsdigita.cms.contenttypes.ldn.Contact'
where classname='com.arsdigita.cms.contenttypes.Contact' ;
update authoring_steps
set label_key='Contact Properties',
label_bundle='com.arsdigita.london.contenttypes.ContactResources',
label_bundle='com.arsdigita.cms.contenttypes.ldn.ContactResources',
description_key='Edit the basic contact properties',
description_bundle='com.arsdigita.london.contenttypes.ContactResources',
component='com.arsdigita.london.contenttypes.ui.ContactPropertiesStep'
description_bundle='com.arsdigita.cms.contenttypes.ldn.ContactResources',
component='com.arsdigita.cms.contenttypes.ldn.ui.ContactPropertiesStep'
where component='com.arsdigita.cms.contenttypes.ui.ContactPropertiesStep' ;
update authoring_steps
set label_key='Contact Address Properties',
label_bundle='com.arsdigita.london.contenttypes.ContactResources',
label_bundle='com.arsdigita.cms.contenttypes.ldn.ContactResources',
description_key='Edit the Address associated with contact',
description_bundle='com.arsdigita.london.contenttypes.ContactResources',
component='com.arsdigita.london.contenttypes.ui.ContactAddressProperties'
description_bundle='com.arsdigita.cms.contenttypes.ldn.ContactResources',
component='com.arsdigita.cms.contenttypes.ldn.ui.ContactAddressProperties'
where component='com.arsdigita.cms.contenttypes.ui.ContactAddressProperties' ;
update authoring_steps
set label_key='Contact Phones Properties',
label_bundle='com.arsdigita.london.contenttypes.ContactResources',
label_bundle='com.arsdigita.cms.contenttypes.ldn.ContactResources',
description_key='Edit the Phones associated with contact',
description_bundle='com.arsdigita.london.contenttypes.ContactResources',
component='com.arsdigita.london.contenttypes.ui.ContactPhonesPanel'
description_bundle='com.arsdigita.cms.contenttypes.ldn.ContactResources',
component='com.arsdigita.cms.contenttypes.ldn.ui.ContactPhonesPanel'
where component='com.arsdigita.cms.contenttypes.ui.ContactPhonesPanel' ;
update acs_objects
set (object_type,default_domain_class) =
('com.arsdigita.london.contenttypes.Contact' ,
'com.arsdigita.london.contenttypes.Contact' )
('com.arsdigita.cms.contenttypes.ldn.Contact' ,
'com.arsdigita.cms.contenttypes.ldn.Contact' )
where default_domain_class like 'com.arsdigita.cms.contenttypes.Contact' ;
update lucene_docs
set type='com.arsdigita.london.contenttypes.Contact'
set type='com.arsdigita.cms.contenttypes.ldn.Contact'
where type='com.arsdigita.cms.contenttypes.Contact' ;
update vcx_generic_operations
set value=replace(value,'cms.contenttypes.Contact', 'london.contenttypes.Contact')
set value=replace(value,'cms.contenttypes.Contact', 'cms.contenttypes.ldn.Contact')
where value like '%cms.contenttypes.Contact%';
update vcx_obj_changes
set obj_id=replace(obj_id,'cms.contenttypes.Contact', 'london.contenttypes.Contact')
set obj_id=replace(obj_id,'cms.contenttypes.Contact', 'cms.contenttypes.ldn.Contact')
where obj_id like '%cms.contenttypes.Contact%';
update vcx_tags
set tagged_oid=replace(tagged_oid,'cms.contenttypes.Contact', 'london.contenttypes.Contact')
set tagged_oid=replace(tagged_oid,'cms.contenttypes.Contact', 'cms.contenttypes.ldn.Contact')
where tagged_oid like '%cms.contenttypes.Contact%';

View File

@ -6,28 +6,28 @@
<ctd:content-type
label="LDN Contact"
description="A London Contact person in CMS"
objectType="com.arsdigita.london.contenttypes.Contact"
classname="com.arsdigita.london.contenttypes.Contact">
objectType="com.arsdigita.cms.contenttypes.ldn.Contact"
classname="com.arsdigita.cms.contenttypes.ldn.Contact">
<ctd:authoring-kit createComponent="com.arsdigita.london.contenttypes.ui.ContactCreate">
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ldn.ui.ContactCreate">
<ctd:authoring-step
label="Contact Properties"
description="Edit the basic contact properties"
descriptionBundle="com.arsdigita.london.contenttypes.ContactResources"
component="com.arsdigita.london.contenttypes.ui.ContactPropertiesStep"/>
descriptionBundle="com.arsdigita.cms.contenttypes.ldn.ContactResources"
component="com.arsdigita.cms.contenttypes.ldn.ui.ContactPropertiesStep"/>
<ctd:authoring-step
label="Contact Address Properties"
description="Edit the basic contact properties"
descriptionBundle="com.arsdigita.london.contenttypes.ContactResources"
component="com.arsdigita.london.contenttypes.ui.ContactAddressProperties"/>
descriptionBundle="com.arsdigita.cms.contenttypes.ldn.ContactResources"
component="com.arsdigita.cms.contenttypes.ldn.ui.ContactAddressProperties"/>
<ctd:authoring-step
label="Contact Phones"
description="Edit the Phones associated with contact"
descriptionBundle="com.arsdigita.london.contenttypes.ContactResources"
component="com.arsdigita.london.contenttypes.ui.ContactPhonesPanel"/>
descriptionBundle="com.arsdigita.cms.contenttypes.ldn.ContactResources"
component="com.arsdigita.cms.contenttypes.ldn.ui.ContactPhonesPanel"/>
</ctd:authoring-kit>
</ctd:content-type>

View File

@ -8,7 +8,7 @@
The default properties for Contact are left as is and are inherited from ContentPage
-->
<xrd:context name="com.arsdigita.cms.dispatcher.SimpleXMLGenerator">
<xrd:adapter objectType="com.arsdigita.london.contenttypes.Contact"
<xrd:adapter objectType="com.arsdigita.cms.contenttypes.ldn.Contact"
extends="com.arsdigita.cms.ContentPage">
<xrd:associations rule="include">
<xrd:property name="/object/phones"/>

View File

@ -11,10 +11,10 @@
<table name="ct_ldn_contact_phones"/>
<table name="ct_ldn_contacts"/>
<initializer class="com.arsdigita.london.contenttypes.ContactInitializer"/>
<initializer class="com.arsdigita.cms.contenttypes.ldn.ContactInitializer"/>
</provides>
<scripts>
<schema directory="ccm-ldn-types-contact"/>
<data class="com.arsdigita.london.contenttypes.ContactLoader"/>
<data class="com.arsdigita.cms.contenttypes.ldn.ContactLoader"/>
</scripts>
</load>

View File

@ -0,0 +1,426 @@
/*
* 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.cms.contenttypes.ldn;
import java.math.BigDecimal;
import org.apache.log4j.Logger;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ContentType;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataAssociation;
import com.arsdigita.persistence.DataAssociationCursor;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataOperation;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.util.Assert;
/**
* <code>DomainObject</code> class to represent Contact <code>ContentType</code>
* objects.
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: Contact.java 1689 2007-10-26 11:06:23Z chrisg23 $
*/
public class Contact extends ContentPage {
/**
* data object type for this domain object
*/
public static final String BASE_DATA_OBJECT_TYPE
= "com.arsdigita.cms.contenttypes.ldn.Contact";
/**
* PDL property names
*/
/*
* Flattened out Person object properties.Next 3 properties can be moved out
* to seperate object if needed.
*/
public static final String GIVEN_NAME = "givenName";
public static final String FAMILY_NAME = "familyName";
public static final String SUFFIX = "suffix";
public static final String EMAILS = "emails";
public static final String DESCRIPTION = "description";
public static final String ORG_NAME = "orgName";
public static final String DEPT_NAME = "deptName";
public static final String ROLE = "role";
/* Composite objects used by this class */
public static final String CONTACT_TYPE = "contactType";
public static final String CONTACT_ADDRESS = "contactAddress";
public static final String PHONES = "phones";
public static final String ITEMS = "associatedContentItemsForContact";
private static final Logger s_log = Logger.getLogger(Contact.class);
/**
* Default constructor.
*/
public Contact() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Adds an association between this contact and the given content item.
*
* @param item
*/
public void addContentItem(ContentItem item) {
s_log.debug("item is " + item);
item.addToAssociation(getItemsForContact());
}
/**
* Deletes the association between this contact and the given content item.
*
* @param item
*/
public void removeContentItem(ContentItem item) {
s_log.debug("item is " + item);
DataOperation operation = SessionManager
.getSession()
.retrieveDataOperation(
"com.arsdigita.contenttypes.ldn.removeContactFromContentItemAssociation");
operation.setParameter("itemID", new Integer(item.getID().intValue()));
operation.execute();
}
/**
* Removes all mappings between this contact and any other content item.
*
*/
private void removeItemMappings() {
DataOperation operation = SessionManager
.getSession()
.retrieveDataOperation(
"com.arsdigita.contenttypes.ldn.removeContactFromAllAssociations");
operation.setParameter("contactID", new Integer(this.getID().intValue()));
operation.execute();
}
/**
* Gets the DataAssociation that holds the mapping between this contact and
* any content items.
*
* @return
*/
public DataAssociation getItemsForContact() {
return (DataAssociation) get(ITEMS);
}
/**
* Returns the Contact for a given content item.
*
* @param item
* @return
*/
public static Contact getContactForItem(ContentItem item) {
s_log.debug("getting contact for item " + item);
DataQuery query = SessionManager.getSession().retrieveQuery(
"com.arsdigita.contenttypes.ldn.getContactForItem");
query.setParameter("itemID", item.getID());
BigDecimal contactID;
Contact contact = null;
while (query.next()) {
contactID = (BigDecimal) query.get("contactID");
contact = new Contact(contactID);
}
s_log.debug("returning contact " + contact);
return contact;
}
/**
* Constructor. Retrieves an object instance with the given id.
*
* @param id the id of the object to retrieve
*/
public Contact(BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public Contact(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor. Create a Contact domain object using the given data object.
*
* @param obj the object data to use
*/
public Contact(DataObject obj) {
super(obj);
}
/**
* Constructor.
* @param type
*/
public Contact(String type) {
super(type);
}
@Override
public void beforeSave() {
super.beforeSave();
Assert.exists(getContentType(), ContentType.class);
}
@Override
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
/**
* Accessor. Get the GIVEN_NAME for this Contact.
* @return
*/
public String getGivenName() {
return (String) get(GIVEN_NAME);
}
/**
* Mutator. Set the GIVEN_NAME for this Contact.
* @param gn
*/
public void setGivenName(String gn) {
set(GIVEN_NAME, gn);
}
/**
* Accessor. Get the FAMILY_NAME for this Contact.
* @return
*/
public String getFamilyName() {
return (String) get(FAMILY_NAME);
}
/**
* Mutator. Set the FAMILY_NAME for this Contact.
* @param fn
*/
public void setFamilyName(String fn) {
set(FAMILY_NAME, fn);
}
/**
* Accessor. Get the SUFFIX for this Contact.
* @return
*/
public String getSuffix() {
return (String) get(SUFFIX);
}
/**
* Mutator. Set the DESCRIPTION for this Contact.
* @param suf
*/
public void setSuffix(String suf) {
set(SUFFIX, suf);
}
/**
* Accessor. Get the EMAILS for this Contact.
* @return
*/
public String getEmails() {
return (String) get(EMAILS);
}
/**
* Mutator. Set the EMAILS for this Contact.
* @param ems
*/
public void setEmails(String ems) {
set(EMAILS, ems);
}
/**
* Accessor. Get the CONTACT_TYPE for this Contact.
* @return
*/
public String getContactTypeName() {
String ctTypeName = "";
if (getContactType() != null) {
ctTypeName = getContactType().getTypeName();
}
return ctTypeName;
}
/**
* Accessor. Get the DESCRIPTION for this Contact.
* @return
*/
@Override
public String getDescription() {
return (String) get(DESCRIPTION);
}
/**
* Mutator. Set the DESCRIPTION for this Contact.
* @param desc
*/
@Override
public void setDescription(String desc) {
set(DESCRIPTION, desc);
}
/**
* Accessor. Get the ORG_NAME for this Contact.
* @return
*/
public String getOrganisationName() {
return (String) get(ORG_NAME);
}
/**
* Mutator. Set the ORG_NAME for this Contact.
* @param orgName
*/
public void setOrganisationName(String orgName) {
set(ORG_NAME, orgName);
}
/**
* Accessor. Get the DEPT_NAME for this Contact.
* @return
*/
public String getDeptName() {
return (String) get(DEPT_NAME);
}
/**
* Mutator. Set the DEPT_NAME for this Contact.
* @param deptName
*/
public void setDeptName(String deptName) {
set(DEPT_NAME, deptName);
}
/**
* Accessor. Get the ROLE for this Contact.
* @return
*/
public String getRole() {
return (String) get(ROLE);
}
/**
* Mutator. Set the ROLE for this Contact.
* @param role
*/
public void setRole(String role) {
set(ROLE, role);
}
/**
* return type of Contact associated with this Contact object.
*
* @return null if there is no associated <code><ContactType/code> object.
*/
public ContactType getContactType() {
DataObject obj = retrieveDataobject(CONTACT_TYPE);
if (obj != null) {
return new ContactType(obj);
}
return null;
}
/**
* Mutator. Set the CONTACT_TYPE for this Contact.
* @param ct
*/
public void setContactType(ContactType ct) {
setAssociation(CONTACT_TYPE, ct);
}
/**
* ***** ContactAddress object manipulation methods ********************
*/
/**
* set the ContactAddress object association.
* @param caddr
*/
public void setContactAddress(ContactAddress caddr) {
setAssociation(CONTACT_ADDRESS, caddr);
}
/**
* Get the associated ContactAddress object for this Contact.
*
* @return null if no Address is present.
*/
public ContactAddress getContactAddress() {
DataObject obj = retrieveDataobject(CONTACT_ADDRESS);
if (obj != null) {
return new ContactAddress(obj);
}
return null;
}
/**
* ***** ContactPhone object manipulation methods ********************
*/
/**
* Add a Phone object to the collection of the phone objects this contact
* has.
* @param ph
*/
public void addPhone(ContactPhone ph) {
add(PHONES, ph);
save();
}
/**
* Remove the passed in Phone object from the list of phones this contact
* object has.
* @param ph
*/
public void removePhone(ContactPhone ph) {
ph.delete();
save();
}
/**
* Return collection of Phone objects associated with this Contact object.
* @return
*/
public ContactPhonesCollection getPhones() {
DataAssociationCursor dac = ((DataAssociation) get(PHONES)).cursor();
return new ContactPhonesCollection(dac);
}
private DataObject retrieveDataobject(String attr) {
return (DataObject) get(attr);
}
}

View File

@ -0,0 +1,183 @@
/*
* 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.cms.contenttypes.ldn;
import java.math.BigDecimal;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
/**
* DomainObject class to represent objects of type <code>ContactAddress</code>
* These objects are associated with Contact objects in this package.
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: ContactAddress.java 287 2005-02-22 00:29:02Z sskracic $
*/
public class ContactAddress extends ContentItem {
/**
* data object type for this domain object
*/
public static final String BASE_DATA_OBJECT_TYPE
= "com.arsdigita.cms.contenttypes.ldn.ContactAddress";
public static final String SAON = "saon";
public static final String PAON = "paon";
public static final String STREET_DESC = "streetDesc";
public static final String STREET_REF_NO = "streetRefNo";
public static final String LOCALITY = "locality";
public static final String TOWN = "town";
public static final String ADMINISTRATIVE_AREA = "administrativeArea";
public static final String POST_TOWN = "postTown";
public static final String POST_CODE = "postCode";
public static final String PROP_REF_NO = "referenceNo";
/**
* Default constructor.
*/
public ContactAddress() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Constructor. Retrieves an object instance with the given id.
*
* @param id the id of the object to retrieve
*/
public ContactAddress(BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Create a Contact domain object using the given data object.
*
* @param obj the object data to use
*/
public ContactAddress(DataObject obj) {
super(obj);
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public ContactAddress(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor.
*
* @param type
*/
public ContactAddress(String type) {
super(type);
}
@Override
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
public String getSaon() {
return (String) get(SAON);
}
public void setSaon(String saon) {
set(SAON, saon);
}
public String getPaon() {
return (String) get(PAON);
}
public void setPaon(String paon) {
set(PAON, paon);
}
public String getStreetDesc() {
return (String) get(STREET_DESC);
}
public void setStreetDesc(String desc) {
set(STREET_DESC, desc);
}
public String getStreetRefNo() {
return (String) get(STREET_REF_NO);
}
public void setStreetRefNo(String refno) {
set(STREET_REF_NO, refno);
}
public String getLocality() {
return (String) get(LOCALITY);
}
public void setLocality(String locality) {
set(LOCALITY, locality);
}
public String getTown() {
return (String) get(TOWN);
}
public void setTown(String town) {
set(TOWN, town);
}
public String getAdministrativeArea() {
return (String) get(ADMINISTRATIVE_AREA);
}
public void setAdministrativeArea(String adArea) {
set(ADMINISTRATIVE_AREA, adArea);
}
public String getPostTown() {
return (String) get(POST_TOWN);
}
public void setPostTown(String ptown) {
set(POST_TOWN, ptown);
}
public String getPostCode() {
return (String) get(POST_CODE);
}
public void setPostCode(String pcode) {
set(POST_CODE, pcode);
}
public String getReferenceNo() {
return (String) get(PROP_REF_NO);
}
public void setReferenceNo(String refno) {
set(PROP_REF_NO, refno);
}
}

View File

@ -17,13 +17,13 @@
*
*/
package com.arsdigita.london.contenttypes;
package com.arsdigita.cms.contenttypes.ldn;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.contenttypes.ContentItemTraversalAdapter;
import com.arsdigita.cms.contenttypes.ContentTypeInitializer;
import com.arsdigita.london.contenttypes.ui.ContactPropertiesAddStep;
import com.arsdigita.cms.contenttypes.ldn.ui.ContactPropertiesAddStep;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.globalization.GlobalizedMessage;
import com.arsdigita.runtime.DomainInitEvent;
@ -77,15 +77,16 @@ public class ContactInitializer extends ContentTypeInitializer {
/**
* Retrieves fully qualified traversal adapter file name.
*
* @return
*/
@Override
public String getTraversalXML() {
return
"/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Contact.xml";
"/WEB-INF/traversal-adapters/com/arsdigita/cms/contenttypes/ldn/Contact.xml";
}
private static ArrayList phoneTypesList = new ArrayList(10);
private static final ArrayList phoneTypesList = new ArrayList(10);
static {
logger.debug("Static initalizer starting...");
phoneTypesList.add("Office");
@ -98,6 +99,7 @@ public class ContactInitializer extends ContentTypeInitializer {
/**
* Return the statically initialized list of phone types.
* @return
*/
public static ArrayList getPhoneTypes() {
return phoneTypesList;
@ -141,13 +143,13 @@ public class ContactInitializer extends ContentTypeInitializer {
private GlobalizedMessage getAuthoringStepDescription() {
return new GlobalizedMessage(
"com.arsdigita.london.contenttypes.contact_authoring_step_description",
"com.arsdigita.london.contenttypes.ContactResources");
"com.arsdigita.cms.contenttypes.ldn.ContactResources");
}
private GlobalizedMessage getAuthoringStepLabel() {
return new GlobalizedMessage(
"com.arsdigita.london.contenttypes.contact_authoring_step_label",
"com.arsdigita.london.contenttypes.ContactResources");
"com.arsdigita.cms.contenttypes.ldn.ContactResources");
}
private Class getAuthoringStep() {

View File

@ -0,0 +1,97 @@
/*
* 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.cms.contenttypes.ldn;
import com.arsdigita.cms.contenttypes.AbstractContentTypeLoader;
import com.arsdigita.runtime.ScriptContext;
/**
* Loader for <code>ContentType</code> <code>Contact</code>.
*
* Also loads a fixed set of <code>ContactType</code> objects.
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactLoader.java 287 2005-02-22 00:29:02Z sskracic $
*
*/
public class ContactLoader extends AbstractContentTypeLoader {
/**
* Defines the xml file containing the Contact content types property
* definitions.
*/
private static final String[] TYPES = {
"/WEB-INF/content-types/com/arsdigita/cms/contenttypes/ldn/Contact.xml"
};
/**
* Provides the of Contact contenttype property definitions implementing the
* parent's class abstract method.
*
* The file defines the types name as displayed in content center select box
* and the authoring steps. These are loaded into database.
*
* @return String Atring Array of fully qualified file names
*/
@Override
public String[] getTypes() {
return TYPES;
}
/**
* @see
* com.arsdigita.runtime.Script#run(com.arsdigita.runtime.ScriptContext)
*/
@Override
public void run(ScriptContext context) {
super.run(context);
loadContactTypes();
}
/**
* Create the fixed set of ContactTypes. This is a quick hack for now.If we
* need to extend it then we have to move it into an XML file and load it
* from initializer after checking it.
*/
protected void loadContactTypes() {
ContactType ct = new ContactType();
ct.setName("ContactType-Service-Provision");
ct.setTypeName("Service Provision");
ct.save();
ct = new ContactType();
ct.setName("ContactType-Enquiry");
ct.setTypeName("Enquiry");
ct.save();
ct = new ContactType();
ct.setName("ContactType-Complaint");
ct.setTypeName("Complaint");
ct.save();
ct = new ContactType();
ct.setName("ContactType-Escalation");
ct.setTypeName("Escalation");
ct.save();
}
}

View File

@ -0,0 +1,118 @@
/*
* 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.cms.contenttypes.ldn;
import java.math.BigDecimal;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
/**
* DomainObject class to represent objects of type <code>ContactPhone</code>.
* This object represents type of phone and it's number. They are associated
* with <code>Contact</code> objects.
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactPhone.java 287 2005-02-22 00:29:02Z sskracic $
*
*/
public class ContactPhone extends ContentItem {
/**
* data object type for this domain object
*/
public static final String BASE_DATA_OBJECT_TYPE
= "com.arsdigita.cms.contenttypes.ldn.ContactPhone";
/**
* PDL property names
*/
public static final String PHONE_TYPE = "phoneType";
public static final String PHONE_NUMBER = "phoneNumber";
/**
* Default constructor.
*/
public ContactPhone() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public ContactPhone(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor. Retrieves an object instance with the given id.
*
* @param id the id of the object to retrieve
*/
public ContactPhone(BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Create a Contact domain object using the given data object.
*
* @param obj the object data to use
*/
public ContactPhone(DataObject obj) {
super(obj);
}
/**
* Constructor.
*
* @param type
*/
public ContactPhone(String type) {
super(type);
}
@Override
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
//Accessors
public String getPhoneType() {
return (String) get(PHONE_TYPE);
}
public String getPhoneNumber() {
return (String) get(PHONE_NUMBER);
}
public void setPhoneNumber(String num) {
set(PHONE_NUMBER, num);
}
public void setPhoneType(String type) {
set(PHONE_TYPE, type);
}
}

View File

@ -16,43 +16,47 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes;
package com.arsdigita.cms.contenttypes.ldn;
import com.arsdigita.domain.DomainCollection;
import com.arsdigita.persistence.DataCollection;
/**
* Collection of <code>ContactPhone</code>S objects.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactPhonesCollection.java 287 2005-02-22 00:29:02Z sskracic $
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactPhonesCollection.java 287 2005-02-22 00:29:02Z sskracic
* $
*/
public class ContactPhonesCollection extends DomainCollection {
/**
* Constructor.
*
**/
public ContactPhonesCollection(DataCollection dataCollection) {
super(dataCollection);
}
/**
* Returns a <code>DomainObject</code> for the current position in
* the collection.
*
**/
public ContactPhone getPhone() {
return new ContactPhone(m_dataCollection.getDataObject());
}
/**
* Constructor.
*
* @param dataCollection
*/
public ContactPhonesCollection(DataCollection dataCollection) {
super(dataCollection);
}
public String getPhoneType(){
return getPhone().getPhoneType();
}
/**
* Returns a <code>DomainObject</code> for the current position in the
* collection.
*
* @return
*/
public ContactPhone getPhone() {
return new ContactPhone(m_dataCollection.getDataObject());
}
public String getPhoneNumber(){
return getPhone().getPhoneNumber();
}
public String getPhoneType() {
return getPhone().getPhoneType();
}
public String getPhoneNumber() {
return getPhone().getPhoneNumber();
}
}

View File

@ -12,8 +12,8 @@ london.contenttypes.ui.contact.type=Contact Type
london.contenttypes.ui.contact.orgname=Organization Name
london.contenttypes.ui.contact.deptname=Department Name
london.contenttypes.ui.contact.role=Role of Contact
london.contenttypes.ui.contact.givenname=Given Name
london.contenttypes.ui.contact.familyname=Family Name
cms.contenttypes.ldn.ui.contact.givenname=Given Name
cms.contenttypes.ldn.ui.contact.familyname=Family Name
london.contenttypes.ui.contact.suffix=Suffix
london.contenttypes.ui.contact.phone_number=Number
london.contenttypes.ui.contact.phone_type=Types
@ -33,3 +33,4 @@ london.contenttypes.ui.contact.remove_contact=Remove contact
london.contenttypes.ui.contact.search_contact_label=Search for Contact:
london.contenttypes.ui.contact.no_contacts_yet=This item does not have a contact.
london.contenttypes.ui.contact.add_contact=Add
cms.contenttypes.ldn.contact.type_label=Contact

View File

@ -8,12 +8,12 @@ london.contenttypes.ui.contact.address.administrative_area=Administrative Area
london.contenttypes.ui.contact.address.posttown=Postalischer Ort
london.contenttypes.ui.contact.address.postcode=Postalischer Code
london.contenttypes.ui.contact.address.proprefno=Gebietsreferenz
london.contenttypes.ui.contact.type=Kontakt Typ
london.contenttypes.ui.contact.type=Art des Kontakts
london.contenttypes.ui.contact.orgname=Organisation (Name)
london.contenttypes.ui.contact.deptname=Kreis
london.contenttypes.ui.contact.role=Rolle des Kontakts
london.contenttypes.ui.contact.givenname=Vorname
london.contenttypes.ui.contact.familyname=Familienname
cms.contenttypes.ldn.ui.contact.givenname=Vorname
cms.contenttypes.ldn.ui.contact.familyname=Familienname
london.contenttypes.ui.contact.suffix=Erg\u00e4nzung
london.contenttypes.ui.contact.phone_number=Telefonnummer
london.contenttypes.ui.contact.phone_type=Telefon Typ
@ -33,3 +33,4 @@ london.contenttypes.ui.contact.remove_contact=Kontakt entfernen
london.contenttypes.ui.contact.search_contact_label=Nach Kontakt suchen:
london.contenttypes.ui.contact.no_contacts_yet=es ist kein Kontakt zugeordnet.
london.contenttypes.ui.contact.add_contact=Hinzuf\u00fcgen
cms.contenttypes.ldn.contact.type_label=Kontakt

View File

@ -12,8 +12,8 @@ london.contenttypes.ui.contact.type=Contact Type
london.contenttypes.ui.contact.orgname=Organization Name
london.contenttypes.ui.contact.deptname=Department Name
london.contenttypes.ui.contact.role=Role of Contact
london.contenttypes.ui.contact.givenname=Given Name
london.contenttypes.ui.contact.familyname=Family Name
cms.contenttypes.ldn.ui.contact.givenname=Given Name
cms.contenttypes.ldn.ui.contact.familyname=Family Name
london.contenttypes.ui.contact.suffix=Suffix
london.contenttypes.ui.contact.phone_number=Number
london.contenttypes.ui.contact.phone_type=Types
@ -33,3 +33,4 @@ london.contenttypes.ui.contact.remove_contact=Remove contact
london.contenttypes.ui.contact.search_contact_label=Search for Contact:
london.contenttypes.ui.contact.no_contacts_yet=This item does not have a contact.
london.contenttypes.ui.contact.add_contact=Add
cms.contenttypes.ldn.contact.type_label=Contact

View File

@ -0,0 +1,102 @@
/*
* 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.cms.contenttypes.ldn;
import java.math.BigDecimal;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
/**
* DomainObject class to represent objects of <code>ContactType</code>. These
* objects are associated with <code>Contact</code> objects.
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: ContactType.java 287 2005-02-22 00:29:02Z sskracic $
*/
public class ContactType extends ContentItem {
/**
* data object type for this domain object
*/
public static final String BASE_DATA_OBJECT_TYPE
= "com.arsdigita.cms.contenttypes.ldn.ContactType";
public static final String TYPE_NAME = "typeName";
/**
* Default constructor.
*/
public ContactType() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Constructor. Retrieves an object instance with the given id.
*
* @param id the id of the object to retrieve
*/
public ContactType(BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public ContactType(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor. Create a Contact domain object using the given data object.
*
* @param obj the object data to use
*/
public ContactType(DataObject obj) {
super(obj);
}
/**
* Constructor.
*
* @param type
*/
public ContactType(String type) {
super(type);
}
@Override
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
public String getTypeName() {
return (String) get(TYPE_NAME);
}
public void setTypeName(String tname) {
set(TYPE_NAME, tname);
}
}

View File

@ -0,0 +1,94 @@
/*
* 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.cms.contenttypes.ldn;
import java.math.BigDecimal;
import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.SessionManager;
/**
* Class which represents a collection of ContactTypes.
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: ContactTypesCollection.java 287 2005-02-22 00:29:02Z sskracic $
*/
public class ContactTypesCollection extends DomainCollection {
/**
* Retrieve the collection of ContactTypes.
*/
public static ContactTypesCollection getContactTypesCollection() {
DataCollection typesColl = SessionManager.getSession().
retrieve(ContactType.BASE_DATA_OBJECT_TYPE);
return new ContactTypesCollection(typesColl);
}
/**
* private Constructor.Single ton type of class.
*
*
*/
private ContactTypesCollection(DataCollection dataCollection) {
super(dataCollection);
}
/**
* Returns a <code>DomainObject</code> for the current position in the
* collection.
*
* @return
*/
@Override
public DomainObject getDomainObject() {
return new ContactType(m_dataCollection.getDataObject());
}
/**
* Returns a <code>ContactType</code> for the current position in the
* collection.
*
* @return
*/
public ContactType getContactType() {
return (ContactType) getDomainObject();
}
/**
* Return the name of ContactType from current row.
*
* @return
*/
public String getContactTypeName() {
return getContactType().getTypeName();
}
/**
* Return the ID of ContactType from current row.
*
* @return
*/
public BigDecimal getContactTypeID() {
return getContactType().getID();
}
}

View File

@ -16,11 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import org.apache.log4j.Logger;
@ -28,44 +28,49 @@ import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.london.contenttypes.ContactAddress;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ldn.ContactAddress;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
/**
* A form class to edit the properties of <code>ContactAddress</code> object.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactAddressPropertyForm.java 287 2005-02-22 00:29:02Z sskracic $
*
* @author Shashin Shinde <a
* href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactAddressPropertyForm.java 287 2005-02-22 00:29:02Z
* sskracic $
*
*/
public class ContactAddressPropertyForm extends BasicItemForm {
private static final Logger s_log = Logger.getLogger(
ContactAddressPropertyForm.class);
/** Name of this form */
private static final String ID = "Contact_address_edit";
/**
* Creates a new form to edit the <code>ContactAddress</code> object properties
* associated with the <code>Contact</code> object specified by the
* item selection model passed in.
*
* @param itemModel The ItemSelectionModel to use to obtain the Contact
* object to work on
*/
public ContactAddressPropertyForm(ItemSelectionModel itemModel) {
super(ID, itemModel);
}
private static final Logger s_log = Logger.getLogger(
ContactAddressPropertyForm.class);
/**
* Adds widgets to edit the address properties to form.
* Only paon and streetDesc are required, rest are optional.
* This was cut down into small methods for subclasses to pick and choose.
**/
* Name of this form
*/
private static final String ID = "Contact_address_edit";
/**
* Creates a new form to edit the <code>ContactAddress</code> object
* properties associated with the <code>Contact</code> object specified by
* the item selection model passed in.
*
* @param itemModel The ItemSelectionModel to use to obtain the Contact
* object to work on
*/
public ContactAddressPropertyForm(ItemSelectionModel itemModel) {
super(ID, itemModel);
}
/**
* Adds widgets to edit the address properties to form. Only paon and
* streetDesc are required, rest are optional. This was cut down into small
* methods for subclasses to pick and choose.
*
*/
@Override
protected void addWidgets() {
addSAON();
@ -96,7 +101,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
paon.addValidationListener(new NotNullValidationListener());
add(paon);
}
protected void addStreetDesc() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.streetdesc")));
@ -105,7 +110,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
streetDesc.addValidationListener(new NotNullValidationListener());
add(streetDesc);
}
protected void addStreetRefNo() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.streetrefno")));
@ -113,7 +118,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
TextField streetRefNo = new TextField(streetRefNoParam);
add(streetRefNo);
}
protected void addLocality() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.locality")));
@ -121,7 +126,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
TextField locality = new TextField(localityParam);
add(locality);
}
protected void addTown() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.town")));
@ -129,7 +134,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
TextField town = new TextField(townParam);
add(town);
}
protected void addArea() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.administrative_area")));
@ -137,7 +142,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
TextField adArea = new TextField(adAreaParam);
add(adArea);
}
protected void addPostTown() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.posttown")));
@ -145,7 +150,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
TextField postTown = new TextField(postTownParam);
add(postTown);
}
protected void addPostCode() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.postcode")));
@ -153,7 +158,7 @@ public class ContactAddressPropertyForm extends BasicItemForm {
TextField postCode = new TextField(postCodeParam);
add(postCode);
}
protected void addPropRefNo() {
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.address.proprefno")));
@ -162,74 +167,80 @@ public class ContactAddressPropertyForm extends BasicItemForm {
add(propRefNo);
}
/**
* Initialize Form values from Contact object.
*/
public void init(FormSectionEvent fse) {
/**
* Initialize Form values from Contact object.
*
* @param fse
*/
@Override
public void init(FormSectionEvent fse) {
FormData data = fse.getFormData();
Contact contact = (Contact) this.getItemSelectionModel().getSelectedObject(fse.getPageState());
ContactAddress ctAddress = contact.getContactAddress();
FormData data = fse.getFormData();
Contact contact = (Contact) this.getItemSelectionModel().getSelectedObject(fse.getPageState());
ContactAddress ctAddress = contact.getContactAddress();
if(ctAddress != null){
if (ctAddress != null) {
data.put(ContactAddress.PAON, ctAddress.getPaon());
data.put(ContactAddress.SAON, ctAddress.getSaon());
data.put(ContactAddress.STREET_DESC, ctAddress.getStreetDesc());
data.put(ContactAddress.STREET_REF_NO, ctAddress.getStreetRefNo());
data.put(ContactAddress.LOCALITY, ctAddress.getLocality());
data.put(ContactAddress.TOWN, ctAddress.getTown());
data.put(ContactAddress.ADMINISTRATIVE_AREA, ctAddress.getAdministrativeArea());
data.put(ContactAddress.POST_TOWN, ctAddress.getPostTown());
data.put(ContactAddress.POST_CODE, ctAddress.getPostCode());
data.put(ContactAddress.PROP_REF_NO, ctAddress.getReferenceNo());
data.put(ContactAddress.PAON, ctAddress.getPaon());
data.put(ContactAddress.SAON, ctAddress.getSaon());
data.put(ContactAddress.STREET_DESC, ctAddress.getStreetDesc());
data.put(ContactAddress.STREET_REF_NO, ctAddress.getStreetRefNo());
data.put(ContactAddress.LOCALITY, ctAddress.getLocality());
data.put(ContactAddress.TOWN, ctAddress.getTown());
data.put(ContactAddress.ADMINISTRATIVE_AREA, ctAddress.getAdministrativeArea());
data.put(ContactAddress.POST_TOWN, ctAddress.getPostTown());
data.put(ContactAddress.POST_CODE, ctAddress.getPostCode());
data.put(ContactAddress.PROP_REF_NO, ctAddress.getReferenceNo());
}
}
}
/**
* Process the form submission event.
* Create a new <code>ContactAddress</code> object and associate it with
* <code>Contact</code> object if one does not exist yet.
*/
public void process(FormSectionEvent fse) {
/**
* Process the form submission event. Create a new
* <code>ContactAddress</code> object and associate it with
* <code>Contact</code> object if one does not exist yet.
*
* @param fse
*/
@Override
public void process(FormSectionEvent fse) {
FormData data = fse.getFormData();
Contact contact = (Contact) this.getItemSelectionModel().getSelectedObject(fse.getPageState());
s_log.debug("Process Event Object :" + contact);
FormData data = fse.getFormData();
Contact contact = (Contact) this.getItemSelectionModel().getSelectedObject(fse.getPageState());
s_log.debug("Process Event Object :" + contact);
// save only if save button was pressed
if (contact != null
&& getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
ContactAddress ctAddress = contact.getContactAddress();
// save only if save button was pressed
if (contact != null
&& getSaveCancelSection().getSaveButton().isSelected(fse.getPageState())) {
ContactAddress ctAddress = contact.getContactAddress();
//User submitted the Form.If the associated ContactAddress does not exist
//just create it.
if(ctAddress == null){
ctAddress = new ContactAddress();
ctAddress.setName("address-for-contact-"+ contact.getID());
}
//just create it.
if (ctAddress == null) {
ctAddress = new ContactAddress();
ctAddress.setName("address-for-contact-" + contact.getID());
}
ctAddress.setPaon((String) data.get(ContactAddress.PAON));
ctAddress.setSaon((String) data.get(ContactAddress.SAON));
ctAddress.setStreetDesc((String) data.get(ContactAddress.STREET_DESC));
ctAddress.setStreetRefNo((String) data.get(ContactAddress.STREET_REF_NO));
ctAddress.setPaon((String) data.get(ContactAddress.PAON));
ctAddress.setSaon((String) data.get(ContactAddress.SAON));
ctAddress.setStreetDesc((String) data.get(ContactAddress.STREET_DESC));
ctAddress.setStreetRefNo((String) data.get(ContactAddress.STREET_REF_NO));
ctAddress.setLocality((String) data.get(ContactAddress.LOCALITY));
ctAddress.setTown((String) data.get(ContactAddress.TOWN));
ctAddress.setAdministrativeArea((String) data.get(ContactAddress.ADMINISTRATIVE_AREA));
ctAddress.setPostTown((String) data.get(ContactAddress.POST_TOWN));
ctAddress.setPostCode((String) data.get(ContactAddress.POST_CODE));
ctAddress.setReferenceNo((String) data.get(ContactAddress.PROP_REF_NO));
ctAddress.setLocality((String) data.get(ContactAddress.LOCALITY));
ctAddress.setTown((String) data.get(ContactAddress.TOWN));
ctAddress.setAdministrativeArea((String) data.get(ContactAddress.ADMINISTRATIVE_AREA));
ctAddress.setPostTown((String) data.get(ContactAddress.POST_TOWN));
ctAddress.setPostCode((String) data.get(ContactAddress.POST_CODE));
ctAddress.setReferenceNo((String) data.get(ContactAddress.PROP_REF_NO));
ctAddress.save();
ctAddress.save();
//If not present then only set and save Contact object.
if(contact.getContactAddress() == null){
contact.setContactAddress(ctAddress);
contact.save();
}
//If not present then only set and save Contact object.
if (contact.getContactAddress() == null) {
contact.setContactAddress(ctAddress);
contact.save();
}
}
}
}
}

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
@ -29,8 +29,8 @@ import com.arsdigita.cms.ContentBundle;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.Folder;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.cms.ui.authoring.CreationSelector;
import com.arsdigita.cms.ui.authoring.PageCreate;
@ -44,7 +44,7 @@ import com.arsdigita.cms.ui.authoring.PageCreate;
*/
public class ContactCreate extends PageCreate {
private CreationSelector m_parent;
private final CreationSelector m_parent;
public ContactCreate(ItemSelectionModel itemModel,
CreationSelector parent) {
@ -61,13 +61,13 @@ public class ContactCreate extends PageCreate {
TextField givenName = new TextField(Contact.GIVEN_NAME);
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.givenname")));
.globalize("cms.contenttypes.ldn.ui.contact.givenname")));
givenName.addValidationListener(new NotNullValidationListener());
add(givenName);
TextField familyName = new TextField(Contact.FAMILY_NAME);
add(new Label(ContactGlobalizationUtil
.globalize("london.contenttypes.ui.contact.familyname")));
.globalize("cms.contenttypes.ldn.ui.contact.familyname")));
familyName.addValidationListener(new NotNullValidationListener());
add(familyName);
}

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.Label;
@ -28,10 +28,10 @@ import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.london.contenttypes.ContactInitializer;
import com.arsdigita.london.contenttypes.ContactPhone;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ldn.ContactInitializer;
import com.arsdigita.cms.contenttypes.ldn.ContactPhone;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import java.util.ArrayList;
@ -89,6 +89,7 @@ class ContactCreatePhone extends BasicItemForm {
/**
*/
@Override
public void init(FormSectionEvent e) {
//Do nothing.
}
@ -97,6 +98,7 @@ class ContactCreatePhone extends BasicItemForm {
* Create an object of type <code>ContactPhone</code> and add it
* to Contact object retrieved from passed in ItemSelectionModel.
*/
@Override
public void process(FormSectionEvent fse) {
FormData data = fse.getFormData();
Contact contact = (Contact) m_model.getSelectedObject(fse.getPageState());

View File

@ -16,14 +16,14 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
/**
* A UI step to manipulate <code>Phones </code> for the Contact object which is

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.ControlLink;
@ -33,10 +33,10 @@ import com.arsdigita.bebop.table.TableModelBuilder;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.SecurityManager;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.london.contenttypes.ContactPhone;
import com.arsdigita.london.contenttypes.ContactPhonesCollection;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ldn.ContactPhone;
import com.arsdigita.cms.contenttypes.ldn.ContactPhonesCollection;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.util.LockableImpl;
import org.apache.log4j.Logger;
@ -108,7 +108,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
private class PhonesTableModelBuilder extends LockableImpl
implements TableModelBuilder {
private ItemSelectionModel m_sel;
private final ItemSelectionModel m_sel;
/**
* Private class constructor
@ -124,6 +124,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
* @param state
* @return
*/
@Override
public TableModel makeModel(Table table, PageState state) {
table.getRowSelectionModel().clearSelection(state);
@ -138,8 +139,8 @@ class ContactPhonesTable extends Table implements TableActionListener {
*/
private class PhonesTableModel implements TableModel {
private Table m_table;
private ContactPhonesCollection m_phones;
private final Table m_table;
private final ContactPhonesCollection m_phones;
private ContactPhone m_phone;
/**
@ -154,6 +155,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
}
/** Return the number of columsn this TableModel has. */
@Override
public int getColumnCount() {
return m_table.getColumnModel().size();
}
@ -162,6 +164,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
* check collection for the existence of another row. If it has fetch
* the value of Current Phone object into m_phone class variable.
*/
@Override
public boolean nextRow() {
if (m_phones != null && m_phones.next()) {
m_phone = m_phones.getPhone();
@ -177,6 +180,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
*
* @see com.arsdigita.bebop.table.TableModel#getElementAt(int)
*/
@Override
public Object getElementAt(int columnIndex) {
switch (columnIndex) {
@ -200,6 +204,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
*
* @see com.arsdigita.bebop.table.TableModel#getKeyAt(int)
*/
@Override
public Object getKeyAt(int columnIndex) {
return m_phone.getID();
}
@ -226,6 +231,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
* @return the link to delete the selected
* entry or just a label without link.
*/
@Override
public Component getComponent(Table table, PageState state,
Object value, boolean isSelected,
Object key, int row, int column) {
@ -263,6 +269,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
* Provide implementation to TableActionListener method. Code that comes
* into picture when a link on the table is clicked. Handles delete event.
*/
@Override
public void cellSelected(TableActionEvent evt) {
PageState state = evt.getPageState();
@ -281,6 +288,7 @@ class ContactPhonesTable extends Table implements TableActionListener {
* provide Implementation to TableActionListener method. Does nothing in our
* case.
*/
@Override
public void headSelected(TableActionEvent e) {
throw new UnsupportedOperationException("Not Implemented");
}

View File

@ -1,4 +1,4 @@
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import org.apache.log4j.Logger;
@ -14,9 +14,9 @@ import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.util.GlobalizationUtil;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ui.ResettableContainer;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.ui.workflow.WorkflowLockedContainer;
import com.arsdigita.domain.DomainObject;
@ -199,17 +199,18 @@ public class ContactPropertiesAddStep extends ResettableContainer {
Contact.TITLE);
sheet.add(ContactGlobalizationUtil.globalize(
"com.arsdigita.london.contenttypes.ui.contact_givenname"),
"cms.contenttypes.ldn.ui.contact.givenname"),
Contact.GIVEN_NAME);
sheet.add(ContactGlobalizationUtil.globalize(
"com.arsdigita.london.contenttypes.ui.contact_familyname"),
"cms.contenttypes.ldn.ui.contact.familyname"),
Contact.FAMILY_NAME);
sheet.add(ContactGlobalizationUtil.globalize(
"com.arsdigita.london.contenttypes.ui.contact_type"),
Contact.CONTACT_TYPE,
new DomainObjectPropertySheet.AttributeFormatter() {
@Override
public String format(DomainObject item,
String attribute,
PageState state) {

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.cms.ItemSelectionModel;
@ -26,8 +26,8 @@ import com.arsdigita.cms.ui.authoring.SimpleEditStep;
import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess;
import com.arsdigita.cms.util.GlobalizationUtil;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.toolbox.ui.DomainObjectPropertySheet;
import com.arsdigita.bebop.PageState;
@ -77,11 +77,11 @@ public class ContactPropertiesStep extends SimpleEditStep {
Contact.NAME);
sheet.add(ContactGlobalizationUtil.globalize(
"london.contenttypes.ui.contact.givenname"),
"cms.contenttypes.ldn.ui.contact.givenname"),
Contact.GIVEN_NAME);
sheet.add(ContactGlobalizationUtil.globalize(
"london.contenttypes.ui.contact.familyname"),
"cms.contenttypes.ldn.ui.contact.familyname"),
Contact.FAMILY_NAME);
sheet.add(ContactGlobalizationUtil.globalize(
@ -92,6 +92,7 @@ public class ContactPropertiesStep extends SimpleEditStep {
"london.contenttypes.ui.contact.type"),
Contact.CONTACT_TYPE,
new DomainObjectPropertySheet.AttributeFormatter() {
@Override
public String format(DomainObject item,
String attribute,
PageState state) {

View File

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import java.math.BigDecimal;
@ -30,10 +30,10 @@ import com.arsdigita.bebop.form.TextField;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.london.contenttypes.ContactType;
import com.arsdigita.london.contenttypes.ContactTypesCollection;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.contenttypes.ldn.ContactType;
import com.arsdigita.cms.contenttypes.ldn.ContactTypesCollection;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
import com.arsdigita.cms.ui.authoring.BasicPageForm;
import com.arsdigita.cms.util.GlobalizationUtil;

View File

@ -1,4 +1,4 @@
package com.arsdigita.london.contenttypes.ui;
package com.arsdigita.cms.contenttypes.ldn.ui;
import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.ColumnPanel;
@ -18,10 +18,10 @@ import com.arsdigita.bebop.event.FormValidationListener;
import com.arsdigita.bebop.util.GlobalizationUtil;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.london.contenttypes.Contact;
import com.arsdigita.cms.contenttypes.ldn.Contact;
import com.arsdigita.cms.ui.ItemSearchWidget;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.london.contenttypes.util.ContactGlobalizationUtil;
import com.arsdigita.cms.contenttypes.ldn.util.ContactGlobalizationUtil;
public class ContactToItemAddForm extends FormSection implements
FormInitListener, FormValidationListener, FormProcessListener,

View File

@ -16,9 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.london.contenttypes.util;
package com.arsdigita.cms.contenttypes.ldn.util;
import com.arsdigita.globalization.Globalized;
import com.arsdigita.globalization.GlobalizedMessage;
/**
@ -34,11 +33,14 @@ public class ContactGlobalizationUtil {
/** Name of Java resource files to handle Contact's globalisation. */
final public static String BUNDLE_NAME =
"com.arsdigita.london.contenttypes.ContactResources";
"com.arsdigita.cms.contenttypes.ldn.ContactResources";
/**
* Returns a globalized message using the package specific bundle,
* provided by BUNDLE_NAME.
* provided by BUNDLE_NAME.
*
* @param key
* @return
*/
public static GlobalizedMessage globalize(String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);
@ -48,6 +50,10 @@ public class ContactGlobalizationUtil {
* Returns a globalized message object, using the package specific bundle,
* as specified by BUNDLE_NAME. Also takes in an Object[] of arguments to
* interpolate into the retrieved message using the MessageFormat class.
*
* @param key
* @param args
* @return
*/
public static GlobalizedMessage globalize(String key, Object[] args) {
return new GlobalizedMessage(key, BUNDLE_NAME, args);

View File

@ -1,352 +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.london.contenttypes;
import java.math.BigDecimal;
import org.apache.log4j.Logger;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.ContentType;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataAssociation;
import com.arsdigita.persistence.DataAssociationCursor;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.DataOperation;
import com.arsdigita.persistence.DataQuery;
import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.util.Assert;
/**
* <code>DomainObject</code> class to represent Contact <code>ContentType</code>
* objects.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: Contact.java 1689 2007-10-26 11:06:23Z chrisg23 $
*/
public class Contact extends ContentPage {
/** PDL property names */
/*
* Flattened out Person object properties.Next 3 properties can be moved out
* to seperate object if needed.
*/
public static final String GIVEN_NAME = "givenName";
public static final String FAMILY_NAME = "familyName";
public static final String SUFFIX = "suffix";
public static final String EMAILS = "emails";
public static final String DESCRIPTION = "description";
public static final String ORG_NAME = "orgName";
public static final String DEPT_NAME = "deptName";
public static final String ROLE = "role";
/* Composite objects used by this class */
public static final String CONTACT_TYPE = "contactType";
public static final String CONTACT_ADDRESS = "contactAddress";
public static final String PHONES = "phones";
public static final String ITEMS = "associatedContentItemsForContact";
private static final Logger s_log = Logger.getLogger(Contact.class);
/** data object type for this domain object */
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.london.contenttypes.Contact";
/** Default constructor. */
public Contact() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Adds an association between this contact and the given content item.
* @param item
*/
public void addContentItem(ContentItem item) {
s_log.debug("item is " + item);
item.addToAssociation(getItemsForContact());
}
/**
* Deletes the association between this contact and the given content item.
* @param item
*/
public void removeContentItem(ContentItem item) {
s_log.debug("item is " + item);
DataOperation operation = SessionManager
.getSession()
.retrieveDataOperation(
"com.arsdigita.london.contenttypes.removeContactFromContentItemAssociation");
operation.setParameter("itemID", new Integer(item.getID().intValue()));
operation.execute();
}
/**
* Removes all mappings between this contact and any other content item.
*
*/
private void removeItemMappings() {
DataOperation operation = SessionManager
.getSession()
.retrieveDataOperation(
"com.arsdigita.london.contenttypes.removeContactFromAllAssociations");
operation.setParameter("contactID", new Integer(this.getID().intValue()));
operation.execute();
}
/**
* Gets the DataAssociation that holds the mapping between this contact
* and any content items.
* @return
*/
public DataAssociation getItemsForContact() {
return (DataAssociation) get(ITEMS);
}
/**
* Returns the Contact for a given content item.
* @param item
* @return
*/
public static Contact getContactForItem(ContentItem item) {
s_log.debug("getting contact for item " + item);
DataQuery query = SessionManager.getSession().retrieveQuery(
"com.arsdigita.london.contenttypes.getContactForItem");
query.setParameter("itemID", item.getID());
BigDecimal contactID;
Contact contact = null;
while (query.next()) {
contactID = (BigDecimal) query.get("contactID");
contact = new Contact(contactID);
}
s_log.debug("returning contact " + contact);
return contact;
}
/**
* Constructor. Retrieves an object instance with the given id.
* @param id the id of the object to retrieve
*/
public Contact( BigDecimal id ) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public Contact(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor. Create a Contact domain object using the given data object.
* @param obj the object data to use
*/
public Contact( DataObject obj ) {
super(obj);
}
/** Constructor. */
public Contact( String type ) {
super(type);
}
public void beforeSave() {
super.beforeSave();
Assert.exists(getContentType(), ContentType.class);
}
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
/** Accessor. Get the GIVEN_NAME for this Contact. */
public String getGivenName(){
return (String) get(GIVEN_NAME);
}
/** Mutator. Set the GIVEN_NAME for this Contact. */
public void setGivenName(String gn){
set(GIVEN_NAME , gn);
}
/** Accessor. Get the FAMILY_NAME for this Contact. */
public String getFamilyName(){
return (String) get(FAMILY_NAME);
}
/** Mutator. Set the FAMILY_NAME for this Contact. */
public void setFamilyName(String fn){
set(FAMILY_NAME , fn);
}
/** Accessor. Get the SUFFIX for this Contact. */
public String getSuffix(){
return (String) get(SUFFIX);
}
/** Mutator. Set the DESCRIPTION for this Contact. */
public void setSuffix(String suf){
set(SUFFIX , suf);
}
/** Accessor. Get the EMAILS for this Contact. */
public String getEmails(){
return (String) get(EMAILS);
}
/** Mutator. Set the EMAILS for this Contact. */
public void setEmails(String ems){
set(EMAILS , ems);
}
/** Accessor. Get the CONTACT_TYPE for this Contact. */
public String getContactTypeName() {
String ctTypeName = "";
if(getContactType() != null){
ctTypeName = getContactType().getTypeName();
}
return ctTypeName;
}
/** Accessor. Get the DESCRIPTION for this Contact. */
@Override
public String getDescription() {
return (String) get(DESCRIPTION);
}
/** Mutator. Set the DESCRIPTION for this Contact. */
@Override
public void setDescription( String desc ) {
set(DESCRIPTION , desc);
}
/** Accessor. Get the ORG_NAME for this Contact. */
public String getOrganisationName() {
return (String) get(ORG_NAME);
}
/** Mutator. Set the ORG_NAME for this Contact. */
public void setOrganisationName( String orgName ) {
set(ORG_NAME , orgName);
}
/** Accessor. Get the DEPT_NAME for this Contact. */
public String getDeptName() {
return (String) get(DEPT_NAME);
}
/** Mutator. Set the DEPT_NAME for this Contact. */
public void setDeptName( String deptName ) {
set(DEPT_NAME , deptName);
}
/** Accessor. Get the ROLE for this Contact. */
public String getRole() {
return (String) get(ROLE);
}
/** Mutator. Set the ROLE for this Contact. */
public void setRole( String role ) {
set(ROLE , role);
}
/**
* return type of Contact associated with this Contact object.
*
* @return null if there is no associated <code><ContactType/code> object.
*/
public ContactType getContactType(){
DataObject obj = retrieveDataobject( CONTACT_TYPE );
if(obj != null){
return new ContactType(obj);
}
return null;
}
/** Mutator. Set the CONTACT_TYPE for this Contact. */
public void setContactType( ContactType ct ) {
setAssociation(CONTACT_TYPE , ct);
}
/******* ContactAddress object manipulation methods *********************/
/**
* set the ContactAddress object association.
*/
public void setContactAddress(ContactAddress caddr){
setAssociation(CONTACT_ADDRESS , caddr);
}
/**
* Get the associated ContactAddress object for this Contact.
* @return null if no Address is present.
*/
public ContactAddress getContactAddress(){
DataObject obj = retrieveDataobject( CONTACT_ADDRESS);
if(obj != null){
return new ContactAddress(obj);
}
return null;
}
/******* ContactPhone object manipulation methods *********************/
/**
* Add a Phone object to the collection of the phone objects this contact
* has.
*/
public void addPhone(ContactPhone ph){
add(PHONES , ph);
save();
}
/**
* Remove the passed in Phone object from the list of phones this contact
* object has.
*/
public void removePhone(ContactPhone ph){
ph.delete();
save();
}
/**
* Return collection of Phone objects associated with this Contact object.
*/
public ContactPhonesCollection getPhones(){
DataAssociationCursor dac = ((DataAssociation) get(PHONES)).cursor();
return new ContactPhonesCollection(dac);
}
private DataObject retrieveDataobject(String attr){
return ( DataObject ) get( attr );
}
} //End of class.

View File

@ -1,171 +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.london.contenttypes;
import java.math.BigDecimal;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
/**
* DomainObject class to represent objects of type <code>ContactAddress</code>
* These objects are associated with Contact objects in this package.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: ContactAddress.java 287 2005-02-22 00:29:02Z sskracic $
*/
public class ContactAddress extends ContentItem {
/** data object type for this domain object */
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.london.contenttypes.ContactAddress";
public static final String SAON = "saon";
public static final String PAON = "paon";
public static final String STREET_DESC = "streetDesc";
public static final String STREET_REF_NO = "streetRefNo";
public static final String LOCALITY = "locality";
public static final String TOWN = "town";
public static final String ADMINISTRATIVE_AREA = "administrativeArea";
public static final String POST_TOWN = "postTown";
public static final String POST_CODE = "postCode";
public static final String PROP_REF_NO = "referenceNo";
/** Default constructor. */
public ContactAddress() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Constructor. Retrieves an object instance with the given id.
* @param id the id of the object to retrieve
*/
public ContactAddress(BigDecimal id) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Create a Contact domain object using the given data object.
* @param obj the object data to use
*/
public ContactAddress(DataObject obj) {
super(obj);
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public ContactAddress(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/** Constructor. */
public ContactAddress( String type ) {
super(type);
}
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
public String getSaon() {
return (String) get(SAON);
}
public void setSaon(String saon) {
set(SAON,saon);
}
public String getPaon() {
return (String) get(PAON);
}
public void setPaon(String paon) {
set(PAON , paon);
}
public String getStreetDesc() {
return (String) get(STREET_DESC);
}
public void setStreetDesc(String desc) {
set(STREET_DESC,desc);
}
public String getStreetRefNo() {
return (String) get(STREET_REF_NO);
}
public void setStreetRefNo(String refno) {
set(STREET_REF_NO,refno);
}
public String getLocality() {
return (String) get(LOCALITY);
}
public void setLocality(String locality) {
set(LOCALITY,locality);
}
public String getTown() {
return (String) get(TOWN);
}
public void setTown(String town) {
set(TOWN,town);
}
public String getAdministrativeArea() {
return (String) get(ADMINISTRATIVE_AREA);
}
public void setAdministrativeArea(String adArea) {
set(ADMINISTRATIVE_AREA,adArea);
}
public String getPostTown() {
return (String) get(POST_TOWN);
}
public void setPostTown(String ptown) {
set(POST_TOWN, ptown);
}
public String getPostCode() {
return (String) get(POST_CODE);
}
public void setPostCode(String pcode) {
set(POST_CODE, pcode);
}
public String getReferenceNo() {
return (String) get(PROP_REF_NO);
}
public void setReferenceNo(String refno) {
set(PROP_REF_NO, refno);
}
}

View File

@ -1,93 +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.london.contenttypes;
import com.arsdigita.cms.contenttypes.AbstractContentTypeLoader;
import com.arsdigita.runtime.ScriptContext;
/**
* Loader for <code>ContentType</code> <code>Contact</code>.
*
* Also loads a fixed set of <code>ContactType</code> objects.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactLoader.java 287 2005-02-22 00:29:02Z sskracic $
*
*/
public class ContactLoader extends AbstractContentTypeLoader {
/** Defines the xml file containing the Contact content types property
* definitions. */
private static final String[] TYPES = {
"/WEB-INF/content-types/com/arsdigita/london/contenttypes/Contact.xml"
};
/**
* Provides the of Contact contenttype property definitions implementing
* the parent's class abstract method.
*
* The file defines the types name as displayed in content center
* select box and the authoring steps. These are loaded into database.
*
* @return String Atring Array of fully qualified file names
*/
public String[] getTypes() {
return TYPES;
}
/**
* @see com.arsdigita.runtime.Script#run(com.arsdigita.runtime.ScriptContext)
*/
@Override
public void run(ScriptContext context) {
super.run(context);
loadContactTypes();
}
/**
* Create the fixed set of ContactTypes.
* This is a quick hack for now.If we need to extend it then we have
* to move it into an XML file and load it from initializer after
* checking it.
*/
protected void loadContactTypes(){
ContactType ct = new ContactType();
ct.setName("ContactType-Service-Provision");
ct.setTypeName("Service Provision");
ct.save();
ct = new ContactType();
ct.setName("ContactType-Enquiry");
ct.setTypeName("Enquiry");
ct.save();
ct = new ContactType();
ct.setName("ContactType-Complaint");
ct.setTypeName("Complaint");
ct.save();
ct = new ContactType();
ct.setName("ContactType-Escalation");
ct.setTypeName("Escalation");
ct.save();
}
}

View File

@ -1,105 +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.london.contenttypes;
import java.math.BigDecimal;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
/**
* DomainObject class to represent objects of type <code>ContactPhone</code>.
* This object represents type of phone and it's number.
* They are associated with <code>Contact</code> objects.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
*
* @version $Id: ContactPhone.java 287 2005-02-22 00:29:02Z sskracic $
*
*/
public class ContactPhone extends ContentItem {
/** data object type for this domain object */
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.london.contenttypes.ContactPhone";
/** PDL property names */
public static final String PHONE_TYPE = "phoneType";
public static final String PHONE_NUMBER = "phoneNumber";
/** Default constructor. */
public ContactPhone() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public ContactPhone(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor. Retrieves an object instance with the given id.
* @param id the id of the object to retrieve
*/
public ContactPhone( BigDecimal id ) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Create a Contact domain object using the given data object.
* @param obj the object data to use
*/
public ContactPhone( DataObject obj ) {
super(obj);
}
/** Constructor. */
public ContactPhone( String type ) {
super(type);
}
@Override
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
//Accessors
public String getPhoneType(){
return (String) get(PHONE_TYPE);
}
public String getPhoneNumber(){
return (String) get(PHONE_NUMBER);
}
public void setPhoneNumber(String num){
set(PHONE_NUMBER,num);
}
public void setPhoneType(String type){
set(PHONE_TYPE, type);
}
}

View File

@ -1,90 +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.london.contenttypes;
import java.math.BigDecimal;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
/**
* DomainObject class to represent objects of <code>ContactType</code>.
* These objects are associated with <code>Contact</code> objects.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: ContactType.java 287 2005-02-22 00:29:02Z sskracic $
*/
public class ContactType extends ContentItem {
/** data object type for this domain object */
public static final String BASE_DATA_OBJECT_TYPE =
"com.arsdigita.london.contenttypes.ContactType";
public static final String TYPE_NAME = "typeName";
/** Default constructor. */
public ContactType() {
super(BASE_DATA_OBJECT_TYPE);
}
/**
* Constructor. Retrieves an object instance with the given id.
* @param id the id of the object to retrieve
*/
public ContactType( BigDecimal id ) throws DataObjectNotFoundException {
this(new OID(BASE_DATA_OBJECT_TYPE, id));
}
/**
* Constructor. Retrieves an object instance with the given OID.
*
* @param oid the object id of the object to retrieve
*/
public ContactType(OID oid) throws DataObjectNotFoundException {
super(oid);
}
/**
* Constructor. Create a Contact domain object using the given data object.
* @param obj the object data to use
*/
public ContactType( DataObject obj ) {
super(obj);
}
/** Constructor. */
public ContactType( String type ) {
super(type);
}
public String getBaseDataObjectType() {
return BASE_DATA_OBJECT_TYPE;
}
public String getTypeName(){
return (String) get(TYPE_NAME);
}
public void setTypeName(String tname){
set(TYPE_NAME,tname);
}
}

View File

@ -1,84 +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.london.contenttypes;
import java.math.BigDecimal;
import com.arsdigita.domain.DomainCollection;
import com.arsdigita.domain.DomainObject;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.SessionManager;
/**
* Class which represents a collection of ContactTypes.
*
* @author Shashin Shinde <a href="mailto:sshinde@redhat.com">sshinde@redhat.com</a>
* @version $Id: ContactTypesCollection.java 287 2005-02-22 00:29:02Z sskracic $
*/
public class ContactTypesCollection extends DomainCollection {
/** Retrieve the collection of ContactTypes. */
public static ContactTypesCollection getContactTypesCollection(){
DataCollection typesColl = SessionManager.getSession().
retrieve(ContactType.BASE_DATA_OBJECT_TYPE);
return new ContactTypesCollection(typesColl);
}
/**
* private Constructor.Single ton type of class.
*
**/
private ContactTypesCollection(DataCollection dataCollection) {
super(dataCollection);
}
/**
* Returns a <code>DomainObject</code> for the current position in
* the collection.
*
**/
@Override
public DomainObject getDomainObject() {
return new ContactType(m_dataCollection.getDataObject());
}
/**
* Returns a <code>ContactType</code> for the current position in
* the collection.
*
**/
public ContactType getContactType() {
return (ContactType) getDomainObject();
}
/**
* Return the name of ContactType from current row.
*/
public String getContactTypeName(){
return getContactType().getTypeName();
}
/**
* Return the ID of ContactType from current row.
*/
public BigDecimal getContactTypeID(){
return getContactType().getID();
}
}

View File

@ -6,8 +6,8 @@
xmlns:cms="http://www.arsdigita.com/cms/1.0"
version="1.0">
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.Contact']" mode="cms:CT_graphics"
name="cms:CT_graphics_com_arsdigita_cms_contenttypes_Contact">
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.ldn.Contact']" mode="cms:CT_graphics"
name="cms:CT_graphics_com_arsdigita_cms_contenttypes_ldn_Contact">
<table width="100%" border="0" cellspacing="1" cellpadding="1">
<tr>
<td class="contentTitle" align="left" valign="top"><xsl:value-of select="./title"/></td>
@ -118,8 +118,8 @@
</table>
</xsl:template>
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.Contact']" mode="cms:CT_text"
name="cms:CT_text_com_arsdigita_cms_contenttypes_Contact">
<xsl:template match="cms:item[objectType='com.arsdigita.cms.contenttypes.ldn.Contact']" mode="cms:CT_text"
name="cms:CT_text_com_arsdigita_cms_contenttypes_ldn_Contact">
<h1 class="title">CONTACT<xsl:text disable-output-escaping="yes">&amp;</xsl:text>gt; <xsl:value-of select="./title"/></h1>
<span class="subtitle">Given Name</span>
<span class="text"><xsl:value-of select="./givenName"/></span><br/>
@ -141,9 +141,9 @@
</xsl:template>
<xsl:template
match="cms:item[objectType='com.arsdigita.cms.contenttypes.ContactPhone']"
match="cms:item[objectType='com.arsdigita.cms.contenttypes.ldn.ContactPhone']"
mode="cms:CT_text"
name="cms:CT_text_com_arsdigita_cms_contenttypes_ContactPhone">
name="cms:CT_text_com_arsdigita_cms_contenttypes_ldn_ContactPhone">
<span class="subtitle">Contact Phone Type</span>
<span class="textCap"><xsl:value-of select="./phoneType"/></span><br/>
<span class="subtitle">Contact Phone Number</span>

Some files were not shown because too many files have changed in this diff Show More