Zusätzlicher AuthoringStep für GenericPerson, zeigt eine Liste mit allen Organisationseinheiten (GenericOrganizationalUnit), denen die Person zugewiesen ist (Ticket #1474).

git-svn-id: https://svn.libreccm.org/ccm/trunk@2010 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2012-12-28 19:35:56 +00:00
parent 19a2b415f9
commit 3ea603c510
8 changed files with 167 additions and 149 deletions

View File

@ -29,7 +29,7 @@
component="com.arsdigita.cms.contenttypes.ui.GenericPersonContactPropertiesStep" component="com.arsdigita.cms.contenttypes.ui.GenericPersonContactPropertiesStep"
ordering="2"/> ordering="2"/>
<ctd:include href="/WEB-INF/content-types/assign-categories-step.xml"/> <ctd:include href="/WEB-INF/content-types/assign-categories-step.xml"/>
</ctd:authoring-kit> </ctd:authoring-kit>
</ctd:content-type> </ctd:content-type>

View File

@ -18,7 +18,10 @@
*/ */
package com.arsdigita.cms; package com.arsdigita.cms;
import com.arsdigita.cms.contenttypes.GenericPerson;
import com.arsdigita.cms.contenttypes.Link; import com.arsdigita.cms.contenttypes.Link;
import com.arsdigita.cms.contenttypes.ui.GenericPersonOrgaUnitsStep;
import com.arsdigita.cms.contenttypes.util.ContenttypesGlobalizationUtil;
import com.arsdigita.cms.dispatcher.AssetURLFinder; import com.arsdigita.cms.dispatcher.AssetURLFinder;
import com.arsdigita.cms.dispatcher.ItemDelegatedURLPatternGenerator; import com.arsdigita.cms.dispatcher.ItemDelegatedURLPatternGenerator;
import com.arsdigita.cms.dispatcher.ItemTemplatePatternGenerator; import com.arsdigita.cms.dispatcher.ItemTemplatePatternGenerator;
@ -36,6 +39,7 @@ import com.arsdigita.cms.search.LastModifiedUserFilterType;
import com.arsdigita.cms.search.LaunchDateFilterType; import com.arsdigita.cms.search.LaunchDateFilterType;
import com.arsdigita.cms.search.LuceneQueryEngine; import com.arsdigita.cms.search.LuceneQueryEngine;
import com.arsdigita.cms.search.VersionFilterType; import com.arsdigita.cms.search.VersionFilterType;
import com.arsdigita.cms.ui.authoring.AuthoringKitWizard;
import com.arsdigita.cms.workflow.CMSEngine; import com.arsdigita.cms.workflow.CMSEngine;
import com.arsdigita.cms.workflow.CMSTask; import com.arsdigita.cms.workflow.CMSTask;
import com.arsdigita.cms.workflow.CMSTaskType; import com.arsdigita.cms.workflow.CMSTaskType;
@ -93,7 +97,7 @@ public class Initializer extends CompoundInitializer {
/** Creates a s_logging category with name = to the full name of class */ /** Creates a s_logging category with name = to the full name of class */
private static Logger s_log = Logger.getLogger(Initializer.class); private static Logger s_log = Logger.getLogger(Initializer.class);
/** Configuration object for the CMS module */
/** Configuration object for the CMS module */ /** Configuration object for the CMS module */
private static final CMSConfig s_conf = CMSConfig.getInstance(); private static final CMSConfig s_conf = CMSConfig.getInstance();
@ -107,10 +111,8 @@ public class Initializer extends CompoundInitializer {
s_log.debug("CMS.Initializer.(Constructor) invoked"); s_log.debug("CMS.Initializer.(Constructor) invoked");
add(new PDLInitializer add(new PDLInitializer(new ManifestSource("ccm-cms.pdl.mf",
(new ManifestSource new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl"))));
("ccm-cms.pdl.mf",
new NameFilter(DbHelper.getDatabaseSuffix(database), "pdl"))));
add(new com.arsdigita.cms.contentsection.Initializer()); add(new com.arsdigita.cms.contentsection.Initializer());
add(new com.arsdigita.cms.publishToFile.Initializer()); add(new com.arsdigita.cms.publishToFile.Initializer());
@ -131,27 +133,27 @@ public class Initializer extends CompoundInitializer {
super.init(e); super.init(e);
/* Register object instantiator for Workspace (Content Center) */ /* Register object instantiator for Workspace (Content Center) */
e.getFactory().registerInstantiator e.getFactory().registerInstantiator(Workspace.BASE_DATA_OBJECT_TYPE,
(Workspace.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
new ACSObjectInstantiator() { @Override
@Override public DomainObject doNewInstance(DataObject dobj) {
public DomainObject doNewInstance(DataObject dobj) { return new Workspace(dobj);
return new Workspace(dobj); }
}
} ); });
LanguageUtil.setSupportedLanguages( LanguageUtil.setSupportedLanguages(
Kernel.getConfig().getSupportedLanguages()); Kernel.getConfig().getSupportedLanguages());
/* Register object instantiator for CMS Service */ /* Register object instantiator for CMS Service */
e.getFactory().registerInstantiator e.getFactory().registerInstantiator(Service.BASE_DATA_OBJECT_TYPE,
(Service.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
new ACSObjectInstantiator() { @Override
@Override public DomainObject doNewInstance(DataObject dobj) {
public DomainObject doNewInstance(DataObject dobj) { return new Service(dobj);
return new Service(dobj); }
}
} ); });
URLService.registerFinder(ContentPage.BASE_DATA_OBJECT_TYPE, URLService.registerFinder(ContentPage.BASE_DATA_OBJECT_TYPE,
new ItemURLFinder()); new ItemURLFinder());
@ -163,38 +165,38 @@ public class Initializer extends CompoundInitializer {
new AssetURLFinder()); new AssetURLFinder());
URLService.registerFinder( URLService.registerFinder(
Link.BASE_DATA_OBJECT_TYPE, Link.BASE_DATA_OBJECT_TYPE,
new URLFinder() { new URLFinder() {
public String find(OID oid, String context) public String find(OID oid, String context)
throws NoValidURLException { throws NoValidURLException {
return find(oid); return find(oid);
}
public String find( OID oid )
throws NoValidURLException {
Link link;
try {
link = (Link) DomainObjectFactory.newInstance( oid );
} catch( DataObjectNotFoundException ex ) {
throw new NoValidURLException
( "Cannot find an object with oid: " + oid );
} }
if (Link.EXTERNAL_LINK.equals(link.getTargetType())) { public String find(OID oid)
return link.getTargetURI(); throws NoValidURLException {
} else {
ContentItem target = link.getTargetItem();
Link link;
try { try {
return URLService.locate( target.getOID() ); link = (Link) DomainObjectFactory.newInstance(oid);
} catch( URLFinderNotFoundException ex ) { } catch (DataObjectNotFoundException ex) {
throw new UncheckedWrapperException( ex ); throw new NoValidURLException("Cannot find an object with oid: " + oid);
}
if (Link.EXTERNAL_LINK.equals(link.getTargetType())) {
return link.getTargetURI();
} else {
ContentItem target = link.getTargetItem();
try {
return URLService.locate(target.getOID());
} catch (URLFinderNotFoundException ex) {
throw new UncheckedWrapperException(ex);
}
} }
} }
}
} });
);
ImageSizerFactory.initialize(); ImageSizerFactory.initialize();
registerInstantiators(e.getFactory()); registerInstantiators(e.getFactory());
@ -202,15 +204,15 @@ public class Initializer extends CompoundInitializer {
registerLuceneEngine(); registerLuceneEngine();
registerIntermediaEngine(); registerIntermediaEngine();
registerPatternGenerators(); registerPatternGenerators();
// cg - register Task Retrieval engine // cg - register Task Retrieval engine
Engine.registerEngine(CMSEngine.CMS_ENGINE_TYPE, new CMSEngine()); Engine.registerEngine(CMSEngine.CMS_ENGINE_TYPE, new CMSEngine());
// Setup Workspace tab to URL mapping // Setup Workspace tab to URL mapping
final String workspaceURL = CMS.WORKSPACE_PACKAGE_KEY; final String workspaceURL = CMS.WORKSPACE_PACKAGE_KEY;
final String contentCenterMap = s_conf.getContentCenterMap(); final String contentCenterMap = s_conf.getContentCenterMap();
WorkspaceSetup workspaceSetup = new WorkspaceSetup( workspaceURL, WorkspaceSetup workspaceSetup = new WorkspaceSetup(workspaceURL,
contentCenterMap); contentCenterMap);
workspaceSetup.run(); workspaceSetup.run();
// register item adapters // register item adapters
@ -220,22 +222,26 @@ public class Initializer extends CompoundInitializer {
// Just set the class implementing methods run when for publishing // Just set the class implementing methods run when for publishing
// or unpublishing to file. No initialisation of the class here. // or unpublishing to file. No initialisation of the class here.
try { try {
QueueManager.setListener((PublishToFileListener) QueueManager.setListener((PublishToFileListener) ContentSection.getConfig()
ContentSection.getConfig() .getPublishToFileClass().newInstance());
.getPublishToFileClass().newInstance());
} catch (InstantiationException ex) { } catch (InstantiationException ex) {
throw new UncheckedWrapperException throw new UncheckedWrapperException("Failed to instantiate the listener class", ex);
("Failed to instantiate the listener class", ex);
} catch (IllegalAccessException ex) { } catch (IllegalAccessException ex) {
throw new UncheckedWrapperException throw new UncheckedWrapperException("Couldn't access the listener class", ex);
("Couldn't access the listener class", ex);
} }
MetadataProviderRegistry.registerAdapter( MetadataProviderRegistry.registerAdapter(
FileAsset.BASE_DATA_OBJECT_TYPE, FileAsset.BASE_DATA_OBJECT_TYPE,
new AssetMetadataProvider()); new AssetMetadataProvider());
AuthoringKitWizard.registerAssetStep(
GenericPerson.BASE_DATA_OBJECT_TYPE,
GenericPersonOrgaUnitsStep.class,
ContenttypesGlobalizationUtil.globalize("person.authoring.orgas.title"),
ContenttypesGlobalizationUtil.globalize("person.authoring.orgas.title"),
20);
s_log.debug("CMS.Initializer.init(DomainInitEvent) completed"); s_log.debug("CMS.Initializer.init(DomainInitEvent) completed");
} // END init(DomainInitEvent e) } // END init(DomainInitEvent e)
@ -245,113 +251,112 @@ public class Initializer extends CompoundInitializer {
*/ */
private void registerPatternGenerators() { private void registerPatternGenerators() {
PatternStylesheetResolver.registerPatternGenerator( PatternStylesheetResolver.registerPatternGenerator(
"item_template_oid", "item_template_oid",
new ItemTemplatePatternGenerator() new ItemTemplatePatternGenerator());
);
PatternStylesheetResolver.registerPatternGenerator( PatternStylesheetResolver.registerPatternGenerator(
"item_delegated_url", "item_delegated_url",
new ItemDelegatedURLPatternGenerator() new ItemDelegatedURLPatternGenerator());
);
} }
/** /**
* Registers object instantiators * Registers object instantiators
*/ */
private void registerInstantiators(DomainObjectFactory f) { private void registerInstantiators(DomainObjectFactory f) {
// Register the CMSTaskInstaniator // Register the CMSTaskInstaniator
f.registerInstantiator f.registerInstantiator(CMSTask.BASE_DATA_OBJECT_TYPE,
(CMSTask.BASE_DATA_OBJECT_TYPE, new ACSObjectInstantiator() {
new ACSObjectInstantiator() { @Override
@Override public DomainObject doNewInstance(DataObject dataObject) {
public DomainObject doNewInstance(DataObject dataObject) { return new CMSTask(dataObject);
return new CMSTask(dataObject); }
}
});
f.registerInstantiator
(CMSTaskType.BASE_DATA_OBJECT_TYPE,
new DomainObjectInstantiator() {
public DomainObject doNewInstance(DataObject dataObject) {
return new CMSTaskType(dataObject);
}
});
f.registerInstantiator
(TaskEventURLGenerator.BASE_DATA_OBJECT_TYPE,
new DomainObjectInstantiator() {
public DomainObject doNewInstance(DataObject dataObject) {
return new TaskEventURLGenerator(dataObject);
}
});
f.registerInstantiator
(Workflow.BASE_DATA_OBJECT_TYPE,
new ACSObjectInstantiator() {
public DomainObject doNewInstance(DataObject dataObject) {
return new Workflow(dataObject);
}
});
f.registerInstantiator });
(WorkflowTemplate.BASE_DATA_OBJECT_TYPE, f.registerInstantiator(CMSTaskType.BASE_DATA_OBJECT_TYPE,
new ACSObjectInstantiator() { new DomainObjectInstantiator() {
@Override public DomainObject doNewInstance(DataObject dataObject) {
public DomainObject doNewInstance(DataObject dataObject) { return new CMSTaskType(dataObject);
return new WorkflowTemplate(dataObject); }
}
});
f.registerInstantiator });
(TemplateContext.BASE_DATA_OBJECT_TYPE, f.registerInstantiator(TaskEventURLGenerator.BASE_DATA_OBJECT_TYPE,
new DomainObjectInstantiator() { new DomainObjectInstantiator() {
public DomainObject doNewInstance(DataObject dataObject) { public DomainObject doNewInstance(DataObject dataObject) {
return new TemplateContext(dataObject); return new TaskEventURLGenerator(dataObject);
} }
@Override
public DomainObjectInstantiator });
resolveInstantiator(DataObject obj) {
return this; f.registerInstantiator(Workflow.BASE_DATA_OBJECT_TYPE,
} new ACSObjectInstantiator() {
}); public DomainObject doNewInstance(DataObject dataObject) {
} return new Workflow(dataObject);
}
});
f.registerInstantiator(WorkflowTemplate.BASE_DATA_OBJECT_TYPE,
new ACSObjectInstantiator() {
@Override
public DomainObject doNewInstance(DataObject dataObject) {
return new WorkflowTemplate(dataObject);
}
});
f.registerInstantiator(TemplateContext.BASE_DATA_OBJECT_TYPE,
new DomainObjectInstantiator() {
public DomainObject doNewInstance(DataObject dataObject) {
return new TemplateContext(dataObject);
}
@Override
public DomainObjectInstantiator resolveInstantiator(DataObject obj) {
return this;
}
});
}
private void registerLuceneEngine() { private void registerLuceneEngine() {
QueryEngineRegistry.registerEngine(IndexerType.LUCENE, QueryEngineRegistry.registerEngine(IndexerType.LUCENE,
new FilterType[] { new FilterType[]{
new CategoryFilterType(), new CategoryFilterType(),
new ContentSectionFilterType(), new ContentSectionFilterType(),
new CMSContentSectionFilterType(), new CMSContentSectionFilterType(),
new ContentTypeFilterType(), new ContentTypeFilterType(),
new CreationDateFilterType(), new CreationDateFilterType(),
new CreationUserFilterType(), new CreationUserFilterType(),
new LastModifiedDateFilterType(), new LastModifiedDateFilterType(),
new LastModifiedUserFilterType(), new LastModifiedUserFilterType(),
new ObjectTypeFilterType(), new ObjectTypeFilterType(),
new PermissionFilterType(), new PermissionFilterType(),
new VersionFilterType() new VersionFilterType()
}, },
new LuceneQueryEngine()); new LuceneQueryEngine());
} }
private void registerIntermediaEngine() { private void registerIntermediaEngine() {
QueryEngineRegistry.registerEngine(IndexerType.INTERMEDIA, QueryEngineRegistry.registerEngine(IndexerType.INTERMEDIA,
new FilterType[] { new FilterType[]{
new CategoryFilterType(), new CategoryFilterType(),
new ContentSectionFilterType(), new ContentSectionFilterType(),
new CMSContentSectionFilterType(), new CMSContentSectionFilterType(),
new ContentTypeFilterType(), new ContentTypeFilterType(),
new CreationDateFilterType(), new CreationDateFilterType(),
new CreationUserFilterType(), new CreationUserFilterType(),
new LastModifiedDateFilterType(), new LastModifiedDateFilterType(),
new LastModifiedUserFilterType(), new LastModifiedUserFilterType(),
new LaunchDateFilterType(), new LaunchDateFilterType(),
new ObjectTypeFilterType(), new ObjectTypeFilterType(),
new PermissionFilterType(), new PermissionFilterType(),
new VersionFilterType() new VersionFilterType()
}, },
new IntermediaQueryEngine()); new IntermediaQueryEngine());
} }
} }

View File

@ -147,3 +147,8 @@ cms.contenttypes.ui.person.select_contact.no_suitable_language_variant=The selec
cms.contenttypes.ui.person.select_contact.already_added=The selected contact has already been added to current item. cms.contenttypes.ui.person.select_contact.already_added=The selected contact has already been added to current item.
cms.contenttypes.ui.person.alias.delete.label=Delete cms.contenttypes.ui.person.alias.delete.label=Delete
cms.contenttypes.ui.person.alias.delete.confirm=Are you sure to remove the alias? cms.contenttypes.ui.person.alias.delete.confirm=Are you sure to remove the alias?
person.ui.orgaunits.none=This person is not assigned to any organizational units.
person.ui.orgaunits.columns.name=Title
person.ui.orgaunits.columns.year=Year
person.ui.orgaunits.columns.type=Type
person.authoring.orgas.title=Organisational Units

View File

@ -158,3 +158,8 @@ cms.contenttypes.ui.person.select_contact.no_suitable_language_variant=Das ausge
cms.contenttypes.ui.person.select_contact.already_added=Das ausgew\u00e4hlte Kontakt-Item wurde dem aktuellen Item bereits hinzugef\u00fcgt. cms.contenttypes.ui.person.select_contact.already_added=Das ausgew\u00e4hlte Kontakt-Item wurde dem aktuellen Item bereits hinzugef\u00fcgt.
cms.contenttypes.ui.person.alias.delete.label=L\u00f6schen cms.contenttypes.ui.person.alias.delete.label=L\u00f6schen
cms.contenttypes.ui.person.alias.delete.confirm=Sind Sie sicher, dass Sie das Alias entfernen wollen? cms.contenttypes.ui.person.alias.delete.confirm=Sind Sie sicher, dass Sie das Alias entfernen wollen?
person.ui.orgaunits.none=Diese Person ist keiner Organisationseinheit zugewiesen.
person.ui.orgaunits.columns.name=Titel
person.ui.orgaunits.columns.year=Jahr
person.ui.orgaunits.columns.type=Typ
person.authoring.orgas.title=Organisationseinheiten

View File

@ -66,8 +66,10 @@ public class TraversalHandler extends DefaultHandler {
m_adapters = new HashMap(); m_adapters = new HashMap();
} }
@Override
public void characters(char[] ch, int start, int len) {} public void characters(char[] ch, int start, int len) {}
@Override
public void startElement(String uri, String localName, String qn, public void startElement(String uri, String localName, String qn,
Attributes attrs) { Attributes attrs) {
if (!XMLNS.equals(uri)) { if (!XMLNS.equals(uri)) {

View File

@ -17,8 +17,8 @@ public class PublicationBundleCollection extends DomainCollection {
m_dataCollection.addOrder("name asc"); m_dataCollection.addOrder("name asc");
} }
public Publication getPublicationBundle() { public PublicationBundle getPublicationBundle() {
return new Publication(m_dataCollection.getDataObject()); return new PublicationBundle(m_dataCollection.getDataObject());
} }
public Publication getPublication() { public Publication getPublication() {

View File

@ -94,6 +94,7 @@ public class PersonPublicationsTable extends Table {
return table.getColumnModel().size(); return table.getColumnModel().size();
} }
@Override
public boolean nextRow() { public boolean nextRow() {
boolean ret; boolean ret;

View File

@ -404,9 +404,9 @@ publisher.ui.publications.none=Keine Publikationen vorhanden
publisher.ui.publications.name=Titel publisher.ui.publications.name=Titel
publisher.ui.publications.columns.year=Jahr publisher.ui.publications.columns.year=Jahr
publisher.ui.publications.columns.type=Typ publisher.ui.publications.columns.type=Typ
organization.ui.publications.title=Herausgebene Publikationen organization.ui.publications.title=Herausgegebene Publikationen
organization.ui.publications.none=Keine Publikationen organization.ui.publications.none=Keine Publikationen
organization.ui.publications.description=Herausgebene Publikationen organization.ui.publications.description=Herausgegebene Publikationen
organization.ui.publications.columns.name=Titel organization.ui.publications.columns.name=Titel
organization.ui.publications.columns.year=Jahr organization.ui.publications.columns.year=Jahr
organization.ui.publications.columns.type=Typ organization.ui.publications.columns.type=Typ