Zusätzliche Felder für PublicPersonalProfile (Tickets 805 und 1098). Version des PPP Moduls auf 6.6.5 angehoben.

Updateskript für Update von 6.6.4 auf 6.6.5 folgt.


git-svn-id: https://svn.libreccm.org/ccm/trunk@1471 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2012-01-27 11:09:02 +00:00
parent 0ed4ddc860
commit fe43be77e4
11 changed files with 369 additions and 48 deletions

View File

@ -7,7 +7,7 @@ object type PublicPersonalProfile extends ContentPage {
String[0..1] profileUrl = ct_public_personal_profiles.profile_url VARCHAR(256); String[0..1] profileUrl = ct_public_personal_profiles.profile_url VARCHAR(256);
String[0..1] position = ct_public_personal_profile.position VARCHAR(2048); String[0..1] position = ct_public_personal_profiles.position VARCHAR(2048);
String[0..1] researchInterests = ct_public_personal_profiles.research_interests CLOB; String[0..1] researchInterests = ct_public_personal_profiles.research_interests CLOB;
String[0..1] misc = ct_public_personal_profiles.misc CLOB; String[0..1] misc = ct_public_personal_profiles.misc CLOB;

View File

@ -28,6 +28,31 @@
component="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileNavigationStep" component="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileNavigationStep"
ordering="2"/> ordering="2"/>
<ctd:authoring-step
labelKey="publicpersonalprofile.ui.profile_position.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResources"
descriptionKey="publicpersonalprofile.ui.profile_position.description"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResources"
component="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfilePositionStep"
ordering="3"/>
<ctd:authoring-step
labelKey="publicpersonalprofile.ui.research_interests.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResources"
descriptionKey="publicpersonalprofile.ui.research_interests.description"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResources"
component="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResearchInterestsStep"
ordering="4"/>
<ctd:authoring-step
labelKey="publicpersonalprofile.ui.misc.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResources"
descriptionKey="publicpersonalprofile.ui.misc.description"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileResources"
component="com.arsdigita.cms.contenttypes.ui.PublicPersonalProfileMiscStep"
ordering="4"/>
<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>

View File

@ -45,7 +45,8 @@ import java.util.TooManyListenersException;
/** /**
* *
* @author Jens Pelzetter * @author Jens Pelzetter
* @version $Id$ * @version $Id: PublicPersonalProfileCreate.java 1384 2011-12-20 18:07:11Z
* jensp $
*/ */
public class PublicPersonalProfileCreate extends PageCreate { public class PublicPersonalProfileCreate extends PageCreate {
@ -83,7 +84,8 @@ public class PublicPersonalProfileCreate extends PageCreate {
ownerSelect.addPrintListener(new PrintListener() { ownerSelect.addPrintListener(new PrintListener() {
public void prepare(final PrintEvent event) { public void prepare(final PrintEvent event) {
final SingleSelect ownerSelect = (SingleSelect) event.getTarget(); final SingleSelect ownerSelect = (SingleSelect) event.
getTarget();
String personType = config.getPersonType(); String personType = config.getPersonType();
if ((personType == null) || (personType.isEmpty())) { if ((personType == null) || (personType.isEmpty())) {
@ -111,10 +113,12 @@ public class PublicPersonalProfileCreate extends PageCreate {
ownerSelect.addOption(new Option("", "")); ownerSelect.addOption(new Option("", ""));
//Store the parent ids of processed items to remove double entries. //Store the parent ids of processed items to remove double entries.
final List<BigDecimal> processed = new ArrayList<BigDecimal>(); final List<BigDecimal> processed =
new ArrayList<BigDecimal>();
while (persons.next()) { while (persons.next()) {
GenericPerson person = GenericPerson person =
(GenericPerson) DomainObjectFactory.newInstance(persons.getDataObject()); (GenericPerson) DomainObjectFactory.
newInstance(persons.getDataObject());
if (processed.contains(person.getParent().getID())) { if (processed.contains(person.getParent().getID())) {
continue; continue;
} else { } else {
@ -159,7 +163,8 @@ public class PublicPersonalProfileCreate extends PageCreate {
PublicPersonalProfile.OWNER); PublicPersonalProfile.OWNER);
if ((id == null) || id.trim().isEmpty()) { if ((id == null) || id.trim().isEmpty()) {
fse.getFormData().addError(PublicPersonalProfileGlobalizationUtil.globalize("publicpersonalprofile.ui.person.required")); fse.getFormData().addError(PublicPersonalProfileGlobalizationUtil.
globalize("publicpersonalprofile.ui.person.required"));
return; return;
} }

View File

@ -0,0 +1,77 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
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.form.TextArea;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
import com.arsdigita.cms.ui.CMSDHTMLEditor;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class PublicPersonalProfileMiscEditForm
extends BasicItemForm
implements FormInitListener, FormProcessListener {
public PublicPersonalProfileMiscEditForm(final ItemSelectionModel itemModel) {
super("PublicPersonalProfileEditMisc", itemModel);
}
@Override
protected void addWidgets() {
add(new Label(PublicPersonalProfileGlobalizationUtil.globalize(
"publicpersonalprofile.ui.misc")));
final ParameterModel miscParam = new StringParameter(
PublicPersonalProfile.MISC);
final TextArea misc = new CMSDHTMLEditor(miscParam);
misc.setCols(75);
misc.setRows(8);
add(misc);
}
@Override
public void init(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final PublicPersonalProfile profile =
(PublicPersonalProfile) getItemSelectionModel().
getSelectedItem(state);
data.put(PublicPersonalProfile.MISC, profile.getMisc());
setVisible(state, true);
}
@Override
public void process(final FormSectionEvent fse)
throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final PublicPersonalProfile profile =
(PublicPersonalProfile) getItemSelectionModel().
getSelectedItem(state);
if ((profile != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
profile.setMisc(
(String) data.get(PublicPersonalProfile.MISC));
profile.save();
}
init(fse);
}
}

View File

@ -0,0 +1,54 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
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.toolbox.ui.DomainObjectPropertySheet;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class PublicPersonalProfileMiscStep extends SimpleEditStep {
private String EDIT_MISC_SHEET_NAME = "editMisc";
public PublicPersonalProfileMiscStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public PublicPersonalProfileMiscStep(final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm editPositionForm = new PublicPersonalProfileMiscEditForm(
itemModel);
add(EDIT_MISC_SHEET_NAME,
(String) PublicPersonalProfileGlobalizationUtil.globalize(
"publicpersonalprofile.ui.misc.edit").localize(),
new WorkflowLockedComponentAccess(editPositionForm, itemModel),
editPositionForm.getSaveCancelSection().getCancelButton());
setDisplayComponent(getPublicPersonalProfilePositionSheet(itemModel));
}
public static Component getPublicPersonalProfilePositionSheet(
final ItemSelectionModel itemModel) {
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
itemModel);
sheet.add(PublicPersonalProfileGlobalizationUtil.globalize(
"publicpersonalprofile.ui.misc"),
PublicPersonalProfile.MISC);
return sheet;
}
}

View File

@ -22,8 +22,7 @@ import com.arsdigita.cms.ui.authoring.BasicItemForm;
*/ */
public class PublicPersonalProfilePositionEditForm public class PublicPersonalProfilePositionEditForm
extends BasicItemForm extends BasicItemForm
implements FormProcessListener, implements FormProcessListener, FormInitListener {
FormInitListener {
public PublicPersonalProfilePositionEditForm( public PublicPersonalProfilePositionEditForm(
final ItemSelectionModel itemModel) { final ItemSelectionModel itemModel) {
@ -46,7 +45,8 @@ public class PublicPersonalProfilePositionEditForm
public void init(final FormSectionEvent fse) throws FormProcessException { public void init(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState(); final PageState state = fse.getPageState();
final FormData data = fse.getFormData(); final FormData data = fse.getFormData();
final PublicPersonalProfile profile = (PublicPersonalProfile) getItemSelectionModel(). final PublicPersonalProfile profile =
(PublicPersonalProfile) getItemSelectionModel().
getSelectedItem(state); getSelectedItem(state);
data.put(PublicPersonalProfile.POSITION, profile.getPosition()); data.put(PublicPersonalProfile.POSITION, profile.getPosition());
@ -59,12 +59,14 @@ public class PublicPersonalProfilePositionEditForm
throws FormProcessException { throws FormProcessException {
final PageState state = fse.getPageState(); final PageState state = fse.getPageState();
final FormData data = fse.getFormData(); final FormData data = fse.getFormData();
final PublicPersonalProfile profile = (PublicPersonalProfile) getItemSelectionModel(). final PublicPersonalProfile profile =
(PublicPersonalProfile) getItemSelectionModel().
getSelectedItem(state); getSelectedItem(state);
if ((profile != null) if ((profile != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) { && getSaveCancelSection().getSaveButton().isSelected(state)) {
profile.setPosition((String) data.get(PublicPersonalProfile.POSITION)); profile.setPosition(
(String) data.get(PublicPersonalProfile.POSITION));
profile.save(); profile.save();
} }

View File

@ -0,0 +1,81 @@
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
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.form.TextArea;
import com.arsdigita.bebop.parameters.ParameterModel;
import com.arsdigita.bebop.parameters.StringParameter;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
import com.arsdigita.cms.ui.CMSDHTMLEditor;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class PublicPersonalProfileResearchInterestsEditStep
extends BasicItemForm
implements FormProcessListener,
FormInitListener {
public PublicPersonalProfileResearchInterestsEditStep(
final ItemSelectionModel itemModel) {
super("PublicPersonalProfileEditResearchInterests",
itemModel);
}
@Override
protected void addWidgets() {
add(new Label(PublicPersonalProfileGlobalizationUtil.globalize(
"publicpersonalprofile.ui.research_interests")));
final ParameterModel riParam =
new StringParameter(
PublicPersonalProfile.RESEARCH_INTERESTS);
final TextArea researchInterests = new CMSDHTMLEditor(riParam);
researchInterests.setCols(75);
researchInterests.setRows(16);
add(researchInterests);
}
@Override
public void init(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final PublicPersonalProfile profile =
(PublicPersonalProfile) getItemSelectionModel().
getSelectedItem(state);
data.put(PublicPersonalProfile.RESEARCH_INTERESTS,
profile.getResearchInterests());
setVisible(state, true);
}
@Override
public void process(final FormSectionEvent fse) throws FormProcessException {
final PageState state = fse.getPageState();
final FormData data = fse.getFormData();
final PublicPersonalProfile profile =
(PublicPersonalProfile) getItemSelectionModel().
getSelectedItem(state);
if ((profile != null)
&& getSaveCancelSection().getSaveButton().isSelected(state)) {
profile.setResearchInterests((String) data.get(
PublicPersonalProfile.RESEARCH_INTERESTS));
profile.save();
}
init(fse);
}
}

View File

@ -0,0 +1,59 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.Component;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.contenttypes.PublicPersonalProfile;
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.toolbox.ui.DomainObjectPropertySheet;
/**
*
* @author Jens Pelzetter
* @version $Id$
*/
public class PublicPersonalProfileResearchInterestsStep extends SimpleEditStep {
private String EDIT_RI_SHEET_NAME = "editResearchInterests";
public PublicPersonalProfileResearchInterestsStep(
final ItemSelectionModel itemModel,
final AuthoringKitWizard parent) {
this(itemModel, parent, null);
}
public PublicPersonalProfileResearchInterestsStep(
final ItemSelectionModel itemModel,
final AuthoringKitWizard parent,
final String prefix) {
super(itemModel, parent, prefix);
final BasicItemForm editRiForm =
new PublicPersonalProfileMiscEditForm(itemModel);
add(EDIT_RI_SHEET_NAME, (String) PublicPersonalProfileGlobalizationUtil.
globalize("publicpersonalprofile.ui.research_interests.edit").
localize(),
new WorkflowLockedComponentAccess(editRiForm, itemModel),
editRiForm.getSaveCancelSection().getCancelButton());
setDisplayComponent(getResearchInterestsSheet(itemModel));
}
public static Component getResearchInterestsSheet(
final ItemSelectionModel itemModel) {
final DomainObjectPropertySheet sheet = new DomainObjectPropertySheet(
itemModel);
sheet.add(PublicPersonalProfileGlobalizationUtil.globalize(
"publicpersonalprofile.ui.research_interests"),
PublicPersonalProfile.RESEARCH_INTERESTS);
return sheet;
}
}

View File

@ -32,3 +32,12 @@ publicpersonalprofile.ui.navitems.delete.confirm=Do you really want to delete th
publicpersonalprofile.ui.navitems.up=Up publicpersonalprofile.ui.navitems.up=Up
publicpersonalprofile.ui.navitems.down=Down publicpersonalprofile.ui.navitems.down=Down
publicpersonalprofile.ui.profile_url.reserved=The provided URL fragment is a reserved name, and can't be used. publicpersonalprofile.ui.profile_url.reserved=The provided URL fragment is a reserved name, and can't be used.
publicpersonalprofile.ui.position.edit=Edit position
publicpersonalprofile.ui.position=Position
publicpersonalprofile.ui.profile_position.title=Position
publicpersonalprofile.ui.research_interests.edit=Edit interests
publicpersonalprofile.ui.research_interests=Interests
publicpersonalprofile.ui.research_interests.title=Interests
publicpersonalprofile.ui.misc=Miscellaneous
publicpersonalprofile.ui.misc.edit=Edit miscellaneous
publicpersonalprofile.ui.misc.title=Miscellaneous

View File

@ -32,3 +32,12 @@ publicpersonalprofile.ui.navitems.delete.confirm=Soll dieser Navigationspunkt wi
publicpersonalprofile.ui.navitems.up=Hoch publicpersonalprofile.ui.navitems.up=Hoch
publicpersonalprofile.ui.navitems.down=Runter publicpersonalprofile.ui.navitems.down=Runter
publicpersonalprofile.ui.profile_url.reserved=Das angegebene URL-Fragment ist ein reservierter Name und kann nicht verwendet werden. publicpersonalprofile.ui.profile_url.reserved=Das angegebene URL-Fragment ist ein reservierter Name und kann nicht verwendet werden.
publicpersonalprofile.ui.position.edit=Position editieren
publicpersonalprofile.ui.position=Position
publicpersonalprofile.ui.profile_position.title=Position
publicpersonalprofile.ui.research_interests.edit=Schwerpunkte bearbeiten
publicpersonalprofile.ui.research_interests=Schwerpunkte
publicpersonalprofile.ui.research_interests.title=Schwerpunkte
publicpersonalprofile.ui.misc=Sonstiges
publicpersonalprofile.ui.misc.edit=Sonstiges bearbeiten
publicpersonalprofile.ui.misc.title=Sonstiges

View File

@ -2,7 +2,7 @@
<ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project" <ccm:application xmlns:ccm="http://ccm.redhat.com/ccm-project"
name="ccm-sci-types-project" name="ccm-sci-types-project"
prettyName="Scientific CMS Project content type" prettyName="Scientific CMS Project content type"
version = "6.6.4" version = "6.6.5"
release="1" release="1"
webapp="ROOT"> webapp="ROOT">