Add date and time form elements

This commit is contained in:
Eric Lippmann 2017-07-03 15:03:26 +02:00
parent 08095ad5e8
commit a5990d4de8
4 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,46 @@
<?php
/* Icinga Web 2 | (c) 2017 Icinga Development Team | GPLv2+ */
/**
* Render date input controls
*/
class Zend_View_Helper_FormDate extends Zend_View_Helper_FormElement
{
/**
* Render the date input control
*
* @param string $name
* @param int $value
* @param array $attribs
*
* @return string The rendered date input control
*/
public function formDate($name, $value = null, $attribs = null)
{
$info = $this->_getInfo($name, $value, $attribs);
extract($info); // name, id, value, attribs, options, listsep, disable
/** @var string $id */
/** @var bool $disable */
$disabled = '';
if ($disable) {
$disabled = ' disabled="disabled"';
}
/** @var \Icinga\Web\View $view */
$view = $this->view;
$html5 = sprintf(
'<input type="date" name="%s" id="%s" value="%s"%s%s%s',
$view->escape($name),
$view->escape($id),
$view->escape($value),
$disabled,
$this->_htmlAttribs($attribs),
$this->getClosingBracket()
);
return $html5;
}
}

View File

@ -0,0 +1,46 @@
<?php
/* Icinga Web 2 | (c) 2017 Icinga Development Team | GPLv2+ */
/**
* Render time input controls
*/
class Zend_View_Helper_FormTime extends Zend_View_Helper_FormElement
{
/**
* Render the time input control
*
* @param string $name
* @param int $value
* @param array $attribs
*
* @return string The rendered time input control
*/
public function formTime($name, $value = null, $attribs = null)
{
$info = $this->_getInfo($name, $value, $attribs);
extract($info); // name, id, value, attribs, options, listsep, disable
/** @var string $id */
/** @var bool $disable */
$disabled = '';
if ($disable) {
$disabled = ' disabled="disabled"';
}
/** @var \Icinga\Web\View $view */
$view = $this->view;
$html5 = sprintf(
'<input type="time" name="%s" id="%s" value="%s"%s%s%s',
$view->escape($name),
$view->escape($id),
$view->escape($value),
$disabled,
$this->_htmlAttribs($attribs),
$this->getClosingBracket()
);
return $html5;
}
}

View File

@ -0,0 +1,19 @@
<?php
/* Icinga Web 2 | (c) 2017 Icinga Development Team | GPLv2+ */
namespace Icinga\Web\Form\Element;
use Icinga\Web\Form\FormElement;
/**
* A date input control
*/
class Date extends FormElement
{
/**
* Form view helper to use for rendering
*
* @var string
*/
public $helper = 'formDate';
}

View File

@ -0,0 +1,19 @@
<?php
/* Icinga Web 2 | (c) 2017 Icinga Development Team | GPLv2+ */
namespace Icinga\Web\Form\Element;
use Icinga\Web\Form\FormElement;
/**
* A time input control
*/
class Time extends FormElement
{
/**
* Form view helper to use for rendering
*
* @var string
*/
public $helper = 'formTime';
}