Use OC.Notification for update notifications
* instead of a static rendering inside PHP use the JS OC.Notification.showTemporary to hide the notification after 7 seconds automatically * fixes #14811
This commit is contained in:
parent
9f76b8b356
commit
cd516eedcd
3 changed files with 36 additions and 4 deletions
30
core/js/update-notification.js
Normal file
30
core/js/update-notification.js
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2015 ownCloud Inc
|
||||||
|
*
|
||||||
|
* @author Morris Jobke <hey@morrisjobke.de>
|
||||||
|
*
|
||||||
|
* This file is licensed under the Affero General Public License version 3
|
||||||
|
* or later.
|
||||||
|
*
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this gets only loaded if an update is available and then shows a temporary notification
|
||||||
|
*/
|
||||||
|
$(document).ready(function(){
|
||||||
|
var head = $('html > head'),
|
||||||
|
version = head.data('update-version'),
|
||||||
|
docLink = head.data('update-link'),
|
||||||
|
text = t('core', '{version} is available. Get more information on how to update.', {version: version}),
|
||||||
|
element = $('<a>').attr('href', docLink).text(text);
|
||||||
|
|
||||||
|
OC.Notification.showTemporary(
|
||||||
|
element,
|
||||||
|
{
|
||||||
|
isHTML: true
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
|
@ -2,7 +2,11 @@
|
||||||
<!--[if lte IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
|
<!--[if lte IE 8]><html class="ng-csp ie ie8 lte9 lte8" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
|
||||||
<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
|
<!--[if IE 9]><html class="ng-csp ie ie9 lte9" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><![endif]-->
|
||||||
<!--[if (gt IE 9)|!(IE)]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
|
<!--[if (gt IE 9)|!(IE)]><!--><html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" ><!--<![endif]-->
|
||||||
<head data-user="<?php p($_['user_uid']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>">
|
<head data-user="<?php p($_['user_uid']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>"
|
||||||
|
<?php if ($_['updateAvailable']): ?>
|
||||||
|
data-update-version="<?php print($_['updateVersion']); ?>" data-update-link="<?php print_unescaped($_['updateLink']); ?>"
|
||||||
|
<?php endif; ?>
|
||||||
|
>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<title>
|
<title>
|
||||||
<?php
|
<?php
|
||||||
|
@ -31,9 +35,6 @@
|
||||||
<?php include('layout.noscript.warning.php'); ?>
|
<?php include('layout.noscript.warning.php'); ?>
|
||||||
<div id="notification-container">
|
<div id="notification-container">
|
||||||
<div id="notification"></div>
|
<div id="notification"></div>
|
||||||
<?php if ($_['updateAvailable']): ?>
|
|
||||||
<div id="update-notification" style="display: inline;"><a href="<?php print_unescaped($_['updateLink']); ?>"><?php p($l->t('%s is available. Get more information on how to update.', array($_['updateVersion']))); ?></a></div>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
</div>
|
||||||
<header role="banner"><div id="header">
|
<header role="banner"><div id="header">
|
||||||
<a href="<?php print_unescaped(link_to('', 'index.php')); ?>"
|
<a href="<?php print_unescaped(link_to('', 'index.php')); ?>"
|
||||||
|
|
|
@ -85,6 +85,7 @@ class OC_TemplateLayout extends OC_Template {
|
||||||
$this->assign('updateAvailable', true);
|
$this->assign('updateAvailable', true);
|
||||||
$this->assign('updateVersion', $data['versionstring']);
|
$this->assign('updateVersion', $data['versionstring']);
|
||||||
$this->assign('updateLink', $data['web']);
|
$this->assign('updateLink', $data['web']);
|
||||||
|
\OCP\Util::addScript('core', 'update-notification');
|
||||||
} else {
|
} else {
|
||||||
$this->assign('updateAvailable', false); // No update available or not an admin user
|
$this->assign('updateAvailable', false); // No update available or not an admin user
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue