[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