Last part of globalization of content types selection box.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2779 8810af33-2d31-482b-a856-94f89814c4df
master
pb 2014-07-24 11:49:43 +00:00
parent bcc3a9c9af
commit 4710d07c4e
40 changed files with 321 additions and 188 deletions

View File

@ -1 +1,2 @@
sciorganization.ui.simpleorganization_properties.title=Basic properties
cms.contenttypes.simpleorganization.type_label=Organization

View File

@ -1 +1,2 @@
sciorganization.ui.simpleorganization_properties.title=Basiseigenschaften
cms.contenttypes.simpleorganization.type_label=Organisation

View File

@ -13,3 +13,4 @@ cms.contenttypes.ui.siteproxy.link.editatoz=Edit
#URL:
cms.contenttypes.ui.siteproxy.url=URL:
cms.contenttypes.ui.siteproxy.edit_form_link=Edit
cms.contenttypes.siteproxy.type_label=Site Proxy

View File

@ -13,3 +13,4 @@ cms.contenttypes.ui.siteproxy.link.editatoz=Bearbeiten
#URL:
cms.contenttypes.ui.siteproxy.url=URL:
cms.contenttypes.ui.siteproxy.edit_form_link=Bearbeiten
cms.contenttypes.siteproxy.type_label=Site Proxy

View File

@ -13,3 +13,4 @@ cms.contenttypes.ui.siteproxy.link.editatoz=Edit
#URL:
cms.contenttypes.ui.siteproxy.url=URL:
cms.contenttypes.ui.siteproxy.edit_form_link=Edit
cms.contenttypes.siteproxy.type_label=Site Proxy

View File

@ -11,3 +11,4 @@ xmlfeed.authoring.query_form_step.title=Edit Query Form
xmlfeed.authoring.query_form.description=The form that supplies the query fields.
cms.contenttypes.ui.xmlfeed.xsl_file_type_error=File is not the correct type.
cms.contenttypes.ui.xmlfeed.xsl_file_validation_error=Cannot verify the file is valid, please try again.
cms.contenttypes.xmlfeed.xmlfeed.type_label=XML Feed

View File

@ -11,3 +11,4 @@ xmlfeed.authoring.query_form_step.title=Abfrageformular bearbeiten
xmlfeed.authoring.query_form.description=Das Formular, das die Eingabefelder f\u00fcr die Abfrage enth\u00e4lt.
cms.contenttypes.ui.xmlfeed.xsl_file_type_error=Der Dateityp ist falsch.
cms.contenttypes.ui.xmlfeed.xsl_file_validation_error=Dateityp kann nicht best\u00e4tigt werden, bitte erneut probieren.
cms.contenttypes.xmlfeed.xmlfeed.type_label=XML Feed

View File

