Class CmsMultiDialog
- Direct Known Subclasses:
CmsAvailability
,CmsCopy
,CmsDelete
,CmsLock
,CmsMove
,CmsPublishProject
,CmsReport
,CmsTouch
,CmsUndelete
,CmsUndoChanges
Extend this class for workplace dialogs that can perform operations on more than one VFS resource like copy, move, touch etc.
Provides methods to determine if a multi-resource operation has to be done and helper methods, e.g. to get the list of resources to work with.
- Since:
- 6.2.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The delimiter that is used in the resource list request parameter.Fields inherited from class org.opencms.workplace.CmsDialog
ACTION_CANCEL, ACTION_CLOSEPOPUP, ACTION_CLOSEPOPUP_SAVE, ACTION_CONFIRMED, ACTION_CONTINUE, ACTION_DEFAULT, ACTION_LOCKS_CONFIRMED, ACTION_OK, ACTION_REPORT_BEGIN, ACTION_REPORT_END, ACTION_REPORT_UPDATE, ACTION_SET, ACTION_WAIT, ATTRIBUTE_THROWABLE, BUTTON_ADVANCED, BUTTON_BACK, BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_CONTINUE, BUTTON_DETAILS, BUTTON_DISCARD, BUTTON_EDIT, BUTTON_OK, BUTTON_OK_NO_SUBMIT, BUTTON_SET, DIALOG_BACK, DIALOG_CANCEL, DIALOG_CONFIRMED, DIALOG_CONTINUE, DIALOG_INITIAL, DIALOG_LOCKS_CONFIRMED, DIALOG_OK, DIALOG_SET, DIALOG_WAIT, PARAM_ACTION, PARAM_ACTION_VALUE_FOR_CHANGED_INDEX, PARAM_CLOSELINK, PARAM_DIALOGTYPE, PARAM_ERRORSTACK, PARAM_FILE, PARAM_FRAMENAME, PARAM_ISPOPUP, PARAM_LOCK, PARAM_MESSAGE, PARAM_ORIGINALPARAMS, PARAM_PREACTIONDONE, PARAM_REDIRECT, PARAM_RESOURCE, PARAM_TARGET, PARAM_THREAD, PARAM_THREAD_HASNEXT, PARAM_TITLE, REPORT_BEGIN, REPORT_END, REPORT_UPDATE
Fields inherited from class org.opencms.workplace.tools.CmsToolDialog
PARAM_ADMIN_PROJECT, PARAM_BASE, PARAM_FORCE, PARAM_PATH, PARAM_ROOT, PARAM_STYLE, STYLE_NEW
Fields inherited from class org.opencms.workplace.CmsWorkplace
DEBUG, DEFAULT_DATE_STRING, DEFAULT_LANGUAGE, DEFAULT_LOCALE, DIALOG_PATH_COMMON, FILE_DIALOG_CLOSE, FILE_DIALOG_SCREEN_CONFIRM, FILE_DIALOG_SCREEN_ERROR, FILE_DIALOG_SCREEN_ERRORPAGE, FILE_DIALOG_SCREEN_WAIT, FILE_EXPLORER_FILELIST, FILE_REPORT_OUTPUT, HTML_END, HTML_START, INPUT_DEFAULT, INPUT_NONE, JSP_WORKPLACE_URI, PARAM_DIRECTPUBLISH, PARAM_MODELFILE, PARAM_NEWRESOURCETYPE, PARAM_PUBLISHSIBLINGS, PARAM_RELATEDRESOURCES, PARAM_RESOURCELIST, PARAM_SUBRESOURCES, PARAM_WP_EXPLORER_RESOURCE, PARAM_WP_PROJECT, PARAM_WP_SITE, PARAM_WP_START, PARAM_WP_VIEW, PATH_DIALOGS, PATH_WORKPLACE, REQUEST_ATTRIBUTE_MULTIPART, REQUEST_ATTRIBUTE_RELOADTREE, RES_PATH_FILETYPES, RFS_PATH_RESOURCES, SESSION_WORKPLACE_CLASS, VFS_DIR_DEFAULTBODIES, VFS_DIR_TEMPLATES, VFS_PATH_COMMONS, VFS_PATH_EDITORS, VFS_PATH_GALLERIES, VFS_PATH_LOCALES, VFS_PATH_MODELDIALOG, VFS_PATH_MODULES, VFS_PATH_NEWRESOURCEDIALOG, VFS_PATH_RESOURCES, VFS_PATH_SITES, VFS_PATH_SYSTEM, VFS_PATH_VIEWS, VFS_PATH_WORKPLACE, VIEW_ADMIN, VIEW_DIRECT_EDIT, VIEW_EXPLORER, VIEW_GALLERY, VIEW_LIST, VIEW_WORKPLACE
-
Constructor Summary
ConstructorDescriptionCmsMultiDialog
(javax.servlet.jsp.PageContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) Public constructor with JSP variables.CmsMultiDialog
(org.opencms.jsp.CmsJspActionElement jsp) Public constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMultiOperationException
(org.opencms.main.CmsException exc) Adds an exception thrown during a multi resource operation to the multi exception.Builds the HTML for the resource list that is affected by the multi operation.void
checkMultiOperationException
(org.opencms.i18n.I_CmsMessageBundle messages, String key) Checks if an exception occurred during a multi resource operation, and throws a new exception if necessary.protected boolean
checkResourcePermissions
(org.opencms.security.CmsPermissionSet required, boolean neededForFolder) Checks if the permissions of the current user on the single resource to use in the dialog are sufficient.Returns the value of the resource list parameter, or null if the parameter is not provided.Returns the resources that are defined for the dialog operation.Returns the value of the resourcelist parameter in form of a String separated withDELIMITER_RESOURCES
, or the value of the resource parameter if the first parameter is not provided (no multiple choice has been done.boolean
Returns true if the dialog operation has to be performed on multiple resources.protected boolean
Checks if the resource operation is an operation on at least one folder.protected abstract boolean
Performs the dialog operation for the selected resources.void
setDialogTitle
(String singleKey, String multiKey) Sets the title of the dialog depending on the operation type, multiple or single operation.void
setParamResource
(String value) void
setParamResourcelist
(String paramResourcelist) Sets the value of the resourcelist parameter.Methods inherited from class org.opencms.workplace.CmsDialog
actionCloseDialog, appendDelimiter, buildAjaxResultContainer, buildAjaxWaitMessage, buildLockAdditionalOptions, buildLockConfirmationMessageJS, checkResourcePermissions, computeCurrentFolder, dialog, dialogBlock, dialogBlockEnd, dialogBlockStart, dialogButtonRow, dialogButtonRowEnd, dialogButtonRowStart, dialogButtons, dialogButtonsClose, dialogButtonsClose, dialogButtonsCloseDetails, dialogButtonsHtml, dialogButtonsOk, dialogButtonsOk, dialogButtonsOkCancel, dialogButtonsOkCancel, dialogButtonsOkCancelAdvanced, dialogButtonsSetOkCancel, dialogContent, dialogContentEnd, dialogContentStart, dialogEnd, dialogHead, dialogHorizontalSpacer, dialogLockButtons, dialogRow, dialogRowEnd, dialogRowStart, dialogScriptSubmit, dialogSeparator, dialogSpacer, dialogStart, dialogStart, dialogSubheadline, dialogToggleStart, dialogWhiteBox, dialogWhiteBoxEnd, dialogWhiteBoxStart, getAction, getAdministrationBackLink, getCancelAction, getDialogRealUri, getDialogUri, getOnlineHelpUriCustom, getParamAction, getParamCloseLink, getParamDialogtype, getParamFramename, getParamIsPopup, getParamMessage, getParamOriginalParams, getParamPreActionDone, getParamRedirect, getParamResource, getParamTitle, getState, hasCorrectLockstate, hasSiblings, htmlStart, htmlStart, htmlStart, htmlStartStyle, includeErrorpage, initCmsDialog, initWorkplaceRequestValues, isPopup, isPreEditor, openLaunchpad, openWorkplaceLink, pageHtml, pageHtml, setAction, setOnlineHelpUriCustom, setParamAction, setParamCloseLink, setParamDialogtype, setParamFramename, setParamIsPopup, setParamMessage, setParamOriginalParams, setParamPreActionDone, setParamRedirect, setParamTitle
Methods inherited from class org.opencms.workplace.tools.CmsToolDialog
computeUpLevelLink, dialogTitle, getAdminTool, getCurrentToolPath, getParamBase, getParamForce, getParamPath, getParamRoot, getParamStyle, getParentPath, getToolManager, iconsBlockArea, iconsBlockAreaEnd, iconsBlockAreaStart, initAdminTool, pageBody, pageHtmlStyle, setParamBase, setParamForce, setParamPath, setParamRoot, setParamStyle, useNewStyle
Methods inherited from class org.opencms.workplace.CmsWorkplace
addMessages, addMessages, allParamsAsHidden, allParamsAsRequest, allParamValues, bodyEnd, bodyStart, bodyStart, buildSelect, buildSelect, button, button, buttonBar, buttonBar, buttonBarHorizontalLine, buttonBarLabel, buttonBarLabel, buttonBarLine, buttonBarLineSpacer, buttonBarSeparator, buttonBarSpacer, buttonBarStartTab, canEditPermissionsForRoles, checkLock, checkLock, checkRole, decodeParamValue, fillParamValues, fillParamValues, generateCssStyle, generatePageEndExtended, generatePageEndSimple, generatePageStartExtended, generatePageStartSimple, getBroadcastMessageString, getCms, getEncoding, getExplorerFileListFullUri, getFrameSource, getJsp, getLocale, getMacroResolver, getMessages, getMultiPartFileItems, getParameterMap, getResourceUri, getResourceUri, getSession, getSettings, getSkinUri, getStartSiteRoot, getStartSiteRoot, getStaticResourceUri, getStaticResourceUri, getStyleUri, getStyleUri, getStyleUri, getTemporaryFileName, getWorkplaceExplorerLink, getWorkplaceExplorerLink, getWorkplaceSettings, htmlEnd, initMessages, initSettings, initTimeWarp, initUserSettings, initWorkplaceMembers, initWorkplaceMembers, initWorkplaceSettings, isForwarded, isHelpEnabled, isSubElement, isTemporaryFile, key, key, keyDefault, nullToEmpty, paramsAsHidden, paramsAsHidden, paramsAsParameterMap, paramsAsRequest, paramValues, resolveMacros, sendCmsRedirect, sendForward, setForwarded, shortKey, substituteSiteTitle, substituteSiteTitleStatic, switchToCurrentProject, switchToTempProject, updateUserPreferences
-
Field Details
-
DELIMITER_RESOURCES
The delimiter that is used in the resource list request parameter.- See Also:
-
-
Constructor Details
-
CmsMultiDialog
Public constructor.- Parameters:
jsp
- an initialized JSP action element
-
CmsMultiDialog
public CmsMultiDialog(javax.servlet.jsp.PageContext context, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res) Public constructor with JSP variables.- Parameters:
context
- the JSP page contextreq
- the JSP requestres
- the JSP response
-
-
Method Details
-
addMultiOperationException
Adds an exception thrown during a multi resource operation to the multi exception.After iterating the dialog resources, use
checkMultiOperationException(I_CmsMessageBundle, String)
to display the multi exception depending on collected exceptions.- Parameters:
exc
- the exception that was thrown
-
buildLockHeaderBox
- Overrides:
buildLockHeaderBox
in classorg.opencms.workplace.CmsDialog
- Throws:
org.opencms.main.CmsException
- See Also:
-
CmsDialog.buildLockHeaderBox()
-
buildResourceList
Builds the HTML for the resource list that is affected by the multi operation.- Returns:
- the HTML for the resource list that is affected by the multi operation
-
checkMultiOperationException
public void checkMultiOperationException(org.opencms.i18n.I_CmsMessageBundle messages, String key) throws org.opencms.main.CmsException Checks if an exception occurred during a multi resource operation, and throws a new exception if necessary.- Parameters:
messages
- the message bundle to use for the exception message generationkey
- the key for the exception to throw with one parameter- Throws:
org.opencms.main.CmsException
- the exception that is thrown when the multi operation was not successful
-
getParamResourcelist
Returns the value of the resource list parameter, or null if the parameter is not provided.This parameter selects the resources to perform operations on.
- Returns:
- the value of the resource list parameter or null, if the parameter is not provided
-
getResourceList
Returns the resources that are defined for the dialog operation.For single resource operations, the list contains one item: the resource name found in the request parameter value of the "resource" parameter.
- Returns:
- the resources that are defined for the dialog operation
-
getResourceListAsParam
Returns the value of the resourcelist parameter in form of a String separated withDELIMITER_RESOURCES
, or the value of the resource parameter if the first parameter is not provided (no multiple choice has been done.This may be used for jsps as value for the parameter for resources
CmsWorkplace.PARAM_RESOURCELIST
.- Returns:
- the value of the resourcelist parameter or null, if the parameter is not provided
-
isMultiOperation
Returns true if the dialog operation has to be performed on multiple resources.- Returns:
- true if the dialog operation has to be performed on multiple resources, otherwise false
-
setDialogTitle
Sets the title of the dialog depending on the operation type, multiple or single operation.- Parameters:
singleKey
- the key for the single operationmultiKey
- the key for the multiple operation
-
setParamResource
- Overrides:
setParamResource
in classorg.opencms.workplace.CmsDialog
- See Also:
-
CmsDialog.setParamResource(java.lang.String)
-
setParamResourcelist
Sets the value of the resourcelist parameter.- Parameters:
paramResourcelist
- the value of the resourcelist parameter
-
checkResourcePermissions
protected boolean checkResourcePermissions(org.opencms.security.CmsPermissionSet required, boolean neededForFolder) Checks if the permissions of the current user on the single resource to use in the dialog are sufficient.For a multi resource operation, this returns always true, checks only for single resource operations.
- Overrides:
checkResourcePermissions
in classorg.opencms.workplace.CmsDialog
- Parameters:
required
- the required permissions for the dialogneededForFolder
- if true, the permissions are required for the parent folder of the resource (e.g. for editors)- Returns:
- true if the permissions are sufficient, otherwise false
- See Also:
-
CmsDialog.checkResourcePermissions(CmsPermissionSet, boolean)
-
isOperationOnFolder
Checks if the resource operation is an operation on at least one folder.- Returns:
- true if the operation an operation on at least one folder, otherwise false
-
performDialogOperation
Performs the dialog operation for the selected resources.- Returns:
- true, if the operation was successful, otherwise false
- Throws:
org.opencms.main.CmsException
- if operation was not successful
-