Merge pull request #3371 from m3ntalsp00n/reload_countdown
showUpdate funciton allows updated messages
This commit is contained in:
commit
354bbd50a7
|
@ -780,8 +780,18 @@ var OCP = {},
|
||||||
// sometimes "beforeunload" happens later, so need to defer the reload a bit
|
// sometimes "beforeunload" happens later, so need to defer the reload a bit
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
if (!self._userIsNavigatingAway && !self._reloadCalled) {
|
if (!self._userIsNavigatingAway && !self._reloadCalled) {
|
||||||
OC.Notification.show(t('core', 'Problem loading page, reloading in 5 seconds'));
|
var timer = 0;
|
||||||
setTimeout(OC.reload, 5000);
|
var seconds = 5;
|
||||||
|
var interval = setInterval( function() {
|
||||||
|
OC.Notification.showUpdate(n('core', 'Problem loading page, reloading in %n second', 'Problem loading page, reloading in %n seconds', seconds - timer));
|
||||||
|
if (timer >= seconds) {
|
||||||
|
clearInterval(interval);
|
||||||
|
OC.reload();
|
||||||
|
}
|
||||||
|
timer++;
|
||||||
|
}, 1000 // 1 second interval
|
||||||
|
);
|
||||||
|
|
||||||
// only call reload once
|
// only call reload once
|
||||||
self._reloadCalled = true;
|
self._reloadCalled = true;
|
||||||
}
|
}
|
||||||
|
@ -1173,6 +1183,30 @@ OC.Notification={
|
||||||
return this.showHtml($('<div/>').text(text).html(), options);
|
return this.showHtml($('<div/>').text(text).html(), options);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates (replaces) a sanitized notification.
|
||||||
|
*
|
||||||
|
* @param {string} text Message to display
|
||||||
|
* @return {jQuery} JQuery element for notificaiton row
|
||||||
|
*/
|
||||||
|
showUpdate: function(text) {
|
||||||
|
var $notification = $('#notification');
|
||||||
|
// sanitise
|
||||||
|
var $html = $('<div/>').text(text).html();
|
||||||
|
|
||||||
|
// new notification
|
||||||
|
if (text && $notification.find('.row').length == 0) {
|
||||||
|
return this.showHtml($html);
|
||||||
|
}
|
||||||
|
|
||||||
|
var $row = $('<div class="row"></div>').prepend($html);
|
||||||
|
|
||||||
|
// just update html in notification
|
||||||
|
$notification.html($row);
|
||||||
|
|
||||||
|
return $row;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows a notification that disappears after x seconds, default is
|
* Shows a notification that disappears after x seconds, default is
|
||||||
* 7 seconds
|
* 7 seconds
|
||||||
|
|
|
@ -1000,7 +1000,7 @@ describe('Core base tests', function() {
|
||||||
describe('global ajax errors', function() {
|
describe('global ajax errors', function() {
|
||||||
var reloadStub, ajaxErrorStub, clock;
|
var reloadStub, ajaxErrorStub, clock;
|
||||||
var notificationStub;
|
var notificationStub;
|
||||||
var waitTimeMs = 6000;
|
var waitTimeMs = 6500;
|
||||||
var oldCurrentUser;
|
var oldCurrentUser;
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
|
@ -1075,10 +1075,12 @@ describe('Core base tests', function() {
|
||||||
it('displays notification', function() {
|
it('displays notification', function() {
|
||||||
var xhr = { status: 401 };
|
var xhr = { status: 401 };
|
||||||
|
|
||||||
|
notificationUpdateStub = sinon.stub(OC.Notification, 'showUpdate');
|
||||||
|
|
||||||
$(document).trigger(new $.Event('ajaxError'), xhr);
|
$(document).trigger(new $.Event('ajaxError'), xhr);
|
||||||
|
|
||||||
clock.tick(waitTimeMs);
|
clock.tick(waitTimeMs);
|
||||||
expect(notificationStub.calledOnce).toEqual(true);
|
expect(notificationUpdateStub.notCalled).toEqual(false);
|
||||||
});
|
});
|
||||||
it('shows a temporary notification if the connection is lost', function() {
|
it('shows a temporary notification if the connection is lost', function() {
|
||||||
var xhr = { status: 0 };
|
var xhr = { status: 0 };
|
||||||
|
|
Loading…
Reference in New Issue