diff --git a/lib/env-bundler.js b/lib/env-bundler.js index ccfd274..e17c2e8 100644 --- a/lib/env-bundler.js +++ b/lib/env-bundler.js @@ -297,12 +297,16 @@ const componentResponseProcessor = { const schema = { code: [{ key: 'code', - transform: function (code) { return code.trim().toLowerCase().replace(new RegExp('[\\s\\-_]+', 'g'), '_'); }, + transform: function (code) { + return code.trim().replace(new RegExp(/[\s_]/, 'g'), '_'); + }, }], guiCode: 'guiCode', }; - return fragments.map(f => objectMapper(f, schema)); + return fragments + .filter(f => !f.code.includes('-')) + .map(f => objectMapper(f, schema)); }, widget: async (componentsToFetch) => { const widgets = await Promise.all(componentsToFetch.map(async (widget) => { @@ -809,7 +813,7 @@ function canonizeCode (code) { } function canonizeCodeUnderline (code) { - return code.trim().toLowerCase().replace(new RegExp('[\\s\\-_]+', 'g'), '_'); + return code.trim().replace(new RegExp(/[\s_]/, 'g'), '_'); } const urlEncoder = function (payload) { diff --git a/test/env-bundler.test.js b/test/env-bundler.test.js index 35368ea..df9f518 100644 --- a/test/env-bundler.test.js +++ b/test/env-bundler.test.js @@ -3,16 +3,47 @@ const fs = require('fs'); const path = require('path'); const os = require('os'); const process = require('process'); +const yaml = require('yaml'); const widgets = require('./mocks/widgets'); const widget = require('./mocks/widget'); +const fragments = require('./mocks/fragments'); const resourceFile = require('./mocks/resource-file'); const resourceDirectory = require('./mocks/resource-directory'); -const { setupEnvironment, collectAllComponents, generateBundle, ALL_TYPES } = require('../lib/env-bundler'); +const { setupEnvironment, collectAllComponents, generateBundle } = require('../lib/env-bundler'); + +const apiUrlTable = { + widget: /\/api\/widgets/, + widgetDetails: /\/api\/widgets\/.+/, + fragments: /\/api\/fragments/, + resource: /\/api\/fileBrowser?protectedFolder=false¤tPath=.+/, + resourceDetails: /\/api\/fileBrowser\/file\?protectedFolder=false¤tPath=.+/, +}; jest.mock('axios'); +class AxiosMock { + static async mockGetCalls () { + await axios.get.mockImplementation((url) => { + switch (true) { + case apiUrlTable.widget.test(url): + return Promise.resolve({ data: widgets }); + case apiUrlTable.widgetDetails.test(url): + return Promise.resolve({ data: widget }); + case apiUrlTable.fragments.test(url): + return Promise.resolve({ data: fragments }); + case apiUrlTable.resourceDetails.test(url): + return Promise.resolve({ data: resourceFile }); + case apiUrlTable.resource.test(url): + return Promise.resolve({ data: resourceDirectory }); + default: + return Promise.resolve({ data: { payload: [] } }); + } + }); + } +} + describe('env-bundler', function () { let tmpDir; @@ -49,20 +80,11 @@ describe('env-bundler', function () { afterEach(() => { fs.rmSync(tmpDir, { recursive: true, force: true }); + jest.restoreAllMocks(); }); it('Should save resources skipping the directories', async () => { - for (const componentType of ALL_TYPES) { - if (componentType === 'widget') { - axios.get.mockImplementationOnce(() => Promise.resolve({ data: widgets })); - } else { - axios.get.mockImplementationOnce(() => Promise.resolve({ data: { payload: [] } })); - } - } - - axios.get.mockImplementationOnce(() => Promise.resolve({ data: widget })); - axios.get.mockImplementationOnce(() => Promise.resolve({ data: resourceFile })); - axios.get.mockImplementationOnce(() => Promise.resolve({ data: resourceDirectory })); + await AxiosMock.mockGetCalls(); await collectAllComponents(); @@ -86,13 +108,63 @@ describe('env-bundler', function () { expect(fs.existsSync(expectedWidgetDescriptor)).toBe(true); expect(fs.existsSync(expectedResource)).toBe(true); - expect(axios.get).toHaveBeenNthCalledWith(16, + expect(axios.get).toHaveBeenCalledWith( + expect.stringContaining('/api/fileBrowser/file?protectedFolder=false¤tPath=bundles/my-bundle/widgets/my-widget/static/css/main.dbf0c21a.css'), + expect.any(Object), + ); + expect(axios.get).toHaveBeenCalledWith( + expect.stringContaining('/api/fileBrowser/file?protectedFolder=false¤tPath=bundles/my-bundle/widgets/my-widget'), + expect.any(Object), + ); + }); + + it('Should save fragment filtering out those with hyphen in the code', async () => { + await AxiosMock.mockGetCalls(); + + const components = await collectAllComponents(); + + const options = { + generateBundle: true, + location: './', + code: 'test-directories', + description: 'test-directories', + }; + + await generateBundle(options, components); + + const expectedDescriptor = path.resolve(tmpDir, 'descriptor.yaml'); + const expectedWidgetDescriptor = path.resolve(tmpDir, 'widgets', 'my-widget-descriptor.yaml'); + const expectedResource = path.resolve(tmpDir, 'resources', 'bundles', 'my-bundle', 'widgets', 'my-widget', 'static', 'css', 'main.dbf0c21a.css'); + + expect(fs.existsSync(expectedDescriptor)).toBe(true); + expect(fs.existsSync(expectedWidgetDescriptor)).toBe(true); + expect(fs.existsSync(expectedResource)).toBe(true); + + expect(axios.get).toHaveBeenCalledWith( expect.stringContaining('/api/fileBrowser/file?protectedFolder=false¤tPath=bundles/my-bundle/widgets/my-widget/static/css/main.dbf0c21a.css'), expect.any(Object), ); - expect(axios.get).toHaveBeenNthCalledWith(17, + expect(axios.get).toHaveBeenCalledWith( expect.stringContaining('/api/fileBrowser/file?protectedFolder=false¤tPath=bundles/my-bundle/widgets/my-widget'), expect.any(Object), ); + + const descUtf8 = fs.readFileSync(path.resolve(tmpDir, 'descriptor.yaml'), 'utf8'); + const descriptor = yaml.parse(descUtf8); + + const actualFragments = await getFragments(); + expect(descriptor.components.fragments.length).toBe(actualFragments.length); + const actualCodesOfFragments = actualFragments.map(f => f.code); + expect(actualCodesOfFragments.includes('-')).toBe(false); }); + + async function getFragments () { + const fragmentList = fs.readdirSync(path.resolve(tmpDir, 'fragments')); + const promises = fragmentList.map(fragmentFileName => { + const fragmentDescUtf8 = fs.readFileSync((path.resolve(tmpDir, 'fragments', fragmentFileName)), 'utf8'); + return yaml.parse(fragmentDescUtf8); + }); + + return Promise.all(promises); + } }); diff --git a/test/mocks/fragments.js b/test/mocks/fragments.js new file mode 100644 index 0000000..9a92634 --- /dev/null +++ b/test/mocks/fragments.js @@ -0,0 +1,730 @@ +module.exports = { + payload: [ + { + code: 'breadcrumb', + locked: true, + widgetType: { + code: 'breadcrumb', + title: 'Breadcrumbs', + }, + pluginCode: null, + widgetTypeCode: 'breadcrumb', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<@wp.currentPage param="code" var="currentViewCode" />\n\n\n', + }, + { + code: 'default_pagerBlock', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n<#if (group.size > group.max)>\n\t\n', + }, + { + code: 'default_pagerFormBlock_is', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n<#assign s=JspTaglibs[\"/struts-tags\"]>\n<@s.if test=\"#group.size > #group.max\">\n\n", + }, + { + code: 'default_pagerInfo_is', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n

<@s.text name="note.searchIntro" /> <@s.property value="#group.size" /> <@s.text name="note.searchOutro" />.
\n<@s.text name="label.page" />: [<@s.property value="#group.currItem" />/<@s.property value="#group.maxItem" />].

', + }, + { + code: 'entandoapi_is_resource_detail', + locked: true, + widgetType: { + code: 'entando_apis', + title: 'APIs', + }, + pluginCode: null, + widgetTypeCode: 'entando_apis', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n<@s.set var=\"apiResourceVar\" value=\"apiResource\" />\n<@s.set var=\"GETMethodVar\" value=\"#apiResourceVar.getMethod\" />\n<@s.set var=\"POSTMethodVar\" value=\"#apiResourceVar.postMethod\" />\n<@s.set var=\"PUTMethodVar\" value=\"#apiResourceVar.putMethod\" />\n<@s.set var=\"DELETEMethodVar\" value=\"#apiResourceVar.deleteMethod\" />\n<@s.set var=\"apiNameVar\" value=\"(#apiResourceVar.namespace!=null && #apiResourceVar.namespace.length()>0 ? '/' + #apiResourceVar.namespace : '')+'/'+#apiResourceVar.resourceName\" />\n
\n

\n\t\" class=\"btn btn-primary\"> <@wp.i18n key=\"ENTANDO_API_GOTO_LIST\" />\n

\n

<@wp.i18n key=\"ENTANDO_API_RESOURCE\" /> <@s.property value=\"#apiNameVar\" />

\n<@s.if test=\"hasActionMessages()\">\n\t
\n\t\t

<@wp.i18n key=\"ENTANDO_API_ERROR\" />

\n\t\t\n\t
\n\n<@s.if test=\"hasActionErrors()\">\n\t
\n\t\t

<@wp.i18n key=\"ENTANDO_API_ERROR\" />

\n\t\t\n\t
\n\n\n

<@s.property value=\"#apiResourceVar.description\" />

\n\n\n
\n\t
<@wp.i18n key=\"ENTANDO_API_RESOURCE_NAME\" />
\n\t\t
<@s.property value=\"#apiResourceVar.resourceName\" />
\n\t
<@wp.i18n key=\"ENTANDO_API_RESOURCE_NAMESPACE\" />
\n\t\t
/<@s.property value=\"#apiResourceVar.namespace\" />
\n\t
<@wp.i18n key=\"ENTANDO_API_RESOURCE_SOURCE\" />
\n\t\t
\n\t\t\t<@s.property value=\"#apiResourceVar.source\" /><@s.if test=\"%{#apiResourceVar.pluginCode != null && #apiResourceVar.pluginCode.length() > 0}\">, <@s.property value=\"%{getText(#apiResourceVar.pluginCode+'.name')}\" /> (<@s.property value=\"%{#apiResourceVar.pluginCode}\" />)\n\t\t
\n\t
<@wp.i18n key=\"ENTANDO_API_RESOURCE_URI\" />
\n\t\t
\n\t\t\tapi/legacy/<@wp.info key=\"currentLang\" /><@s.if test=\"null != #apiResourceVar.namespace\">/<@s.property value=\"#apiResourceVar.namespace\" />/<@s.property value=\"#apiResourceVar.resourceName\" />\"><@wp.info key=\"systemParam\" paramName=\"applicationBaseURL\" />api/legacy/<@wp.info key=\"currentLang\" /><@s.if test=\"null != #apiResourceVar.namespace\">/<@s.property value=\"#apiResourceVar.namespace\" />/<@s.property value=\"#apiResourceVar.resourceName\" />\n\t\t
\n\t
\n\t\t<@wp.i18n key=\"ENTANDO_API_EXTENSION\" />\n\t
\n\t\t
\n\t\t\t<@wp.i18n key=\"ENTANDO_API_EXTENSION_NOTE\" />\n\t\t
\n
\n\n\t<@s.set var=\"methodVar\" value=\"#GETMethodVar\" />\n\t<@s.set var=\"currentMethodNameVar\" value=\"%{'GET'}\" />\n\t

GET

\n\t<#include \"entandoapi_is_resource_detail_include\" >\n\n\t<@s.set var=\"methodVar\" value=\"#POSTMethodVar\" />\n\t<@s.set var=\"currentMethodNameVar\" value=\"%{'POST'}\" />\n\t

POST

\n\t<#include \"entandoapi_is_resource_detail_include\" >\n\n\t<@s.set var=\"methodVar\" value=\"#PUTMethodVar\" />\n\t<@s.set var=\"currentMethodNameVar\" value=\"%{'PUT'}\" />\n\t

PUT

\n\t<#include \"entandoapi_is_resource_detail_include\" >\n\n\t<@s.set var=\"methodVar\" value=\"#DELETEMethodVar\" />\n\t<@s.set var=\"currentMethodNameVar\" value=\"%{'DELETE'}\" />\n\t

DELETE

\n\t<#include \"entandoapi_is_resource_detail_include\" >\n

\n\t\" class=\"btn btn-primary\"> <@wp.i18n key=\"ENTANDO_API_GOTO_LIST\" />\n

\n
", + }, + { + code: 'entandoapi_is_resource_detail_include', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n<@s.if test=\"#methodVar == null\">\n\t

\n\t\t<@s.property value=\"#currentMethodNameVar\" />, <@wp.i18n key=\"ENTANDO_API_METHOD_KO\" />\n\t

\n\n<@s.else>\n\t
\n\t\t
\n\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD\" />\n\t\t
\n\t\t\t
\n\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_OK\" />\n\t\t\t
\n\t\t<@s.if test=\"#methodVar != null\">\n\t\t\t
\n\t\t\t\t<@wp.i18n key=\"ENTANDO_API_DESCRIPTION\" />\n\t\t\t
\n\t\t\t\t
<@s.property value=\"#methodVar.description\" />
\n\t\t\t
\n\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_AUTHORIZATION\" />\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t<@s.if test=\"%{null != #methodVar.requiredPermission}\">\n\t\t\t\t\t\t<@s.iterator value=\"methodAuthorityOptions\" var=\"permission\"><@s.if test=\"#permission.key==#methodVar.requiredPermission\"><@s.property value=\"#permission.value\" />\n\t\t\t\t\t\n\t\t\t\t\t<@s.elseif test=\"%{#methodVar.requiredAuth}\">\n\t\t\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_AUTH_SIMPLE\" />\n\t\t\t\t\t\n\t\t\t\t\t<@s.else>\n\t\t\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_AUTH_FREE\" />\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t<@s.if test='%{!#methodVar.resourceName.equalsIgnoreCase(\"getService\")}' >\n\t\t\t
\n\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_SCHEMAS\" />\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t<@s.if test='%{#methodVar.httpMethod.toString().equalsIgnoreCase(\"POST\") || #methodVar.httpMethod.toString().equalsIgnoreCase(\"PUT\")}'>\n\t\t\t\t\t\t<@wp.action path=\"/ExtStr2/do/Front/Api/Resource/requestSchema.action\" var=\"requestSchemaURLVar\" >\n\t\t\t\t\t\t\t<@wp.parameter name=\"resourceName\"><@s.property value=\"#methodVar.resourceName\" />\n\t\t\t\t\t\t\t<@wp.parameter name=\"namespace\"><@s.property value=\"#methodVar.namespace\" />\n\t\t\t\t\t\t\t<@wp.parameter name=\"httpMethod\"><@s.property value=\"#methodVar.httpMethod\" />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_SCHEMA_REQ\" />\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t<@wp.action path=\"/ExtStr2/do/Front/Api/Resource/responseSchema.action\" var=\"responseSchemaURLVar\" >\n\t\t\t\t\t\t\t<@wp.parameter name=\"resourceName\"><@s.property value=\"#methodVar.resourceName\" />\n\t\t\t\t\t\t\t<@wp.parameter name=\"namespace\"><@s.property value=\"#methodVar.namespace\" />\n\t\t\t\t\t\t\t<@wp.parameter name=\"httpMethod\"><@s.property value=\"#methodVar.httpMethod\" />\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<@wp.i18n key=\"ENTANDO_API_METHOD_SCHEMA_RESP\" />\n\t\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\n\t
\n\t<@s.if test=\"#methodVar != null\">\n\t\t<@s.set var=\"methodParametersVar\" value=\"#methodVar.parameters\" />\n\t\t<@s.if test=\"null != #methodParametersVar && #methodParametersVar.size() > 0\">\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t<@s.iterator value=\"#methodParametersVar\" var=\"apiParameter\" >\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
<@wp.i18n key=\"ENTANDO_API_METHOD_REQUEST_PARAMS\" />
<@wp.i18n key=\"ENTANDO_API_PARAM_NAME\" /><@wp.i18n key=\"ENTANDO_API_PARAM_DESCRIPTION\" /><@wp.i18n key=\"ENTANDO_API_PARAM_REQUIRED\" />
<@s.property value=\"#apiParameter.key\" /><@s.property value=\"#apiParameter.description\" />\">\n\t\t\t\t\t\t\t<@s.if test=\"#apiParameter.required\">\n\t\t\t\t\t\t\t\t<@wp.i18n key=\"YES\" />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<@s.else>\n\t\t\t\t\t\t\t\t<@wp.i18n key=\"NO\" />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\n\t\n", + }, + { + code: 'entandoapi_is_resource_list', + locked: true, + widgetType: { + code: 'entando_apis', + title: 'APIs', + }, + pluginCode: null, + widgetTypeCode: 'entando_apis', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n

<@wp.i18n key=\"ENTANDO_API_RESOURCES\" />

\n<@s.if test=\"hasActionErrors()\">\n\t
\n\t\t

<@wp.i18n key=\"ENTANDO_API_ERROR\" />

\n\t\t\n\t
\n\n<@s.set var=\"resourceFlavoursVar\" value=\"resourceFlavours\" />\n\n<@s.if test=\"#resourceFlavoursVar.size() > 0\">\n\t<@s.set var=\"icon_free\"><@wp.i18n key=\"ENTANDO_API_METHOD_STATUS_FREE\" />\n\t<@s.set var=\"title_free\"><@wp.i18n key=\"ENTANDO_API_METHOD_STATUS_FREE\" />. <@wp.i18n key=\"ENTANDO_API_GOTO_DETAILS\" />\n\n\t<@s.set var=\"icon_auth\"><@wp.i18n key=\"ENTANDO_API_METHOD_STATUS_AUTH\" />\n\t<@s.set var=\"title_auth\"><@wp.i18n key=\"ENTANDO_API_METHOD_STATUS_AUTH\" />. <@wp.i18n key=\"ENTANDO_API_GOTO_DETAILS\" />\n\n\t<@s.set var=\"icon_lock\"><@wp.i18n key=\"ENTANDO_API_METHOD_STATUS_LOCK\" />\n\t<@s.set var=\"title_lock\"><@wp.i18n key=\"ENTANDO_API_METHOD_STATUS_LOCK\" />. <@wp.i18n key=\"ENTANDO_API_GOTO_DETAILS\" />\n\n\t<@s.iterator var=\"resourceFlavourVar\" value=\"#resourceFlavoursVar\" status=\"resourceFlavourStatusVar\">\n\t\t\n\t\t\t<@s.iterator value=\"#resourceFlavourVar\" var=\"resourceVar\" status=\"statusVar\" >\n\t\t\t\t<@s.if test=\"#statusVar.first\">\n\t\t\t\t\t<@s.if test=\"#resourceVar.source=='core'\"><@s.set var=\"captionVar\"><@s.property value=\"#resourceVar.source\" escapeHtml=false />\n\t\t\t\t\t<@s.else><@s.set var=\"captionVar\"><@s.property value=\"%{getText(#resourceVar.sectionCode+'.name')}\" escapeHtml=false />\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t\t\t\t\t<@s.property value=\"#captionVar\" />\n\t\t\t\t\t
<@wp.i18n key=\"ENTANDO_API_RESOURCE\" /><@wp.i18n key=\"ENTANDO_API_DESCRIPTION\" />GETPOSTPUTDELETE
\n\t\t\t\t\t\t<@wp.action path=\"/ExtStr2/do/Front/Api/Resource/detail.action\" var=\"detailActionURL\">\n\t\t\t\t\t\t\t<@wp.parameter name=\"resourceName\"><@s.property value=\"#resourceVar.resourceName\" />\n\t\t\t\t\t\t\t<@wp.parameter name=\"namespace\"><@s.property value=\"#resourceVar.namespace\" />\n\t\t\t\t\t\t\n\t\t\t\t\t\t: /<@s.property value=\"%{#resourceVar.namespace.length()>0?#resourceVar.namespace+'/':''}\" /><@s.property value=\"#resourceVar.resourceName\" />\" href=\"detailActionURL}\" ><@s.property value=\"#resourceVar.resourceName\" />\n\t\t\t\t\t<@s.property value=\"#resourceVar.description\" />\n\t\t\t\t\t\t<@s.if test=\"#resourceVar.getMethod != null && #resourceVar.getMethod.active && (!#resourceVar.getMethod.hidden)\" >\n\t\t\t\t\t\t\t<@s.if test=\"#resourceVar.getMethod.requiredPermission != null\" ><@s.set var=\"icon\" value=\"#icon_lock\" /><@s.set var=\"title\" value=\"#title_lock\" />\n\t\t\t\t\t\t\t<@s.elseif test=\"#resourceVar.getMethod.requiredAuth\" ><@s.set var=\"icon\" value=\"#icon_auth\" /><@s.set var=\"title\" value=\"#title_auth\" />\n\t\t\t\t\t\t\t<@s.else><@s.set var=\"icon\" value=\"#icon_free\" /><@s.set var=\"title\" value=\"#title_free\" />\n\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<@s.property value=\"#icon\" escapeHtml=false />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<@s.else>\">–\n\t\t\t\t\t\n\t\t\t\t\t\t<@s.if test=\"#resourceVar.postMethod != null && #resourceVar.postMethod.active && (!#resourceVar.postMethod.hidden)\" >\n\t\t\t\t\t\t\t<@s.if test=\"#resourceVar.postMethod.requiredPermission != null\" ><@s.set var=\"icon\" value=\"#icon_lock\" /><@s.set var=\"title\" value=\"#title_lock\" />\n\t\t\t\t\t\t\t<@s.elseif test=\"#resourceVar.postMethod.requiredAuth\" ><@s.set var=\"icon\" value=\"#icon_auth\" /><@s.set var=\"title\" value=\"#title_auth\" />\n\t\t\t\t\t\t\t<@s.else><@s.set var=\"icon\" value=\"#icon_free\" /><@s.set var=\"title\" value=\"#title_free\" />\n\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<@s.property value=\"#icon\" escapeHtml=false />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<@s.else>\">–\n\t\t\t\t\t\n\t\t\t\t\t\t<@s.if test=\"#resourceVar.putMethod != null && #resourceVar.putMethod.active && (!#resourceVar.putMethod.hidden)\" >\n\t\t\t\t\t\t\t<@s.if test=\"#resourceVar.putMethod.requiredPermission != null\" ><@s.set var=\"icon\" value=\"#icon_lock\" /><@s.set var=\"title\" value=\"#title_lock\" />\n\t\t\t\t\t\t\t<@s.elseif test=\"#resourceVar.putMethod.requiredAuth\" ><@s.set var=\"icon\" value=\"#icon_auth\" /><@s.set var=\"title\" value=\"#title_auth\" />\n\t\t\t\t\t\t\t<@s.else><@s.set var=\"icon\" value=\"#icon_free\" /><@s.set var=\"title\" value=\"#title_free\" />\n\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<@s.property value=\"#icon\" escapeHtml=false />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<@s.else>\">–\n\t\t\t\t\t\n\t\t\t\t\t\t<@s.if test=\"#resourceVar.deleteMethod != null && #resourceVar.deleteMethod.active && (!#resourceVar.deleteMethod.hidden)\" >\n\t\t\t\t\t\t\t<@s.if test=\"#resourceVar.deleteMethod.requiredPermission != null\" ><@s.set var=\"icon\" value=\"#icon_lock\" /><@s.set var=\"title\" value=\"#title_lock\" />\n\t\t\t\t\t\t\t<@s.elseif test=\"#resourceVar.deleteMethod.requiredAuth\" ><@s.set var=\"icon\" value=\"#icon_auth\" /><@s.set var=\"title\" value=\"#title_auth\" />\n\t\t\t\t\t\t\t<@s.else><@s.set var=\"icon\" value=\"#icon_free\" /><@s.set var=\"title\" value=\"#title_free\" />\n\t\t\t\t\t\t\t\">\n\t\t\t\t\t\t\t\t<@s.property value=\"#icon\" escapeHtml=false />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t<@s.else>\">–\n\t\t\t\t\t
\n\n\t\t<@s.if test=\"#resourceVar.source=='core'\">\n\t\t\t\" class=\"btn btn-primary pull-right\"><@wp.i18n key=\"ENTANDO_API_GOTO_SERVICE_LIST\" />\n\t\t\n\t\n\n<@s.else>\n\t

<@wp.i18n key=\"ENTANDO_API_NO_RESOURCES\" />

\n\n", + }, + { + code: 'entandoapi_is_service_detail', + locked: true, + widgetType: { + code: 'entando_apis', + title: 'APIs', + }, + pluginCode: null, + widgetTypeCode: 'entando_apis', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n\n<@wp.headInfo type="CSS" info="widgets/api.css"/>\n<@s.set var="apiServiceVar" value="%{getApiService(serviceKey)}" />\n
\n

<@wp.i18n key="ENTANDO_API_SERVICE" /> <@s.property value="serviceKey" />

\n<@s.if test="hasActionMessages()">\n\t
\n\t\t

<@wp.i18n key="ENTANDO_API_ERROR" />

\n\t\t\n\t
\n\n<@s.if test="hasActionErrors()">\n\t
\n\t\t

<@wp.i18n key="ENTANDO_API_ERROR" />

\n\t\t\n\t
\n\n\n

<@s.property value="getTitle(serviceKey, #apiServiceVar.description)" />

\n\n<@s.set var="masterMethodVar" value="#apiServiceVar.master" />\n\n
\n\t
<@wp.i18n key="ENTANDO_API_SERVICE_KEY" />
\n\t\t
<@s.property value="serviceKey" />
\n\t
<@wp.i18n key="ENTANDO_API_SERVICE_PARENT_API" />
\n\t\t
<@s.property value="#masterMethodVar.description" /> (/<@s.if test="#masterMethodVar.namespace!=null && #masterMethodVar.namespace.length()>0"><@s.property value="#masterMethodVar.namespace" />/<@s.property value="#masterMethodVar.resourceName" />)
\n\t
\n\t\t<@wp.i18n key="ENTANDO_API_SERVICE_AUTHORIZATION" />\n\t
\n\t\t
\n\t\t\t<@s.if test="%{!#apiServiceVar.requiredAuth}" >\n\t\t\t\t<@wp.i18n key="ENTANDO_API_SERVICE_AUTH_FREE" />\n\t\t\t\n\t\t\t<@s.elseif test="%{null == #apiServiceVar.requiredPermission && null == #apiServiceVar.requiredGroup}">\n\t\t\t\t<@wp.i18n key="ENTANDO_API_SERVICE_AUTH_SIMPLE" />\n\t\t\t\n\t\t\t<@s.else>\n\t\t\t\t<@s.set var="serviceAuthGroupVar" value="%{getGroup(#apiServiceVar.requiredGroup)}" />\n\t\t\t\t<@s.set var="serviceAuthPermissionVar" value="%{getPermission(#apiServiceVar.requiredPermission)}" />\n\t\t\t\t<@s.if test="%{null != #serviceAuthPermissionVar}">\n\t\t\t\t\t<@wp.i18n key="ENTANDO_API_SERVICE_AUTH_WITH_PERM" /> <@s.property value="#serviceAuthPermissionVar.description" />\n\t\t\t\t\n\t\t\t\t<@s.if test="%{null != #serviceAuthGroupVar}">\n\t\t\t\t\t<@s.if test="%{null != #serviceAuthPermissionVar}">
\n\t\t\t\t\t<@wp.i18n key="ENTANDO_API_SERVICE_AUTH_WITH_GROUP" /> <@s.property value="#serviceAuthGroupVar.descr" />\n\t\t\t\t\n\t\t\t\n\t\t
\n\t
<@wp.i18n key="ENTANDO_API_SERVICE_URI" />
\n\t\t
\n\t\t\tapi/legacy/<@wp.info key="currentLang" />/getService?key=<@s.property value="serviceKey" />"><@wp.info key="systemParam" paramName="applicationBaseURL" />api/legacy/<@wp.info key="currentLang" />/getService?key=<@s.property value="serviceKey" />\n\t\t
\n\t
\n\t\t<@wp.i18n key="ENTANDO_API_EXTENSION" />\n\t
\n\t\t
\n\t\t\t<@wp.i18n key="ENTANDO_API_EXTENSION_NOTE" />\n\t\t
\n\t
\n\t\t<@wp.i18n key="ENTANDO_API_SERVICE_SCHEMAS" />\n\t
\n\t\t
\n\t\t\t<@wp.action path="/ExtStr2/do/Front/Api/Service/responseSchema.action" var="responseSchemaURLVar" >\n\t\t\t\t<@wp.parameter name="serviceKey"><@s.property value="serviceKey" />\n\t\t\t\n\t\t\t\n\t\t\t\t<@wp.i18n key="ENTANDO_API_SERVICE_SCHEMA_RESP" />\n\t\t\t\n\t\t
\n
\n\n<@s.if test="%{null != #apiServiceVar.freeParameters && #apiServiceVar.freeParameters.length > 0}" >\n">\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n\t<@s.iterator value="#apiServiceVar.freeParameters" var="apiParameterNameVar" >\n\t\t<@s.set var="apiParameterValueVar" value="%{#apiServiceVar.parameters[#apiParameterNameVar]}" />\n\t\t<@s.set var="apiParameterVar" value="%{#apiServiceVar.master.getParameter(#apiParameterNameVar)}" />\n\t\t<@s.set var="apiParameterRequiredVar" value="%{#apiParameterVar.required && null == #apiParameterValueVar}" />\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n
<@wp.i18n key="ENTANDO_API_SERVICE_PARAMETERS" />
<@wp.i18n key="ENTANDO_API_SERVICE_PARAM_NAME" /><@wp.i18n key="ENTANDO_API_SERVICE_PARAM_DESCRIPTION" /><@wp.i18n key="ENTANDO_API_SERVICE_PARAM_REQUIRED" /><@wp.i18n key="ENTANDO_API_SERVICE_PARAM_DEFAULT_VALUE" />
<@s.property value="%{#apiParameterVar.description}" />">\n\t\t\t\t<@s.if test="#apiParameterRequiredVar" ><@wp.i18n key="YES" />\n\t\t\t\t<@s.else><@wp.i18n key="NO" />\n\t\t\t<@s.if test="null != #apiParameterValueVar"><@s.property value="#apiParameterValueVar" /><@s.else>-
\n\n

\n\t"> <@wp.i18n key="ENTANDO_API_GOTO_LIST" />\n

\n
', + }, + { + code: 'entandoapi_is_service_list', + locked: true, + widgetType: { + code: 'entando_apis', + title: 'APIs', + }, + pluginCode: null, + widgetTypeCode: 'entando_apis', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n
\n\n

\n\t\" class=\"btn btn-primary\"> <@wp.i18n key=\"ENTANDO_API_GOTO_LIST\" />\n

\n\n

<@wp.i18n key=\"ENTANDO_API_GOTO_SERVICE_LIST\" />

\n<@s.if test=\"hasActionErrors()\">\n\t
\n\t\t

<@s.text name=\"message.title.ActionErrors\" />

\n\t\t\n\t
\n\n<@s.if test=\"hasFieldErrors()\">\n\t
\n\t\t

<@s.text name=\"message.title.FieldErrors\" />

\n\t\t\n\t
\n\n<@s.if test=\"hasActionMessages()\">\n\t
\n\t\t

<@s.text name=\"messages.confirm\" />

\n\t\t\n\t
\n\n<@s.set var=\"resourceFlavoursVar\" value=\"resourceFlavours\" />\n<@s.set var=\"serviceFlavoursVar\" value=\"serviceFlavours\" />\n\n<@s.if test=\"#serviceFlavoursVar != null && #serviceFlavoursVar.size() > 0\">\n
\n\t\n\n
\n\t<@s.iterator var=\"resourceFlavour\" value=\"#resourceFlavoursVar\" status=\"moreStatusVar\">\n\t\t<@s.set var=\"serviceGroupVar\" value=\"#resourceFlavour.get(0).getSectionCode()\" />\n\t\t<@s.set var=\"servicesByGroupVar\" value=\"#serviceFlavoursVar[#serviceGroupVar]\" />\n\t\t<@s.if test=\"null != #servicesByGroupVar && #servicesByGroupVar.size() > 0\">\n\t\t\t<@s.if test=\"#serviceGroupVar == 'core'\"><@s.set var=\"captionVar\" value=\"%{#serviceGroupVar}\" />\n\t\t\t<@s.else><@s.set var=\"captionVar\" value=\"%{getText(#serviceGroupVar + '.name')}\" />\n\t\t\t
active\" id=\"api-flavour-<@s.property value='%{#captionVar.toLowerCase().replaceAll(\"[^a-z0-9]\", \"\")}' />\">\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t<@s.iterator var=\"serviceVar\" value=\"#servicesByGroupVar\" >\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\t\t<@s.property value=\"#captionVar\" />\n\t\t\t\t
<@wp.i18n key=\"ENTANDO_API_SERVICE\" /><@wp.i18n key=\"ENTANDO_API_DESCRIPTION\" />
\n\t\t\t\t\t\t\t<@wp.action path=\"/ExtStr2/do/Front/Api/Service/detail.action\" var=\"detailActionURL\">\n\t\t\t\t\t\t\t\t<@wp.parameter name=\"serviceKey\"><@s.property value=\"#serviceVar.key\" />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<@s.property value=\"#serviceVar.key\" />\n\t\t\t\t\t\t<@s.property value=\"#serviceVar.value\" />
\n\t\t\t
\n\t\t\n\t\n\t
\n
\n\n<@s.else>\n
\n\t

<@wp.i18n key=\"ENTANDO_API_NO_SERVICES\" escapeXml=false />

\n
\n\n\n

\n\t\" class=\"btn btn-primary\"> <@wp.i18n key=\"ENTANDO_API_GOTO_LIST\" />\n

\n\n
", + }, + { + code: 'entando_ootb_carbon_include', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n\n\n\n', + }, + { + code: 'internal_servlet_generic_error', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<@wp.i18n key="GENERIC_ERROR" />', + }, + { + code: 'internal_servlet_user_not_allowed', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<@wp.i18n key="USER_NOT_ALLOWED" />', + }, + { + code: 'jacms_content_viewer', + locked: true, + widgetType: { + code: 'content_viewer', + title: 'Content', + }, + pluginCode: 'jacms', + widgetTypeCode: 'content_viewer', + guiCode: '<#assign jacms=JspTaglibs["/jacms-aps-core"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<@jacms.contentInfo param="authToEdit" var="canEditThis" />\n<@jacms.contentInfo param="contentId" var="myContentId" />\n<#if (canEditThis?? && canEditThis)>\n\t\n\t
\n\t\t
\n\t\t\tdo/jacms/Content/edit.action?contentId=<@jacms.contentInfo param="contentId" />" class="btn btn-info">\n\t\t\t<@wp.i18n key="EDIT_THIS_CONTENT" /> \n\t\t
\n\t\t<@jacms.content publishExtraTitle=true />\n\t
\n<#else>\n <@jacms.content publishExtraTitle=true />\n', + }, + { + code: 'jacms_content_viewer_list', + locked: true, + widgetType: { + code: 'content_viewer_list', + title: 'Content Search Query', + }, + pluginCode: 'jacms', + widgetTypeCode: 'content_viewer_list', + guiCode: '<#assign jacms=JspTaglibs["/jacms-aps-core"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<@wp.headInfo type="JS_EXT" info="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js" />\n<@jacms.contentList listName="contentList" titleVar="titleVar"\n\tpageLinkVar="pageLinkVar" pageLinkDescriptionVar="pageLinkDescriptionVar" userFilterOptionsVar="userFilterOptionsVar" />\n<#if (titleVar??)>\n\t

titleVar}

\n\n<#include "jacms_content_viewer_list_userfilters" >\n<#if (contentList??) && (contentList?has_content) && (contentList?size > 0)>\n\t<@wp.pager listName="contentList" objectName="groupContent" pagerIdFromFrame=true advanced=true offset=5>\n <#assign group=groupContent >\n\t\t<#include "default_pagerBlock" >\n<#list contentList as contentId>\n<#if (contentId_index >= groupContent.begin) && (contentId_index <= groupContent.end)>\n\t<@jacms.content contentId="contentId}" />\n\n\n\t\t<#include "default_pagerBlock" >\n\t\n<#else>\n\t\t

<@wp.i18n key="LIST_VIEWER_EMPTY" />

\n\n<#if (pageLinkVar??) && (pageLinkDescriptionVar??)>\n\t

">pageLinkDescriptionVar}

\n\n<#assign group="" >\n<#assign contentList="">', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_Boolean', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n
\n<@wp.i18n key="i18n_Attribute_Key}" />\n<#include "jacms_content_viewer_list_userfilter_ent_Bool_io">\n
\n\t
\n\t\t\n\t
\n\t
\n\t\t\n\t
\n
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_Bool_io', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameControlVar = userFilterOptionVar.formFieldNames[2] >\n\n<#assign formFieldNameIgnoreVar = userFilterOptionVar.formFieldNames[1] >\n<#assign formFieldIgnoreValue = userFilterOptionVar.getFormFieldValue(formFieldNameIgnoreVar) >\n<#assign formFieldControlValue = userFilterOptionVar.getFormFieldValue(formFieldNameControlVar) >\n
\n\t\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_CheckBox', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n
\n<@wp.i18n key="i18n_Attribute_Key}" />\n<#include "jacms_content_viewer_list_userfilter_ent_Bool_io" >\n
\n\t
\n\t\t\n\t
\n
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_Date', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: "<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n<#assign currentLangVar ><@wp.info key=\"currentLang\" />\n\n<#assign js_for_datepicker=\"jQuery(function($){\n\t$.datepicker.regional['it'] = {\n\t\tcloseText: 'Chiudi',\n\t\tprevText: '<Prec',\n\t\tnextText: 'Succ>',\n\t\tcurrentText: 'Oggi',\n\t\tmonthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',\n\t\t\t'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],\n\t\tmonthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',\n\t\t\t'Lug','Ago','Set','Ott','Nov','Dic'],\n\t\tdayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'],\n\t\tdayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],\n\t\tdayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],\n\t\tweekHeader: 'Sm',\n\t\tdateFormat: 'yy-mm-dd',\n\t\tfirstDay: 1,\n\t\tisRTL: false,\n\t\tshowMonthAfterYear: false,\n\t\tyearSuffix: ''};\n});\n\njQuery(function($){\n\tif (Modernizr.touch && Modernizr.inputtypes.date) {\n\t\t$.each(\t$('input[data-isdate=true]'), function(index, item) {\n\t\t\titem.type = 'date';\n\t\t});\n\t} else {\n\t\t$.datepicker.setDefaults( $.datepicker.regional['currentLangVar}'] );\n\t\t$('input[data-isdate=true]').datepicker({\n \t\t\tchangeMonth: true,\n \t\t\tchangeYear: true,\n \t\t\tdateFormat: 'yyyy-mm-dd'\n \t\t});\n\t}\n});\" >\n\n<@wp.headInfo type=\"JS\" info=\"entando-misc-html5-essentials/modernizr-2.5.3-full.js\" />\n<@wp.headInfo type=\"JS_EXT\" info=\"http://code.jquery.com/ui/1.10.0/jquery-ui.min.js\" />\n<@wp.headInfo type=\"CSS_EXT\" info=\"http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.min.css\" />\n<@wp.headInfo type=\"JS_RAW\" info=\"js_for_datepicker}\" />\n
\n\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n<@wp.i18n key=\"i18n_Attribute_Key}\" />\n\n
\n\t<#assign formFieldStartNameVar = userFilterOptionVar.formFieldNames[0] >\n\t<#assign formFieldStartValueVar = userFilterOptionVar.getFormFieldValue(formFieldStartNameVar) >\n\t\n\t
\n\t\t\n\t
\n
\n
\n\t<#assign formFieldEndNameVar = userFilterOptionVar.formFieldNames[1] >\n\t<#assign formFieldEndValueVar = userFilterOptionVar.getFormFieldValue(formFieldEndNameVar) >\n\t\n\t
\n\t\t\n\t
\n
\n
", + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_Enumer', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n
\n\t\n\t
\n\t\t\n\t
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_EnumerMap', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n
\n\t\n\t
\n\t\t\n\t
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_Number', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n
\n\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n<@wp.i18n key="i18n_Attribute_Key}" />\n\n
\n\t<#assign formFieldStartNameVar = userFilterOptionVar.formFieldNames[0] >\n\t<#assign formFieldStartValueVar = userFilterOptionVar.getFormFieldValue(formFieldStartNameVar) >\n\t\n\t
\n\t\t\n\t
\n
\n
\n\t<#assign formFieldEndNameVar = userFilterOptionVar.formFieldNames[1] >\n\t<#assign formFieldEndValueVar = userFilterOptionVar.getFormFieldValue(formFieldEndNameVar) >\n\t\n\t
\n\t\t\n\t
\n
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_Text', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n
\n\t\n\t
\n\t\t\n\t
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_ent_ThreeSt', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign i18n_Attribute_Key = userFilterOptionVar.attribute.name >\n
\n<@wp.i18n key="i18n_Attribute_Key}" />\n<#include "jacms_content_viewer_list_userfilter_ent_Bool_io">\n
\n\t
\n\t\t\n\t\t\n\t\t\n\t
\n
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_met_category', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n<#assign userFilterCategoryCodeVar = userFilterOptionVar.userFilterCategoryCode?default("") >\n<@wp.categories var="systemCategories" titleStyle="prettyFull" root="userFilterCategoryCodeVar}" />\n
\n\t\n\t
\n\t\t\n\t
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilter_met_fulltext', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign formFieldNameVar = userFilterOptionVar.formFieldNames[0] >\n<#assign formFieldValue = userFilterOptionVar.getFormFieldValue(formFieldNameVar) >\n
\n \n
\n \n
\n
', + }, + { + code: 'jacms_content_viewer_list_userfilters', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jacms', + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#if (userFilterOptionsVar??) && userFilterOptionsVar?has_content && (userFilterOptionsVar?size > 0)>\n
\n<#assign hasUserFilterError = false >\n<#list userFilterOptionsVar as userFilterOptionVar>\n<#if (userFilterOptionVar.formFieldErrors??) && userFilterOptionVar.formFieldErrors?has_content && (userFilterOptionVar.formFieldErrors?size > 0)>\n<#assign hasUserFilterError = true >\n\n\n<#if (hasUserFilterError)>\n
\n\t\n\t

<@wp.i18n key="ERRORS" />

\n\t
    \n\t\t<#list userFilterOptionsVar as userFilterOptionVar>\n\t\t\t<#if (userFilterOptionVar.formFieldErrors??) && (userFilterOptionVar.formFieldErrors?size > 0)>\n\t\t\t<#assign formFieldErrorsVar = userFilterOptionVar.formFieldErrors >\n\t\t\t<#list formFieldErrorsVar?keys as formFieldErrorKey>\n\t\t\t
  • \n\t\t\t<@wp.i18n key="jacms_LIST_VIEWER_FIELD" /> formFieldErrorsVar[formFieldErrorKey].attributeName}<#if (formFieldErrorsVar[formFieldErrorKey].rangeFieldType??)>: <@wp.i18n key="formFieldErrorsVar[formFieldErrorKey].rangeFieldType}" /> <@wp.i18n key="formFieldErrorsVar[formFieldErrorKey].errorKey}" />\n\t\t\t
  • \n\t\t\t\n\t\t\t\n\t\t\n\t
\n
\n\n<#assign hasUserFilterError = false >\n

\n
\n\t<#list userFilterOptionsVar as userFilterOptionVar>\n\t\t<#if !userFilterOptionVar.attributeFilter && (userFilterOptionVar.key == "fulltext" || userFilterOptionVar.key == "category")>\n\t\t\t<#include "jacms_content_viewer_list_userfilter_met_userFilterOptionVar.key}" >\n\t\t\n\t\t<#if userFilterOptionVar.attributeFilter >\n\t\t\t<#if userFilterOptionVar.attribute.type == "Monotext" || userFilterOptionVar.attribute.type == "Text" || userFilterOptionVar.attribute.type == "Longtext" || userFilterOptionVar.attribute.type == "Hypertext">\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_Text" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "Enumerator" >\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_Enumer" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "EnumeratorMap" >\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_EnumerMap" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "Number">\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_Number" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "Date">\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_Date" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "Boolean">\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_Boolean" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "CheckBox">\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_CheckBox" >\n\t\t\t\n\t\t\t<#if userFilterOptionVar.attribute.type == "ThreeState">\n\t\t\t\t<#include "jacms_content_viewer_list_userfilter_ent_ThreeSt" >\n\t\t\t\n\t\t\n\t\n\t

\n\t\t" class="btn btn-primary" />\n\t

\n
\n
\n', + }, + { + code: 'jacms_row_content_viewer_list', + locked: true, + widgetType: { + code: 'row_content_viewer_list', + title: 'Content List', + }, + pluginCode: 'jacms', + widgetTypeCode: 'row_content_viewer_list', + guiCode: "<#assign jacms=JspTaglibs[\"/jacms-aps-core\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<@jacms.rowContentList listName=\"contentInfoList\" titleVar=\"titleVar\"\n\tpageLinkVar=\"pageLinkVar\" pageLinkDescriptionVar=\"pageLinkDescriptionVar\" />\n<#if (titleVar??)>\n\t

titleVar}

\n\n<#if (contentInfoList??) && (contentInfoList?has_content) && (contentInfoList?size > 0)>\n\t<@wp.pager listName=\"contentInfoList\" objectName=\"groupContent\" pagerIdFromFrame=true advanced=true offset=5>\n <#assign group=groupContent >\n\t<#include \"default_pagerBlock\">\n\t<#list contentInfoList as contentInfoVar>\n\t<#if (contentInfoVar_index >= groupContent.begin) && (contentInfoVar_index <= groupContent.end)>\n\t\t<#if (contentInfoVar['modelId']??)>\n\t\t<@jacms.content contentId=\"contentInfoVar['contentId']}\" modelId=\"contentInfoVar['modelId']}\" />\n\t\t<#else>\n\t\t<@jacms.content contentId=\"contentInfoVar['contentId']}\" />\n\t\t\n\t\n\t\n\t<#include \"default_pagerBlock\" >\n\t\n\n<#if (pageLinkVar??) && (pageLinkDescriptionVar??)>\n\t

\">pageLinkDescriptionVar}

\n\n<#assign group=\"\" >\n<#assign contentInfoList=\"\">", + }, + { + code: 'jpseo_content_viewer', + locked: true, + widgetType: { + code: 'jpseo_content_viewer', + title: 'Content SEO Meta-description', + }, + pluginCode: 'jpseo', + widgetTypeCode: 'jpseo_content_viewer', + guiCode: '<#assign jacms=JspTaglibs["/jacms-aps-core"]>\n<#assign c=JspTaglibs["http://java.sun.com/jsp/jstl/core"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<#assign jpseo=JspTaglibs["/jpseo-aps-core"]>\n<@jacms.contentInfo param="authToEdit" var="canEditThis" />\n<@jacms.contentInfo param="contentId" var="myContentId" />\n<#if (canEditThis?? && canEditThis)>\n\t
\n\t\tdo/jacms/Content/edit.action?contentId=<@jacms.contentInfo param="contentId" />" class="btn btn-info">\n\t\t<@wp.i18n key="EDIT_THIS_CONTENT" /> \n\t
\n\n<@jpseo.content publishExtraTitle=true publishExtraDescription=true />', + }, + { + code: 'jpseo_model_meta_info', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: 'jpseo', + widgetTypeCode: '', + guiCode: '<#assign c=JspTaglibs["http://java.sun.com/jsp/jstl/core"]>\n<#assign jpseo=JspTaglibs["/jpseo-aps-core"]>\n\n<@jpseo.currentPage param="description" var="metaDescrVar" />\n<#if (metaDescrVar??)>\n" />\n\n\n<#-- EXAMPLE OF meta infos on page -->\n<#--\n<@jpseo.seoMetaTag key="author" var="metaAuthorVar" />\n<#if (metaAuthorVar??)>\n" />\n\n\n<@jpseo.seoMetaTag key="keywords" var="metaKeywords" />\n<#if (metaKeywords??)>\n" />\n\n-->\n', + }, + { + code: 'keycloak_auth', + locked: false, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign wp=JspTaglibs[\"/aps-core\"]>\n<@wp.info key=\"systemParam\" paramName=\"applicationBaseURL\" var=\"appUrl\" />\n", + }, + { + code: 'keycloak_auth_with_redirect', + locked: false, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign wp=JspTaglibs[\"/aps-core\"]>\n", + }, + { + code: 'keycloak-login', + locked: true, + widgetType: { + code: 'keycloak-login', + title: 'Login', + }, + pluginCode: null, + widgetTypeCode: 'keycloak-login', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n<#include "entando_ootb_carbon_include" >\n\n<#assign sessionUser = "" />\n<#assign userDisplayName = "" />\n<#if (Session.currentUser.username != "guest") >\n <#assign sessionUser = Session.currentUser.username />\n <#if (Session.currentUser.profile??) && (Session.currentUser.profile.displayName??)>\n <#assign userDisplayName = Session.currentUser.profile.displayName />\n <#else>\n <#assign userDisplayName = Session.currentUser />\n \n\n\n"\n user-display-name="userDisplayName}"\n redirect-url="<@wp.url baseUrlMode="requestIfRelative" />"\n>', + }, + { + code: 'language', + locked: true, + widgetType: { + code: 'language', + title: 'Language', + }, + pluginCode: null, + widgetTypeCode: 'language', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n<@wp.info key="langs" var="langsVar" />\n<@wp.info key="currentLang" var="currentLangVar" />\n\n<#include "entando_ootb_carbon_include" >\n\n<#assign langstrs = [] />\n<#list langsVar as curLangVar>\n <#assign langurl><@wp.url lang="curLangVar.code}" paramRepeat=true />\n <#assign langdesc><@wp.i18n key="LANG_curLangVar.code?upper_case}" />\n <#assign langstr = ["{\\"code\\": \\"" + curLangVar.code + "\\", \\"descr\\": \\"" + langdesc + "\\", \\"url\\": \\""+ langurl +"\\"}"] />\n <#assign langstrs = langstrs + langstr />\n\n<#assign lang_json_string = langstrs?join(", ") />\n\n', + }, + { + code: 'legacy-navigation-menu', + locked: true, + widgetType: { + code: 'legacy-navigation-menu', + title: 'Legacy Navigation Menu', + }, + pluginCode: null, + widgetTypeCode: 'legacy-navigation-menu', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n<@wp.headInfo type="JS" info="entando-misc-jquery/jquery-3.4.1.min.js" />\n<@wp.headInfo type="JS" info="entando-misc-bootstrap/bootstrap.min.js" />\n\n<@wp.currentPage param="code" var="currentPageCode" />\n \n \n\n \n\n\n\n<#assign previousPage="">', + }, + { + code: 'legacy-navigation-menu_include', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign c=JspTaglibs[\"http://java.sun.com/jsp/jstl/core\"]>\n\n\n<#assign liClass=\"\">\n<#assign homeIcon=\"\">\n<#assign caret=\"\">\n<#assign ulClass=' class=\"dropdown-menu\"'>\n<#assign aClassAndData=\"\">\n<#assign aURL=previousPage.url>\n\n<#if (previousPage.voidPage)>\n <#assign aURL='#' />\n\n\n<#if (previousPage.code?contains(\"homepage\"))>\n <#assign homeIcon=' '>\n\n\n<#if (previousPage.code == currentPageCode)>\n <#assign liClass=' class=\"active\"'>\n\n\n<#if (previousLevel < level)>\n <#assign liClass=' class=\"dropdown\"' >\n\n <#if (previousPage.code == currentPageCode)>\n <#assign liClass=' class=\"dropdown active\"'>\n \n\n <#if previousPage.voidPage>\n <#assign liClass=' class=\" dropdown\"' >\n \n\n <#if (previousLevel > 0) >\n <#assign liClass=' class=\"dropdown-submenu\"'>\n <#if (previousPage.code == currentPageCode)>\n <#assign liClass=' class=\"dropdown-submenu active\"'>\n \n\n <#assign ulClass=' class=\"dropdown-menu\"'>\n \n\n <#assign aClassAndData=' class=\"dropdown-toggle\" data-toggle=\"dropdown\"'>\n\n <#if (previousLevel == 0)>\n <#assign caret=' '>\n \n\n\n
  • \n \n \n homeIcon}\n previousPage.title}\n caret}\n \n\n <#if (previousLevel == level)>
  • \n<#if (previousLevel < level)>\n\n \n \n", + }, + { + code: 'login_form', + locked: false, + widgetType: { + code: 'login_form', + title: 'Legacy Login Form', + }, + pluginCode: null, + widgetTypeCode: 'login_form', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n

    <@wp.i18n key="RESERVED_AREA" />

    \n<#if (Session.currentUser.username != "guest") >\n\t

    <@wp.i18n key="WELCOME" />, Session.currentUser}!

    \n\t<#if (Session.currentUser.entandoUser) >\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t
    <@wp.i18n key="USER_DATE_CREATION" /><@wp.i18n key="USER_DATE_ACCESS_LAST" /><@wp.i18n key="USER_DATE_PASSWORD_CHANGE_LAST" />
    Session.currentUser.creationDate?default("-")}Session.currentUser.lastAccess?default("-")}Session.currentUser.lastPasswordChange?default("-")}
    \n\t\t<#if (!Session.currentUser.credentialsNotExpired) >\n\t\t
    \n\t\t\t

    <@wp.i18n key="USER_STATUS_EXPIRED_PASSWORD" />: do/editPassword.action"><@wp.i18n key="USER_STATUS_EXPIRED_PASSWORD_CHANGE" />

    \n\t\t
    \n\t\t\n\t\n\t<@wp.ifauthorized permission="enterBackend">\n\t\n\t\n\t

    do/logout.action" class="btn"><@wp.i18n key="LOGOUT" />

    \n\t<@wp.pageWithWidget widgetTypeCode="userprofile_editCurrentUser" var="userprofileEditingPageVar" listResult=false />\n\t<#if (userprofileEditingPageVar??) >\n\t

    " ><@wp.i18n key="userprofile_CONFIGURATION" />

    \n\t\n<#else>\n\t<#if (accountExpired?? && accountExpired == true) >\n\t
    \n\t\t

    <@wp.i18n key="USER_STATUS_EXPIRED" />

    \n\t
    \n\t\n\t<#if (wrongAccountCredential?? && wrongAccountCredential == true) >\n\t
    \n\t\t

    <@wp.i18n key="USER_STATUS_CREDENTIALS_INVALID" />

    \n\t
    \n\t\n\t
    \n\t\t<#if (RequestParameters.returnUrl??) >\n\t\t\n\t\t\n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t" class="btn btn-primary" />\n\t\t
    \n\t
    \n', + }, + { + code: 'logo', + locked: false, + widgetType: { + code: 'logo', + title: 'Logo', + }, + pluginCode: null, + widgetTypeCode: 'logo', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n<@wp.info key="systemParam" paramName="applicationBaseURL" var="appUrl" />\nLogo', + }, + { + code: 'messages_system', + locked: false, + widgetType: { + code: 'messages_system', + title: 'System Messages', + }, + pluginCode: null, + widgetTypeCode: 'messages_system', + guiCode: "<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n<#if ((userUnauthorized?? && userUnauthorized == true) || (RequestParameters.userUnauthorized?? && RequestParameters.userUnauthorized?lower_case?matches(\"true\"))) >\n

    <@wp.i18n key=\"USER_UNAUTHORIZED\" escapeXml=false />

    \n<#else>\n<#assign currentPageCode><@wp.currentPage param=\"code\" />\n<#if (currentPageCode == 'notfound')>\n
    \n\t

    <@wp.i18n key=\"PAGE_NOT_FOUND\" escapeXml=false />

    \n
    \n\n<#if (currentPageCode == 'errorpage')>\n
    \n\t

    <@wp.i18n key=\"GENERIC_ERROR\" escapeXml=false />

    \n
    \n\n", + }, + { + code: 'navigation-menu', + locked: true, + widgetType: { + code: 'navigation-menu', + title: 'Navigation Menu', + }, + pluginCode: null, + widgetTypeCode: 'navigation-menu', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n\n<@wp.currentPage param="code" var="currentPageCode" />\n\n<#include "entando_ootb_carbon_include" >\n\n<#assign navstrs = [] />\n<@wp.nav var="page">\n <#assign navstr = ["{\\"code\\": \\"" + page.code + "\\", \\"title\\": \\"" + page.title + "\\", \\"level\\": \\"" + page.level + "\\", \\"url\\": \\""+ page.url +"\\", \\"voidPage\\": " + page.voidPage?string("true", "false") + "}"] />\n <#assign navstrs = navstrs + navstr />\n\n<#assign nav_json_string = navstrs?join(", ") />\n\n', + }, + { + code: 'search_form', + locked: true, + widgetType: { + code: 'search_form', + title: 'Search Form', + }, + pluginCode: 'jacms', + widgetTypeCode: 'search_form', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<@wp.pageWithWidget var="searchResultPageVar" widgetTypeCode="search_result" />\n<#include "entando_ootb_carbon_include" >\n"\n placeholder="<@wp.i18n key="ESSF_SEARCH" />"\n>', + }, + { + code: 'search_result', + locked: true, + widgetType: { + code: 'search_result', + title: 'Search Results', + }, + pluginCode: 'jacms', + widgetTypeCode: 'search_result', + guiCode: "<#assign jacms=JspTaglibs[\"/jacms-aps-core\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n

    <@wp.i18n key=\"SEARCH_RESULTS\" />

    \n<#if (RequestParameters.search?? && RequestParameters.search!='')>\n<@jacms.searcher listName=\"contentListResult\" />\n\n

    <@wp.i18n key=\"SEARCHED_FOR\" />: <#if (RequestParameters.search??)>RequestParameters.search}

    \n<#if (contentListResult??) && (contentListResult?has_content) && (contentListResult?size > 0)>\n<@wp.pager listName=\"contentListResult\" objectName=\"groupContent\" max=10 pagerIdFromFrame=true advanced=true offset=5>\n\t

    <@wp.i18n key=\"SEARCH_RESULTS_INTRO\" /> \n\tgroupContent.size}\n\t<@wp.i18n key=\"SEARCH_RESULTS_OUTRO\" /> [groupContent.begin + 1} – groupContent.end + 1}]:

    \n <#assign group=groupContent >\n\t<#include \"default_pagerBlock\" >\n\t<#list contentListResult as contentId>\n\t<#if (contentId_index >= groupContent.begin) && (contentId_index <= groupContent.end)>\n\t\t<@jacms.content contentId=\"contentId}\" modelId=\"list\" />\n\t\n\t\n\t<#include \"default_pagerBlock\">\n\n<#else>\n

    <@wp.i18n key=\"SEARCH_NOTHING_FOUND\" />

    \n\n<#assign group=\"\" >", + }, + { + code: 'sitemap', + locked: true, + widgetType: { + code: 'sitemap', + title: 'Sitemap', + }, + pluginCode: null, + widgetTypeCode: 'sitemap', + guiCode: '<#assign jacms=JspTaglibs["/jacms-aps-core"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<@jacms.contentList listName="contentList" contentType="NWS" />\n<@wp.currentPage param="code" var="currentPageCode" />\n\n\n
    \n

    Sitemap

    \n\n\n\t\n \n\n\n
    \n<#assign previousPage="">\n', + }, + { + code: 'sitemap_menu_include', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign liClass=\"\">\n<#assign aClass=\"\">\n<#if previousPage.voidPage>\n <#assign liClass=' class=\"nav-header\" '>\n <#assign aClass=' class=\"a-void\" '>\n\n
  • \n<#if previousLevel != 0>\n<#if (!previousPage.voidPage)>\n\n<#else>\n\n\npreviousPage.title}\n<#else>\nPages\n\n<#if (previousLevel == level)>\n
  • \n\n<#if (previousLevel < level)>\n
      \n\n<#if (previousLevel > level)>\n<#list 1..(previousLevel - level) as ignoreMe>\n
    \n\n\n", + }, + { + code: 'userprofile_editCurrentUser_password', + locked: true, + widgetType: { + code: 'userprofile_editCurrentUser_password', + title: 'Edit User Password', + }, + pluginCode: null, + widgetTypeCode: 'userprofile_editCurrentUser_password', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<#assign wpsa=JspTaglibs["/apsadmin-core"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n\n

    <@wp.i18n key="userprofile_EDITPASSWORD" />

    \n\n<#if (Session.currentUser != "guest") >\n\n\t
    " method="post" class="form-horizontal">\n\n\t<@s.if test="hasFieldErrors()">\n\t\t
    \n\t\t\t

    <@wp.i18n key="userprofile_MESSAGE_TITLE_FIELDERRORS" />

    \n\t\t\t
      \n\t\t\t\t<@s.iterator value="fieldErrors">\n\t\t\t\t\t<@s.iterator value="value">\n\t\t\t\t\t\t
    • <@s.property escapeHtml=false />
    • \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\n\n\t

    \n\t\t\n\t

    \n\n\t
    \n\t\t\n\t\t
    \n\t\t\t<@wpsf.password\n\t\t\t\tuseTabindexAutoIncrement=true\n\t\t\t\tname="oldPassword"\n\t\t\t\tid="userprofile-old-password" />\n\t\t
    \n\t
    \n\n\t
    \n\t\t\n\t\t
    \n\t\t\t<@wpsf.password\n\t\t\t\tuseTabindexAutoIncrement=true\n\t\t\t\tname="password"\n\t\t\t\tid="userprofile-new-password" />\n\t\t
    \n\t
    \n\n\t
    \n\t\t\n\t\t
    \n\t\t\t<@wpsf.password\n\t\t\t\tuseTabindexAutoIncrement=true\n\t\t\t\tname="passwordConfirm"\n\t\t\t\tid="userprofile-new-password-confirm" />\n\t\t
    \n\t
    \n\n\t

    \n\t\t<@wp.i18n key="userprofile_SAVE_PASSWORD" var="userprofile_SAVE_PASSWORD" />\n\t\t<@wpsf.submit\n\t\t\tuseTabindexAutoIncrement=true\n\t\t\tvalue="%{#attr.userprofile_SAVE_PASSWORD}"\n\t\t\tcssClass="btn btn-primary" />\n\t

    \n\n\t
    \n\n<#else>\n\t

    \n\t\t<@wp.i18n key="userprofile_PLEASE_LOGIN_TO_EDIT_PASSWORD" />\n\t

    \n', + }, + { + code: 'userprofile_editCurrentUser_profile', + locked: true, + widgetType: { + code: 'userprofile_editCurrentUser_profile', + title: 'Edit User Profile', + }, + pluginCode: null, + widgetTypeCode: 'userprofile_editCurrentUser_profile', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<#assign wpsa=JspTaglibs["/apsadmin-core"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n

    <@wp.i18n key="userprofile_EDITPROFILE_TITLE" />

    \n<#if (Session.currentUser != "guest") >\n\t
    " method="post" class="form-horizontal">\n\t<@s.if test="hasFieldErrors()">\n\t\t
    \n\t\t\t

    <@wp.i18n key="userprofile_MESSAGE_TITLE_FIELDERRORS" />

    \n\t\t\t
      \n\t\t\t\t<@s.iterator value="fieldErrors">\n\t\t\t\t\t<@s.iterator value="value">\n\t\t\t\t\t\t
    • <@s.property escapeHtml=false />
    • \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\n\t<@s.set var="lang" value="defaultLang" />\n\t<@s.iterator value="userProfile.attributeList" var="attribute">\n\t\t<@s.if test="%{#attribute.active}">\n\t\t\t<@wpsa.tracerFactory var="attributeTracer" lang="%{#lang.code}" />\n\t\t\t\t<@s.set var="i18n_attribute_name">userprofile_<@s.property value="userProfile.typeCode" />_<@s.property value="#attribute.name" />\n\t\t\t\t<@s.set var="attribute_id">userprofile_<@s.property value="#attribute.name" />\n\t\t\t\t<#include "userprofile_is_IteratorAttribute" >\n\t\t\n\t\n\n\t

    \n\t\t<@wp.i18n key="userprofile_SAVE_PROFILE" var="userprofile_SAVE_PROFILE" />\n\t\t<@wpsf.submit useTabindexAutoIncrement=true value="%{#attr.userprofile_SAVE_PROFILE}" cssClass="btn btn-primary" />\n\t

    \n\n\t
    \n<#else>\n\t

    \n\t\t<@wp.i18n key="userprofile_PLEASE_LOGIN" />\n\t

    \n', + }, + { + code: 'userprofile_is_currentWithoutProfile', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n

    <@wp.i18n key="userprofile_EDITPROFILE_TITLE" />

    \n

    \n\t<@wp.i18n key="userprofile_CURRENT_USER_WITHOUT_PROFILE" />\n

    ', + }, + { + code: 'userprofile_is_entryCurrentProfile', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<#assign wpsa=JspTaglibs["/apsadmin-core"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n\n<#if (Session.currentUser != "guest") >\n
    " method="post" class="form-horizontal">\n\t<@s.if test="hasFieldErrors()">\n\t\t
    \n\t\t\t

    <@wp.i18n key="userprofile_MESSAGE_TITLE_FIELDERRORS" />

    \n\t\t\t
      \n\t\t\t\t<@s.iterator value="fieldErrors">\n\t\t\t\t\t<@s.iterator value="value">\n\t\t\t\t\t\t
    • <@s.property escapeHtml=false />
    • \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t\n\t<@s.set var="lang" value="defaultLang" />\n\t<@s.iterator value="userProfile.attributeList" var="attribute">\n\t\t<@s.if test="%{#attribute.active}">\n\t\t\t<@wpsa.tracerFactory var="attributeTracer" lang="%{#lang.code}" />\n\t\t\t<@s.set var="i18n_attribute_name">userprofile_<@s.property value="userProfile.typeCode" />_<@s.property value="#attribute.name" />\n\t\t\t<@s.set var="attribute_id">userprofile_<@s.property value="#attribute.name" />\n\t\t\t<#include "userprofile_is_IteratorAttribute" >\n\t\t\n\t\n\t

    \n\t\t<@wp.i18n key="userprofile_SAVE_PROFILE" var="userprofile_SAVE_PROFILE" />\n\t\t<@wpsf.submit useTabindexAutoIncrement=true value="%{#attr.userprofile_SAVE_PROFILE}" cssClass="btn btn-primary" />\n\t

    \n
    \n<#else>\n\t

    <@wp.i18n key="userprofile_PLEASE_LOGIN" />

    \n', + }, + { + code: 'userprofile_is_front-AllList-addElementButton', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsa=JspTaglibs[\"/apsadmin-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n\n<@s.set var=\"add_label\"><@wp.i18n key=\"userprofile_ADDITEM_LIST\" />\n\n<@wpsa.actionParam action=\"addListElement\" var=\"actionName\" >\n\t<@wpsa.actionSubParam name=\"attributeName\" value=\"%{#attribute.name}\" />\n\t<@wpsa.actionSubParam name=\"listLangCode\" value=\"%{#lang.code}\" />\n\n<@s.set var=\"iconImagePath\" id=\"iconImagePath\"><@wp.resourceURL/>administration/common/img/icons/list-add.png\n<@wpsf.submit\n\tcssClass=\"btn\"\n\tuseTabindexAutoIncrement=true\n\taction=\"%{#actionName}\"\n\tvalue=\"%{add_label}\"\n\ttitle=\"%{i18n_attribute_name}%{': '}%{add_label}\" />", + }, + { + code: 'userprofile_is_front_AllList_operationModule', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsa=JspTaglibs[\"/apsadmin-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n\n<@s.if test=\"null == #operationButtonDisabled\">\n\t<@s.set var=\"operationButtonDisabled\" value=\"false\" />\n\n
    \n\t
    \n\t\t<@wpsa.actionParam action=\"moveListElement\" var=\"actionName\" >\n\t\t\t<@wpsa.actionSubParam name=\"attributeName\" value=\"%{#attribute.name}\" />\n\t\t\t<@wpsa.actionSubParam name=\"listLangCode\" value=\"%{#lang.code}\" />\n\t\t\t<@wpsa.actionSubParam name=\"elementIndex\" value=\"%{#elementIndex}\" />\n\t\t\t<@wpsa.actionSubParam name=\"movement\" value=\"UP\" />\n\t\t\n\t\t<@wpsf.submit disabled=\"%{#operationButtonDisabled}\" action=\"%{#actionName}\" type=\"button\" cssClass=\"btn btn-default\" title=\"%{getText('label.moveInPositionNumber')}: %{#elementIndex}\">\n\t\t\n\t\t<@s.text name=\"label.moveInPositionNumber\" />: <@s.property value=\"%{#elementIndex}\" />\n\t\t\n\n\t\t<@wpsa.actionParam action=\"moveListElement\" var=\"actionName\" >\n\t\t\t<@wpsa.actionSubParam name=\"attributeName\" value=\"%{#attribute.name}\" />\n\t\t\t<@wpsa.actionSubParam name=\"listLangCode\" value=\"%{#lang.code}\" />\n\t\t\t<@wpsa.actionSubParam name=\"elementIndex\" value=\"%{#elementIndex}\" />\n\t\t\t<@wpsa.actionSubParam name=\"movement\" value=\"DOWN\" />\n\t\t\n\t\t<@wpsf.submit disabled=\"%{#operationButtonDisabled}\" action=\"%{#actionName}\" type=\"button\" cssClass=\"btn btn-default\" title=\"%{getText('label.moveInPositionNumber')}: %{#elementIndex+2}\">\n\t\t\n\t\t<@s.text name=\"label.moveInPositionNumber\" />: <@s.property value=\"%{#elementIndex}\" />\n\t\t\n\t
    \n\t
    \n\t\t<@wpsa.actionParam action=\"removeListElement\" var=\"actionName\" >\n\t\t\t<@wpsa.actionSubParam name=\"attributeName\" value=\"%{#attribute.name}\" />\n\t\t\t<@wpsa.actionSubParam name=\"listLangCode\" value=\"%{#lang.code}\" />\n\t\t\t<@wpsa.actionSubParam name=\"elementIndex\" value=\"%{#elementIndex}\" />\n\t\t\n\t\t<@wpsf.submit disabled=\"%{#operationButtonDisabled}\" action=\"%{#actionName}\" type=\"button\" cssClass=\"btn btn-default btn-warning\" title=\"%{getText('label.remove')}: %{#elementIndex}\">\n\t\t\n\t\t<@s.text name=\"label.remove\" />: <@s.property value=\"%{#elementIndex}\" />\n\t\t\n\t
    \n
    ", + }, + { + code: 'userprofile_is_front_AttributeInfo', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n\n<@s.if test="#attribute.required">\n\t"><@wp.i18n key="userprofile_ENTITY_ATTRIBUTE_MANDATORY_SHORT" />\n', + }, + { + code: 'userprofile_is_front_attributeInfo-help-block', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n\n<@s.set var=\"validationRules\" value=\"#attribute.validationRules.ognlValidationRule\" />\n<@s.set var=\"hasValidationRulesVar\" value=\"%{#validationRules != null && #validationRules.expression != null}\" />\n\n<@s.if test=\"%{#hasValidationRulesVar || #attribute.type == 'Date' || (#attribute.textAttribute && (#attribute.minLength != -1 || #attribute.maxLength != -1))}\">\n\t\t\n\t\t<@s.if test=\"#attribute.type == 'Date'\">dd/MM/yyyy \n\t\t<@s.if test=\"%{#validationRules.helpMessageKey != null}\">\n\t\t\t<@s.set var=\"label\" scope=\"page\" value=\"#validationRules.helpMessageKey\" /><@wp.i18n key=\"label}\" />\n\t\t\n\t\t<@s.elseif test=\"%{#validationRules.helpMessage != null}\">\n\t\t\t<@s.property value=\"#validationRules.helpMessage\" />\n\t\t\n\t\t<@s.if test=\"#attribute.minLength != -1\">\n\t\t\t \n\t\t\t <@s.property value=\"#attribute.minLength\" />\">\n\t\t\t\t<@wp.i18n key=\"userprofile_ENTITY_ATTRIBUTE_MINLENGTH_SHORT\" />: <@s.property value=\"#attribute.minLength\" />\n\t\t\t\n\t\t\n\t\t<@s.if test=\"#attribute.maxLength != -1\">\n\t\t\t \n\t\t\t <@s.property value=\"#attribute.maxLength\" />\">\n\t\t\t\t<@wp.i18n key=\"userprofile_ENTITY_ATTRIBUTE_MAXLENGTH_SHORT\" />: <@s.property value=\"#attribute.maxLength\" />\n\t\t\t\n\t\t\n\t\n", + }, + { + code: 'userprofile_is_front-BooleanAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n\n \n", + }, + { + code: 'userprofile_is_front-CheckboxAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n\n<@wpsf.checkbox useTabindexAutoIncrement=true\n\tname="%{#attributeTracer.getFormFieldName(#attribute)}"\n\tid="%{attribute_id}" value="%{#attribute.value == true}"/>', + }, + { + code: 'userprofile_is_front-CompositeAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<#assign wpsa=JspTaglibs["/apsadmin-core"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n<@s.set var="i18n_parent_attribute_name" value="#attribute.name" />\n<@s.set var="masterCompositeAttributeTracer" value="#attributeTracer" />\n<@s.set var="masterCompositeAttribute" value="#attribute" />\n<@s.iterator value="#attribute.attributes" var="attribute">\n\t<@s.set var="attributeTracer" value="#masterCompositeAttributeTracer.getCompositeTracer(#masterCompositeAttribute)">\n\t<@s.set var="parentAttribute" value="#masterCompositeAttribute">\n\t<@s.set var="i18n_attribute_name">userprofile_ATTR<@s.property value="%{i18n_parent_attribute_name}" /><@s.property value="#attribute.name" />\n\t<@s.set var="attribute_id">userprofile_<@s.property value="%{i18n_parent_attribute_name}" /><@s.property value="#attribute.name" />_<@s.property value="#elementIndex" />\n\t<#include "userprofile_is_IteratorAttribute" >\n\n<@s.set var="attributeTracer" value="#masterCompositeAttributeTracer" />\n<@s.set var="attribute" value="#masterCompositeAttribute" />\n<@s.set var="parentAttribute" value="">', + }, + { + code: 'userprofile_is_front-DateAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n\n<#assign currentLangVar ><@wp.info key=\"currentLang\" />\n\n<@s.if test=\"#attribute.failedDateString == null\">\n<@s.set var=\"dateAttributeValue\" value=\"#attribute.getFormattedDate('dd/MM/yyyy')\" />\n\n<@s.else>\n<@s.set var=\"dateAttributeValue\" value=\"#attribute.failedDateString\" />\n\n<@wpsf.textfield\nuseTabindexAutoIncrement=true id=\"%{attribute_id}\"\nname=\"%{#attributeTracer.getFormFieldName(#attribute)}\"\nvalue=\"%{#dateAttributeValue}\" maxlength=\"10\" cssClass=\"text userprofile-date\" />\n \n<#assign js_for_datepicker=\"jQuery(function($){\n\t$.datepicker.regional['it'] = {\n\t\tcloseText: 'Chiudi',\n\t\tprevText: '<Prec',\n\t\tnextText: 'Succ>',\n\t\tcurrentText: 'Oggi',\n\t\tmonthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',\n\t\t\t'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],\n\t\tmonthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',\n\t\t\t'Lug','Ago','Set','Ott','Nov','Dic'],\n\t\tdayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'],\n\t\tdayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],\n\t\tdayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],\n\t\tweekHeader: 'Sm',\n\t\tdateFormat: 'dd/mm/yy',\n\t\tfirstDay: 1,\n\t\tisRTL: false,\n\t\tshowMonthAfterYear: false,\n\t\tyearSuffix: ''};\n});\n\njQuery(function($){\n\tif (Modernizr.touch && Modernizr.inputtypes.date) {\n\t\t$.each(\t$('input.userprofile-date'), function(index, item) {\n\t\t\titem.type = 'date';\n\t\t});\n\t} else {\n\t\t$.datepicker.setDefaults( $.datepicker.regional['currentLangVar}'] );\n\t\t$('input.userprofile-date').datepicker({\n \t\t\tchangeMonth: true,\n \t\t\tchangeYear: true,\n \t\t\tdateFormat: 'dd/mm/yyyy'\n \t\t});\n\t}\n});\" >\n\n<@wp.headInfo type=\"JS\" info=\"entando-misc-html5-essentials/modernizr-2.5.3-full.js\" />\n<@wp.headInfo type=\"JS_EXT\" info=\"http://code.jquery.com/ui/1.12.1/jquery-ui.min.js\" />\n<@wp.headInfo type=\"CSS_EXT\" info=\"http://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.min.css\" />\n<@wp.headInfo type=\"JS_RAW\" info=\"js_for_datepicker}\" />", + }, + { + code: 'userprofile_is_front-EnumeratorAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n<@wpsf.select useTabindexAutoIncrement=true\n\tname="%{#attributeTracer.getFormFieldName(#attribute)}"\n\tid="%{attribute_id}"\n\theaderKey="" headerValue=""\n\tlist="#attribute.items" value="%{#attribute.getText()}" />', + }, + { + code: 'userprofile_is_front-EnumeratorMapAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n<@wpsf.select useTabindexAutoIncrement=true\n\tname="%{#attributeTracer.getFormFieldName(#attribute)}"\n\tid="%{attribute_id}"\n\theaderKey="" headerValue=""\n\tlist="#attribute.mapItems" value="%{#attribute.getText()}" listKey="key" listValue="value" />', + }, + { + code: 'userprofile_is_front-HypertextAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n\n<@wpsf.textarea\n\tuseTabindexAutoIncrement=true\n\tcols="50"\n\trows="3"\n\tid="%{#attribute_id}"\n\tname="%{#attributeTracer.getFormFieldName(#attribute)}"\n\tvalue="%{#attribute.textMap[#lang.code]}" />', + }, + { + code: 'userprofile_is_front-LongtextAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n<@wpsf.textarea useTabindexAutoIncrement=true cols="30" rows="5" id="%{attribute_id}" name="%{#attributeTracer.getFormFieldName(#attribute)}" value="%{#attribute.getTextForLang(#lang.code)}" />', + }, + { + code: 'userprofile_is_front-MonolistAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsa=JspTaglibs[\"/apsadmin-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n<@s.if test=\"#attribute.attributes.size() != 0\">\n\t
      \n\n\n<@s.set var=\"masterListAttributeTracer\" value=\"#attributeTracer\" />\n<@s.set var=\"masterListAttribute\" value=\"#attribute\" />\n\n<@s.iterator value=\"#attribute.attributes\" var=\"attribute\" status=\"elementStatus\">\n\t<@s.set var=\"attributeTracer\" value=\"#masterListAttributeTracer.getMonoListElementTracer(#elementStatus.index)\">\n\t<@s.set var=\"elementIndex\" value=\"#elementStatus.index\" />\n\t<@s.set var=\"i18n_attribute_name\">userprofile_ATTR<@s.property value=\"#attribute.name\" />\n\t<@s.set var=\"attribute_id\">userprofile_<@s.property value=\"#attribute.name\" />_<@s.property value=\"#elementStatus.count\" />\n\n\t
    • \">\n\t\t\n\t\t
      \n\t\t\t<@s.if test=\"#attribute.type == 'Boolean'\">\n\t\t\t\t<#include \"userprofile_is_front-BooleanAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'CheckBox'\">\n\t\t\t\t<#include \"userprofile_is_front-CheckboxAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Composite'\">\n\t\t\t\t<#include \"userprofile_is_front-CompositeAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Date'\">\n\t\t\t\t<#include \"userprofile_is_front-DateAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Enumerator'\">\n\t\t\t\t<#include \"userprofile_is_front-EnumeratorAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'EnumeratorMap'\">\n\t\t\t\t<#include \"userprofile_is_front-EnumeratorMapAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Hypertext'\">\n\t\t\t\t<#include \"userprofile_is_front-HypertextAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Longtext'\">\n\t\t\t\t<#include \"userprofile_is_front-LongtextAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Monotext'\">\n\t\t\t\t<#include \"userprofile_is_front-MonotextAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Number'\">\n\t\t\t\t<#include \"userprofile_is_front-NumberAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'ThreeState'\">\n\t\t\t\t<#include \"userprofile_is_front-ThreeStateAttribute\" >\n\t\t\t\n\t\t\t<@s.elseif test=\"#attribute.type == 'Text'\">\n\t\t\t\t<#include \"userprofile_is_front-MonotextAttribute\" >\n\t\t\t\n\t\t\t<@s.else>\n\t\t\t\t<#include \"userprofile_is_front-MonotextAttribute\" >\n\t\t\t\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
      \n\t
    • \n\n\n<@s.set var=\"attributeTracer\" value=\"#masterListAttributeTracer\" />\n<@s.set var=\"attribute\" value=\"#masterListAttribute\" />\n<@s.set var=\"elementIndex\" value=\"\" />\n<@s.if test=\"#attribute.attributes.size() != 0\">\n
    \n\n<@s.if test=\"#lang.default\">\n\t
    \n\t\t
    \n\t\t\t<#include \"userprofile_is_front-AllList-addElementButton\" >\n\t\t
    \n\t
    \n", + }, + { + code: 'userprofile_is_front-MonotextAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n<@wpsf.textfield useTabindexAutoIncrement=true id="%{attribute_id}"\n\tname="%{#attributeTracer.getFormFieldName(#attribute)}" value="%{#attribute.getTextForLang(#lang.code)}"\n\tmaxlength="254" />', + }, + { + code: 'userprofile_is_front-NumberAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign s=JspTaglibs["/struts-tags"]>\n<#assign wp=JspTaglibs["/aps-core"]>\n<#assign wpsf=JspTaglibs["/apsadmin-form"]>\n\n<@s.if test="#attribute.failedNumberString == null">\n\t<@s.set var="numberAttributeValue" value="#attribute.value">\n\n<@s.else>\n\t<@s.set var="numberAttributeValue" value="#attribute.failedNumberString">\n\n<@wpsf.textfield\n\t\tuseTabindexAutoIncrement=true\n\t\tid="%{#attribute_id}"\n\t\tname="%{#attributeTracer.getFormFieldName(#attribute)}"\n\t\tvalue="%{#numberAttributeValue}"\n\t\tmaxlength="254" />', + }, + { + code: 'userprofile_is_front-ThreeStateAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n\n \n\n \n", + }, + { + code: 'userprofile_is_IteratorAttribute', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: "<#assign s=JspTaglibs[\"/struts-tags\"]>\n<#assign wp=JspTaglibs[\"/aps-core\"]>\n<#assign wpsa=JspTaglibs[\"/apsadmin-core\"]>\n<#assign wpsf=JspTaglibs[\"/apsadmin-form\"]>\n<#assign i18n_attribute_name ><@s.property value=\"#i18n_attribute_name\" />\n<@s.if test=\"#attribute.type == 'Boolean'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-BooleanAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'CheckBox'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-CheckboxAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Composite'\">\n\t
    \n\t\t
    \">\n\t\t\t\n\t\t\t\t<@wp.i18n key=\"i18n_attribute_name}\" />\n\t\t\t\t<#include \"userprofile_is_front_AttributeInfo\" >\n\t\t\t\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t\t<#include \"userprofile_is_front-CompositeAttribute\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Date'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-DateAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Enumerator'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-EnumeratorAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'EnumeratorMap'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-EnumeratorMapAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Hypertext'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-HypertextAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'List'\">\n\t
    \n\t\t
    \">\n\t\t\t\n\t\t\t\t<@wp.i18n key=\"i18n_attribute_name}\" />\n\t\t\t\t\t<#include \"userprofile_is_front_AttributeInfo\" >\n\t\t\t\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t\t<#include \"userprofile_is_front-MonolistAttribute\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Longtext'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-LongtextAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Monolist'\">\n\t
    \n\t\t
    \">\n\t\t\t<@wp.i18n key=\"i18n_attribute_name}\" />\n\t\t\t\t<#include \"userprofile_is_front_AttributeInfo\" >\n\t\t\t\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t\t<#include \"userprofile_is_front-MonolistAttribute\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Monotext'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-MonotextAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Number'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-NumberAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'Text'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-MonotextAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.elseif test=\"#attribute.type == 'ThreeState'\">\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-ThreeStateAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n\n<@s.else> <#-- for all other types, insert a simple label and a input[type=\"text\"] -->\n\t
    \">\n\t\t\n\t\t
    \n\t\t\t<#include \"userprofile_is_front-MonotextAttribute\" >\n\t\t\t<#include \"userprofile_is_front_attributeInfo-help-block\" >\n\t\t
    \n\t
    \n", + }, + { + code: 'userprofile_is_passwordChanged', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n<#assign s=JspTaglibs["/struts-tags"]>\n\n

    <@wp.i18n key="userprofile_EDITPASSWORD_TITLE" />

    \n

    <@wp.i18n key="userprofile_PASSWORD_UPDATED" />

    \n<@s.if test="!#session.currentUser.credentialsNonExpired">\n\t

    \n\t\t" ><@wp.i18n key="userprofile_PLEASE_LOGIN_AGAIN" />\n\t

    \n', + }, + { + code: 'userprofile_is_profileChangeConfirmation', + locked: true, + widgetType: { + code: null, + title: null, + }, + pluginCode: null, + widgetTypeCode: '', + guiCode: '<#assign wp=JspTaglibs["/aps-core"]>\n

    <@wp.i18n key="userprofile_EDITPROFILE_TITLE" />

    \n

    <@wp.i18n key="userprofile_PROFILE_UPDATED" />

    ', + }, + ], +};