Merge branch 'master' into bugfix/exceptions-with-printf-params-6931

This commit is contained in:
Alexander Klimov 2014-08-26 11:24:33 +02:00
commit 1f7d4cb61b
30 changed files with 1873 additions and 962 deletions

View File

@ -709,13 +709,6 @@ file { '/etc/icingaweb/config.ini':
group => 'apache',
}
file { '/etc/icingaweb/menu.ini':
source => 'puppet:////vagrant/config/menu.ini',
owner => 'apache',
group => 'apache',
# replace => false,
}
file { '/etc/icingaweb/resources.ini':
source => 'puppet:////vagrant/.vagrant-puppet/files/etc/icingaweb/resources.ini',
owner => 'apache',
@ -747,24 +740,6 @@ file { '/etc/icingaweb/modules/monitoring/instances.ini':
group => 'apache',
}
file { '/etc/icingaweb/modules/monitoring/menu.ini':
source => 'puppet:////vagrant/config/modules/monitoring/menu.ini',
owner => 'apache',
group => 'apache',
}
file { '/etc/icingaweb/dashboard':
ensure => 'directory',
owner => 'apache',
group => 'apache',
}
file { '/etc/icingaweb/dashboard/dashboard.ini':
source => 'puppet:////vagrant/config/dashboard/dashboard.ini',
owner => 'apache',
group => 'apache',
}
# pear::package { 'deepend/Mockery':
# channel => 'pear.survivethedeepend.com'
# }
@ -791,16 +766,3 @@ file { '/etc/bash_completion.d/icingacli':
mode => 755,
require => Exec['install bash-completion']
}
file { '/etc/icingaweb/modules/doc/':
ensure => 'directory',
owner => 'apache',
group => 'apache'
}
file { '/etc/icingaweb/modules/doc/menu.ini':
source => 'puppet:////vagrant/config/modules/doc/menu.ini',
owner => 'apache',
group => 'apache',
}

View File

@ -111,19 +111,23 @@ class DashboardController extends ActionController
*/
public function indexAction()
{
$dashboard = $this->getDashboard();
if ($this->_getParam('pane')) {
$pane = $this->_getParam('pane');
$dashboard->activate($pane);
}
$dashboard = Dashboard::load();
$this->view->configPath = IcingaConfig::resolvePath(self::DEFAULT_CONFIG);
if ($dashboard === null) {
if (! $dashboard->hasPanes()) {
$this->view->title = 'Dashboard';
} else {
$this->view->title = $dashboard->getActivePane()->getTitle() . ' :: Dashboard';
$this->view->tabs = $dashboard->getTabs();
if ($this->_getParam('pane')) {
$pane = $this->_getParam('pane');
$dashboard->activate($pane);
}
$this->view->configPath = IcingaConfig::resolvePath(self::DEFAULT_CONFIG);
if ($dashboard === null) {
$this->view->title = 'Dashboard';
} else {
$this->view->title = $dashboard->getActivePane()->getTitle() . ' :: Dashboard';
$this->view->tabs = $dashboard->getTabs();
/* Temporarily removed
$this->view->tabs->add(
@ -135,8 +139,8 @@ class DashboardController extends ActionController
);
*/
$this->view->dashboard = $dashboard;
$this->view->dashboard = $dashboard;
}
}
}

View File

@ -18,8 +18,9 @@ class LayoutController extends ActionController
*/
public function menuAction()
{
$this->_helper->layout()->disableLayout();
$this->view->menuRenderer = new MenuRenderer(
Menu::fromConfig()->order(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()
Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()
);
}

View File

@ -30,8 +30,8 @@ class StaticController extends ActionController
public function gravatarAction()
{
header('Content-Type: image/jpg');
$img = file_get_contents('http://www.gravatar.com/avatar/' . md5(strtolower(trim($this->_request->getParam('email')))) . '?s=200&d=mm');
header('image/jpeg');
echo $img;
}

View File

@ -14,5 +14,5 @@ if (! $this->auth()->isAuthenticated()) {
<form action="<?= $this->href('search') ?>" method="get" role="search">
<input type="text" name="q" class="search autofocus" placeholder="<?= $this->translate('Search...') ?>" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
</form>
<?= new MenuRenderer(Menu::fromConfig()->order(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()); ?>
<?= new MenuRenderer(Menu::load(), Url::fromRequest()->without('renderLayout')->getRelativeUrl()); ?>
</div>

View File

@ -5,121 +5,191 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Icinga Web 2 (0.1)\n"
"Project-Id-Version: Icinga Web 2 (None)\n"
"Report-Msgid-Bugs-To: dev@icinga.org\n"
"POT-Creation-Date: 2014-05-29 11:12+0000\n"
"PO-Revision-Date: 2014-05-29 13:19+0100\n"
"POT-Creation-Date: 2014-08-22 17:30+0200\n"
"PO-Revision-Date: 2014-08-22 17:52+0100\n"
"Last-Translator: Thomas Gelf <thomas@gelf.net>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:15
#, php-format
msgid "%d to %d of %d"
msgstr "%d bis %d von %d"
#: /usr/local/src/bugfix.master/application/views/scripts/pivottablePagination.phtml:9
#, php-format
msgid "%s: %d to %d of %d"
msgstr "%s: %d bis %d von %d"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:117
#: /usr/local/src/bugfix.master/application/forms/Authentication/LoginForm.php:36
msgid "...and your password"
msgstr "...und dein Kennwort ein"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:132
msgid "Add"
msgstr "Hinzufügen"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterWidget.php:81
msgid "Add filter..."
msgstr "Filter hinzufügen..."
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:118
msgid "All configured authentication methods failed. Please check the system log or Icinga Web 2 log for more information."
msgstr "Alle konfigurierten Authentifizierungsmethoden sind fehlgeschlagen. Bitte überprüfe das Systemlog oder jenes von Icinga Web 2 für weitere Details."
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:91
msgid "Application Prefix"
msgstr "Anwendungspräfix"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:78
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:80
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:197
msgid "ApplicationLog"
msgstr "Anwendungslog"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/notyet_FormWizard.php:31
msgid "Back"
msgstr "Zurück"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:53
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:55
msgid "Backend Name"
msgstr "Backend-Name"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:282
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:257
msgid "Bind DN"
msgstr "Bind DN"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:294
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:269
msgid "Bind Password"
msgstr "Bind Kennwort"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:358
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/BaseBackendForm.php:139
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:333
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/BaseBackendForm.php:114
msgid "Check this box to enforce changes without connectivity validation"
msgstr "Aktiviere dieses Häkchen um die Änderungen ohne Validierung der Verbindung zu speichern"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:73
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:47
msgid "Check this to enable logging."
msgstr "Aktiviere dieses Häkchen um das Logging zu aktivieren."
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:187
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:108
msgid "Click to add a filter expression to this operator"
msgstr "Hier klicken, um einen Filter-Ausdruck zu diesem Operator hinzuzufügen"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:105
msgid "Click to add another operator below this one"
msgstr "Hier klicken, um unterhalb dieses Operators einen weiteren hinzuzufügen"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:97
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterWidget.php:69
msgid "Click to remove this part of your filter"
msgstr "Klicken, um diesen Teil des Filters zu löschen"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:189
msgid "Configuration"
msgstr "Konfiguration"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:165
msgid "Connection Validation Failed: "
msgstr "Überprüfung der Verbindung fehlgeschlagen: "
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:477
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:452
msgid "Connectivity validation failed, connection to the given resource not possible."
msgstr "Überprüfung fehlgeschlagen, konnte keine Verbindung zu der angegebenen Ressource herstellen."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:454
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:470
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:429
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:445
msgid "Connectivity validation failed, the provided file does not exist."
msgstr "Überprüfung fehlgeschlagen, die angegebene Datei existiert nicht."
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:90
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:59
msgid "Could not read your authentiction.ini, no authentication methods are available."
msgstr "Deine authentication.ini konnte nicht gelesen werden, darum sind keine Authentifizierungsmethoden verfügbar."
#: /usr/local/src/bugfix.master/application/layouts/scripts/body.phtml:31
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:175
msgid "Dashboard"
msgstr "Dashboard"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:65
msgid "Database Connection"
msgstr "Datenbankverbindung"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:183
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:158
msgid "Database Name"
msgstr "Datenbankname"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:144
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:119
msgid "Database Type"
msgstr "Datenbanktyp"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:89
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:63
msgid "Debug"
msgstr "Debug"
#: /usr/local/src/bugfix.master/application/forms/Config/GeneralForm.php:185
#: /usr/local/src/bugfix.master/application/forms/Config/GeneralForm.php:101
msgid "Default Language"
msgstr "Standardsprache"
#: /usr/local/src/bugfix.master/application/controllers/ErrorController.php:62
#: /usr/local/src/bugfix.master/application/controllers/ErrorController.php:36
#, php-format
msgid "Enabling the \"%s\" module might help!"
msgstr "Das Modul \"%s\" zu aktivieren könnte helfen!"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:86
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:60
msgid "Error"
msgstr "Fehler"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:139
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:109
msgid "Expression"
msgstr "Ausdruck"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:113
msgid "Facility"
msgstr "Facility"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:102
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:383
#: /usr/local/src/bugfix.master/application/controllers/PreferenceController.php:55
#, php-format
msgid "Failed to persist preferences. (%s)"
msgstr "Persistierung der Einstellungen fehlgeschlagen. (%s)"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:76
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:358
msgid "File"
msgstr "Datei"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:155
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:220
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:231
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:308
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:129
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:195
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:206
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:283
msgid "Filepath"
msgstr "Dateipfad"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:357
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/BaseBackendForm.php:138
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterWidget.php:90
msgid "Filter this list"
msgstr "Diese Liste filtern"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterWidget.php:94
msgid "Filtered"
msgstr "Gefiltert"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/notyet_FormWizard.php:32
msgid "Finish"
msgstr "Fertigstellen"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:332
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/BaseBackendForm.php:113
msgid "Force Changes"
msgstr "Änderungen erzwingen"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/notyet_QuickForm.php:147
msgid "Form has successfully been sent"
msgstr "Das Formular wurde erfolgreich versendet"
#: /usr/local/src/bugfix.master/application/views/scripts/search/hint.phtml:7
msgid "Hint"
msgstr "Hinweis"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:160
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:260
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:135
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:235
msgid "Host"
msgstr "Host"
@ -132,165 +202,183 @@ msgstr "Hosts"
msgid "I'm ready to search, waiting for your input"
msgstr "Ich bin bereit zur Suche, warte auf deine Eingabe"
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:63
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:40
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/login.phtml:8
msgid "Icingaweb Login"
msgstr "Icingaweb Anmeldung"
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:17
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:14
msgid "If this message does not disappear, it might be necessary to quit the current session manually by clearing the cache, or by closing the current browser session."
msgstr "Wenn diese Nachricht nicht verschwindet könnte es nötig sein die aktuelle Sitzung manuell zu beenden indem der Cache gelöscht order die Browsersitzung geschlossen wird."
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:118
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:131
msgid "Incorrect username or password"
msgstr "Benutzername oder Kennwort ungültig"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:88
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:62
msgid "Information"
msgstr "Information"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Wizard/Wizard.php:337
#: /usr/local/src/bugfix.master/library/Icinga/Web/Wizard/Wizard.php:380
msgid "Install"
msgstr "Installieren"
#: /usr/local/src/bugfix.master/application/views/scripts/install/index.phtml:29
msgid "Installation"
msgstr "Installation"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:92
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:67
msgid "LDAP Resource"
msgstr "LDAP Ressource"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:115
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:90
msgid "LDAP User Name Attribute"
msgstr "LDAP-Attribut für Benutzername"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:104
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:79
msgid "LDAP User Object Class"
msgstr "LDAP Objektklasse für Benutzer"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:232
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:207
msgid "Location of your icinga objects.cache file"
msgstr "Pfad zur Datei objects.cache von Icinga"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:221
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:196
msgid "Location of your icinga status.dat file"
msgstr "Pfad zur Datei status.dat von Icinga"
#: /usr/local/src/bugfix.master/application/controllers/InstallController.php:69
msgid "Logging"
msgstr "Logging"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:72
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:46
msgid "Logging Enabled"
msgstr "Logging aktiv"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:82
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:56
msgid "Logging Level"
msgstr "Log-Level"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:98
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:72
msgid "Logging Type"
msgstr "Logging-Typ"
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:15
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:12
msgid "Logging out..."
msgstr "Abmelden..."
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:28
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:21
msgid "Login"
msgstr "Anmelden"
#: /usr/local/src/bugfix.master/application/layouts/scripts/body.phtml:39
#: /usr/local/src/bugfix.master/application/layouts/scripts/parts/topbar.phtml:35
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:202
msgid "Logout"
msgstr "Abmelden"
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:64
msgid "Logout not possible, it may be necessary to quit the session manually by clearing the cache, or closing the current browser session. Error: "
msgstr ""
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:69
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/logout.phtml:43
msgid "Logout successful!"
msgstr "Abmelden erfolgreich!"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/ReorderForm.php:137
msgid "Move down in authentication order"
msgstr ""
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:235
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterWidget.php:95
msgid "Modify this filter"
msgstr "Diesen Filter bearbeiten"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/ReorderForm.php:111
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:193
msgid "Modules"
msgstr "Module"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/ReorderForm.php:112
msgid "Move down in authentication order"
msgstr "In der Authentifizierungsreihenfolge nach unten schieben"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/ReorderForm.php:86
msgid "Move up in authentication order"
msgstr ""
msgstr "In der Authentifizierungsreihenfolge nach oben schieben"
#: /usr/local/src/bugfix.master/application/views/scripts/pivottablePagination.phtml:16
msgid "Navigation"
msgstr "Navigation"
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:83
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:86
#: /usr/local/src/bugfix.master/library/Icinga/Web/Wizard/Wizard.php:337
#: /usr/local/src/bugfix.master/library/Icinga/Web/Wizard/Wizard.php:380
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:89
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/notyet_FormWizard.php:30
msgid "Next"
msgstr "Weiter"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:144
msgid "No users found under the specified database backend"
msgstr ""
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:110
msgid "No authentication methods available. Did you create authentication.ini when installing Icinga Web 2?"
msgstr "Keine Authentifizierungsmethode verfügbar. Hast du beim Installieren von Icinga Web 2 eine authentication.ini erstellt?"
#: /usr/local/src/bugfix.master/application/controllers/ErrorController.php:59
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:119
msgid "No users found under the specified database backend"
msgstr "Im konfigurierten Datenbankbackend wurden keine Benutzer gefunden"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterEditor.php:106
msgid "Operator"
msgstr "Operator"
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:33
msgid "Page"
msgstr "Seite"
#: /usr/local/src/bugfix.master/application/controllers/ErrorController.php:33
msgid "Page not found."
msgstr "Seite nicht gefunden."
#: /usr/local/src/bugfix.master/application/forms/Authentication/LoginForm.php:65
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:206
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:12
msgid "Pagination"
msgstr "Seitennavigation"
#: /usr/local/src/bugfix.master/application/forms/Authentication/LoginForm.php:35
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:181
msgid "Password"
msgstr "Kennwort"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:319
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:294
msgid "Pattern"
msgstr "Muster"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/Element/Number.php:61
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/Element/Number.php:36
msgid "Please enter a number."
msgstr "Bitte eine Nummer eingeben."
#: /usr/local/src/bugfix.master/application/forms/Authentication/LoginForm.php:25
msgid "Please enter your username..."
msgstr "Bitte gib deinen Benutzernamen..."
#: /usr/local/src/bugfix.master/application/controllers/AuthenticationController.php:126
msgid "Please note that not all authentication methods where available. Check the system log or Icinga Web 2 log for more information."
msgstr "Beachte bitte dass nicht alle Authentifizierungsmethoden verfügbar waren. Überprüfe das Systemlog oder jenes von Icinga Web 2 für weitere Informationen."
#: /usr/local/src/bugfix.master/application/views/scripts/search/hint.phtml:8
msgid "Please use the asterisk (*) as a placeholder for wildcard searches. For convenience I'll always add a wildcard after the last character you typed."
msgstr "Bitte benutze das Sternchen (*) als Jokerzeichen für eine Suche mit Platzhaltern. Der Einfachheit halber hänge ich immer einen Platzhalter hinter das letzte von dir getippte Zeichen."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:171
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:146
msgid "Port"
msgstr "Port"
#: /usr/local/src/bugfix.master/application/layouts/scripts/body.phtml:38
#: /usr/local/src/bugfix.master/application/layouts/scripts/parts/topbar.phtml:32
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:185
msgid "Preferences"
msgstr "Einstellungen"
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:45
#: /usr/local/src/bugfix.master/application/controllers/PreferenceController.php:48
msgid "Preferences updated successfully"
msgstr "Einstellungen erfolgreich aktualisiert"
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:48
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:51
msgid "Prev"
msgstr "Zurück"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Wizard/Wizard.php:326
#: /usr/local/src/bugfix.master/library/Icinga/Web/Wizard/Wizard.php:367
msgid "Previous"
msgstr "Vorheriges"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/FilterWidget.php:99
msgid "Remove this filter"
msgstr "Diesen Filter entfernen"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:333
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:308
msgid "Resource Name"
msgstr ""
msgstr "Ressourcename"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:375
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:350
msgid "Resource Type"
msgstr ""
msgstr "Ressourcetyp"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:271
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:246
msgid "Root DN"
msgstr "Wurzel-DN"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:379
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:354
msgid "SQL Database"
msgstr "SQL Datenbank"
@ -301,187 +389,241 @@ msgstr "SQL Datenbank"
msgid "Search"
msgstr "Suche"
#: /usr/local/src/bugfix.master/application/layouts/scripts/parts/navigation.phtml:17
#: /usr/local/src/bugfix.master/application/layouts/scripts/parts/navigation.phtml:15
msgid "Search..."
msgstr "Suche..."
#: /usr/local/src/bugfix.master/application/forms/Config/GeneralForm.php:189
#: /usr/local/src/bugfix.master/library/Icinga/Web/Form/Validator/notyet_CsrfTokenValidator.php:20
msgid "Security check failed, please submit your form again"
msgstr "Sicherheitscheck fehlgeschlagen, bitte sende das Formular erneut ab"
#: /usr/local/src/bugfix.master/application/forms/Config/GeneralForm.php:105
msgid "Select the language to use by default. Can be overwritten by a user in his preferences."
msgstr ""
msgstr "Die zu benutzende Standard-Sprache. Kann von Benutzern in deren Einstellungen überschrieben werden."
#: /usr/local/src/bugfix.master/application/controllers/SearchController.php:41
#: /usr/local/src/bugfix.master/application/views/scripts/pivottablePagination.phtml:34
msgid "Services"
msgstr "Services"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:245
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/Limiter.php:84
#, php-format
msgid "Show %s rows on one page"
msgstr "Zeige %s Zeilen pro Seite"
#: /usr/local/src/bugfix.master/application/views/scripts/mixedPagination.phtml:16
#, php-format
msgid "Show rows %d to %d of %d"
msgstr "Zeige die Zeilen %d bis %d von %d"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:220
msgid "Socket"
msgstr ""
msgstr "Socket"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:140
#: /usr/local/src/bugfix.master/application/views/scripts/config/module.phtml:22
msgid "State"
msgstr "Status"
#: /usr/local/src/bugfix.master/library/Icinga/Web/Menu.php:181
msgid "System"
msgstr "System"
#: /usr/local/src/bugfix.master/application/views/scripts/authentication/login.phtml:4
msgid "The Icinga logo"
msgstr "Das Icinga Logo"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:114
msgid "The Syslog facility to utilize."
msgstr ""
msgstr "Die zu benutzende Syslog-Facility"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:116
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:91
msgid "The attribute name used for storing the user name on the ldap server"
msgstr ""
msgstr "Der Attributname welcher benutzt wird, um Benutzernamen auf dem LDAP-Server abzulegen"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:91
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:66
msgid "The database connection to use for authenticating with this provider"
msgstr ""
msgstr "Die Datenbankverbindung, welche zur Authentifizierung mit diesem Provider genutzt werden soll"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:309
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:284
msgid "The filename to fetch information from"
msgstr ""
msgstr "Die Datei aus welcher Informationen gelesen werden sollen"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:161
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:136
msgid "The hostname of the database."
msgstr ""
msgstr "Der Hostname der Datenbank."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:261
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:236
msgid "The hostname or address of the LDAP server to use for authentication"
msgstr ""
msgstr "Der Hostname oder die IP-Adresse des LDAP-Servers der zur Authentifizierung genutzt werden soll"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:156
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:130
msgid "The logfile to write messages to."
msgstr ""
msgstr "Das Logfile in welches Nachrichten geschrieben werden sollen."
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:83
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:57
msgid "The maximum loglevel to emit."
msgstr ""
msgstr "Loglevel bis zu welchem Nachrichten ausgegeben werden sollen."
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:118
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:92
msgid "The name of the application by which to prefix syslog messages."
msgstr ""
msgstr "Der Anwendungsname welcher Syslog-Nachrichten vorangestellt werden soll."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:184
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:159
msgid "The name of the database to use"
msgstr ""
msgstr "Der Name der zu benutzenden Datenbank"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:81
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:56
msgid "The name of this authentication backend"
msgstr ""
msgstr "Der Name dieses Authentifizierungsbackends"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:79
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:54
msgid "The name of this authentication provider"
msgstr ""
msgstr "Der Name dieses Authentifizierungsproviders"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:105
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:80
msgid "The object class used for storing users on the ldap server"
msgstr ""
msgstr "Die Objekt-Klasse welche benutzt wird, um Benutzer auf diesem LDAP-Server abzulegen"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:207
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:182
msgid "The password to use for authentication"
msgstr ""
msgstr "Das Kennwort welche zur Authentifizierung benutzt werden soll"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:270
msgid "The password to use for querying the ldap server"
msgstr "Das Kennwort welches zum Abfragen des LDAP-Servers benutzt werden soll"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:221
msgid "The path to your livestatus socket used for querying monitoring data"
msgstr "Der Pfad zu deinem Live-Status Socket, über welchen Monitoring-Daten abgefragt werden sollen"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:247
msgid "The path where users can be found on the ldap server"
msgstr "Der Pfad unter welchem Benutzer auf diesem LDAP-Server gefunden werden können."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:147
msgid "The port to use."
msgstr "Der zu benutzende Port."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:295
msgid "The password to use for querying the ldap server"
msgstr ""
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:246
msgid "The path to your livestatus socket used for querying monitoring data"
msgstr ""
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:272
msgid "The path where users can be found on the ldap server"
msgstr ""
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:172
msgid "The port to use."
msgstr ""
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:320
msgid "The regular expression by which to identify columns"
msgstr ""
msgstr "Der zu benutzende reguläre Ausdruck, mit welchem Spalten identifiziert werden können"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:93
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:68
msgid "The resource to use for authenticating with this provider"
msgstr ""
msgstr "Die Resource die zum Authentifizieren mit diesem Provider genutzt werden soll"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:145
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:120
msgid "The type of SQL database you want to create."
msgstr ""
msgstr "Der Typ der zu benutzenden SQL Datenbank."
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:99
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:73
msgid "The type of logging to utilize."
msgstr ""
msgstr "Der Typ des zu benutzenden Loggings."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:376
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:351
msgid "The type of resource"
msgstr ""
msgstr "Der Typ der Ressource"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:334
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:309
msgid "The unique name of this resource"
msgstr ""
msgstr "Der eindeutige Name dieser Resource"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:283
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:258
msgid "The user dn to use for querying the ldap server"
msgstr ""
msgstr "Die DN des Benutzers mit welchem dieser LDAP-Server befragt werden soll"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:195
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:170
msgid "The user name to use for authentication."
msgstr ""
msgstr "Der zur Authentifizierung zu benutzende Benutzername."
#: /usr/local/src/bugfix.master/application/views/scripts/config/module.phtml:6
msgid "There is no such module installed."
msgstr "Gegenwärtig ist kein solches Modul installiert."
#: /usr/local/src/bugfix.master/application/views/scripts/config/module.phtml:32
#: /usr/local/src/bugfix.master/application/views/scripts/config/module.phtml:46
msgid "This module has no dependencies"
msgstr "Dieses Modul hat keine Abhängigkeiten"
#: /usr/local/src/bugfix.master/library/Icinga/Application/Modules/Module.php:383
#: /usr/local/src/bugfix.master/library/Icinga/Application/Modules/Module.php:435
msgid "This module has no description"
msgstr "Dieses Modul hat keine Beschreibung"
#: /usr/local/src/bugfix.master/application/forms/Preference/GeneralForm.php:100
#: /usr/local/src/bugfix.master/application/views/scripts/config/devtools.phtml:5
msgid "UI Debug"
msgstr "UI Debug"
#: /usr/local/src/bugfix.master/application/forms/Preference/GeneralForm.php:43
msgid "Use Default Language"
msgstr "Standardsprache verwenden"
#: /usr/local/src/bugfix.master/application/forms/Preference/GeneralForm.php:109
#: /usr/local/src/bugfix.master/application/forms/Preference/GeneralForm.php:52
msgid "Use the following language to display texts and messages"
msgstr ""
msgstr "Die folgende Sprache benutzen, um Texte und Nachrichten anzuzeigen"
#: /usr/local/src/bugfix.master/application/forms/Authentication/LoginForm.php:57
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:194
#: /usr/local/src/bugfix.master/application/forms/Authentication/LoginForm.php:24
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:169
msgid "Username"
msgstr "Benutzername"
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:169
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/LdapBackendForm.php:144
msgid "Using ldap is not possible, the php extension \"ldap\" is not installed."
msgstr ""
msgstr "Es ist nicht möglich, LDAP zu benutzen, da die PHP-Erweiterung \"LDAP\" nicht installiert ist."
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:148
#: /usr/local/src/bugfix.master/application/forms/Config/Authentication/DbBackendForm.php:123
#, php-format
msgid "Using the specified backend failed: %s"
msgstr ""
msgstr "Die angegebene Datenbank zu benutzen war nicht möglich: %s"
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:87
#: /usr/local/src/bugfix.master/application/forms/Config/LoggingForm.php:61
msgid "Warning"
msgstr "Warnung"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:435
#: /usr/local/src/bugfix.master/application/views/scripts/dashboard/index.phtml:13
msgid "We tried to load a dashboard configuration with no success. Please have look that the configuration does exist:"
msgstr "Der Versuch die Dashboard-Konfiguration zu laden war nicht erfolgreich. Bitte stelle sicher, dass die folgende Konfigurationsdatei existiert:"
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:410
msgid "You need to install the php extension \"mysql\" and the Zend_Pdo_Mysql classes to use MySQL database resources."
msgstr ""
msgstr "Um MySQL Datenbank-Ressourcen nutzen zu können müssen die PHP-Erweiterung \"mysql\" sowie die Zend_Pdo_Mysql Klassen installiert sein."
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:442
#: /usr/local/src/bugfix.master/application/forms/Config/ResourceForm.php:417
msgid "You need to install the php extension \"pgsql\" and the Zend_Pdo_Pgsql classes to use PostgreSQL database resources."
msgstr ""
msgstr "Um PostgreSQL Datenbank-Ressourcen nutzen zu können müssen die PHP-Erweiterung \"pqsql\" sowie die Zend_Pdo_Pgsql Klassen installiert sein."
#: /usr/local/src/bugfix.master/application/forms/Preference/GeneralForm.php:106
#: /usr/local/src/bugfix.master/application/forms/Preference/GeneralForm.php:49
msgid "Your Current Language"
msgstr "Deine aktuelle Sprache"
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:108
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:114
#: /usr/local/src/bugfix.master/library/Icinga/Web/Widget/Limiter.php:58
msgid "all"
msgstr "alle"
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:83
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:89
msgid "for"
msgstr "für"
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:112
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:131
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:133
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:87
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:106
#: /usr/local/src/bugfix.master/library/Icinga/Util/Format.php:108
msgid "since"
msgstr "seit"
#: /usr/local/src/bugfix.master/application/views/scripts/config/devtools.phtml:5
msgid "toggle"
msgstr "umschalten"
#~ msgid "%d to %d of %d"
#~ msgstr "%d bis %d von %d"
#~ msgid "Installation"
#~ msgstr "Installation"
#~ msgid "Logging"
#~ msgstr "Logging"
#~ msgid "Previous"
#~ msgstr "Vorheriges"
#~ msgid "Icinga Users Login"
#~ msgstr "Icinga Benutzeranmeldung"

View File

@ -2,6 +2,11 @@
<?= $this->tabs ?>
</div>
<div class="content" >
<?= $this->form ?>
</div>
<div class="content">
<h1><?= $this->escape($this->translate('This feature is deactivated at the moment.')); ?></h1>
<p>
<?=
$this->escape($this->translate('Please have a little patience, we are hard working on it, take a look at icingaweb2 issues.'));
?>
</p>
</div>

View File

@ -7,16 +7,10 @@
</div>
<?php else: ?>
<div class="content">
<h1>No dashboard configuration found!</h1>
<p>
<?=
$this->translate('We tried to load a dashboard configuration with no success.'
. ' Please have look that the configuration does exist:');
?>
<code>
<?= $this->escape($this->configPath) ?>.ini
</code>
</p>
<h1><?= $this->escape($this->translate('Welcome to Icinga Web!')) ?></h1>
<p><?= sprintf(
$this->escape($this->translate('Currently there is no dashlet available. This might change once you enabled some of the available %s.')),
$this->qlink($this->translate('modules'), 'config/modules')
) ?></p>
</div>
<?php endif; ?>
<?php endif ?>

View File

@ -1,39 +0,0 @@
[Incidents]
title = "Current incidents"
[Incidents.Service Problems]
url = "monitoring/list/services"
service_problem = 1
limit = 10
sort = service_severity
[Incidents.Recently Recovered Services]
url = "monitoring/list/services"
sort = "service_last_state_change"
service_state = 0
limit = 10
dir = "desc"
[Incidents.Host Problems]
url = "monitoring/list/hosts"
host_problem = 1
sort = host_severity
[Landing]
title = "Landing page"
[Landing.Hostgroups]
url = "monitoring/chart/hostgroup"
[Landing.Servicegroups]
url = "monitoring/chart/servicegroup"
[Landing.Unhandled Problem Services]
url = "monitoring/list/services"
service_handled = 0
service_problem = 1
[Landing.Unhandled Problem Hosts]
url = "monitoring/list/hosts"
host_handled = 0
host_problem = 1

View File

@ -1,34 +0,0 @@
[Dashboard]
title = "Dashboard"
url = "dashboard"
icon = "img/icons/dashboard.png"
priority = 10
[System]
icon = img/icons/configuration.png
priority = 200
[System.Preferences]
title = "Preferences"
url = "preference"
priority = 200
[System.Configuration]
title = "Configuration"
url = "config"
priority = 300
[System.Modules]
title = "Modules"
url = "config/modules"
priority = 400
[System.ApplicationLog]
title = "Application log"
url = "list/applicationlog"
priority = 500
[Logout]
url = "authentication/logout"
icon = img/icons/logout.png
priority = 300

View File

@ -1,5 +0,0 @@
[Documentation]
title = "Documentation"
icon = "img/icons/comment.png"
url = "doc"
priority = 80

View File

@ -1,109 +0,0 @@
[Problems]
priority = 20
icon = "img/icons/error.png"
[Problems.Unhandled Hosts]
priority = 40
url = "monitoring/list/hosts?host_problem=1&host_handled=0"
[Problems.Unhandled Services]
priority = 40
url = "monitoring/list/services?service_problem=1&service_handled=0&sort=service_severity"
[Problems.Host Problems]
priority = 50
url = "monitoring/list/hosts?host_problem=1&sort=host_severity"
[Problems.Service Problems]
priority = 50
url = "monitoring/list/services?service_problem=1&sort=service_severity&dir=desc"
[Problems.Current Downtimes]
url = "monitoring/list/downtimes?downtime_is_in_effect=1"
[Overview]
priority = 30
icon = "img/icons/hostgroup.png"
[Overview.Tactical Overview]
title = "Tactical Overview"
url = "monitoring/tactical"
priority = 40
[Overview.Hosts]
title = "Hosts"
url = "monitoring/list/hosts"
priority = 50
[Overview.Services]
title = "Services"
url = "monitoring/list/services"
priority = 50
[Overview.Servicematrix]
title = "Servicematrix"
url = "monitoring/list/servicematrix?service_problem=1"
priority = 51
[Overview.Servicegroups]
title = "Servicegroups"
url = "monitoring/list/servicegroups"
priority = 60
[Overview.Hostgroups]
title = "Hostgroups"
url = "monitoring/list/hostgroups"
priority = 60
[Overview.Contactgroups]
title = "Contactgroups"
url = "monitoring/list/contactgroups"
priority = 61
[Overview.Downtimes]
title = "Downtimes"
url = "monitoring/list/downtimes"
priority = 70
[Overview.Comments]
title = "Comments"
url = "monitoring/list/comments?comment_type=(comment|ack)"
priority = 70
[Overview.Contacts]
title = "Contacts"
url = "monitoring/list/contacts"
priority = 70
[History]
icon = "img/icons/history.png"
[History.Critical Events]
title = "Critical Events"
url = "monitoring/list/statehistorysummary"
priority = 50
[History.Notifications]
title = "Notifications"
url = "monitoring/list/notifications"
[History.Events]
title = "All Events"
url = "monitoring/list/eventhistory?timestamp>=-7%20days"
[History.Timeline]
title = "Timeline"
url = "monitoring/timeline"
[System.Process Info]
title = "Process Info"
url = "monitoring/process/info"
priority = 120
[System.Performance Info]
title = "Performance Info"
url = "monitoring/process/performance"
priority = 130

View File

@ -14,30 +14,4 @@ the objects you're interested in and can add and remove elements.
* The dashboard itself is just the view containing the panes
## Configuration files
By default, the config/dashboard/dashboard.ini is used for storing dashboards in the following format:
[PaneName] ; Define a new Pane
title = "PaneTitle" ; The title of the pane as displayed in the tabls
[PaneName.Component1] ; Define a new component 'Component 1' underneat the pane
url = "/url/for/component1" ; the url that will be displayed, with view=compact as URL parameter appended
height = "500px" ; optional height setting
width = "400px" ; optional width setting
[test.My hosts] ; Another component, here with host
url = "monitoring/list/hosts" ; the url of the component
; Notice the missing height/width definition
[test.My services] ; And another pane
url = "monitoring/list/services" ; With service url
[test2] ; Define a second pane
title = "test2" ; with the title
[test2.test] ; Add a component to the second pane
url = "/monitoring/show/host/host1" ; ...and define it's url
[dashboards1]: res/Dashboard.png

View File

@ -181,15 +181,10 @@ install -D -m0644 packages/rpm/etc/httpd/conf.d/icingaweb.conf %{buildroot}/%{ap
%{__cp} -r application library modules public %{buildroot}/%{sharedir}/
## config
# use the default menu.ini for application and monitoring mobule
install -D -m0644 config/menu.ini %{buildroot}/%{_sysconfdir}/icingaweb/menu.ini
install -D -m0644 config/modules/monitoring/menu.ini %{buildroot}/%{_sysconfdir}/icingaweb/modules/monitoring/menu.ini
# authentication is db only
install -D -m0644 packages/rpm/etc/icingaweb/authentication.ini %{buildroot}/%{_sysconfdir}/icingaweb/authentication.ini
# custom resource paths
install -D -m0644 packages/rpm/etc/icingaweb/resources.ini %{buildroot}/%{_sysconfdir}/icingaweb/resources.ini
# dashboard
install -D -m0644 config/dashboard/dashboard.ini %{buildroot}/%{_sysconfdir}/icingaweb/dashboard/dashboard.ini
# monitoring module (icinga2)
install -D -m0644 packages/rpm/etc/icingaweb/modules/monitoring/backends.ini %{buildroot}/%{_sysconfdir}/icingaweb/modules/monitoring/backends.ini
install -D -m0644 packages/rpm/etc/icingaweb/modules/monitoring/instances.ini %{buildroot}/%{_sysconfdir}/icingaweb/modules/monitoring/instances.ini

View File

@ -142,6 +142,7 @@ class Benchmark
// TODO: Move formatting to CSS file
$html = '<table class="benchmark">' . "\n" . '<tr>';
foreach ($data->columns as & $col) {
if ($col->title === 'Time') continue;
$html .= sprintf(
'<td align="%s">%s</td>',
$col->align,
@ -153,6 +154,7 @@ class Benchmark
foreach ($data->rows as & $row) {
$html .= '<tr>';
foreach ($data->columns as $key => & $col) {
if ($col->title === 'Time') continue;
$html .= sprintf(
'<td align="%s">%s</td>',
$col->align,

View File

@ -5,6 +5,7 @@
namespace Icinga\Application\Modules;
use Exception;
use Zend_Config;
use Zend_Controller_Router_Route_Abstract;
use Zend_Controller_Router_Route as Route;
use Icinga\Application\ApplicationBootstrap;
@ -13,7 +14,9 @@ use Icinga\Application\Icinga;
use Icinga\Logger\Logger;
use Icinga\Util\Translator;
use Icinga\Web\Hook;
use Icinga\Web\Menu;
use Icinga\Web\Widget;
use Icinga\Web\Widget\Dashboard\Pane;
use Icinga\Util\File;
use Icinga\Exception\ProgrammingError;
@ -136,7 +139,6 @@ class Module
*/
private $app;
/**
* Routes to add to the route chain
*
@ -146,6 +148,72 @@ class Module
*/
protected $routes = array();
/**
* A set of menu elements
*
* @var array
*/
protected $menuItems = array();
/**
* A set of Pane elements
*
* @var array
*/
protected $paneItems = array();
/**
* Get all Menu Items
*
* @return array
*/
public function getPaneItems()
{
$this->launchConfigScript();
return $this->paneItems;
}
/**
* Add a pane to dashboard
*
* @param $name
* @return Pane
*/
protected function dashboard($name)
{
$this->paneItems[$name] = new Pane($name);
return $this->paneItems[$name];
}
/**
* Get all Menu Items
*
* @return array
*/
public function getMenuItems()
{
$this->launchConfigScript();
return $this->menuItems;
}
/**
* Add a menu Section to the Sidebar menu
*
* @param $name
* @param array $properties
* @return mixed
*/
protected function menuSection($name, array $properties = array())
{
if (array_key_exists($name, $this->menuItems)) {
$this->menuItems[$name]->setProperties($properties);
} else {
$this->menuItems[$name] = new Menu($name, new Zend_Config($properties));
}
return $this->menuItems[$name];
}
/**
* Create a new module object
*
@ -781,4 +849,15 @@ class Module
$this->routes[$name] = $route;
return $this;
}
/**
* Translate a string with the global mt()
*
* @param $string
* @return mixed|string
*/
protected function translate($string)
{
return mt($this->name, $string);
}
}

View File

@ -72,12 +72,12 @@ class Parser
*/
public function parseObjectsFile()
{
$DEFINE = strlen("define ");
$DEFINE = strlen('define ');
$this->icingaState = array();
foreach ($this->file as $line) {
$line = trim($line);
$this->lineCtr++;
if ($line === "" || $line[0] === "#") {
if ($line === '' || $line[0] === '#') {
continue;
}
$this->currentObjectType = trim(substr($line, $DEFINE, -1));
@ -103,13 +103,13 @@ class Parser
}
if (!$this->icingaState) {
throw new ProgrammingError("Tried to read runtime state without existing objects data");
throw new ProgrammingError('Tried to read runtime state without existing objects data');
}
$this->overwrites = array();
foreach ($file as $line) {
$line = trim($line);
$this->lineCtr++;
if ($line === "" || $line[0] === "#") {
if ($line === '' || $line[0] === '#') {
continue;
}
$this->currentStateType = trim(substr($line, 0, -1));
@ -133,16 +133,16 @@ class Parser
}
// End of object
if ($line[0] === "}") {
if ($line[0] === '}') {
$this->registerObject($monitoringObject);
return;
}
if (!isset($line[1])) {
$line[1] = "";
$line[1] = '';
}
$monitoringObject->{$line[0]} = trim($line[1]);
}
throw new ParsingException("Unexpected EOF in objects.cache, line " . $this->lineCtr);
throw new ParsingException('Unexpected EOF in objects.cache, line ' . $this->lineCtr);
}
/**
@ -156,7 +156,7 @@ class Parser
$objectType = $this->getObjectTypeForState();
if ($objectType != "host" && $objectType != "service") {
if ($objectType != 'host' && $objectType != 'service') {
$this->skipObject(); // ignore unknown objects
return;
}
@ -170,7 +170,7 @@ class Parser
if (!isset($base[$name])) {
throw new ParsingException(
"Unknown object $name " . $this->currentObjectType . " - "
"Unknown object $name " . $this->currentObjectType . ' - '
. print_r(
$statusdatObject,
true
@ -180,7 +180,7 @@ class Parser
}
$type = substr($this->currentStateType, strlen($objectType));
if ($type == "status") {
if ($type == 'status') {
// directly set the status to the status field of the given object
$base[$name]->status = & $statusdatObject;
} else {
@ -211,20 +211,20 @@ class Parser
*/
private function getObjectTypeForState()
{
$pos = strpos($this->currentStateType, "service");
$pos = strpos($this->currentStateType, 'service');
if ($pos === false) {
$pos = strpos($this->currentStateType, "host");
$pos = strpos($this->currentStateType, 'host');
} else {
$this->currentObjectType = "service";
return "service";
$this->currentObjectType = 'service';
return 'service';
}
if ($pos === false) {
return $this->currentStateType;
} else {
$this->currentObjectType = "host";
return "host";
$this->currentObjectType = 'host';
return 'host';
}
return $this->currentObjectType;
@ -239,12 +239,12 @@ class Parser
protected function skipObject($returnString = false)
{
if (!$returnString) {
while (trim($this->file->fgets()) !== "}") {
while (trim($this->file->fgets()) !== '}') {
}
return null;
} else {
$str = "";
while (($val = trim($this->file->fgets())) !== "}") {
$str = '';
while (($val = trim($this->file->fgets())) !== '}') {
$str .= $val . "\n";
}
return $str;
@ -280,9 +280,9 @@ class Parser
|| $this->currentObjectType == 'contact') {
return null;
}
$isService = strpos($this->currentObjectType, "service") !== false;
$isHost = strpos($this->currentObjectType, "host") !== false;
$isContact = strpos($this->currentObjectType, "contact") !== false;
$isService = strpos($this->currentObjectType, 'service') !== false;
$isHost = strpos($this->currentObjectType, 'host') !== false;
$isContact = strpos($this->currentObjectType, 'contact') !== false;
$name = $this->getObjectIdentifier($object);
if ($isService === false && $isHost === false && $isContact === false) {
@ -291,14 +291,14 @@ class Parser
}
$property = $this->currentObjectType;
if ($isService) {
$this->currentObjectType = "service";
$property = substr($property, strlen("service"));
$this->currentObjectType = 'service';
$property = substr($property, strlen('service'));
} elseif ($isHost) {
$this->currentObjectType = "host";
$property = substr($property, strlen("host"));
$this->currentObjectType = 'host';
$property = substr($property, strlen('host'));
} elseif ($isContact) {
$this->currentObjectType = "contact";
$property = substr($property, strlen("contact"));
$this->currentObjectType = 'contact';
$property = substr($property, strlen('contact'));
}
if (!isset($this->icingaState[$this->currentObjectType])) {
@ -306,7 +306,7 @@ class Parser
}
// @TODO: Clean up, this differates between 1:n and 1:1 references
if (strpos($property, "group") !== false) {
if (strpos($property, 'group') !== false) {
$sourceIdentifier = $this->getMembers($object);
foreach ($sourceIdentifier as $id) {
$source = $this->icingaState[$this->currentObjectType][$id];
@ -368,12 +368,12 @@ class Parser
return array();
}
$members = explode(",", $object->members);
$members = explode(',', $object->members);
if ($this->currentObjectType == "service") {
if ($this->currentObjectType == 'service') {
$res = array();
for ($i = 0; $i < count($members); $i += 2) {
$res[] = $members[$i] . ";" . $members[$i + 1];
$res[] = $members[$i] . ';' . $members[$i + 1];
}
return $res;
} else {
@ -394,15 +394,15 @@ class Parser
return $object->contact_name;
}
if ($this->currentObjectType == "service") {
return $object->host_name . ";" . $object->service_description;
if ($this->currentObjectType == 'service') {
return $object->host_name . ';' . $object->service_description;
}
$name = $this->currentObjectType . "_name";
$name = $this->currentObjectType . '_name';
if (isset($object->{$name})) {
return $object->{$name};
}
if (isset($object->service_description)) {
return $object->host_name . ";" . $object->service_description;
return $object->host_name . ';' . $object->service_description;
} elseif (isset($object->host_name)) {
return $object->host_name;
}

View File

@ -440,7 +440,7 @@ class Query extends SimpleQuery
*/
public function fetchOne()
{
throw new ProgrammingError('Statusdat/Query::fetchOne not yet implemented');
throw new ProgrammingError('Statusdat/Query::fetchOne() is not implemented yet');
}
/**

View File

@ -4,6 +4,7 @@
namespace Icinga\Web;
use Icinga\Exception\ConfigurationError;
use Zend_Config;
use RecursiveIterator;
use Icinga\Application\Config;
@ -67,20 +68,68 @@ class Menu implements RecursiveIterator
public function __construct($id, Zend_Config $config = null)
{
$this->id = $id;
$this->setProperties($config);
}
if ($config !== null) {
foreach ($config as $key => $value) {
/**
* Set all given properties
*
* @param array|Zend_Config $props Property list
*/
public function setProperties($props = null)
{
if ($props !== null) {
foreach ($props as $key => $value) {
$method = 'set' . implode('', array_map('ucfirst', explode('_', strtolower($key))));
if (method_exists($this, $method)) {
$this->{$method}($value);
} else {
throw new ConfigurationError(
sprintf('Menu got invalid property "%s"', $key)
);
}
}
}
return $this;
}
/**
* Get Properties
*
* @return array
*/
public function getProperties()
{
$props = array();
$keys = array('url', 'icon', 'priority', 'title');
foreach ($keys as $key) {
$func = 'get' . ucfirst($key);
if (null !== ($val = $this->{$func}())) {
$props[$key] = $val;
}
}
return $props;
}
/**
* Whether this Menu conflicts with the given Menu object
*
* @param Menu $menu
* @return bool
*/
public function conflictsWith(Menu $menu)
{
if ($menu->getUrl() === null || $this->getUrl() === null) {
return false;
}
return $menu->getUrl() !== $this->getUrl();
}
/**
* Create menu from the application's menu config file plus the config files from all enabled modules
*
* THIS IS OBSOLATE. LEFT HERE FOR FUTURE USE WITH USER-SPECIFIC MODULES
*
* @return self
*/
public static function fromConfig()
@ -100,6 +149,63 @@ class Menu implements RecursiveIterator
return $menu->loadSubMenus($menu->flattenConfigs($menuConfigs));
}
/**
* Create menu from the application's menu config plus menu entries provided by all enabled modules
*
* @return self
*/
public static function load()
{
/** @var $menu \Icinga\Web\Menu */
$menu = new static('menu');
$menu->addMainMenuItems();
$manager = Icinga::app()->getModuleManager();
foreach ($manager->getLoadedModules() as $module) {
/** @var $module \Icinga\Application\Modules\Module */
$menu->mergeSubMenus($module->getMenuItems());
}
return $menu->order();
}
/**
* Add Applications Main Menu Items
*/
protected function addMainMenuItems()
{
$this->add(t('Dashboard'), array(
'url' => 'dashboard',
'icon' => 'img/icons/dashboard.png',
'priority' => 10
));
$section = $this->add(t('System'), array(
'icon' => 'img/icons/configuration.png',
'priority' => 200
));
$section->add(t('Preferences'), array(
'url' => 'preference',
'priority' => 200
));
$section->add(t('Configuration'), array(
'url' => 'config',
'priority' => 300
));
$section->add(t('Modules'), array(
'url' => 'config/modules',
'priority' => 400
));
$section->add(t('ApplicationLog'), array(
'url' => 'list/applicationlog',
'priority' => 500
));
$this->add(t('Logout'), array(
'url' => 'authentication/logout',
'icon' => 'img/icons/logout.png',
'priority' => 300
));
}
/**
* Set the id of this menu
*
@ -253,6 +359,79 @@ class Menu implements RecursiveIterator
return $subMenu;
}
/**
* Set required Permissions
*
* @param $permission
* @return $this
*/
public function requirePermission($permission)
{
// Not implemented yet
return $this;
}
/**
* Merge Sub Menus
*
* @param array $submenus
* @return $this
*/
public function mergeSubMenus(array $submenus)
{
foreach ($submenus as $menu) {
$this->mergeSubMenu($menu);
}
return $this;
}
/**
* Merge Sub Menu
*
* @param Menu $menu
* @return mixed
*/
public function mergeSubMenu(Menu $menu)
{
$name = $menu->getId();
if (array_key_exists($name, $this->subMenus)) {
/** @var $current Menu */
$current = $this->subMenus[$name];
if ($current->conflictsWith($menu)) {
while (array_key_exists($name, $this->subMenus)) {
if (preg_match('/_(\d+)$/', $name, $m)) {
$name = preg_replace('/_\d+$/', $m[1]++, $name);
} else {
$name .= '_2';
}
}
$menu->setId($name);
$this->subMenus[$name] = $menu;
} else {
$current->setProperties($menu->getProperties());
foreach ($menu->subMenus as $child) {
$current->mergeSubMenu($child);
}
}
} else {
$this->subMenus[$name] = $menu;
}
return $this->subMenus[$name];
}
/**
* Add a Menu
*
* @param $name
* @param array $config
* @return Menu
*/
public function add($name, $config = array())
{
return $this->addSubMenu($name, new Zend_Config($config));
}
/**
* Return whether a sub menu with the given id exists
*

View File

@ -63,6 +63,46 @@ class Dashboard extends AbstractWidget
$this->getTabs()->activate($name);
}
/**
* Load Pane items provided by all enabled modules
*
* @return self
*/
public static function load()
{
/** @var $dashboard Dashboard */
$dashboard = new static('dashboard');
$manager = Icinga::app()->getModuleManager();
foreach ($manager->getLoadedModules() as $module) {
/** @var $module \Icinga\Application\Modules\Module */
$dashboard->mergePanes($module->getPaneItems());
}
return $dashboard;
}
/**
* Merge panes with existing panes
*
* @param array $panes
* @return $this
*/
public function mergePanes(array $panes)
{
/** @var $pane Pane */
foreach ($panes as $pane) {
if (array_key_exists($pane->getName(), $this->panes)) {
/** @var $current Pane */
$current = $this->panes[$pane->getName()];
$current->addComponents($pane->getComponents());
} else {
$this->panes = array_filter(array_merge($this->panes, $panes));
}
}
return $this;
}
/**
* Return the tab object used to navigate through this dashboard
*
@ -147,6 +187,16 @@ class Dashboard extends AbstractWidget
return $this;
}
/**
* Checks if the current dashboard has any panes
*
* @return bool
*/
public function hasPanes()
{
return ! empty($this->panes);
}
/**
* Return true if a pane doesn't exist or doesn't have any components in it
*

View File

@ -165,6 +165,47 @@ class Pane extends AbstractWidget
return $this;
}
/**
* Add new components to existing components
*
* @param array $components
* @return $this
*/
public function addComponents(array $components)
{
/* @var $component Component */
foreach ($components as $component) {
if (array_key_exists($component->getTitle(), $this->components)) {
if (preg_match('/_(\d+)$/', $component->getTitle(), $m)) {
$name = preg_replace('/_\d+$/', $m[1]++, $component->getTitle());
} else {
$name = $component->getTitle() . '_2';
}
$this->components[$name] = $component;
} else {
$this->components[$component->getTitle()] = $component;
}
}
return $this;
}
/**
* Add a component to the current pane
*
* @param $title
* @param $url
* @return Component
*
* @see addComponent()
*/
public function add($title, $url = null)
{
$this->addComponent($title, $url);
return $this->components[$title];
}
/**
* Return the this pane's structure as array
*

View File

@ -0,0 +1,12 @@
<?php
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
/* @var $this \Icinga\Application\Modules\Module */
$section = $this->menuSection($this->translate('Documentation'), array(
'title' => 'Documentation',
'icon' => 'img/icons/comment.png',
'url' => 'doc',
'priority' => 80
));

View File

@ -87,6 +87,7 @@ class Monitoring_ListController extends Controller
'host_address',
'host_acknowledged',
'host_output',
'host_attempt',
'host_in_downtime',
'host_is_flapping',
'host_state_type',

View File

@ -12,7 +12,7 @@ class Monitoring_TacticalController extends MonitoringController
$this->getTabs()->add(
'tactical_overview',
array(
'title' => 'Tactical Overview',
'title' => $this->translate('Tactical Overview'),
'url' => Url::fromRequest()
)
)->activate('tactical_overview');

View File

@ -1,27 +1,31 @@
<?php
$helper = $this->getHelper('MonitoringState');
if (! $this->compact): ?>
<div class="controls">
<?= $this->tabs ?>
<div style="margin: 1em;" class="dontprint">
<?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?>
<?php if (! $this->filterEditor): ?>
<?= $this->filterPreview ?>
<?php endif; ?>
</div>
if ($this->compact): ?>
<div class="content">
<?php else: ?>
<div class="controls">
<?= $this->tabs ?>
<div style="margin: 1em;" class="dontprint">
<?= $this->translate('Sort by') ?> <?= $this->sortControl->render($this) ?>
<?php if (! $this->filterEditor): ?>
<?= $this->filterPreview ?>
<?php endif; ?>
</div>
<?= $this->widget('limiter')->setMaxLimit($this->hosts->count()) ?>
<?= $this->paginationControl($hosts, null, null, array('preserve' => $this->preserve)) ?>
<?= $this->selectionToolbar('multi', $this->href('monitoring/multi/host?' . $this->filter->toQueryString())) ?>
</div>
<div class="content">
<?= $this->filterEditor ?>
<?= $this->widget('limiter')->setMaxLimit($this->hosts->count()) ?>
<?= $this->paginationControl($hosts, null, null, array('preserve' => $this->preserve)) ?>
<?= $this->selectionToolbar('multi', $this->href('monitoring/multi/host?' . $this->filter->toQueryString())) ?>
</div>
<div class="content">
<?= $this->filterEditor ?>
<?php
endif;
if ($hosts->count() === 0) {
echo t('No hosts matching the filter');
echo $this->translate('No hosts matching the filter');
if (! $this->compact) {
echo '</div>';
}
@ -32,107 +36,90 @@ if ($hosts->count() === 0) {
<table
data-base-target="_next"
class="action multiselect"
data-icinga-multiselect-url="<?= $this->href("/monitoring/multi/host") ?>"
data-icinga-multiselect-url="<?= $this->href('/monitoring/multi/host') ?>"
data-icinga-multiselect-data="host"
>
<tbody>
<?php foreach($hosts as $host):
<tbody>
<?php foreach($hosts as $host):
$hostStateName = strtolower($this->util()->getHostStateName($host->host_state));
$hostLink = $this->href('/monitoring/show/host', array('host' => $host->host_name));
$hostStateName = strtolower($this->util()->getHostStateName($host->host_state));
$hostLink = $this->href('/monitoring/show/host', array('host' => $host->host_name));
if (! $this->compact) {
$icons = array();
if (! $host->host_handled && $host->host_state > 0){
$icons[] = $this->icon('unhandled.png', 'Unhandled');
}
$icons = array();
if (! $host->host_handled && $host->host_state > 0){
$icons[] = $this->icon('unhandled.png', 'Unhandled');
}
if ($host->host_acknowledged) {
$icons[] = $this->icon('acknowledgement.png', 'Acknowledged');
}
if ($host->host_acknowledged) {
$icons[] = $this->icon('acknowledgement.png', 'Acknowledged');
}
if ($host->host_is_flapping) {
$icons[] = $this->icon('flapping.png', 'Flapping');
}
if ($host->host_is_flapping) {
$icons[] = $this->icon('flapping.png', 'Flapping');
}
if (! $host->host_notifications_enabled) {
$icons[] = $this->icon('notification_disabled.png', 'Notifications Disabled');
}
if (! $host->host_notifications_enabled) {
$icons[] = $this->icon('notification_disabled.png', 'Notifications Disabled');
}
if ($host->host_in_downtime) {
$icons[] = $this->icon('in_downtime.png', 'In Downtime');
}
if ($host->host_in_downtime) {
$icons[] = $this->icon('in_downtime.png', 'In Downtime');
}
if (! $host->host_active_checks_enabled) {
if (! $host->host_passive_checks_enabled) {
$icons[] = $this->icon('active_passive_checks_disabled.png', 'Active And Passive Checks Disabled');
} else {
$icons[] = $this->icon('active_checks_disabled.png', 'Active Checks Disabled');
}
}
if (isset($host->host_last_comment) && $host->host_last_comment !== null) {
$icons[] = $this->icon('comment.png', 'Comment: ' . $host->host_last_comment);
}
if (! $host->host_active_checks_enabled) {
if (! $host->host_passive_checks_enabled) {
$icons[] = $this->icon('active_passive_checks_disabled.png', 'Active And Passive Checks Disabled');
} else {
$icons[] = $this->icon('active_checks_disabled.png', 'Active Checks Disabled');
}
?>
<tr class="state <?= $hostStateName ?><?= $host->host_handled ? ' handled' : '' ?>">
<!-- State -->
<td class="state" title="<?= $helper->getStateTitle($host, 'host') ?>">
<?php if (! $this->compact): ?>
<div>
<strong><?= ucfirst($helper->monitoringState($host, 'host')) ?></strong><br />
<div class="small-row">
<?php endif; ?>
<?= $this->prefixedTimeSince($host->host_last_state_change, true) ?>
<?php if (! $this->compact): ?>
<?php if ($host->host_state > 0): ?>
<br />
<strong><?= $this->translate(
($host->host_state_type === '1') ? 'Hard' : 'Soft'
) ?> </strong> <!--
--><?= $host->host_current_check_attempt ?>/<?= $host->host_max_check_attempts ?>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
</td>
}
<!-- Host / Status / Output -->
<td>
<?php if (! $this->compact): ?>
<?php if ($host->host_icon_image): ?>
<?= $this->img(
$this->resolveMacros($host->host_icon_image, $host),
array('align' => 'right')
) ?>
<?php endif; ?>
<?= implode(' ', $icons) ?>
<?php endif ?>
<a href="<?= $this->compact ? $hostLink : $this->href(
'monitoring/show/host',
array('host' => $host->host_name)
) ?>"><?= $host->host_name ?></a>
<?php if (isset($host->host_unhandled_services) && $host->host_unhandled_services > 0): ?>
<span style="font-weight: normal" title="<?=
$host->host_unhandled_services
?> Service Problems on Host"> (<?= $this->qlink(
sprintf($this->translate('%d unhandled services'), $host->host_unhandled_services),
'monitoring/show/services',
array(
'host' => $host->host_name,
'service_problem' => 1,
'service_acknowledged' => 0,
'service_in_downtime' => 0
),
array('style' => 'font-weight: normal')
) ?>)</span>
<?php endif ?>
<br />
<?= $this->escape(substr(strip_tags($host->host_output), 0, 10000)) ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
if (isset($host->host_last_comment) && $host->host_last_comment !== null) {
$icons[] = $this->icon('comment.png', 'Comment: ' . $host->host_last_comment);
}
?>
<tr class="state <?= $hostStateName ?><?= $host->host_handled ? ' handled' : '' ?>">
<!-- State -->
<td class="state" title="<?= $helper->getStateTitle($host, 'host') ?>">
<?php if (! $this->compact): ?>
<strong><?= ucfirst($helper->monitoringState($host, 'host')) ?></strong><br />
<?php endif ?>
<?= $this->prefixedTimeSince($host->host_last_state_change, true) ?>
<?php if ($host->host_state > 0 && (int) $host->host_state_type === 0): ?>
<br />
<strong>Soft <?= $host->host_attempt ?></strong>
<?php endif ?>
</td>
<!-- Host / Status / Output -->
<td>
<?php if ($host->host_icon_image && ! preg_match('/[\'"]/', $host->host_icon_image)): ?>
<?= $this->icon($this->resolveMacros($host->host_icon_image, $host)) ?>
<?php endif ?>
<?= implode(' ', $icons) ?>
<a href="<?= $hostLink ?>"><?= $host->host_name ?></a>
<?php if (isset($host->host_unhandled_services) && $host->host_unhandled_services > 0): ?>
<span title="<?=
$host->host_unhandled_services
?> Service Problems on Host"> (<?= $this->qlink(
sprintf($this->translate('%d unhandled services'), $host->host_unhandled_services),
'monitoring/show/services',
array(
'host' => $host->host_name,
'service_problem' => 1,
'service_acknowledged' => 0,
'service_in_downtime' => 0
),
array('style' => 'font-weight: normal')
) ?>)</span>
<?php endif ?>
<p class="pluginoutput"><?= $this->escape(substr(strip_tags($host->host_output), 0, 10000)) ?></p>
</td>
<?php foreach($this->extraColumns as $col): ?>
<td><?= $this->escape($host->$col) ?></td>
<?php endforeach ?>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>

View File

@ -17,7 +17,7 @@
'monitoring/list/hosts',
array('host_flap_detection_enabled' => 0)
); ?>" class="feature-highlight">
<?= sprintf('%d hosts disabled', $this->statusSummary->hosts_without_flap_detection); ?>
<?= sprintf($this->translate('%d hosts disabled'), $this->statusSummary->hosts_without_flap_detection); ?>
</a>
<?php else: ?>
<div class="box entry">
@ -33,7 +33,7 @@
'monitoring/list/hosts',
array('host_is_flapping' => 1)
); ?>" class="feature-highlight">
<?= sprintf('%d hosts flapping', $this->statusSummary->hosts_flapping); ?>
<?= sprintf($this->translate('%d hosts flapping'), $this->statusSummary->hosts_flapping); ?>
</a>
<?php endif ?>
</div>
@ -45,7 +45,7 @@
'monitoring/list/services',
array('service_flap_detection_enabled' => 0)
); ?>" class="feature-highlight">
<?= sprintf('%d services disabled', $this->statusSummary->services_without_flap_detection); ?>
<?= sprintf($this->translate('%d services disabled'), $this->statusSummary->services_without_flap_detection); ?>
</a>
<?php else: ?>
<div class="box entry">
@ -61,7 +61,7 @@
'monitoring/list/services',
array('service_is_flapping' => 1)
); ?>" class="feature-highlight">
<?= sprintf('%d services flapping', $this->statusSummary->services_flapping); ?>
<?= sprintf($this->translate('%d services flapping'), $this->statusSummary->services_flapping); ?>
</a>
<?php endif ?>
</div>
@ -84,7 +84,7 @@
'monitoring/list/hosts',
array('host_notifications_enabled' => 0)
); ?>" class="feature-highlight">
<?= sprintf('%d hosts disabled', $this->statusSummary->hosts_not_triggering_notifications); ?>
<?= sprintf($this->translate('%d hosts disabled'), $this->statusSummary->hosts_not_triggering_notifications); ?>
</a>
<?php else: ?>
<div class="box entry ">
@ -104,7 +104,7 @@
'monitoring/list/services',
array('service_notifications_enabled' => 0)
); ?>" class="feature-highlight">
<?= sprintf('%d services disabled', $this->statusSummary->services_not_triggering_notifications); ?>
<?= sprintf($this->translate('%d services disabled'), $this->statusSummary->services_not_triggering_notifications); ?>
</a>
<?php else: ?>
<div class="box entry">
@ -135,7 +135,7 @@
'monitoring/list/hosts',
array('host_event_handler_enabled' => 0)
); ?>" class="feature-highlight">
<?= sprintf('%d hosts disabled', $this->statusSummary->hosts_not_processing_event_handlers); ?>
<?= sprintf($this->translate('%d hosts disabled'), $this->statusSummary->hosts_not_processing_event_handlers); ?>
</a>
<?php else: ?>
<div class="box entry">
@ -155,7 +155,7 @@
'monitoring/list/services',
array('service_event_handler_enabled' => 0)
); ?>" class="feature-highlight">
<?= sprintf('%d services disabled', $this->statusSummary->services_not_processing_event_handlers); ?>
<?= sprintf($this->translate('%d services disabled'), $this->statusSummary->services_not_processing_event_handlers); ?>
</a>
<?php else: ?>
<div class="box entry">

View File

@ -2,6 +2,8 @@
// {{{ICINGA_LICENSE_HEADER}}}
// {{{ICINGA_LICENSE_HEADER}}}
/* @var $this \Icinga\Application\Modules\Module */
// TODO: We need to define a useful permission set for this module, the
// list provided here is just an example
$this->providePermission('commands/all', 'Allow to send all commands');
@ -16,3 +18,125 @@ $this->provideConfigTab('security', array(
'title' => 'Security',
'url' => 'config/security'
));
/*
* Problems Section
*/
$section = $this->menuSection($this->translate('Problems'), array(
'icon' => 'img/icons/error.png',
'priority' => 20
));
$section->add($this->translate('Unhandled Hosts'), array(
'url' => 'monitoring/list/hosts?host_problem=1&host_handled=0',
'priority' => 40
));
$section->add($this->translate('Unhandled Services'), array(
'url' => 'monitoring/list/services?service_problem=1&service_handled=0&sort=service_severity',
'priority' => 40
));
$section->add($this->translate('Host Problems'), array(
'url' => 'monitoring/list/hosts?host_problem=1&sort=host_severity',
'priority' => 50
));
$section->add($this->translate('Service Problems'), array(
'url' => 'monitoring/list/services?service_problem=1&sort=service_severity&dir=desc',
'priority' => 50
));
$section->add($this->translate('Current Downtimes'))->setUrl('monitoring/list/downtimes?downtime_is_in_effect=1');
/*
* Overview Section
*/
$section = $this->menuSection($this->translate('Overview'), array(
'icon' => 'img/icons/hostgroup.png',
'priority' => 30
));
$section->add($this->translate('Tactical Overview'), array(
'url' => 'monitoring/tactical',
'priority' => 40
));
$section->add($this->translate('Hosts'), array(
'url' => 'monitoring/list/hosts',
'priority' => 50
));
$section->add($this->translate('Services'), array(
'url' => 'monitoring/list/services',
'priority' => 50
));
$section->add($this->translate('Servicematrix'), array(
'url' => 'monitoring/list/servicematrix?service_problem=1',
'priority' => 51
));
$section->add($this->translate('Servicegroups'), array(
'url' => 'monitoring/list/servicegroups',
'priority' => 60
));
$section->add($this->translate('Hostgroups'), array(
'url' => 'monitoring/list/hostgroups',
'priority' => 60
));
$section->add($this->translate('Contactgroups'), array(
'url' => 'monitoring/list/contactgroups',
'priority' => 61
));
$section->add($this->translate('Downtimes'), array(
'url' => 'monitoring/list/downtimes',
'priority' => 71
));
$section->add($this->translate('Comments'), array(
'url' => 'monitoring/list/comments?comment_type=(comment|ack)',
'priority' => 70
));
$section->add($this->translate('Contacts'), array(
'url' => 'monitoring/list/contacts',
'priority' => 70
));
/*
* History Section
*/
$section = $this->menuSection($this->translate('History'), array(
'icon' => 'img/icons/history.png'
));
$section->add($this->translate('Critical Events'), array(
'url' => 'monitoring/list/statehistorysummary',
'priority' => 50
));
$section->add($this->translate('Notifications'), array(
'url' => 'monitoring/list/notifications'
));
$section->add($this->translate('Events'), array(
'title' => $this->translate('All Events'),
'url' => 'monitoring/list/eventhistory?timestamp>=-7%20days'
));
$section->add($this->translate('Timeline'))->setUrl('monitoring/timeline');
/*
* System Section
*/
$section = $this->menuSection($this->translate('System'));
$section->add($this->translate('Process Info'), array(
'url' => 'monitoring/process/info',
'priority' => 120
));
$section->add($this->translate('Performance Info'), array(
'url' => 'monitoring/process/performance',
'priority' => 130
));
/*
* Dashboard
*/
$dashboard = $this->dashboard($this->translate('Current Incidents'));
$dashboard->add(
$this->translate('Service Problems'),
'monitoring/list/services?service_problem=1&limit=10&sort=service_severity'
);
$dashboard->add(
$this->translate('Recently Recovered Services'),
'monitoring/list/services?service_state=0&limit=10&sort=service_last_state_change&dir=desc'
);
$dashboard->add(
$this->translate('Host Problems'),
'monitoring/list/hosts?host_problem=1&sort=host_severity'
);