[pkg-nagios-changes] [Git][nagios-team/pkg-icingaweb2][upstream] New upstream version 2.7.1
Bas Couwenberg
gitlab at salsa.debian.org
Fri Aug 16 05:59:23 BST 2019
Bas Couwenberg pushed to branch upstream at Debian Nagios Maintainer Group / pkg-icingaweb2
Commits:
08541676 by Bas Couwenberg at 2019-08-16T04:34:54Z
New upstream version 2.7.1
- - - - -
30 changed files:
- AUTHORS
- CHANGELOG.md
- RELEASE.md
- VERSION
- application/VERSION
- application/views/scripts/dashboard/settings.phtml
- + doc/res/gitlab-job-artifacts.png
- + doc/res/gitlab-rpm-package-pipeline-jobs.png
- library/Icinga/Application/Version.php
- library/Icinga/Data/Db/DbQuery.php
- library/Icinga/Data/SimpleQuery.php
- modules/doc/module.info
- modules/migrate/application/clicommands/DashboardCommand.php
- modules/migrate/module.info
- modules/monitoring/application/views/scripts/list/servicegrid-flipped.phtml
- modules/monitoring/library/Monitoring/Backend/Ido/Query/HostgroupQuery.php
- modules/monitoring/library/Monitoring/Backend/Ido/Query/IdoQuery.php
- modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicegroupQuery.php
- modules/monitoring/module.info
- modules/monitoring/public/css/module.less
- modules/setup/module.info
- modules/test/module.info
- modules/translation/module.info
- public/css/icinga/compat.less
- public/css/icinga/forms.less
- public/css/icinga/login.less
- public/css/icinga/responsive.less
- public/css/themes/high-contrast.less
- public/css/themes/solarized-dark.less
- public/js/icinga/loader.js
Changes:
=====================================
AUTHORS
=====================================
@@ -3,22 +3,27 @@ Alexander A. Klimov <alexander.klimov at icinga.com>
Alexander Fuhr <alexander.fuhr at netways.de>
Alexander Wirt <formorer at debian.org>
Andreas Olsson <andreas at arrakis.se>
+ayoubabid <ayoubabid at users.noreply.github.com>
Bas Couwenberg <sebastic at xs4all.nl>
+baufrecht <baufrecht at users.noreply.github.com>
Bence Nagy <bence at underyx.me>
Benedikt Heine <bebe at bebehei.de>
Bernd Erk <bernd.erk at icinga.com>
Bernhard Friedreich <bernhard.friedreich at brz.gv.at>
Blerim Sheqa <blerim.sheqa at icinga.com>
Boden Garman <boden.garman at spintel.net.au>
+bradynathan <bradynathan at gmail.com>
Carlos Cesario <carloscesario at gmail.com>
Carsten <carsten.koebke at gmx.de>
Carsten Koebke <carsten.koebke at koebbes.de>
+chisatohasimoto <hasimoto at designet.co.jp>
Chris Reeves <chris.reeves at york.ac.uk>
+Christopher Rüll <christopher.ruell at netways.de>
Christoph Niemann <kordolan at googlemail.com>
Christoph Wiechert <wio at psitrax.de>
-Christopher Rüll <christopher.ruell at netways.de>
Constantin Matheis <constantin.matheis at gmail.com>
Cornelius Wachinger <cornelius at dercorn.com>
+cstegm <cstegm at users.noreply.github.com>
Daniel <d.lorych at gmail.com>
Daniel Shirley <aditaa at ig2ad.com>
Davide Bizzarri <davide.bizzarri at wuerth-phoenix.com>
@@ -34,21 +39,25 @@ Francesco Colista <fcolista at alpinelinux.org>
Francesco Mazzi <fmazzi at comune.genova.it>
Goran Rakic <grakic at devbase.net>
Gunnar Beutner <gunnar.beutner at netways.de>
+h0rmiga <github at hormiga.ru>
+hailthemelody at rm-laptop04 <hailthemelody at rm-laptop04>
Hector Sanjuan <hector.sanjuan at nugg.ad>
Heike Jurzik <huhn at lion-3.fritz.box>
Ian Shearin <ishearin at womply.com>
+ignasr <ignas.linux at gmail.com>
Janne Heß <janne at hess.ooo>
Jannis Moßhammer <jannis.mosshammer at netways.de>
Jennifer Mourek <jennifer.mourek at icinga.com>
-Jo Rhett <jo at chegg.com>
Joe Doherty <git at pjuu.com>
Johannes Meyer <johannes.meyer at icinga.com>
Joonas Kylmälä <joonas.kylmala at kirjastot.fi>
+Jo Rhett <jo at chegg.com>
Ken Jungclaus <lum33n at web.de>
Klaus Jrgensen <klaus at blackwoodseven.com>
Lee Clemens <java at leeclemens.net>
Loei Petrus Marogi <loeipetrus.marogi at netways.de>
Louis Sautier <sautier.louis at gmail.com>
+mapa82 <maik.paetzold at akra.de>
Marc DeTrano <marc at gridshield.net>
Marcel Weinberg <marcel.weinberg at secucloud.com>
Marcus Cobden <marcus at marcuscobden.co.uk>
@@ -57,10 +66,12 @@ Mario Rimann <mario at rimann.org>
Marius Hein <marius.hein at netways.de>
Markus Frosch <markus.frosch at icinga.com>
Markus Opolka <opolkams at iis.fraunhofer.de>
-Matthias <pub at matthias-henning.de>
Matthias Jentsch <matthias.jentsch at netways.de>
+Matthias <pub at matthias-henning.de>
Max Kozlov <m.v.kozlov at gmail.com>
Max Stephan <xam.stephan at web.de>
+mbaschnitzi <mbaschnitzi at users.noreply.github.com>
+mdetrano <marc at gridshield.net>
Michael Friedrich <michael.friedrich at icinga.com>
Michael T. DeGuzis <mdeguzis at users.noreply.github.com>
Mike Pennisi <mike at mikepennisi.com>
@@ -71,47 +82,37 @@ Nicolai Buchwitz <nicolai.buchwitz at enda.eu>
Niko Martini <niko.martini at netways.de>
Noah Hilverling <noah.hilverling at icinga.com>
Oliver Rahner <oliver at rahner.me>
+p4k8 <pkuznetsunit at gmail.com>
Paolo Schiro <paolo.schiro at kpnqwest.it>
Paul Richards <paul at minimoo.org>
Pavlos Daoglou <pdaoglou at gmail.com>
+Peter Eckel <pe-git at hindenburgring.com>
Pieter Lexis <pieter.lexis at powerdns.com>
PunkoIvan <punkoivan at gmail.com>
Ramy Talal <ramy at thinkquality.nl>
Raphael Bicker <raphael at bicker.ch>
+rbelinsky <rbelinsky at dalet.com>
+realitygaps <github at gapsinreality.com>
Rene Moser <rene.moser at swisstxt.ch>
+rkcpi <thieme.sandra at gmail.com>
Roland Hopferwieser <rhopfer at ica.jku.at>
Rudy Gevaert <rudy.gevaert at ugent.be>
Rune Darrud <theflyingcorpse at gmail.com>
Russell Kubik <russkubik at 3d-p.com>
Sander Ferdinand <sa.ferdinand at gmail.com>
+sant-swedge <simon.wedge at sant.ox.ac.uk>
Simone Orsi <simahawk at users.noreply.github.com>
+ss23 <stephen at zxsecurity.co.nz>
Susanne Vestner-Ludwig <susanne.vestner-ludwig at inserteffect.com>
Sylph Lin <sylph.lin at gmail.com>
+tfylling <torbfylling at gmail.com>
Thomas Gelf <thomas.gelf at icinga.com>
Tim Helfensdörfer <tim at visualappeal.de>
Tobias von der Krone <tobias.vonderkrone at profitbricks.com>
-Tom Ford <exptom at users.noreply.github.com>
Tomas Barton <barton.tomas at gmail.com>
+Tom Ford <exptom at users.noreply.github.com>
Ulf Lange <mopp at gmx.net>
Uwe Ebel <kobmaki at aol.com>
Vladislav Ponomarev <vponomarev at team.mobile.de>
-Yuri Konotopov <ykonotopov at gmail.com>
-ayoubabid <ayoubabid at users.noreply.github.com>
-baufrecht <baufrecht at users.noreply.github.com>
-bradynathan <bradynathan at gmail.com>
-chisatohasimoto <hasimoto at designet.co.jp>
-cstegm <cstegm at users.noreply.github.com>
-h0rmiga <github at hormiga.ru>
-hailthemelody at rm-laptop04 <hailthemelody at rm-laptop04>
-ignasr <ignas.linux at gmail.com>
-mapa82 <maik.paetzold at akra.de>
-mbaschnitzi <mbaschnitzi at users.noreply.github.com>
-mdetrano <marc at gridshield.net>
-p4k8 <pkuznetsunit at gmail.com>
-rbelinsky <rbelinsky at dalet.com>
-realitygaps <github at gapsinreality.com>
-rkcpi <thieme.sandra at gmail.com>
-sant-swedge <simon.wedge at sant.ox.ac.uk>
-ss23 <stephen at zxsecurity.co.nz>
-tfylling <torbfylling at gmail.com>
xert <xert at users.noreply.github.com>
+Yuri Konotopov <ykonotopov at gmail.com>
=====================================
CHANGELOG.md
=====================================
@@ -4,6 +4,32 @@ Please make sure to always read our [Upgrading](doc/80-Upgrading.md) documentati
## What's New
+### What's New in Version 2.7.1
+
+You can find all issues related to this release on our [Roadmap](https://github.com/Icinga/icingaweb2/milestone/56?closed=1).
+
+#### Sneaky Solution for Sneaky Links
+
+Usually we try to include only bugs in minor-releases. Sorry, bug-fixes, of course. But thanks to
+[@winem_](https://twitter.com/winem_/status/1156531270521896960) we have also a little enhancement this time:
+Links in comments, notes, etc. are now [highlighted](https://github.com/Icinga/icingaweb2/pull/3893) as such.
+
+* Highlight links in the notes of an object [#3888](https://github.com/Icinga/icingaweb2/issues/3888)
+
+#### Nobody's Perfect, Not Even Developers
+
+We knew it. We saw it coming. And forgot about it. Some views, especially histories, showed an anarchic behavior
+since v2.7.0. The change responsible for this has been undone and history's order is reestablished now.
+
+* Default sort rules no longer work in 2.7.0 [#3891](https://github.com/Icinga/icingaweb2/issues/3891)
+
+#### Restrictions Gone ~~Wild~~ Cagey
+
+A [fix](https://github.com/Icinga/icingaweb2/pull/3868) unfortunately caused restrictions using wildcards to show no
+results anymore. This is now solved and such restrictions are as permissive as ever.
+
+* Wildcard filters in chains broken [#3886](https://github.com/Icinga/icingaweb2/issues/3886)
+
### What's New in Version 2.7.0
You can find issues related to this release on our [Roadmap](https://github.com/Icinga/icingaweb2/milestone/52?closed=1).
=====================================
RELEASE.md
=====================================
@@ -1,31 +1,11 @@
-# Release Workflow <a id="release-workflow"></a>
-
-#### Table of Content
-
-- [1. Preparations](#preparations)
- - [1.1. Issues](#issues)
- - [1.2. Backport Commits](#backport-commits)
- - [1.3. Authors](#authors)
-- [2. Version](#version)
-- [3. Changelog](#changelog)
-- [4. Git Tag](#git-tag)
-- [5. Package Builds](#package-builds)
- - [5.1. RPM Packages](#rpm-packages)
- - [5.2. DEB Packages](#deb-packages)
-- [6. Build Server](#build-server)
-- [7. Release Tests](#release-tests)
-- [8. GitHub Release](#github-release)
-- [9. Post Release](#post-release)
- - [9.1. Online Documentation](#online-documentation)
- - [9.2. Announcement](#announcement)
- - [9.3. Project Management](#project-management)
-
-## Preparations <a id="preparations"></a>
+# Release Workflow
+
+## Preparations
Specify the release version.
```
-VERSION=2.6.3
+VERSION=2.7.0
```
Add your signing key to your Git configuration file, if not already there.
@@ -39,17 +19,17 @@ vim $HOME/.gitconfig
signingkey = D14A1F16
```
-### Issues <a id="issues"></a>
+### Issues
Check issues at https://github.com/Icinga/icingaweb2
-### Backport Commits <a id="backport-commits"></a>
+### Backport Commits
For minor versions not branched off git master you need
to manually backport any and all commits from the
master branch which should be part of this release.
-### Authors <a id="authors"></a>
+### Authors
Update the [.mailmap](.mailmap) and [AUTHORS](AUTHORS) files:
@@ -57,7 +37,7 @@ Update the [.mailmap](.mailmap) and [AUTHORS](AUTHORS) files:
git log --use-mailmap | grep '^Author:' | cut -f2- -d' ' | sort | uniq > AUTHORS
```
-## Version <a id="version"></a>
+## Version
Update the version in the following files:
@@ -73,11 +53,12 @@ sed -i "s/const VERSION = '.*'/const VERSION = '$VERSION'/g" library/Icinga/Appl
find . -type f -name '*.info' -exec sed -i "s/Version: .*/Version: $VERSION/g" {} \;
```
-## Changelog <a id="changelog"></a>
+## Changelog
-Link to the milestone and closed=1 as filter.
+Choose the most important issues and summarize them in multiple groups/paragraphs. Provide links to the mentioned
+issues/PRs. At the start include a link to the milestone's closed issues.
-## Git Tag <a id="git-tag"></a>
+## Git Tag
```
git commit -v -a -m "Release version $VERSION"
@@ -93,138 +74,125 @@ git tag -s -m "Version $VERSION" v$VERSION
Push the tag:
```
-git push --tags
+git push v$VERSION
```
**For major releases:** Create a new `support` branch:
```
git checkout master
-git checkout -b support/2.6
-git push -u origin support/2.6
+git checkout -b support/2.7
+git push -u origin support/2.7
```
-## Package Builds <a id="package-builds"></a>
+## Package Builds
-### RPM Packages <a id="rpm-packages"></a>
+### RPM Packages
```
-git clone git at github.com:icinga/rpm-icingaweb2.git && cd rpm-icingaweb2
+git clone git at git.icinga.com:packaging/rpm-icingaweb2.git && cd rpm-icingaweb2
```
-#### Branch Workflow
-
-**Major releases** are branched off `master`.
+### DEB Packages
```
-git checkout master && git pull
+git clone git at git.icinga.com:packaging/deb-icingaweb2.git && cd deb-icingaweb2
```
-**Bugfix releases** are created in the `release` branch and later merged to master.
+### Branch Workflow
-```
-git checkout release && git pull
-```
+Checkout `master` and create a new branch.
-#### Release Commit
+* For releases use x.x[.x] as branch name (e.g. 2.7 or 2.7.1)
+* For releases with revision use x.x.x-n (e.g. 2.7.0-2)
-Set the `Version`, `Revision` and `changelog` inside the spec file.
+### Switch Build Type (For RPM and DEB)
-```
-sed -i "s/Version: .*/Version: $VERSION/g" icingaweb2.spec
-
-vim icingaweb2.spec
+Edit file `.gitlab-ci.yml` and comment variable `ICINGA_BUILD_TYPE` out.
-%changelog
-* Wed Apr 24 2019 Johannes Meyer <johannes.meyer at icinga.com> 2.6.3-1
-- Update to 2.6.3
+```yaml
+variables:
+ ...
+ #ICINGA_BUILD_TYPE: snapshot
+ ...
```
+Commit the change.
+
```
-git commit -av -m "Release $VERSION-1"
-git push
+git commit -av -m "Switch build type for $VERSION-1"
```
-**Note for major releases**: Update release branch to latest.
-`git checkout release && git pull && git merge master && git push`
-
-**Note for minor releases**: Cherry-pick the release commit into master.
-`git checkout master && git pull && git cherry-pick release && git push`
+#### RPM Release Preparations
+Set the `Version`, `revision` and `%changelog` inside the spec file:
-### DEB Packages <a id="deb-packages"></a>
-
-```
-git clone git at github.com:icinga/deb-icingaweb2.git && cd deb-icingaweb2
```
+sed -i "s/Version:.*/Version: $VERSION/g" icingaweb2.spec
-#### Branch Workflow
-
-**Major releases** are branched off `master`.
+vim icingaweb2.spec
-```
-git checkout master && git pull
+%changelog
+* Tue Jul 30 2019 Johannes Meyer <johannes.meyer at icinga.com> 2.7.0-1
+- Update to 2.7.0
```
-**Bugfix releases** are created in the `release` branch and later merged to master.
+#### DEB Release Preparations
+
+Update file `debian/changelog` and add at the beginning:
```
-git checkout release && git pull
-```
+icingaweb2 (2.7.0-1) icinga; urgency=medium
-#### Release Commit
+ * Release 2.7.0-1
-Set the `Version`, `Revision` and `changelog` by using the `dch` helper.
+ -- Eric Lippmann <eric.lippmann at icinga.com> Tue, 30 Jul 2019 09:28:52 +0000
```
-VERSION=2.6.3
-./dch $VERSION-1 "Update to $VERSION"
-```
+### Release Commit (For RPM and DEB)
+
+Commit the changes and push the branch.
```
git commit -av -m "Release $VERSION-1"
-git push
+git push origin 2.7
```
+Gitlab will now build snapshot packages based on the tag `v2.7.0` of Icinga Web 2.
-**Note for major releases**: Update release branch to latest.
+### Package Tests
-```
-git checkout release && git pull && git merge master && git push
-```
+In order to test the created packages you can download a job's artifacts:
-**Note for minor releases**: Cherry-pick the release commit into master.
+Visit [git.icinga.com](https://git.icinga.com/packaging/rpm-icingaweb2)
+and navigate to the respective pipeline under `CI / CD -> Pipelines`.
-```
-git checkout master && git pull && git cherry-pick release && git push
-```
+There click on the job you want to download packages from:
+![Pipeline Jobs](doc/res/gitlab-rpm-package-pipeline-jobs.png "Pipeline Jobs")
-#### DEB with dch on macOS
+The job's output appears. On the right-hand sidebar you can browse its artifacts:
-```
-docker run -v `pwd`:/mnt/packaging -ti ubuntu:bionic bash
+![Job Artifacts](doc/res/gitlab-job-artifacts.png "Job Artifacts")
-apt-get update && apt-get install git ubuntu-dev-tools vim -y
-cd /mnt/packaging
+Once there, navigate to `build/RPMS/noarch` where you'll find the packages.
-git config --global user.name "Eric Lippmann"
-git config --global user.email "eric.lippmann at icinga.com"
+### Release Packages
-VERSION=2.6.3
+To build release packages and upload them to [packages.icinga.com](https://packages.icinga.com)
+tag the release commit and push it.
-./dch $VERSION-1 "Update to $VERSION"
+```
+git tag -s 2.7.0-1
+git push origin 2.7.0-1
```
-## Build Server <a id="build-server"></a>
+Now cherry pick the release commit to `master` so that the changes are transferred back to it.
-* Verify package build changes for this version.
-* Test the snapshot packages for all distributions beforehand.
-* Build the newly created Git tag for Debian/RHEL/SuSE.
- * Wait until all jobs have passed and then publish them one by one with `allow_release`
+**Attention**: Only the release commit. *NOT* the one switching the build type!
-## Release Tests <a id="release-tests"></a>
+## Release Tests
* Provision the vagrant boxes and test the release packages.
* * Start a new docker container and install/run Icinga Web 2 & icingacli.
@@ -258,22 +226,20 @@ apt-get -y install icingaweb2 icingacli
icingacli
```
-
-## GitHub Release <a id="github-release"></a>
+## GitHub Release
Create a new release for the newly created Git tag: https://github.com/Icinga/icingaweb2/releases
> Hint: Choose [tags](https://github.com/Icinga/icingaweb2/tags), pick one to edit and
> make this a release. You can also create a draft release.
-The release body should contain a short changelog, with links
-into the roadmap, changelog and blogpost.
+Use the changelog for the release body.
-### Online Documentation <a id="online-documentation"></a>
+## Online Documentation
This is built with a daily cronjob.
-#### Manual Updates
+### Manual Updates
SSH into the webserver or ask [bobapple](https://github.com/bobapple).
@@ -281,13 +247,13 @@ SSH into the webserver or ask [bobapple](https://github.com/bobapple).
cd /usr/local/icinga-docs-tools && ./build-docs.rb -c /var/www/docs/config/icingaweb2-latest.yml
```
-### Announcement <a id="announcement"></a>
+## Announcement
* Create a new blog post on [icinga.com/blog](https://icinga.com/blog) including a featured image
* Create a release topic on [community.icinga.com](https://community.icinga.com)
* Release email to net-tech & team
-### Project Management <a id="project-management"></a>
+## Project Management
* Add new minor version on [GitHub](https://github.com/Icinga/icingaweb2/milestones).
* Close the released version on [GitHub](https://github.com/Icinga/icingaweb2/milestones).
=====================================
VERSION
=====================================
@@ -1 +1 @@
-v2.7.0
+v2.7.1
=====================================
application/VERSION
=====================================
@@ -1 +1 @@
-861c5601b6e01402a932687d7b59a037c72a6804 2019-07-30 10:49:59 +0200
+b0bf9c4b0637f6113adb788e78c2bcf619225dd8 2019-08-14 13:10:19 +0200
=====================================
application/views/scripts/dashboard/settings.phtml
=====================================
@@ -19,7 +19,7 @@
<tbody>
<?php foreach ($this->dashboard->getPanes() as $pane): ?>
<?php if ($pane->getDisabled()) continue; ?>
- <tr style="background-color: #f1f1f1;">
+ <tr>
<th colspan="2" style="text-align: left; padding: 0.5em;">
<?php if ($pane->isUserWidget()): ?>
<?= $this->qlink(
=====================================
doc/res/gitlab-job-artifacts.png
=====================================
Binary files /dev/null and b/doc/res/gitlab-job-artifacts.png differ
=====================================
doc/res/gitlab-rpm-package-pipeline-jobs.png
=====================================
Binary files /dev/null and b/doc/res/gitlab-rpm-package-pipeline-jobs.png differ
=====================================
library/Icinga/Application/Version.php
=====================================
@@ -8,7 +8,7 @@ namespace Icinga\Application;
*/
class Version
{
- const VERSION = '2.7.0';
+ const VERSION = '2.7.1';
/**
* Get the version of this instance of Icinga Web 2
=====================================
library/Icinga/Data/Db/DbQuery.php
=====================================
@@ -298,13 +298,33 @@ class DbQuery extends SimpleQuery
}
if (is_array($expression)) {
+ $comp = [];
+ $pattern = [];
+ foreach ($expression as $value) {
+ if (strpos($value, '*') === false) {
+ $comp[] = $value;
+ } else {
+ $pattern[] = $this->whereToSql($col, $sign, $value);
+ }
+ }
+ $sql = $pattern;
if ($sign === '=') {
- return $col . ' IN (' . $this->escapeForSql($expression) . ')';
+ if (! empty($comp)) {
+ $sql[] = $col . ' IN (' . $this->escapeForSql($comp) . ')';
+ }
+ $operator = 'OR';
} elseif ($sign === '!=') {
- return sprintf('(%1$s NOT IN (%2$s) OR %1$s IS NULL)', $col, $this->escapeForSql($expression));
+ if (! empty($comp)) {
+ $sql[] = sprintf('(%1$s NOT IN (%2$s) OR %1$s IS NULL)', $col, $this->escapeForSql($comp));
+ }
+ $operator = 'AND';
+ } else {
+ throw new QueryException(
+ 'Unable to render array expressions with operators other than equal or not equal'
+ );
}
- throw new QueryException('Unable to render array expressions with operators other than equal or not equal');
+ return '(' . implode(" $operator ", $sql) . ')';
} elseif ($sign === '=' && strpos($expression, '*') !== false) {
if ($expression === '*') {
return new Zend_Db_Expr('TRUE');
=====================================
library/Icinga/Data/SimpleQuery.php
=====================================
@@ -450,17 +450,7 @@ class SimpleQuery implements QueryInterface, Queryable, Iterator
*/
public function hasResult()
{
- if ($this->iteratorPosition !== null) {
- return true;
- }
-
- $hasResult = false;
- foreach ($this as $row) {
- $hasResult = true;
- break;
- }
-
- return $hasResult;
+ return $this->iteratorPosition !== null || $this->fetchRow() !== false;
}
/**
=====================================
modules/doc/module.info
=====================================
@@ -1,4 +1,4 @@
Module: doc
-Version: 2.7.0
+Version: 2.7.1
Description: Documentation module
Extracts, shows and exports documentation for Icinga Web 2 and its modules.
=====================================
modules/migrate/application/clicommands/DashboardCommand.php
=====================================
@@ -9,6 +9,7 @@ use Icinga\Application\Icinga;
use Icinga\Application\Modules\DashboardContainer;
use Icinga\Cli\Command;
use Icinga\Application\Logger;
+use Icinga\Exception\IcingaException;
use Icinga\Util\Translator;
use ReflectionClass;
@@ -58,7 +59,12 @@ class DashboardCommand extends Command
continue;
}
- Translator::setupLocale($locale);
+ try {
+ Translator::setupLocale($locale);
+ } catch (IcingaException $e) {
+ Logger::debug('Ignoring locale "%s". Reason: %s', $locale, $e->getMessage());
+ continue;
+ }
foreach ($paneItemsProperty->getValue($module) as $paneName => $container) {
/** @var DashboardContainer $container */
@@ -70,10 +76,7 @@ class DashboardCommand extends Command
$dashletTitle = null;
}
- if (isset($options['disabled']) && mt($module->getName(), $paneName) !== $paneTitle) {
- // `disabled` is checked because if it's a module's pane that's the only reason
- // why it's in there. If a user utilized the same label though for a custom pane,
- // it remains as is.
+ if (mt($module->getName(), $paneName) !== $paneTitle) {
continue;
}
@@ -85,6 +88,10 @@ class DashboardCommand extends Command
break;
}
}
+
+ if ($dashletName === null) {
+ $dashletName = $dashletTitle;
+ }
}
$newSection = $paneName . ($dashletName ? '.' . $dashletName : '');
=====================================
modules/migrate/module.info
=====================================
@@ -1,5 +1,5 @@
Module: migrate
-Version: 2.7.0
+Version: 2.7.1
Description: Migrate module
This module was introduced with the domain-aware authentication feature in version 2.5.0.
It helps you migrating users and user configurations according to a given domain.
=====================================
modules/monitoring/application/views/scripts/list/servicegrid-flipped.phtml
=====================================
@@ -6,6 +6,7 @@ use Icinga\Web\Url;
if (! $this->compact): ?>
<div class="controls">
<?= $this->tabs ?>
+ <?= $this->problemToggle ?>
<div class="sort-controls-container">
<?= $this->sortBox ?>
</div>
=====================================
modules/monitoring/library/Monitoring/Backend/Ido/Query/HostgroupQuery.php
=====================================
@@ -3,8 +3,6 @@
namespace Icinga\Module\Monitoring\Backend\Ido\Query;
-use Icinga\Exception\NotImplementedError;
-
/**
* Query for host groups
*/
@@ -276,13 +274,8 @@ class HostgroupQuery extends IdoQuery
protected function joinSubQuery(IdoQuery $query, $name, $filter, $and, $negate, &$additionalFilter)
{
if ($name === 'hostgroup') {
- if (! $and) {
- // IN AND NOT IN works for OR filters w/o subquery joins
- throw new NotImplementedError('');
- } else {
- // Propagate that the "parent" query has to be filtered as well
- $additionalFilter = clone $filter;
- }
+ // Propagate that the "parent" query has to be filtered as well
+ $additionalFilter = clone $filter;
$this->requireVirtualTable('members');
=====================================
modules/monitoring/library/Monitoring/Backend/Ido/Query/IdoQuery.php
=====================================
@@ -633,6 +633,12 @@ abstract class IdoQuery extends DbQuery
new Zend_Db_Expr($ours)
));
+ if (! $negate) {
+ $subQueryFilter = $subQueryFilter->orFilter(
+ new FilterExpression($ours, '', new Zend_Db_Expr('IS NULL'))
+ );
+ }
+
$subQuery
->setFilter($subQueryFilter)
->clearGroupingRules()
=====================================
modules/monitoring/library/Monitoring/Backend/Ido/Query/ServicegroupQuery.php
=====================================
@@ -3,8 +3,6 @@
namespace Icinga\Module\Monitoring\Backend\Ido\Query;
-use Icinga\Exception\NotImplementedError;
-
class ServicegroupQuery extends IdoQuery
{
protected $groupBase = array(
@@ -290,13 +288,8 @@ class ServicegroupQuery extends IdoQuery
return ['so.object_id', 'so.object_id'];
} elseif ($name === 'servicegroup') {
- if (! $and) {
- // IN AND NOT IN for OR filters works w/o subquery joins
- throw new NotImplementedError('');
- } else {
- // Propagate that the "parent" query has to be filtered as well
- $additionalFilter = clone $filter;
- }
+ // Propagate that the "parent" query has to be filtered as well
+ $additionalFilter = clone $filter;
$this->requireVirtualTable('members');
=====================================
modules/monitoring/module.info
=====================================
@@ -1,5 +1,5 @@
Module: monitoring
-Version: 2.7.0
+Version: 2.7.1
Description: Icinga monitoring module
This is the core module for most Icingaweb users. It provides an
abstraction layer for various Icinga data backends.
=====================================
modules/monitoring/public/css/module.less
=====================================
@@ -654,12 +654,16 @@ form.instance-features span.description, form.object-features span.description {
}
}
-.go-ahead a {
- border-bottom: 1px @gray-light dotted;
+.go-ahead,
+.markdown,
+.plugin-output {
+ a {
+ border-bottom: 1px @gray-light dotted;
- &:hover {
- border-bottom: 1px @text-color solid;
- text-decoration: none;
+ &:hover {
+ border-bottom: 1px @text-color solid;
+ text-decoration: none;
+ }
}
}
=====================================
modules/setup/module.info
=====================================
@@ -1,5 +1,5 @@
Module: setup
-Version: 2.7.0
+Version: 2.7.1
Description: Setup module
Web based wizard for setting up Icinga Web 2 and its modules.
This includes the data backends (e.g. relational database, LDAP),
=====================================
modules/test/module.info
=====================================
@@ -1,5 +1,5 @@
Module: test
-Version: 2.7.0
+Version: 2.7.1
Description: Translation module
This module allows developers to run (unit) tests against Icinga Web 2 and
any of its modules. Usually you do not need to enable this.
=====================================
modules/translation/module.info
=====================================
@@ -1,5 +1,5 @@
Module: translation
-Version: 2.7.0
+Version: 2.7.1
Description: Translation module
This module allows developers and translators to translate Icinga Web 2 and
its modules for multiple languages. You do not need this module to run an
=====================================
public/css/icinga/compat.less
=====================================
@@ -30,7 +30,11 @@ table.action {
}
table.avp {
- .name-value-table()
+ .name-value-table();
+
+ tbody th {
+ background-color: #f1f1f1;
+ }
}
.code() {
=====================================
public/css/icinga/forms.less
=====================================
@@ -453,22 +453,16 @@ form.icinga-form .form-info {
// Placeholder styles
.icinga-controls {
- input:-moz-placeholder { // FF 18-
- color: @gray;
- opacity: 1;
- }
-
- input::-moz-placeholder { // FF 19+
- color: @gray;
+ input::placeholder {
+ color: @disabled-gray;
+ font-style: italic;
opacity: 1;
}
input:-ms-input-placeholder {
- color: @gray;
- }
-
- input::-webkit-input-placeholder {
- color: @gray;
+ color: @disabled-gray;
+ font-style: italic;
+ opacity: 1;
}
}
=====================================
public/css/icinga/login.less
=====================================
@@ -55,19 +55,28 @@
line-height: @line-height;
}
- .control-group .errors {
+ .errors,
+ .form-errors {
+ list-style-type: none;
+ padding: 0.5em;
+ }
+
+ .errors {
background-color: @color-critical;
- font-size: @font-size-small;
- margin: 2em 0 0 0;
+ color: white;
+ }
- > li {
- padding: 1em;
- color: @body-bg-color;
- }
+ .form-errors {
+ margin-top: 0;
+ padding: 0;
}
.control-group {
margin: 0 auto; // Center horizontally
+ }
+
+ .control-group,
+ .form-errors {
width: 24em;
}
=====================================
public/css/icinga/responsive.less
=====================================
@@ -90,11 +90,6 @@
}
#login {
-
- .form-controls {
- margin: .5em;
- }
-
#icinga-logo {
max-width: 12em;
}
=====================================
public/css/themes/high-contrast.less
=====================================
@@ -40,6 +40,10 @@
}
}
+#menu ul:not(.nav-level-2) > .selected > a {
+ color: @text-color;
+}
+
#menu .active > a {
text-decoration: underline;
}
@@ -142,3 +146,26 @@
}
}
}
+
+.icinga-controls {
+ input[type="text"],
+ input[type="password"],
+ input[type="number"],
+ input[type="datetime-local"],
+ input[type="date"],
+ input[type="time"],
+ textarea,
+ select,
+ input[type="checkbox"]:checked + .toggle-switch .toggle-slider:before,
+ input[type="checkbox"]:checked + .toggle-switch > .toggle-slider,
+ .toggle-switch .toggle-slider:before,
+ .toggle-switch > .toggle-slider {
+ border: 1px solid @icinga-blue;
+ }
+
+ input[type="checkbox"]:not(:checked) + .toggle-switch .toggle-slider:before {
+ height: 1.166666667em;
+ width: 1.166666667em;
+ margin: 1px;
+ }
+}
=====================================
public/css/themes/solarized-dark.less
=====================================
@@ -2,6 +2,7 @@
/* solarized colors: http://simianuprising.com/wp-content/uploads/2012/08/solarized-reference-horizontal.png */
+// Solarized base colors
@base01: #586e75;
@base00: #657b83;
@base02: #073645;
@@ -10,8 +11,14 @@
@base1: #93a1a1;
@base2: #eee8d5;
+// Gray colors
+ at gray: @base1;
+ at gray-light: @base01;
+ at gray-lighter: #00222b;
+ at gray-lightest: @base02;
+
+// Icinga colors
@icinga-blue: @base1;
- at body-bg-color: @base03;
@color-ok: #859900;
@color-critical: #dc322f;
@@ -23,22 +30,32 @@
@color-unreachable: #2aa198;
@color-unreachable-handled: #1d736c;
@color-pending: #268bd2;
+// Notification colors
+
+// Background color for <body>
+ at body-bg-color: @base03;
+// Text colors
@text-color: @base2;
@text-color-light: @base1;
@text-color-on-icinga-blue: @base2;
@text-color-inverted: @base02;
+// Text color on <a>
@link-color: @base0;
-
- at gray: @base1;
- at gray-light: @base01;
- at gray-lighter: #00222b;
- at gray-lightest: @base02;
-
@tr-active-color: @base01;
@tr-hover-color: @base02;
+// Menu colors
+ at menu-bg-color: @base02;
+ at menu-active-bg-color: @base03;
+ at menu-highlight-color: @icinga-blue;
+ at menu-2ndlvl-color: #c4c4c4;
+ at menu-flyout-color: @text-color;
+
+// Form colors
+ at button-primary-color: lighten(@base02, 20);
+
#header {
background-color: @base02;
}
@@ -127,13 +144,22 @@ textarea {
&.active, &:hover {
color: @text-color;
- background-color: @base00;
+ background-color: darken(@base03, 5);
+ }
+
+ &.active:not(.selected) {
+ background-color: darken(@base03, 3);
+
+ & > a:focus,
+ & > a:hover {
+ background-color: darken(@base03, 5);
+ }
}
}
.nav-level-2 > .nav-item {
color: @text-color;
- background-color: @base03;
+ background-color: darken(@base03, 3);
&.active, &:hover {
a {
@@ -141,8 +167,33 @@ textarea {
}
background-color: @base00;
}
+
+ &.active.selected {
+ background-color: @button-primary-color;
+ }
+
+ &:not(.selected):not(.active) > a:hover,
+ &:not(.selected):not(.active) > a:focus {
+ color: @text-color;
+ }
+ }
+
+ ul:not(.nav-level-2) > .selected > a {
+ background-color: darken(@base03, 3);
+ color: @text-color;
+
+ &:after {
+ background-color: darken(@base03, 3);
+ box-shadow: 0 0 1em 0 rgba(0,0,0,0.6);
+ }
}
+ .nav-level-2 > .nav-item:not(.selected):not(.active) {
+ & > a:hover,
+ & > a:focus {
+ background-color: darken(@base03, 5);
+ }
+ }
.nav-itemxx{
&:hover,
@@ -160,6 +211,10 @@ textarea {
text-decoration: underline;
}
+table.avp tbody th {
+ background-color: transparent;
+}
+
.icinga-module.module-monitoring {
@timeline-notification-color: #1650CF;
@timeline-hard-state-color: #A24600;
@@ -266,3 +321,64 @@ textarea {
color: @icinga-blue;
}
}
+
+/* Form styles */
+
+ at input-background: lighten(@base02, 5);
+
+.icinga-controls {
+ input[type="text"],
+ input[type="password"],
+ input[type="number"],
+ input[type="datetime-local"],
+ input[type="date"],
+ input[type="time"],
+ textarea,
+ select {
+ background-color: @input-background;
+ }
+
+ & .toggle-switch .toggle-slider {
+ background: @input-background;
+ border: 2px solid @input-background;
+ }
+
+ & .toggle-switch .toggle-slider:before {
+ background: @body-bg-color;
+ border: 1px solid @body-bg-color;
+ }
+
+ & input[type="checkbox"]:checked + .toggle-switch .toggle-slider {
+ background-color: @button-primary-color;
+ border: 1px solid @button-primary-color;
+ }
+
+ & input[type="checkbox"]:focus + .toggle-switch .toggle-slider {
+ box-shadow: 0 0 0 2px @body-bg-color, 0 0 0 4px fade(@button-primary-color, 40);
+ }
+
+ & input[type="checkbox"]:checked + .toggle-switch .toggle-slider:before {
+ border: 1px solid @button-primary-color;
+ }
+}
+
+.button {
+ background-color: @input-background;
+ border: 2px solid @input-background;
+ color: @text-color;
+
+ &:focus,
+ &:hover,
+ &.btn-primary {
+ background-color: lighten(@base02, 15);
+ border-color: lighten(@base02, 15);
+ color: @text-color;
+ }
+
+ &.btn-primary:focus,
+ &.btn-primary:hover {
+ background-color: @button-primary-color;
+ border-color: @button-primary-color;
+ color: @text-color;
+ }
+}
=====================================
public/js/icinga/loader.js
=====================================
@@ -508,7 +508,7 @@
}
var title = req.getResponseHeader('X-Icinga-Title');
- if (title && target === 'layout') {
+ if (title && (target === 'layout' || req.$target.is('#layout'))) {
this.icinga.ui.setTitle(decodeURIComponent(title));
} else if (title && ! req.autorefresh && req.$target.closest('.dashboard').length === 0) {
req.$target.data('icingaTitle', decodeURIComponent(title));
View it on GitLab: https://salsa.debian.org/nagios-team/pkg-icingaweb2/commit/0854167638f70043d2abf0bd5022068d16b48f75
--
View it on GitLab: https://salsa.debian.org/nagios-team/pkg-icingaweb2/commit/0854167638f70043d2abf0bd5022068d16b48f75
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-nagios-changes/attachments/20190816/bb111b21/attachment-0001.html>
More information about the pkg-nagios-changes
mailing list