Commit 2949fbd9 authored by Côme Chilliet's avatar Côme Chilliet
Browse files

Merge branch '5910-use-more-html5-input-types' into '1.4-dev'

Resolve "Use more HTML5 input types"

See merge request fusiondirectory/fd!430
Showing with 60 additions and 23 deletions
+60 -23
......@@ -5,8 +5,17 @@ textarea,
textarea:focus {
font-size: 12px;
}
input[type=text],
input[type=color],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=text],
input[type=time],
input[type=url],
select {
padding: 2px;
}
......@@ -15,8 +24,17 @@ input[type=number] {
}
/* On small screens */
@media (max-width: 640px) {
input[type=text],
input[type=color],
input[type=date],
input[type=datetime-local],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=text],
input[type=time],
input[type=url],
input[type=file],
textarea,
select {
......
......@@ -4,7 +4,8 @@ input, input:focus, select, textarea, textarea:focus {
font-size: @text-font-size;
}
input[type=text], input[type=password], select {
input[type=color], input[type=date], input[type=datetime-local], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], select {
padding: 2px;
}
......@@ -14,7 +15,8 @@ input[type=number] {
/* On small screens */
@media (max-width: 640px) {
input[type=text], input[type=password], input[type=file], textarea, select {
input[type=color], input[type=date], input[type=datetime-local], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url],
input[type=file], textarea, select {
max-width: 100%;
}
input.base-selector {
......
......@@ -120,12 +120,13 @@ class IntAttribute extends Attribute
function renderTemplateInput ()
{
$id = $this->getHtmlId();
$display = $this->renderInputField(
'text', $id,
array(
'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
)
$attributes = array(
'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
);
if ($this->isSubAttribute) {
$attributes['class'] = 'subattribute';
}
$display = $this->renderInputField('text', $id, $attributes);
return $this->renderAcl($display);
}
}
......
......@@ -91,6 +91,22 @@ class StringAttribute extends Attribute
return $this->renderAcl($display);
}
function renderTemplateInput ()
{
$id = $this->getHtmlId();
$attributes = array(
'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
);
if ($this->autocomplete !== NULL) {
$attributes['autocomplete'] = ($this->autocomplete ? 'on' : 'off' );
}
if ($this->isSubAttribute) {
$attributes['class'] = 'subattribute';
}
$display = $this->renderInputField('text', $id, $attributes);
return $this->renderAcl($display);
}
function fixPostValue ($value)
{
/* Replace CRLF by LF, to avoid non-ASCII chars in multiline values (mainly useful for textarea) */
......@@ -166,6 +182,17 @@ class TextAreaAttribute extends StringAttribute
'{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}</textarea>';
return $this->renderAcl($display);
}
function renderTemplateInput ()
{
$id = $this->getHtmlId();
$display = '<textarea name="'.$id.'" id="'.$id.'"'.
($this->disabled ? ' disabled="disabled"' : '').
($this->isSubAttribute ? ' class="subattribute"' : '').
'>'.
'{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}</textarea>';
return $this->renderAcl($display);
}
}
/*! \brief This class allow to handle easily a String LDAP attribute that contains a password
......@@ -174,25 +201,14 @@ class TextAreaAttribute extends StringAttribute
class PasswordAttribute extends StringAttribute
{
protected $autocomplete = FALSE;
protected $inputType = 'password';
function renderFormInput ()
{
$id = $this->getHtmlId();
$display = $this->renderInputField(
'password', $id,
array(
'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}',
'autocomplete' => ($this->autocomplete ? 'on' : 'off'),
)
);
$display = parent::renderFormInput();
if ($this->autocomplete === FALSE) {
$display = '{literal}<input autocomplete="off" value="foolautocompleteworkaround" type="text" style="display:none;"/>{/literal}'.$display;
}
return $this->renderAcl($display);
}
function renderTemplateInput ()
{
return parent::renderFormInput();
return $display;
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment