Login screen customization ... more explanation is needed

According to the documentation (Login Screen - CUBA Platform. Developer’s Manual):

…the login screen can be customized. I’ve done this in a sandbox project, and I can’t change anything at all. The designer opens up with all the elements in green and none of them can be moved, changed… or customized in any fashion at all.

Is this part of the documentation outdated, or is it missing information as to what can be changed and what cannot? (Because it appears nothing at all can be changed!)

Hi,

There are some rules when you extend descriptor of a screen. You can find them in the documentation.

Shortly for screen descriptor:

  1. We can add new components
  2. We can override attributes of components from the parent screen
  3. Maybe it is not clear from the “Screen Designer” but we can change the order of components in the container.

For instance, we extend LoginScreen (not legacy) and override login button:

<window xmlns="http://schemas.haulmont.com/cuba/screen/window.xsd"
        messagesPack="com.company.flogincusto.web.screens"
        extends="/com/haulmont/cuba/web/app/login/login-screen.xml"
        xmlns:ext="http://schemas.haulmont.com/cuba/window-ext.xsd">
    <layout>
        <vbox id="loginWrapper">
            <vbox id="loginMainBox">
                <vbox id="loginForm">
                    <button id="loginButton" ext:index="0" caption="Log in"/>
                </vbox>
            </vbox>
        </vbox>
    </layout>
</window>

Using index=0 we move loginButton to the first place in the container.

In the case of login screen, it is also possible to provide your implementation. You need to add property cuba.web.loginScreenId with an id of the custom login screen to the web-app.properties file (see documentation).