Title: [opsview] [13235] About page now shows if the latest Opsview is installed
- Revision
- 13235
- Author
- tvoon
- Date
- 2013-08-14 21:10:01 +0100 (Wed, 14 Aug 2013)
Log Message
About page now shows if the latest Opsview is installed
Modified Paths
Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Ajax.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Ajax.pm 2013-08-14 20:08:10 UTC (rev 13234)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Ajax.pm 2013-08-14 20:10:01 UTC (rev 13235)
@@ -30,6 +30,7 @@
use DateTime;
use Opsview::Reloadtime;
+use Opsview::Utils::UpdateChecker;
sub auto : Private {
my ( $self, $c ) = @_;
@@ -85,6 +86,38 @@
$c->stash( ResultSet => { Results => $a } );
}
+sub update_checker : Local : RequiresRole(ADMINACCESS) {
+ my ( $self, $c ) = @_;
+ my $updater = Opsview::Utils::UpdateChecker->new();
+ $updater->set_options(
+ {
+ include_advanced_stats =>
+ $c->stash->{system_preference}->send_anon_data,
+ }
+ );
+ my $stats = $updater->collect_stats();
+ $updater->post_stats;
+
+ my $res = {};
+
+ if ( !$updater->is_success ) {
+ $res->{status} = $updater->code;
+ $res->{message} = $updater->message;
+ $c->log->warn(
+ "Update checker: Got code=$res->{status} with message=$res->{message}"
+ );
+ }
+ else {
+ my $result = $updater->result;
+ $res->{status} = 200;
+ $res->{new_version} = $result->{new_version};
+ $res->{message} = $result->{additional_output}
+ || $result->{unknown_state_message};
+ $res->{return_code} = $result->{return_code};
+ }
+ $c->stash( ResultSet => $res );
+}
+
# ACLs from the check_save_access
sub check_credit : Local {
my ( $self, $c ) = @_;
Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Root.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Root.pm 2013-08-14 20:08:10 UTC (rev 13234)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Root.pm 2013-08-14 20:10:01 UTC (rev 13235)
@@ -898,7 +898,8 @@
$c->model("RuntimeSchema::OpsviewHostServices")->count,
num_slaves =>
$c->model("OpsviewSchema::Monitoringservers")->count() - 1,
- }
+ },
+ update_checker => 1,
);
}
}
Modified: trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po 2013-08-14 20:08:10 UTC (rev 13234)
+++ trunk/opsview-web/lib/Opsview/Web/I18N/i_default.po 2013-08-14 20:10:01 UTC (rev 13235)
@@ -312,6 +312,18 @@
msgid "opsview"
msgstr "Opsview"
+msgid "ui.about.update.checking"
+msgstr "Checking for update..."
+
+msgid "ui.about.update.cannotCheckNow"
+msgstr "Cannot check versions at the moment. Please try again later"
+
+msgid "ui.about.update.upToDate"
+msgstr "Up to date!"
+
+msgid "ui.about.update.newVersionAvailable"
+msgstr "New version available"
+
msgid "ui.about.heading.intellectual_property"
msgstr "Intellectual Property"
Modified: trunk/opsview-web/root/about
===================================================================
--- trunk/opsview-web/root/about 2013-08-14 20:08:10 UTC (rev 13234)
+++ trunk/opsview-web/root/about 2013-08-14 20:10:01 UTC (rev 13235)
@@ -1,6 +1,39 @@
+[% PROCESS functions_base; %]
<div class="infobox">
[% INCLUDE "version_headings" %]
+[% IF update_checker %]
+<div id="update_checker">
+[% c.loc("ui.about.update.checking") | html %] [% indicator_icon( { show => 1, inline => 1 } ) %]
+</div>
+<script type="text/_javascript_">
+jQuery.ajax({
+ url: '[% c.uri_for("/admin/ajax/update_checker").path | escape_js_string %]',
+ method: 'GET',
+ dataType: 'json',
+ success: function(data) {
+ if (data.ResultSet.status!=200) {
+ jQuery("#update_checker").text("[% c.loc("ui.about.update.cannotCheckNow") | escape_js_string %]");
+ } else {
+ if (data.ResultSet.return_code==0) {
+ jQuery("#update_checker").text("[% c.loc("ui.about.update.upToDate") | escape_js_string %]");
+ } else if (data.ResultSet.return_code==1) {
+ var t = "[% c.loc("ui.about.update.newVersionAvailable") | escape_js_string %]: " + data.ResultSet.new_version;
+ if (data.ResultSet.message) {
+ t = t + " - " + data.ResultSet.message;
+ }
+ jQuery("#update_checker").text(t);
+ } else {
+ jQuery("#update_checker").text("[% c.loc("messages.generic.error") | html %]: " + data.ResultSet.message);
+ }
+ }
+
+ }
+});
+</script>
+<br/>
+[% END %]
+
[% IF about_system %]
<table class="systembox">
<tr class="odd">
@@ -16,7 +49,6 @@
<td class="centered">[% about_system.num_services %]</td>
</tr>
</table>
-
[% END %]
<div class="licence">
Modified: trunk/opsview-web/root/functions_base
===================================================================
--- trunk/opsview-web/root/functions_base 2013-08-14 20:08:10 UTC (rev 13234)
+++ trunk/opsview-web/root/functions_base 2013-08-14 20:10:01 UTC (rev 13235)
@@ -6,7 +6,8 @@
MACRO indicator_icon( args ) BLOCK;
display = (args.show) ? "" : ' style="display:none"';
id = (args.id) ? ' id="' _ args.id _ '"' : "";
- %]<img src="" images.indicator | html %]" alt="[% c.loc("ui.admin.label.indicator") | html %]" [% display; id %]/>[%
+ inline = (args.inline) ? ' style="height:1em"' : '';
+ %]<img src="" images.indicator | html %]" alt="[% c.loc("ui.admin.label.indicator") | html %]" [% display; id; inline %]/>[%
END;
MACRO sched_downtime_icon( args ) BLOCK;
_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins