[-]
[+]
|
Changed |
icinga-web.changes
|
|
[-]
[+]
|
Changed |
icinga-web.spec
^
|
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/config/views/host.xml
^
|
@@ -94,25 +94,21 @@
-->
<filter name="customvariable_name" type="dql">
<join>h.customvariables cvh</join>
- <select>cvh.varname AS customvariable_name</select>
- <groupby>h.host_object_id</groupby>
+ <resolve>cvh.varname</resolve>
</filter>
<filter name="customvariable_value" type="dql">
<join>h.customvariables cvh</join>
- <select>cvh.varvalue AS customvariable_value</select>
- <groupby>h.host_object_id</groupby>
+ <resolve>cvh.varvalue</resolve>
</filter>
<filter name="host_customvariable_name" type="dql">
<join>h.customvariables cvh</join>
- <select>cvh.varname AS host_customvariable_name</select>
- <groupby>h.host_object_id</groupby>
+ <resolve>cvh.varname</resolve>
</filter>
<filter name="host_customvariable_value" type="dql">
<join>h.customvariables cvh</join>
- <select>cvh.varvalue AS host_customvariable_value</select>
- <groupby>h.host_object_id</groupby>
+ <resolve>cvh.varvalue</resolve>
</filter>
<filter name="hostgroup_name" type="dql">
@@ -303,7 +299,6 @@
<orwhere>
<![CDATA[
-
(osg.name1 IN (${credential_value})
OR o.objecttype_id = 1)
]]>
@@ -324,13 +319,7 @@
<orwhere>
<![CDATA[
- (o.objecttype_id = 2
- OR ohg.name1 IN (${credential_value}))
- ]]>
- </orwhere>
- <orwhere>
- <![CDATA[
- (o.objecttype_id = 1
+ (ohg.name1 IN (${credential_value})
OR sohg.name1 IN (${credential_value}))
]]>
</orwhere>
@@ -344,8 +333,6 @@
<orwhere>
<![CDATA[
hcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
- OR o.objecttype_id = 2
-
]]>
</orwhere>
</credential>
@@ -356,9 +343,8 @@
</leftjoin>
<orwhere>
<![CDATA[
- scg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
- OR o.objecttype_id = 1
-
+ (scg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
+ OR o.objecttype_id = 1)
]]>
</orwhere>
</credential>
@@ -368,6 +354,10 @@
<parameter name="alias">h</parameter>
<parameter name="target">host</parameter>
</credential>
+ <credential name="IcingaHostCustomVariablePair" type="CustomVariable" affects="host">
+ <parameter name="alias">sh</parameter>
+ <parameter name="target">host</parameter>
+ </credential>
<credential name="IcingaServiceCustomVariablePair" type="CustomVariable" affects="service">
<parameter name="alias">s</parameter>
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/config/views/misc.xml
^
|
@@ -40,14 +40,14 @@
<dql name="TARGET_DOWNTIME">
<query>
<![CDATA[
- SELECT
+ SELECT DISTINCT
i.instance_name AS INSTANCE_NAME,
d.scheduleddowntime_id AS DOWNTIME_ID,
d.internal_downtime_id AS DOWNTIME_INTERNAL_DOWNTIME_ID,
d.downtime_type AS DOWNTIME_DOWNTIME_TYPE,
COALESCE(h.host_object_id,sh.host_object_id) AS HOST_OBJECT_ID,
o.name1 AS HOST_NAME,
- hs.current_state AS HOST_CURRENT_STATE,
+ COALESCE(hs.current_state,shs.current_state) AS HOST_CURRENT_STATE,
s.service_object_id AS SERVICE_OBJECT_ID,
o.name2 AS SERVICE_NAME,
ss.current_state AS SERVICE_CURRENT_STATE,
@@ -65,11 +65,16 @@
LEFT JOIN s.status as ss
LEFT JOIN o.host as h
LEFT JOIN h.status as hs
+ LEFT JOIN sh.status as shs
WHERE s.config_type = '${retained_flag}'
OR h.config_type = '${retained_flag}'
]]>
</query>
+ <filter name="host_current_state" type="dql">
+ <resolve>COALESCE(hs.current_state,shs.current_state)</resolve>
+ </filter>
+
<credential name="IcingaHost" type="MultiLike" affects="host">
<parameter name="target">IcingaHost</parameter>
<parameter name="column">o.name1</parameter>
@@ -88,7 +93,6 @@
<orwhere>
<![CDATA[
-
(osg.name1 IN (${credential_value})
OR o.objecttype_id = 1)
]]>
@@ -97,34 +101,26 @@
<credential name="IcingaHostgroup" type="dql" affects="host">
<leftjoin>h.hostgroups hg</leftjoin>
- <leftjoin>sh.hostgroups shg</leftjoin>
<leftjoin>hg.object ohg</leftjoin>
- <leftjoin>shg.object sohg</leftjoin>
+ <leftjoin>sh.hostgroups shg</leftjoin>
+ <leftjoin>shg.object oshg</leftjoin>
<orwhere>
<![CDATA[
- (o.objecttype_id = 2
- OR ohg.name1 IN (${credential_value}))
- ]]>
- </orwhere>
- <orwhere>
- <![CDATA[
- (o.objecttype_id = 1
- OR sohg.name1 IN (${credential_value}))
+ (ohg.name1 IN (${credential_value})
+ OR oshg.name1 IN (${credential_value}))
]]>
</orwhere>
</credential>
<credential name="IcingaContactgroup" type="dql" affects="host">
+ <leftjoin>h.contactgroups hcg</leftjoin>
+ <leftjoin>sh.contactgroups shcg</leftjoin>
- <leftjoin>
- h.contactgroups hcg
- </leftjoin>
<orwhere>
<![CDATA[
- hcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
- OR o.objecttype_id = 2
-
+ (hcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
+ OR shcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id}))
]]>
</orwhere>
</credential>
@@ -133,11 +129,11 @@
<leftjoin>
s.contactgroups scg
</leftjoin>
+
<orwhere>
<![CDATA[
- scg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
- OR o.objecttype_id = 1
-
+ (scg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
+ OR o.objecttype_id = 1)
]]>
</orwhere>
</credential>
@@ -147,6 +143,10 @@
<parameter name="alias">h</parameter>
<parameter name="target">host</parameter>
</credential>
+ <credential name="IcingaHostCustomVariablePair" type="CustomVariable" affects="host">
+ <parameter name="alias">sh</parameter>
+ <parameter name="target">host</parameter>
+ </credential>
<credential name="IcingaServiceCustomVariablePair" type="CustomVariable" affects="service">
<parameter name="alias">s</parameter>
@@ -158,14 +158,14 @@
<dql name="TARGET_DOWNTIMEHISTORY">
<query>
<![CDATA[
- SELECT
+ SELECT DISTINCT
i.instance_name AS INSTANCE_NAME,
d.downtimehistory_id AS DOWNTIME_ID,
d.internal_downtime_id AS DOWNTIME_INTERNAL_DOWNTIME_ID,
d.downtime_type AS DOWNTIME_DOWNTIME_TYPE,
COALESCE(h.host_object_id,sh.host_object_id) AS HOST_OBJECT_ID,
o.name1 AS HOST_NAME,
- hs.current_state AS HOST_CURRENT_STATE,
+ COALESCE(hs.current_state,shs.current_state) AS HOST_CURRENT_STATE,
s.service_object_id AS SERVICE_OBJECT_ID,
o.name2 AS SERVICE_NAME,
ss.current_state AS SERVICE_CURRENT_STATE,
@@ -183,12 +183,17 @@
LEFT JOIN o.host as h
LEFT JOIN s.host as sh
LEFT JOIN h.status as hs
+ LEFT JOIN sh.status as shs
WHERE (s.config_type = '${retained_flag}'
OR h.config_type = '${retained_flag}')
AND d.was_started = '1'
]]>
</query>
+ <filter name="host_current_state" type="dql">
+ <resolve>COALESCE(hs.current_state,shs.current_state)</resolve>
+ </filter>
+
<credential name="IcingaHost" type="MultiLike" affects="host">
<parameter name="target">IcingaHost</parameter>
<parameter name="column">o.name1</parameter>
@@ -207,7 +212,6 @@
<orwhere>
<![CDATA[
-
(osg.name1 IN (${credential_value})
OR o.objecttype_id = 1)
]]>
@@ -216,34 +220,26 @@
-
<credential name="IcingaHostgroup" type="dql" affects="host">
<leftjoin>h.hostgroups hg</leftjoin>
- <leftjoin>sh.hostgroups shg</leftjoin>
<leftjoin>hg.object ohg</leftjoin>
- <leftjoin>shg.object sohg</leftjoin>
+ <leftjoin>sh.hostgroups shg</leftjoin>
+ <leftjoin>shg.object oshg</leftjoin>
<orwhere>
<![CDATA[
- (o.objecttype_id = 2
- OR ohg.name1 IN (${credential_value}))
- ]]>
- </orwhere>
- <orwhere>
- <![CDATA[
- (o.objecttype_id = 1
- OR sohg.name1 IN (${credential_value}))
+ (ohg.name1 IN (${credential_value})
+ OR oshg.name1 IN (${credential_value}))
]]>
</orwhere>
</credential>
<credential name="IcingaContactgroup" type="dql" affects="host">
+ <leftjoin>h.contactgroups hcg</leftjoin>
+ <leftjoin>sh.contactgroups shcg</leftjoin>
- <leftjoin>
- h.contactgroups hcg
- </leftjoin>
<orwhere>
<![CDATA[
- hcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
- OR o.objecttype_id = 2
-
+ (hcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
+ OR shcg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id}))
]]>
</orwhere>
</credential>
@@ -252,20 +248,23 @@
<leftjoin>
s.contactgroups scg
</leftjoin>
+
<orwhere>
<![CDATA[
- scg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
- OR o.objecttype_id = 1
-
+ (scg.contactgroup_id IN (${TARGET_CONTACTGROUPS.contactgroup_id})
+ OR o.objecttype_id = 1)
]]>
</orwhere>
</credential>
-
<credential name="IcingaHostCustomVariablePair" type="CustomVariable" affects="host">
<parameter name="alias">h</parameter>
<parameter name="target">host</parameter>
</credential>
+ <credential name="IcingaHostCustomVariablePair" type="CustomVariable" affects="host">
+ <parameter name="alias">sh</parameter>
+ <parameter name="target">host</parameter>
+ </credential>
<credential name="IcingaServiceCustomVariablePair" type="CustomVariable" affects="service">
<parameter name="alias">s</parameter>
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/config/views/notifications.xml
^
|
@@ -18,6 +18,10 @@
co.name1 as COMMAND_NAME
FROM IcingaNotifications n
INNER JOIN n.object o
+ LEFT JOIN o.service s
+ LEFT JOIN o.host h
+ LEFT JOIN s.host sh
+
LEFT JOIN n.contactnotifications cn
LEFT JOIN cn.notificationmethod cnm
LEFT JOIN cnm.command cnc
@@ -41,12 +45,8 @@
</credential>
<credential name="IcingaContactgroup" type="dql" affects="both">
- <leftjoin>o.service s</leftjoin>
- <leftjoin>o.host h</leftjoin>
-
<leftjoin>s.contactgroups sc</leftjoin>
<leftjoin>h.contactgroups hc</leftjoin>
-
</credential>
<credential name="IcingaContactgroup" type="custom" affects="host">
@@ -70,7 +70,6 @@
</credential>
<credential name="IcingaServicegroup" type="dql" affects="service">
- <leftjoin>o.service s</leftjoin>
<leftjoin>s.servicegroups sg</leftjoin>
<leftjoin>sg.object sgo</leftjoin>
<orwhere>
@@ -79,14 +78,10 @@
</credential>
<credential name="IcingaHostgroup" type="dql" affects="host">
-
- <leftjoin>o.host h</leftjoin>
<leftjoin>h.hostgroups hg</leftjoin>
<leftjoin>hg.object hgo</leftjoin>
- <leftjoin>o.service s</leftjoin>
- <leftjoin>s.host ch</leftjoin>
- <leftjoin>ch.hostgroups chg</leftjoin>
+ <leftjoin>sh.hostgroups chg</leftjoin>
<leftjoin>chg.object chgo</leftjoin>
<orwhere>
@@ -98,12 +93,16 @@
</credential>
<credential name="IcingaHostCustomVariablePair" type="CustomVariable" affects="host">
- <parameter name="alias">o</parameter>
+ <parameter name="alias">h</parameter>
+ <parameter name="target">host</parameter>
+ </credential>
+ <credential name="IcingaHostCustomVariablePair" type="CustomVariable" affects="host">
+ <parameter name="alias">sh</parameter>
<parameter name="target">host</parameter>
</credential>
<credential name="IcingaServiceCustomVariablePair" type="CustomVariable" affects="service">
- <parameter name="alias">o</parameter>
+ <parameter name="alias">s</parameter>
<parameter name="target">service</parameter>
</credential>
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/config/views/service.xml
^
|
@@ -122,21 +122,21 @@
-->
<filter name="customvariable_name" type="dql">
<join>s.customvariables cvs</join>
- <select>cvs.varname AS customvariable_name</select>
+ <resolve>cvs.varname</resolve>
</filter>
<filter name="customvariable_value" type="dql">
<join>s.customvariables cvs</join>
- <select>cvs.varvalue AS customvariable_value</select>
+ <resolve>cvs.varvalue</resolve>
</filter>
<filter name="host_customvariable_name" type="dql">
<leftjoin>h.customvariables cvh</leftjoin>
- <select>cvh.varname AS host_customvariable_name</select>
+ <resolve>cvh.varname</resolve>
</filter>
<filter name="host_customvariable_value" type="dql">
<leftjoin>h.customvariables cvh</leftjoin>
- <select>cvh.varvalue AS host_customvariable_value</select>
+ <resolve>cvh.varvalue</resolve>
</filter>
<filter name="hostgroup_name" type="dql">
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/models/Console/ConsoleCommandModel.class.php
^
|
@@ -269,6 +269,6 @@
*
*/
private function escapeshellarg($str) {
- return "'".str_replace("'","\\'",$str)."'";
+ return "'".str_replace("'","'\\''",$str)."'";
}
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/models/Relation/DataModelModel.class.php
^
|
@@ -56,7 +56,7 @@
$DBALManager = $this->getContext()->getModel("DBALMetaManager","Api");
$DBALManager->switchIcingaDatabase($this->connection);
$records = IcingaDoctrine_Query::create($this->connection)
- ->select('c.contact_id, c.alias as contact_alias, co.name1 as contact_name, c.email_address as contact_email_address, co.object_id as contact_object_id, NULL as contactgroup_name, NULL as contactgroup_object_id')
+ ->select('c.contact_object_id, c.contact_id, c.alias as contact_alias, co.name1 as contact_name, c.email_address as contact_email_address, NULL as contactgroup_name, NULL as contactgroup_object_id')
->from('IcingaContacts c')
->innerJoin('c.object co')
->innerJoin('c.'. $type. 's h WITH h.'. $type. '_object_id=?', $objectId)
@@ -67,7 +67,7 @@
}
$records = IcingaDoctrine_Query::create($this->connection)
- ->select('c.contact_id, c.alias as contact_alias, co.name1 as contact_name, c.email_address as contact_email_address, co.object_id as contact_object_id, cg.alias as contactgroup_name, cg.contactgroup_object_id as contactgroup_object_id')
+ ->select('c.contact_object_id, c.contact_id, c.alias as contact_alias, co.name1 as contact_name, c.email_address as contact_email_address, cg.alias as contactgroup_name, cg.contactgroup_object_id as contactgroup_object_id')
->from('IcingaContacts c')
->innerJoin('c.object co')
->innerJoin('c.contactgroups cg')
@@ -168,4 +168,4 @@
return $records->execute(null, Doctrine::HYDRATE_ARRAY);
}
-}
\ No newline at end of file
+}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Api/models/Views/Extender/CustomVariableExtenderModel.class.php
^
|
@@ -30,6 +30,7 @@
* @var NsmUser
*/
private $user;
+ private static $impl = 0;
public function extend(IcingaDoctrine_Query $query,array $params) {
// target, host or service
@@ -39,13 +40,14 @@
$this->user = $this->getContext()->getUser()->getNsmUser();
$aliasAbbr = "cv";
+ $impl = ++Api_Views_Extender_CustomVariableExtenderModel::$impl;
switch($target) {
case 'host':
- $aliasAbbr = "h_cv";
+ $aliasAbbr = "h_cv_$impl";
$target = IcingaIPrincipalConstants::TYPE_CUSTOMVAR_HOST;
break;
case 'service':
- $aliasAbbr = "s_cv";
+ $aliasAbbr = "s_cv_$impl";
$target = IcingaIPrincipalConstants::TYPE_CUSTOMVAR_SERVICE;
break;
}
@@ -85,6 +87,9 @@
$pairs[] = "($aliasAbbr.varname LIKE '".$cvdata["name"]."' and $aliasAbbr.varvalue LIKE '".$cvdata["value"]."')";
}
+ if ($target == IcingaIPrincipalConstants::TYPE_CUSTOMVAR_SERVICE) {
+ $pairs[] = $params["alias"].'.service_object_id IS NULL';
+ }
$query->orWhere(join(" OR ", $pairs));
}
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/AppKit/lib/database/models/NsmUser.php
^
|
@@ -221,9 +221,7 @@
AppKitLogger::warn("New: Setting %s => %s", $key,$pref->toArray(false) );
}
- NsmUser::$cachedPreferences[$key] = $val;
- // disabled storing cached prefs into session -mfrosch
- //$this->getStorage()->write("appkit.nsm_user.preferences",self::$cachedPreferences);
+ NsmUser::$cachedPreferences = array();
return true;
}
@@ -323,18 +321,17 @@
public function getPreferences($shortenBlob = false, $ignoreDefaults = false) {
if(!empty(self::$cachedPreferences)) {
- return self::$cachedPreferences;
+ $res = self::$cachedPreferences;
}
- // disabled storing cached prefs into session -mfrosch
- //self::$cachedPreferences = $this->getStorage()->read("appkit.nsm_user.preferences");
- if(!empty(self::$cachedPreferences)) {
- return self::$cachedPreferences;
+ else {
+ $res = AppKitDoctrineUtil::createQuery()
+ ->select('p.upref_val, p.upref_key, p.upref_longval')
+ ->from('NsmUserPreference p INDEXBY p.upref_key')
+ ->where('p.upref_user_id=?', array($this->user_id))
+ ->execute(array(), Doctrine::HYDRATE_ARRAY);
+ self::$cachedPreferences = $res;
}
- $res = AppKitDoctrineUtil::createQuery()
- ->select('p.upref_val, p.upref_key, p.upref_longval')
- ->from('NsmUserPreference p INDEXBY p.upref_key')
- ->where('p.upref_user_id=?', array($this->user_id))
- ->execute(array(), Doctrine::HYDRATE_ARRAY);
+
$out = array();
foreach($res as $key=>$d)
@@ -349,9 +346,6 @@
}
}
}
- self::$cachedPreferences = $out;
- // disabled storing cached prefs into session -mfrosch
- //$this->getStorage()->write("appkit.nsm_user.preferences",self::$cachedPreferences);
return $out;
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/AppKit/templates/User/PreferencesSuccess.php
^
|
@@ -171,7 +171,7 @@
selModel: new Ext.grid.RowSelectionModel({singleSelect: true}),
striperows:true,
height: 220,
- source: <?php echo json_encode($user->getPreferences()) ?>,
+ source: <?php echo json_encode($user->getPreferences(true)) ?>,
id: 'pedit_preferences',
listeners: {
beforeedit: function(event) {
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Cronks/config/javascript.xml
^
|
@@ -124,6 +124,7 @@
<ae:parameter>%core.module_dir%/Cronks/lib/js/Cronk/grid/CommandHandler.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/Icinga/Cronks/System/TemplateGrid.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/Cronk/grid/MetaGridPanel.js</ae:parameter>
+ <ae:parameter>%core.module_dir%/Cronks/lib/js/Cronk/grid/ObjectSelectionModel.js</ae:parameter>
</javascript>
</ae:configuration>
</ae:configurations>
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Cronks/lib/js/Cronk/grid/MetaGridPanel.js
^
|
@@ -503,7 +503,15 @@
store: this.getStore(),
displayInfo: true,
displayMsg: _('Displaying topics {0} - {1} of {2}'),
- emptyMsg: _('No topics to display')
+ emptyMsg: _('No topics to display'),
+ listeners: {
+ change: function() {
+ var sm = this.getSelectionModel();
+ if (sm && typeof sm.syncWithPage === 'function')
+ sm.syncWithPage();
+ },
+ scope: this
+ }
};
if (Ext.isEmpty(datasource.countmode) || datasource.countmode === "none") {
@@ -532,7 +540,7 @@
iconCls: 'icinga-icon-arrow-refresh',
tooltip: _('Refresh the data in the grid'),
handler: function (oBtn, e) {
- this.store.load();
+ this.store.reload();
},
scope: this
}, {
@@ -630,7 +638,7 @@
var options = this.getOption("template.option", {});
if (!Ext.isEmpty(options.selection_model)) {
if (options.selection_model === "checkbox") {
- var sm = new Ext.grid.CheckboxSelectionModel({
+ var sm = new Cronk.grid.ObjectSelectionModel({
dataIndex: "id"
});
@@ -991,7 +999,9 @@
* refresh our grid data
* @private
*/
- refreshTask: new Ext.util.DelayedTask(function () {
+ refreshTask: null, // not creating the singleton here
+
+ refreshTaskImpl: function () {
//NOTE: hidden tabs won't be refreshed
if (!this.store || this.ownerCt.hidden) {
return true;
@@ -1003,12 +1013,15 @@
} else if (this.getStore()) {
this.getStore().reload();
}
- }),
+ },
/**
* Calls the refreshTask 200ms delayed
*/
refreshGrid: function () {
+ // create the refreshTask for this MetaGridPanel
+ if (!this.refreshTask)
+ this.refreshTask = new Ext.util.DelayedTask(this.refreshTaskImpl);
this.refreshTask.delay(200, null, this);
},
|
[-]
[+]
|
Added |
icinga-web-1.9.1.tar.bz2/app/modules/Cronks/lib/js/Cronk/grid/ObjectSelectionModel.js
^
|
@@ -0,0 +1,75 @@
+// {{{ICINGA_LICENSE_CODE}}}
+// -----------------------------------------------------------------------------
+// This file is part of icinga-web.
+//
+// Copyright (c) 2009-2013 Icinga Developer Team.
+// All rights reserved.
+//
+// icinga-web is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// icinga-web is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with icinga-web. If not, see <http://www.gnu.org/licenses/>.
+// -----------------------------------------------------------------------------
+// {{{ICINGA_LICENSE_CODE}}}
+/*global Ext: false, Icinga: false, AppKit: false, _: false, Cronk: false */
+
+Ext.ns("Cronk.grid");
+
+(function () {
+
+ "use strict";
+
+ /**
+ * Checkbox selectionmodel that remembers object ids and offers better
+ * pagination
+ *
+ **/
+ Cronk.grid.ObjectSelectionModel = Ext.extend(Ext.grid.CheckboxSelectionModel, {
+ selectedMonitoringObjects: new Ext.util.MixedCollection(),
+
+ constructor: function() {
+ Ext.grid.CheckboxSelectionModel.prototype.constructor.apply(this, arguments);
+ this.addListener("selectionchange", this.persistSelectedObjectIds, this);
+ },
+
+ syncWithPage: function() {
+ var records = [];
+ this.grid.getStore().each(function(displayedObject) {
+ this.selectedMonitoringObjects.each(function(monitoringObject) {
+ for (var attribute in monitoringObject) {
+ if (displayedObject.data[attribute] == monitoringObject[attribute]) {
+ continue;
+ }
+ return true;
+ }
+ records.push(displayedObject);
+ return false;
+ }, this);
+ }, this);
+ this.clearSelections();
+ this.selectRecords(records);
+ },
+
+ persistSelectedObjectIds: function() {
+ var isObjectId = /_object_id$/i;
+ this.selectedMonitoringObjects.clear();
+ this.selections.each(function(monitoringObject) {
+ var selectedObject = {};
+ for (var attribute in monitoringObject.data) {
+ if (isObjectId.test(attribute)) {
+ selectedObject[attribute] = monitoringObject.data[attribute];
+ }
+ }
+ this.selectedMonitoringObjects.add(selectedObject);
+ }, this);
+ }
+ });
+})();
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Cronks/lib/js/Cronk/grid/renderer/ColumnRenderer.js
^
|
@@ -194,7 +194,7 @@
booleanImage: function (cfg) {
return function (value, metaData, record, rowIndex, colIndex, store) {
- var iconCls = "icon-24 icon-centered";
+ var iconCls = "icon-centered";
var bVal = Boolean(Ext.decode(value));
var qtip = "";
@@ -224,7 +224,7 @@
metaData.attr = "ext:qtip='" + qtip + "'";
}
- metaData.css += 'icon-16 ' + iconCls;
+ metaData.css += iconCls;
Cronk.grid.ColumnRendererUtil.applyXTemplateOnMetaData(metaData, store, rowIndex);
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Cronks/lib/js/Icinga/Cronks/System/CronkListingPanel.js
^
|
@@ -438,7 +438,9 @@
// menu
Ext.getCmp('cronkliststyle-menu-list').setChecked(true, true);
}
- west.fireEvent("expand");
+ // force layout re-render to avoid glitching
+ AppKit.util.Layout.doLayout(null, 10);
+
view.saveState();
west.saveState();
@@ -752,4 +754,4 @@
}
});
-})();
\ No newline at end of file
+})();
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Cronks/lib/js/Icinga/Cronks/util/FilterTypes/Status.js
^
|
@@ -69,6 +69,23 @@
}
+Ext.ns('Icinga.Cronks.util.FilterTypes').Statetype = function(filterCfg,defaults) {
+ console.log(filterCfg);
+ return getStatusForm(filterCfg,[{
+ checked: defaults['value'] == 0 || defaults == {},
+ inputValue: 0,
+ name: 'state_radio',
+ xtype: 'radio',
+ boxLabel: _('Soft')
+ },{
+ checked: defaults['value'] == 1,
+ inputValue: 1,
+ name: 'state_radio',
+ xtype: 'radio',
+ boxLabel: _('Hard')
+ }]);
+};
+
Ext.ns('Icinga.Cronks.util.FilterTypes').Hoststatus = function(filterCfg,defaults) {
console.log(filterCfg);
return getStatusForm(filterCfg,[{
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataHostCustomVariablePrincipalTarget.class.php
^
|
@@ -56,6 +56,7 @@
")";
}
}
+ $p[] = '${HOST_OBJECT_ID} IS NULL';
return '('. join(' OR ', $p). ')';
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataHostPrincipalTarget.class.php
^
|
@@ -52,6 +52,9 @@
$this->setApiMappingFields(array(
'value' => 'HOST_NAME'
));
+
+ $this->ornull = true;
+ $this->ornullfield = '${HOST_NAME}';
}
-}
\ No newline at end of file
+}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataHostgroupPrincipalTarget.class.php
^
|
@@ -42,6 +42,9 @@
$this->setApiMappingFields(array(
'hostgroup' => 'HOSTGROUP_NAME'
));
+
+ $this->ornull = true;
+ $this->ornullfield = '${HOST_OBJECT_ID}';
}
-}
\ No newline at end of file
+}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataPrincipalTarget.class.php
^
|
@@ -25,6 +25,8 @@
class IcingaDataPrincipalTarget extends AppKitPrincipalTarget {
protected $defaultTarget = '';
protected $api_mapping_fields = array();
+ protected $ornull = false;
+ protected $ornullfield = null;
public function getApiMappingFields() {
return $this->api_mapping_fields;
@@ -57,6 +59,14 @@
$p[] = sprintf('${%s} LIKE \'%s\'', $this->getApiMappingField($k), $v);
}
}
+ if ($this->ornull == true) {
+ if (isset($this->ornullfield)) {
+ $p[] = sprintf('%s IS NULL', $this->ornullfield);
+ }
+ else {
+ $p[] = sprintf('${%s} IS NULL', $this->getApiMappingField($k));
+ }
+ }
return '('. join(' OR ', $p). ')';
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataServiceCustomVariablePrincipalTarget.class.php
^
|
@@ -56,6 +56,7 @@
")";
}
}
+ $p[] = '${SERVICE_OBJECT_ID} IS NULL';
return '('. join(' OR ', $p). ')';
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataServicePrincipalTarget.class.php
^
|
@@ -53,6 +53,8 @@
'value' => 'SERVICE_NAME'
));
+ $this->ornull = true;
+
}
}
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataServicegroupPrincipalTarget.class.php
^
|
@@ -43,8 +43,11 @@
$this->setDescription('Limit data access to servicegroups');
+ $this->ornull = true;
+ $this->ornullfield = '${SERVICE_OBJECT_ID}';
+
}
}
-?>
\ No newline at end of file
+?>
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/configure
^
|
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for icinga-web 1.9.0.
+# Generated by GNU Autoconf 2.69 for icinga-web 1.9.1.
#
# Report bugs to <dev.icinga.org>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='icinga-web'
PACKAGE_TARNAME='icinga-web'
-PACKAGE_VERSION='1.9.0'
-PACKAGE_STRING='icinga-web 1.9.0'
+PACKAGE_VERSION='1.9.1'
+PACKAGE_STRING='icinga-web 1.9.1'
PACKAGE_BUGREPORT='dev.icinga.org'
PACKAGE_URL=''
@@ -1272,7 +1272,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures icinga-web 1.9.0 to adapt to many kinds of systems.
+\`configure' configures icinga-web 1.9.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1333,7 +1333,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of icinga-web 1.9.0:";;
+ short | recursive ) echo "Configuration of icinga-web 1.9.1:";;
esac
cat <<\_ACEOF
@@ -1465,7 +1465,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-icinga-web configure 1.9.0
+icinga-web configure 1.9.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1482,7 +1482,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by icinga-web $as_me 1.9.0, which was
+It was created by icinga-web $as_me 1.9.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -1832,7 +1832,7 @@
# Release date
-RELEASE_DATE=2013-05-07
+RELEASE_DATE=2013-09-08
@@ -3368,7 +3368,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by icinga-web $as_me 1.9.0, which was
+This file was extended by icinga-web $as_me 1.9.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3421,7 +3421,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-icinga-web config.status 1.9.0
+icinga-web config.status 1.9.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/doc/CHANGELOG-1.9
^
|
@@ -5,7 +5,51 @@
Thanks to all contributers, testers and developers. Please read AUTHORS and
THANKS for a detailed list :-)
-1.9.0 2013-05-07
+[[ 1.9.1 2013-09-08 ]]
+
+[ Bugs ]
+
+ * NOTE for Oracle users:
+ the initial database schema for 1.9.0 and the update delivered an index
+ whose identifier was too long
+
+ Please make sure you have the index "target_key_unq_tgt_n_uq", the too
+ long name was: target_key_unq_tgt_n_uq
+
+ Update from 1.8.3 has been updated as well.
+
+ * The initial database schema shipped with 1.9.0 had a wrong version of 1.8.4
+ You don't have to change it as of now, but be aware of it when updating the
+ schema in the future. (#4309)
+
+ The schema itself was correct.
+
+ * Fixed problems with the combined host/service views (#4205 #4239 #4241)
+ * Downtime view: Host status not being displayed
+ * credentials for host/servicegroups and contacts not applied correctly
+ * customvar credentials now apply correctly
+ * Credential fixes for combined views in the legacy API (#4667)
+ * Fixed a rendering glitch with some icons in the grid (#4236)
+ * Fixed a problem with the SSH command functions, they were requiring
+ the wrong libraries (#4411)
+ * Fixed a problem with selections in the grid after a data refresh (#4452)
+ * Fixed broken userpreference window when the application state has grown
+ too big (#4003 #4062 #4063)
+ * Fixed a problem when two Grids are reloading nearly at the same time
+ (#4563 #4562)
+ * Using Refresh in a grid resets the grid to first page (#4685)
+ * Fixed filter for StateType in OpenProblem Cronk (#4317)
+ * Fixed ConsoleCommandModel to escape single quotes correctly (#4455)
+ (caused problems when using ' in command fields)
+ * Fixed DISTINCT error on PostgreSQL when using customvar filters
+ on host status grids (#4564)
+ * Fixed JS errors in Internet Explorer 8 while loading the interface
+ (#4166 #4659)
+ * Fixed host and servicedetails show only one contact under the Relations Tab
+ (#4222)
+
+
+[[ 1.9.0 2013-05-07 ]]
[ IMPORTANT CHANGES ]
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/doc/VERSION
^
|
@@ -1 +1 @@
-1.9.0
+1.9.1
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/etc/make/version.m4
^
|
@@ -9,5 +9,5 @@
dnl this name.
dnl
-m4_define([ICINGA_VERSION], [1.9.0])
-m4_define([ICINGA_RELEASE_DATE], [2013-05-07])
+m4_define([ICINGA_VERSION], [1.9.1])
+m4_define([ICINGA_RELEASE_DATE], [2013-09-08])
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/etc/schema/mysql.sql
^
|
@@ -42,7 +42,7 @@
/* Initial data import */
INSERT INTO nsm_user (user_id,user_account,user_name,user_firstname,user_lastname,user_password,user_salt,user_authsrc,user_email,user_disabled,user_modified,user_created) VALUES ('1','0','root','Enoch','Root','42bc5093863dce8c150387a5bb7e3061cf3ea67d2cf1779671e1b0f435e953a1','0c099ae4627b144f3a7eaa763ba43b10fd5d1caa8738a98f11bb973bebc52ccd','internal','root@localhost.local','0', NOW(), NOW());
-INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.8.3', NOW(), NOW());
+INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', NOW(), NOW());
INSERT INTO nsm_target (target_id,target_name,target_description,target_class,target_type) VALUES ('1','IcingaHostgroup','Limit data access to specific hostgroups','IcingaDataHostgroupPrincipalTarget','icinga');
INSERT INTO nsm_target (target_id,target_name,target_description,target_class,target_type) VALUES ('2','IcingaServicegroup','Limit data access to specific servicegroups','IcingaDataServicegroupPrincipalTarget','icinga');
INSERT INTO nsm_target (target_id,target_name,target_description,target_class,target_type) VALUES ('3','IcingaHostCustomVariablePair','Limit data access to specific custom variables','IcingaDataHostCustomVariablePrincipalTarget','icinga');
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/etc/schema/oracle.sql
^
|
@@ -220,7 +220,7 @@
ALTER TABLE
nsm_target
- add constraint target_key_unique_target_name_uq UNIQUE (target_name)
+ add constraint target_key_unq_tgt_n_uq UNIQUE (target_name)
using index tablespace &IXTBS;
--use index organized table because most of all data is within index
@@ -618,7 +618,7 @@
INSERT INTO nsm_user (user_id,user_account,user_name,user_firstname,user_lastname,user_password,user_salt,user_authsrc,user_email,user_disabled,user_created,user_modified) VALUES ('1','0','root','Enoch','Root','42bc5093863dce8c150387a5bb7e3061cf3ea67d2cf1779671e1b0f435e953a1','0c099ae4627b144f3a7eaa763ba43b10fd5d1caa8738a98f11bb973bebc52ccd','internal','root@localhost.local','0',sysdate,sysdate);
-INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.8.3', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
+INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
INSERT INTO nsm_principal (principal_id,principal_user_id,principal_type,principal_disabled) VALUES ('1','1','user','0');
INSERT INTO nsm_principal (principal_id,principal_role_id,principal_type,principal_disabled) VALUES ('2','2','role','0');
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/etc/schema/pgsql.sql
^
|
@@ -654,7 +654,7 @@
--
COPY nsm_db_version (id, version, modified, created) FROM stdin;
-1 icinga-web/v1.8.3 2013-03-25 00:00:00 2013-03-23 00:00:00
+1 icinga-web/v1.9.0 2013-03-25 00:00:00 2013-03-23 00:00:00
\.
|
[-]
[+]
|
Added |
icinga-web-1.9.1.tar.bz2/etc/schema/updates/mysql/mysql_v1-9-0_to_1-9-1.sql
^
|
@@ -0,0 +1,3 @@
+-- Default version change
+DELETE FROM nsm_db_version;
+INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', NOW(), NOW());
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/etc/schema/updates/oracle/oracle_v1-8-3_to_v1-9.sql
^
|
@@ -1,10 +1,6 @@
--error handler
whenever sqlerror exit failure
--- Default version bump
-DELETE FROM nsm_db_version;
-INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
-
-- User description attribute (#3923)
ALTER TABLE nsm_user
ADD (user_description VARCHAR2(255));
@@ -12,7 +8,11 @@
-- Add unique constrain for target_name/NsmTarget (#3915)
ALTER TABLE
nsm_target
- add constraint target_key_unique_target_name_uq UNIQUE (target_name);
+ add constraint target_key_unq_tgt_n_uq UNIQUE (target_name);
+
+-- Default version bump
+DELETE FROM nsm_db_version;
+INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
--final commit
commit;
|
[-]
[+]
|
Added |
icinga-web-1.9.1.tar.bz2/etc/schema/updates/oracle/oracle_v1-9-0_to_v1-9-1.sql
^
|
@@ -0,0 +1,10 @@
+--error handler
+whenever sqlerror exit failure
+
+-- Default version bump
+DELETE FROM nsm_db_version;
+INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
+
+--final commit
+commit;
+
|
[-]
[+]
|
Added |
icinga-web-1.9.1.tar.bz2/etc/schema/updates/pgsql/pgsql_v1-9-0_to_v1-9-1.sql
^
|
@@ -0,0 +1,2 @@
+DELETE FROM nsm_db_version;
+INSERT INTO nsm_db_version VALUES ('1','icinga-web/v1.9.0', NOW(), NOW());
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/icinga-web.spec
^
|
@@ -36,7 +36,7 @@
Summary: Open Source host, service and network monitoring Web UI
Name: icinga-web
-Version: 1.9.0
+Version: 1.9.1
Release: %{revision}%{?dist}
License: GPLv3
Group: Applications/System
@@ -52,6 +52,7 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: %{phpname} >= 5.2.3
+BuildRequires: %{phpname}-devel >= 5.2.3
BuildRequires: %{phpname}-gd
BuildRequires: %{phpname}-ldap
BuildRequires: %{phpname}-pdo
@@ -61,7 +62,6 @@
BuildRequires: php-pear
%endif
%if "%{_vendor}" == "suse"
-BuildRequires: %{phpname}-devel >= 5.2.3
BuildRequires: %{phpname}-json
BuildRequires: %{phpname}-sockets
BuildRequires: %{phpname}-xsl
@@ -244,6 +244,9 @@
%{_datadir}/%{name}/app/modules/BPAddon
%changelog
+* Tue Sep 08 2013 Markus Frosch <markus@lazyfrosch.de> - 1.9.1-1
+- release 1.9.1
+
* Tue May 07 2013 Markus Frosch <markus@lazyfrosch.de> - 1.9.0-1
- release 1.9.0
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/lib/phpseclib/Crypt/RSA.php
^
|
@@ -69,21 +69,6 @@
* @link http://phpseclib.sourceforge.net
*/
-/**
- * Include Math_BigInteger
- */
-require_once(__FILE__.'../Math/BigInteger.php');
-
-/**
- * Include Crypt_Random
- */
-require_once(__FILE__.'../Crypt/Random.php');
-
-/**
- * Include Crypt_Hash
- */
-require_once(__FILE__.'../Crypt/Hash.php');
-
/**#@+
* @access public
* @see Crypt_RSA::encrypt()
|
[-]
[+]
|
Changed |
icinga-web-1.9.1.tar.bz2/lib/phpseclib/Net/SSH2.php
^
|
@@ -99,6 +99,7 @@
* Include Crypt_AES
*/
require_once(dirname(__FILE__).'/../Crypt/AES.php');
+require_once(dirname(__FILE__).'/../Crypt/RSA.php');
/**#@+
* Execution Bitmap Masks
|