mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-26 23:34:08 +02:00
parent
aa473fb8cf
commit
9e933d835d
@ -12,6 +12,7 @@ use Icinga\Application\Icinga;
|
|||||||
use Icinga\Authentication\Manager;
|
use Icinga\Authentication\Manager;
|
||||||
use Icinga\Security\SecurityException;
|
use Icinga\Security\SecurityException;
|
||||||
use Icinga\Util\Translator;
|
use Icinga\Util\Translator;
|
||||||
|
use Icinga\Web\Form\ErrorLabeller;
|
||||||
use Icinga\Web\Form\Decorator\NoScriptApply;
|
use Icinga\Web\Form\Decorator\NoScriptApply;
|
||||||
use Icinga\Web\Form\Element\CsrfCounterMeasure;
|
use Icinga\Web\Form\Element\CsrfCounterMeasure;
|
||||||
|
|
||||||
@ -520,6 +521,7 @@ class Form extends Zend_Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
$el = parent::createElement($type, $name, $options);
|
$el = parent::createElement($type, $name, $options);
|
||||||
|
$el->setTranslator(new ErrorLabeller(array('element' => $el)));
|
||||||
|
|
||||||
$el->addPrefixPaths(array(
|
$el->addPrefixPaths(array(
|
||||||
array(
|
array(
|
||||||
|
65
library/Icinga/Web/Form/ErrorLabeller.php
Normal file
65
library/Icinga/Web/Form/ErrorLabeller.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
/* Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
|
||||||
|
|
||||||
|
namespace Icinga\Web\Form;
|
||||||
|
|
||||||
|
use BadMethodCallException;
|
||||||
|
use Zend_Translate_Adapter;
|
||||||
|
use Zend_Validate_NotEmpty;
|
||||||
|
use Icinga\Web\Form\Validator\DateTimeValidator;
|
||||||
|
use Icinga\Web\Form\Validator\ReadablePathValidator;
|
||||||
|
use Icinga\Web\Form\Validator\WritablePathValidator;
|
||||||
|
|
||||||
|
class ErrorLabeller extends Zend_Translate_Adapter
|
||||||
|
{
|
||||||
|
protected $messages;
|
||||||
|
|
||||||
|
public function __construct($options = array())
|
||||||
|
{
|
||||||
|
if (! isset($options['element'])) {
|
||||||
|
throw new BadMethodCallException('Option "element" is missing');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->messages = $this->createMessages($options['element']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isTranslated($messageId, $original = false, $locale = null)
|
||||||
|
{
|
||||||
|
return array_key_exists($messageId, $this->messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function translate($messageId, $locale = null)
|
||||||
|
{
|
||||||
|
if (array_key_exists($messageId, $this->messages)) {
|
||||||
|
return $this->messages[$messageId];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $messageId;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function createMessages($element)
|
||||||
|
{
|
||||||
|
$label = $element->getLabel();
|
||||||
|
|
||||||
|
return array(
|
||||||
|
Zend_Validate_NotEmpty::IS_EMPTY => sprintf(t('%s is required and must not be empty'), $label),
|
||||||
|
WritablePathValidator::NOT_WRITABLE => sprintf(t('%s is not writable', 'config.path'), $label),
|
||||||
|
WritablePathValidator::DOES_NOT_EXIST => sprintf(t('%s does not exist', 'config.path'), $label),
|
||||||
|
ReadablePathValidator::NOT_READABLE => sprintf(t('%s is not readable', 'config.path'), $label),
|
||||||
|
DateTimeValidator::INVALID_DATETIME_FORMAT => sprintf(
|
||||||
|
t('%s not in the expected format: %%value%%'),
|
||||||
|
$label
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function _loadTranslationData($data, $locale, array $options = array())
|
||||||
|
{
|
||||||
|
// nonsense, required as being abstract otherwise...
|
||||||
|
}
|
||||||
|
|
||||||
|
public function toString()
|
||||||
|
{
|
||||||
|
return 'ErrorLabeller'; // nonsense, required as being abstract otherwise...
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user