diff --git a/ccm-ldn-types-councillor/application.xml b/ccm-ldn-types-councillor/application.xml new file mode 100644 index 000000000..7d65aa9b0 --- /dev/null +++ b/ccm-ldn-types-councillor/application.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + The Address Content Type for the Red Hat CCM CMS. + + + diff --git a/ccm-ldn-types-councillor/application_person.xml b/ccm-ldn-types-councillor/application_person.xml new file mode 100644 index 000000000..e818b6f7d --- /dev/null +++ b/ccm-ldn-types-councillor/application_person.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + The Address Content Type for the Red Hat CCM CMS. + + + diff --git a/ccm-ldn-types-councillor/pdl/com/arsdigita/london/contenttypes/Councillor.pdl b/ccm-ldn-types-councillor/pdl/com/arsdigita/london/contenttypes/Councillor.pdl new file mode 100644 index 000000000..a982f24a4 --- /dev/null +++ b/ccm-ldn-types-councillor/pdl/com/arsdigita/london/contenttypes/Councillor.pdl @@ -0,0 +1,32 @@ +// +// Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. +// +// The contents of this file are subject to the CCM Public +// License (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of +// the License at http://www.redhat.com/licenses/ccmpl.html +// +// Software distributed under the License is distributed on an "AS +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +// implied. See the License for the specific language governing +// rights and limitations under the License. +// +// $Id: Councillor.pdl 1489 2007-03-19 11:39:58Z apevec $ +// $DateTime: 2004/03/03 15:41:14 $ + +model com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.TextPage; +import com.arsdigita.coventry.cms.contenttypes.Person; + +// object type to hold extended attributes of event content type + +object type Councillor extends com.arsdigita.coventry.cms.contenttypes.Person { + String [0..1] position = cov_councillors.position VARCHAR(4000); + String [0..1] politicalParty = cov_councillors.political_party VARCHAR(1000); + String [0..1] ward = cov_councillors.ward VARCHAR(1000); + String [0..1] areaOfResponsibility = cov_councillors.responsibility VARCHAR(1000); + String [0..1] termOfOffice = cov_councillors.term_of_office VARCHAR(1000); + String [0..1] surgeryDetails = cov_councillors.surgery_details VARCHAR(4000); + reference key (cov_councillors.item_id); +} diff --git a/ccm-ldn-types-councillor/pdl/com/arsdigita/london/contenttypes/Person.pdl b/ccm-ldn-types-councillor/pdl/com/arsdigita/london/contenttypes/Person.pdl new file mode 100644 index 000000000..d45bc6ef9 --- /dev/null +++ b/ccm-ldn-types-councillor/pdl/com/arsdigita/london/contenttypes/Person.pdl @@ -0,0 +1,27 @@ +// +// Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. +// +// The contents of this file are subject to the CCM Public +// License (the "License"); you may not use this file except in +// compliance with the License. You may obtain a copy of +// the License at http://www.redhat.com/licenses/ccmpl.html +// +// Software distributed under the License is distributed on an "AS +// IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +// implied. See the License for the specific language governing +// rights and limitations under the License. +// +// $Id: Person.pdl 1489 2007-03-19 11:39:58Z apevec $ +// $DateTime: 2004/03/31 03:36:22 $ + +model com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.TextPage; + +// object type to hold extended attributes of event content type + +object type Person extends TextPage { + String [0..1] description = cov_persons.description VARCHAR(4000); + String [0..1] contactDetails = cov_persons.contact_details VARCHAR(4000); + reference key (cov_persons.item_id); +} diff --git a/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/oracle-se-create.sql b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/oracle-se-create.sql new file mode 100644 index 000000000..d807e66f0 --- /dev/null +++ b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/oracle-se-create.sql @@ -0,0 +1,19 @@ +-- +-- Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. +-- +-- The contents of this file are subject to the CCM Public +-- License (the "License"); you may not use this file except in +-- compliance with the License. You may obtain a copy of +-- the License at http://www.redhat.com/licenses/ccmpl.html +-- +-- Software distributed under the License is distributed on an "AS +-- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +-- implied. See the License for the specific language governing +-- rights and limitations under the License. +-- +-- $Id: oracle-se-create.sql 1489 2007-03-19 11:39:58Z apevec $ +-- $DateTime: 2003/12/19 15:16:08 $ + +@@ ddl/oracle-se/create.sql + +@@ ddl/oracle-se/deferred.sql diff --git a/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/oracle-se-create_person.sql b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/oracle-se-create_person.sql new file mode 100644 index 000000000..d807e66f0 --- /dev/null +++ b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/oracle-se-create_person.sql @@ -0,0 +1,19 @@ +-- +-- Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. +-- +-- The contents of this file are subject to the CCM Public +-- License (the "License"); you may not use this file except in +-- compliance with the License. You may obtain a copy of +-- the License at http://www.redhat.com/licenses/ccmpl.html +-- +-- Software distributed under the License is distributed on an "AS +-- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +-- implied. See the License for the specific language governing +-- rights and limitations under the License. +-- +-- $Id: oracle-se-create.sql 1489 2007-03-19 11:39:58Z apevec $ +-- $DateTime: 2003/12/19 15:16:08 $ + +@@ ddl/oracle-se/create.sql + +@@ ddl/oracle-se/deferred.sql diff --git a/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/postgres-create.sql b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/postgres-create.sql new file mode 100644 index 000000000..db35d7e4f --- /dev/null +++ b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/postgres-create.sql @@ -0,0 +1,19 @@ +-- +-- Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. +-- +-- The contents of this file are subject to the CCM Public +-- License (the "License"); you may not use this file except in +-- compliance with the License. You may obtain a copy of +-- the License at http://www.redhat.com/licenses/ccmpl.html +-- +-- Software distributed under the License is distributed on an "AS +-- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +-- implied. See the License for the specific language governing +-- rights and limitations under the License. +-- +-- $Id: postgres-create.sql 1489 2007-03-19 11:39:58Z apevec $ +-- $DateTime: 2003/12/19 15:16:08 $ + +\i ddl/postgres/create.sql + +\i ddl/postgres/deferred.sql diff --git a/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/postgres-create_person.sql b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/postgres-create_person.sql new file mode 100644 index 000000000..db35d7e4f --- /dev/null +++ b/ccm-ldn-types-councillor/sql/ccm-ldn-types-councillor/postgres-create_person.sql @@ -0,0 +1,19 @@ +-- +-- Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. +-- +-- The contents of this file are subject to the CCM Public +-- License (the "License"); you may not use this file except in +-- compliance with the License. You may obtain a copy of +-- the License at http://www.redhat.com/licenses/ccmpl.html +-- +-- Software distributed under the License is distributed on an "AS +-- IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +-- implied. See the License for the specific language governing +-- rights and limitations under the License. +-- +-- $Id: postgres-create.sql 1489 2007-03-19 11:39:58Z apevec $ +-- $DateTime: 2003/12/19 15:16:08 $ + +\i ddl/postgres/create.sql + +\i ddl/postgres/deferred.sql diff --git a/ccm-ldn-types-councillor/src/WEB-INF/content-types/com/arsdigita/london/contenttypes/Councillor.xml b/ccm-ldn-types-councillor/src/WEB-INF/content-types/com/arsdigita/london/contenttypes/Councillor.xml new file mode 100644 index 000000000..3bfc3ea72 --- /dev/null +++ b/ccm-ldn-types-councillor/src/WEB-INF/content-types/com/arsdigita/london/contenttypes/Councillor.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/ccm-ldn-types-councillor/src/WEB-INF/content-types/com/arsdigita/london/contenttypes/Person.xml b/ccm-ldn-types-councillor/src/WEB-INF/content-types/com/arsdigita/london/contenttypes/Person.xml new file mode 100644 index 000000000..ef5b12d09 --- /dev/null +++ b/ccm-ldn-types-councillor/src/WEB-INF/content-types/com/arsdigita/london/contenttypes/Person.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/ccm-ldn-types-councillor/src/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Councillor.xml b/ccm-ldn-types-councillor/src/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Councillor.xml new file mode 100644 index 000000000..8ae90dc9d --- /dev/null +++ b/ccm-ldn-types-councillor/src/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Councillor.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/ccm-ldn-types-councillor/src/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Person.xml b/ccm-ldn-types-councillor/src/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Person.xml new file mode 100644 index 000000000..f23a2a910 --- /dev/null +++ b/ccm-ldn-types-councillor/src/WEB-INF/traversal-adapters/com/arsdigita/london/contenttypes/Person.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/ccm-ldn-types-councillor/src/ccm-ldn-types-councillor.config b/ccm-ldn-types-councillor/src/ccm-ldn-types-councillor.config new file mode 100644 index 000000000..adfdba100 --- /dev/null +++ b/ccm-ldn-types-councillor/src/ccm-ldn-types-councillor.config @@ -0,0 +1,4 @@ + + + + diff --git a/ccm-ldn-types-councillor/src/ccm-ldn-types-councillor.load b/ccm-ldn-types-councillor/src/ccm-ldn-types-councillor.load new file mode 100644 index 000000000..05d66f8fb --- /dev/null +++ b/ccm-ldn-types-councillor/src/ccm-ldn-types-councillor.load @@ -0,0 +1,17 @@ + + + +
+
+
+ + + +
+ + + + + + + diff --git a/ccm-ldn-types-councillor/src/ccm-ldn-types-person.config b/ccm-ldn-types-councillor/src/ccm-ldn-types-person.config new file mode 100644 index 000000000..adfdba100 --- /dev/null +++ b/ccm-ldn-types-councillor/src/ccm-ldn-types-person.config @@ -0,0 +1,4 @@ + + + + diff --git a/ccm-ldn-types-councillor/src/ccm-ldn-types-person.load b/ccm-ldn-types-councillor/src/ccm-ldn-types-person.load new file mode 100644 index 000000000..4c64f9546 --- /dev/null +++ b/ccm-ldn-types-councillor/src/ccm-ldn-types-person.load @@ -0,0 +1,16 @@ + + +
+
+
+ + + +
+ + + + + + + diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/Councillor.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/Councillor.java new file mode 100644 index 000000000..6bfaca47e --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/Councillor.java @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes; + + +import com.arsdigita.cms.util.GlobalizationUtil; + +import com.arsdigita.persistence.DataObject; +import com.arsdigita.persistence.OID; + +/** + * This content type represents an event. + * + * @version $Revision: #3 $ $Date: 2004/04/08 $ + **/ +public class Councillor extends Person { + + private final static org.apache.log4j.Logger s_log = + org.apache.log4j.Logger.getLogger(Councillor.class); + + /** PDL property name for event date */ + public static final String POSITION = "position"; + public static final String POLITICAL_PARTY = "politicalParty"; + public static final String WARD = "ward"; + public static final String AREA_OF_RESPONSIBILITY = "areaOfResponsibility"; + public static final String TERM_OF_OFFICE = "termOfOffice"; + public static final String SURGERY_DETAILS = "surgeryDetails"; + public static final String BASE_DATA_OBJECT_TYPE + = "com.arsdigita.coventry.cms.contenttypes.Councillor"; + + public Councillor() { + this(BASE_DATA_OBJECT_TYPE); + } + + public Councillor(OID id) { + super(id); + } + + public Councillor(DataObject obj) { + super(obj); + } + + public Councillor(String type) { + super(type); + } + + // Accessors + public String getPosition() { + return (String)get(POSITION); + } + + public void setPosition(String position) { + set(POSITION, position); + } + + public String getPoliticalParty() { + return (String) get(POLITICAL_PARTY); + } + + public void setPoliticalParty(String politicalParty) { + set(POLITICAL_PARTY, politicalParty); + } + + public String getWard() { + return (String) get(WARD); + } + + public void setWard(String ward) { + set(WARD, ward); + } + + public String getAreaOfResponsibility() { + return (String) get(AREA_OF_RESPONSIBILITY); + } + + public void setAreaOfResponsibility(String areasOfResponsibility) { + set(AREA_OF_RESPONSIBILITY, areasOfResponsibility); + } + + public String getTermOfOffice() { + return (String)get(TERM_OF_OFFICE); + } + + public void setTermOfOffice(String termOfOffice) { + set(TERM_OF_OFFICE, termOfOffice); + } + + public String getSurgeryDetails() { + return (String) get(SURGERY_DETAILS); + } + + public void setSurgeryDetails(String surgeryDetails) { + set(SURGERY_DETAILS, surgeryDetails); + } + + public String getBaseDataObjectType() { + return BASE_DATA_OBJECT_TYPE; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/CouncillorInitializer.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/CouncillorInitializer.java new file mode 100644 index 000000000..ee6d3d911 --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/CouncillorInitializer.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.contenttypes.*;import com.arsdigita.cms.ContentType; + +import com.arsdigita.db.*; +import com.arsdigita.persistence.pdl.*; +import com.arsdigita.runtime.*; +import com.arsdigita.domain.DomainObject; +import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.domain.DomainObjectInstantiator; +import com.arsdigita.persistence.DataObject; + +import org.apache.log4j.Logger; + +/** + * The CMS initializer. + * + * @author Justin Ross <jross@redhat.com> + * @version $Id: CouncillorInitializer.java 1489 2007-03-19 11:39:58Z apevec $ + */ +public class CouncillorInitializer extends ContentTypeInitializer { + public final static String versionId = + "$Id: CouncillorInitializer.java 1489 2007-03-19 11:39:58Z apevec $" + + "$Author: apevec $" + + "$DateTime: 2004/03/03 22:35:47 $"; + + private static final Logger s_log = Logger.getLogger(CouncillorInitializer.class); + + public CouncillorInitializer() { + super("ccm-ldn-coventry-councillor.pdl.mf", Councillor.BASE_DATA_OBJECT_TYPE); + } + + public String getTraversalXML() { + return "WEB-INF/traversal-adapters/com/arsdigita/coventry/cms/contenttypes/Councillor.xml"; + } + + public String[] getStylesheets() { + return new String[] { "/__ccm__/themes/coventry/types/Councillor.xsl" }; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/CouncillorLoader.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/CouncillorLoader.java new file mode 100644 index 000000000..ffec663aa --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/CouncillorLoader.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.contenttypes.AbstractContentTypeLoader; + +/** + * Loader. + * + * @author Justin Ross <jross@redhat.com> + * @version $Id: CouncillorLoader.java 1489 2007-03-19 11:39:58Z apevec $ + */ +public class CouncillorLoader extends AbstractContentTypeLoader { + public final static String versionId = + "$Id: CouncillorLoader.java 1489 2007-03-19 11:39:58Z apevec $" + + "$Author: apevec $" + + "$DateTime: 2003/12/19 16:20:50 $"; + + private static final String[] TYPES = { + "/WEB-INF/content-types/com/arsdigita/coventry/cms/contenttypes/Councillor.xml" + }; + + public String[] getTypes() { + return TYPES; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/Person.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/Person.java new file mode 100644 index 000000000..50fd28a82 --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/Person.java @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.TextAsset; +import com.arsdigita.cms.TextPage; +import com.arsdigita.persistence.DataObject; +import com.arsdigita.persistence.OID; + +/** + * This content type represents a Coventry Person. + * + * @version $Revision: #5 $ $Date: 2004/04/08 $ + **/ +public class Person extends TextPage { + + private final static org.apache.log4j.Logger s_log = + org.apache.log4j.Logger.getLogger(Person.class); + + public static final String CONTACT_DETAILS = "contactDetails"; + public static final String DESCRIPTION = "description"; + public static final String BASE_DATA_OBJECT_TYPE + = "com.arsdigita.coventry.cms.contenttypes.Person"; + + public Person() { + this(BASE_DATA_OBJECT_TYPE); + } + + public Person(OID id) { + super(id); + } + + public Person(DataObject obj) { + super(obj); + } + + public Person(String type) { + super(type); + } + + public String getDescription() { + return (String)get(DESCRIPTION); + } + + public void setDescription(String description) { + set(DESCRIPTION, description); + } + + public static final int SUMMARY_LENGTH = 200; + public String getSearchSummary() { + return com.arsdigita.util.StringUtils.truncateString(getDescription(), + SUMMARY_LENGTH, + true); + } + + public String getContactDetails() { + return (String) get(CONTACT_DETAILS); + } + + public void setContactDetails(String contactDetails) { + set(CONTACT_DETAILS, contactDetails); + } + + public String getBodyText() { + TextAsset asset = getTextAsset(); + if (asset == null) { + return ""; + } + return asset.getText(); + } + + public void setBodyText(String body) { + TextAsset asset = getTextAsset(); + if (asset == null) { + asset = new TextAsset(); + asset.setName(getName() + "_text_" + getID()); + asset.setParent(this); + setTextAsset(asset); + } + asset.setText(body); + } + + public String getBaseDataObjectType() { + return BASE_DATA_OBJECT_TYPE; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/PersonInitializer.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/PersonInitializer.java new file mode 100644 index 000000000..6942b2e55 --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/PersonInitializer.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.contenttypes.*;import com.arsdigita.cms.ContentType; + +import com.arsdigita.db.*; +import com.arsdigita.persistence.pdl.*; +import com.arsdigita.runtime.*; +import com.arsdigita.domain.DomainObject; +import com.arsdigita.domain.DomainObjectFactory; +import com.arsdigita.domain.DomainObjectInstantiator; +import com.arsdigita.persistence.DataObject; + +import org.apache.log4j.Logger; + +/** + * The CMS initializer. + * + * @author Justin Ross <jross@redhat.com> + * @version $Id: PersonInitializer.java 1489 2007-03-19 11:39:58Z apevec $ + */ +public class PersonInitializer extends ContentTypeInitializer { + public final static String versionId = + "$Id: PersonInitializer.java 1489 2007-03-19 11:39:58Z apevec $" + + "$Author: apevec $" + + "$DateTime: 2004/03/03 19:14:34 $"; + + private static final Logger s_log = Logger.getLogger(PersonInitializer.class); + + public PersonInitializer() { + super("ccm-ldn-coventry-person.pdl.mf", Person.BASE_DATA_OBJECT_TYPE); + } + + public String getTraversalXML() { + return "WEB-INF/traversal-adapters/com/arsdigita/coventry/cms/contenttypes/Person.xml"; + } + + public String[] getStylesheets() { + return new String[] { "/__ccm__/themes/coventry/types/Person.xsl" }; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/PersonLoader.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/PersonLoader.java new file mode 100644 index 000000000..a24c9796a --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/PersonLoader.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2001, 2002, 2003 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes; + +import com.arsdigita.cms.contenttypes.AbstractContentTypeLoader; + +/** + * Loader. + * + * @author Justin Ross <jross@redhat.com> + * @version $Id: PersonLoader.java 1489 2007-03-19 11:39:58Z apevec $ + */ +public class PersonLoader extends AbstractContentTypeLoader { + public final static String versionId = + "$Id: PersonLoader.java 1489 2007-03-19 11:39:58Z apevec $" + + "$Author: apevec $" + + "$DateTime: 2003/12/19 16:20:50 $"; + + private static final String[] TYPES = { + "/WEB-INF/content-types/com/arsdigita/coventry/cms/contenttypes/Person.xml" + }; + + public String[] getTypes() { + return TYPES; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/CouncillorEditForm.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/CouncillorEditForm.java new file mode 100644 index 000000000..e49349a1b --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/CouncillorEditForm.java @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes.ui; + +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.event.FormSubmissionListener; +import com.arsdigita.bebop.form.Option; +import com.arsdigita.bebop.form.SingleSelect; +import com.arsdigita.bebop.form.TextField; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.CMSDHTMLEditor; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; + +import com.arsdigita.coventry.cms.contenttypes.Councillor; + +import org.apache.log4j.Logger; + +public class CouncillorEditForm extends PersonEditForm { + + private static final Logger s_log = + Logger.getLogger( CouncillorEditForm.class ); + + private ItemSelectionModel m_itemModel; + private TextField m_position; + private TextField m_politicalParty; + private TextField m_areaOfResponsibility; + private SingleSelect m_ward; + private TextField m_termOfOffice; + private CMSDHTMLEditor m_surgeryDetails; + + private CouncillorPropertiesStep m_step; + + public CouncillorEditForm(ItemSelectionModel itemModel) { + super("councillorEdit", itemModel); + m_itemModel = itemModel; + } + + public CouncillorEditForm(ItemSelectionModel itemModel, + CouncillorPropertiesStep step) { + this(itemModel); + + m_step = step; + addSubmissionListener( this ); + } + + public void addWidgets() { + super.addWidgets(); + m_surgeryDetails = new CMSDHTMLEditor(Councillor.SURGERY_DETAILS); + m_surgeryDetails.setRows( 10 ); + add(new Label("Surgery Details:")); + add(m_surgeryDetails); + + m_position = new TextField(Councillor.POSITION); + add(new Label("Position")); + add(m_position); + + m_politicalParty = new TextField(Councillor.POLITICAL_PARTY); + add(new Label("Political Party")); + add(m_politicalParty); + + m_ward = new SingleSelect(Councillor.WARD); + m_ward.addOption( new Option( "Bablake", "Bablake" ) ); + m_ward.addOption( new Option( "Binley and Willenhall", "Binley and Willenhall" ) ); + m_ward.addOption( new Option( "Cheylesmore", "Cheylesmore" ) ); + m_ward.addOption( new Option( "Earlsdon", "Earlsdon" ) ); + m_ward.addOption( new Option( "Foleshill", "Foleshill" ) ); + m_ward.addOption( new Option( "Henley", "Henley" ) ); + m_ward.addOption( new Option( "Holbrook", "Holbrook" ) ); + m_ward.addOption( new Option( "Longford", "Longford" ) ); + m_ward.addOption( new Option( "Lower Stoke", "Lower Stoke" ) ); + m_ward.addOption( new Option( "Radford", "Radford" ) ); + m_ward.addOption( new Option( "Sherbourne", "Sherbourne" ) ); + m_ward.addOption( new Option( "St Michael's", "St Michael's" ) ); + m_ward.addOption( new Option( "Upper Stoke", "Upper Stoke" ) ); + m_ward.addOption( new Option( "Wainbody", "Wainbody" ) ); + m_ward.addOption( new Option( "Westwood", "Westwood" ) ); + m_ward.addOption( new Option( "Whoberley", "Whoberley" ) ); + m_ward.addOption( new Option( "Woodlands", "Woodlands" ) ); + m_ward.addOption( new Option( "Wyken", "Wyken" ) ); + add(new Label("Ward")); + add(m_ward); + + m_areaOfResponsibility + = new TextField(Councillor.AREA_OF_RESPONSIBILITY); + + add(new Label("Area of Responsibility")); + add(m_areaOfResponsibility); + + m_termOfOffice = new TextField(Councillor.TERM_OF_OFFICE); + add(new Label("Term of Office")); + add(m_termOfOffice); + + } + + public void initCouncillorEdit(FormSectionEvent event) { + PageState state = event.getPageState(); + + super.initPersonEdit(event); + if (m_itemModel.isSelected(state)) { + Councillor councillor + = (Councillor)m_itemModel.getSelectedObject(state); + m_position.setValue(state, councillor.getPosition()); + m_politicalParty.setValue(state, councillor.getPoliticalParty()); + m_ward.setValue(state, councillor.getWard()); + m_termOfOffice.setValue(state, councillor.getTermOfOffice()); + m_areaOfResponsibility.setValue(state, + councillor.getAreaOfResponsibility()); + m_surgeryDetails.setValue(state, councillor.getSurgeryDetails()); + } + } + + public void init(FormSectionEvent event) throws FormProcessException { + initCouncillorEdit(event); + } + + /** Cancels streamlined editing. */ + public void submitted( FormSectionEvent fse ) { + if (m_step != null && + getSaveCancelSection().getCancelButton() + .isSelected( fse.getPageState())) { + m_step.cancelStreamlinedCreation(fse.getPageState()); + } + } + + public Councillor processCouncillorEdit(FormSectionEvent event) { + if( s_log.isDebugEnabled() ) { + ACSObjectSelectionModel objectModel = + (ACSObjectSelectionModel) m_itemModel; + + Class javaClass = objectModel.getJavaClass(); + String objectType = objectModel.getObjectType(); + + s_log.debug( "Starting process Councillor with model using: " + + javaClass.getName() + " " + objectType ); + } + + PageState state = event.getPageState(); + Councillor councillor = null; + + councillor = (Councillor)super.processPersonEdit(event); + if (councillor != null + && getSaveCancelSection().getSaveButton() + .isSelected(state)) { + + councillor.setPosition((String)m_position.getValue(state)); + councillor.setPoliticalParty((String)m_politicalParty.getValue(state)); + councillor.setWard((String)m_ward.getValue(state)); + councillor.setTermOfOffice((String)m_termOfOffice.getValue(state)); + councillor.setAreaOfResponsibility( + (String)m_areaOfResponsibility.getValue(state)); + councillor.setSurgeryDetails((String)m_surgeryDetails.getValue(state)); + + if( null != m_step ) + m_step.maybeForwardToNextStep(event.getPageState()); + } + + s_log.debug( "Finished process Councillor" ); + + return councillor; + } + + public void process(FormSectionEvent event) throws FormProcessException { + processCouncillorEdit(event); + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/CouncillorPropertiesStep.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/CouncillorPropertiesStep.java new file mode 100644 index 000000000..4b34d3280 --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/CouncillorPropertiesStep.java @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes.ui; + + +import com.arsdigita.bebop.Component; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.TextAsset; +import com.arsdigita.cms.ui.ItemPropertySheet; +import com.arsdigita.cms.ui.authoring.AuthoringKitWizard; +import com.arsdigita.cms.ui.authoring.BasicPageForm; +import com.arsdigita.cms.ui.authoring.SimpleEditStep; +import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess; +import com.arsdigita.cms.util.GlobalizationUtil ; +import com.arsdigita.coventry.cms.contenttypes.Councillor; + +/** + * Authoring step to edit the simple attributes of the Councillor content type (and + * its subclasses). The attributes edited are 'name', 'title', 'councillor date', + * 'location', 'lead', 'main contributor', 'councillor type', 'map link', and + * 'cost'. This authoring step replaces the + * com.arsdigita.ui.authoring.PageEdit step for this type. + **/ +public class CouncillorPropertiesStep extends SimpleEditStep { + + /** The name of the editing sheet added to this step */ + public static final String EDIT_SHEET_NAME = "edit"; + + public CouncillorPropertiesStep(ItemSelectionModel itemModel, + AuthoringKitWizard parent) { + super(itemModel, parent); + + BasicPageForm editSheet = new CouncillorEditForm(itemModel, this); + add(EDIT_SHEET_NAME, "Edit", + new WorkflowLockedComponentAccess(editSheet, itemModel), + editSheet.getSaveCancelSection().getCancelButton()); + + setDisplayComponent(getCouncillorPropertySheet(itemModel)); + setDefaultEditKey( EDIT_SHEET_NAME ); + } + + /** + * Returns a component that displays the properties of the Councillor specified + * by the ItemSelectionModel passed in. + * + * @param itemModel The ItemSelectionModel to use + * @pre itemModel != null + * @return A component to display the state of the basic properties + * of the release + **/ + public static Component getCouncillorPropertySheet(ItemSelectionModel + itemModel) { + ItemPropertySheet sheet = new ItemPropertySheet(itemModel); + + sheet.add("Name: ", Councillor.TITLE); + sheet.add("URL: ", Councillor.NAME); + sheet.add("Description: ", Councillor.DESCRIPTION); + sheet.add("Body Text: ", Councillor.TEXT_ASSET + "." + TextAsset.CONTENT); + sheet.add("Contact Details: ", Councillor.CONTACT_DETAILS); + sheet.add("Surgery Details: ", Councillor.SURGERY_DETAILS); + sheet.add("Position: ", Councillor.POSITION); + sheet.add("Political Party: ", Councillor.POLITICAL_PARTY); + sheet.add("Ward: ", Councillor.WARD); + sheet.add("Area of Responsibility: ", Councillor.AREA_OF_RESPONSIBILITY); + sheet.add("Term of Office: ", Councillor.TERM_OF_OFFICE); + sheet.add("Surgery Details: ", Councillor.SURGERY_DETAILS); + return sheet; + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/PersonEditForm.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/PersonEditForm.java new file mode 100644 index 000000000..a68504adb --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/PersonEditForm.java @@ -0,0 +1,182 @@ +/* + * Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes.ui; + +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.Label; +import com.arsdigita.bebop.PageState; +import com.arsdigita.bebop.event.FormInitListener; +import com.arsdigita.bebop.event.FormProcessListener; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.event.FormSubmissionListener; +import com.arsdigita.bebop.form.TextArea; +import com.arsdigita.bebop.form.TextField; +import com.arsdigita.bebop.parameters.NotNullValidationListener; +import com.arsdigita.bebop.parameters.TrimmedStringParameter; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.ui.CMSDHTMLEditor; +import com.arsdigita.cms.ui.authoring.BasicPageForm; +import com.arsdigita.cms.ui.authoring.NameValidationListener; +import com.arsdigita.kernel.ui.ACSObjectSelectionModel; + +import com.arsdigita.coventry.cms.contenttypes.Person; + +import org.apache.log4j.Logger; + +public class PersonEditForm extends BasicPageForm + implements FormInitListener, FormProcessListener, FormSubmissionListener { + + private static final Logger s_log = + Logger.getLogger( PersonEditForm.class ); + + private ItemSelectionModel m_itemModel; + private ItemSelectionModel m_imageModel; + private TextArea m_description; + private CMSDHTMLEditor m_bodyText; + private CMSDHTMLEditor m_contactDetails; + + private PersonPropertiesStep m_step; + + public PersonEditForm(String label, ItemSelectionModel model ) { + super( label, model ); + + m_itemModel = model; + } + + public PersonEditForm(ItemSelectionModel model) { + this("personEdit", model); + } + + public PersonEditForm(ItemSelectionModel model, + PersonPropertiesStep step) { + this("personEdit", model, step); + } + + public PersonEditForm(String label, + ItemSelectionModel model, + PersonPropertiesStep step) { + this(label, model); + + m_step = step; + addSubmissionListener( this ); + } + + protected void addWidgets() { + add(new Label("Name:")); + TextField titleWidget = new TextField(new TrimmedStringParameter(TITLE)); + titleWidget.addValidationListener(new NotNullValidationListener()); + titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { " + + " defaulting = true; this.form." + NAME + + ".value = urlize(this.value); }"); + titleWidget.setOnKeyUp( + "if (defaulting) { this.form." + NAME + + ".value = urlize(this.value) }" + ); + add(titleWidget); + + add(new Label("URL:")); + TextField nameWidget = new TextField(new TrimmedStringParameter(NAME)); + nameWidget.addValidationListener(new NameValidationListener()); + nameWidget.setOnFocus("defaulting = false"); + nameWidget.setOnBlur( + "if (this.value == '') " + + "{ defaulting = true; this.value = urlize(this.form." + TITLE + + ".value) }" + ); + add(nameWidget); + + m_description = new TextArea(Person.DESCRIPTION); + m_description.setRows( 10 ); + m_description.setCols( 65 ); + add(new Label("Description:")); + add(m_description); + + m_bodyText = new CMSDHTMLEditor("bodyText"); + m_bodyText.setRows( 10 ); + add(new Label("Body Text:")); + add(m_bodyText); + + m_contactDetails = new CMSDHTMLEditor(Person.CONTACT_DETAILS); + m_contactDetails.setRows( 10 ); + add(new Label("Contact Details:")); + add(m_contactDetails); + + addProcessListener(this); + addInitListener(this); + + } + + public void initPersonEdit(FormSectionEvent event) { + super.initBasicWidgets(event); + PageState state = event.getPageState(); + if (m_itemModel.isSelected(state)) { + Person person = (Person)m_itemModel.getSelectedObject(state); + m_bodyText.setValue(state, person.getBodyText()); + m_description.setValue(state, person.getDescription()); + m_contactDetails.setValue(state, person.getContactDetails()); + } + } + + public void init(FormSectionEvent event) throws FormProcessException { + initPersonEdit(event); + } + + /** Cancels streamlined editing. */ + public void submitted( FormSectionEvent fse ) { + if (m_step != null && + getSaveCancelSection().getCancelButton() + .isSelected( fse.getPageState())) { + m_step.cancelStreamlinedCreation(fse.getPageState()); + } + } + + public Person processPersonEdit(FormSectionEvent event) { + if( s_log.isDebugEnabled() ) { + ACSObjectSelectionModel objectModel = + (ACSObjectSelectionModel) m_itemModel; + + Class javaClass = objectModel.getJavaClass(); + String objectType = objectModel.getObjectType(); + + s_log.debug( "Starting process Person with model using: " + + javaClass.getName() + " " + objectType ); + } + + PageState state = event.getPageState(); + Person person = null; + person + = (Person) super.processBasicWidgets(event); + if (person != null + && getSaveCancelSection().getSaveButton() + .isSelected(state)) { + + person.setBodyText((String)m_bodyText.getValue(state)); + person.setDescription((String)m_description.getValue(state)); + person.setContactDetails((String)m_contactDetails.getValue(state)); + + if( null != m_step ) + m_step.maybeForwardToNextStep(event.getPageState()); + } + + s_log.debug( "Finished process Person" ); + + return person; + } + + public void process(FormSectionEvent event) throws FormProcessException { + processPersonEdit(event); + } +} diff --git a/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/PersonPropertiesStep.java b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/PersonPropertiesStep.java new file mode 100644 index 000000000..6f764a6ba --- /dev/null +++ b/ccm-ldn-types-councillor/src/com/arsdigita/london/contenttypes/ui/PersonPropertiesStep.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2001, 2002 Red Hat Inc. All Rights Reserved. + * + * The contents of this file are subject to the CCM Public + * License (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of + * the License at http://www.redhat.com/licenses/ccmpl.html + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + */ + +package com.arsdigita.coventry.cms.contenttypes.ui; + + +import com.arsdigita.bebop.Component; +import com.arsdigita.cms.ItemSelectionModel; +import com.arsdigita.cms.TextAsset; +import com.arsdigita.cms.ui.ItemPropertySheet; +import com.arsdigita.cms.ui.authoring.AuthoringKitWizard; +import com.arsdigita.cms.ui.authoring.BasicPageForm; +import com.arsdigita.cms.ui.authoring.SimpleEditStep; +import com.arsdigita.cms.ui.workflow.WorkflowLockedComponentAccess; +import com.arsdigita.coventry.cms.contenttypes.Person; + + +/** + * Authoring step to edit the simple attributes of the Person content type. + **/ +public class PersonPropertiesStep extends SimpleEditStep { + + /** The name of the editing sheet added to this step */ + public static final String EDIT_SHEET_NAME = "edit"; + + public PersonPropertiesStep(ItemSelectionModel itemModel, + AuthoringKitWizard parent) { + super(itemModel, parent); + + BasicPageForm editSheet = new PersonEditForm(itemModel, this); + add(EDIT_SHEET_NAME, "Edit", + new WorkflowLockedComponentAccess(editSheet, itemModel), + editSheet.getSaveCancelSection().getCancelButton()); + + setDisplayComponent(getPersonPropertySheet(itemModel)); + setDefaultEditKey( EDIT_SHEET_NAME ); + } + + /** + * Returns a component that displays the properties of the Person specified + * by the ItemSelectionModel passed in. + * + * @param itemModel The ItemSelectionModel to use + * @pre itemModel != null + * @return A component to display the state of the basic properties + * of the release + **/ + public static Component getPersonPropertySheet(ItemSelectionModel + itemModel) { + ItemPropertySheet sheet = new ItemPropertySheet(itemModel); + + sheet.add("Name: ", Person.TITLE); + sheet.add("URL: ", Person.NAME); + sheet.add("Description: ", Person.DESCRIPTION); + sheet.add("Body Text: ", Person.TEXT_ASSET + "." + TextAsset.CONTENT); + sheet.add("Contact Details: ", Person.CONTACT_DETAILS); + return sheet; + } +} diff --git a/ccm-ldn-types-councillor/web/themes/heirloom/contenttypes/ldn/Councillor.xsl b/ccm-ldn-types-councillor/web/themes/heirloom/contenttypes/ldn/Councillor.xsl new file mode 100644 index 000000000..ce7809b18 --- /dev/null +++ b/ccm-ldn-types-councillor/web/themes/heirloom/contenttypes/ldn/Councillor.xsl @@ -0,0 +1,94 @@ + +]> + + + + +

+ +
+ + + + + + + + + + + + + + + + + + +
+ + + + /cms-service/stream/image/?image_id= + + + + + + Position + + + + + +   + + +
Political party + + + + + +   + + +
Term of office + + + + + +   + + +
+ +

+
+ + +

Contact details

+

+
+ + +

Surgery details

+

+
+ + + diff --git a/ccm-ldn-types-councillor/web/themes/heirloom/contenttypes/ldn/Person.xsl b/ccm-ldn-types-councillor/web/themes/heirloom/contenttypes/ldn/Person.xsl new file mode 100644 index 000000000..a3d5632a1 --- /dev/null +++ b/ccm-ldn-types-councillor/web/themes/heirloom/contenttypes/ldn/Person.xsl @@ -0,0 +1,49 @@ + +]> + + + + +

