diff options
author | Raghu Nayyar <me@iraghu.com> | 2013-04-26 21:12:38 -0700 |
---|---|---|
committer | Raghu Nayyar <me@iraghu.com> | 2013-04-26 21:12:38 -0700 |
commit | 2bcb64e7813e5118676958a79910cdb604f9439b (patch) | |
tree | 0e892caa817759417df4f37f2e7bae9eea521a27 | |
parent | 7b2c64236ce3ddd6cf1a09c67745a8f7ab9c356b (diff) | |
parent | b6fee2d25794ff3214e1bbf857861f6d681c4cf2 (diff) | |
download | nextcloud-server-2bcb64e7813e5118676958a79910cdb604f9439b.tar.gz nextcloud-server-2bcb64e7813e5118676958a79910cdb604f9439b.zip |
Merge pull request #3114 from owncloud/update-notification
Add an update notification
-rw-r--r-- | core/css/styles.css | 4 | ||||
-rw-r--r-- | core/templates/layout.user.php | 3 | ||||
-rw-r--r-- | lib/templatelayout.php | 14 | ||||
-rw-r--r-- | lib/updater.php | 46 | ||||
-rw-r--r-- | settings/templates/admin.php | 3 |
5 files changed, 32 insertions, 38 deletions
diff --git a/core/css/styles.css b/core/css/styles.css index 6eea2be433d..93f2cecbfe9 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -344,8 +344,8 @@ li.update, li.error { width:640px; margin:4em auto; padding:1em 1em 1em 4em; bac .center { text-align:center; } #notification-container { position: fixed; top: 0px; width: 100%; text-align: center; z-index: 101; line-height: 1.2;} -#notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } -#notification span { cursor:pointer; font-weight:bold; margin-left:1em; } +#notification, #update-notification { z-index:101; background-color:#fc4; border:0; padding:0 .7em .3em; display:none; position: relative; top:0; -moz-border-radius-bottomleft:1em; -webkit-border-bottom-left-radius:1em; border-bottom-left-radius:1em; -moz-border-radius-bottomright:1em; -webkit-border-bottom-right-radius:1em; border-bottom-right-radius:1em; } +#notification span, #update-notification span { cursor:pointer; font-weight:bold; margin-left:1em; } tr .action:not(.permanent), .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; } tr:hover .action, tr .action.permanent, .selectedActions a { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; filter:alpha(opacity=50); opacity:.5; } diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index cfe0a551943..9a1b202226b 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -32,6 +32,9 @@ <body id="<?php p($_['bodyid']);?>"> <div id="notification-container"> <div id="notification"></div> + <?php if ($_['updateAvailable']): ?> + <div id="update-notification" style="display: inline;"><?php print_unescaped($l->t('%s is available. <a href="%s">Click here to get more information.', array($_['updateVersion'], $_['updateLink']))); ?></a></div> + <?php endif; ?> </div> <header><div id="header"> <a href="<?php print_unescaped(link_to('', 'index.php')); ?>" title="" id="owncloud"><img class="svg" diff --git a/lib/templatelayout.php b/lib/templatelayout.php index 686a38a7386..d385bb7f19d 100644 --- a/lib/templatelayout.php +++ b/lib/templatelayout.php @@ -18,6 +18,20 @@ class OC_TemplateLayout extends OC_Template { $this->assign('bodyid', 'body-user'); } + // Update notification + if(OC_Config::getValue('updatechecker', true) === true) { + $data=OC_Updater::check(); + if(isset($data['version']) && $data['version'] != '' and $data['version'] !== Array() && OC_User::isAdminUser(OC_User::getUser())) { + $this->assign('updateAvailable', true); + $this->assign('updateVersion', $data['versionstring']); + $this->assign('updateLink', $data['web']); + } else { + $this->assign('updateAvailable', false); // No update available or not an admin user + } + } else { + $this->assign('updateAvailable', false); // Update check is disabled + } + // Add navigation entry $this->assign( 'application', '', false ); $navigation = OC_App::getNavigation(); diff --git a/lib/updater.php b/lib/updater.php index e7d33ac2bb9..9081bfc4be8 100644 --- a/lib/updater.php +++ b/lib/updater.php @@ -29,7 +29,14 @@ class OC_Updater{ * Check if a new version is available */ public static function check() { - OC_Appconfig::setValue('core', 'lastupdatedat', microtime(true)); + + // Look up the cache - it is invalidated all 30 minutes + if((OC_Appconfig::getValue('core', 'lastupdatedat') + 1800) > time()) { + return json_decode(OC_Appconfig::getValue('core', 'lastupdateResult'), true); + } + + OC_Appconfig::setValue('core', 'lastupdatedat', time()); + if(OC_Appconfig::getValue('core', 'installedat', '')=='') { OC_Appconfig::setValue('core', 'installedat', microtime(true)); } @@ -65,38 +72,9 @@ class OC_Updater{ $tmp['url'] = $data->url; $tmp['web'] = $data->web; - return $tmp; - } - - public static function ShowUpdatingHint() { - $l = OC_L10N::get('lib'); - - if(OC_Config::getValue('updatechecker', true)==true) { - $data=OC_Updater::check(); - if(isset($data['version']) and $data['version']<>'') { - $txt='<span style="color:#AA0000; font-weight:bold;">' - .$l->t('%s is available. Get <a href="%s">more information</a>', - array($data['versionstring'], $data['web'])).'</span>'; - }else{ - $txt=$l->t('up to date'); - } - }else{ - $txt=$l->t('updates check is disabled'); - } - return($txt); - } - - - /** - * do ownCloud update - */ - public static function doUpdate() { - - //update ownCloud core - - //update all apps - - //update version in config + // Cache the result + OC_Appconfig::setValue('core', 'lastupdateResult', json_encode($data)); + return $tmp; } -} +}
\ No newline at end of file diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 182168ce9eb..28254b7aa18 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -233,8 +233,7 @@ endfor;?> <fieldset class="personalblock"> <legend><strong><?php p($l->t('Version'));?></strong></legend> - <strong>ownCloud</strong> <?php p(OC_Util::getVersionString()); ?> <?php p(OC_Util::getEditionString()); ?> - (<?php print_unescaped(OC_Updater::ShowUpdatingHint()); ?>)<br/> + <strong>ownCloud</strong> <?php p(OC_Util::getVersionString()); ?> <?php p(OC_Util::getEditionString()); ?><br/> <?php print_unescaped($l->t('Developed by the <a href="http://ownCloud.org/contact" target="_blank">ownCloud community</a>, the <a href="https://github.com/owncloud" target="_blank">source code</a> is licensed under the <a href="http://www.gnu.org/licenses/agpl-3.0.html" target="_blank"><abbr title="Affero General Public License">AGPL</abbr></a>.')); ?> </fieldset> |