@ -32,7 +32,6 @@ import com.arsdigita.persistence.OID;
import com.arsdigita.persistence.SessionManager;
import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.web.Web;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@ -232,10 +231,10 @@ public class ContentType extends ACSObject {
// Create the globalized label
label = new GlobalizedMessage(labelKey, bundleName);
} else {
// No property file found, try to use the item's definition file
final InputStream defFile = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(typeResourcePath);
// No property file found, try to use the item's definition file
if (defFile == null) {
// Giving up!
@ -246,21 +245,21 @@ public class ContentType extends ACSObject {
// found in a resource file.
label = new GlobalizedMessage(getName());
} else {
// item definition file found. use it's
// item definition file found. Use it.
// determine the bundle from attribute "descriptionBundle"
// which should provide an item specific description (but
// unfortunately due to lazy programmers not always does).
// As a proper example:
// /WEB-INF/content-types/com.arsditita.cms.contenttypes.Event.xml
try {
final SAXParserFactory parserFactory = SAXParserFactory.newInstance();
final SAXParser parser = parserFactory.newSAXParser();
final BundleName bundleName = new BundleName();
parser.parse(defFile, bundleName);
//String bundleName = "REPLACE ME"; // REPLACE ME!
if (bundleName.getName() == null) {
// Fallback to the non-globalized identifier (name)
return new GlobalizedMessage(getName());
} else {
label = new GlobalizedMessage(labelKey, bundleName.getName());
@ -279,25 +278,42 @@ public class ContentType extends ACSObject {
return label;
}
/**
*
*/
private class BundleName extends DefaultHandler {
private String name;
/**
* Constructor, does nothing.
*/
public BundleName() {
//Nothing
}
/**
*
* @return
*/
public String getName() {
return name;
}
/**
*
* @param namespaceURI
* @param localName
* @param qName
* @param attributes
*/
@Override
public void startElement(final String namespaceURI,
final String localName,
final String qName,
final Attributes attributes) {
if ("ctd:authoring-step".equals(qName)) {
name = attributes.getValue("labelBundle");
name = attributes.getValue("descriptionBundle");
}
}

View File

@ -34,7 +34,7 @@ import com.arsdigita.persistence.Filter;
* @version $Id: ContentTypeCollection.java 2263 2012-01-08 17:43:22Z pboy $
*/
public class ContentTypeCollection extends DomainCollection {
/**
* Constructor.
*

View File

@ -31,9 +31,10 @@ import com.arsdigita.xml.Element;
* A class representing an option of a widget.
*
* The Option consist of two parts:
* - a value
* - a label (display component used as label (title) of the option.)
*
* - a value, used by the background task to process the option
* - a display component, used to display the option to the user in the GUI,
* usually a Label (title), but may be e.g. an image as well.
* @author Rory Solomon
* @author Michael Pih
*
@ -41,19 +42,29 @@ import com.arsdigita.xml.Element;
*/
public class Option extends DescriptiveComponent {
/** The value of the option, used by the background task to process the
* option.
* NOTE: The display component, the label, is provided by parent class! */
private String m_value;
private OptionGroup m_group;
/** The display component for the user in the GUI. It's usually a Label,
* but may be e.g. an image as well. */
private Component m_component;
private OptionGroup m_group;
private boolean m_isSelectOption;
// ///////////////////////////////////////////////////////////////////////
// Constructor Section
//
/**
* (Too) simple Constructor which uses a String as value as well as display
* component.
* @param label A String used as value as well as display component.
* A (too) simple Constructor which uses a String as value as well as
* display component.
*
* @param value A String used as value as well as display component.
* @deprecated use Option(value,component) instead
*/
public Option(String label) {
this(label, label);
public Option(String value) {
this(value, value);
}
/**
@ -66,8 +77,8 @@ public class Option extends DescriptiveComponent {
* @deprecated use Option(value,component) instead
*/
public Option(String value, String label) {
setLabel(label);
setValue(value);
setLabel(label);
}
/**
@ -75,60 +86,80 @@ public class Option extends DescriptiveComponent {
* usually a Label(GlobalizedMessage).
* This constructor should be used to create a fully globalized and
* localized user interface.
*
* @param value
* @param label
*/
public Option(String value, Component label) {
setComponent(label);
setValue(value);
}
/**
*
* @return
*/
public String getName() {
return m_group.getName();
}
/**
* If the component is a Label (which most of the time it is)
* then this returns the value of the label. This assumes
* that the Component is a label
*
* @return
* @exception ClassCastException is thrown if the component is not
* a label
*/
// public final String getLabel() {
// return ((Label)m_component).getLabel();
// }
/**
* This sets the component to the label consisting of the passed in
* string
*/
public final void setLabel(String label) {
setComponent(new Label(label));
}
/**
* @deprecated Use {@link #setComponent(Component component)} instead
*/
public final void setLabel(Label label) {
setComponent(label);
}
// ///////////////////////////////////////////////////////////////////////
// Getter/Setter Section
//
/**
* Retrieves the value part of an option.
* @return the value part of this option.
*/
public final String getValue() {
return m_value;
}
/**
* Sets of modifies the value of on option.
* @param value new value part of the option
*/
public final void setValue(String value) {
m_value = value;
}
/**
* Retrieves the display part of the option.
* @return the display component for this option
*/
public final Component getComponent() {
return m_component;
}
/**
* Sets of modifies the display component of an option.
*
* @param component the display component for this option
*/
public final void setComponent(Component component) {
Assert.isUnlocked(this);
m_component = component;
}
public final Component getComponent() {
return m_component;
/**
* Sets of modifies the display component of an option providing a Label.
* The label is internally stored as a component.
*
* @param label
*/
public final void setLabel(Label label) {
setComponent(label);
}
/**
* This sets the display component using a String. It results in a badly
* globalized UI
*
* @param label String to use as the display component
* @deprecated Use {@link #setComponent(Component component)} instead
*/
public final void setLabel(String label) {
setComponent(new Label(label));
}
/**
*
* @param group
*/
public final void setGroup(OptionGroup group) {
Assert.isUnlocked(this);
Assert.exists(group);
@ -136,17 +167,25 @@ public class Option extends DescriptiveComponent {
m_isSelectOption = BebopConstants.BEBOP_OPTION.equals(m_group.getOptionXMLElement());
}
/**
*
* @return
*/
public final OptionGroup getGroup() {
return m_group;
}
public final String getValue() {
return m_value;
/**
* Retrieves the name (identifier) of the option group containing this
* option. Don't know the purpose of this.
*
* @return The name (identifier) of the option group this option belongs
* to
*/
public String getName() {
return m_group.getName();
}
public final void setValue(String value) {
m_value = value;
}
/**
* Sets the <tt>ONFOCUS</tt> attribute for the HTML tags that compose

View File

@ -43,7 +43,7 @@ import javax.servlet.http.HttpServletRequestWrapper;
import org.apache.log4j.Logger;
/**
* A class representing any widget that contains a list options.
* A class representing any widget that contains a list of options.
*
* @author Karl Goldstein
* @author Uday Mathur
@ -54,12 +54,15 @@ import org.apache.log4j.Logger;
public abstract class OptionGroup extends Widget implements BebopConstants {
private static final Logger LOGGER = Logger.getLogger(OptionGroup.class);
/**
* The XML element to be used by individual options belonging to this group. This variable has
* to be initialized by every subclass of OptionGroup. LEGACY: An abstract method would be the
* better design, but changing it would break the API.
* The XML element to be used by individual options belonging to this group.
* This variable has to be initialized by every subclass of OptionGroup.
* LEGACY: An abstract method would be the better design, but changing it
* would break the API.
*/
//protected String m_xmlElement;
// this only needs to be an ArrayList for multiple selection option groups
private List<String> m_selected;
private List<Option> m_options;
@ -76,27 +79,32 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
*/
private boolean excludeFirst;
public static final String OTHER_OPTION = "__other__";
// request-local copy of selected elements, options
private RequestLocal m_requestOptions = new RequestLocal() {
// this is only used for single selection option groups
private final static String TOO_MANY_OPTIONS_SELECTED
= "Only one option may be selected by default on this option group.";
/** request-local copy of selected elements, options */
private final RequestLocal m_requestOptions = new RequestLocal() {
@Override
public Object initialValue(final PageState state) {
return new ArrayList<Option>();
}
};
/**
*
* @return
*/
@Override
public final boolean isCompound() {
return true;
}
// this is only used for single selection option groups
private final static String TOO_MANY_OPTIONS_SELECTED
= "Only one option may be selected by default on this option group.";
/**
* The ParameterModel for mutliple OptionGroups is always an array parameter
* The ParameterModel for multiple OptionGroups is always an array parameter
* @param model
*
* @param model
*/
@ -236,12 +244,18 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
addOption(option, null, false);
}
/**
* Adds a new option.
*
* @param opt
* @param ps
*/
public void addOption(final Option option, final PageState state) {
addOption(option, state, false);
}
/**
* Adds a new option.at the beginning of the list
* Adds a new option at the beginning of the list.
*
* @param option The {@link Option} to be added. Note: the argument is modified and associated
* with this OptionGroup, regardless of what its group was.
@ -259,8 +273,8 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
}
/**
* Adds a new option for the scope of the current request, or to the page as a whole if there is
* no current request.
* Adds a new option for the scope of the current request, or to the page
* as a whole if there is no current request.
*
* @param option The {@link Option} to be added. Note: the argument is modified and associated
* with this OptionGroup, regardless of what its group was.
@ -298,7 +312,11 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
}
/**
* Removes the first option whose key is isEqual to the key that is passed in.
* Removes the first option whose key is isEqual to the key that is
* passed in.
* @param key
* @param state the current page state. if ps is null, adds option to
* the default option list.
*/
public void removeOption(final String key, final PageState state) {
// This is not an entirely efficient technique. A more
@ -408,10 +426,11 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
}
/**
* Make an option selected by default. Updates the parameter model for the option group
* accordingly.
* Make an option selected by default. Updates the parameter model for
* the option group accordingly.
*
* @param value the value of the option to be added to the by-default-selected set.
* @param value the value of the option to be added to the
* by-default-selected set.
*/
public void setOptionSelected(final String value) {
Assert.isUnlocked(this);
@ -447,12 +466,14 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
}
/**
* Is this a multiple (and not single) selection option group? Note that this should really be
* declared abstract, but we can't because it used to be in the direct subclass Select and
* making it abstract could break other subclasses that don't declare isMultiple. So we have a
* Whether this a multiple (and not single) selection option group.
* Note that this should really be declared abstract, but we can't because
* it used to be in the direct subclass Select and making it abstract could
* break other subclasses that don't declare isMultiple. So we have a
* trivial implementation instead.
*
* @return true if this OptionGroup can have more than one selected option; false otherwise.
* @return true if this OptionGroup can have more than one selected option;
* false otherwise.
*/
public boolean isMultiple() {
return true;
@ -497,7 +518,7 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
* <p>
* <
* pre><code>&lt;bebop:* name=... [onXXX=...]&gt;
* &lt;bebop:option name=... [selected]&gt; option value &lt;/bebop:option%gt;
* &lt;bebop:option name=... [selected]&gt; option value &lt;/bebop:option%gt;
* ...
* &lt;/bebop:*select&gt;</code></pre>
*/
@ -506,8 +527,10 @@ public abstract class OptionGroup extends Widget implements BebopConstants {
final Element optionGroup = parent.newChildElement(getElementTag(), BEBOP_XML_NS);
optionGroup.addAttribute("name", getName());
optionGroup.addAttribute("class", getName().replace(".", " "));
// Localized title for this option group
if (getLabel() != null) {
optionGroup.addAttribute("label", (String) getLabel().localize(state.getRequest()));
optionGroup.addAttribute("label", (String)getLabel()
.localize(state.getRequest()));
}
if (isMultiple()) {
optionGroup.addAttribute("multiple", "multiple");

View File

@ -52,16 +52,22 @@ import com.arsdigita.xml.Element;
* </p>
*
* <p>
* A widget may correspond to a standard HTML form element, or to a more specific element or set of
* elements, such as a date widget that allows input of month, day and year (and possibly time as
* well).</p>
* A widget may correspond to a standard HTML form element, or to a more
* specific element or set of elements, such as a date widget that allows
* input of month, day and year (and possibly time as well).</p>
*
* <p>
* This class and its subclasses provide methods to set all element attributes except for
* <code>VALUE</code>, which is typically dependent on the request. At the time of a request, a
* widget object merges a dynamically specified value or set of values with its own set of
* persistent attributes to render the final HTML for the widget. Other dynamic attributes may be
* associated with the form component via a <code>WidgetPeer</code> associated with the widget.</p>
* This class and its subclasses provide methods to set all element attributes
* except for <code>VALUE</code>, which is typically dependent on the request.
* At the time of a request, a widget object merges a dynamically specified
* value or set of values with its own set of persistent attributes to render
* the final HTML for the widget. Other dynamic attributes may be associated with
* the form component via a <code>WidgetPeer</code> associated with the widget.
* </p>
* <p>
* The parent class provides the Label (the localized title) for the widget as
* well as a (localized) hint as a kind of online manual for the user.
* </p>
*
* @author Karl Goldstein
* @author Uday Mathur
@ -69,7 +75,7 @@ import com.arsdigita.xml.Element;
* @version $Id: Widget.java 1537 2007-03-23 15:33:34Z chrisgilbert23 $
*/
public abstract class Widget extends DescriptiveComponent
implements Cloneable, BebopConstants {
implements Cloneable, BebopConstants {
private static final Logger s_log = Logger.getLogger(Widget.class);
@ -78,11 +84,6 @@ public abstract class Widget extends DescriptiveComponent
private ParameterListener m_forwardParameter = null;
private PrintListener m_printListener;
private Form m_form;
/**
* The optional (localized) label (or title) of this widget.
*/
// Use parent's class' instead
// private GlobalizedMessage m_label;
private ValidationGuard m_guard = null;
@ -109,7 +110,8 @@ public abstract class Widget extends DescriptiveComponent
* Constructor, creates a new widget.
*
* <p>
* Each new widget is associated with a ParameterModel describing the data object(s) submitted
* Each new widget is associated with a ParameterModel describing the
* data object(s) submitted
* from the widget.
*
* @param model

View File

@ -44,6 +44,9 @@ import org.apache.log4j.Logger;
*/
public abstract class ParameterModel implements Lockable {
private static final Logger s_log = Logger
.getLogger(ParameterModel.class.getName());
/**
* The name of this ParameterModel. The constructor will throw an
* exception if the specified name is null
@ -83,9 +86,6 @@ public abstract class ParameterModel implements Lockable {
private boolean m_passIn = true;
private static final Logger s_log =
Logger.getLogger(ParameterModel.class.getName());
/**
* Construct an unlocked ParameterModel
*/
@ -98,8 +98,8 @@ public abstract class ParameterModel implements Lockable {
* Construct a new Parameter Model with the specified name
*
* @param name String used to identify this parameter. Name is used
* as the name of the associated widget, and is the name of the
* variable in the request
* as the name of the associated widget, and is the name of the
* variable in the request.
*/
protected ParameterModel(String name) {
this();
@ -192,7 +192,7 @@ public abstract class ParameterModel implements Lockable {
}
/**
* Sets the name of this ParmeterModel.
* Sets the name of this ParameterModel.
* Asserts that this ParameterModel is not locked.
*
* @param name The name of this parameter model.

View File

@ -37,8 +37,9 @@ public class DomainCollection extends DomainQuery {
/**
* Constructor.
*
* @see com.arsdigita.persistence.DataCollection
*
* @param dataCollection
**/
public DomainCollection(DataCollection dataCollection) {
super(dataCollection);
@ -48,8 +49,9 @@ public class DomainCollection extends DomainQuery {
/**
* Returns a <code>DomainObject</code> for the current position in
* the collection.
*
* @see DomainObject
*
* @return
**/
public DomainObject getDomainObject() {
return

View File

@ -42,8 +42,9 @@ public abstract class DomainQuery implements DataQuery {
/**
* Constructor.
*
* @see com.arsdigita.persistence.DataQuery
*
* @param dataQuery
**/
public DomainQuery(DataQuery dataQuery) {
m_dataQuery = dataQuery;
@ -65,6 +66,7 @@ public abstract class DomainQuery implements DataQuery {
* @param propertyName A property name.
* @return True if this query fetches the given property.
**/
@Override
public boolean hasProperty(String propertyName) {
return m_dataQuery.hasProperty( propertyName );
}
@ -78,7 +80,8 @@ public abstract class DomainQuery implements DataQuery {
* no objects in the collection
*
* @see com.arsdigita.persistence.DataQuery#first()
**/
*/
@Override
public boolean first() {
return m_dataQuery.first();
}
@ -90,30 +93,31 @@ public abstract class DomainQuery implements DataQuery {
* if there are no more objects
*
* @see com.arsdigita.persistence.DataQuery#next()
**/
*/
@Override
public boolean next() {
return m_dataQuery.next();
}
/**
* Moves to the previous object in the collection.
* @see com.arsdigita.persistence.DataQuery#previous()
*
* @return true if the new current object is valid; false otherwise
*
* @see com.arsdigita.persistence.DataQuery#previous()
**/
*/
@Override
public boolean previous() {
return m_dataQuery.previous();
}
/**
* Moves the cursor to the last object in the collection.
* @see com.arsdigita.persistence.DataQuery#last()
*
* @return true if the cursor is on a valid object; false if there
* are no objects in the collection
*
* @see com.arsdigita.persistence.DataQuery#last()
**/
* are no objects in the collection
*/
@Override
public boolean last() {
return m_dataQuery.last();
}

View File

@ -13,9 +13,9 @@
<ctd:authoring-step
labelKey="publications.ui.publication_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.PublicationResources"
descriptionKey="publications.ui.publication_properties.title.description"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.PublicationResources"
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
descriptionKey="movie.authoring.basic_properties.description"
descriptionBundle="com.arsdigita.cms.contenttypes.SciPublicationDramaticArtsResources"
component="com.arsdigita.cms.contenttypes.ui.SciPublicationsMoviePropertiesStep"
ordering="1"/>

View File

@ -17,3 +17,5 @@ publications.dramaticarts.ui.play.production_theater.none=No theatre assigned
publications.dramaticarts.ui.play.production_theater.remove=Remove
publications.dramaticarts.ui.play.production_theater.remove.confirm=Are you sure to remove the assigned theatre?
publications.dramaticarts.ui.play.productiontheater=First production theathre
cms.contenttypes.movie.type_label=Publication / Movie
cms.contenttypes.play.type_label=Publication / Play

View File

@ -17,3 +17,5 @@ publications.dramaticarts.ui.play.production_theater.none=Kein Theater zugewiese
publications.dramaticarts.ui.play.production_theater.remove=Entfernen
publications.dramaticarts.ui.play.production_theater.remove.confirm=Sind Sie sicher, dass Sie das zugewiesene Theater entfernen wollen?
publications.dramaticarts.ui.play.productiontheater=Erstes Theater
cms.contenttypes.movie.type_label=Publikation / Film
cms.contenttypes.play.type_label=Publication / Auff\u00fchrung

View File

@ -16,7 +16,7 @@
labelKey="publications.ui.journal_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
descriptionKey="publications.ui.journal.basic_properties.description"
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationResources"
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
component="com.arsdigita.cms.contenttypes.ui.JournalPropertiesStep"
ordering="1"/>

View File

@ -16,7 +16,7 @@
labelKey="publications.ui.monograph_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
descriptionKey="publications.ui.monograph.basic_properties.description"
descriptionBundle="com.arsdigita.cms.contenttpyes.PublicationsResources"
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
component="com.arsdigita.cms.contenttypes.ui.MonographPropertiesStep"
ordering="1"/>

View File

@ -10,18 +10,19 @@
<ctd:authoring-kit createComponent="com.arsdigita.cms.contenttypes.ui.GenericPersonCreate">
<ctd:authoring-step labelKey="cms.contenttypes.shared.basic_properties.title"
labelBundle="com.arsdigita.cms.CMSResources"
descriptionKey="cms.contenttypes.shared.basic_properties.description"
descriptionBundle="com.arsdigita.cms.CMSResources"
component="com.arsdigita.cms.contenttypes.ui.SciAuthorPropertiesStep"
ordering="1"/>
<ctd:authoring-step
labelKey="cms.contenttypes.shared.basic_properties.title"
labelBundle="com.arsdigita.cms.CMSResources"
descriptionKey="cms.contenttypes.sciauthor.basic_properties.description"
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
component="com.arsdigita.cms.contenttypes.ui.SciAuthorPropertiesStep"
ordering="1"/>
<ctd:authoring-step
labelKey="person.authoring.contact_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.ContenttypesResources"
descriptionKey="person.authoring.contact_properties.description"
descriptionBundle="com.arsdigita.cms.contenttypes.ContenttypesResources"
labelKey="cms.contenttypes.sciauthor.authoring.contact_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
descriptionKey="cms.contenttypes.sciauthor.authoring.contact_properties.description"
descriptionBundle="com.arsdigita.cms.contenttypes.PublicationsResources"
component="com.arsdigita.cms.contenttypes.ui.GenericPersonContactPropertiesStep"
ordering="2"/>

View File

@ -206,7 +206,7 @@ publications.ui.series.volumes.none=No volumes
publications.ui.series.volumes.remove=Remove volume
publications.ui.series.volumes.remove.confirm=Really remove this volume?
publications.ui.series.volumes.volume_of_series=Volume of series
sciauthor.ui.edit_basic_properties=Basic properties
cms.contenttypes.sciauthor.ui.edit_basic_properties=Basic properties
publications.ui.inproceedings.pages_to=Last page
publications.ui.internetarticle.issn=ISSN
publications.ui.internetarticle.publication_date=Date of publication
@ -417,21 +417,24 @@ publications.ui.publication.language=Language of publication
publications.ui.series.number=Volume of series
person.ui.publications.header=Publications with {0} as author
person.ui.publications.header.alias_of=(Alias of {0})
cms.contenttypes.articleincollectedvolume.type_label=Publication / Article in Collected Volume
cms.contenttypes.articleinjournal.type_label=Publication / Article in Journal
cms.contenttypes.collectedvolume.type_label=Publication / Collected Volume
cms.contenttypes.Expertise.type_label=Publication / Expertise
cms.contenttypes.GreyLiterature.type_label=Publication / Grey Literature
cms.contenttypes.InProceedings.type_label=Publication / In Proceedings
cms.contenttypes.InternetArticle.type_label=Publication / Internet Article
cms.contenttypes.Journal.type_label=Publication / Journal
cms.contenttypes.Monograph.type_label=Publication / Monograph
cms.contenttypes.Proceedings.type_label=Publication / Proceedings
cms.contenttypes.Publication.type_label=Publication
cms.contenttypes.PublicationWithPublisher.type_label=Publication with Publisher
cms.contenttypes.Publisher.type_label=Publisher
cms.contenttypes.Review.type_label=Publication / Review
cms.contenttypes.SciAuthor.type_label=Publication / Author
cms.contenttypes.Series.type_label=Publication / Series
cms.contenttypes.UnPublished.type_label=Publication / Unpublished
cms.contenttypes.WorkingPaper.type_label=Publication / Working Paper
cms.contenttypes.articleincollectedvolume.type_label=Publication - Article in Collected Volume
cms.contenttypes.articleinjournal.type_label=Publication - Article in Journal
cms.contenttypes.collectedvolume.type_label=Publication - Collected Volume
cms.contenttypes.expertise.type_label=Publication - Expertise
cms.contenttypes.greyliterature.type_label=Publication - Grey Literature
cms.contenttypes.inproceedings.type_label=Publication - In Proceedings
cms.contenttypes.internetarticle.type_label=Publication - Internet Article
cms.contenttypes.journal.type_label=Publication - Journal
cms.contenttypes.monograph.type_label=Publication - Monograph
cms.contenttypes.proceedings.type_label=Publication - Proceedings
cms.contenttypes.publication.type_label=Publication
cms.contenttypes.publicationwithpublisher.type_label=Publication with Publisher
cms.contenttypes.publisher.type_label=Publisher
cms.contenttypes.review.type_label=Publication - Review
cms.contenttypes.sciauthor.type_label=Publication - Author
cms.contenttypes.series.type_label=Publication - Series
cms.contenttypes.unpublished.type_label=Publication - Unpublished
cms.contenttypes.workingpaper.type_label=Publication - Working Paper-
cms.contenttypes.sciauthor.basic_properties.description=Input screen for an atuhor's basic properties as name, christian name, professional titel, etc
cms.contenttypes.sciauthor.authoring.contact_properties.description=Contact Properties
cms.contenttypes.sciauthor.authoring.contact_properties.title=Contact Properties

View File

@ -205,7 +205,7 @@ publications.ui.series.volumes.none=Keine B\u00e4nde gefunden.
publications.ui.series.volumes.remove=Band entfernen.
publications.ui.series.volumes.remove.confirm=Diesen Band wirklich entfernen?
publications.ui.series.volumes.volume_of_series=Band der Serie
sciauthor.ui.edit_basic_properties=Basiseigenschaften bearbeiten
cms.contenttypes.sciauthor.ui.edit_basic_properties=Basiseigenschaften bearbeiten
publications.ui.inproceedings.pages_to=Letzte Seite
publications.ui.internetarticle.issn=ISSN
publications.ui.internetarticle.publication_date=Publikationsdatum
@ -416,21 +416,24 @@ publications.ui.publication.language=Sprache der Publikation
publications.ui.series.number=Band der Reihe
person.ui.publications.header=Publikationen mit {0} als Autorin/Autor
person.ui.publications.header.alias_of=\ (Alias von {0})
cms.contenttypes.articleincollectedvolume.type_label=Publikation / Sammelbandbeitrag
cms.contenttypes.articleinjournal.type_label=Publikation / Zeitschriftenbeitrag
cms.contenttypes.collectedvolume.type_label=Publication / Collected Volume
cms.contenttypes.Expertise.type_label=Publikation / Gutachten
cms.contenttypes.GreyLiterature.type_label=Publikation / Graue Literatur
cms.contenttypes.InProceedings.type_label=Publikation / Beitrag in Tagungsband
cms.contenttypes.InternetArticle.type_label=Publikation / Internet Artikel
cms.contenttypes.Journal.type_label=Publikation / Zeitschrift
cms.contenttypes.Monograph.type_label=Publikation / Monographie
cms.contenttypes.Proceedings.type_label=Publikation / Tagungsband
cms.contenttypes.Publication.type_label=Publikation
cms.contenttypes.PublicationWithPublisher.type_label=Publication with Publisher
cms.contenttypes.Publisher.type_label=Verlag
cms.contenttypes.Review.type_label=Publication / Rezension
cms.contenttypes.SciAuthor.type_label=Publikation / AutorIn
cms.contenttypes.Series.type_label=Publikation / Serie
cms.contenttypes.UnPublished.type_label=Publikation / Unver\u00f6ffentlicht
cms.contenttypes.WorkingPaper.type_label=Publikation / Arbeitspapier
cms.contenttypes.articleincollectedvolume.type_label=Publikation - Sammelbandbeitrag
cms.contenttypes.articleinjournal.type_label=Publikation - Zeitschriftenbeitrag
cms.contenttypes.collectedvolume.type_label=Publikation - Sammelband
cms.contenttypes.expertise.type_label=Publikation - Gutachten
cms.contenttypes.greyliterature.type_label=Publikation - Graue Literatur
cms.contenttypes.inproceedings.type_label=Publikation - Beitrag in Tagungsband
cms.contenttypes.internetarticle.type_label=Publikation - Internet Artikel
cms.contenttypes.journal.type_label=Publikation - Zeitschrift
cms.contenttypes.monograph.type_label=Publikation - Monographie
cms.contenttypes.proceedings.type_label=Publikation - Tagungsband
cms.contenttypes.publication.type_label=Publikation
cms.contenttypes.publicationwithpublisher.type_label=Publikation with Publisher
cms.contenttypes.publisher.type_label=Verlag
cms.contenttypes.review.type_label=Publikation - Rezension
cms.contenttypes.sciauthor.type_label=Publikation - AutorIn
cms.contenttypes.series.type_label=Publikation - Serie
cms.contenttypes.unpublished.type_label=Publikation - Unver\u00f6ffentlicht
cms.contenttypes.workingpaper.type_label=Publikation - Arbeitspapier
cms.contenttypes.sciauthor.basic_properties.description=Input screen for an atuhor's basic properties as name, christian name, professional titel, etc
cms.contenttypes.sciauthor.authoring.contact_properties.description=Kontaktangaben
cms.contenttypes.sciauthor.authoring.contact_properties.title=Kontaktangaben

View File

@ -44,7 +44,7 @@ public class SciAuthorPropertiesStep extends SimpleEditStep {
editSheet = new SciAuthorPropertyForm(itemModel, this);
add(EDIT_SHEET_NAME,
PublicationGlobalizationUtil.globalize(
"sciauthor.ui.edit_basic_properties"),
"cms.contenttypes.sciauthor.ui.edit_basic_properties"),
new WorkflowLockedComponentAccess(editSheet, itemModel),
editSheet.getSaveCancelSection().getCancelButton());

View File

@ -18,7 +18,6 @@
*/
package com.arsdigita.cms.contenttypes.ui;
import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormSectionEvent;
import com.arsdigita.bebop.event.FormSubmissionListener;

View File

@ -2,7 +2,7 @@
<ctd:content-types xmlns:ctd="http://xmlns.redhat.com/cms/content-types"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.redhat.com/cms/content-types content-types.xsd">
xsi:schemaLocation="http://xmlns.redhat.com/cms/content-types content-types.xsd">
<ctd:content-type
label="SciDepartment"
@ -14,22 +14,22 @@
<ctd:authoring-step
labelKey="sciorganization.ui.department_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
labelBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
descriptionKey="sciorganization.ui.department_properties.title"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
descriptionBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentPropertiesStep"
ordering="1"/>
<ctd:authoring-step
labelKey="sciorganization.ui.department.members"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
labelBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
descriptionKey="sciorganization.ui.department.members.description"
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentMembersStep"
ordering="2"/>
<ctd:authoring-step
labelKey="sciorganization.ui.department_description.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciDepartmentResources"
labelBundle="com.arsdigita.cms.contenttypes.SciDepartmentResources"
descriptionKey="sciorganization.ui.department_description.title"
component="com.arsdigita.cms.contenttypes.ui.SciDepartmentDescriptionStep"
ordering="3"/>

View File

@ -82,3 +82,4 @@ sciproject.ui.departments.title=Involved departments
sciproject.ui.departments.description=Add this project to the projects of a department
scidepartment.ui.members.add=Add member
scidepartment.ui.superdepartment.add=Add superior deparment
cms.contenttypes.scidepartment.type_label=(Scientific) Departement

View File

@ -85,3 +85,4 @@ sciproject.ui.departments.title=Beteiligte Abteilungen
sciproject.ui.departments.description=Dieses Projekt den Projektes einer Abteilung hinzuf\u00fcgen
scidepartment.ui.members.add=Mitglied hinzuf\u00fcgen
scidepartment.ui.superdepartment.add=\u00dcbergeordnete Abteilung hinzuf\u00fcgen
cms.contenttypes.scidepartment.type_label=Abteilung

View File

@ -33,7 +33,7 @@ public class SciDepartmentGlobalizationUtil {
/** Name of Java resource files to handle SciDepartment's globalisation. */
public static final String BUNDLE_NAME =
"com.arsdigita.cms.contenttypes.ui.SciDepartmentResources";
"com.arsdigita.cms.contenttypes.SciDepartmentResources";
/**
* Returns a globalized message using the appropriate bundle.

View File

@ -14,22 +14,22 @@
<ctd:authoring-step
labelKey="sciorganization.ui.institute_properties.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
labelBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
descriptionKey="sciorganization.ui.institute_properties.title"
descriptionBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
descriptionBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
component="com.arsdigita.cms.contenttypes.ui.SciInstitutePropertiesStep"
ordering="1"/>
<ctd:authoring-step
labelKey="sciorganization.ui.institute.members"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
labelBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
descriptionKey="sciorganization.ui.institute.members.description"
component="com.arsdigita.cms.contenttypes.ui.SciInstituteMembersStep"
ordering="2"/>
<ctd:authoring-step
labelKey="sciorganization.ui.institute_description.title"
labelBundle="com.arsdigita.cms.contenttypes.ui.SciInstituteResources"
labelBundle="com.arsdigita.cms.contenttypes.SciInstituteResources"
descriptionKey="sciorganization.ui.institute_description.title"
component="com.arsdigita.cms.contenttypes.ui.SciInstituteDescriptionStep"
ordering="3"/>

View File

@ -81,3 +81,5 @@ sciinstitute.ui.projects.title=Projects
sciinstitute.ui.projects.description=Manage the projects of this institute
sciproject.ui.institutes.title=Participating institutes
sciproject.ui.institutes.description=Participating institutes
cms.contenttypes.sciinstitute.type_label=Scientific Institute
cms.contenttypes.sciinstitute.type_description=Institute of scientific organizations, e.g. university

View File

@ -80,4 +80,6 @@ scidepartment.ui.institutes.description=Diese Abteilung einem Institut hinzuf\u0
sciinstitute.ui.projects.title=Projekte
sciinstitute.ui.projects.description=Projekte dieses Instituts verwalten
sciproject.ui.institutes.title=Beteiligte Institute
sciproject.ui.institutes.description=An dem Projekt beteiligte Institute verwalten
sciproject.ui.institutes.description=An dem Projekt beteiligte Institute verwa
cms.contenttypes.sciinstitute.type_label=Wissenschaftliches Institut
cms.contenttypes.sciinstitute.type_description=Institut einer wissenschaftlichen Organisation, z.B. Universit\u00e4t

View File

@ -10,7 +10,7 @@ import com.arsdigita.globalization.GlobalizedMessage;
public class SciInstituteGlobalizationUtil {
public static final String BUNDLE_NAME =
"com.arsdigita.cms.contenttypes.ui.SciInstituteResources";
"com.arsdigita.cms.contenttypes.SciInstituteResources";
public static GlobalizedMessage globalize(final String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);

View File

@ -0,0 +1,6 @@
# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.
cms.contenttypes.scimember.type_label=(Scientific) Member
cms.contenttypes.scimember.type_description=Base type for a member of an (scientific) organization

View File

@ -0,0 +1,6 @@
# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.
cms.contenttypes.scimember.type_label=Mitglied (einer wiss. Org.)
cms.contenttypes.scimember.type_description=Basistyp f\u00fcr ein Mitglied einer (wissenschaftlichen) Organisation

View File

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

View File

@ -0,0 +1,10 @@
\echo 'ScientificCMS SciProject module upgrade 6.6.7 -> 6.6.8 (PostgreSQL)'
begin;
# Resource bundle has been relocated, may be updated in the content types
# authoring step(s) as well. Not urgent, because currently seldomly used
# (or not at all)
# \i ../default/upgrade/6.6.7-6.6.8/add_sponsor_fundingcode.sql
end;

View File

@ -103,3 +103,4 @@ sciproject.ui.sponsor_edit_assoc=Edit
sciproject.ui.sponsor.up=Up
sciproject.ui.sponsor.down=Down
sciproject.ui.sponsor.edit_assoc=Edit
cms.contenttypes.sciproject.type_label=Research Project

View File

@ -104,3 +104,4 @@ sciproject.ui.sponsor_edit_assoc=Bearbeiten
sciproject.ui.sponsor.up=Hoch
sciproject.ui.sponsor.down=Runter
sciproject.ui.sponsor.edit_assoc=Bearbeiten
cms.contenttypes.sciproject.type_label=Forschungsproject

View File

@ -9,7 +9,7 @@ import com.arsdigita.globalization.GlobalizedMessage;
*/
public class SciProjectGlobalizationUtil {
public static final String BUNDLE_NAME = "com.arsdigita.cms.contenttypes.ui.SciProjectResources";
public static final String BUNDLE_NAME = "com.arsdigita.cms.contenttypes.SciProjectResources";
public static GlobalizedMessage globalize(final String key) {
return new GlobalizedMessage(key, BUNDLE_NAME);