openrat-cms

OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs | README

commit 01d570e9b4c3b13da27e863fad35077d5ea9085f
parent 782c49174161598efcee4f38c719a82914b953b3
Author: Jan Dankert <develop@jandankert.de>
Date:   Tue, 20 Oct 2020 22:10:15 +0200

New form layout.

Diffstat:
Mmodules/cms/action/LoginAction.class.php | 5-----
Mmodules/cms/ui/themes/default/html/views/login/login.php | 102++++++++++++++++++++++++-------------------------------------------------------
Mmodules/cms/ui/themes/default/html/views/login/login.tpl.src.xml | 140+++++++++++++++++--------------------------------------------------------------
Mmodules/template_engine/components/html/component_password/PasswordComponent.class.php | 14++++++++++++--
Mmodules/template_engine/components/template.xsd | 3+++
5 files changed, 75 insertions(+), 189 deletions(-)

diff --git a/modules/cms/action/LoginAction.class.php b/modules/cms/action/LoginAction.class.php @@ -327,11 +327,6 @@ class LoginAction extends BaseAction } - $this->setTemplateVar('objectid' ,$this->getRequestVar('objectid' ,RequestParams::FILTER_NUMBER) ); - $this->setTemplateVar('projectid' ,$this->getRequestVar('projectid' ,RequestParams::FILTER_NUMBER) ); - $this->setTemplateVar('modelid' ,$this->getRequestVar('modelid' ,RequestParams::FILTER_NUMBER) ); - $this->setTemplateVar('languageid',$this->getRequestVar('languageid',RequestParams::FILTER_NUMBER) ); - $this->setTemplateVar('register' ,$conf['login' ]['register' ]); $this->setTemplateVar('send_password',$conf['login' ]['send_password']); diff --git a/modules/cms/ui/themes/default/html/views/login/login.php b/modules/cms/ui/themes/default/html/views/login/login.php @@ -36,14 +36,10 @@ </div> <?php } ?> <?php $if1=(!O::config('login','nologin')); if($if1) { ?> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('USER_USERNAME').'') ?> - </span> - </label> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('USER_USERNAME').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> <?php $if1=!(isset($force_username)); if($if1) { ?> <input name="<?php echo O::escapeHtml('login_name') ?>" required="<?php echo O::escapeHtml('required') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('USER_USERNAME').'') ?>" autofocus="<?php echo O::escapeHtml('autofocus') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('128') ?>" value="<?php echo O::escapeHtml(''.@$login_name.'') ?>" class="<?php echo O::escapeHtml('or-name or-input') ?>" /><?php echo O::escapeHtml('') ?> <?php } ?> @@ -53,29 +49,19 @@ </span> <?php } ?> </div> - </div> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('USER_PASSWORD').'') ?> - </span> - </label> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('password') ?>" name="<?php echo O::escapeHtml('login_password') ?>" size="<?php echo O::escapeHtml('20') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" value="<?php echo O::escapeHtml(''.@$login_password.'') ?>" class="<?php echo O::escapeHtml('or-name or-input') ?>" /><?php echo O::escapeHtml('') ?> - </div> - </div> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('remember') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$remember){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('REMEMBER_ME').'') ?> + </section> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('USER_PASSWORD').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('password') ?>" name="<?php echo O::escapeHtml('login_password') ?>" size="<?php echo O::escapeHtml('20') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" required="<?php echo O::escapeHtml('required') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('USER_PASSWORD').'') ?>" value="<?php echo O::escapeHtml(''.@$login_password.'') ?>" class="<?php echo O::escapeHtml('or-name or-input') ?>" /><?php echo O::escapeHtml('') ?> + <label><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('checkbox') ?>" name="<?php echo O::escapeHtml('remember') ?>" value="<?php echo O::escapeHtml('1') ?>" <?php if(@$remember){ ?>checked="<?php echo O::escapeHtml('checked') ?>"<?php } ?> class="<?php echo O::escapeHtml('or-form-checkbox') ?>" /><?php echo O::escapeHtml('') ?> + <span class="<?php echo O::escapeHtml('or-form-label') ?>"><?php echo O::escapeHtml(''.@O::lang('REMEMBER_ME').'') ?> </span> </label> </div> - </div> + </section> <?php } ?> <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-closed') ?>"><?php echo O::escapeHtml('') ?> <h2 class="<?php echo O::escapeHtml('or-collapsible-title or-group-title or-collapsible-act-switch') ?>"><?php echo O::escapeHtml(''.@O::lang('USER_NEW_PASSWORD').'') ?> @@ -85,28 +71,14 @@ </i> </h2> <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('USER_NEW_PASSWORD').'') ?> - </span> - </label> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('password') ?>" name="<?php echo O::escapeHtml('password1') ?>" size="<?php echo O::escapeHtml('25') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" value="<?php echo O::escapeHtml(''.@$password1.'') ?>" class="<?php echo O::escapeHtml('or- or-input') ?>" /><?php echo O::escapeHtml('') ?> - </div> - </div> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('USER_NEW_PASSWORD_REPEAT').'') ?> - </span> - </label> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('password') ?>" name="<?php echo O::escapeHtml('password2') ?>" size="<?php echo O::escapeHtml('25') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" value="<?php echo O::escapeHtml(''.@$password2.'') ?>" class="<?php echo O::escapeHtml('or- or-input') ?>" /><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('USER_NEW_PASSWORD').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('password') ?>" name="<?php echo O::escapeHtml('password1') ?>" size="<?php echo O::escapeHtml('25') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('USER_NEW_PASSWORD').'') ?>" minlength="<?php echo O::escapeHtml(''.O::config('security','password','min_length').'') ?>" value="<?php echo O::escapeHtml(''.@$password1.'') ?>" class="<?php echo O::escapeHtml('or- or-input') ?>" /><?php echo O::escapeHtml('') ?> + <input type="<?php echo O::escapeHtml('password') ?>" name="<?php echo O::escapeHtml('password2') ?>" size="<?php echo O::escapeHtml('25') ?>" maxlength="<?php echo O::escapeHtml('256') ?>" placeholder="<?php echo O::escapeHtml(''.@O::lang('USER_NEW_PASSWORD_REPEAT').'') ?>" minlength="<?php echo O::escapeHtml(''.O::config('security','password','min_length').'') ?>" value="<?php echo O::escapeHtml(''.@$password2.'') ?>" class="<?php echo O::escapeHtml('or- or-input') ?>" /><?php echo O::escapeHtml('') ?> </div> - </div> + </section> </div> </section> <section class="<?php echo O::escapeHtml('or-group or-collapsible or-collapsible--is-closed') ?>"><?php echo O::escapeHtml('') ?> @@ -117,17 +89,13 @@ </i> </h2> <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('USER_TOKEN').'') ?> - </span> - </label> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('USER_TOKEN').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> <input name="<?php echo O::escapeHtml('user_token') ?>" type="<?php echo O::escapeHtml('text') ?>" maxlength="<?php echo O::escapeHtml('30') ?>" value="<?php echo O::escapeHtml('') ?>" class="<?php echo O::escapeHtml('or-input') ?>" /><?php echo O::escapeHtml('') ?> </div> - </div> + </section> </div> </section> <?php $if1=(intval(1)<count($dbids)); if($if1) { ?> @@ -141,14 +109,10 @@ </i> </h2> <div class="<?php echo O::escapeHtml('or-collapsible-value or-group-value') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-line') ?>"><?php echo O::escapeHtml('') ?> - <div class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <label class="<?php echo O::escapeHtml('or-label') ?>"><?php echo O::escapeHtml('') ?> - <span><?php echo O::escapeHtml(''.@O::lang('DATABASE').'') ?> - </span> - </label> - </div> - <div class="<?php echo O::escapeHtml('or-value') ?>"><?php echo O::escapeHtml('') ?> + <section class="<?php echo O::escapeHtml('or-fieldset') ?>"><?php echo O::escapeHtml('') ?> + <h3 class="<?php echo O::escapeHtml('or-fieldset-label') ?>"><?php echo O::escapeHtml(''.@O::lang('DATABASE').'') ?> + </h3> + <div class="<?php echo O::escapeHtml('or-fieldset-value') ?>"><?php echo O::escapeHtml('') ?> <select name="<?php echo O::escapeHtml('dbid') ?>" size="<?php echo O::escapeHtml('1') ?>" class="<?php echo O::escapeHtml('or-input') ?>"><?php echo O::escapeHtml('') ?> <?php foreach($dbids as $_key=>$_value) { ?> <option value="<?php echo O::escapeHtml(''.@$_key.'') ?>" <?php if($_key==$dbid){ ?>selected="<?php echo O::escapeHtml('selected') ?>"<?php } ?>><?php echo O::escapeHtml(''.@$_value.'') ?> @@ -156,17 +120,13 @@ <?php } ?> </select> </div> - </div> + </section> </div> </section> <?php } ?> <?php if(!$if1) { ?> <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('dbid') ?>" value="<?php echo O::escapeHtml(''.@$dbid.'') ?>" /><?php echo O::escapeHtml('') ?> <?php } ?> - <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('objectid') ?>" value="<?php echo O::escapeHtml(''.@$objectid.'') ?>" /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('modelid') ?>" value="<?php echo O::escapeHtml(''.@$modelid.'') ?>" /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('projectid') ?>" value="<?php echo O::escapeHtml(''.@$projectid.'') ?>" /><?php echo O::escapeHtml('') ?> - <input type="<?php echo O::escapeHtml('hidden') ?>" name="<?php echo O::escapeHtml('languageid') ?>" value="<?php echo O::escapeHtml(''.@$languageid.'') ?>" /><?php echo O::escapeHtml('') ?> </div> <div class="<?php echo O::escapeHtml('or-form-actionbar') ?>"><?php echo O::escapeHtml('') ?> <div class="<?php echo O::escapeHtml('or-btn or-btn--primary or-act-form-save') ?>"><?php echo O::escapeHtml('') ?> diff --git a/modules/cms/ui/themes/default/html/views/login/login.tpl.src.xml b/modules/cms/ui/themes/default/html/views/login/login.tpl.src.xml @@ -1,7 +1,7 @@ <output xmlns="http://www.openrat.de/template" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openrat.de/template ../../../../../../../template_engine/components/template.xsd"> - <form cancel="false" label="${message:menu_login}" visible="true" action="login" subaction="login" afterSuccess="reloadAll"> + <form cancel="false" label="${message:menu_login}" action="login" subaction="login" afterSuccess="reloadAll"> <if true="${config:login/logo/enabled}"> <if not="not" empty="${config:login/logo/url}"> <link url="${config:login/logo/url}" target="_top"> @@ -32,132 +32,50 @@ <if false="${config:login/nologin}"> - <part class="line"> - <part class="label"> - <label for="login_name"> - <text value="${message:USER_USERNAME}"></text> - </label> - </part> - <part class="value"> - <if not="true" present="force_username"> - <input type="text" name="login_name" class="name" value="" - hint="${message:USER_USERNAME}" size="20" maxlength="128" focus="true" required="true"></input> - </if> - <else> - <hidden name="login_name"></hidden> - <text value="${force_username}"></text> - </else> - </part> - </part> - <part class="line"> - <part class="label"> - <label for="login_password"> - <text value="${message:USER_PASSWORD}"></text> - </label> - </part> - <part class="value"> - <password name="login_password" class="name" default="" - size="20"></password> - </part> - </part> - - - - - - - - <part class="line"> - <part class="label"> - </part> - <part class="value"> - <checkbox name="remember" default="false"></checkbox> - <label for="remember"> - <text value="${message:REMEMBER_ME}"></text> - </label> - </part> - </part> - + <fieldset label="${message:USER_USERNAME}"> + <if not="true" present="force_username"> + <input type="text" name="login_name" class="name" value="" + hint="${message:USER_USERNAME}" size="20" maxlength="128" focus="true" required="true"/> + </if> + <else> + <hidden name="login_name"/> + <text value="${force_username}"/> + </else> + </fieldset> + <fieldset label="${message:USER_PASSWORD}"> + <password name="login_password" class="name" default="" + size="20" hint="${message:USER_PASSWORD}" required="true" /> + <checkbox name="remember" default="false" label="${message:REMEMBER_ME}"/> + </fieldset> </if> - <!-- <if true="property:mustChangePassword"> --> <group title="${message:USER_NEW_PASSWORD}" open="false" show="false"> - <part class="line"> - <part class="label"> - <label for="password1"> - <text value="${message:USER_NEW_PASSWORD}"></text> - </label> - </part> - <part class="value"> - <password name="password1" default="" size="25"></password> - </part> - </part> - <part class="line"> - <part class="label"> - <label for="password2"> - <text value="${message:USER_NEW_PASSWORD_REPEAT}"></text> - </label> - </part> - <part class="value"> - <password name="password2" default="" size="25"></password> - </part> - </part> + <fieldset label="${message:USER_NEW_PASSWORD}"> + <password name="password1" default="" size="25" minlength="${config:security/password/min_length}" hint="${message:USER_NEW_PASSWORD}" /> + <password name="password2" default="" size="25" minlength="${config:security/password/min_length}" hint="${message:USER_NEW_PASSWORD_REPEAT}" /> + </fieldset> </group> <group title="${message:USER_TOKEN}" open="false" show="false"> - <part class="line"> - <part class="label"> - <label for="user_token"> - <text value="${message:USER_TOKEN}"></text> - </label> - </part> - <part class="value"> - <input name="user_token" default="" size="25" maxlength="30" /> - </part> - </part> + <fieldset label="${message:USER_TOKEN}"> + <input name="user_token" default="" size="25" maxlength="30" /> + </fieldset> </group> - <!-- </if> --> - - <!-- - <link type="view" class="action" action="login" subaction="password"> - <text value="${message:menu_password}"></text> </link> - --> - - <!-- - <link type="view" class="action" action="login" subaction="register"> - <text value="${message:menu_register}"></text> </link> <newline></newline> - <newline /> - --> <if value="${dbids}" greaterthan="1"> - <!-- Mehr als 1 Datenbank zur Auswahl. Auswahlfeld anzeigen. --> + <!-- More than 1 database available. --> <group title="${message:DATABASE}" icon="database" open="true"> - <part class="line"> - <part class="label"> - <label for="dbid"> - <text value="${message:DATABASE}"></text> - </label> - </part> - <part class="value"> - <selectbox name="dbid" list="dbids"></selectbox> - </part> - </part> + <fieldset label="${message:DATABASE}"> + <selectbox name="dbid" list="dbids"></selectbox> + </fieldset> </group> </if> <else> - <!-- Nur 1 Datenbank zur Auswahl. Kein Auswahlfeld notwendig. --> + <!-- Only 1 database is available. No input necessary. --> <hidden name="dbid"></hidden> </else> - - <hidden name="objectid"></hidden> - <hidden name="modelid"></hidden> - <hidden name="projectid"></hidden> - <hidden name="languageid"></hidden> </form> - <!-- - <newline /> <newline /> <link url="${config:login/gpl/url}" - type="external" class="copyright"> <text value="${message:GPL}"></text> </link> - --> + </output> \ No newline at end of file diff --git a/modules/template_engine/components/html/component_password/PasswordComponent.class.php b/modules/template_engine/components/html/component_password/PasswordComponent.class.php @@ -17,18 +17,28 @@ class PasswordComponent extends FieldComponent public $maxlength = 256; + public $minlength; + public $required = false; + public $hint; + public function createElement() { $input = (new CMSElement('input'))->addAttribute('type','password'); $input->addAttribute('name',$this->name); - /*echo ' id="<?php echo REQUEST_ID ?>_' . $this->htmlvalue($this->name) . '"'; - */ $input->addAttribute('size',$this->size); $input->addAttribute('maxlength',$this->maxlength); $input->addStyleClass($this->class); + if ( $this->required ) + $input->addAttribute( 'required','required'); + + if ( $this->hint ) + $input->addAttribute( 'placeholder',$this->hint ); + + if ( $this->minlength ) + $input->addAttribute('minlength',$this->minlength); if ($this->default) $input->addAttribute('value',$this->default); diff --git a/modules/template_engine/components/template.xsd b/modules/template_engine/components/template.xsd @@ -1142,6 +1142,9 @@ <xsd:attribute name="default" type="xsd:string"/> <xsd:attribute name="size" type="xsd:int"/> <xsd:attribute name="maxlength" type="xsd:int"/> + <xsd:attribute name="minlength" type="xsd:string"/> + <xsd:attribute name="required" type="xsd:boolean"/> + <xsd:attribute name="hint" type="xsd:string"/> <xsd:attribute name="prefix" type="xsd:string"/> <xsd:attribute name="name" type="xsd:string"/> <xsd:attribute name="readonly" type="xsd:boolean"/>