CCM NG/ccm-cms: AssetForm localisation
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4666 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
ddddc1f060
commit
5fdeb3b9eb
|
|
@ -50,6 +50,8 @@ import org.librecms.CmsConstants;
|
|||
import org.librecms.contentsection.ContentSection;
|
||||
import org.librecms.contentsection.ContentSectionManager;
|
||||
|
||||
import static org.librecms.CmsConstants.*;
|
||||
|
||||
/**
|
||||
* Browse folder and assets.
|
||||
*
|
||||
|
|
@ -71,9 +73,9 @@ public class AssetFolderBrowser extends Table {
|
|||
private TableColumn nameColumn;
|
||||
private TableColumn deleteColumn;
|
||||
private final StringParameter sortTypeParameter = new StringParameter(
|
||||
"sortType");
|
||||
"sortType");
|
||||
private final StringParameter sortDirectionParameter = new StringParameter(
|
||||
"sortDir");
|
||||
"sortDir");
|
||||
|
||||
private Paginator paginator;
|
||||
private long folderSize;
|
||||
|
|
@ -93,12 +95,18 @@ public class AssetFolderBrowser extends Table {
|
|||
setModelBuilder(new AssetFolderBrowserTableModelBuilder());
|
||||
|
||||
final GlobalizedMessage[] headers = {
|
||||
globalize("cms.ui.folder.name"),
|
||||
globalize("cms.ui.folder.title"),
|
||||
globalize("cms.ui.folder.type"),
|
||||
globalize("cms.ui.folder.creation_date"),
|
||||
globalize("cms.ui.folder.last_modified"),
|
||||
globalize("cms.ui.folder.action")};
|
||||
new GlobalizedMessage("cms.ui.folder.name",
|
||||
CMS_FOLDER_BUNDLE),
|
||||
new GlobalizedMessage("cms.ui.folder.title",
|
||||
CMS_FOLDER_BUNDLE),
|
||||
new GlobalizedMessage("cms.ui.folder.type",
|
||||
CMS_FOLDER_BUNDLE),
|
||||
new GlobalizedMessage("cms.ui.folder.creation_date",
|
||||
CMS_FOLDER_BUNDLE),
|
||||
new GlobalizedMessage("cms.ui.folder.last_modified",
|
||||
CMS_FOLDER_BUNDLE),
|
||||
new GlobalizedMessage("cms.ui.folder.action",
|
||||
CMS_FOLDER_BUNDLE)};
|
||||
|
||||
setModelBuilder(new AssetFolderBrowserTableModelBuilder());
|
||||
setColumnModel(new DefaultTableColumnModel(headers));
|
||||
|
|
@ -106,23 +114,23 @@ public class AssetFolderBrowser extends Table {
|
|||
setClassAttr("dataTable");
|
||||
|
||||
getHeader().setDefaultRenderer(
|
||||
new com.arsdigita.cms.ui.util.DefaultTableCellRenderer());
|
||||
new com.arsdigita.cms.ui.util.DefaultTableCellRenderer());
|
||||
|
||||
nameColumn = getColumn(AssetFolderBrowserTableModel.COL_NAME);
|
||||
nameColumn.setCellRenderer(new NameCellRenderer());
|
||||
nameColumn.setHeaderRenderer(new HeaderCellRenderer(SORT_KEY_NAME));
|
||||
|
||||
getColumn(AssetFolderBrowserTableModel.COL_CREATION_DATE)
|
||||
.setHeaderRenderer(
|
||||
new HeaderCellRenderer(SORT_KEY_CREATION_DATE));
|
||||
.setHeaderRenderer(
|
||||
new HeaderCellRenderer(SORT_KEY_CREATION_DATE));
|
||||
getColumn(AssetFolderBrowserTableModel.COL_CREATION_DATE)
|
||||
.setCellRenderer(new DateCellRenderer());
|
||||
.setCellRenderer(new DateCellRenderer());
|
||||
|
||||
getColumn(AssetFolderBrowserTableModel.COL_LAST_MODIFIED)
|
||||
.setHeaderRenderer(new HeaderCellRenderer(
|
||||
SORT_KEY_LAST_MODIFIED_DATE));
|
||||
.setHeaderRenderer(new HeaderCellRenderer(
|
||||
SORT_KEY_LAST_MODIFIED_DATE));
|
||||
getColumn(AssetFolderBrowserTableModel.COL_LAST_MODIFIED)
|
||||
.setCellRenderer(new DateCellRenderer());
|
||||
.setCellRenderer(new DateCellRenderer());
|
||||
|
||||
deleteColumn = getColumn(AssetFolderBrowserTableModel.COL_DELETEABLE);
|
||||
deleteColumn.setCellRenderer(new ActionCellRenderer());
|
||||
|
|
@ -134,7 +142,8 @@ public class AssetFolderBrowser extends Table {
|
|||
folderDeleter = new ItemDeleter();
|
||||
addTableActionListener(folderDeleter);
|
||||
|
||||
setEmptyView(new Label(globalize("cms.ui.folder.no_assets")));
|
||||
setEmptyView(new Label(new GlobalizedMessage("cms.ui.folder.no_assets",
|
||||
CMS_FOLDER_BUNDLE)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -143,8 +152,8 @@ public class AssetFolderBrowser extends Table {
|
|||
super.register(page);
|
||||
|
||||
page.addComponentStateParam(
|
||||
this,
|
||||
getFolderSelectionModel().getStateParameter());
|
||||
this,
|
||||
getFolderSelectionModel().getStateParameter());
|
||||
page.addComponentStateParam(this, sortTypeParameter);
|
||||
page.addComponentStateParam(this, sortDirectionParameter);
|
||||
}
|
||||
|
|
@ -173,16 +182,6 @@ public class AssetFolderBrowser extends Table {
|
|||
return (String) state.getValue(sortDirectionParameter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Getting the GlobalizedMessage using a CMS Class targetBundle.
|
||||
*
|
||||
* @param key The resource key
|
||||
*/
|
||||
private GlobalizedMessage globalize(final String key) {
|
||||
return new GlobalizedMessage(key, CmsConstants.CMS_FOLDER_BUNDLE);
|
||||
|
||||
}
|
||||
|
||||
private class HeaderCellRenderer extends DefaultTableCellRenderer {
|
||||
|
||||
private final String headerKey;
|
||||
|
|
@ -205,7 +204,7 @@ public class AssetFolderBrowser extends Table {
|
|||
final String sortKey = (String) state.getValue(sortTypeParameter);
|
||||
final boolean isCurrentKey = sortKey.equals(key);
|
||||
final String currentSortDirection = (String) state
|
||||
.getValue(sortDirectionParameter);
|
||||
.getValue(sortDirectionParameter);
|
||||
final String imageUrlStub;
|
||||
|
||||
if (SORT_ACTION_UP.equals(currentSortDirection)) {
|
||||
|
|
@ -222,7 +221,7 @@ public class AssetFolderBrowser extends Table {
|
|||
// by default, everything sorts "up" unless it
|
||||
// is the current key and it is already pointing up
|
||||
if (SORT_ACTION_UP.equals(currentSortDirection)
|
||||
&& isCurrentKey) {
|
||||
&& isCurrentKey) {
|
||||
sortDirectionAction = SORT_ACTION_DOWN;
|
||||
} else {
|
||||
sortDirectionAction = SORT_ACTION_UP;
|
||||
|
|
@ -273,14 +272,14 @@ public class AssetFolderBrowser extends Table {
|
|||
|
||||
final String name = (String) value;
|
||||
final ContentSection section = CMS.getContext().
|
||||
getContentSection();
|
||||
getContentSection();
|
||||
final ContentSectionManager sectionManager = CdiUtil.
|
||||
createCdiUtil()
|
||||
.findBean(ContentSectionManager.class);
|
||||
createCdiUtil()
|
||||
.findBean(ContentSectionManager.class);
|
||||
|
||||
final boolean isFolder = ((AssetFolderBrowserTableModel) table
|
||||
.getTableModel(state))
|
||||
.isFolder();
|
||||
.isFolder();
|
||||
final long objectId = getObjectId(key);
|
||||
|
||||
if (isFolder) {
|
||||
|
|
@ -294,7 +293,7 @@ public class AssetFolderBrowser extends Table {
|
|||
column);
|
||||
} else {
|
||||
return new ControlLink(new Text(name));
|
||||
|
||||
|
||||
// return new Link(new Text(name),
|
||||
// itemResolver.generateItemURL(state,
|
||||
// objectId,
|
||||
|
|
@ -345,13 +344,13 @@ public class AssetFolderBrowser extends Table {
|
|||
return new Label(" ", false);
|
||||
} else {
|
||||
final ControlLink link = new ControlLink(
|
||||
new Label(
|
||||
new GlobalizedMessage("cms.ui.folder.delete",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE)));
|
||||
new Label(
|
||||
new GlobalizedMessage("cms.ui.folder.delete",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE)));
|
||||
link.setConfirmation(
|
||||
new GlobalizedMessage(
|
||||
"cms.ui.folder.delete_confirmation_assets",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
new GlobalizedMessage(
|
||||
"cms.ui.folder.delete_confirmation_assets",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
return link;
|
||||
}
|
||||
}
|
||||
|
|
@ -373,7 +372,7 @@ public class AssetFolderBrowser extends Table {
|
|||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final AssetFolderBrowserController controller = cdiUtil.findBean(
|
||||
AssetFolderBrowserController.class);
|
||||
AssetFolderBrowserController.class);
|
||||
controller.deleteObject((String) event.getRowKey());
|
||||
|
||||
((Table) event.getSource()).clearSelection(state);
|
||||
|
|
@ -398,7 +397,7 @@ public class AssetFolderBrowser extends Table {
|
|||
getFolderSelectionModel().setSelectedKey(state,
|
||||
getObjectId(rowKey));
|
||||
} else if (rowKey.startsWith(
|
||||
CmsConstants.FOLDER_BROWSER_KEY_PREFIX_ASSET)) {
|
||||
CmsConstants.FOLDER_BROWSER_KEY_PREFIX_ASSET)) {
|
||||
getSelectedAssetModel().setSelectedKey(state,
|
||||
getObjectId(rowKey));
|
||||
assetPane.editAssetMode(state);
|
||||
|
|
|
|||
|
|
@ -98,8 +98,6 @@ class AssetFolderBrowserTableModel implements TableModel {
|
|||
} else {
|
||||
return String.format("asset-%d", currentRow.getObjectId());
|
||||
}
|
||||
|
||||
// return currentRow.getObjectId();
|
||||
}
|
||||
|
||||
public boolean isFolder() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import com.arsdigita.bebop.ColumnPanel;
|
|||
import com.arsdigita.bebop.Form;
|
||||
import com.arsdigita.bebop.FormProcessException;
|
||||
import com.arsdigita.bebop.Label;
|
||||
import com.arsdigita.bebop.Page;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.SaveCancelSection;
|
||||
import com.arsdigita.bebop.SingleSelectionModel;
|
||||
|
|
@ -38,7 +37,6 @@ import com.arsdigita.bebop.form.Option;
|
|||
import com.arsdigita.bebop.form.SingleSelect;
|
||||
import com.arsdigita.bebop.form.Submit;
|
||||
import com.arsdigita.bebop.form.TextField;
|
||||
import com.arsdigita.bebop.parameters.StringParameter;
|
||||
import com.arsdigita.globalization.GlobalizedMessage;
|
||||
import com.arsdigita.kernel.KernelConfig;
|
||||
|
||||
|
|
@ -71,7 +69,6 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
|
||||
private final AssetPane assetPane;
|
||||
private final SingleSelectionModel<Long> selectionModel;
|
||||
// private final StringParameter selectedLocaleParameter;
|
||||
|
||||
private BoxPanel showLocalePanel;
|
||||
private SingleSelect showLocaleSelect;
|
||||
|
|
@ -89,13 +86,12 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
|
||||
this.assetPane = assetPane;
|
||||
selectionModel = assetPane.getSelectedAssetModel();
|
||||
// selectedLocaleParameter = new StringParameter("selected-locale");
|
||||
|
||||
initComponents();
|
||||
}
|
||||
|
||||
private void initComponents() {
|
||||
|
||||
|
||||
showLocalePanel = new BoxPanel(BoxPanel.HORIZONTAL);
|
||||
final Label showLocaleLabel = new Label(new PrintListener() {
|
||||
|
||||
|
|
@ -106,11 +102,11 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
final Label target = (Label) event.getTarget();
|
||||
if (selectedAsset.isPresent()) {
|
||||
target.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.assest.show_locale",
|
||||
"cms.ui.asset.show_locale",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
} else {
|
||||
target.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.assest.initial_locale",
|
||||
"cms.ui.asset.initial_locale",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
}
|
||||
}
|
||||
|
|
@ -183,7 +179,7 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
|
||||
};
|
||||
final Label addLocaleLabel = new Label(
|
||||
new GlobalizedMessage("cms.ui.assest.add_locale",
|
||||
new GlobalizedMessage("cms.ui.asset.add_locale",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
addLocaleSelect = new SingleSelect("add-locale-select");
|
||||
try {
|
||||
|
|
@ -248,15 +244,6 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
//Nothing here
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void register(final Page page) {
|
||||
// super.register(page);
|
||||
//
|
||||
// page.addComponentStateParam(this, selectedLocaleParameter);
|
||||
//
|
||||
// page.setVisibleDefault(showLocalePanel, true);
|
||||
// page.setVisibleDefault(addLocalePanel, true);
|
||||
// }
|
||||
protected String getTitle(final PageState state) {
|
||||
return (String) title.getValue(state);
|
||||
}
|
||||
|
|
@ -287,8 +274,6 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
final Optional<Asset> selectedAsset = getSelectedAsset(state);
|
||||
|
||||
if (selectedAsset.isPresent()) {
|
||||
// showLocalePanel.setVisible(state, true);
|
||||
// addLocalePanel.setVisible(state, true);
|
||||
|
||||
showLocaleSelect.setValue(state,
|
||||
KernelConfig
|
||||
|
|
@ -307,8 +292,6 @@ public abstract class AssetForm extends Form implements FormInitListener,
|
|||
.getConfig()
|
||||
.getDefaultLocale()
|
||||
.toString());
|
||||
// showLocalePanel.setVisible(state, false);
|
||||
// addLocalePanel.setVisible(state, false);
|
||||
}
|
||||
|
||||
initForm(state, selectedAsset);
|
||||
|
|
|
|||
|
|
@ -124,11 +124,11 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
private final FolderRequestLocal folderRequestLocal;
|
||||
private final SingleSelectionModel<Long> selectedAssetModel;
|
||||
private final ArrayParameter sourcesParameter = new ArrayParameter(
|
||||
new StringParameter(SOURCES_PARAM));
|
||||
new StringParameter(SOURCES_PARAM));
|
||||
private final StringParameter actionParameter = new StringParameter(
|
||||
ACTION_PARAM);
|
||||
ACTION_PARAM);
|
||||
private final StringParameter selectedAssetTypeParam = new StringParameter(
|
||||
"selected_asset_type");
|
||||
"selected_asset_type");
|
||||
|
||||
private AssetFolderBrowser folderBrowser;
|
||||
private Form browserForm;
|
||||
|
|
@ -150,8 +150,8 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
@Override
|
||||
protected Folder getRootFolder(final PageState state) {
|
||||
final ContentSection section = CMS
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
return section.getRootAssetsFolder();
|
||||
}
|
||||
|
||||
|
|
@ -162,8 +162,8 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
@Override
|
||||
protected Long getRootFolderID(final PageState state) {
|
||||
final ContentSection section = CMS
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
return section.getRootAssetsFolder().getObjectId();
|
||||
}
|
||||
|
||||
|
|
@ -171,14 +171,14 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
folderRequestLocal = new FolderRequestLocal(folderSelectionModel);
|
||||
|
||||
selectedAssetModel = new ParameterSingleSelectionModel<>(
|
||||
new LongParameter("selected-asset"));
|
||||
new LongParameter("selected-asset"));
|
||||
|
||||
final SegmentedPanel left = new SegmentedPanel();
|
||||
setLeft(left);
|
||||
|
||||
final Label heading = new Label(
|
||||
new GlobalizedMessage("cms.ui.folder_browser",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
new GlobalizedMessage("cms.ui.folder_browser",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
left.addSegment(heading, tree);
|
||||
|
||||
// final Text placeholder = new Text("Placeholder");
|
||||
|
|
@ -196,15 +196,15 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
browserForm.setMethod(Form.GET);
|
||||
folderBrowser = new AssetFolderBrowser(this);
|
||||
final Paginator paginator = new Paginator(
|
||||
new AssetFolderBrowserPaginationModelBuilder(folderBrowser),
|
||||
CMSConfig.getConfig().getFolderBrowseListSize());
|
||||
new AssetFolderBrowserPaginationModelBuilder(folderBrowser),
|
||||
CMSConfig.getConfig().getFolderBrowseListSize());
|
||||
folderBrowser.setPaginator(paginator);
|
||||
|
||||
final CheckboxGroup checkboxGroup = new CheckboxGroup(sourcesParameter);
|
||||
browserForm.add(checkboxGroup);
|
||||
final TableColumn checkboxCol = new TableColumn();
|
||||
checkboxCol.setHeaderValue(
|
||||
new GlobalizedMessage("empty_text", CmsConstants.CMS_BUNDLE));
|
||||
new GlobalizedMessage("empty_text", CmsConstants.CMS_BUNDLE));
|
||||
checkboxCol.setCellRenderer(new TableCellRenderer() {
|
||||
|
||||
@Override
|
||||
|
|
@ -229,31 +229,31 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
browserForm.add(folderBrowser);
|
||||
final SimpleContainer actionFormContainer = new SimpleContainer();
|
||||
actionFormContainer.add(new Label(
|
||||
new GlobalizedMessage(
|
||||
"cms.ui.folder.edit_selection",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE)));
|
||||
new GlobalizedMessage(
|
||||
"cms.ui.folder.edit_selection",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE)));
|
||||
actionSelect = new SingleSelect(actionParameter);
|
||||
actionSelect.addOption(
|
||||
new Option(COPY,
|
||||
new Label(new GlobalizedMessage(
|
||||
"cms.ui.folder.copy.action",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE))));
|
||||
new Option(COPY,
|
||||
new Label(new GlobalizedMessage(
|
||||
"cms.ui.folder.copy.action",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE))));
|
||||
actionSelect.addOption(
|
||||
new Option(MOVE,
|
||||
new Label(new GlobalizedMessage(
|
||||
"cms.ui.folder.move.action",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE))));
|
||||
new Option(MOVE,
|
||||
new Label(new GlobalizedMessage(
|
||||
"cms.ui.folder.move.action",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE))));
|
||||
actionFormContainer.add(actionSelect);
|
||||
actionSubmit = new Submit(
|
||||
"Go",
|
||||
new GlobalizedMessage("cms.ui.folder.go",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
"Go",
|
||||
new GlobalizedMessage("cms.ui.folder.go",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
actionFormContainer.add(actionSubmit);
|
||||
browserForm.addProcessListener(new FormProcessListener() {
|
||||
|
||||
@Override
|
||||
public void process(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
|
||||
|
|
@ -269,7 +269,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
@Override
|
||||
public void process(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
|
||||
|
|
@ -290,12 +290,12 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
});
|
||||
targetSelector.addValidationListener(
|
||||
new TargetSelectorValidationListener());
|
||||
new TargetSelectorValidationListener());
|
||||
targetSelector.addSubmissionListener(new FormSubmissionListener() {
|
||||
|
||||
@Override
|
||||
public void submitted(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
|
||||
|
|
@ -303,8 +303,8 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
reset(state);
|
||||
browseMode(state);
|
||||
throw new FormProcessException(new GlobalizedMessage(
|
||||
"cms.ui.folder.cancelled",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
"cms.ui.folder.cancelled",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -326,13 +326,13 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
final Label target = (Label) event.getTarget();
|
||||
|
||||
final long selectedId = Long.parseLong(selectionModel
|
||||
.getSelectedKey(state).toString());
|
||||
.getSelectedKey(state).toString());
|
||||
final long currentFolderId = folderSelectionModel
|
||||
.getSelectedObject(state).getObjectId();
|
||||
.getSelectedObject(state).getObjectId();
|
||||
target.setLabel(String.format(
|
||||
"selectedId = %d; currentFolderId = %d",
|
||||
selectedId,
|
||||
currentFolderId));
|
||||
"selectedId = %d; currentFolderId = %d",
|
||||
selectedId,
|
||||
currentFolderId));
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -345,19 +345,19 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
actionsSegment.add(actions);
|
||||
|
||||
final FolderCreateForm folderCreateForm = new FolderCreateForm(
|
||||
"fcreat", folderSelectionModel);
|
||||
"fcreat", folderSelectionModel);
|
||||
folderCreateForm.addSubmissionListener(new FormSubmissionListener() {
|
||||
|
||||
@Override
|
||||
public void submitted(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
if (event.getSource() == folderCreateForm
|
||||
&& folderCreateForm.isCancelled(state)) {
|
||||
&& folderCreateForm.isCancelled(state)) {
|
||||
browseMode(state);
|
||||
throw new FormProcessException(new GlobalizedMessage(
|
||||
"cms.ui.cancelled", CmsConstants.CMS_BUNDLE));
|
||||
"cms.ui.cancelled", CmsConstants.CMS_BUNDLE));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -367,7 +367,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
@Override
|
||||
public void process(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
final Object source = event.getSource();
|
||||
|
|
@ -378,24 +378,24 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
});
|
||||
newFolderSegment = panel.addSegment(
|
||||
new Label(new GlobalizedMessage("cms.ui.new_folder",
|
||||
CmsConstants.CMS_BUNDLE)),
|
||||
folderCreateForm);
|
||||
new Label(new GlobalizedMessage("cms.ui.new_folder",
|
||||
CmsConstants.CMS_BUNDLE)),
|
||||
folderCreateForm);
|
||||
|
||||
final FolderEditorForm folderEditorForm = new FolderEditorForm(
|
||||
"fedit", folderSelectionModel);
|
||||
"fedit", folderSelectionModel);
|
||||
folderEditorForm.addSubmissionListener(new FormSubmissionListener() {
|
||||
|
||||
@Override
|
||||
public void submitted(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
if (event.getSource() == folderEditorForm
|
||||
&& folderEditorForm.isCancelled(state)) {
|
||||
&& folderEditorForm.isCancelled(state)) {
|
||||
browseMode(state);
|
||||
throw new FormProcessException(new GlobalizedMessage(
|
||||
"cms.ui.cancelled", CmsConstants.CMS_BUNDLE));
|
||||
"cms.ui.cancelled", CmsConstants.CMS_BUNDLE));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -404,7 +404,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
@Override
|
||||
public void process(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
final Object source = event.getSource();
|
||||
|
|
@ -415,13 +415,13 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
});
|
||||
editFolderSegment = panel.addSegment(
|
||||
new Label(new GlobalizedMessage("cms.ui.edit_folder",
|
||||
CmsConstants.CMS_BUNDLE)),
|
||||
folderEditorForm);
|
||||
new Label(new GlobalizedMessage("cms.ui.edit_folder",
|
||||
CmsConstants.CMS_BUNDLE)),
|
||||
folderEditorForm);
|
||||
|
||||
final ActionLink createFolderAction = new ActionLink(
|
||||
new Label(new GlobalizedMessage("cms.ui.new_folder",
|
||||
CmsConstants.CMS_BUNDLE)));
|
||||
new Label(new GlobalizedMessage("cms.ui.new_folder",
|
||||
CmsConstants.CMS_BUNDLE)));
|
||||
createFolderAction.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
|
|
@ -437,8 +437,8 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
actions.addAction(createFolderAction);
|
||||
|
||||
final ActionLink editFolderAction = new ActionLink(
|
||||
new Label(new GlobalizedMessage("cms.ui.edit_folder",
|
||||
CmsConstants.CMS_BUNDLE)));
|
||||
new Label(new GlobalizedMessage("cms.ui.edit_folder",
|
||||
CmsConstants.CMS_BUNDLE)));
|
||||
editFolderAction.addActionListener(new ActionListener() {
|
||||
|
||||
@Override
|
||||
|
|
@ -456,9 +456,9 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
final Form newAssetForm = new Form("new-asset-form",
|
||||
new BoxPanel(BoxPanel.HORIZONTAL));
|
||||
newAssetForm.add(new Label(new GlobalizedMessage(
|
||||
"cms.ui.assets.new", CmsConstants.CMS_BUNDLE)));
|
||||
"cms.ui.assets.new", CmsConstants.CMS_BUNDLE)));
|
||||
final SingleSelect newAssetTypeSelect = new SingleSelect(
|
||||
selectedAssetTypeParam);
|
||||
selectedAssetTypeParam);
|
||||
try {
|
||||
newAssetTypeSelect.addPrintListener(new PrintListener() {
|
||||
|
||||
|
|
@ -466,19 +466,19 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
public void prepare(final PrintEvent event) {
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final AssetTypesManager typesManager = cdiUtil
|
||||
.findBean(AssetTypesManager.class);
|
||||
.findBean(AssetTypesManager.class);
|
||||
final SingleSelect target = (SingleSelect) event.getTarget();
|
||||
target.clearOptions();
|
||||
for (final AssetTypeInfo type : typesManager
|
||||
.getAvailableAssetTypes()) {
|
||||
.getAvailableAssetTypes()) {
|
||||
final String labelKey = type.getLabelKey();
|
||||
final String labelBundle = type.getLabelBundle();
|
||||
final ResourceBundle bundle = ResourceBundle
|
||||
.getBundle(labelBundle);
|
||||
.getBundle(labelBundle);
|
||||
final String label = bundle.getString(labelKey);
|
||||
target.addOption(new Option(
|
||||
type.getAssetClass().getName(),
|
||||
new Text(label)));
|
||||
type.getAssetClass().getName(),
|
||||
new Text(label)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -488,12 +488,12 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
}
|
||||
newAssetForm.add(newAssetTypeSelect);
|
||||
newAssetForm.add(new Submit(new GlobalizedMessage(
|
||||
"cms.ui.assets.new.create", CmsConstants.CMS_BUNDLE)));
|
||||
"cms.ui.assets.new.create", CmsConstants.CMS_BUNDLE)));
|
||||
newAssetForm.addProcessListener(new FormProcessListener() {
|
||||
|
||||
@Override
|
||||
public void process(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
editAssetMode(event.getPageState());
|
||||
}
|
||||
|
||||
|
|
@ -502,13 +502,14 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
actionsSegment.add(newAssetForm);
|
||||
|
||||
final MetaForm editAssetForm = new MetaForm("editAsset") {
|
||||
|
||||
@Override
|
||||
public Form buildForm(final PageState state) {
|
||||
|
||||
final boolean newAsset;
|
||||
|
||||
final Long selectedAssetId = selectedAssetModel
|
||||
.getSelectedKey(state);
|
||||
.getSelectedKey(state);
|
||||
newAsset = selectedAssetId == null;
|
||||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
|
|
@ -516,64 +517,82 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
final String selectedAssetType;
|
||||
if (newAsset) {
|
||||
selectedAssetType = (String) newAssetTypeSelect
|
||||
.getValue(state);
|
||||
.getValue(state);
|
||||
} else {
|
||||
final AssetRepository assetRepo = cdiUtil
|
||||
.findBean(AssetRepository.class);
|
||||
.findBean(AssetRepository.class);
|
||||
final Asset asset = assetRepo.findById(selectedAssetModel
|
||||
.getSelectedKey(state))
|
||||
.orElseThrow(() -> new IllegalArgumentException(
|
||||
String.format("No asset with ID %d in the "
|
||||
+ "database.",
|
||||
selectedAssetModel
|
||||
.getSelectedKey(state))));
|
||||
.getSelectedKey(state))
|
||||
.orElseThrow(() -> new IllegalArgumentException(
|
||||
String.format("No asset with ID %d in the "
|
||||
+ "database.",
|
||||
selectedAssetModel
|
||||
.getSelectedKey(state))));
|
||||
selectedAssetType = asset.getClass().getName();
|
||||
}
|
||||
|
||||
final AssetTypesManager typesManager = cdiUtil
|
||||
.findBean(AssetTypesManager.class);
|
||||
.findBean(AssetTypesManager.class);
|
||||
final AssetTypeInfo typeInfo = typesManager
|
||||
.getAssetTypeInfo(selectedAssetType);
|
||||
.getAssetTypeInfo(selectedAssetType);
|
||||
final Class<? extends AssetForm> assetForm = typeInfo
|
||||
.getAssetForm();
|
||||
.getAssetForm();
|
||||
try {
|
||||
return assetForm
|
||||
.getConstructor(AssetPane.class)
|
||||
.newInstance(AssetPane.this);
|
||||
.getConstructor(AssetPane.class)
|
||||
.newInstance(AssetPane.this);
|
||||
} catch (NoSuchMethodException
|
||||
| SecurityException
|
||||
| InstantiationException
|
||||
| IllegalAccessException
|
||||
| InvocationTargetException ex) {
|
||||
| SecurityException
|
||||
| InstantiationException
|
||||
| IllegalAccessException
|
||||
| InvocationTargetException ex) {
|
||||
throw new UnexpectedErrorException(String.format(
|
||||
"Failed to create form '%s' for editing assets "
|
||||
+ "of type '%s'.",
|
||||
assetForm.getName(),
|
||||
selectedAssetType));
|
||||
"Failed to create form '%s' for editing assets "
|
||||
+ "of type '%s'.",
|
||||
assetForm.getName(),
|
||||
selectedAssetType));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
editAssetSegment = panel.addSegment();
|
||||
editAssetSegment.addHeader(
|
||||
new Label(new PrintListener() {
|
||||
@Override
|
||||
public void prepare(final PrintEvent event) {
|
||||
new Label(new PrintListener() {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
final Label target = (Label) event.getTarget();
|
||||
@Override
|
||||
public void prepare(final PrintEvent event) {
|
||||
|
||||
if (selectedAssetModel.isSelected(state)) {
|
||||
target.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.admin.assets.edit",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
} else {
|
||||
target.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.admin.assets.create",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
}
|
||||
final PageState state = event.getPageState();
|
||||
final Label target = (Label) event.getTarget();
|
||||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final AssetTypesManager typesManager = cdiUtil
|
||||
.findBean(AssetTypesManager.class);
|
||||
|
||||
if (selectedAssetModel.isSelected(state)) {
|
||||
target.setLabel(
|
||||
new GlobalizedMessage(
|
||||
"cms.ui.admin.assets.edit",
|
||||
CmsConstants.CMS_BUNDLE));
|
||||
} else {
|
||||
final String assetType = (String) newAssetTypeSelect
|
||||
.getValue(state);
|
||||
final AssetTypeInfo typeInfo = typesManager
|
||||
.getAssetTypeInfo(assetType);
|
||||
final ResourceBundle bundle = ResourceBundle.getBundle(
|
||||
typeInfo.getLabelBundle());
|
||||
final String typeLabel = bundle
|
||||
.getString(typeInfo.getLabelKey());
|
||||
|
||||
target.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.admin.assets.create",
|
||||
CmsConstants.CMS_BUNDLE,
|
||||
new Object[]{typeLabel}));
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
}));
|
||||
editAssetSegment.add(editAssetForm);
|
||||
|
||||
return panel;
|
||||
|
|
@ -710,7 +729,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final AssetFolderBrowserController controller = cdiUtil.findBean(
|
||||
AssetFolderBrowserController.class);
|
||||
AssetFolderBrowserController.class);
|
||||
|
||||
controller.moveObjects(target, objectIds);
|
||||
}
|
||||
|
|
@ -719,7 +738,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final AssetFolderBrowserController controller = cdiUtil.findBean(
|
||||
AssetFolderBrowserController.class);
|
||||
AssetFolderBrowserController.class);
|
||||
|
||||
controller.copyObjects(target, objectIds);
|
||||
}
|
||||
|
|
@ -734,14 +753,14 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
if (!selectionModel.isSelected(state)) {
|
||||
final String folder = state
|
||||
.getRequest()
|
||||
.getParameter(SET_FOLDER);
|
||||
.getRequest()
|
||||
.getParameter(SET_FOLDER);
|
||||
|
||||
if (folder == null) {
|
||||
final Category root = CMS
|
||||
.getContext()
|
||||
.getContentSection()
|
||||
.getRootAssetsFolder();
|
||||
.getContext()
|
||||
.getContentSection()
|
||||
.getRootAssetsFolder();
|
||||
final Long folderId = root.getObjectId();
|
||||
|
||||
selectionModel.setSelectedKey(state, folderId);
|
||||
|
|
@ -761,18 +780,18 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
final PageState state = event.getPageState();
|
||||
|
||||
final Category root = CMS
|
||||
.getContext()
|
||||
.getContentSection()
|
||||
.getRootAssetsFolder();
|
||||
.getContext()
|
||||
.getContentSection()
|
||||
.getRootAssetsFolder();
|
||||
|
||||
if (!root.equals(folderRequestLocal.getFolder(state))) {
|
||||
// Expand the ancestor nodes of the currently
|
||||
// selected node.
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final FolderTreeModelController controller = cdiUtil.findBean(
|
||||
FolderTreeModelController.class);
|
||||
FolderTreeModelController.class);
|
||||
final List<Long> ancestorIds = controller.findAncestorIds(
|
||||
folderRequestLocal.getFolder(state));
|
||||
folderRequestLocal.getFolder(state));
|
||||
ancestorIds.forEach(id -> tree.expand(id.toString(), state));
|
||||
|
||||
}
|
||||
|
|
@ -794,8 +813,8 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
@Override
|
||||
protected Long getRootFolderID(final PageState state) {
|
||||
final ContentSection section = CMS
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
return section.getRootAssetsFolder().getObjectId();
|
||||
}
|
||||
|
||||
|
|
@ -813,37 +832,37 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
final Label label = (Label) event.getTarget();
|
||||
final int numberOfItems = getSources(state).length;
|
||||
final Category folder = (Category) folderSelectionModel
|
||||
.getSelectedObject(state);
|
||||
.getSelectedObject(state);
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final CategoryManager categoryManager = cdiUtil
|
||||
.findBean(CategoryManager.class);
|
||||
.findBean(CategoryManager.class);
|
||||
|
||||
final String targetFolderPath;
|
||||
if (targetFolderModel.getSelectedObject(state) == null) {
|
||||
targetFolderPath = "";
|
||||
} else {
|
||||
targetFolderPath = categoryManager.getCategoryPath(
|
||||
targetFolderModel.getSelectedObject(state));
|
||||
targetFolderModel.getSelectedObject(state));
|
||||
}
|
||||
|
||||
if (isMove(state)) {
|
||||
label.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.folder.move",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE,
|
||||
new Object[]{
|
||||
numberOfItems,
|
||||
categoryManager.getCategoryPath(folder),
|
||||
targetFolderPath
|
||||
}));
|
||||
"cms.ui.folder.move",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE,
|
||||
new Object[]{
|
||||
numberOfItems,
|
||||
categoryManager.getCategoryPath(folder),
|
||||
targetFolderPath
|
||||
}));
|
||||
} else if (isCopy(state)) {
|
||||
label.setLabel(new GlobalizedMessage(
|
||||
"cms.ui.folder.copy",
|
||||
CMS_BUNDLE,
|
||||
new Object[]{
|
||||
numberOfItems,
|
||||
categoryManager.getCategoryPath(folder),
|
||||
targetFolderPath
|
||||
}));
|
||||
"cms.ui.folder.copy",
|
||||
CMS_BUNDLE,
|
||||
new Object[]{
|
||||
numberOfItems,
|
||||
categoryManager.getCategoryPath(folder),
|
||||
targetFolderPath
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -872,18 +891,18 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
if (folder != null) {
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final FolderManager folderManager = cdiUtil.findBean(
|
||||
FolderManager.class);
|
||||
FolderManager.class);
|
||||
if (!folderManager.getParentFolder(folder).isPresent()) {
|
||||
folderTree.expand(Long.toString(folder.getObjectId()),
|
||||
state);
|
||||
} else {
|
||||
final List<Folder> parents = folderManager
|
||||
.getParentFolders(folder);
|
||||
.getParentFolders(folder);
|
||||
parents
|
||||
.stream()
|
||||
.map(parent -> Long.toString(parent.getObjectId()))
|
||||
.forEach(folderId -> folderTree.expand(folderId,
|
||||
state));
|
||||
.stream()
|
||||
.map(parent -> Long.toString(parent.getObjectId()))
|
||||
.forEach(folderId -> folderTree.expand(folderId,
|
||||
state));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -908,7 +927,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
private class FolderTreeCellRenderer implements TreeCellRenderer {
|
||||
|
||||
private final RequestLocal invalidFoldersRequestLocal
|
||||
= new RequestLocal();
|
||||
= new RequestLocal();
|
||||
|
||||
/**
|
||||
* Render the folders appropriately. The selected folder is a bold
|
||||
|
|
@ -932,18 +951,18 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
if (invalidFoldersRequestLocal.get(state) == null) {
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final AssetFolderBrowserController controller = cdiUtil
|
||||
.findBean(AssetFolderBrowserController.class);
|
||||
.findBean(AssetFolderBrowserController.class);
|
||||
invalidFolders = controller.createInvalidTargetsList(
|
||||
Arrays.asList(getSources(state)));
|
||||
Arrays.asList(getSources(state)));
|
||||
invalidFoldersRequestLocal.set(state, invalidFolders);
|
||||
} else {
|
||||
invalidFolders = (List<String>) invalidFoldersRequestLocal
|
||||
.get(state);
|
||||
.get(state);
|
||||
}
|
||||
final Label label = new Label(value.toString());
|
||||
|
||||
if (invalidFolders.contains(String.format(
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER + "%s", key))) {
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER + "%s", key))) {
|
||||
return label;
|
||||
}
|
||||
|
||||
|
|
@ -959,11 +978,11 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
}
|
||||
|
||||
private class TargetSelectorValidationListener
|
||||
implements FormValidationListener {
|
||||
implements FormValidationListener {
|
||||
|
||||
@Override
|
||||
public void validate(final FormSectionEvent event)
|
||||
throws FormProcessException {
|
||||
throws FormProcessException {
|
||||
|
||||
final PageState state = event.getPageState();
|
||||
|
||||
|
|
@ -975,24 +994,24 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
final FormData data = event.getFormData();
|
||||
if (target == null) {
|
||||
data.addError(new GlobalizedMessage(
|
||||
"cms.ui.folder.need_select_target_folder",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
"cms.ui.folder.need_select_target_folder",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
//If the target is null, we can skip the rest of the checks
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.equals(folderSelectionModel.getSelectedObject(state))) {
|
||||
data.addError(new GlobalizedMessage(
|
||||
"cms.ui.folder.not_within_same_folder",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
"cms.ui.folder.not_within_same_folder",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE));
|
||||
}
|
||||
|
||||
// check create item permission
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final PermissionChecker permissionChecker = cdiUtil.findBean(
|
||||
PermissionChecker.class);
|
||||
PermissionChecker.class);
|
||||
if (!permissionChecker.isPermitted(
|
||||
ItemPrivileges.CREATE_NEW, target)) {
|
||||
ItemPrivileges.CREATE_NEW, target)) {
|
||||
data.addError("cms.ui.folder.no_permission_for_item",
|
||||
CmsConstants.CMS_FOLDER_BUNDLE);
|
||||
}
|
||||
|
|
@ -1013,34 +1032,34 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||
final FolderRepository folderRepo = cdiUtil
|
||||
.findBean(FolderRepository.class);
|
||||
.findBean(FolderRepository.class);
|
||||
final AssetRepository assetRepo = cdiUtil
|
||||
.findBean(AssetRepository.class);
|
||||
.findBean(AssetRepository.class);
|
||||
final AssetManager assetManager = cdiUtil
|
||||
.findBean(AssetManager.class);
|
||||
.findBean(AssetManager.class);
|
||||
final AssetFolderBrowserController controller = cdiUtil
|
||||
.findBean(AssetFolderBrowserController.class);
|
||||
.findBean(AssetFolderBrowserController.class);
|
||||
final FolderManager folderManager = cdiUtil
|
||||
.findBean(FolderManager.class);
|
||||
.findBean(FolderManager.class);
|
||||
final PermissionChecker permissionChecker = cdiUtil.findBean(
|
||||
PermissionChecker.class);
|
||||
PermissionChecker.class);
|
||||
|
||||
final CcmObject object;
|
||||
final String name;
|
||||
if (objectId.startsWith(FOLDER_BROWSER_KEY_PREFIX_FOLDER)) {
|
||||
|
||||
final long folderId = Long.parseLong(objectId.substring(
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER.length()));
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER.length()));
|
||||
final Folder folder = folderRepo.findById(folderId).orElseThrow(
|
||||
() -> new IllegalArgumentException(String.format(
|
||||
"No folder with id %d in database.", folderId)));
|
||||
() -> new IllegalArgumentException(String.format(
|
||||
"No folder with id %d in database.", folderId)));
|
||||
|
||||
name = folder.getName();
|
||||
|
||||
//Check if folder or subfolder contains in use assets
|
||||
if (isMove(state)) {
|
||||
final FolderManager.FolderIsMovable movable = folderManager
|
||||
.folderIsMovable(folder, target);
|
||||
.folderIsMovable(folder, target);
|
||||
switch (movable) {
|
||||
case DIFFERENT_SECTIONS:
|
||||
addErrorMessage(data,
|
||||
|
|
@ -1072,23 +1091,23 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
break;
|
||||
default:
|
||||
throw new UnexpectedErrorException(String.format(
|
||||
"Unknown state '%s' for '%s'.",
|
||||
movable,
|
||||
FolderManager.FolderIsMovable.class.
|
||||
getName()));
|
||||
"Unknown state '%s' for '%s'.",
|
||||
movable,
|
||||
FolderManager.FolderIsMovable.class.
|
||||
getName()));
|
||||
}
|
||||
}
|
||||
|
||||
object = folder;
|
||||
} else if (objectId.startsWith(FOLDER_BROWSER_KEY_PREFIX_ASSET)) {
|
||||
final long assetId = Long.parseLong(objectId.substring(
|
||||
FOLDER_BROWSER_KEY_PREFIX_ASSET.length()));
|
||||
FOLDER_BROWSER_KEY_PREFIX_ASSET.length()));
|
||||
final Asset asset = assetRepo
|
||||
.findById(assetId)
|
||||
.orElseThrow(() -> new IllegalArgumentException(
|
||||
String.format(
|
||||
"No asset with id %d in the database.",
|
||||
assetId)));
|
||||
.findById(assetId)
|
||||
.orElseThrow(() -> new IllegalArgumentException(
|
||||
String.format(
|
||||
"No asset with id %d in the database.",
|
||||
assetId)));
|
||||
|
||||
name = asset.getDisplayName();
|
||||
|
||||
|
|
@ -1099,11 +1118,11 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
object = asset;
|
||||
} else {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"Provided objectId '%s' does not start with '%s' "
|
||||
+ "or '%s'.",
|
||||
objectId,
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER,
|
||||
FOLDER_BROWSER_KEY_PREFIX_ASSET));
|
||||
"Provided objectId '%s' does not start with '%s' "
|
||||
+ "or '%s'.",
|
||||
objectId,
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER,
|
||||
FOLDER_BROWSER_KEY_PREFIX_ASSET));
|
||||
}
|
||||
|
||||
final long count = controller.countObjects(target, name);
|
||||
|
|
@ -1115,7 +1134,7 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
|
||||
if (!(permissionChecker.isPermitted(
|
||||
ItemPrivileges.DELETE, object))
|
||||
&& isMove(state)) {
|
||||
&& isMove(state)) {
|
||||
addErrorMessage(data,
|
||||
"cms.ui.folder.no_permission_for_item",
|
||||
object.getDisplayName());
|
||||
|
|
@ -1142,8 +1161,8 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
@Override
|
||||
protected Folder getRootFolder(final PageState state) {
|
||||
final ContentSection section = CMS
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
.getContext()
|
||||
.getContentSection();
|
||||
|
||||
return section.getRootAssetsFolder();
|
||||
}
|
||||
|
|
@ -1157,9 +1176,9 @@ public class AssetPane extends LayoutPanel implements Resettable {
|
|||
if (key instanceof String) {
|
||||
final Long keyAsLong;
|
||||
if (((String) key).startsWith(
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER)) {
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER)) {
|
||||
keyAsLong = Long.parseLong(((String) key).substring(
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER.length()));
|
||||
FOLDER_BROWSER_KEY_PREFIX_FOLDER.length()));
|
||||
} else {
|
||||
keyAsLong = Long.parseLong((String) key);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,18 +22,14 @@ import com.arsdigita.bebop.FormProcessException;
|
|||
import com.arsdigita.bebop.Label;
|
||||
import com.arsdigita.bebop.PageState;
|
||||
import com.arsdigita.bebop.form.TextArea;
|
||||
import com.arsdigita.bebop.form.TextField;
|
||||
import com.arsdigita.cms.ui.assets.AssetForm;
|
||||
import com.arsdigita.cms.ui.assets.AssetPane;
|
||||
import com.arsdigita.globalization.GlobalizedMessage;
|
||||
import com.arsdigita.kernel.KernelConfig;
|
||||
|
||||
import org.librecms.CmsConstants;
|
||||
import org.librecms.assets.Bookmark;
|
||||
import org.librecms.assets.LegalMetadata;
|
||||
import org.librecms.contentsection.Asset;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
|
|
|
|||
|
|
@ -249,6 +249,15 @@ cms.ui.folder.no_assets=No assets
|
|||
cms.ui.assets.new=Create new asset
|
||||
cms.ui.assets.new.create=Create asset
|
||||
cms.ui.asset.title=Title
|
||||
cms.ui.admin.assets.create=Create new asset
|
||||
cms.ui.admin.assets.create=Create new asset of type '{0}'
|
||||
cms.ui.assets.bookmark.description=Description
|
||||
cms.ui.assets.bookmark.url=URL
|
||||
cms.ui.assets.bookmark.url.malformed=The provided URL is malformed.
|
||||
cms.ui.assets.legalmetadata.rightsholder=Rights holder
|
||||
cms.ui.assets.legalmetadata.rights=Rights
|
||||
cms.ui.assets.legalmetadata.publisher=Publisher
|
||||
cms.ui.assets.legalmetadata.creator=Creator
|
||||
cms.ui.asset.show_locale=Show data for language
|
||||
cms.ui.asset.initial_locale=Language
|
||||
cms.ui.asset.add_locale=Add data for language
|
||||
cms.ui.admin.assets.edit=Edit asset
|
||||
|
|
|
|||
|
|
@ -248,6 +248,15 @@ cms.ui.folder.no_assets=Keine Medien oder Datens\u00e4tze vorhanden
|
|||
cms.ui.assets.new=Neues Asset anlegen
|
||||
cms.ui.assets.new.create=Asset anlegen
|
||||
cms.ui.asset.title=Titel
|
||||
cms.ui.admin.assets.create=Neues Asset anlegen
|
||||
cms.ui.admin.assets.create=Neues Asset vom Typ '{0}' anlegen
|
||||
cms.ui.assets.bookmark.description=Beschreibung
|
||||
cms.ui.assets.bookmark.url=URL
|
||||
cms.ui.assets.bookmark.url.malformed=Die angegebene URL ist nicht wohlgeformt.
|
||||
cms.ui.assets.legalmetadata.rightsholder=Rechteinhaber
|
||||
cms.ui.assets.legalmetadata.rights=Rechte
|
||||
cms.ui.assets.legalmetadata.publisher=Publisher
|
||||
cms.ui.assets.legalmetadata.creator=K\u00fcnstler
|
||||
cms.ui.asset.show_locale=Zeige Daten f\u00fcr Sprache
|
||||
cms.ui.asset.initial_locale=Sprache
|
||||
cms.ui.asset.add_locale=Daten f\u00fcr folgende Sprache hinzuf\u00fcgen
|
||||
cms.ui.admin.assets.edit=Asset bearbeiten
|
||||
|
|
|
|||
|
|
@ -207,6 +207,15 @@ cms.ui.folder.no_assets=No assets
|
|||
cms.ui.assets.new=Create new asset
|
||||
cms.ui.assets.new.create=Create asset
|
||||
cms.ui.asset.title=Title
|
||||
cms.ui.admin.assets.create=Create new asset
|
||||
cms.ui.admin.assets.create=Create new asset of type '{0}'
|
||||
cms.ui.assets.bookmark.description=Description
|
||||
cms.ui.assets.bookmark.url=URL
|
||||
cms.ui.assets.bookmark.url.malformed=The provided URL is malformed.
|
||||
cms.ui.assets.legalmetadata.rightsholder=Right holder
|
||||
cms.ui.assets.legalmetadata.rights=Rights
|
||||
cms.ui.assets.legalmetadata.publisher=Publisher
|
||||
cms.ui.assets.legalmetadata.creator=Creator
|
||||
cms.ui.asset.show_locale=Show data for language
|
||||
cms.ui.asset.initial_locale=Language
|
||||
cms.ui.asset.add_locale=Add data for language
|
||||
cms.ui.admin.assets.edit=Edit asset
|
||||
|
|
|
|||
Loading…
Reference in New Issue