RelationAttribute

aktueller Stand

git-svn-id: https://svn.libreccm.org/ccm/trunk@508 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2010-08-17 09:48:38 +00:00
parent 3892f343f3
commit ab8c22becf
8 changed files with 1210 additions and 219 deletions

View File

@ -55,6 +55,7 @@ import com.arsdigita.util.Reporter;
import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.versioning.VersionedACSObject;
import com.arsdigita.versioning.Versions;
import java.util.logging.Level;
import org.apache.log4j.Logger;
import java.math.BigDecimal;
@ -67,6 +68,7 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
/**
* This class represents a content item.
@ -200,33 +202,27 @@ import java.util.Set;
*
* @version $Id: ContentItem.java 1621 2007-09-13 12:43:12Z chrisg23 $
*/
public class ContentItem extends VersionedACSObject implements CustomCopy {
public class ContentItem extends VersionedACSObject implements CustomCopy, RelationAttribute {
private static final Logger s_log = Logger.getLogger(ContentItem.class);
private static final Logger s_logDenorm = Logger.getLogger(ContentItem.class.getName() + ".Denorm");
private static final String MODEL = "com.arsdigita.cms";
private static final String QUERY_PENDING_ITEMS =
MODEL + ".getPendingSortedByLifecycle";
public static final String BASE_DATA_OBJECT_TYPE = MODEL + ".ContentItem";
/**
* A state marking the draft or master item corresponding to a
* live or pending version of that item.
*/
public static final String DRAFT = "draft";
/**
* A state marking the live version, a copy of the draft item.
*/
public static final String LIVE = "live";
/**
* A state marking the live version, a copy of the draft item.
*/
public static final String PENDING = "pending";
// Metadata attribute constants
public static final String ANCESTORS = "ancestors";
public static final String PARENT = "parent";
@ -236,14 +232,12 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
public static final String NAME = "name";
public static final String LANGUAGE = "language";
public static final String AUDITING = "auditing";
public static final String DRAFT_VERSION = "masterVersion";
public static final String VERSIONS = "slaveVersions";
public static final String CONTENT_SECTION = "section";
private static final String RELATION_ATTRIBUTES = "";
private static final String PUBLISH_LISTENER_CLASS =
PublishLifecycleListener.class.getName();
private VersionCache m_pending;
private VersionCache m_live;
private boolean m_wasNew;
@ -310,17 +304,16 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
s_log.debug("Content item " + this + " created with type " + type);
}
}
private static DomainObjectObserver s_parentObs =
new AbstractDomainObjectObserver() {
public void set(DomainObject dobj, String name,
Object old, Object newVal) {
if (PARENT.equals(name)) {
ContentItem ci = (ContentItem) dobj;
if (newVal != null) {
PermissionService.setContext
(ci.getOID(), ((DataObject) newVal).getOID());
PermissionService.setContext(ci.getOID(), ((DataObject) newVal).getOID());
}
}
}
@ -350,8 +343,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
m_reporter = new Reporter(s_log, this, ContentItem.class);
if (isNew()) {
s_log.debug(this + " is being newly created; " +
"marking it as a draft version");
s_log.debug(this + " is being newly created; "
+ "marking it as a draft version");
m_wasNew = true;
@ -361,8 +354,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
try {
final ContentType type =
ContentType.findByAssociatedObjectType
(getSpecificObjectType());
ContentType.findByAssociatedObjectType(getSpecificObjectType());
if (s_log.isDebugEnabled()) {
s_log.debug("Set content type for " + this + " to " + type);
@ -404,7 +396,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
super.set(key, value);
}
/**
* For new content items, sets the associated content type if it
* has not been already set.
@ -458,12 +449,12 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
if (parent != null && parent instanceof Folder) {
setContentSection(((ContentItem) parent).getContentSection());
} else {
s_log.debug("The item's parent is not a folder; I am " +
"not setting the default content section");
s_log.debug("The item's parent is not a folder; I am "
+ "not setting the default content section");
}
} else {
s_log.debug("The item's version is null or it is not draft; " +
"doing nothing");
s_log.debug("The item's version is null or it is not draft; "
+ "doing nothing");
}
}
@ -503,8 +494,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* Get the parent object.
*/
public ACSObject getParent() {
return (ACSObject) DomainObjectFactory.
newInstance((DataObject) get(PARENT));
return (ACSObject) DomainObjectFactory.newInstance((DataObject) get(PARENT));
}
/**
@ -580,8 +570,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* @return The content section to which this item belongs
*/
public ContentSection getContentSection() {
return (ContentSection) DomainObjectFactory.newInstance
((DataObject) get(CONTENT_SECTION));
return (ContentSection) DomainObjectFactory.newInstance((DataObject) get(CONTENT_SECTION));
}
/**
@ -677,8 +666,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* @return the items on the path to the root folder.
*/
public ItemCollection getPathInfo(boolean includeSelf) {
DataCollection collection = SessionManager.getSession().retrieve
(BASE_DATA_OBJECT_TYPE);
DataCollection collection = SessionManager.getSession().retrieve(BASE_DATA_OBJECT_TYPE);
String ids = (String) get(ANCESTORS);
if (ids == null) {
@ -718,7 +706,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Methods for accessing and linking content item versions
//
/**
* Gets the version tag.
*/
@ -843,8 +830,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
DataQuery versions = getSession().retrieveQuery(QUERY_PENDING_ITEMS);
versions.setParameter("itemID", getDraftVersion().getID());
return new ItemCollection
(new DataQueryDataCollectionAdapter(versions, "item"));
return new ItemCollection(new DataQueryDataCollectionAdapter(versions, "item"));
}
/**
@ -909,7 +895,9 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
s_log.debug("Getting the live version of " + this);
}
if ( LIVE.equals(getVersion()) ) { return this; }
if (LIVE.equals(getVersion())) {
return this;
}
if (m_live.isCached()) {
return m_live.get();
@ -924,8 +912,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
try {
if (versions.next()) {
ContentItem item = (ContentItem)
DomainObjectFactory.newInstance(versions.getDataObject());
ContentItem item = (ContentItem) DomainObjectFactory.newInstance(versions.getDataObject());
return m_live.set(item);
}
return m_live.set(null);
@ -992,7 +979,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Publishing methods
//
/**
* Method to determine whether this ContentItem should
* be automatically published to the file system.
@ -1053,19 +1039,19 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
*/
public void setLive(final ContentItem version) {
if (s_log.isDebugEnabled()) {
s_log.debug("Setting item " + this + " live with version " +
version);
s_log.debug("Setting item " + this + " live with version "
+ version);
}
if (Assert.isEnabled()) {
Assert.isTrue(version == null || LIVE.equals(version.getVersion()),
"Item version " + version + " must be null or " +
"the live version");
"Item version " + version + " must be null or "
+ "the live version");
}
if (isLive()) {
s_log.debug("The item is already live; getting the current " +
"live version");
s_log.debug("The item is already live; getting the current "
+ "live version");
final ContentItem oldVersion = getLiveVersion();
@ -1082,8 +1068,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
// XXX We don't need to use a custom query here
// anymore.
final DataQuery items =
SessionManager.getSession().retrieveQuery
("com.arsdigita.cms.getLiveItemsWithSameParent");
SessionManager.getSession().retrieveQuery("com.arsdigita.cms.getLiveItemsWithSameParent");
items.addNotEqualsFilter("id", oldVersion.getID());
items.setParameter("itemId", oldVersion.getID());
@ -1095,8 +1080,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
parent = getParent();
if (s_log.isDebugEnabled()) {
s_log.debug(oldVersion + " is the last child of " +
parent);
s_log.debug(oldVersion + " is the last child of "
+ parent);
}
}
@ -1117,15 +1102,15 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
if (parent instanceof ContentBundle || parent instanceof Folder) {
if (s_log.isDebugEnabled()) {
s_log.debug("Parent of " + oldVersion + " is " + parent +
"; unpublishing the parent");
s_log.debug("Parent of " + oldVersion + " is " + parent
+ "; unpublishing the parent");
}
((ContentItem) parent).setLive(null);
}
s_log.debug("Setting the live version association to null and " +
"saving");
s_log.debug("Setting the live version association to null and "
+ "saving");
setLiveVersion(null);
@ -1133,8 +1118,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
}
if (version != null) {
s_log.debug("The new version is not null; setting the live " +
"version association");
s_log.debug("The new version is not null; setting the live "
+ "version association");
setLiveVersion(version);
@ -1167,9 +1152,9 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
Versions.suspendVersioning();
if (s_log.isDebugEnabled()) {
s_log.debug("Publishing item " + this + " with lifecycle " +
"definition " + cycleDef + " and start date " +
startDate);
s_log.debug("Publishing item " + this + " with lifecycle "
+ "definition " + cycleDef + " and start date "
+ startDate);
}
/* amended Chris Gilbert
*
@ -1183,8 +1168,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
if (listener == null) {
listener = getPublishListenerClassName();
}
final Lifecycle cycle = cycleDef.createFullLifecycle
(startDate, listener);
final Lifecycle cycle = cycleDef.createFullLifecycle(startDate, listener);
if (s_log.isDebugEnabled()) {
s_log.debug("Instantiated lifecycle " + cycle);
@ -1199,10 +1183,10 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
if (Assert.isEnabled()) {
Assert.exists(pending, ContentItem.class);
Assert.isTrue(PENDING.equals(pending.getVersion()) ||
LIVE.equals(pending.getVersion()),
"The new pending item must be pending or live; " +
"instead it is " + pending.getVersion());
Assert.isTrue(PENDING.equals(pending.getVersion())
|| LIVE.equals(pending.getVersion()),
"The new pending item must be pending or live; "
+ "instead it is " + pending.getVersion());
}
return pending;
}
@ -1230,9 +1214,9 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
if (isLive()) {
if (s_log.isDebugEnabled()) {
s_log.debug("The item is currently live; removing the " +
"lifecycle of the public version, " +
getPublicVersion());
s_log.debug("The item is currently live; removing the "
+ "lifecycle of the public version, "
+ getPublicVersion());
}
removeLifecycle(getPublicVersion());
@ -1306,8 +1290,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
if (lifecycle == null) {
if (s_log.isDebugEnabled()) {
s_log.debug("The item has no lifecycle; checking if the " +
"public version has a lifecycle");
s_log.debug("The item has no lifecycle; checking if the "
+ "public version has a lifecycle");
}
final ContentItem pub = getPublicVersion();
@ -1320,8 +1304,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
final Lifecycle cyclelife = LifecycleService.getLifecycle(pub);
if (s_log.isDebugEnabled()) {
s_log.debug("The public version has a lifecycle; " +
"returning " + cyclelife);
s_log.debug("The public version has a lifecycle; "
+ "returning " + cyclelife);
}
return cyclelife;
@ -1361,7 +1345,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
// XXX domlay What is the relation of setLifecycle(Lifecycle) and
// publish(LifecycleDefinition ...)? It doesn't seem coherent.
/**
* Remove the associated lifecycle.
*/
@ -1370,8 +1353,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
// item?
if (s_log.isDebugEnabled()) {
s_log.debug("Removing lifecycle instance from item " +
itemToRemove);
s_log.debug("Removing lifecycle instance from item "
+ itemToRemove);
}
LifecycleService.removeLifecycle(itemToRemove);
@ -1394,7 +1377,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Category stuff
//
/**
* @return all categories to which this item belongs
*/
@ -1426,9 +1408,9 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
Category root = Category.getRootForObject(getContentSection(), useContext);
if (null == root) {
s_log.warn("No root category for " +
getContentSection().getOID().toString() +
" with context " + useContext);
s_log.warn("No root category for "
+ getContentSection().getOID().toString()
+ " with context " + useContext);
return Collections.EMPTY_LIST.iterator();
}
@ -1502,7 +1484,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Versioning stuff
//
/**
* Recursively copy this item, creating a clone.
* Reassign composite associations from the copy to point
@ -1569,6 +1550,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
return newItem;
}
/**
* Transfer services, such as categories,
* from the passed-in item to this item. This method should be
@ -1658,8 +1640,8 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* @param version The new Version to set
*/
protected void setVersionRecursively(final String version) {
s_log.debug("Recursively updating the version attribute of the " +
"item");
s_log.debug("Recursively updating the version attribute of the "
+ "item");
new VersionUpdater(version).updateItemVersion(this);
}
@ -1694,8 +1676,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
protected final boolean copyProperty(final ContentItem source,
final String attribute,
final ItemCopier copier) {
throw new UnsupportedOperationException
("use copyProperty(CustomCopy, Property, ItemCopier) for copying");
throw new UnsupportedOperationException("use copyProperty(CustomCopy, Property, ItemCopier) for copying");
}
/**
@ -1891,7 +1872,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Multilingual content
//
/**
* Language of the content item.
*
@ -1924,8 +1904,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
// slp.getLocale()
try {
locale = Locale.fromJavaLocale
(new java.util.Locale(getLanguage(),""));
locale = Locale.fromJavaLocale(new java.util.Locale(getLanguage(), ""));
} catch (GlobalizationException e) {
s_log.warn("GlobalizationException thrown in getLocale()", e);
throw new UncheckedWrapperException(e.getMessage());
@ -1960,7 +1939,6 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Deprecated methods and classes
//
/**
* Assert that this item is a top-level master object
* @deprecated with no replacement
@ -1972,11 +1950,11 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
//
// Private utility methods and classes
//
/**
* Caches a version of this item.
*/
private class VersionCache {
private ContentItem m_version;
private boolean m_cached;
@ -2007,11 +1985,13 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
m_cached = false;
}
}
/**
* Remove any Links pointing to this item before deletion.
* XXX This should go away when one-way association targets can
* specify the equivalent of on delete set null
*/
@Override
protected void beforeDelete() {
super.beforeDelete();
@ -2034,18 +2014,15 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
}
}
/**
* Overriding the Auditing interface in order to use the denormalized
* information
*/
/**
* Gets the user who created the object. May be null.
* @return the user who created the object.
*/
@Override
public User getCreationUser() {
return m_audit_trail.getCreationUser();
}
@ -2054,7 +2031,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* Gets the creation date of the object.
* @return the creation date.
*/
@Override
public Date getCreationDate() {
return m_audit_trail.getCreationDate();
}
@ -2064,7 +2041,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* null.
* @return the creation IP address.
*/
@Override
public String getCreationIP() {
return m_audit_trail.getCreationIP();
}
@ -2073,7 +2050,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* Gets the user who last modified the object. May be null.
* @return the last modifying user.
*/
@Override
public User getLastModifiedUser() {
return m_audit_trail.getLastModifiedUser();
}
@ -2082,7 +2059,7 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* Gets the last modified date.
* @return the last modified date.
*/
@Override
public Date getLastModifiedDate() {
return m_audit_trail.getLastModifiedDate();
}
@ -2091,11 +2068,10 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
* Gets the last modified IP address. May be null.
* @return the IP address associated with the last modification.
*/
@Override
public String getLastModifiedIP() {
return m_audit_trail.getLastModifiedIP();
}
protected static List extraXMLGenerators = new ArrayList();
/**
@ -2106,4 +2082,12 @@ public class ContentItem extends VersionedACSObject implements CustomCopy {
public List getExtraXMLGenerators() {
return extraXMLGenerators;
}
public boolean hasRelationAttributes() {
return !RELATION_ATTRIBUTES.isEmpty();
}
public StringTokenizer getRelationAttributes() {
return new StringTokenizer(RELATION_ATTRIBUTES, ";");
}
}

View File

@ -0,0 +1,20 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.arsdigita.cms;
import java.util.StringTokenizer;
/**
*
* @author quasi
*/
public interface RelationAttribute {
public abstract boolean hasRelationAttributes();
public abstract StringTokenizer getRelationAttributes();
}

View File

@ -23,23 +23,27 @@ import com.arsdigita.persistence.DataObject;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.RelationAttribute;
import com.arsdigita.domain.DomainObjectFactory;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.util.Assert;
import java.math.BigDecimal;
import java.util.StringTokenizer;
/**
* This content type represents an basic contact
*
*/
public class GenericContact extends ContentPage {
public class GenericContact extends ContentPage implements RelationAttribute {
/** PDL property names */
public static final String PERSON = "person";
public static final String ADDRESS = "address";
public static final String CONTACT_ENTRIES = "contactentries";
private static final String RELATION_ATTRIBUTES = "GenericContactType;GenericContactEntryType";
// Config
private static final GenericContactConfig s_config = new GenericContactConfig();
static {
@ -140,4 +144,14 @@ public class GenericContact extends ContentPage {
public boolean hasContactEntries() {
return !this.getContactEntries().isEmpty();
}
@Override
public boolean hasRelationAttributes() {
return !RELATION_ATTRIBUTES.isEmpty();
}
@Override
public StringTokenizer getRelationAttributes() {
return new StringTokenizer(RELATION_ATTRIBUTES, ";");
}
}

View File

@ -16,25 +16,27 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package com.arsdigita.cms.contenttypes;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.ContentPage;
import com.arsdigita.cms.RelationAttribute;
import com.arsdigita.domain.DataObjectNotFoundException;
import com.arsdigita.persistence.DataCollection;
import com.arsdigita.persistence.DataObject;
import com.arsdigita.persistence.OID;
import com.arsdigita.util.Assert;
import java.math.BigDecimal;
import java.util.StringTokenizer;
import java.util.Date;
/**
* Basic GenericPerson Contenttype for OpenCCM.
*
* @author Sören Bernstein
* @author Jens Pelzetter
*/
public class GenericPerson extends ContentPage {
public class GenericPerson extends ContentPage implements RelationAttribute {
public static final String PERSON = "person";
public static final String SURNAME = "surname";
@ -45,10 +47,11 @@ public class GenericPerson extends ContentPage {
public static final String CONTACTS = "contacts";
public static final String CONTACT_TYPE = "contact_type";
public static final String CONTACT_ORDER = "contact_order";
private static final String RELATION_ATTRIBUTES = "GenericContactType";
/** Data object type for this domain object */
public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.cms.contenttypes.GenericPerson";
/**
* Default constructor. This creates a new (empty) GenericPerson.
**/
@ -83,6 +86,7 @@ public class GenericPerson extends ContentPage {
public String getSurname() {
return (String) get(SURNAME);
}
public void setSurname(String surname) {
set(SURNAME, surname);
}
@ -90,6 +94,7 @@ public class GenericPerson extends ContentPage {
public String getGivenName() {
return (String) get(GIVENNAME);
}
public void setGivenName(String givenName) {
set(GIVENNAME, givenName);
}
@ -97,6 +102,13 @@ public class GenericPerson extends ContentPage {
public String getTitlePre() {
return (String) get(TITLEPRE);
}
public Date getBirthdate() {
return (Date)get(BIRTHDATE);
}
public void setBirthdate(Date birthdate) {
set(BIRTHDATE, birthdate);
}
public void setTitlePre(String titlePre) {
set(TITLEPRE, titlePre);
}
@ -104,17 +116,11 @@ public class GenericPerson extends ContentPage {
public String getTitlePost() {
return (String) get(TITLEPOST);
}
public void setTitlePost(String titlePost) {
set(TITLEPOST, titlePost);
}
public Date getBirthdate() {
return (Date)get(BIRTHDATE);
}
public void setBirthdate(Date birthdate) {
set(BIRTHDATE, birthdate);
}
// Get all contacts for this person
public GenericPersonContactCollection getContacts() {
return new GenericPersonContactCollection((DataCollection) get(CONTACTS));
@ -140,4 +146,13 @@ public class GenericPerson extends ContentPage {
return !this.getContacts().isEmpty();
}
@Override
public boolean hasRelationAttributes() {
return !RELATION_ATTRIBUTES.isEmpty();
}
@Override
public StringTokenizer getRelationAttributes() {
return new StringTokenizer(RELATION_ATTRIBUTES, ";");
}
}

View File

@ -0,0 +1,832 @@
cms.attributeset_is_already_locked=AttributeSet ist bereits gesperrt
cms.attributeset_is_locked=AttributeSet ist gesperrt
cms.cannot_create_xml_document=Kann XML Dokument nicht erstellen
cms.cant_promote_folders=Can't promote folders
cms.classnotfoundexception=ClassNotFoundException:
cms.contenttypes.contact=Kontakt:
cms.contenttypes.contact_details=Kontakt Details:
cms.contenttypes.contact_information=Kontakt Information:
cms.contenttypes.contactinfo=KontaktInfo:
cms.contenttypes.cost=Kosten:
cms.contenttypes.coudlnt_retrieve_text=Text konnte nicht gefunden werden
cms.contenttypes.current_image=Gegenw\u00e4rtiges Bild\:
cms.contenttypes.department=Abteilung:
cms.contenttypes.end_date=Datum Ende:
cms.contenttypes.end_time=Zeitpunkt Ende:
cms.contenttypes.event_type_not_registered=Veranstaltungs-Typ noch nicht registriert
cms.ui.item.days=Tage
cms.ui.item.notification_period=Vorab Benachrichtigung:
cms.ui.item.notification_period_before_start=Der Zeitraum f\u00fcr eine Vorab Benachrichtigung darf nicht l\u00e4nger als der Publikationszeitraum sein.
cms.ui.item.hours=Stunden
cms.contenttypes.grade=Grade:
cms.contenttypes.image=Bilder:
cms.contenttypes.installer.article_section=Artikel Abschnitt
cms.contenttypes.installer.article_section_for_a_multipart_article=Artikel Abschnitt f\u00fcr einen mehrteiligen Artikel
cms.contenttypes.job_description=Beschreibung:
cms.contenttypes.job_type_not_registered=Inhaltstyp Job nicht registriert
cms.contenttypes.lead=Beschreibung (Lead Text):
cms.contenttypes.legalnotice_type_not_registered=Inhaltstyp LegalNotice nicht registriert
cms.contenttypes.link=Link:
cms.contenttypes.link_to_map=Karte (Link)\:
cms.contenttypes.location=Ort:
cms.contenttypes.main_contributor=Hauptredner\:
cms.contenttypes.minutes_type_not_registered=Inhaltstyp Minutes nicht registriert
cms.contenttypes.news_date=Datum:
cms.contenttypes.newsitem_type_not_registered=Inhaltstyp NewsItem nicht registriert
cms.contenttypes.no_content_section=Kein Inhaltsabschnitt
cms.contenttypes.no_section=Kein Abschnitt
cms.contenttypes.opening_time=\u00d6ffnungszeit\:
cms.contenttypes.person_specification=Person Specification:
cms.contenttypes.pressrelease_type_not_registered=Inhaltstyp PressRelease nicht registriert
cms.contenttypes.ref_number=Ref. Nummer\:
cms.contenttypes.salary=Gehalt:
cms.contenttypes.service_type_not_registered=Inhaltstyp Service nicht registriert
cms.contenttypes.services_provided=Verf\u00fcgbare Services:
cms.contenttypes.start_date=Start Datum:
cms.contenttypes.start_time=Beginn um\:
cms.contenttypes.subjectitems=Themen\:
cms.contenttypes.summary=Beschreibung:
cms.contenttypes.title=Titel:
cms.contenttypes.ui.action_item=Action Item:
cms.contenttypes.ui.agenda_date=Zeit:
cms.contenttypes.ui.agenda_date_and_time=Datum und Zeit:
cms.contenttypes.ui.attendees=Teilnehmer:
cms.contenttypes.ui.bodyoverview=\u00dcbersicht\:
cms.contenttypes.ui.closing_date=Abschluss am\:
cms.contenttypes.ui.contact_details=Kontakt Details:
cms.contenttypes.ui.contact_info=Kontakt Info:
cms.contenttypes.ui.contacts=Kontakte:
cms.contenttypes.ui.content_group_current_items=Aktuelle Items:
cms.contenttypes.ui.content_group_name=Inhalt Gruppen Name:
cms.contenttypes.ui.content_group_new_item=Neuen Item hinzuf\u00fcgen:
cms.contenttypes.ui.cost=Kosten:
cms.contenttypes.ui.creation_date=Erstellungsdatum:
cms.contenttypes.ui.date=Datum:
cms.contenttypes.ui.department=Abteilung:
cms.contenttypes.ui.description=Beschreibung:
cms.contenttypes.ui.description_of_minutes=Description of Minutes:
cms.contenttypes.ui.end_date=Enddatum:
cms.contenttypes.ui.end_time=Ende um\:
cms.contenttypes.ui.government_uid=Government UID:
cms.contenttypes.ui.grade=Grad:
cms.contenttypes.ui.homepage=Homepage?
cms.contenttypes.ui.job_description=Job Beschreibung:
cms.contenttypes.ui.launch_date=Ver\u00f6ffentlichungsdatum:
cms.contenttypes.ui.lead=Beschreibung (Lead Text):
cms.contenttypes.ui.lead_line=Beschreibung (Lead Zeile):
cms.contenttypes.ui.link_to_map=Link to Map:
cms.contenttypes.ui.location=Ort:
cms.contenttypes.ui.main_contributor=Hauptredner\:
cms.contenttypes.ui.name=Name:
cms.contenttypes.ui.opening_times=\u00d6ffnungszeiten\:
cms.contenttypes.ui.person_specification=Person Specification:
cms.contenttypes.ui.ref_code=Ref. Code:
cms.contenttypes.ui.ref_code=Ref. Code:
cms.contenttypes.ui.ref_number=Ref. Nr.:
cms.contenttypes.ui.reference=Referenz:
cms.contenttypes.ui.reference_code=Referenz Code:
cms.contenttypes.ui.salary=Gehalt:
cms.contenttypes.ui.services_provided=Verf\u00fcgbarer Service:
cms.contenttypes.ui.start_date=Anfangsdatum:
cms.contenttypes.ui.start_time=Anfangszeit:
cms.contenttypes.ui.subject_items=Subject Items:
cms.contenttypes.ui.summary=Beschreibung:
cms.contenttypes.ui.there_are_no_events=Keine Ereignisse vorhanden
cms.contenttypes.ui.title=Titel:
cms.contenttypes.ui.view_image=Bild anzeigen
cms.contenttypes.ui.event_start_time=Event Beginn um\:
cms.contenttypes.ui.event_end_time=Event Ende um\:
cms.dispatcher.cannot_find_domain_object=Domain Object nicht auffindbar
cms.dispatcher.could_not_find_imageasset=ImageAsset nicht auffindbar:
cms.dispatcher.failed_to_retrieve_imageasset=ImageAsset nicht auffindbar:
cms.dispatcher.no_permission_to_access_resource=Keine Rechte f\u00fcr diese Ressource
cms.dispatcher.not_implemented=nicht implementiert
cms.dispatcher.unknown_context=Unbekannter Kontext:
cms.formbuilder.cannot_create_acsobject=ACSObject kann nicht erstellt werden
cms.formbuilder.cannot_instantiate_object=Object kann nicht instantiiert werden
cms.formbuilder.no_such_form=Form nicht vorhanden
cms.formbuilder.roll_me_back=Roll me back
cms.formbuilder.css=Cascading Style Sheet (CSS) Class Attribute
cms.illegalaccessexception=IllegalAccessException:
cms.image.erroneous_jpeg_marker_length=Erroneous JPEG marker length
cms.image.expected_soi_marker_first=Expected SOI marker first
cms.image.not_a_jpeg_file=Keine JPEG Datei
cms.installer.approval=Akzeptieren
cms.installer.article=Artikel
cms.installer.authoring=Verfassen
cms.installer.cannot_find_cms_package_type=kann CMS Pakettyp nicht finden
cms.installer.cannot_find_content_type=kann Inhaltstyp nicht finden
cms.installer.cannot_find_file=kann Datei nicht finden
cms.installer.cannot_find_group_for_email=Kann email-Gruppe nicht finden
cms.installer.cannot_read_line_of_data=Kann Datensatz nicht lesen
cms.installer.cannot_set_template_text=Kann Template Text nicht festlegen
cms.installer.could_not_load_section=Kann die folgende ContentSection nicht laden '{0}'
cms.installer.deploy=anwenden
cms.installer.failed_to_update_the_default_content_section=Update der Default Content Section gescheitert.
cms.installer.formbuilder.form=Form
cms.installer.formbuilder.form_section=Form Abschnitt
cms.installer.production_workflow=Production Workflow
cms.installer.root_folder=Basisverzeichnis
cms.installer.root_site_node_missing=Root site node missing
cms.installer.simple_publication=Einfache Ver\u00f6ffentlichung
cms.installer.template=Vorlage
cms.instantiationexception=InstantiationException:
cms.lifecycle.could_not_fetch_lifecycle=Could not fetch lifecycle:
cms.lifecycle.could_not_fetch_phase=Could not fetch phase:
cms.ui.item.lifecycle.start_date_in_past=Das Anfangsdatum darf nicht in der Vergangenheit liegen.
cms.ui.item.lifecycle.end_date_before_start_date=Das Enddatum darf nicht vor dem Anfangsdatum liegen.
cms.nosuchmethodexception=NoSuchMethodException:
cms.publishToFile.cannot_find_file=Datei nicht gefunden
cms.publishToFile.cannot_find_item_class=Item Class nicht gefunden
cms.publishToFile.cannot_find_server=Server nicht auffindbar
cms.publishToFile.cannot_get_sequence_value=cannot get sequence value
cms.publishToFile.cannot_read_template_text=cannot read template text
cms.publishToFile.could_not_get_object_for_oid=Could not get object for oid
cms.publishToFile.error_executing=Ausf\u00fchrungsfehler bei '{0}' \:
cms.publishToFile.exit_value_was=Exit Code war
cms.publishToFile.interrupted_when_doing=Unterbrochen bei Ausf\u00fchren von '{0}'
cms.publishToFile.invalid_brokenlinkaction=Ung\u00fcltige BrokenLinkAction\:
cms.publishToFile.invalid_reference_target_type=Ung\u00fcltige reference target type\:
cms.publishToFile.malformed_url=Falsche Struktur der URL\:
cms.publishToFile.not_found_in_servers_list= In der Server Liste unauffindbar
cms.publishToFile.publish_to_file_listener_could_not_be_created=Publish to file listener could not be created:
cms.publishToFile.publish_to_file_setlocalrequestpassword_could_not_be_created=Publish to file SetLocalRequestPassword could not be created:
cms.publishToFile.publishsource_sourcebase_must_end_in_=PublishSource sourceBase must end in '/'
cms.publishToFile.server=Server
cms.publishToFile.unable_to_find_closing_for_tag=Schlie\u00dfendenes '>' nicht vorhanden.
cms.publishToFile.unable_to_get_contentitem=ContentItem nicht aufrufbar\:
cms.contenttypes.ui.address=Adresse:
cms.tasks.ui.anyone=Jedermann
cms.tasks.ui.assigned_to=Zugewiesen an:
cms.tasks.ui.assignment_info=Zuweisungsinfo
cms.tasks.ui.content_center=Dokumentenverwaltung
cms.tasks.ui.create=Erstellen
cms.tasks.ui.description=Beschreibung
cms.tasks.ui.disabled=Deaktiviert
cms.tasks.ui.due_date=F\u00e4lligkeitsdatum
cms.tasks.ui.due_on=F\u00e4llig am
cms.tasks.ui.enabled=Aktiviert
cms.tasks.ui.entered_by=Eingegeben von\:
cms.tasks.ui.finished=Abgeschlossen
cms.tasks.ui.mark_task_as_finished=Aufgabe als abgeschlossen markieren
cms.tasks.ui.me=Ich
cms.tasks.ui.no_assigned_tasks=Es gibt gegenw\u00e4rtig keine zugewiesenen Aufgaben.
cms.tasks.ui.no_assignees=No Assignees
cms.tasks.ui.no_user_logged_in=Es ist kein Benutzer angemeldet, es kann keine Aufgabe angezeit werden.
cms.tasks.ui.status=Status:
cms.tasks.ui.status_no_colon=Status
cms.tasks.ui.task_type=Aufgabentyp
cms.tasks.ui.title=Titel
cms.tasks.ui.workflow=Bearbeitungsfluss
cms.templates=Vorlagen
cms.title=Titel
cms.ui.Authoring=Verfassen
cms.ui.History=Historie
cms.ui.Lifecycle=Ver\u00f6ffentlichungszyklus
cms.ui.Publishing=Herausgabe
cms.ui.Summary=Zusammenfassung
cms.ui.template=Vorlage
cms.ui.Templates=Vorlagen
cms.ui.action=Aktion
cms.ui.actions=Aktionen
cms.ui.all_items=Alle Inhalte
cms.ui.assigned_categories=Zugewiesene Kategorien:
cms.ui.attention=Obacht!
cms.ui.authoring.an_item_with_this_name_already_exists=Ein Item mit diesem Namen existiert
cms.ui.authoring.bad_getblob_datatype=Ung\u00fcltiger Datentyp getBlob
cms.ui.authoring.bad_getclob_datatype=Ung\u00fcltiger Datentyp getBlob
cms.ui.authoring.body=Textbereich:
cms.ui.authoring.caption=Untertitel:
cms.ui.authoring.content_type=Inhaltstyp:
cms.ui.authoring.couldnt_create_contentpage=Konnte ContentPage nicht erstellen
cms.ui.authoring.edit_body_text=Textk\u00f6rper editieren:
cms.ui.authoring.edit_caption=Untertitel editieren
cms.ui.authoring.file_action=File Action
cms.ui.authoring.image_action=Image Action
cms.ui.authoring.invalid_create_component=Creation component for parent content type is invalid.
cms.ui.authoring.missing_content_type=Missing content type
cms.ui.authoring.missing_item_id=Missing item id
cms.ui.authoring.name=Name:
cms.ui.authoring.name_url=Name (URL):
cms.ui.authoring.no_asset=Kein Asset
cms.ui.authoring.no_content_types_were_found=Keine Inhaltstypen gefunden
cms.ui.authoring.no_current_wizard=No current wizard
cms.ui.authoring.not_implemented=Nicht implementiert
cms.ui.authoring.page_launch_date=Ver\u00f6ffentlichungsdatum:
cms.ui.authoring.page_title=Titel der Seite:
cms.ui.authoring.remove_image=Bild entfernen
cms.ui.authoring.select_an_existing_image=Vorhandenes Bild ausw\u00c4hlen
cms.ui.authoring.sql_error_in_getting_byte_content=SQL Error in getting byte content!
cms.ui.authoring.sqle=SQLE
cms.ui.authoring.steps=Authoring steps
cms.ui.authoring.submission_cancelled=Submission Cancelled
cms.ui.authoring.text_type=Text Type:
cms.ui.authoring.this_article_does_not_have_an_image=Dieser Artikel hat kein Bild.
cms.ui.authoring.title=Titel:
cms.ui.authoring.unable_to_load_file=Datei konnte nicht geladen werden:
cms.ui.authoring.upload_a_new_image=Neues Bild hochladen
cms.ui.authoring.upload_image=Bild hochladen:
cms.ui.authoring.file_upload.auto_detect=(automatisch)
cms.ui.authoring.file_upload.file_type=Dateityp:
cms.ui.file=Datei:
cms.ui.authoring.none=<i>niemand</i>
cms.ui.authoring.workflow=Arbeitsablauf w\u00e4hlen
cms.ui.authoring_kit_has_more_than_one_step=Dieses Authorenkit hat mehr als einen Schritt:
cms.ui.authoring_kit_has_no_steps=Dieses Authorenkit hat keine Schritte:
cms.ui.authoringkit.authoring_kit_for=Authorenkit f\u00fcr
cms.ui.authoringkit.component=Komponente:
cms.ui.authoringkit.content_type_id=Inhaltstyp ID#
cms.ui.authoringkit.create_component=Komponente erstellen:
cms.ui.authoringkit.createcomponent=Komponentenerstellung:
cms.ui.authoringkit.current_row_does_not_exists=Aktuelle Zeile existiert nicht
cms.ui.authoringkit.description=Beschreibung:
cms.ui.authoringkit.description_bundle=Description Bundle
cms.ui.authoringkit.description_key=Description Key
cms.ui.authoringkit.do_you_really_want_to_delete_this_authoring_step=Soll dieser Schritt wirklich gel\u00f6scht werden?
cms.ui.authoringkit.label=Label:
cms.ui.authoringkit.label_bundle=Label Bundle
cms.ui.authoringkit.label_key=Label Key
cms.ui.authoringkit.ordering=Ordering:
cms.ui.authoringkit.submission_cancelled=Submission Cancelled
cms.ui.available_categories=Verf\u00fcgbare&nbsp;Kategorien:
cms.ui.browse=Navigation
cms.ui.browse_items_by_category=Durchsicht der Elemente nach Kategorien
cms.ui.cancel=Abbruch
cms.ui.cancel_hit=Abbruch dr\u00fccken
cms.ui.cancelled=abgebrochen
cms.ui.cannot_assign_groups_to_owner=cannot assign groups to owner
cms.ui.categories=Kategorien
cms.ui.category._back=&nbsp;(zur\u00fcck)&nbsp;
cms.ui.category.add=Kategorie hinzuf\u00fcgen
cms.ui.category.add_index_item=Set index item
cms.ui.category.add_use_context=Add Use Context
cms.ui.category.assigned_purposes=Assigned&nbsp;Purposes:
cms.ui.category.available_purposes=Available&nbsp;Purposes:
cms.ui.category.batch_categorized_objects=Batch Order Items in This Category
cms.ui.category.batch_order_objects_order=Priorit\u00e4t
cms.ui.category.batch_order_objects_title=Titel
cms.ui.category.categorized_objects=Objekte in dieser Kategorie anordnen
cms.ui.category.category.current=Aktuelle Kategorie
cms.ui.category.change_index_item=Change index item
cms.ui.category.content_item=Content Item
cms.ui.category.delete=Kategorie l\u00f6schen
cms.ui.category.delete_prompt=Wollen Sie wirklich diese Kategorie l\u00f6schen?
cms.ui.category.descriptionn=Beschreibung:\n
cms.ui.category.details=Kategorie Einzelheiten
cms.ui.category.edit=Kategorie bearbeiten
cms.ui.category.edit_a_category=Eine Kategorie bearbeiten
cms.ui.category.edit_purposes=Edit purposes
cms.ui.category.index_item.select=Index Element f\u00fcr diese Kategorie ausw\u00e4hlen
cms.ui.category.index_item=Index Element
cms.ui.category.intro=Kategory ausw\u00e4hlen
cms.ui.category.is_abstract=Is abstract?
cms.ui.category.is_enabled=Aktiviert?
cms.ui.category.is_not_abstract=K\u00f6nnen Sie Objekte dieser Kategory zuordnen?
cms.ui.category.item.none=Es gibt keine Elemente in dieser Kategory
cms.ui.category.item=Kategorisierte Elemente
cms.ui.category.labeln=Label:\n
cms.ui.category.linked.add=Verkn\u00fcpfte Kategorien hinzuf\u00fcgen oder entfernen
cms.ui.category.linked.none=Diese Kategorie hat keine verkn\u00fcpften Kategorien
cms.ui.category.linked=Verkn\u00fcpfte Kategorien
cms.ui.category.localizations=Sprachversionen
cms.ui.category.localization.add=Sprachversion hinzuf\u00fcgen
cms.ui.category.localization.name=Name
cms.ui.category.localization.description=Beschreibung
cms.ui.category.localization.url=URL
cms.ui.category.localization.locale=Sprache
cms.ui.category.localization.action=Aktion
cms.ui.category.localization.confirm_delete=Soll diese Sprachversion gel\u00f6scht werden?
cms.ui.category.localization.none=Diese Kategorie hat keine Sprachversionen
cms.ui.category.localization.error_locale=Bitte w\u00e4hlen Sie eine Sprache aus
cms.ui.category.name_not_unique=Es gibt bereits eine Kategorie mit diesem Namen.
cms.ui.category.no_categorized_objects=Es gibt keine kategorisierten Objekte
cms.ui.category.no_category_purposes=No Category Purposes
cms.ui.category.no_linked_categories=No linked categories
cms.ui.category.no_subcategories=No subcategories
cms.ui.category.purpose.add=Add or remove category purposes
cms.ui.category.purpose.assigned=Assigned purposes
cms.ui.category.purpose.available=Available purposes
cms.ui.category.purpose.none=This category has no assigned purposes
cms.ui.category.purposes=Category purposes
cms.ui.category.return=Return
cms.ui.category.select_index_item=Select index item for category
cms.ui.category.subcategories=Subcategories
cms.ui.category.subcategory.none=This category has no subcategories
cms.ui.category.templates=Category templates
cms.ui.category.templates.assigned=Assigned templates
cms.ui.category.there_are_no_items_in_this_category=There are no items in this category
cms.ui.category.url=URL
cms.ui.category.use_context=Use Context
cms.ui.category.use_contexts=Use Contexts
cms.ui.category.use_context_must_be_unique=Use context must be unique within a Content Section.
cms.ui.choose_target_folder=Zielordner ausw\u00e4hlen
cms.ui.content_center=Content center
cms.ui.content_item=Dokument
cms.ui.content_section=Content section
cms.ui.content_section_configuration=<h2>Content Section Configuration</h2>
cms.ui.content_types=Dokumenttypen
cms.ui.cse=Bald abgelaufen
cms.ui.cse.authorName=Verfasser
cms.ui.cse.itemName=Name
cms.ui.cse.view=Anzeigen
cms.ui.cse.viewLink=anzeigen
cms.ui.cse.edit=Edit
cms.ui.cse.editLink=edit
cms.ui.cse.endDateTime=aktiv bis
cms.ui.user_admin=Benutzerverwaltung
cms.ui.contents_of=Inhalt von
cms.ui.create=Erstellen
cms.ui.default_locale=Voreingestellte Sprache\:
cms.ui.delete=L\u00f6schen
cms.ui.description=Beschreibung
cms.ui.edit=Bearbeiten
cms.ui.edit_folder=Aktuellen Ordner umbenennen
cms.ui.email=Email
cms.ui.enter_a_keyword=Schl\u00fcsselwort eingeben:
cms.ui.enter_first_name_last_name_andor_email_address=Enter first name, last name, and/or email address:
cms.ui.enter_first_name_last_name_email_address_andor_group_name=Enter first name, last name, email address and/or Group Name:
cms.ui.failed_to_create_new_dp_item=Failed to create a new DP Item.
cms.ui.failed_to_fetch_content_section_for_item=Failed to fetch the content section for the item:
cms.ui.failed_to_fetch_content_type=Failed to fetch content type for
cms.ui.failed_to_find_java_class_for_authoring_component=Failed to find the Java class for this authoring step component:
cms.ui.failed_to_generate_new_id=Failed to generate a new sequence ID.
cms.ui.failed_to_instantiate_authoring_component=Failed to instantiate this authoring step component:
cms.ui.failed_to_retrieve=Failed to retrieve:
cms.ui.failed_to_validate_title_uniqueness=Failed to validate title uniqueness
cms.ui.finish=Beenden
cms.ui.folder.cancelled=Abgebrochen
cms.ui.folder.cannot_find_a_root_folder=Kein Wurzelverzeichnis gefunden.
cms.ui.folder.na=K.A.
cms.ui.folder.no_source_items_specified=Kein Quelldokument angegeben.
cms.ui.folder.parent=\u00dcbergeordneter Ordner
cms.ui.folder.rename=Ornder umbenennen
cms.ui.folder_browser=Ordner durchsehen
cms.ui.for=for
cms.ui.formbuilder.description=Beschreibung:
cms.ui.formbuilder.name=Name:
cms.ui.formbuilder.oh_no_you_dont=Oh no you don't
cms.ui.formbuilder.title=Titel\:
cms.ui.help=Hilfe
cms.ui.history.history=Verlauf
cms.ui.history.no_history=Kein Verlauf
cms.ui.history.preview=Vorschau
cms.ui.history.rollback=Rollback
cms.ui.insufficient_privileges=Unzureichende Rechte
cms.ui.invalid_item_id=Ung\u00fcltiges Objekt Id\:{0}
cms.ui.item=Dokument
cms.ui.item.access_denied=Zugriff verweigert.
cms.ui.item.apply_a_lifecycle=Lebenszyklus zuordnen
cms.ui.item.authoring=Verfassen
cms.ui.item.categories.assigned=Zugewiesene Kategorien
cms.ui.item.categories.available=Verf\u00fcgbare Kategorien
cms.ui.item.current_row_does_not_exist=Aktuelle Zeile existiert nicht
cms.ui.item.edit_lifecycle=Lebenszyklus bearbeiten
cms.ui.item.end_date=Ende am\:&nbsp;&nbsp;
cms.ui.item.end_time=Ende um\:&nbsp;&nbsp;
cms.ui.item.end_time_incomplete=Zeitangabe unvollst\u00e4ndig
cms.ui.item.history=Historie
cms.ui.item.invalid_end_date_please_try_again=Ung\u00fcltiges Enddatum, bitte erneut versuchen
cms.ui.item.invalid_start_date_please_try_again=Un\u00fcltiges Anfangsdatum, bitte erneut versuchen
cms.ui.item.language.add=Sprache hinzuf\u00fcgen
cms.ui.item.language.change=Sprache \u00e4ndern
cms.ui.item.languages=Sprachen
cms.ui.item.lifecycle.apply=Anzuwendenden Lebenszyklus ausw\u00e4hlen
cms.ui.item.lifecycle.end_date=Enddatum
cms.ui.item.lifecycle.end_time=Ende um
cms.ui.item.lifecycle.intro=Dieses Dokument ist gegenw\u00e4rtig nicht publiziert.
cms.ui.item.lifecycle.publish=Dokument publizieren
cms.ui.item.lifecycle.republish=Dokument erneut publizieren
cms.ui.item.lifecycle.start_date=Anfangsdatum
cms.ui.item.lifecycle.start_time=Beginn um
cms.ui.item.lifecycle.unpublish=Dokument zur\u00fcckziehen
cms.ui.item.lifecycle=Lebenszyklus
cms.ui.item.lifecycles=Ver\u00f6ffentlichen
cms.ui.item.preview=Vorschau
cms.ui.item.reapply_a_lifecycle=Lebenszyklus erneut anwenden
cms.ui.item.revision.added=Hinzugef\u00fcgt zu
cms.ui.item.revision.current=Gegenw\u00e4rtige Ausgabe
cms.ui.item.revision.difference.show=Unterschiede anzeigen
cms.ui.item.revision.first=Urspr\u00fcngliche Ausgabe
cms.ui.item.revision.from=Von
cms.ui.item.revision.from_is_null='Von' Ausgabe ist notwendig
cms.ui.item.revision.none=Dieses Dokument hat keine Ausgaben
cms.ui.item.revision.nothing=nichts
cms.ui.item.revision.operation.change=\u00c4ndern
cms.ui.item.revision.operation.new_value=Neuer Wert
cms.ui.item.revision.operation.none=Keine Operationen vorhanden
cms.ui.item.revision.operation.object=Objekt
cms.ui.item.revision.operation.old_value=Alter Wert
cms.ui.item.revision.operation.property=Eigenschaft
cms.ui.item.revision.operation.value=Wert
cms.ui.item.revision.operation=Operation
cms.ui.item.revision.operations=Operations
cms.ui.item.revision.removed=Removed From
cms.ui.item.revision.return=Return to revisions
cms.ui.item.revision.rollback=Rollback
cms.ui.item.revision.rolled_back=Rolled back
cms.ui.item.revision.to=Zu
cms.ui.item.revision.to_is_null=Eine 'zu' Revision ist erforderlich
cms.ui.item.revision.view=Ansicht
cms.ui.item.revision=Revision
cms.ui.item.revisions=Revisionen
cms.ui.item.start_date=Anfangsdatum\:&nbsp;&nbsp;
cms.ui.item.start_time=Anfangszeit\:&nbsp;&nbsp;
cms.ui.item.start_time_incomplete=Anfangszeit unvollst\u00e4ndig
cms.ui.item.submission_cancelled=Prozess unterbrochen
cms.ui.item.summary=Zusammenfassung
cms.ui.item.templates=Vorlage
cms.ui.item.the_current_row_does_not_exists=Die aktuelle Zeile existiert nicht
cms.ui.item.workflow=Arbeitsablauf
cms.ui.item.workflow.start=Arbeitsablauf starten
cms.ui.item.workflow.stop=Arbeitsablauf stoppen
cms.ui.item_name_already_in_folder=Dieser Titel wird von einem anderen Objekt in diesem Ordner benutzt\:
cms.ui.label=Etikett
cms.ui.label_prompt=Etikett\:
cms.ui.language.field=Sprache\:
cms.ui.language.header=Sprache
cms.ui.language_instance.change=Sprache \u00e4ndern
cms.ui.language_instance.new=Neue Sprachinstanz
cms.ui.language_instances=Sprachinstanz
cms.ui.lifecycle.add=Add lifecycle
cms.ui.lifecycle.add=Neuen Lebenszyklus erstellen
cms.ui.lifecycle.add_a_phase=Eine Phase hinzuf\u00fcgen
cms.ui.lifecycle.create_a_lifecycle=Einen Lebenszyklus erstellen
cms.ui.lifecycle.days=Tage
cms.ui.lifecycle.delete_prompt=Sind Sie sicher, diesen Lebenszyklus zu l\u00f6schen?
cms.ui.lifecycle.delete=Lebenszyklus l\u00f6schen
cms.ui.lifecycle.description=Beschreibung
cms.ui.lifecycle.details=Lebenszyklus Einzelheiten
cms.ui.lifecycle.duration=Dauer
cms.ui.lifecycle.edit=Lebenszyklus beareiten
cms.ui.lifecycle.forever=Unbegrenzt
cms.ui.lifecycle.hours=Stunden
cms.ui.lifecycle.intro=Einen Lebenszyklus ausw\u00e4hlen oder neu erstellen
cms.ui.lifecycle.label=Etikett\:
cms.ui.lifecycle.lifecycle_information=Lebenszyklus Information
cms.ui.lifecycle.lifecycles=Lebenszyklen
cms.ui.lifecycle.mins=Minuten
cms.ui.lifecycle.name=Name
cms.ui.lifecycle.name_not_unique=Es gibt bereits einen Lebenszyklus mit diesem Namen
cms.ui.lifecycle.no_lifecycles_defined_for_this_section=Keine Lebenszyklen f\u00fcr diesen Bereich definiert.
cms.ui.lifecycle.no_phases=Dieser Lebenszyklus hat keine Phasen
cms.ui.lifecycle.phase.add=Eine Phase hinzuf\u00fcgen
cms.ui.lifecycle.phase.days=Tage
cms.ui.lifecycle.phase.delay=Verzug
cms.ui.lifecycle.phase.delete=Phase l\u00f6schen
cms.ui.lifecycle.phase.duration=Dauer
cms.ui.lifecycle.phase.duration_negative=Die Dauer muss gr\u00f6\u00dfer als Null sein.
cms.ui.lifecycle.phase.edit=Phase bearbeiten
cms.ui.lifecycle.phase.hours=Std.
cms.ui.lifecycle.phase.mins=Min.
cms.ui.lifecycle.phase.name_not_unique=Es gibt bereits eine Phase mit diesemNamen
cms.ui.lifecycle.phase.none=Dieser Lebenszyklus hat keine Phasen
cms.ui.lifecycle.phase.start_delay=Start delay
cms.ui.lifecycle.phase_add=Phase hinzuf\u00fcgen
cms.ui.lifecycle.phase_delay=Delay
cms.ui.lifecycle.phase_delete=Phase l\u00f6schen
cms.ui.lifecycle.phase_description=Beschreibung
cms.ui.lifecycle.phase_duration=Dauer
cms.ui.lifecycle.phase_edit=Phase editieren
cms.ui.lifecycle.phase_name=Name
cms.ui.lifecycle.phases=Phasen
cms.ui.lifecycle.start_delay=Start Delay:
cms.ui.lifecycle_date_error_msg=Das Anfangsdatum des Lebenszyklus muss vor dem Enddatum liegen.
cms.ui.lifecycles=Lebenszyklen
cms.ui.locales=Locales:
cms.ui.logout_failed=Abmeldung fehlgeschlagen
cms.ui.matches=Treffer
cms.ui.max_launch=H\u00f6chstes Startdatum
cms.ui.min_launch=Kleinstes Startdatum
cms.ui.my_workspace=Mein Portal
cms.ui.name=Name
cms.ui.name_prompt=Name:
cms.ui.need_category_map_privilege=Need categorize items privilege on that category
cms.ui.new_folder=Neuen Ordner erstellen
cms.ui.new_item=Neues Element
cms.ui.no=Nein
cms.ui.no_content_section_for_page=Kein Inhaltsbereich f\u00fcr die Seite
cms.ui.no_items_matched_the_search=Keine Objekte erf\u00fcllen die Suchkriterien
cms.ui.none=Keine
cms.ui.parent=Eltern
cms.ui.permissions.add_administrator=Administrator hinzuf\u00fcgen
cms.ui.permissions.cannot_add_user=Kann Benutzer nicht hinzuf\u00fcgen
cms.ui.permissions.cannot_retrieve_party=Cannot retrieve party
cms.ui.permissions.column_index=Spaltenindex
cms.ui.permissions.could_not_find_this_object=Konnte dieses Objekt nicht finden
cms.ui.permissions.current_object_is_null=Aktuelles Objekt ist null\!
cms.ui.permissions.no_users_were_selected=Keine Benutzer gew\u00e4hlt
cms.ui.permissions.not_an_object_adminstrator=Kein Objekt Administrator
cms.ui.permissions.out_of_bounds= Au\u00dferhalb der Grenzwerte
cms.ui.permissions.remove=entfernen
cms.ui.permissions.return_to_object_info=Zur\u00fcck zur Objekt Information
cms.ui.permissions.these_are_the_current_permissions_for_this_folder=Aktuelle Rechte f\u00fcr diesen Ordner\:
cms.ui.permissions.these_are_the_custom_permissions_that_have_been_granted_on_this_object=These are the custom permissions that have been granted on this object.
cms.ui.permissions=Zugriffsrechte
cms.ui.preview=Vorschau
cms.ui.primary_instance=Primary Instance
cms.ui.remove=Entfernen
cms.ui.restore_default_permissions=Default Rechte wiederherstellen
cms.ui.role.add=Rolle hinzuf\u00fcgen
cms.ui.role.admin.add=Administrator hinzuf\u00fcgen
cms.ui.role.admin.email=Email
cms.ui.role.admin.name=Name
cms.ui.role.admin.none=Diese Rolle hat keine Administratoren
cms.ui.role.admin.remove=Administrator l\u00f6schen
cms.ui.role.admins=Administratoren
cms.ui.role.delete=Rolle l\u00f6schen
cms.ui.role.delete_prompt=Diese Rolle wirklich l\u00f6schen?
cms.ui.role.description=Beschreibung
cms.ui.role.details=Details der Rolle
cms.ui.role.edit=Rolle bearbeiten
cms.ui.role.intro=Eine Rolle als Bearbeiter oder Betrachter ausw\u00e4hlen oder eine neue erstellen
cms.ui.role.member.add=Mitglied hinzuf\u00fcgen
cms.ui.role.member.email=Email
cms.ui.role.member.name=Name
cms.ui.role.member.none=Diese Rolle hat keine Mitglieder
cms.ui.role.member.remove=Mitglied entfernen
cms.ui.role.members=Mitglieder
cms.ui.role.name_not_unique=Eine Rolle mit diesem Namen existiert
cms.ui.role.no_party_selected=Keinen Benutzer oder Gruppe ausgew\u00e4hlt
cms.ui.role.privilege.none=Diese Rolle hat keine Berechtigungen
cms.ui.role.privileges=Berechtigungen
cms.ui.role.staff.add=Bearbeiterrolle hinzuf\u00fcgen
cms.ui.role.staff=Bearbeiterrollen
cms.ui.role.viewer.add=Hinzuf\u00fcgen einer Betrachter Rolle
cms.ui.role.viewers=Betrachter Rollen
cms.ui.roles=Rollen
cms.ui.save=Sichern
cms.ui.search=Suche
cms.ui.search_prompt=Suche um neue Mitglieder zu erg\u00e4nzen
cms.ui.search_to_add_new_members=Suche um neue Mitglieder zu erg\u00e4nzen
cms.ui.search_errors.empty_terms=Bitte Suchbegriffe eingeben
cms.ui.search_errors.bad_terms=Your search terms contain illegal words or characters
cms.ui.select_one=--ausw\u00e4hlen--
cms.ui.sign_out=Abmelden
cms.ui.staff.add_member=Mitglied hinzuf\u00fcgen
cms.ui.staff.add_role=Neue Rolle erstellen
cms.ui.staff.create_a_role=Rolle erstellen
cms.ui.staff.delete_confirmation_prompt=Sind Sie sicher, diese Rolle zu l\u00f6schen?
cms.ui.staff.description=Beschreibung
cms.ui.staff.edit_a_role=Eine Rolle bearbeiten
cms.ui.staff.edit_role=Rolle bearbeiten
cms.ui.staff.label=Etikett
cms.ui.staff.no_roles_defined=Es sind keine Rollen f\u00fcr diesen Abschnitt definiert
cms.ui.staff.privileges=Berechtigungen
cms.ui.staff.remove=Entfernen
cms.ui.staff.role_description=Beschreibung
cms.ui.staff.role_details=Rolleneinzelheiten
cms.ui.staff.role_intro=Eine Rolle ausw\u00e4hlen oder eine neue erstellen
cms.ui.staff.role_members=Rollen Mitglieder
cms.ui.staff.role_name=Name
cms.ui.staff.roles=Rollen
cms.ui.staff.there_are_no_administrators_for_this_role=Es gibt keine Administratoren f\u00fcr diese Rolle
cms.ui.submission_cancelled=Prozess abgebrochen
cms.ui.templates.assign_a_template_to=Ein Muster zuweisen an
cms.ui.templates.assign_template=Muster Zuordnen
cms.ui.templates.assign_this_template=Dieses Muster zuordnen
cms.ui.templates.assigned_templates=Zugeordnete Muster
cms.ui.templates.default=Vorgabe
cms.ui.templates.dummy=dummy
cms.ui.templates.label=Etikett\:
cms.ui.templates.name=Name:
cms.ui.templates.no_templates=Keine Muster
cms.ui.templates.not_implemented=Nicht Implementiert
cms.ui.templates.preview=Vorschau
cms.ui.templates.remove=Entfernen
cms.ui.templates.set_as_default=Als Vorgabe festlegen
cms.ui.templates.use_context=Benutze&nbsp;Context\:
cms.ui.the_model_is_empty=Das Modell ist leer
cms.ui.there_are_no_items=Keine elemente vorhanden.
cms.ui.there_was_no_one_matching_the_search_criteria=Kein Element erf\u00fcllte die Suchkriterien.
cms.ui.this_should_never_happen=Dies sollte nie passieren\!
cms.ui.type.add=Inhaltstyp hinzuf\u00fcgen
cms.ui.type.authoringkit=Authoring kit details
cms.ui.type.select=Inhaltstyp ausw\u00e4hlen
cms.ui.type.define=Neuen Inhaltstyp definieren
cms.ui.type.select.none=Keine verf\u00fcgbaren Inhaltstypen zur Auswahl
cms.ui.type.association_content_type=Association content type
cms.ui.type.available_types=Verf\u00fcgbare Inhaltstypen
cms.ui.type.class_name=Java Klassenname
cms.ui.type.data_entry_method=Data entry method
cms.ui.type.default_date=Voreingestelltes Datum
cms.ui.type.delete=Typ l\u00f6schen
cms.ui.type.delete_prompt=Sind Sie sicher, diesen Inhaltstyp zu l\u00f6schen?
cms.ui.type.details=Inhaltstyp Einzelheiten
cms.ui.type.edit=Inhaltstyp bearbeiten
cms.ui.type.element.delete=Element l\u00f6schen
cms.ui.type.element.type=Element Typ
cms.ui.type.element.value_required=Wert erforderlich?
cms.ui.type.elements=Elemente
cms.ui.type.from=Von
cms.ui.type.intro=Inhaltstyp ausw\u00e4hlen oder neu erstellen
cms.ui.type.invalid=Ung\u00fcltiger Inhaltstyp
cms.ui.type.label=Label
cms.ui.type.lifecycle.none=This content type has no default lifecycle
cms.ui.type.lifecycle=Voreingestellter Zyklus
cms.ui.type.maximum_length=Maximale L\u00e4nge
cms.ui.type.name_has_whitespace=Der Name darf keine Leerzeichen enthalten
cms.ui.type.name_not_alphanumeric=Der Name darf nur aus Buchstaben und Zahlen bestehen, keine Satzzeichen
cms.ui.type.name_not_unique=Dieser Inhaltstyp hat bereits ein Element mit dem Namen
cms.ui.type.duplicate_type=Es gibt bereits einen Typ mit Namen "{0}"
cms.ui.type.object_type=Objekttyp
cms.ui.type.parent.none=Dieser Inhaltstyp hat keine Eltern
cms.ui.type.parent=Eltern des Inhaltstyp
cms.ui.type.template.add=Muster hinzuf\u00fcgen
cms.ui.type.templates=Muster
cms.ui.type.title=Titel
cms.ui.type.to=An
cms.ui.type.workflow.none=Dieser Inhaltstyp hat keinen voreingestellten Arbeitsablauf
cms.ui.type.workflow=Voreingestellter Arbeitsablauf
cms.ui.type.year_is_negative=Das Jahr kann nicht negativ sein
cms.ui.type.year_range=Jahresbereich
cms.ui.type.year_range_not_balanced=Eines der Jahre im angegebenen Bereich fehlt
cms.ui.type.year_range_too_great=Der spezifizierte Bereichist zu gro\u00df
cms.ui.type.year_range_wrong_order=Die Jahreszahlen im Bereich sind ungeordnet
cms.ui.type.year_too_anachronistic=Der Datumsbereich erscheint falsch
cms.ui.types=Inhaltstypen
cms.ui.unknown=<i>unbekannt</i>
cms.ui.upload_new_content=Neuen Inhalt laden
cms.ui.use_custom_permissions=Benutzerspezifische Rechte
cms.ui.user=Benutzer
cms.ui.user_not_found=Benutzer nicht gefunden
cms.ui.util.=&nbsp;
cms.ui.view_all_enabled_tasks=View all enabled tasks
cms.ui.view_all_enabled_tasks=Alle {0} aktivierten Aufgaben anzeigen
cms.ui.view_tasks_sorted_by_due_date=Aufgaben anzeigen nach F\u00e4lligkeit
cms.ui.viewers=Betrachter
cms.ui.welcome=Willkommen
cms.ui.worfklow.task_roles=Zugewiesene Rollen
cms.ui.workflow.add=Arbeitsablauf hinzuf\u00fcgen
cms.ui.workflow.add_a_new_task_to=Neue Aufgabe hinzuf\u00fcgen f\u00fcr
cms.ui.workflow.add_task=Aufgabe hinzuf\u00fcgen
cms.ui.workflow.assign_roles_for=Rollen zuweisen an
cms.ui.workflow.cancel_hit=Abbruch anklicken
cms.ui.workflow.comment=Kommentar
cms.ui.workflow.current_state=Aktueller Status
cms.ui.workflow.delete=Arbeitsablauf l\u00f6schen
cms.ui.workflow.delete_prompt=Sind Sie sicher, diesen Arbeitsablauf zu l\u00f6schen?
cms.ui.workflow.delete_user=Benutzer l\u00f6schen
cms.ui.workflow.delete_workflow=Arbeitsablauf l\u00f6schen
cms.ui.workflow.description=Beschreibung
cms.ui.workflow.details=Arbeitsablauf Einzelheiten
cms.ui.workflow.edit=Arbeitsablauf bearbeiten
cms.ui.workflow.edit_task_in=Bearbeitung der Aufgabe in
cms.ui.workflow.insufficient_privileges=Insufficient privileges
cms.ui.workflow.insufficient_privileges=Sie haben unzureichende Rechte
cms.ui.workflow.intro=Arbeitsablauf w\u00e4hlen oder einen neuen hinzuf\u00fcgen
cms.ui.workflow.lock_tasks=Meine Aufgaben f\u00fcr diesen Inhaltstyp reservieren
cms.ui.workflow.no_users_were_selected=Keine Benutzer ausgew\u00c4hlt
cms.ui.workflow.no_users_were_selected=Keine Benutzer ausgew\u00e4hlt.
cms.ui.workflow.num_tasks=Anzahl der Aufgaben
cms.ui.workflow.restart_stopped_workflow=Gestoppter Arbeitsablauf erneut starten
cms.ui.workflow.stop_workflow=Arbeitsablauf stoppen
cms.ui.workflow.task.add=Aufgabe hinzuf\u00fcgen
cms.ui.workflow.task.approve=Akzeptieren
cms.ui.workflow.task.approve_prompt=Diesen Text akzeptieren?
cms.ui.workflow.task.assigned.lock_all=Alle meine Aufgaben zu diesem Punkt reservieren
cms.ui.workflow.task.assigned.none=Sie haben keine zugeordneten Aufgaben
cms.ui.workflow.task.assigned.unlock_all=Alle meine Aufgaben zu diesem Punkt freigeben
cms.ui.workflow.task.assigned=Ihre zugeordneten Aufgaben
cms.ui.workflow.task.comment.add=Kommentar hinzuf\u00fcgen
cms.ui.workflow.task.delete=Aufgabe l\u00f6schen
cms.ui.workflow.task.delete_prompt=Sind Sie sicher diese Aufgabe zu l\u00f6schen?
cms.ui.workflow.task.dependencies=Abh\u00e4ngigkeiten
cms.ui.workflow.task.details=Aufgabendetails
cms.ui.workflow.task.edit=Aufgabe bearbeiten
cms.ui.workflow.task.finish=Aufgabe abschlie\u00dfen
cms.ui.workflow.task.lock=Aufgabe reservieren
cms.ui.workflow.task.locked=Reserviert?
cms.ui.workflow.task.none=This workflow has no tasks
cms.ui.workflow.task.reject=Zur\u00fcckweisen
cms.ui.workflow.task.return=Zur\u00fcck zum Punkt Arbeitsablauf
cms.ui.workflow.task.role.add=Rolle hinzuf\u00fcgen
cms.ui.workflow.task.role.delete=Rolle l\u00f6schen
cms.ui.workflow.task.role.none=Diese Aufgabe verf\u00fcgt \u00fcber keine Rollen
cms.ui.workflow.task.roles=Aufgabe Rollen
cms.ui.workflow.task.state=Aufgaben Status
cms.ui.workflow.task.type=Aufgaben Typ
cms.ui.workflow.task.unlock=Aufgabe freigeben
cms.ui.workflow.task.user.add=Benutzer zuordnen
cms.ui.workflow.task.user.delete=Benutzer entlassen
cms.ui.workflow.task.user.none=Dieser Aufgabe sind keine Benutzer zugeordnet
cms.ui.workflow.task.users=Zugeordnete Benutzer
cms.ui.workflow.tasks=Aufgaben
cms.ui.workflow.task.view_locked=Reservierte Aufgaben anzeigen
cms.ui.workflow.task.view_unlocked=Freigegebene Aufgaben anzeigen
cms.ui.workflow.task.view_all=Alle Aufgaben anzeigen
cms.ui.workflow.task.item_title=Item Title
cms.ui.workflow.task.locking_user=Reserviert von\:
cms.ui.workflow.unlock_tasks=Alle meine Aufgaben f\u00fcr diesen Typ freigeben
cms.ui.workflow.your_tasks=Zugewiesene Aufgaben
cms.ui.workflow=Arbeitsablauf
cms.ui.workflow_profile_exists_on_selected_folder=Ablaufprofil existiert f\u00fcr den gew\u00e4hlten Ordner
cms.ui.workflows=Arbeitsabl\u00e4ufe
cms.ui.yes=Ja
cms.ui.you_do_not_have_sufficient_privileges_to_access_this_page=Unzureichende Zugriffsrechte f\u00fcr diese Seite.
cms.contenttypes.template.body_text.title=Haupttext\:
cms.contenttypes.template.body_text.description=Haupttext bearbeiten
cms.contenttypes.shared.assign_categories.title=Kategorien zuweisen
cms.contenttypes.shared.assign_categories.description=Kategorien zuweisen
cms.contenttypes.shared.attach_files.title=Dateien zuordnen
cms.contenttypes.shared.attach_files.description=Dateien anh\u00c4ngen
cms.contenttypes.shared.basic_properties.description=Basiseigenschaften editieren
cms.contenttypes.shared.basic_properties.title=Basiseigenschaften
cms.contenttypes.shared.body_text.title=Haupttext
cms.contenttypes.shared.body_text.description=Haupttext editieren
no=Nein
yes=Ja
mime_type_jsp=JSP
mime_type_xsl=XSL
# For all subject and body email text below, the substitutions are as follows:
# {0}: Item title (display name)
# {1}: a numeric value identifying the type of Task that was completed: 1 for authoring, 2 for approval, 3 for publishing
# {2}: The finish-URL for the task (if the operation is "enable"), or the URL of the authoring page for the item
# {3}: The siteName
# {4}: The system administrator email
# {5}: The date of the event
# {6}: The text of the last comment added to the Task
# {7}: The name of the person who added the last comment
# {8}: The start date of the Task
cms.ui.workflow.email.subject.enable="{0}" ist {1,choice,1#kann erstellt werden|2#wartet auf Annahme|3#wartet auf Ver\u00f6ffentlichung}
cms.ui.workflow.email.subject.finish={1,choice,1#Verfassen|2#Annahme|3#Ver\u00f6ffentlichen} von "{0}" ist erfolgt
cms.ui.workflow.email.subject.rollback={1,choice,1#Verfassen|2#Annahme|3#Ver\u00f6ffentlichen} von "{0}" wurde widerrufen
cms.ui.workflow.email.subject.disable={1,choice,1#Verfassen|2#Annahme|3#Ver\u00f6ffentlichen} von "{0}" wurde deaktiviert
cms.ui.workflow.email.body.enable=\
"{0}" is {1,choice,1#ready for authoring|2#waiting for approval|3#waiting for deployment} on {3}. \n\
You can complete this task by opening this link in your web browser:\n\
\n\
{2}\n\
\n\
If you have any questions, please contact the system adminstrator at {4}.\n\
Thank you for using {3}.\n
cms.ui.workflow.email.body.finish=\
{1,choice,1#Authoring|2#Approval|3#Deployment} of "{0}" was completed on {5,date,long} at {5,time,short}.\n\
You can view the item opening this link in your web browser:\n\
\n\
{2}\n\
\n\
If you have any questions, please contact the system adminstrator at {4}.\n\
Thank you for using {3}.\n
cms.ui.workflow.email.body.rollback=\
{1,choice,1#Authoring|2#Approval|3#Deployment} of "{0}" was rolled back on {5,date,long} at {5,time,short}.\n\
The last comment on this workflow, by {7}, was:\n\
\n\
{6}\n\
\n\
You can view the item and perform any necessary actions by opening this link \n\
in your web browser:\n\
\n\
{2}\n\
\n\
If you have any questions, please contact the system adminstrator at {4}.\n\
Thank you for using {3}.\n
cms.ui.workflow.email.body.disable=\
{1,choice,1#Authoring|2#Approval|3#Deployment} of "{0}" was denied on {5,date,long} at {5,time,short}.\n\
The last comment on this workflow, by {7}, was:\n\
\n\
{6}\n\
\n\
You can view the item and perform any necessary actions by opening this link \n\
in your web browser:\n\
\n\
{2}\n\
\n\
If you have any questions, please contact the system adminstrator at {4}.\n\
Thank you for using {3}.\n
# Subject and body for the Unfinished Task emails
cms.ui.workflow.email.subject.unfinished={1,choice,1#Authoring|2#Approval|3#Deployment} of "{0}" is unfinished
cms.ui.workflow.email.body.unfinished=\
"{0}" is {1,choice,1#ready for authoring|2#waiting for approval|3#waiting for deployment} on {3}. \n\
This task has been waiting for action since {8,date,long} at {8,time,short}.\n\
Please complete this task as soon as possible.\n\
You can complete this task by opening this link in your web browser:\n\
\n\
{2}\n\
\n\
If you have any questions, please contact the system adminstrator at {4}.\n\
Thank you for using {3}.\n
cms.contentassets.ui.description=Beschreibung
cms.ui.content_check_alert.subject=Content Check Alert
cms.ui.content_check_alert.body=Dear Author\n\nYou are listed as the Content Owner for the following {0} web page(s). Please check if they need amending or updating in any way:\n\n{1}\nIf you have any amendments or questions please email the appropriate web editor:\n\nsally.editor@aplaws.org (Council & Democracy, Environment, Education)\njohn.editor@aplaws.org (Community & Living, Business, Social Care)\nfrank.editor@aplaws.org (Council & Democracy, Environment, Education)\n\nYou can contact webmanager@aplaws.org with any questions about this email\n
cms.ui.workflow.task.takeover=\u00dcbernahme
cms.ui.item.lifecycle.republish_and_reset=Lebenszyklus erneut etablieren und starten
cms.contenttypes.ui.description_missing=Bitte eine Beschreibung eingeben
cms.ui.category.view_index_item=Index Element anzeigen
cms.ui.category.edit_index_item=Index Element bearbeiten

View File

@ -29,6 +29,7 @@ import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.bebop.form.SingleSelect;
import com.arsdigita.bebop.form.Submit;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.ContentType;
import com.arsdigita.cms.SecurityManager;
@ -62,6 +63,7 @@ final class ContentTypeItemPane extends BaseItemPane {
private final AddElement m_elementAddForm;
private final SectionTemplatesListing m_templates;
// private final RelationAttributeSection m_relationAttributes;
ContentTypeItemPane(final ACSObjectSelectionModel model,
final ContentTypeRequestLocal type,
@ -114,6 +116,7 @@ final class ContentTypeItemPane extends BaseItemPane {
add(itemForm);
m_detailPane.add(new SummarySection(editLink, deleteLink));
m_detailPane.add(new RelationAttributeSection());
m_detailPane.add(new TypeSecurityContainer(new ElementSection()));
m_detailPane.add(new TemplateSection(templateAddLink));
@ -192,6 +195,7 @@ final class ContentTypeItemPane extends BaseItemPane {
group.addAction(m_elementAddForm);
}
@Override
public final boolean isVisible(final PageState state) {
return m_model.isSelected(state) && isDynamicType(state) &&
!ContentSection.getConfig().getHideUDCTUI();
@ -209,11 +213,41 @@ final class ContentTypeItemPane extends BaseItemPane {
group.addAction(new TypeSecurityContainer(templateAddLink));
}
@Override
public final boolean isVisible(final PageState state) {
return m_model.isSelected(state) && !isDynamicType(state);
}
}
private class RelationAttributeSection extends Section {
RelationAttributeSection(/*final ActionLink attributeEditLink*/) {
setHeading(new Label(gz("cms.ui.type.attributes")));
setBody(new RelationAttributeContainer(m_type));
// setBody(new Label("RelationAttributeContainer"));
}
@Override
public final boolean isVisible(final PageState state) {
boolean retVal = false;
ContentType ct = (ContentType) m_type.getContentType(state);
ContentItem ci = null;
try {
Class<? extends ContentItem> clazz = Class.forName(ct.getClassName()).asSubclass(ContentItem.class);
ci = clazz.newInstance();
retVal = clazz.cast(ci).hasRelationAttributes();
ci.delete();
} catch (Exception ex) {
//retVal = false;
}
return retVal;
}
}
@Override
public final void register(final Page page) {
super.register(page);
@ -249,7 +283,7 @@ final class ContentTypeItemPane extends BaseItemPane {
* Determine if the current user has access to edit the content type
* XXX domlay
*/
protected static final boolean userCanEdit(final PageState state) {
protected static boolean userCanEdit(final PageState state) {
SecurityManager sm = Utilities.getSecurityManager(state);
return sm.canAccess(state.getRequest(),
SecurityManager.CONTENT_TYPE_ADMIN);

View File

@ -52,6 +52,7 @@ class ContentTypePropertyList extends PropertyList {
m_type = type;
}
@Override
protected final java.util.List properties(final PageState state) {
final java.util.List props = super.properties(state);
final ContentType type = m_type.getContentType(state);

View File

@ -0,0 +1,91 @@
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.arsdigita.cms.ui.type;
import com.arsdigita.bebop.ActionLink;
import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.ActionEvent;
import com.arsdigita.bebop.event.ActionListener;
import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ContentType;
import com.arsdigita.toolbox.ui.ComponentMap;
import com.arsdigita.xml.Element;
import java.util.Iterator;
import java.util.StringTokenizer;
/**
*
* @author quasi
*/
class RelationAttributeContainer extends ComponentMap {
private ContentTypeRequestLocal m_type;
private ContentType contentType;
private StringTokenizer relationAttributeList;
// private static final RequestLocal s_components = new RequestLocal() {
// protected final Object initialValue(final PageState state) {
// return new ComponentMap();
// }
// };
public RelationAttributeContainer(ContentTypeRequestLocal type) {
super();
m_type = type;
relationAttributeList = null;
}
@Override
public final boolean isVisible(final PageState state) {
boolean retVal = false;
ContentType ct = (ContentType) m_type.getContentType(state);
ContentItem ci = null;
try {
Class<? extends ContentItem> clazz = Class.forName(ct.getClassName()).asSubclass(ContentItem.class);
ci = clazz.newInstance();
retVal = clazz.cast(ci).hasRelationAttributes();
relationAttributeList = clazz.cast(ci).getRelationAttributes();
ci.delete();
} catch (Exception ex) {
//retVal = false;
}
// Test
while (relationAttributeList.hasMoreElements()) {
String token = relationAttributeList.nextToken();
put(token, new Label(token));
// ActionLink link = new ActionLink(new Label(token));
// link.addActionListener(new ActionListener() {
// public void actionPerformed(ActionEvent e) {
// }
// });
}
return retVal;
}
// HACK: Dies sollte geändert werden, aber ich weiß nicht wie. Das ist der einfachste
// Weg, die exception zu verhindern, aber ich bin mir sicher, daß das später zu
// Problemen führen wird.
@Override
public void lock() {
}
public final void generateXML(final PageState state, final Element parent) {
if (isVisible(state)) {
Iterator iter = children();
while (iter.hasNext()) {
((Component) iter.next()).generateXML(state, parent);
}
}
}
}