+ + + + + + + + + + + + +
+ + + /cms-service/stream/image/?image_id= + + + + + + + + + +

+

+ + +

Contact details

+

+ + +
+
diff --git a/ccm-navigation/src/WEB-INF/navigation/templates.txt b/ccm-navigation/src/WEB-INF/navigation/templates.txt index da95d849f..e5f4aea3f 100755 --- a/ccm-navigation/src/WEB-INF/navigation/templates.txt +++ b/ccm-navigation/src/WEB-INF/navigation/templates.txt @@ -1,4 +1,4 @@ -Navigation Default Index Page,Default Navigation Index Page ordering items in ascending order,/templates/ccm-ldn-navigation/navigation/nav-default.jsp -Navigation Recent Items,List of items ordered with most recent first,/templates/ccm-ldn-navigation/navigation/nav-recent.jsp -Navigation A-Z Items,List of items paginated as A-Z,/templates/ccm-ldn-navigation/navigation/nav-atoz.jsp -Navigation Demo Items Page,Demo items page,/templates/ccm-ldn-navigation/navigation/nav-demo.jsp +Navigation Default Index Page,Default Navigation Index Page ordering items in ascending order,/templates/ccm-navigation/navigation/nav-default.jsp +Navigation Recent Items,List of items ordered with most recent first,/templates/ccm-navigation/navigation/nav-recent.jsp +Navigation A-Z Items,List of items paginated as A-Z,/templates/ccm-navigation/navigation/nav-atoz.jsp +Navigation Demo Items Page,Demo items page,/templates/ccm-navigation/navigation/nav-demo.jsp