Package com.jalios.jcms.caddy
Class AbstractCaddyHandler<T extends AbstractCaddyContext>
- java.lang.Object
-
- com.jalios.jcms.context.JcmsContext
-
- com.jalios.jcms.context.JcmsJspContext
-
- com.jalios.jcms.handler.JcmsFormHandler
-
- com.jalios.jcms.caddy.AbstractCaddyHandler<T>
-
- Type Parameters:
T
- The type of caddy context associated to this handler.
- All Implemented Interfaces:
JcmsConstants
,JaliosConstants
- Direct Known Subclasses:
AbstractMemberCaddyHandler
,CategoryCaddyHandler
,GroupCaddyHandler
,PublicationCaddyHandler
,WorkspaceCaddyHandler
public abstract class AbstractCaddyHandler<T extends AbstractCaddyContext> extends JcmsFormHandler
This form handler is the super class of the formhandler class to process Caddy Manager actions.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
messageOnSuccess
I18N message to display on success instead of the generic message (not the property, the already resolved message)protected boolean
opClearCaddy
protected int
openTab
protected boolean
opPreview
protected boolean
opRemoveCaddy
static int
PREVIOUS_TAB
-
Fields inherited from class com.jalios.jcms.handler.JcmsFormHandler
contextMap, csrfValidationEnabled, editFieldSet, formStep, noRedirect, noSendRedirect, op, opFinish, opNext, opPrevious, popupEdition, redirect, redirectOnClosePopup, workspaceForced
-
Fields inherited from class com.jalios.jcms.context.JcmsJspContext
AJAX_REQUEST_ATTRIBUTES, BODY_HEADER, CSS_FOOTER, CSS_HEADER, cssboMap, cssfoMap, CUSTOM_HEADER, editIcon, HTTPEQUIV_HEADER, httpequivMap, HTTPNAME_HEADER, httpnameMap, initEditIcon, JAVASCRIPT_CODE_SET_ATTRIBUTE, JAVASCRIPT_SET_ATTRIBUTE, jsboSet, jsfoSet, out, pageContext, SHOW_EDIT_ICON, STYLE_HEADER
-
Fields inherited from class com.jalios.jcms.context.JcmsContext
browser, caddy, channel, inFO, initDone, initWorkspace, isAdmin, isAjaxRequest, isDBMember, isDebug, isDebugTemplatePath, isLogged, loggedMember, request, response, userCountry, userLang, userLocale, userZoneId, workspace
-
Fields inherited from interface com.jalios.util.JaliosConstants
CRLF, MILLIS_IN_ONE_DAY, MILLIS_IN_ONE_HOUR, MILLIS_IN_ONE_MINUTE, MILLIS_IN_ONE_MONTH, MILLIS_IN_ONE_SECOND, MILLIS_IN_ONE_WEEK, MILLIS_IN_ONE_YEAR
-
Fields inherited from interface com.jalios.jcms.JcmsConstants
ADATE_SEARCH, ADMIN_NOTES_PROP, ADVANCED_TAB, AJAX_MODE_ATTR, ARCHIVES_DIR, ASCII_WIDTH, CATEGORY_TAB, CDATE_SEARCH, CLASS_PROPERTY, COMMON_ALARM, CONTENT_TAB, COOKIE_MAX_AGE, COUNTRY_SPRITE, CS_TYPOLOGY_ROOT_CAT_VID, CTRL_TOPIC_INTERNAL, CTRL_TOPIC_REF, CTRL_TOPIC_VALUE, CTRL_TOPIC_WRITE, CUSTOM_PROP, DATA_DIRECTORY, DEFAULT_PHOTO_PROP, DOCCHOOSER_HEIGHT, DOCCHOOSER_WIDTH, DOCS_DIR, EDATE_SEARCH, EMAIL_REGEXP, ERROR_MSG, FORBIDDEN_FILE_ACCESS, FORBIDDEN_REDIRECT, FORCE_REDIRECT, GLYPH_ICON_PREFIX, ICON_ARCHIVE, ICON_ICON_PREFIX, ICON_LOCK, ICON_LOCK_STRONG, ICON_PREFIX_PROP, ICON_WARN, ICON_WH_BOOK_CLOSED, ICON_WH_BOOK_OPEN, INFORMATION_MSG, IS_IN_FRONT_OFFICE, JALIOS_JUNIT_PROP, JCMS_CADDY, JCMS_MSG_LIST, JCMS_TOASTR_COLLECTION, JSYNC_DOWNLOAD_DIR, JSYNC_SYNC_ALARM, LANG_SPRITE, LOG_FILE, LOG_TOPIC_SECURITY, LOGGER_PROP, LOGGER_XMLPROP, MBR_PHOTO_DIR, MDATE_SEARCH, MONITOR_XML, OP_CREATE, OP_CREATE_STR, OP_DEEP_COPY, OP_DEEP_COPY_STR, OP_DEEP_DELETE, OP_DEEP_DELETE_STR, OP_DELETE, OP_DELETE_STR, OP_MERGE, OP_MERGE_STR, OP_UPDATE, OP_UPDATE_STR, ORGANIZATION_ROOT_GROUP_PROP, PDATE_SEARCH, PHOTO_DIR, PHOTO_ICON, PHOTO_ICON_HEIGHT, PHOTO_ICON_PROP_PREFIX, PHOTO_ICON_WIDTH, PHOTO_LARGE, PHOTO_LARGE_HEIGHT, PHOTO_LARGE_PROP_PREFIX, PHOTO_LARGE_WIDTH, PHOTO_MINI, PHOTO_MINI_HEIGHT, PHOTO_MINI_PROP_PREFIX, PHOTO_MINI_WIDTH, PHOTO_NORMAL, PHOTO_NORMAL_HEIGHT, PHOTO_NORMAL_PROP_PREFIX, PHOTO_NORMAL_WIDTH, PHOTO_SMALL, PHOTO_SMALL_HEIGHT, PHOTO_SMALL_PROP_PREFIX, PHOTO_SMALL_WIDTH, PHOTO_TINY, PHOTO_TINY_HEIGHT, PHOTO_TINY_PROP_PREFIX, PHOTO_TINY_WIDTH, PRINT_VIEW, PRIVATE_FILE_ACCESS, PUBLIC_FILE_ACCESS, RAW_CONTENT_ICON_PREFIX, READ_RIGHT_TAB, SDATE_SEARCH, SEARCHENGINE_ALARM, SECURITY_LOG_FILE, SESSION_AUTHORIZED_FILENAMES_SET, SPRITE_ICON_PREFIX, STATS_REPORT_DIR, STATUS_PROP, STORE_DIR, STORE_XML, SUCCESS_MSG, SVG_ICON_PREFIX, SVGINLINE_ICON_PREFIX, TEMPLATE_TAB, THUMBNAIL_LARGE_HEIGHT, THUMBNAIL_LARGE_WIDTH, THUMBNAIL_SMALL_HEIGHT, THUMBNAIL_SMALL_WIDTH, TTCARD_MEDIA_HEIGHT, TTCARD_MEDIA_WIDTH, TYPES_ICON_ALT_PROP, TYPES_ICON_SUFFIX_PROP, TYPES_ICON_TITLE_PROP, TYPES_PREFIX_PROP, TYPES_THUMB_SUFFIX_PROP, UDATE_SEARCH, UPDATE_RIGHT_TAB, UPLOAD_DIR, UPLOAD_PERMISSION_COUNT_PROP_PREFIX, UPLOAD_PERMISSION_SIZE_PROP_PREFIX, URL_REGEXP, VID_LOGGED_MEMBER, WARNING_MSG, WEBAPP_PROP, WFEXPRESS_ALARM, WFREMINDER_ALARM, WORKFLOW_TAB, WORKFLOW_XML
-
-
Constructor Summary
Constructors Constructor Description AbstractCaddyHandler()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected T
context()
boolean
getAvailableForceDelete()
EnumerateSettings
getClassificationLevelSettings()
Retrieve an EnumerateSettings suitable to edit classification level in the caddy.abstract java.lang.Class<? extends Data>
getDataClass()
Retrieve the type of data being handled by this handlerprotected boolean
getDefaultForceDelete()
Return weither forceDelete option should be enabled by default.protected abstract java.lang.String
getJsp()
Retrieve the path of the JSP.protected abstract T
getNewCaddyContext(Caddy caddy, Member member)
Retrieve a new instance of CaddyContext.protected abstract AbstractCaddyProcess<T>
getNewCaddyProcess()
Retrieve a new instance of CaddyProcess to start action when required.int
getOpenTab()
java.lang.String
getReplacePattern()
java.lang.String
getSearchPattern()
protected void
init()
Method to implement if you need to initialize your handler from parameter received, prior to all security validation.boolean
isApplyingInEmptyFields()
boolean
isDeletingDataExtension()
boolean
isIgnoringIntegrityCheck()
boolean
isPreviewing()
boolean
isSearchAndReplaceLangSelected(java.lang.String lang)
boolean
isTabForced()
boolean
isUsingRegExp()
protected boolean
performClearCaddy()
protected boolean
performDelete()
protected boolean
performRemoveCaddy()
protected boolean
performUpdate()
java.lang.String
previewSearchAndReplace(java.lang.String input, java.lang.String lang)
Preview the search and replace given a string and its language.boolean
processAction()
Method to be implemented to check/validate action to be performed and process them.protected java.lang.String
searchAndReplace(java.lang.String input)
Do a search and replace using previously specifed patterns (if specified and validated).void
setApplyInEmptyFields(boolean applyInEmptyFields)
void
setClassificationLevel(int level)
Set the new classification level to use for the Data supporting it.void
setDeleteDataExtension(boolean deleteDataExtension)
void
setForceDelete(java.lang.String v)
Sets forceDelete option.void
setIgnoreIntegrityCheck(boolean ignoreIntegrityCheck)
void
setOpClearCaddy(java.lang.String v)
void
setOpDelete(java.lang.String v)
void
setOpenTab(int openTab)
void
setOpPreview(java.lang.String v)
void
setOpRemoveCaddy(java.lang.String v)
void
setOpUpdate(java.lang.String v)
void
setRemoveIds(java.lang.String[] rids)
Sets the ids ofData
to remove from caddy.void
setReplacePattern(java.lang.String replacePattern)
void
setSearchAndReplaceLang(java.lang.String[] langs)
void
setSearchPattern(java.lang.String searchPattern)
void
setUseRegExp(boolean useRegExp)
boolean
showClassificationLevel()
Check if the classification level field should be displayedprotected boolean
startBackgroundProcessAndRedirect(java.lang.String operation)
Create a new Process, set its label and domain automatically from current Data type and specified operation, then start it.protected boolean
validateClearCaddy()
protected boolean
validateDelete()
protected boolean
validateRemoveCaddy()
protected boolean
validateSearchAndReplace()
For search and replace to be functionnal, you MUST call this method once prior to calling searchAndReplace method.protected boolean
validateUpdate()
-
Methods inherited from class com.jalios.jcms.handler.JcmsFormHandler
afterValidation, canStartProcess, checkMissingField, getAvailableMainLanguage, getBackgroundProcess, getClosePopupUrl, getControllerContext, getEditFieldSet, getFormStep, getFormStepCount, getFormStepFinishLabel, getFormStepHiddenFields, getFormStepLabels, getFormStepPrefixProp, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenField, getHiddenFieldML, getMainLangValue, getMainLangValueArray, getMLMap, getMLMapArray, getModalRedirect, getMonolingualValue, getMonolingualValueArray, getMultilingualMainValue, getMultilingualMainValueArray, getMultilingualMLMap, getMultilingualMLMapArray, getRedirect, getRedirectOnClosePopup, getWorkspace, isFieldEdition, isFieldMissing, isFormStepClickable, isPartialFieldEdition, isPopupEdition, isWorkspaceForced, mapStringArrayToMapStringList, mapStringListToMapStringArray, mustSendForbiddenOnCSRF, performFinish, performNext, performPrevious, processStatus, sanitize, sanitize, sendRedirect, sendRedirect, setEditField, setFormStep, setNoRedirect, setNoSendRedirect, setOpFinish, setOpNext, setOpPrevious, setPopupEdition, setRedirect, setRedirectOnClosePopup, setWorkspace, setWs, showCancelButton, showFinishButton, showNextButton, showPreviousButton, startProcess, updateUploadedField, updateUploadedFields, updateUploadedFields, validate, validateCSRF, validateFinish, validateNext, validatePrevious
-
Methods inherited from class com.jalios.jcms.context.JcmsJspContext
addAvoidanceLink, addBodyAttributes, addCSSHeader, addCSSHeader, addCSSHeader, addCSSHeader, addCustomHeader, addHandlebarTemplate, addHttpEquivHeader, addHttpNameHeader, addJavaScript, addJavaScript, addJavaScript, addJavaScriptCode, addPrefetchHeader, addStyleHeader, addStyleHeader, addWebAssets, checkAccess, checkAccess, checkCSRF, debugDisplayContext, disablePacker, forceEditIcon, forceUpdate, getAjaxRequestAttribute, getAjaxRequestId, getAllHeadersDiffMap, getAllHeadersMap, getAvoidanceLinks, getBackOfficeCSSHeader, getBackOfficeJavaScriptSet, getBodyAttributes, getContentForm, getCSSHeaders, getCtxCategories, getCurrentCategory, getCustomHeaders, getDocType, getFinalCSSFooterMap, getFinalCSSMap, getFinalJavaScriptSet, getFrontOfficeCSSHeader, getFrontOfficeJavaScriptSet, getHandlebarTemplates, getHttpEquivHeaders, getHttpNameHeaders, getJavaScriptCodeSet, getJavaScriptSet, getJSONBridge, getPageContext, getPageTitle, getPageZone, getPortal, getPortalCategory, getPortlet, getPublication, getStyleHeaders, getTemplateUsage, internalSetupEmptyHeader, isEditIcon, isEditIcon, isEditIconForPublish, isEditIconForPublish, isPrintView, registerDisplayContext, removeAjaxRequestAttribute, setAjaxRequestAttribute, setAjaxRequestId, setAllHeadersDiffMap, setDocType, setEditIcon, setPageContext, setPageTitle, setPageZone, setShowEditIcon, setTemplateUsage, showEditIcon, showEditIcon, showEditIcon, workaroundBrowserBaseHrefBug
-
Methods inherited from class com.jalios.jcms.context.JcmsContext
addCookie, addMsg, addMsg, addMsgSession, addMsgSession, addToastr, addToastr, addToastrSession, addToastrSession, applySelector, copyMsgListToMsgSessionList, forceWorkspaceUpdate, getBaseUrl, getBrowser, getCaddy, getContextPath, getErrorMsg, getErrorMsgList, getErrorMsgSession, getErrorMsgSessionList, getInfoMsg, getInfoMsgList, getInfoMsgSession, getInfoMsgSessionList, getLoggedMember, getMsgList, getMsgSessionList, getRequest, getResponse, getSession, getSuccessMsg, getSuccessMsgList, getSuccessMsgSession, getSuccessMsgSessionList, getToastrCollection, getToastrSessionCollection, getUploadedFile, getUploadedFileList, getUploadedFiles, getUploadedFiles, getUrlWithCommonUpdatedParams, getUserCountry, getUserLang, getUserLocale, getUserZoneId, getWarningMsg, getWarningMsgList, getWarningMsgSession, getWarningMsgSessionList, glp, isAdmin, isAdminZone, isAjaxRequest, isDBMember, isDebug, isDebugTemplate, isInFrontOffice, isLogged, isWebdavAccess, isWorkZone, removeMessage, removeMessage, removeMsg, retrieveUploadedFile, select, sendError, sendError, sendForbidden, sendForbidden, sendRedirect, sendRedirect, sendRedirect, setErrorMsg, setErrorMsg, setErrorMsgSession, setErrorMsgSession, setInfoMsg, setInfoMsg, setInfoMsgSession, setInfoMsgSession, setLoggedMember, setRequest, setResponse, setSuccessMsg, setSuccessMsg, setSuccessMsgSession, setSuccessMsgSession, setWarningMsg, setWarningMsg, setWarningMsgSession, setWarningMsgSession, updateWorkspace, validateRegexp, validateSchedule
-
-
-
-
Field Detail
-
PREVIOUS_TAB
public static final int PREVIOUS_TAB
- See Also:
- Constant Field Values
-
openTab
protected int openTab
-
opClearCaddy
protected boolean opClearCaddy
-
opRemoveCaddy
protected boolean opRemoveCaddy
-
opPreview
protected boolean opPreview
-
messageOnSuccess
protected java.lang.String messageOnSuccess
I18N message to display on success instead of the generic message (not the property, the already resolved message)
-
-
Method Detail
-
context
protected T context()
-
init
protected void init()
Description copied from class:JcmsFormHandler
Method to implement if you need to initialize your handler from parameter received, prior to all security validation.You must absolutely not perform any action which modify data or site configuration.
Therefore it is strongly recommend NOT TO implement this method, or use very wisely.
- Overrides:
init
in classJcmsFormHandler
-
processAction
public boolean processAction() throws java.io.IOException
Description copied from class:JcmsFormHandler
Method to be implemented to check/validate action to be performed and process them.Default implementation is to return false. No need to call super method.
This method may NOT be invoked at all if security validation are not met.
You must ensure your handler and JSP can work properly without any code invoked in this method.
- Overrides:
processAction
in classJcmsFormHandler
- Returns:
- false if no redirection is needed, true otherwise
- Throws:
java.io.IOException
- IO Exception
-
getDataClass
public abstract java.lang.Class<? extends Data> getDataClass()
Retrieve the type of data being handled by this handler- Returns:
- a Data class
-
getNewCaddyContext
protected abstract T getNewCaddyContext(Caddy caddy, Member member)
Retrieve a new instance of CaddyContext.- Parameters:
caddy
- the current Caddymember
- the logged Member- Returns:
- a AbstractCaddyContext instance
-
getNewCaddyProcess
protected abstract AbstractCaddyProcess<T> getNewCaddyProcess()
Retrieve a new instance of CaddyProcess to start action when required.- Returns:
- a AbstractCaddyProcess instance
-
getJsp
protected abstract java.lang.String getJsp()
Retrieve the path of the JSP.- Returns:
- a path relative to the webapp root.
-
startBackgroundProcessAndRedirect
protected boolean startBackgroundProcessAndRedirect(java.lang.String operation) throws java.io.IOException
Create a new Process, set its label and domain automatically from current Data type and specified operation, then start it.- Parameters:
operation
- the operation- Returns:
- true to indicate a redirect was performed
- Throws:
java.io.IOException
- if redirection after process fails
-
validateUpdate
protected boolean validateUpdate()
-
performUpdate
protected boolean performUpdate() throws java.io.IOException
- Throws:
java.io.IOException
-
validateDelete
protected boolean validateDelete()
-
performDelete
protected boolean performDelete() throws java.io.IOException
- Throws:
java.io.IOException
-
validateClearCaddy
protected boolean validateClearCaddy()
-
performClearCaddy
protected boolean performClearCaddy() throws java.io.IOException
- Throws:
java.io.IOException
-
validateSearchAndReplace
protected final boolean validateSearchAndReplace()
For search and replace to be functionnal, you MUST call this method once prior to calling searchAndReplace method.- Returns:
- true if operation can be performed
-
searchAndReplace
protected final java.lang.String searchAndReplace(java.lang.String input)
Do a search and replace using previously specifed patterns (if specified and validated). Take into account the too option "apply in empty field" and "use regexp".- Parameters:
input
- the string to be modified- Returns:
- the string modified
-
validateRemoveCaddy
protected final boolean validateRemoveCaddy()
-
performRemoveCaddy
protected final boolean performRemoveCaddy() throws java.io.IOException
- Throws:
java.io.IOException
-
setRemoveIds
public final void setRemoveIds(java.lang.String[] rids)
Sets the ids ofData
to remove from caddy.- Parameters:
rids
- ids ofpublication
to remove from caddy
-
previewSearchAndReplace
public final java.lang.String previewSearchAndReplace(java.lang.String input, java.lang.String lang)
Preview the search and replace given a string and its language.- Parameters:
input
- the string to previewlang
- the language of the string (in order to apply specified option, if null, check is not done)- Returns:
- the input string modified according to given string
-
getSearchPattern
public final java.lang.String getSearchPattern()
-
setSearchPattern
public final void setSearchPattern(java.lang.String searchPattern)
-
getReplacePattern
public final java.lang.String getReplacePattern()
-
setReplacePattern
public final void setReplacePattern(java.lang.String replacePattern)
-
setUseRegExp
public final void setUseRegExp(boolean useRegExp)
-
isUsingRegExp
public final boolean isUsingRegExp()
-
setApplyInEmptyFields
public final void setApplyInEmptyFields(boolean applyInEmptyFields)
-
isApplyingInEmptyFields
public final boolean isApplyingInEmptyFields()
-
setSearchAndReplaceLang
public final void setSearchAndReplaceLang(java.lang.String[] langs)
-
isSearchAndReplaceLangSelected
public final boolean isSearchAndReplaceLangSelected(java.lang.String lang)
-
setDeleteDataExtension
public final void setDeleteDataExtension(boolean deleteDataExtension)
-
isDeletingDataExtension
public final boolean isDeletingDataExtension()
-
setIgnoreIntegrityCheck
public final void setIgnoreIntegrityCheck(boolean ignoreIntegrityCheck)
-
isIgnoringIntegrityCheck
public final boolean isIgnoringIntegrityCheck()
-
setOpenTab
public final void setOpenTab(int openTab)
-
getOpenTab
public final int getOpenTab()
-
isTabForced
public final boolean isTabForced()
-
setOpUpdate
public final void setOpUpdate(java.lang.String v)
-
setOpDelete
public final void setOpDelete(java.lang.String v)
-
setForceDelete
public void setForceDelete(java.lang.String v)
Sets forceDelete option.- Parameters:
v
- the value to set- Since:
- jcms-9.0.5 jcms-10.0.2 JCMS-6305
-
getAvailableForceDelete
public boolean getAvailableForceDelete()
-
getDefaultForceDelete
protected boolean getDefaultForceDelete()
Return weither forceDelete option should be enabled by default.- Returns:
- false by default
- Since:
- jcms-9.0.5 jcms-10.0.2 JCMS-6305 JCMS-6718
-
setOpRemoveCaddy
public final void setOpRemoveCaddy(java.lang.String v)
-
setOpClearCaddy
public final void setOpClearCaddy(java.lang.String v)
-
setOpPreview
public final void setOpPreview(java.lang.String v)
-
isPreviewing
public final boolean isPreviewing()
-
setClassificationLevel
public void setClassificationLevel(int level)
Set the new classification level to use for the Data supporting it.- Parameters:
level
- a value from 0 for unclassified publication toClassificationManager.getMaximumLevel()
(included) for highly classified publication.- Since:
- 10.0.8 / JCMS-10746
- See Also:
ClassificationManager
-
showClassificationLevel
public boolean showClassificationLevel()
Check if the classification level field should be displayed- Returns:
- true to display field, false otherwise
- Since:
- 10.0.8 / JCMS-10746
-
getClassificationLevelSettings
public EnumerateSettings getClassificationLevelSettings()
Retrieve an EnumerateSettings suitable to edit classification level in the caddy.- Returns:
- an EnumerateSettings, never return null
- Since:
- 10.0.8 / JCMS-10746
-
-