Improve a little bit the readability of the rendered template

This commit is contained in:
Joseph Garrone 2024-05-14 05:30:03 +02:00
parent 7eb13db467
commit f19e622d39
2 changed files with 147 additions and 230 deletions

View File

@ -1,271 +1,189 @@
<script>const _= <script>const _=
<#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
(()=>{ (()=>{
<#assign pageId="PAGE_ID_xIgLsPgGId9D8e">
const out = ${ftl_object_to_js_code_declaring_an_object(.data_model, [])?no_esc}; const out = ${ftl_object_to_js_code_declaring_an_object(.data_model, [])?no_esc};
out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); }; out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); };
out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); }; out["messagesPerField"]= {
<#assign fieldNames = [ FIELD_NAMES_eKsIY4ZsZ4xeM ]>
out["messagesPerField"]= { <#attempt>
<#assign fieldNames = [ FIELD_NAMES_eKsIY4ZsZ4xeM ]> <#if profile?? && profile.attributes?? && profile.attributes?is_enumerable>
<#list profile.attributes as attribute>
<#attempt> <#if fieldNames?seq_contains(attribute.name)>
<#if profile?? && profile.attributes?? && profile.attributes?is_enumerable> <#continue>
<#list profile.attributes as attribute> </#if>
<#if fieldNames?seq_contains(attribute.name)> <#assign fieldNames += [attribute.name]>
<#continue> </#list>
</#if> </#if>
<#assign fieldNames += [attribute.name]> <#recover>
</#list> </#attempt>
</#if> "printIfExists": function (fieldName, text) {
<#recover> <#if !messagesPerField?? || !(messagesPerField?is_hash)>
</#attempt> throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
<#else>
"printIfExists": function (fieldName, text) { <#list fieldNames as fieldName>
if(fieldName === "${fieldName}" ){
<#if !messagesPerField?? || !(messagesPerField?is_hash)> <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
throw new Error("You're not supposed to use messagesPerField.printIfExists in this page"); <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
<#else> <#assign doExistErrorOnUsernameOrPassword = "">
<#list fieldNames as fieldName> <#attempt>
if(fieldName === "${fieldName}" ){ <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover>
<#-- https://github.com/keycloakify/keycloakify/pull/218 --> <#assign doExistErrorOnUsernameOrPassword = true>
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'> </#attempt>
<#if doExistErrorOnUsernameOrPassword>
<#assign doExistErrorOnUsernameOrPassword = ""> return text;
<#attempt>
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover>
<#assign doExistErrorOnUsernameOrPassword = true>
</#attempt>
<#if doExistErrorOnUsernameOrPassword>
return text;
<#else>
<#assign doExistMessageForField = "">
<#attempt>
<#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
<#recover>
<#assign doExistMessageForField = true>
</#attempt>
return <#if doExistMessageForField>text<#else>undefined</#if>;
</#if>
<#else> <#else>
<#assign doExistMessageForField = ""> <#assign doExistMessageForField = "">
<#attempt> <#attempt>
<#assign doExistMessageForField = messagesPerField.exists('${fieldName}')> <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
<#recover> <#recover>
<#assign doExistMessageForField = true> <#assign doExistMessageForField = true>
</#attempt> </#attempt>
return <#if doExistMessageForField>text<#else>undefined</#if>; return <#if doExistMessageForField>text<#else>undefined</#if>;
</#if> </#if>
<#else>
<#assign doExistMessageForField = "">
} <#attempt>
</#list> <#assign doExistMessageForField = messagesPerField.exists('${fieldName}')>
<#recover>
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated"); <#assign doExistMessageForField = true>
</#if> </#attempt>
return <#if doExistMessageForField>text<#else>undefined</#if>;
}, </#if>
"existsError": function (){
function existsError_singleFieldName(fieldName) {
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
<#else>
<#list fieldNames as fieldName>
if(fieldName === "${fieldName}" ){
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
<#assign doExistErrorOnUsernameOrPassword = "">
<#attempt>
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover>
<#assign doExistErrorOnUsernameOrPassword = true>
</#attempt>
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
<#else>
<#assign doExistErrorMessageForField = "">
<#attempt>
<#assign doExistErrorMessageForField = messagesPerField.existsError('${fieldName}')>
<#recover>
<#assign doExistErrorMessageForField = true>
</#attempt>
return <#if doExistErrorMessageForField>true<#else>false</#if>;
</#if>
}
</#list>
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
</#if>
}
for( let i = 0; i < arguments.length; i++ ){
if( existsError_singleFieldName(arguments[i]) ){
return true;
} }
</#list>
} throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
</#if>
return false; },
"existsError": function (){
}, function existsError_singleFieldName(fieldName) {
"get": function (fieldName) {
<#if !messagesPerField?? || !(messagesPerField?is_hash)> <#if !messagesPerField?? || !(messagesPerField?is_hash)>
throw new Error("You're not supposed to use messagesPerField.get in this page"); throw new Error("You're not supposed to use messagesPerField.printIfExists in this page");
<#else> <#elske>
<#list fieldNames as fieldName> <#list fieldNames as fieldName>
if(fieldName === "${fieldName}" ){ if(fieldName === "${fieldName}" ){
<#-- https://github.com/keycloakify/keycloakify/pull/218 --> <#-- https://github.com/keycloakify/keycloakify/pull/218 -->
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'> <#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
<#assign doExistErrorOnUsernameOrPassword = ""> <#assign doExistErrorOnUsernameOrPassword = "">
<#attempt> <#attempt>
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')> <#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover> <#recover>
<#assign doExistErrorOnUsernameOrPassword = true> <#assign doExistErrorOnUsernameOrPassword = true>
</#attempt> </#attempt>
<#if doExistErrorOnUsernameOrPassword>
<#attempt>
return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
<#recover>
return "Invalid username or password.";
</#attempt>
<#else>
<#attempt>
return "${messagesPerField.get('${fieldName}')?no_esc}";
<#recover>
return "";
</#attempt>
</#if>
<#else>
<#attempt>
return "${messagesPerField.get('${fieldName}')?no_esc}";
<#recover>
return "invalid field";
</#attempt>
</#if>
}
</#list>
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
</#if>
},
"exists": function (fieldName) {
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
throw new Error("You're not supposed to use messagesPerField.exists in this page");
<#else>
<#list fieldNames as fieldName>
if(fieldName === "${fieldName}" ){
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
<#assign doExistErrorOnUsernameOrPassword = "">
<#attempt>
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover>
<#assign doExistErrorOnUsernameOrPassword = true>
</#attempt>
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>; return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
<#else> <#else>
<#assign doExistErrorMessageForField = ""> <#assign doExistErrorMessageForField = "">
<#attempt> <#attempt>
<#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')> <#assign doExistErrorMessageForField = messagesPerField.existsError('${fieldName}')>
<#recover> <#recover>
<#assign doExistErrorMessageForField = true> <#assign doExistErrorMessageForField = true>
</#attempt> </#attempt>
return <#if doExistErrorMessageForField>true<#else>false</#if>; return <#if doExistErrorMessageForField>true<#else>false</#if>;
</#if> </#if>
} }
</#list> </#list>
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated"); throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
</#if> </#if>
},
"getFirstError": function () {
for( let i = 0; i < arguments.length; i++ ){
const fieldName = arguments[i];
if( out.messagesPerField.existsError(fieldName) ){
return out.messagesPerField.get(fieldName);
}
}
} }
}; for( let i = 0; i < arguments.length; i++ ){
if( existsError_singleFieldName(arguments[i]) ){
out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr"; return true;
out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx"; }
out["themeType"] = "KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr"; }
out["themeName"] = "KEYCLOAKIFY_THEME_NAME_cXxKd3xEer"; return false;
out["pageId"] = "${pageId}"; },
"get": function (fieldName) {
try { <#if !messagesPerField?? || !(messagesPerField?is_hash)>
throw new Error("You're not supposed to use messagesPerField.get in this page");
out["url"]["resourcesCommonPath"] = out["url"]["resourcesPath"] + "/" + "RESOURCES_COMMON_cLsLsMrtDkpVv"; <#else>
<#list fieldNames as fieldName>
} catch(error) { if(fieldName === "${fieldName}" ){
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
<#assign doExistErrorOnUsernameOrPassword = "">
<#attempt>
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover>
<#assign doExistErrorOnUsernameOrPassword = true>
</#attempt>
<#if doExistErrorOnUsernameOrPassword>
<#attempt>
return "${kcSanitize(msg('invalidUserMessage'))?no_esc}";
<#recover>
return "Invalid username or password.";
</#attempt>
<#else>
<#attempt>
return "${messagesPerField.get('${fieldName}')?no_esc}";
<#recover>
return "";
</#attempt>
</#if>
<#else>
<#attempt>
return "${messagesPerField.get('${fieldName}')?no_esc}";
<#recover>
return "invalid field";
</#attempt>
</#if>
}
</#list>
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
</#if>
},
"exists": function (fieldName) {
<#if !messagesPerField?? || !(messagesPerField?is_hash)>
throw new Error("You're not supposed to use messagesPerField.exists in this page");
<#else>
<#list fieldNames as fieldName>
if(fieldName === "${fieldName}" ){
<#-- https://github.com/keycloakify/keycloakify/pull/218 -->
<#if ('${fieldName}' == 'username' || '${fieldName}' == 'password') && pageId != 'register.ftl' && pageId != 'register-user-profile.ftl'>
<#assign doExistErrorOnUsernameOrPassword = "">
<#attempt>
<#assign doExistErrorOnUsernameOrPassword = messagesPerField.existsError('username', 'password')>
<#recover>
<#assign doExistErrorOnUsernameOrPassword = true>
</#attempt>
return <#if doExistErrorOnUsernameOrPassword>true<#else>false</#if>;
<#else>
<#assign doExistErrorMessageForField = "">
<#attempt>
<#assign doExistErrorMessageForField = messagesPerField.exists('${fieldName}')>
<#recover>
<#assign doExistErrorMessageForField = true>
</#attempt>
return <#if doExistErrorMessageForField>true<#else>false</#if>;
</#if>
}
</#list>
throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated");
</#if>
},
"getFirstError": function () {
for( let i = 0; i < arguments.length; i++ ){
const fieldName = arguments[i];
if( out.messagesPerField.existsError(fieldName) ){
return out.messagesPerField.get(fieldName);
}
}
} }
};
return out; out["keycloakifyVersion"] = "KEYCLOAKIFY_VERSION_xEdKd3xEdr";
out["themeVersion"] = "KEYCLOAKIFY_THEME_VERSION_sIgKd3xEdr3dx";
out["themeType"] = "KEYCLOAKIFY_THEME_TYPE_dExKd3xEdr";
out["themeName"] = "KEYCLOAKIFY_THEME_NAME_cXxKd3xEer";
out["pageId"] = "${pageId}";
})() try {
out["url"]["resourcesCommonPath"] = out["url"]["resourcesPath"] + "/" + "RESOURCES_COMMON_cLsLsMrtDkpVv";
} catch(error) { }
return out;
})();
<#function ftl_object_to_js_code_declaring_an_object object path> <#function ftl_object_to_js_code_declaring_an_object object path>
<#local isHash = ""> <#local isHash = "">
@ -289,7 +207,6 @@
<#return "ABORT: We can't list keys on this object"> <#return "ABORT: We can't list keys on this object">
</#attempt> </#attempt>
<#local out_seq = []> <#local out_seq = []>
<#list keys as key> <#list keys as key>

View File

@ -108,7 +108,7 @@ export function generateFtlFilesCodeFactory(params: {
const ftlObjectToJsCodeDeclaringAnObjectPlaceholder = '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }'; const ftlObjectToJsCodeDeclaringAnObjectPlaceholder = '{ "x": "vIdLqMeOed9sdLdIdOxdK0d" }';
$("head").prepend(["<script>", ` window.${nameOfTheGlobal}= ${ftlObjectToJsCodeDeclaringAnObjectPlaceholder};`, "</script>"].join("\n")); $("head").prepend(`<script>\nwindow.${nameOfTheGlobal}=${ftlObjectToJsCodeDeclaringAnObjectPlaceholder}</script>`);
// Remove part of the document marked as ignored. // Remove part of the document marked as ignored.
{ {