Custom Page Templates

Custom page templates allow you to customize specific FintechOS Portal components, such as login pages or session expiration pages. You can specify the HTML, CSS, and JavaScript code of the page and also use predefined tokens to configure the look-and-feel of the page logo, translations, or error messages.

Currently, you can configure custom page templates only from the Login Page Template and Session Expiry Page Template controls on the Portal Profiles editor.

To configure a custom page template, fill in the following fields:

  • Name - Internal identifier of the custom page template.
  • Display Name - The page name displayed in the user interface.
  • Template - The page content. You can use the rich text editor or, from the Tools menu, you can switch to the Source Code mode to insert the HTML code directly. The rich text editor also supports Tokens, which allow you to insert placeholders for predefined content.
  • JavaScript - You can use this section to set up JavaScript code to run on the page, such as event handlers.
  • CSS Code - Insert the code for the styling of the page.
  • Portal Profiles - This section displays the Portal Profiles this custom page template is associated with.


You can use the following tokens in the Template section of the custom page.

Token Generated HTML Code Observations
<div class='logoImg' style='background-image: url(""/LoginService/DownloadCompanyLogo"");'></div>
Inserts either the default logo or the logo set in the portal profile.
<div class='cardLoginTitle'>{ Strings.CustomLogin_LoginTitle }</div>
The translations key can be updated from the Localization page.
<div><p data-key='Logon_Product_Description' data-resource='EBS.Core.Web.MVC.LocalizationResources.Strings'>
The translations key can be updated from the Localization page.
<label for='usernameField' class='labelAnimated active'>{ Strings.CustomLogin_UserNameLabel }</label>
The translations key can be updated from the Localization page.
<input autocomplete='off' class='valid' id='usernameField' name='UserName' placeholder='{ Strings.CustomLogin_UserNameField }' value='{userNameValue}' type='text' aria-required='true' aria-invalid='false' aria-describedby='usernameField-error'/> <span class='active field-validation-valid' data-valmsg-for='UserName' data-valmsg-replace='true'></span>
<label for='passwordField' class='labelAnimated active'>{ Strings.CustomLogin_PasswordLabel }</label>
The translations key can be updated from the Localization page.
<input autocomplete='new-password' class='valid' id='passwordField' name='Password' placeholder='{ Strings.CustomLogin_PasswordField }' type='password' aria-required='true' aria-invalid='false' aria-describedby='passwordField-error'/> <span class='active field-validation-valid' data-valmsg-for='Password' data-valmsg-replace='true'></span>
<input type='submit' class='btn btn-block btn-lg btn-fill btn-login' value='{ Strings.CustomLogin_LoginButtonText }'/>
The translations key can be updated from the Localization page.
<a href='/Account/ForgotPassword'>{ Strings.CustomLogin_HaveYouForgottenYourPassword }</a>
This is available only if the reset-password feature is enabled. Otherwise the no HTML is generated.
<div class='login-error-message'></div>
<div class='login-error-message'> <div class='validation-summary-errors'><span>{errorMessage}</span></div>{passwordResetText}</div>
In case there is no error, the first HTML is generated. If there is an error, the second one is used. If the reset-password feature is enabled and the password expired, the following code is added:
Click <a href='{0}'>here</a> to reset your password.

Default Behaviors for Custom Pages

  • Background picture - If no picture is set in the portal profile, the default login background is inserted.
  • Logo - If no logo is set in the portal profile, the default logo is inserted.
  • Username and password - Both fields are set as required and validation errors are displayed if no value is provided.