diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderEditor.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderEditor.java
index 7b11cd4fd..012ad2142 100755
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderEditor.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderEditor.java
@@ -22,44 +22,52 @@ import com.arsdigita.bebop.FormData;
import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormSectionEvent;
+import com.arsdigita.kernel.KernelConfig;
import org.libreccm.categorization.Category;
+import org.libreccm.cdi.utils.CdiUtil;
+import org.libreccm.configuration.ConfigurationManager;
/**
* Implements functionality for renaming a folder. Most code taken from FolderCreator. Need to refactor out base
* functionality of FolderEditor & Creator.
*
- * @author Jens >Pelzetter
* @author Jon Orris
+ * @author Jens >Pelzetter
*
*/
public class FolderEditor extends FolderForm {
- public FolderEditor(String name, FolderSelectionModel folder) {
+ public FolderEditor(final String name, final FolderSelectionModel folder) {
super(name, folder);
}
/**
* Initialise the form with name & label of folder being edited.
- * @param e
+ * @param event
* @throws com.arsdigita.bebop.FormProcessException
*/
@Override
- public void init(FormSectionEvent e) throws FormProcessException {
- PageState s = e.getPageState();
- FormData data = e.getFormData();
- Category folder = getCurrentFolder(s);
+ public void init(final FormSectionEvent event) throws FormProcessException {
+ final PageState state = event.getPageState();
+ final FormData data = event.getFormData();
+ final Category folder = getCurrentFolder(state);
data.put(NAME, folder.getName());
- data.put(TITLE, folder.getDisplayName());
+ final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
+ final ConfigurationManager confManager = cdiUtil.findBean(ConfigurationManager.class);
+ final KernelConfig kernelConfig = confManager.findConfiguration(
+ KernelConfig.class);
+ data.put(TITLE,
+ folder.getTitle().getValue(kernelConfig.getDefaultLocale()));
}
@Override
- public void process(FormSectionEvent e) throws FormProcessException {
- PageState s = e.getPageState();
- FormData data = e.getFormData();
- Category folder = getCurrentFolder(s);
+ public void process(final FormSectionEvent event) throws FormProcessException {
+ final PageState state = event.getPageState();
+ final FormData data = event.getFormData();
+ final Category folder = getCurrentFolder(state);
updateFolder(folder, (String)data.get(NAME), (String)data.get(TITLE));
}
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderForm.java
index 13966bb7d..53150ae3d 100755
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderForm.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderForm.java
@@ -37,6 +37,7 @@ import com.arsdigita.bebop.parameters.TrimmedStringParameter;
import com.arsdigita.bebop.parameters.URLTokenValidationListener;
import com.arsdigita.cms.ui.authoring.BasicItemForm;
import com.arsdigita.globalization.GlobalizedMessage;
+import com.arsdigita.kernel.KernelConfig;
import com.arsdigita.util.Assert;
import com.arsdigita.web.Web;
import com.arsdigita.xml.Element;
@@ -46,6 +47,8 @@ import org.apache.logging.log4j.Logger;
import org.libreccm.categorization.Category;
import org.libreccm.categorization.CategoryRepository;
import org.libreccm.cdi.utils.CdiUtil;
+import org.libreccm.configuration.ConfigurationManager;
+import org.libreccm.l10n.GlobalizationHelper;
import org.librecms.CmsConstants;
/**
@@ -62,9 +65,9 @@ import org.librecms.CmsConstants;
* @author Jens Pelzetter
*/
public abstract class FolderForm extends FormSection
- implements FormInitListener,
- FormProcessListener,
- FormValidationListener {
+ implements FormInitListener,
+ FormProcessListener,
+ FormValidationListener {
public static final Logger LOGGER = LogManager.getLogger(FolderForm.class);
@@ -81,16 +84,16 @@ public abstract class FolderForm extends FormSection
* Currently, to insert javascript code the Label Widget is "abused".
*/
private final Label m_script = new Label(String.format(
- "",
- Web.getWebappContextPath()),
+ "",
+ Web.getWebappContextPath()),
false);
/**
* Create a new folder form.
*
- * @param name Name of the form
+ * @param name Name of the form
* @param currentFolder SelectionModel containing the current folder being
- * operated on.
+ * operated on.
*
* @pre name != null && folder != null
*/
@@ -137,7 +140,7 @@ public abstract class FolderForm extends FormSection
super(columnPanel);
widgetSection = new FormSection(
- new ColumnPanel(columnPanel.getNumCols()));
+ new ColumnPanel(columnPanel.getNumCols()));
super.add(widgetSection, ColumnPanel.INSERT);
this.currentFolder = currentFolder;
@@ -169,20 +172,20 @@ public abstract class FolderForm extends FormSection
// it breaks URLs & potentially overwrites the user's
// customizations.
final TextField titleWidget = new TextField(new TrimmedStringParameter(
- TITLE));
+ TITLE));
titleWidget.setLabel(getTitleLabel());
titleWidget.setHint(getTitleHint());
titleWidget.addValidationListener(new NotNullValidationListener());
titleWidget.setOnFocus("if (this.form." + NAME + ".value == '') { "
- + " defaulting = true; this.form." + NAME
- + ".value = urlize(this.value); }");
+ + " defaulting = true; this.form." + NAME
+ + ".value = urlize(this.value); }");
titleWidget.setOnKeyUp(
- "if (defaulting) { this.form." + NAME
- + ".value = urlize(this.value) }");
+ "if (defaulting) { this.form." + NAME
+ + ".value = urlize(this.value) }");
add(titleWidget);
final TextField nameWidget = new TextField(new TrimmedStringParameter(
- NAME));
+ NAME));
nameWidget.setLabel(getNameLabel());
nameWidget.setHint(getNameHint());
@@ -195,11 +198,11 @@ public abstract class FolderForm extends FormSection
nameWidget.setMaxLength(190);
nameWidget.setOnFocus("defaulting = false");
nameWidget.setOnBlur(
- "if (this.value == '') "
- + "{ defaulting = true; this.value = urlize(this.form."
- + TITLE
- + ".value) } "
- + " else { this.value = urlize(this.value); }");
+ "if (this.value == '') "
+ + "{ defaulting = true; this.value = urlize(this.form."
+ + TITLE
+ + ".value) } "
+ + " else { this.value = urlize(this.value); }");
add(nameWidget);
}
@@ -225,7 +228,7 @@ public abstract class FolderForm extends FormSection
*/
@Override
public abstract void init(final FormSectionEvent event)
- throws FormProcessException;
+ throws FormProcessException;
/**
* Process the form. Children have to override this method to save the
@@ -237,7 +240,7 @@ public abstract class FolderForm extends FormSection
*/
@Override
public abstract void process(final FormSectionEvent event)
- throws FormProcessException;
+ throws FormProcessException;
/**
* Validates the form. Checks for name uniqueness.
@@ -248,9 +251,9 @@ public abstract class FolderForm extends FormSection
*/
@Override
public void validate(final FormSectionEvent event)
- throws FormProcessException {
+ throws FormProcessException {
Category folder = (Category) currentFolder.getSelectedObject(event
- .getPageState());
+ .getPageState());
Assert.exists(folder);
// validateNameUniqueness(folder, event);
}
@@ -271,9 +274,9 @@ public abstract class FolderForm extends FormSection
* Layout constraints are defined in each layout container as static ints.
* Use a bitwise OR to specify multiple constraints.
*
- * @param component the component to add to this container
+ * @param component the component to add to this container
* @param constraints layout constraints (a bitwise OR of static ints in the
- * particular layout)
+ * particular layout)
*/
@Override
public void add(final Component component, final int constraints) {
@@ -345,8 +348,8 @@ public abstract class FolderForm extends FormSection
*
* @param folder The folder to update
* @param parent The new parent folder. May be null.
- * @param name The new name of the folder
- * @param label The new label for the folder
+ * @param name The new name of the folder
+ * @param label The new label for the folder
*/
final protected void updateFolder(final Category folder,
final Category parent,
@@ -360,32 +363,36 @@ public abstract class FolderForm extends FormSection
* Updates a folder with a new name and label.
*
* @param folder The folder to update
- * @param name The new name of the folder
- * @param label The new label for the folder
+ * @param name The new name of the folder
+ * @param label The new label for the folder
*/
final protected void updateFolder(final Category folder,
final String name,
final String label) {
- folder.setName(name);
- folder.setDisplayName(label);
-
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
+ final ConfigurationManager confManager = cdiUtil.findBean(ConfigurationManager.class);
+ final KernelConfig kernelConfig = confManager.findConfiguration(
+ KernelConfig.class);
+
+ folder.setName(name);
+ folder.setDisplayName(name);
+ folder.getTitle().addValue(kernelConfig.getDefaultLocale(), label);
+
final CategoryRepository categoryRepo = cdiUtil.findBean(
- CategoryRepository.class);
+ CategoryRepository.class);
categoryRepo.save(folder);
}
/**
* Returns the current folder being operated on.
*
+ * @param state
* @return The current folder
*
- * @pre state != null
- * @post return != null
*/
final protected Category getCurrentFolder(final PageState state) {
final Category folder = (Category) currentFolder
- .getSelectedObject(state);
+ .getSelectedObject(state);
return folder;
}
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderTreeModelBuilder.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderTreeModelBuilder.java
index 6f39dbb6e..6b506fdab 100755
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderTreeModelBuilder.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/folder/FolderTreeModelBuilder.java
@@ -24,7 +24,7 @@ import com.arsdigita.bebop.tree.TreeModel;
import com.arsdigita.bebop.tree.TreeModelBuilder;
import com.arsdigita.bebop.tree.TreeNode;
import com.arsdigita.cms.CMS;
-import com.arsdigita.ui.admin.applications.ApplicationInstanceTreeNode;
+import com.arsdigita.kernel.KernelConfig;
import org.librecms.contentsection.ContentSection;
@@ -40,6 +40,7 @@ import org.librecms.contentsection.Folder;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
+import org.libreccm.configuration.ConfigurationManager;
/**
* A {@link com.arsdigita.bebop.tree.TreeModelBuilder} that produces trees
@@ -51,17 +52,17 @@ import java.util.stream.Collectors;
* @author Jens Pelzetter
*/
public class FolderTreeModelBuilder extends LockableImpl
- implements TreeModelBuilder {
+ implements TreeModelBuilder {
/**
* Make a tree model that lists the hierarchy of folders underneath the
* folder returned by {@link #getRoot getRoot}.
*
- * @param tree the tree in which the model is used
+ * @param tree the tree in which the model is used
* @param state represents the current request
*
* @return a tree model that lists the hierarchy of folders underneath the
- * folder returned by {@link #getRoot getRoot}.
+ * folder returned by {@link #getRoot getRoot}.
*/
@Override
public TreeModel makeModel(final Tree tree, final PageState state) {
@@ -77,19 +78,19 @@ public class FolderTreeModelBuilder extends LockableImpl
final PageState state) {
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final FolderTreeModelController controller = cdiUtil.findBean(
- FolderTreeModelController.class);
+ FolderTreeModelController.class);
return controller.hasChildren(node);
}
@Override
public Iterator getChildren(final TreeNode node,
- final PageState state) {
+ final PageState state) {
final String nodeKey = node.getKey().toString();
// Always expand root node
if (nodeKey.equals(getRoot(state).getKey().toString())
- && tree.isCollapsed(nodeKey, state)) {
+ && tree.isCollapsed(nodeKey, state)) {
tree.expand(nodeKey, state);
}
@@ -99,23 +100,21 @@ public class FolderTreeModelBuilder extends LockableImpl
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final FolderTreeModelController controller = cdiUtil.findBean(
- FolderTreeModelController.class);
-
+ FolderTreeModelController.class);
+
final List subFolders = controller.getChildren(node);
return subFolders.stream()
- .map(folder -> generateTreeNode(folder))
- .collect(Collectors.toList())
- .iterator();
+ .map(folder -> generateTreeNode(folder))
+ .collect(Collectors.toList())
+ .iterator();
}
private TreeNode generateTreeNode(final Folder folder) {
- final FolderTreeNode node = new FolderTreeNode(folder);
-
- return node;
- }
+ final FolderTreeNode node = new FolderTreeNode(folder);
+
+ return node;
+ }
};
-
-
/*return new DataQueryTreeModel(getRoot(state).getID(),
"com.arsdigita.cms.getRootFolder",
@@ -171,7 +170,7 @@ public class FolderTreeModelBuilder extends LockableImpl
*
*/
protected Folder getRootFolder(final PageState state)
- throws IllegalStateException {
+ throws IllegalStateException {
final ContentSection section = CMS.getContext().getContentSection();
return section.getRootDocumentsFolder();
@@ -194,12 +193,17 @@ public class FolderTreeModelBuilder extends LockableImpl
public Object getElement() {
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final GlobalizationHelper globalizationHelper = cdiUtil.findBean(
- GlobalizationHelper.class);
+ GlobalizationHelper.class);
final Locale locale = globalizationHelper.getNegotiatedLocale();
if (folder.getTitle().hasValue(locale)) {
return folder.getTitle().getValue(locale);
} else {
- final String value = folder.getTitle().getValue();
+ final ConfigurationManager confManager = cdiUtil.findBean(
+ ConfigurationManager.class);
+ final KernelConfig kernelConfig = confManager.findConfiguration(
+ KernelConfig.class);
+ final String value = folder.getTitle().getValue(kernelConfig.
+ getDefaultLocale());
if (value == null) {
return folder.getName();
} else {
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
index aaa9bbc5d..688d316a3 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
@@ -118,3 +118,5 @@ cms.ui.edit_folder=Rename the current folder
cms.ui.authoring.create_new=Create new
cms.ui.authoring.go=Go
empty_text=
+cms.contenttypes.ui.title=Title
+cms.contenttypes.ui.name=Name (URL fragment)
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
index 6e9a74ab5..a8c44a6d6 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
@@ -117,3 +117,5 @@ cms.ui.edit_folder=Aktuellen Ordner umbenennen
cms.ui.authoring.create_new=Neuer Inhalt
cms.ui.authoring.go=Anlegen
empty_text=
+cms.contenttypes.ui.title=Titel
+cms.contenttypes.ui.name=Name (URL-Fragment)
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
index b1598074b..a1cfb39e7 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
@@ -86,3 +86,5 @@ cms.ui.edit_folder=Rename the current folder
cms.ui.authoring.create_new=Create new
cms.ui.authoring.go=Go
empty_text=
+cms.contenttypes.ui.title=Title
+cms.contenttypes.ui.name=Name (URL fragment)