[-]
[+]
|
Changed |
icinga-web.changes
|
|
[-]
[+]
|
Changed |
icinga-web.spec
^
|
|
[-]
[+]
|
Deleted |
icinga-web-1.4.0.tar.bz2/.gitignore
^
|
@@ -1,35 +0,0 @@
-.settings/org.eclipse.php.core.prefs
-.settings/org.eclipse.php.server.core.phpServersPrefs.prefs
-.settings/org.eclipse.php.debug.core.Debug_Process_Preferences.prefs
-autom4te.cache/
-app/cache/config/*.php
-app/cache/content
-app/data/log/
-app/config/icinga.xml
-app/config/databases.xml
-app/config/settings.xml
-app/config/settings.site.xml
-app/config/translation.site.xml
-app/config/factories.site.xml
-app/modules/Web/config/icinga-io.xml
-app/modules/AppKit/cache/Widgets/SquishLoader.xml
-app/modules/Api/lib/.ssh/*
-app/modules/Api/config/module.site.xml
-app/modules/AppKit/config/module.site.xml
-app/modules/Web/config/module.site.xml
-app/modules/Cronks/config/module.site.xml
-bin/clearcache.sh
-icinga-web.session
-icinga-web.webprj
-Makefile
-config.log
-config.status
-etc/build.properties
-etc/tests/test.properties
-etc/apache2/icinga-web.conf
-pub/.htaccess
-pub/soap/.htaccess
-icinga-web.mwb.bak
-*~
-*.swp
-
|
[-]
[+]
|
Deleted |
icinga-web-1.4.0.tar.bz2/.gitmodules
^
|
@@ -1,3 +0,0 @@
-[submodule "app/data/i18n/po"]
- path = app/data/i18n/po
- url = git://git.icinga.org/icinga-web-translation.git
|
[-]
[+]
|
Deleted |
icinga-web-1.4.0.tar.bz2/app/modules/Api/lib/database/models/.gitignore
^
|
@@ -1,3 +0,0 @@
-lib/appkit/database/Hm*
-lib/appkit/database/BaseHm*
-
|
[-]
[+]
|
Deleted |
icinga-web-1.4.0.tar.bz2/app/modules/AppKit/lib/database/models/.gitignore
^
|
@@ -1,3 +0,0 @@
-lib/appkit/database/Hm*
-lib/appkit/database/BaseHm*
-
|
[-]
[+]
|
Deleted |
icinga-web-1.4.0.tar.bz2/etc/contrib/businessprocess-icinga-cronk/.gitignore
^
|
@@ -1 +0,0 @@
-.backup.dat
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/AppKit/models/Auth/Provider/LDAPModel.class.php
^
|
@@ -14,6 +14,11 @@
$this->log('Auth.Provider.LDAP Trying authenticate (authkey=%s,user=%s)', $authid, $username, AgaviLogger::DEBUG);
+ if ($password == '') {
+ $this->log('Auth.Provider.LDAP Empty password given, bind aborted', AgaviLogger::DEBUG);
+ return false;
+ }
+
try {
// Check if user always is available
$search_record = $this->getLdaprecord($this->getSearchFilter($user->user_name), $authid);
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/AppKit/models/Ext/ApplicationStateModel.class.php
^
|
@@ -22,12 +22,25 @@
}
public function writeState($data) {
+ $merge = array();
if ($this->stateAvailable()) {
$existing = json_decode($this->readState());
- $data = array_merge((is_array($existing)) ? $existing : array (), json_decode(($data)));
+ if (is_array($existing)) foreach ($existing as $v) {
+ $merge[$v->name] = $v->value;
+ }
+ foreach (json_decode($data) as $v) {
+ $merge[$v->name] = $v->value;
+ }
+ $data = array();
+ foreach ($merge as $k => $v) {
+ $data[] = (object) array(
+ 'name' => $k,
+ 'value' => $v
+ );
+ }
$this->getContext()->getUser()->setPref(self::PREFNS, json_encode($data), true, true);
}
}
}
-?>
\ No newline at end of file
+?>
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/config/cronks.xml
^
|
@@ -321,7 +321,6 @@
<ae:parameter name="url"><![CDATA[http://docs.icinga.org/latest/en/]]></ae:parameter>
</ae:parameter>
</ae:parameter>
- http://docs.icinga.org/latest/en/
<ae:parameter name="genericIFrame">
<ae:parameter name="module">Cronks</ae:parameter>
@@ -485,6 +484,33 @@
<ae:parameter name="interface">true</ae:parameter>
</ae:parameter>
</ae:parameter>
+
+ <!-- This TO is hidden per default, because you'll need a
+ special custom variable layout to get work.
+
+ Take a look into icinga-tactical-overview-template-cvtree.xml
+ for further instructions
+ -->
+ <ae:parameter name="icingaTacticalOverviewTreeCV">
+ <ae:parameter name="module">Cronks</ae:parameter>
+ <ae:parameter name="action">System.StaticContent</ae:parameter>
+
+ <ae:parameter name="hide">true</ae:parameter> <!-- HIDDEN -->
+
+ <ae:parameter name="description">Icinga Tactical Overview</ae:parameter>
+ <ae:parameter name="name">TO CV DrillDown</ae:parameter>
+ <ae:parameter name="categories">to</ae:parameter>
+
+ <!--<ae:parameter name="groupsonly">appkit_admin</ae:parameter>-->
+
+ <ae:parameter name="image">cronks.Tree</ae:parameter>
+
+ <ae:parameter name="ae:parameter">
+ <ae:parameter name="template">icinga-tactical-overview-template-cvtree</ae:parameter>
+ <ae:parameter name="interface">true</ae:parameter>
+ </ae:parameter>
+ </ae:parameter>
+
<!-- Tactical overviews - [STOP] -->
<!-- Demo cronk - [START] -->
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/config/module.xml
^
|
@@ -38,6 +38,7 @@
<ae:parameter>%core.module_dir%/Cronks/lib/js/rmd160.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/CronkBuilder.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/CronkListingPanel.js</ae:parameter>
+ <ae:parameter>%core.module_dir%/Cronks/lib/js/StaticContentUtil.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/grid/ColumnRenderer.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/grid/GridPanel.js</ae:parameter>
<ae:parameter>%core.module_dir%/Cronks/lib/js/grid/MetaGridCreator.js</ae:parameter>
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/data/xml/to/icinga-tactical-overview-groupstat.xml
^
|
@@ -78,6 +78,14 @@
if (!$hosts && !$services) {
return;
}
+
+ if (isset($title_prefix)) {
+ $title = $title_prefix. $title;
+ }
+
+ if (isset($title_suffix)) {
+ $title .= $title_suffix;
+ }
?>
<?php if (isset($noheader) == false || (isset($noheader) && $noheader==false)) { ?>
|
[-]
[+]
|
Added |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/data/xml/to/icinga-tactical-overview-template-cvtree.xml
^
|
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template>
+
+<!--
+ Documentation how it works:
+
+ You'll need a special CustomVariable layout to dig into so-like threes.
+
+ Example:
+
+ (Depending on countries, federal countries, datacenter sites)
+
+ 1. Level:
+
+ - Customfield with name 'TO_WORLD'
+ - Values are the countries with ISO2 code layout, e.g. DE, AU, AT, IT, ...
+
+ 2. Level:
+
+ - Customfield with the name TO_WORLD_DE
+ - The filter builds the new field from the field before and its value:
+ TO_WORLD with value de comes to a new CV named TO_WORLD_DE
+ - The new customfields holds the federal states, e.g. BY, HE, ...
+
+ 3. Level
+
+ - Same as level2 but with the field TO_WORLD_DE_BY which
+ holds all datacenter sub items
+-->
+
+<datasources>
+ <datasource id="cv_country">
+ <source_type>IcingaApi</source_type>
+ <target>IcingaApi::TARGET_CUSTOMVARIABLE</target>
+ <columns>CUSTOMVARIABLE_NAME, CUSTOMVARIABLE_VALUE</columns>
+ <filters>
+ <filter_entry id="cv_name">
+ <field>CUSTOMVARIABLE_NAME</field>
+ <match>IcingaApi::MATCH_EXACT</match>
+ <value>TO_WORLD</value>
+ </filter_entry>
+ </filters>
+ </datasource>
+</datasources>
+
+<filterchain>
+ <item>
+ <label>Countries</label>
+ <template>data_template</template>
+ <filter_column>CUSTOMVARIABLE_NAME, CUSTOMVARIABLE_VALUE</filter_column>
+ <datasource>cv_country</datasource>
+ </item>
+
+ <item>
+ <label>Territory</label>
+ <template>data_template</template>
+ <filter_column>CUSTOMVARIABLE_NAME, CUSTOMVARIABLE_VALUE</filter_column>
+ <datasource>cv_country</datasource>
+ </item>
+
+ <item>
+ <label>Sites</label>
+ <template>data_template</template>
+ <filter_column>CUSTOMVARIABLE_NAME, CUSTOMVARIABLE_VALUE</filter_column>
+ <datasource>cv_country</datasource>
+ </item>
+</filterchain>
+
+<template_code>
+
+ <data_template>
+ <![CDATA[
+ <?php
+
+ echo '<h2>'. $chain['label']. '</h2>';
+
+ if ($hasprev) {
+
+ $js_id_up = sprintf('%s-up', $cmpid);
+
+ $t->jsAddCode('Cronk.util.StaticContentUtil.drillupLink('. json_encode(array(
+ 'jsid' => $js_id_up,
+ 'cmpid' => $cmpid,
+ 'chainid' => $chainid
+ )). ');');
+
+ echo '<div class="drilldown-link-container"><a id="'. $js_id_up. '">'. $tr->_('Roll one level up'). '</a></div>';
+ }
+
+ if (count($data) == 0) {
+ echo '<i>'. $tr->_('Sorry, no data available for CV'). '</i>';
+ }
+
+ foreach ($data as $row) {
+
+ echo '<div style="width: 400px;">';
+
+ echo $t->renderSub('icinga-tactical-overview-groupstat', 'customvariable', array(
+ 'CUSTOMVARIABLE_NAME' => $row['CUSTOMVARIABLE_NAME'],
+ 'CUSTOMVARIABLE_VALUE' => $row['CUSTOMVARIABLE_VALUE']
+ ));
+
+ if ($hasnext) {
+
+ $data_columns = array_intersect_key($row, array_flip(AppKitArrayUtil::trimSplit($chain['filter_column'])));
+
+ $js_id_down = sprintf('%s-%s-%s-down', $cmpid, $row['CUSTOMVARIABLE_NAME'], $row['CUSTOMVARIABLE_VALUE']);
+
+ $t->jsAddCode('Cronk.util.StaticContentUtil.drilldownLink('. json_encode(array(
+ 'jsid' => $js_id_down,
+ 'cmpid' => $cmpid,
+ 'filter_object' => $data_columns,
+ 'filter_field' => 'CUSTOMVARIABLE_NAME',
+ 'filter_value' => '{CUSTOMVARIABLE_NAME}_{CUSTOMVARIABLE_VALUE}',
+ 'chainid' => $chainid
+ )). ');');
+
+ echo '<div class="drilldown-link-container"><a id="'. $js_id_down. '">'. $tr->_('Drill down'). '</a></div>';
+ }
+
+ echo '</div>';
+
+ }
+
+ ?>
+ ]]>
+ </data_template>
+
+ <MAIN>
+ <![CDATA[
+ <?php echo $t->renderFilterchain(
+ isset($a['p']['chain']) ? (integer)$a['p']['chain'] : 0 );
+ ?>
+ ]]>
+ </MAIN>
+</template_code>
+
+</template>
\ No newline at end of file
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/lib/js/CronkTabpanel.js
^
|
@@ -90,8 +90,20 @@
}, this);
if(this.URLTabData) {
- var index = this.add(this.plugins.createURLCronk(this.URLTabData));
- this.setActiveTab(index);
+
+ var tabPlugin = this.plugins;
+ if(Ext.isArray(this.plugins)) {
+ tabPlugin = null;
+ for(var i=0;i<this.plugins.length;i++)
+ if(this.plugins[i].createURLCronk) {
+ tabPlugin = this.plugins[i];
+ break;
+ }
+ }
+ if(tabPlugin) {
+ var index = this.add(tabPlugin.createURLCronk(this.URLTabData));
+ this.setActiveTab(index);
+ }
}
else {
this.setActiveTab(state.active || 0);
|
[-]
[+]
|
Added |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/lib/js/StaticContentUtil.js
^
|
@@ -0,0 +1,93 @@
+Ext.ns('Cronk.util');
+
+Cronk.util.StaticContentUtil = {
+
+ convertToLink : function(ele, image_class) {
+ ele.addClass([image_class, 'icinga-image-link']);
+ },
+
+ drilldownLink : function(c) {
+
+ var to = Ext.getCmp(c.cmpid);
+
+ if (Ext.get(c.jsid) && to) {
+ var link = Ext.get(c.jsid);
+ Cronk.util.StaticContentUtil.convertToLink(link, 'icinga-icon-drilldown');
+
+ var updater = to.getUpdater();
+ link.on('click', function(e) {
+ var u = updater.defaultUrl.split('?', 2);
+
+ try {
+ var oUrl = Ext.urlDecode(u[1]);
+ } catch(e) {
+ var oUrl = {}
+ }
+
+ if (Ext.isEmpty(oUrl['p[filter_appendix]'])) {
+ oUrl['p[filter_appendix]'] = "";
+ var ary = [];
+ } else {
+ var ary = oUrl['p[filter_appendix]'].split('|');
+ }
+
+ var x = new Ext.XTemplate(c['filter_value']);
+ var filter_value = x.apply(c['filter_object']);
+
+ ary.push(String.format('{0},{1}', c['filter_field'], filter_value.toUpperCase()));
+
+ oUrl['p[filter_appendix]'] = ary.join('|');
+
+ oUrl['p[chain]'] = c.chainid += 1;
+
+ updater.defaultUrl = Ext.urlAppend(u[0], Ext.urlEncode(oUrl));
+
+ updater.refresh();
+ })
+ }
+ },
+
+ drillupLink: function(c) {
+ var to = Ext.getCmp(c.cmpid);
+
+ if (Ext.get(c.jsid) && to) {
+ var link = Ext.get(c.jsid);
+
+ Cronk.util.StaticContentUtil.convertToLink(link, 'icinga-icon-drillup');
+
+ var updater = to.getUpdater();
+ link.on('click', function(e) {
+ var u = updater.defaultUrl.split('?', 2);
+
+ try {
+ var oUrl = Ext.urlDecode(u[1]);
+ } catch(e) {
+ var oUrl = {}
+ }
+
+ if (Ext.isEmpty(oUrl['p[filter_appendix]'])) {
+ oUrl['p[filter_appendix]'] = "";
+ var ary = [];
+ } else {
+ var ary = oUrl['p[filter_appendix]'].split('|');
+ }
+
+ if (ary.length == 0) {
+ throw "drillupLink: need filter_appendix set!";
+ }
+
+ ary.pop();
+
+ oUrl['p[filter_appendix]'] = ary.join('|');
+
+ oUrl['p[chain]'] = c.chainid -= 1;
+
+ updater.defaultUrl = Ext.urlAppend(u[0], Ext.urlEncode(oUrl));
+
+ updater.refresh();
+
+ });
+ }
+ }
+}
+
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/lib/js/grid/GridPanel.js
^
|
@@ -224,7 +224,7 @@
var org = cm.getColumnById(colId);
// Column was not moved arropund
- if (org.dataIndex == col.dataIndex) {
+ if (Ext.isDefined(org) && org.dataIndex == col.dataIndex) {
cm.setHidden(colId, col.hidden);
cm.setColumnWidth(colId, col.width);
}
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/models/System/StaticContentModel.class.php
^
|
@@ -2,7 +2,7 @@
class Cronks_System_StaticContentModel extends CronksBaseModel {
- private static $arrayNodes = array('filter');
+ private static $arrayNodes = array('filter', 'filterchain');
private static $indexAttributes = array('id', 'name');
private $api = null;
@@ -81,7 +81,7 @@
static $c = 0;
$index = $this->namedIndex($element);
-
+
if (!$index && $this->arrayNode($element)) {
$index = $fake++;
}
@@ -144,6 +144,10 @@
private function &getTemplates() {
return $this->xmlData['template_code'];
}
+
+ private function &getChain() {
+ return $this->xmlData['filterchain'];
+ }
/**
*
@@ -156,7 +160,9 @@
if ($this->templateObject === null) {
$this->templateObject = $this->getContext()->getModel('System.StaticContentTemplate', 'Cronks', array (
'templates' => $this->getTemplates(),
- 'datasources' => $this->getDatasources()
+ 'datasources' => $this->getDatasources(),
+ 'chain' => $this->getChain(),
+ 'rparam' => $this->getParameter('rparam', array ())
));
}
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/models/System/StaticContentTemplateModel.class.php
^
|
@@ -10,6 +10,8 @@
private $tid = null;
private $ts = array ();
private $ds = array ();
+ private $chain = array ();
+ private $rparam = array ();
private $args = array ();
private $js_code = array ();
@@ -24,7 +26,9 @@
$this->ds = $this->getParameter('datasources', array ());
$this->ts = $this->getParameter('templates', array ());
-
+ $this->chain = $this->getParameter('chain', array ());
+ $this->rparam = $this->getParameter('rparam', array ());
+
$this->tid = $this->getOid();
}
@@ -59,7 +63,10 @@
if ($args==null) {
$args =& $this->args;
}
-
+
+ $ctx = $this->getContext();
+ $ro = $this->getContext()->getRouting();
+ $tr = $this->getContext()->getTranslationManager();
$t =& $this;
$a =& $args;
@@ -153,7 +160,46 @@
return $filter;
}
- private function getDsArray($name, array $filters=array(), $index=false) {
+ private function getDsFilters($name, array $additional=array(), $ignore_defined_filters=false) {
+
+ $out = array ();
+
+ if (array_key_exists($name, $this->ds)) {
+
+ $dataSource = $this->ds[$name];
+
+ if (!array_key_exists('target', $dataSource)) {
+ throw new Cronks_System_StaticContentTemplateException('Datasource \'%s\' needs attribute target!', $name);
+ }
+ else {
+
+ if (!$ignore_defined_filters && array_key_exists('filters', $dataSource)) {
+
+ foreach ($dataSource['filters'] as $filter) {
+ $out[] = array(
+ $filter['field'],
+ $filter['value'],
+ constant(isset($filter['match']) ? $filter['match'] : 'IcingaApi::MATCH_LIKE')
+ );
+ }
+
+ }
+
+ if (count($additional)) {
+ foreach ($additional as $f) {
+ if (!isset($f[2])) $f[2] = IcingaApi::MATCH_EXACT;
+ $f = $this->processDsFiltermap($dataSource, $f);
+ $out[] = array($f[0], $f[1], $f[2]);
+ }
+ }
+
+ }
+ }
+
+ return $out;
+ }
+
+ private function getDsArray($name, array $filters=array(), $index=false, $ignore_defined_filters=false) {
if (array_key_exists($name, $this->ds)) {
@@ -184,12 +230,32 @@
$apiSearch->setSearchLimit(0, (int)$dataSource['limit']);
}
- if (count($filters)) {
- foreach ($filters as $f) {
- if (!isset($f[2])) $f[2] = IcingaApi::MATCH_EXACT;
- $f = $this->processDsFiltermap($dataSource, $f);
- $apiSearch->setSearchFilter($f[0], $f[1], $f[2]);
- }
+ /*
+ * @todo Check if we can remove this
+ */
+// if (array_key_exists('filters', $dataSource)) {
+//
+// foreach ($dataSource['filters'] as $filter) {
+// $filter = $apiSearch->createFilter($filter['field'],
+// $filter['value'],
+// constant(isset($filter['match']) ? $filter['match'] : 'IcingaApi::MATCH_LIKE')
+// );
+//
+// $apiSearch->setSearchFilter($filter);
+// }
+// }
+//
+// if (count($filters)) {
+// foreach ($filters as $f) {
+// if (!isset($f[2])) $f[2] = IcingaApi::MATCH_EXACT;
+// $f = $this->processDsFiltermap($dataSource, $f);
+// $apiSearch->setSearchFilter($f[0], $f[1], $f[2]);
+// }
+// }
+
+ $add_filters = $this->getDsFilters($name, $filters, $ignore_defined_filters);
+ foreach ($add_filters as $f) {
+ $apiSearch->setSearchFilter($f[0], $f[1], $f[2]);
}
/*
@@ -227,6 +293,10 @@
// INTERFACE METHODS
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ public function dumpData() {
+ return $this->tree;
+ }
+
public function getOid() {
static $oid=null;
if ($oid===null) {
@@ -292,10 +362,25 @@
}
ob_start();
+
$re = $this->evalPhp($this->templateCode($name), $args);
- $content = ob_get_contents();
+
+ $error = error_get_last();
+
+ if ($error === null) {
+ $content = ob_get_contents();
+ } else {
+ $error_message = sprintf(
+ 'TO PHP error: %s (Line %d) in template %s!',
+ $error['message'],
+ $error['line'],
+ $name
+ );
+
+ $content = $error_message;
+ }
ob_end_clean();
-
+
if ($name === self::TEMPLATE_MAIN || $is_root==true) {
$content .= $this->jsGetCode();
}
@@ -452,6 +537,36 @@
$this->appendArguments($data);
return $data;
}
+
+ public function renderFilterchain($id=0) {
+ $chains = $this->chain;
+
+ if (isset($chains[$id])) {
+
+ $chain = $chains[$id];
+
+ $chain_filters = array ();
+ if (isset($this->rparam['filter_appendix'])) {
+ $parts = explode('|', $this->rparam['filter_appendix']);
+ $chain_filters[] = explode(',', array_pop($parts));
+ }
+
+ $subfilters = $this->getDsFilters($chain['datasource'], $chain_filters, ($id==0) ? false : true);
+
+ $data = $this->getDsArray($chain['datasource'], $chain_filters, false, ($id==0) ? false : true);
+
+ return $this->renderTemplate($chain['template'], array (
+ 'chain' => $chain,
+ 'chainid' => $id,
+ 'hasnext' => isset($chains[$id+1]) ? true : false,
+ 'hasprev' => isset($chains[$id-1]) ? true : false,
+ 'data' => $data,
+ 'subfilter' => $subfilters
+ ));
+ } else {
+ return sprintf('Filterchain with id %d not found!', $id);
+ }
+ }
}
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/templates/System/StaticContentSuccess.php
^
|
@@ -1,9 +1,10 @@
<?php
$template = $rd->getParameter('template');
$render = $rd->getParameter('render', 'MAIN');
+ $cmpid = $rd->getParameter('cmpid');
?>
<script type="text/javascript">
-Cronk.util.initEnvironment("<?php echo $parentid = $rd->getParameter('parentid'); ?>", function() {
+Cronk.util.initEnvironment(<?php CronksRequestUtil::echoJsonString($rd); ?>, function() {
var CE = this;
var p = (function() {
@@ -11,7 +12,9 @@
var panel = null;
var pc = null;
var template_name = '<?php echo $template; ?>';
- var url = "<?php echo $ro->gen('cronks.staticContent.content', array('template' => $template, 'render' => $render)); ?>";
+ var url = "<?php echo $ro->gen('cronks.staticContent.content', array('template' => $template, 'render' => $render, 'cmpid' => $cmpid)); ?>";
+
+ url = url.replace(/&/g, '&');
Ext.apply(pub, {
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/templates/System/ViewProc/js/IcingaGridFilterHandler.js
^
|
@@ -300,7 +300,7 @@
});
if (oGrid.filter_params) {
- this.applyFilters(oGrid.filter_params);
+ oGrid.on("render",this.applyFilters.createDelegate(this,oGrid.filter_params));
}
},
@@ -353,6 +353,7 @@
// console.log(data);
// console.log('APPLY');
// console.log(oGrid.getStore().baseParams);
+
oGrid.getStore().reload();
// oGrid.fireEvent('activate');
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/validate/System/StaticContent.xml
^
|
@@ -47,6 +47,16 @@
<error>Validation of parentid failed!</error>
</errors>
</validator>
+
+ <validator class="string" name="p" required="false">
+ <arguments base="p[]">
+ <argument />
+ </arguments>
+
+ <errors>
+ <error>Parameter validation fails!</error>
+ </errors>
+ </validator>
</validators>
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Cronks/views/System/StaticContentSuccessView.class.php
^
|
@@ -26,11 +26,13 @@
try {
$file = AppKitFileUtil::getAlternateFilename(AgaviConfig::get('modules.cronks.xml.path.to'), $rd->getParameter('template'), '.xml');
- $model = $this->getContext()->getModel('System.StaticContent', 'Cronks');
+ $model = $this->getContext()->getModel('System.StaticContent', 'Cronks', array (
+ 'rparam' => $rd->getParameter('p', array ())
+ ));
$model->setTemplateFile($file->getRealPath());
- $content = $model->renderTemplate($rd->getParameter('render', 'MAIN'));
+ $content = $model->renderTemplate($rd->getParameter('render', 'MAIN'), $rd->getParameters());
return sprintf('<div class="%s">%s</div>', 'static-content-container', $content);
}
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/app/modules/Web/lib/principal/IcingaDataPrincipalTarget.class.php
^
|
@@ -31,7 +31,7 @@
public function getMapArray(array $arr) {
$p = array ();
foreach ($arr as $k=>$v) {
- $p[] = sprintf('${%s} = \'%s\'', $this->getApiMappingField($k), $v);
+ $p[] = sprintf('${%s} LIKE \'%s\'', $this->getApiMappingField($k), $v);
}
return '('. join(' AND ', $p). ')';
@@ -43,4 +43,4 @@
}
-?>
\ No newline at end of file
+?>
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/configure
^
|
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for icinga-web 1.4.0.
+# Generated by GNU Autoconf 2.67 for icinga-web 1.4.1.
#
# Report bugs to <dev.icinga.org>.
#
@@ -91,7 +91,6 @@
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -217,18 +216,11 @@
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
- # Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
export CONFIG_SHELL
- case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
- esac
- exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
fi
if test x$as_have_required = xno; then :
@@ -560,8 +552,8 @@
# Identity of this package.
PACKAGE_NAME='icinga-web'
PACKAGE_TARNAME='icinga-web'
-PACKAGE_VERSION='1.4.0'
-PACKAGE_STRING='icinga-web 1.4.0'
+PACKAGE_VERSION='1.4.1'
+PACKAGE_STRING='icinga-web 1.4.1'
PACKAGE_BUGREPORT='dev.icinga.org'
PACKAGE_URL=''
@@ -1093,7 +1085,7 @@
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
;;
esac
@@ -1231,7 +1223,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.4.0 to adapt to many kinds of systems.
+\`configure' configures icinga-web 1.4.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1292,7 +1284,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of icinga-web 1.4.0:";;
+ short | recursive ) echo "Configuration of icinga-web 1.4.1:";;
esac
cat <<\_ACEOF
@@ -1408,8 +1400,8 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-icinga-web configure 1.4.0
-generated by GNU Autoconf 2.68
+icinga-web configure 1.4.1
+generated by GNU Autoconf 2.67
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1425,8 +1417,8 @@
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.4.0, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+It was created by icinga-web $as_me 1.4.1, which was
+generated by GNU Autoconf 2.67. Invocation command line was
$ $0 $@
@@ -1684,7 +1676,7 @@
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
done
@@ -1775,7 +1767,7 @@
# Release date
-RELEASE_DATE=2011-05-11
+RELEASE_DATE=2011-06-08
@@ -1826,7 +1818,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
$as_echo_n "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
+if test "${ac_cv_path_install+set}" = set; then :
$as_echo_n "(cached) " >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -1904,7 +1896,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
+if test "${ac_cv_path_GREP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -1967,7 +1959,7 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
+if test "${ac_cv_path_SED+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -2056,7 +2048,7 @@
set dummy php; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PHP+:} false; then :
+if test "${ac_cv_path_PHP+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case $PHP in
@@ -2108,7 +2100,7 @@
set dummy mysql; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MYSQL+:} false; then :
+if test "${ac_cv_path_MYSQL+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case $MYSQL in
@@ -2160,7 +2152,7 @@
set dummy phing; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PHING+:} false; then :
+if test "${ac_cv_path_PHING+set}" = set; then :
$as_echo_n "(cached) " >&6
else
case $PHING in
@@ -2693,21 +2685,10 @@
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
+ test "x$cache_file" != "x/dev/null" &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
+ cat confcache >$cache_file
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -2775,7 +2756,7 @@
-: "${CONFIG_STATUS=./config.status}"
+: ${CONFIG_STATUS=./config.status}
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -2876,7 +2857,6 @@
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3183,8 +3163,8 @@
# 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.4.0, which was
-generated by GNU Autoconf 2.68. Invocation command line was
+This file was extended by icinga-web $as_me 1.4.1, which was
+generated by GNU Autoconf 2.67. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -3236,8 +3216,8 @@
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.4.0
-configured by $0, generated by GNU Autoconf 2.68,
+icinga-web config.status 1.4.1
+configured by $0, generated by GNU Autoconf 2.67,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -3367,7 +3347,7 @@
"pub/.htaccess") CONFIG_FILES="$CONFIG_FILES pub/.htaccess" ;;
"pub/soap/.htaccess") CONFIG_FILES="$CONFIG_FILES pub/soap/.htaccess" ;;
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
esac
done
@@ -3388,10 +3368,9 @@
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
- tmp= ac_tmp=
+ tmp=
trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
@@ -3399,13 +3378,12 @@
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
+ test -n "$tmp" && test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
@@ -3427,7 +3405,7 @@
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
_ACEOF
@@ -3455,7 +3433,7 @@
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
@@ -3503,7 +3481,7 @@
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
@@ -3535,7 +3513,7 @@
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
@@ -3575,7 +3553,7 @@
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -3594,7 +3572,7 @@
for ac_f
do
case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
+ -) ac_f="$tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
@@ -3603,7 +3581,7 @@
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -3629,8 +3607,8 @@
esac
case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
@@ -3760,22 +3738,21 @@
s&@INSTALL@&$ac_INSTALL&;t t
$ac_datarootdir_hack
"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
- rm -f "$ac_tmp/stdin"
+ rm -f "$tmp/stdin"
case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/contrib/businessprocess-icinga-cronk/build.xml
^
|
@@ -71,9 +71,18 @@
</if>
<echo>Clearing cache</echo>
- <delete dir="${PATH_Icinga}/app/cache/content" />
- <delete dir="${PATH_Icinga}/app/cache/config" />
+ <delete dir="${PATH_Icinga}/app/cache/*" />
+
+ <property name="buildAdditional" value="false" />
+ <available file="additional.xml" property="buildAdditional" value="true" />
+ <if>
+ <equals arg1="${buildAdditional}" arg2="1" />
+ <then>
+ <phing phingfile="additional.xml" inheritAll="true" />
+ </then>
+ </if>
+
<echo>
If, for any reason, your config is broken after installing this module, run the restoreConfig script (restoreConfig.sh).
</echo>
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/contrib/businessprocess-icinga-cronk/manifest.xml
^
|
@@ -4,7 +4,7 @@
<!-- Meta information about the module-->
<Meta>
<Name>Business process cronk</Name>
- <Version>0.4alpha1</Version>
+ <Version>1.2.1</Version>
<Description><![CDATA[Adapter for accessing the Nagios Business Process addon directly in icinga]]></Description>
<Author>BP Addon: Bernd Stroessenreuther (berny1@users.sourceforge.net)
Icinga Cronk: Jannis Moßhammer (Jannis.Mosshammer@netways.de)
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/contrib/businessprocess-icinga-cronk/src/app/modules/Cronks/lib/js/bp/bpLoader.js
^
|
@@ -148,7 +148,10 @@
objToAdd["uiProvider"] = 'col';
objToAdd["iconCls"] = 'icinga-icon-chart-organisation';
objToAdd["children"] = objToAdd["components"];
-
+ if(objToAdd["info_url"])
+ objToAdd["info_url"] = '<a href="'+objToAdd['info_url']+'" '+
+ 'qtip="Show info_url" class="icinga-icon-information icinga-icon-24"></a>';
+
objToAdd["isProcessed"] = true;
if(this.withGroups)
@@ -183,6 +186,11 @@
// If it's a subprocess, handle it like ever other subprocess
child = this.formatEntry(all[child["subprocess"]],child["subprocess"],all);
child["iconCls"] = 'icinga-icon-chart-organisation';
+ if(child["info_url"])
+ child["info_url"] =
+ '<a href="'+child['info_url']+'" '+
+ ' qtip="Show info_url" class="icinga-icon-information icinga-icon-24">link</a>';
+
objToAdd["children"][i] = child;
} else {
try {
@@ -211,10 +219,15 @@
child["service"]+
'</span>';
child["host"] =
- '<span qtip="Show history for this host" class="bp_host_selector x-icinga-grid-link" '+
+ '<span qtip="Show host" class="bp_host_selector x-icinga-grid-link" '+
'host="'+child["host"]+'">'+
child["host"]+
'</span>';
+
+ if(child["info_url"])
+ child["info_url"] =
+ '<a href="'+child['info_url']+'" '+
+ ' qtip="Show info_url" class="icinga-icon-information icinga-icon-24">link</a>';
var state = child["hardstate"];
if(state)
child["hardstate"] = '<div class="icinga-status icinga-status-'+state.toLowerCase()+'" style="height:12px;text-align:center">'+state+'</div>';
@@ -255,4 +268,4 @@
}
-})
\ No newline at end of file
+})
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/contrib/businessprocess-icinga-cronk/src/app/modules/Cronks/models/bpAddon/configParserModel.class.php
^
|
@@ -38,8 +38,10 @@
} else {
if(!is_writeable($path))
throw new AppKitException("Can't write to config path ".$path);
- }
-
+ }
+ if($this->getConsistencyErrors($config)) {
+ throw new AppKitException("Config check failed, please check your syntax");
+ }
file_put_contents($file,$config);
}
protected function parseProcessesFromArray(array $object) {
@@ -49,7 +51,7 @@
$bp = $this->getContext()->getModel("bpAddon.businessProcess","Cronks",array($process));
$cfgParts[] = array("obj" => $bp, "str" => $bp->__toConfig());
}
-
+
$cfgString = $this->orderResultSet($cfgParts);
$config = $this->getConfigHeader();
@@ -95,7 +97,8 @@
foreach($cfgParts as $part) {
$newOrder[] = $part["str"];
}
- return $newOrder;
+ // make sure processed don't appear doubled
+ return array_unique($newOrder);
}
protected function getConfigHeader() {
@@ -130,10 +133,10 @@
file_put_contents($file,$cfg);
$ret = 0;
// Call the check command and save
- ob_start();
- system($bp["paths"]["bin"]."/".$bp["commands"]["checkConsistency"]." ".$file,$ret);
- $systemResult = ob_get_clean();
-
+ $systemResult = array();
+ exec($bp["paths"]["bin"]."/".$bp["commands"]["checkConsistency"]." ".$file,$systemResult,$ret);
+ $systemResult = implode("\n",$systemResult);
+
unlink($file);
if($ret)
return $systemResult;
@@ -169,4 +172,4 @@
}
}
-?>
\ No newline at end of file
+?>
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/contrib/businessprocess-icinga-cronk/src/app/modules/Cronks/templates/bpAddon/ConfigCreaterSuccess.php
^
|
@@ -337,6 +337,7 @@
hostStore: new Ext.data.JsonStore({
autoDestroy:false,
url: '<?php echo $ro->gen("icinga.api");?>'+'/json',
+ root: 'result',
idProperty: 'HOST_ID',
baseParams: {
'target' : 'host',
@@ -348,6 +349,7 @@
serviceStore: new Ext.data.JsonStore({
autoDestroy:false,
+ root: 'result',
url: '<?php echo $ro->gen("icinga.api");?>'+'/json',
idProperty: 'SERVICE_ID',
baseParams: {
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/contrib/businessprocess-icinga-cronk/src/app/modules/Cronks/templates/bpAddon/OverviewSuccess.php
^
|
@@ -287,9 +287,14 @@
width:100
},{
header:_('Status information'),
- dataIndex: 'external_info',
+ dataIndex: 'external_info',
width:100
},{
+ header: _(''),
+ width:25,
+ dataIndex: 'info_url'
+
+ },{
header:_('Priority'),
dataIndex: 'display_prio',
width:50
@@ -316,10 +321,16 @@
var host_name = el.getAttribute("service");
var cronk = {
parentid: Ext.id(),
- title: 'Service history for '+service_name,
+ title: 'Services for '+service_name,
crname: 'gridProc',
closable: true,
- params: {template: 'icinga-service-history-template'}
+ module: 'Cronks',
+ action: 'System.ViewProc',
+ params: {
+ module: 'Cronks',
+ action: 'System.ViewProc',
+ template: 'icinga-service-template'
+ }
};
var filter = {};
filter["f[service_name-value]"] = service_name;
@@ -351,10 +362,14 @@
var host_name = el.getAttribute("host");
var cronk = {
parentid: Ext.id(),
- title: 'Host history for '+host_name,
+ title: 'Host '+host_name,
crname: 'gridProc',
closable: true,
- params: {template: 'icinga-host-history-template'}
+ params: {
+ module: 'Cronks',
+ action: 'System.ViewProc',
+ template: 'icinga-host-template'
+ }
};
var filter = {};
filter["f[host_name-value]"] = host_name;
@@ -365,13 +380,56 @@
el.hasLink = true;
},this)
},
+ /**
+ * Parses any links provided to iframe providers
+ *
+ */
+ buildExternalLinks: function() {
+ var link_selector = Ext.DomQuery.jsSelect(".x-treegrid a");
+ Ext.each(link_selector,function(item) {
+ var el = (Ext.get(item));
+ if(!el.getAttribute('href') || el.getAttribute('href')== "#")
+ return true;
+ var replace = document.createElement("div");
+
+ replace.innerHTML = el.dom.innerHTML || ' ';
+ var replaceEl = Ext.get(replace);
+ replaceEl.qtip = el.qtip;
+ replaceEl.addClass(el.dom.className);
+ var link = el.getAttribute('href');
+ replaceEl.on("click",function() {
+ var panel = Ext.getCmp('cronk-tabs');
+ var urlTab = panel.add({
+ parentid: Ext.id(),
+ xtype: 'cronk',
+ title: replace.innerHTML+'('+link+')',
+ crname: 'genericIFrame',
+ closable: true,
+ params: {
+ module: 'Cronks',
+ action: 'System.ViewProc',
+ url: link
+ }
+ });
+ panel.doLayout();
+ panel.setActiveTab(urlTab);
+ });
+
+ el.replaceWith(replace);
+
+ });
+ },
+
/**
* Aggregate function that creates the links in the tree
*/
buildSelectors: new Ext.util.DelayedTask(function(args) {
this.buildServiceLinks();
this.buildHostLinks()
+ this.buildExternalLinks();
+
+
},this),
/**
@@ -444,8 +502,7 @@
return false;
}
}
- }
-
+ }
},
buildAPIFilterFromObject : function(obj,prefix) {
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/make/version.m4
^
|
@@ -9,5 +9,5 @@
dnl this name.
dnl
-m4_define([ICINGA_VERSION], [1.4.0])
-m4_define([ICINGA_RELEASE_DATE], [2011-05-11])
+m4_define([ICINGA_VERSION], [1.4.1])
+m4_define([ICINGA_RELEASE_DATE], [2011-06-08])
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/etc/schema/pgsql.sql
^
|
@@ -13,7 +13,7 @@
CREATE TABLE nsm_log (log_id SERIAL, log_level INT NOT NULL, log_message TEXT NOT NULL, log_created TIMESTAMP NOT NULL, log_modified TIMESTAMP NOT NULL, PRIMARY KEY(log_id));
CREATE TABLE nsm_principal (principal_id SERIAL, principal_user_id INT, principal_role_id INT, principal_type VARCHAR(4) NOT NULL, principal_disabled SMALLINT DEFAULT 0, PRIMARY KEY(principal_id));
CREATE TABLE nsm_principal_target (pt_id SERIAL, pt_principal_id INT NOT NULL, pt_target_id INT NOT NULL, PRIMARY KEY(pt_id));
-CREATE TABLE nsm_role (role_id SERIAL, role_name VARCHAR(40) NOT NULL, role_description VARCHAR(255), role_disabled SMALLINT DEFAULT 0 NOT NULL, role_created TIMESTAMP NOT NULL, role_modified TIMESTAMP NOT NULL, role_parent INT, PRIMARY KEY(role_id));
+CREATE TABLE nsm_role (role_id SERIAL, role_name VARCHAR(40) NOT NULL, role_description VARCHAR(255), role_disabled SMALLINT, role_created TIMESTAMP NOT NULL, role_modified TIMESTAMP NOT NULL, role_parent INT, PRIMARY KEY(role_id));
CREATE TABLE nsm_session (session_entry_id SERIAL, session_id VARCHAR(255) NOT NULL, session_name VARCHAR(255) NOT NULL, session_data TEXT NOT NULL, session_checksum VARCHAR(255) NOT NULL, session_created TIMESTAMP NOT NULL, session_modified TIMESTAMP NOT NULL, PRIMARY KEY(session_entry_id));
CREATE TABLE nsm_target (target_id SERIAL, target_name VARCHAR(45) NOT NULL, target_description VARCHAR(100), target_class VARCHAR(80), target_type VARCHAR(45) NOT NULL, PRIMARY KEY(target_id));
CREATE TABLE nsm_target_value (tv_pt_id INT, tv_key VARCHAR(45), tv_val VARCHAR(45) NOT NULL, PRIMARY KEY(tv_pt_id, tv_key));
@@ -48,7 +48,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) VALUES ('1','0','root','Enoch','Root','42bc5093863dce8c150387a5bb7e3061cf3ea67d2cf1779671e1b0f435e953a1','0c099ae4627b144f3a7eaa763ba43b10fd5d1caa8738a98f11bb973bebc52ccd','internal','root@localhost.local','0');
+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',now(),now());
INSERT INTO nsm_db_version (vers_id,version) VALUES ('1','2');
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');
@@ -68,10 +68,10 @@
INSERT INTO nsm_target (target_id,target_name,target_description,target_class,target_type) VALUES ('16','icinga.cronk.log','Enables icinga-log cronk','','credential');
INSERT INTO nsm_target (target_id,target_name,target_description,target_class,target_type) VALUES ('17','icinga.control.view','Allow user to view icinga status','','credential');
INSERT INTO nsm_target (target_id,target_name,target_description,target_class,target_type) VALUES ('18','icinga.control.admin','Allow user to administrate the icinga process','','credential');
-INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled) VALUES ('1','icinga_user','The default representation of a ICINGA user','0');
-INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled) VALUES ('2','appkit_user','Appkit user test','0');
-INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled,role_parent) VALUES ('3','appkit_admin','AppKit admin','0','2');
-INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled) VALUES ('4','guest','Unauthorized Guest','0');
+INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled,role_modified,role_created) VALUES ('1','icinga_user','The default representation of a ICINGA user','0',now(),now());
+INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled,role_modified,role_created) VALUES ('2','appkit_user','Appkit user test','0',now(),now());
+INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled,role_parent,role_modified,role_created) VALUES ('3','appkit_admin','AppKit admin','0','2',now(),now());
+INSERT INTO nsm_role (role_id,role_name,role_description,role_disabled,role_modified,role_created) VALUES ('4','guest','Unauthorized Guest','0',now(),now());
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');
INSERT INTO nsm_principal (principal_id,principal_role_id,principal_type,principal_disabled) VALUES ('3','3','role','0');
@@ -89,3 +89,13 @@
INSERT INTO nsm_user_role (usro_user_id,usro_role_id) VALUES ('1','1');
INSERT INTO nsm_user_role (usro_user_id,usro_role_id) VALUES ('1','2');
INSERT INTO nsm_user_role (usro_user_id,usro_role_id) VALUES ('1','3');
+
+/*
+Update sequences
+*/
+ALTER SEQUENCE nsm_user_user_id_seq RESTART WITH 2;
+ALTER SEQUENCE nsm_target_target_id_seq RESTART WITH 19;
+ALTER SEQUENCE nsm_role_role_id_seq RESTART WITH 5;
+ALTER SEQUENCE nsm_principal_principal_id_seq RESTART WITH 6;
+ALTER SEQUENCE nsm_principal_target_pt_id_seq RESTART WITH 10;
+
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/icinga-web.spec
^
|
@@ -17,7 +17,7 @@
Summary: Open Source host, service and network monitoring Web UI
Name: icinga-web
-Version: 1.4.0
+Version: 1.4.1
Release: 1%{?dist}
License: GPLv2+
Group: Applications/System
@@ -136,6 +136,9 @@
##############################
%changelog
##############################
+* Tue Jun 7 2011 Michael Friedrich - 1.4.1-1
+- update for 1.4.1
+
* Thu May 5 2011 Michael Friedrich - 1.4.0-1
- update for upcoming release
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/pub/styles/icinga-icons.css
^
|
@@ -21,6 +21,16 @@
.icon-24 { height:24px; width:24px}
.icon-16 { height:16px; width:16px}
+.icinga-image-link {
+ height: 16px;
+ line-height: 16px;
+ background-position: 0px center;
+ display: inline-block;
+ padding: 0px 0px 0px 20px;
+ cursor: pointer;
+ text-decoration: underline;
+}
+
.icinga-icon-accept { background-image: url(../images/icons/tick-circle-frame.png) !important; background-repeat: no-repeat; }
.icinga-icon-cancel { background-image: url(../images/icons/cross-circle-frame.png) !important; background-repeat: no-repeat; }
.icinga-icon-application { background-image: url(../images/icons/application.png) !important; background-repeat: no-repeat; }
@@ -125,4 +135,7 @@
.icinga-icon-status { background-image: url(../images/icons/status.png) !important; background-repeat: no-repeat; }
.icinga-icon-status-busy { background-image: url(../images/icons/status-busy.png) !important; background-repeat: no-repeat; }
+.icinga-icon-drilldown { background-image: url(../images/icons/drill--plus.png) !important; background-repeat: no-repeat; }
+.icinga-icon-drillup { background-image: url(../images/icons/drill--minus.png) !important; background-repeat: no-repeat; }
+
/* EOF */
\ No newline at end of file
|
[-]
[+]
|
Changed |
icinga-web-1.4.1.tar.bz2/pub/styles/icinga.css
^
|
@@ -269,6 +269,8 @@
width: 180px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
+ border-radius: 5px;
+ box-shadow: 8px 8px 5px #888;
}
div.icinga-status-container div.icinga-status-label {
@@ -538,13 +540,23 @@
/** Static content container **/
.static-content-container {
- background-color: #ffffff;
+ /* background-color: #ffffff; */
padding: 2px 5px 2px 5px;
}
.static-content-container table td {
margin: 4px 4px;
- padding: 4px 4px;
+ padding: 4px 8px 8px 4px;
+}
+
+.static-content-container .drilldown-link-container {
+ margin: 10px 0px 10px 0px;
+ background: #f1f1f1;
+ padding: 4px;
+ text-align: center;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
}
|