mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-25 06:44:33 +02:00
parent
d6fd3350e0
commit
d0fe1be7f7
@ -4,7 +4,6 @@
|
|||||||
// {{{ICINGA_LICENSE_HEADER}}}
|
// {{{ICINGA_LICENSE_HEADER}}}
|
||||||
// {{{ICINGA_LICENSE_HEADER}}}
|
// {{{ICINGA_LICENSE_HEADER}}}
|
||||||
|
|
||||||
use Icinga\Application\Icinga;
|
|
||||||
use Icinga\Web\Form;
|
use Icinga\Web\Form;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -16,12 +15,11 @@ class Zend_View_Helper_CommandForm extends Zend_View_Helper_Abstract
|
|||||||
* Creates a simple form without additional input fields
|
* Creates a simple form without additional input fields
|
||||||
*
|
*
|
||||||
* @param string $commandName Name of command (icinga 2 web name)
|
* @param string $commandName Name of command (icinga 2 web name)
|
||||||
* @param string $submitLabel Label of submit button
|
|
||||||
* @param array $arguments Add parameter as hidden fields
|
* @param array $arguments Add parameter as hidden fields
|
||||||
*
|
*
|
||||||
* @return string Html form content
|
* @return Form Form to modify
|
||||||
*/
|
*/
|
||||||
public function simpleForm($commandName, $submitLabel, array $arguments = array())
|
private function simpleForm($commandName, array $arguments = array())
|
||||||
{
|
{
|
||||||
$form = new Form();
|
$form = new Form();
|
||||||
|
|
||||||
@ -29,7 +27,6 @@ class Zend_View_Helper_CommandForm extends Zend_View_Helper_Abstract
|
|||||||
$form->setAttrib('data-icinga-component', 'app/ajaxPostSubmitForm');
|
$form->setAttrib('data-icinga-component', 'app/ajaxPostSubmitForm');
|
||||||
|
|
||||||
$form->setRequest(Zend_Controller_Front::getInstance()->getRequest());
|
$form->setRequest(Zend_Controller_Front::getInstance()->getRequest());
|
||||||
$form->setSubmitLabel($submitLabel !== null ? $submitLabel : 'Submit');
|
|
||||||
$form->setAction($this->view->href('monitoring/command/' . $commandName));
|
$form->setAction($this->view->href('monitoring/command/' . $commandName));
|
||||||
|
|
||||||
foreach ($arguments as $elementName => $elementValue) {
|
foreach ($arguments as $elementName => $elementValue) {
|
||||||
@ -38,7 +35,80 @@ class Zend_View_Helper_CommandForm extends Zend_View_Helper_Abstract
|
|||||||
$form->addElement($hiddenField);
|
$form->addElement($hiddenField);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $form->render();
|
return $form;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an iconized submit form
|
||||||
|
*
|
||||||
|
* @param string $iconCls Css class of icon
|
||||||
|
* @param string $submitTitle Title of submit button
|
||||||
|
* @param string $cls Css class names
|
||||||
|
* @param string $commandName Name of command
|
||||||
|
* @param array $arguments Additional arguments
|
||||||
|
*
|
||||||
|
* @return Form
|
||||||
|
*/
|
||||||
|
public function iconSubmitForm($iconCls, $submitTitle, $cls, $commandName, array $arguments = array())
|
||||||
|
{
|
||||||
|
$form = $this->labelSubmitForm('', $submitTitle, $cls, $commandName, $arguments);
|
||||||
|
$submit = $form->getElement('btn_submit');
|
||||||
|
$submit->setLabel(sprintf('<i class="%s"></i>', $iconCls));
|
||||||
|
|
||||||
|
return $form;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders a simple for with a labeled submit button
|
||||||
|
*
|
||||||
|
* @param string $submitLabel Label of submit button
|
||||||
|
* @param string $submitTitle Title of submit button
|
||||||
|
* @param string $cls Css class names
|
||||||
|
* @param string $commandName Name of command
|
||||||
|
* @param array $arguments Additional arguments
|
||||||
|
*
|
||||||
|
* @return Form
|
||||||
|
*/
|
||||||
|
public function labelSubmitForm($submitLabel, $submitTitle, $cls, $commandName, array $arguments = array())
|
||||||
|
{
|
||||||
|
$form = $this->simpleForm($commandName, $arguments);
|
||||||
|
|
||||||
|
$button = new Zend_Form_Element_Button(
|
||||||
|
array(
|
||||||
|
'name' => 'btn_submit',
|
||||||
|
'class' => $this->mergeClass('button btn-common', $cls),
|
||||||
|
'escape' => false,
|
||||||
|
'value' => '1',
|
||||||
|
'type' => 'submit',
|
||||||
|
'label' => $submitLabel,
|
||||||
|
'title' => $submitTitle
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$button->setDecorators(array('ViewHelper'));
|
||||||
|
|
||||||
|
$form->addElement($button);
|
||||||
|
|
||||||
|
return $form;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Merges css class names together
|
||||||
|
*
|
||||||
|
* @param string $base
|
||||||
|
* @param string $additional
|
||||||
|
* @param string ...
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function mergeClass($base, $additional)
|
||||||
|
{
|
||||||
|
$args = func_get_args();
|
||||||
|
$base = explode(' ', array_shift($args));
|
||||||
|
while (($additional = array_shift($args))) {
|
||||||
|
$base = array_merge($base, explode(' ', $additional));
|
||||||
|
}
|
||||||
|
return implode(' ', $base);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
$dateHelper = $this->getHelper('DateFormat');
|
$dateHelper = $this->getHelper('DateFormat');
|
||||||
|
|
||||||
|
/** @var Zend_View_Helper_CommandForm $commandHelper */
|
||||||
$commandHelper = $this->getHelper('CommandForm');
|
$commandHelper = $this->getHelper('CommandForm');
|
||||||
?>
|
?>
|
||||||
<?= $this->tabs->render($this); ?>
|
<?= $this->tabs->render($this); ?>
|
||||||
@ -114,10 +116,12 @@ $viewHelper = $this->getHelper('MonitoringState');
|
|||||||
$data['service'] = $comment->service_name;
|
$data['service'] = $comment->service_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $commandHelper->simpleForm(
|
echo $commandHelper->iconSubmitForm(
|
||||||
'removecomment',
|
'icinga-icon-remove',
|
||||||
'Remove Comment',
|
'Remove comment',
|
||||||
$data
|
'btn-small',
|
||||||
|
'removecomment',
|
||||||
|
$data
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
|
@ -70,13 +70,13 @@ define(['components/app/container', 'jquery'], function(Container, $) {
|
|||||||
type: 'POST',
|
type: 'POST',
|
||||||
data: data,
|
data: data,
|
||||||
beforeSend: function() {
|
beforeSend: function() {
|
||||||
submit.prop('disabled', true);
|
submit.attr('disabled', true);
|
||||||
}
|
}
|
||||||
}).done(function() {
|
}).done(function() {
|
||||||
var container = getOwnerContainer(form);
|
var container = getOwnerContainer(form);
|
||||||
container.replaceDomFromUrl(container.getContainerHref());
|
container.replaceDomFromUrl(container.getContainerHref());
|
||||||
}).error(function() {
|
}).error(function() {
|
||||||
submit.removeProp('disabled');
|
submit.removeAttr('disabled');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -125,13 +125,17 @@ function(Container, $, logger, URI) {
|
|||||||
var targetEl = ev.target || ev.toElement || ev.relatedTarget,
|
var targetEl = ev.target || ev.toElement || ev.relatedTarget,
|
||||||
a = $(targetEl).closest('a');
|
a = $(targetEl).closest('a');
|
||||||
|
|
||||||
|
var nodeNames = [];
|
||||||
|
nodeNames.push($(targetEl).prop('nodeName').toLowerCase());
|
||||||
|
nodeNames.push($(targetEl).parent().prop('nodeName').toLowerCase());
|
||||||
|
|
||||||
if (a.length) {
|
if (a.length) {
|
||||||
// test if the URL is on the current server, if not open it directly
|
// test if the URL is on the current server, if not open it directly
|
||||||
if (true || Container.isExternalLink(a.attr('href'))) {
|
if (true || Container.isExternalLink(a.attr('href'))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else if (targetEl.nodeName.toLowerCase() === 'input') {
|
} else if ($.inArray('input', nodeNames) > -1 || $.inArray('button', nodeNames) > -1) {
|
||||||
var type = $(targetEl).attr('type');
|
var type = $(targetEl).attr('type') || $(targetEl).parent().attr('type');
|
||||||
if (type === 'submit') {
|
if (type === 'submit') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user