001/*
002 * This library is part of OpenCms -
003 * the Open Source Content Management System
004 *
005 * Copyright (C) Alkacon Software (http://www.alkacon.com)
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * For further information about Alkacon Software, please see the
018 * company website: http://www.alkacon.com
019 *
020 * For further information about OpenCms, please see the
021 * project website: http://www.opencms.org
022 *
023 * You should have received a copy of the GNU Lesser General Public
024 * License along with this library; if not, write to the Free Software
025 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
026 */
027
028package org.opencms.gwt.shared;
029
030/**
031 * Common constants needed for client side code.<p>
032 */
033public final class CmsGwtConstants {
034
035    /** Parameters for favorite dialog. */
036    public static final class Favorites {
037
038        /** Request parameter. */
039        public static final String PARAM_DETAIL = "detail";
040
041        /** Request parameter. */
042        public static final String PARAM_PAGE = "page";
043
044        /** Request parameter. */
045        public static final String PARAM_PROJECT = "project";
046
047        /** Request parameter. */
048        public static final String PARAM_SITE = "site";
049    }
050
051    /**
052    * Quick launcher constants.<p>
053    */
054    public static final class QuickLaunch {
055
056        /** Context string. */
057        public static final String CONTEXT_PAGE = "page";
058
059        /** Context string. */
060        public static final String CONTEXT_SITEMAP = "sitemap";
061
062        /** Quick launch id. */
063        public static final String Q_ACCOUNTMANAGER = "accountmanager";
064
065        /** Quick launch id. */
066        public static final String Q_EXPLORER = "explorer";
067
068        /** Quick launch id. */
069        public static final String Q_LAUNCHPAD = "launchpad";
070
071        /** Quick launch id. */
072        public static final String Q_PAGEEDITOR = "pageeditor";
073
074        /** Quick launch id. */
075        public static final String Q_SITEMAP = "sitemap";
076
077        /** Quick launch id. */
078        public static final String Q_WORKPLACETOOLS = "workplacetools";
079
080    }
081
082    public static final class RpcContext {
083
084        public static final String PAGE_ID = "pageId";
085    }
086
087    /** Context menu action id. */
088    public static final String ACTION_EDITSMALLELEMENTS = "editsmallelements";
089
090    /** Context menu action parameter dialog id. */
091    public static final String ACTION_PARAM_DIALOG_ID = "dialogId";
092
093    /** Context menu action id. */
094    public static final String ACTION_SELECTELEMENTVIEW = "selectelementview";
095
096    /** Context menu action id. */
097    public static final String ACTION_SHOWLOCALE = "showlocale";
098
099    /** Context menu action id. */
100    public static final String ACTION_TEMPLATECONTEXTS = "templatecontexts";
101
102    /** Context menu action id. */
103    public static final String ACTION_TEMPLATECONTEXTS_ADVANCED = "templatecontexts_advanced";
104
105    /** Context menu action id. */
106    public static final String ACTION_VIEW_ONLINE = "viewonline";
107
108    /** Attribute for container id. */
109    public static final String ATTR_CONTAINER_ID = "ATTR_CONTAINER_ID";
110
111    /** JS property for accessing content editor locale from nested iframes. */
112    public static final String ATTR_CONTENT_EDITOR_LOCALE = "cmsContentEditorLocale";
113
114    /** Collector data attribute name. */
115    public static final String ATTR_DATA_COLLECTOR = "data-oc-collector";
116
117    /** Container data attribute name. */
118    public static final String ATTR_DATA_CONTAINER = "data-oc-container";
119
120    /** Editable data attribute name. */
121    public static final String ATTR_DATA_EDITABLE = "data-oc-editable";
122
123    /** Element data attribute name. */
124    public static final String ATTR_DATA_ELEMENT = "data-oc-element";
125
126    /** Content field data attribute name. */
127    public static final String ATTR_DATA_FIELD = "data-oc-field";
128
129    /** Entity id data attribute name. */
130    public static final String ATTR_DATA_ID = "data-oc-id";
131
132    /** Name for the attribute used to store list-add metadata. */
133    public static final String ATTR_DATA_LISTADD = "data-oc-listadd";
134
135    /** Marker attribute for dead links. */
136    public static final String ATTR_DEAD_LINK_MARKER = "data-oc-broken-link";
137
138    /** Key for the element id attribute. */
139    public static final String ATTR_ELEMENT_ID = "ATTR_ELEMENT_ID";
140
141    public static final String ATTR_EXTENSIONS = "ext";
142
143    /** Element data to enable / disable the favorite button. */
144    public static final String ATTR_FAVORITE = "fav";
145
146    /** Key for the page root path attribute. */
147    public static final String ATTR_PAGE_ROOT_PATH = "ATTR_PAGE_ROOT_PATH";
148
149    /** Data URL for 'broken image' image. */
150    public static final String BROKEN_IMAGE = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjE3MCIgdmlld0JveD0iMCAwIDIwMCAxNzAiPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJhIiB4MT0iMCIgeDI9IjAiIHkxPSIwIiB5Mj0iMSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RkZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2Y4ZjhmOCIvPjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9IjAiIHgyPSIwIiB5MT0iMCIgeTI9IjEiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM5OTkiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNkZGQiLz48L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+CjxyZWN0IGZpbGw9InVybCgjYSkiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTcwIiByeT0iMCIvPgo8cGF0aCBmaWxsPSJ1cmwoI2IpIiBkPSJNNDIuMyAzNS41YTEuNiAxLjYgMCAwIDAtMS42IDEuN3YzaC04LjJjLTEuNSAwLTIuNiAxLTIuNiAyLjNWMTI0YzAgMS41IDEuMSAyLjQgMi42IDIuNEg5NmwuNC0xMS40YTMyLjEgMzIuMSAwIDAgMS0zMS4zLTMyIDMyLjEgMzIuMSAwIDAgMSAzMC41LTMybC00LjgtMTEuMi0zMS4zLjN2LTIuOWMwLTEtLjgtMS42LTEuNi0xLjZINDJabTY0IDUgMS4zIDEyYTMyLjEgMzIuMSAwIDAgMSAyMiAzMC41IDMyLjEgMzIuMSAwIDAgMS0yOSAzMS42TDk3IDEyNi4ybDYwLjQgOC4zYzEuMy4yIDIuNi0uOCAyLjctMmwxMC04MC44Yy4xLTEuNS0uOC0yLjYtMi4xLTIuN2wtNjEuNy04Ljd6bS02NS44IDQuOGgxOC42YzEuMyAwIDIuMyAxIDIuMyAyLjJ2N2MwIDEuMi0xIDIuMi0yLjMgMi4ySDQwLjVjLTEuMyAwLTIuMi0xLTIuMi0yLjN2LTYuOWMwLTEuMSAxLTIuMiAyLjItMi4yek05Ny43IDYxYTIyLjIgMjIuMiAwIDAgMC0xLjYgMGw3LjcgMTYuNy0xMi42IDE1LjYgNi44IDEyYTIyLjIgMjIuMiAwIDAgMCAyMi0yMi4yQTIyLjIgMjIuMiAwIDAgMCA5Ny43IDYxWm0tMTQgNS4xYTIyLjIgMjIuMiAwIDAgMC04IDE3IDIyLjIgMjIuMiAwIDAgMCAxNi44IDIxLjZsLTYuOS0xMC4yTDk1IDc3LjcgODMuNyA2NloiLz4KPC9zdmc+";
151
152    /** Name of the Javascript callback used to handle property changes triggered from the locale compare view. */
153    public static final String CALLBACK_HANDLE_CHANGED_PROPERTIES = "cmsHandleChangedProperties";
154
155    /** Javascript function name for showing the locale compare view. */
156    public static final String CALLBACK_REFRESH_LOCALE_COMPARISON = "cmsRefreshLocaleComparison";
157
158    /** The CSS class name used for the DOM elements containing collector information. */
159    public static final String CLASS_COLLECTOR_INFO = "oc-collector-info";
160
161    /** CSS class for containers inflated due to an element dragged into them that is of lower height than the empty container HTML. */
162    public static final String CLASS_CONTAINER_INFLATED = "oc-container-inflated";
163
164    /** CSS class for elements in detail containers which are used to transfer their settings to the detail eleemnt. */
165    public static final String CLASS_DETAIL_PREVIEW = "oc-detail-preview";
166
167    /** The CSS class name for data elements which precede the direct editable elements. */
168    public static final String CLASS_EDITABLE = "oc-editable";
169
170    /** The CSS class name for elements which end the direct editable elements. */
171    public static final String CLASS_EDITABLE_END = CLASS_EDITABLE + "-end";
172
173    /** The CSS class name for elements which mark elements to be skipped during direct edit. */
174    public static final String CLASS_EDITABLE_SKIP = CLASS_EDITABLE + "-skip";
175
176    /** Class for dnd placeholders which are too big. */
177    public static final String CLASS_PLACEHOLDER_TOO_BIG = "oc-placeholder-too-big";
178
179    /** Name for configuration  setting to limit collector results while computing publish lists for collectors. */
180    public static final String COLLECTOR_PUBLISH_LIST_LIMIT = "collectorPublishListLimit";
181
182    /** The context type sitemap toolbar. */
183    public static final String CONTEXT_TYPE_APP_TOOLBAR = "appToolbar";
184
185    /** The context type containerpage toolbar. */
186    public static final String CONTEXT_TYPE_CONTAINERPAGE_TOOLBAR = "containerpageToolbar";
187
188    /** The context type file table. */
189    public static final String CONTEXT_TYPE_FILE_TABLE = "fileTable";
190
191    /** The context type sitemap toolbar. */
192    public static final String CONTEXT_TYPE_SITEMAP_TOOLBAR = "sitemapToolbar";
193
194    /** Special 'type' name (that isn't actually a type) used to mark default detail pages in the sitemap configuration. */
195    public static final String DEFAULT_DETAILPAGE_TYPE = "##DEFAULT##";
196
197    public static final String EDITOR_PAGE_ID = "pageId";
198
199    /** A HTML comment that will cause the container page editor to reload the page if it is contained in HTML which is reloaded after the element or its settings have been edited. */
200    public static final String FORMATTER_RELOAD_MARKER = "<!--FORMATTER_RELOAD_g3jf9o0n-->";
201
202    /** Separator for separating the main part of a formatter key from the sub-key (the part in front of the separator will be used as a key if there is no formatter for the full key). */
203    public static final String FORMATTER_SUBKEY_SEPARATOR = "#";
204
205    /** Sub-path for the page unlock service. */
206    public static final String HANDLER_UNLOCK_PAGE = "/unlockPage";
207
208    /** Sub-path for the session update handler. */
209    public static final String HANDLER_UPDATE_SESSION = "/updateSession";
210
211    /** The settings widget name for hidden entries. */
212    public static final String HIDDEN_SETTINGS_WIDGET_NAME = "hidden";
213
214    /** Element id for locale comparison view. */
215    public static final String ID_LOCALE_COMPARISON = "cmsLocaleComparison";
216
217    /** Id of the element ussed to  display the sitemap header from Vaadin code. */
218    public static final String ID_LOCALE_HEADER_CONTAINER = "locale-header-container";
219
220    /** Json field name for typograf locale passed to input widget. */
221    public static final String JSON_INPUT_LOCALE = "locale";
222
223    /** Json field name for enabling typograf, passed to input widget. */
224    public static final String JSON_INPUT_TYPOGRAF = "typograf";
225
226    /** Field name for the internal textarea configuration. */
227    public static final String JSON_TEXTAREA_CONFIG = "config";
228
229    /** Field name for the internal textarea configuration. */
230    public static final String JSON_TEXTAREA_LOCALE = "locale";
231
232    /**
233     * Session storage key for memorizing the last opened container page.
234     */
235    public static final String LAST_CONTAINER_PAGE_ID = "lastContainerPageId";
236
237    /** Name of the Javascript callback used to open the locale comparison view. */
238    public static final String LOCALECOMPARE_EDIT_PROPERTIES = "cmsLocaleCompareEditProperties";
239
240    /** The maximum DND placeholder height. */
241    public static final int MAX_PLACEHOLDER_HEIGHT = 300;
242
243    /** Name of the meta tag used to set the editor stylesheet. */
244    public static final String META_EDITOR_STYLESHEET = "cms-editor-stylesheet";
245
246    /** Parameter to pass detail id to page editor context menu actions. */
247    public static final String PARAM_ADE_DETAIL_ID = "adeDetailId";
248
249    /** Parameter for the button left position. */
250    public static final String PARAM_BUTTON_LEFT = "__buttonLeft";
251
252    /** Parameter to disable direct edit. */
253    public static final String PARAM_DISABLE_DIRECT_EDIT = "__disableDirectEdit";
254
255    /** Name of the request parameter used to store the redirect target after login. */
256    public static final String PARAM_LOGIN_REDIRECT = "loginRedirect";
257
258    /** Parameter to force a specific template context. */
259    public static final String PARAM_TEMPLATE_CONTEXT = "__templateContext";
260
261    /** Marker for the 'prefill' context menu action. */
262    public static final String PREFILL_MENU_PLACEHOLDER = "PREFILL_MENU_PLACEHOLDER";
263
264    /** Name of property containing focal point for images. */
265    public static final String PROPERTY_IMAGE_FOCALPOINT = "image.focalpoint";
266
267    /** Tab id for the preference dialog. */
268    public static final String TAB_BASIC = "basic";
269
270    /** Tab id for the preference dialog. */
271    public static final String TAB_EXTENDED = "extended";
272
273    /** Tab id for the preference dialog. */
274    public static final String TAB_HIDDEN = "hidden";
275
276    /** Tag name for the edit button bars injected into the page HTML in the container page editor. */
277    public static final String TAG_OC_EDITPOINT = "oc-editpoint";
278
279    /** Custom tag for elements which were hidden because of mismatching device constraint. */
280    public static final String TAG_OC_HIDDEN_ELEMENT = "oc-hidden-element";
281
282    /** Tag name for the list-add metadata injected into the page. */
283    public static final String TAG_OC_LISTADD = "oc-listadd";
284
285    /** Action placeholder for the template contexts menu option. */
286    public static final String TEMPLATECONTEXT_MENU_PLACEHOLDER = "templatecontexts";
287
288    /** Type name for container pages. */
289    public static final String TYPE_CONTAINERPAGE = "containerpage";
290
291    /** The resource icon CSS class prefix. */
292    public static final String TYPE_ICON_CLASS = "cms_type_icon";
293
294    /** The image resource type name. */
295    public static final String TYPE_IMAGE = "image";
296
297    /** Name for the pseudo-type 'modelgroup'. */
298    public static final String TYPE_MODELGROUP = "modelgroup";
299
300    /** Name for the pseudo-type 'modelgroupreuse'. */
301    public static final String TYPE_MODELGROUP_COPY = "modelgroupcopy";
302
303    /** Name for the pseudo-type 'modelgrouppage'. */
304    public static final String TYPE_MODELGROUP_PAGE = "modelgrouppage";
305
306    /** Name for the type 'modelpage'. */
307    public static final String TYPE_MODELPAGE = "modelpage";
308
309    /** Name for the pseudo-type 'navlevel'. */
310    public static final String TYPE_NAVLEVEL = "navlevel";
311
312    /** Part of the URL used to unlock files. */
313    public static final String UNLOCK_FILE_PREFIX = "/unlockFile/";
314
315    /** Name of Javascript variable used to hold the structure id of the currently selected locale's root folder in the sitemap editor's locale comparison mode. */
316    public static final String VAR_LOCALE_ROOT = "cmsLocaleCompareRoot";
317
318    /**
319     * Hide constructor.<p>
320     */
321    private CmsGwtConstants() {
322
323        // nop
324
325    }
326
327    /**
328     * Maximum DND placeholder height, as a string for stylesheets.
329     *
330     * @return the maximum DND placeholder height as a string
331     */
332    public static String getPlaceholderMaxHeight() {
333
334        return MAX_PLACEHOLDER_HEIGHT + "px";
335    }
336}