diff --git a/apps/common/embed/lib/view/LoadMask.js b/apps/common/embed/lib/view/LoadMask.js
index 901114b5a3..87f15409b3 100644
--- a/apps/common/embed/lib/view/LoadMask.js
+++ b/apps/common/embed/lib/view/LoadMask.js
@@ -66,6 +66,7 @@ common.view.LoadMask = function(owner) {
// show mask after 500 ms if it wont be hided
if (!rendered) {
+ rendered = true;
timerId = setTimeout(function () {
ownerEl.append(maskedEl);
ownerEl.append(loaderEl);
@@ -83,6 +84,7 @@ common.view.LoadMask = function(owner) {
maskedEl && maskedEl.remove();
loaderEl && loaderEl.remove();
maskedEl = loaderEl = null;
+ rendered = false;
},
setTitle: function(text) {
diff --git a/apps/presentationeditor/embed/index.html b/apps/presentationeditor/embed/index.html
index b0baf09201..991f9b6274 100644
--- a/apps/presentationeditor/embed/index.html
+++ b/apps/presentationeditor/embed/index.html
@@ -273,11 +273,6 @@
-
-
@@ -307,6 +302,7 @@
+
diff --git a/apps/presentationeditor/embed/index.html.deploy b/apps/presentationeditor/embed/index.html.deploy
index 5db22646cd..a3a0347ab1 100644
--- a/apps/presentationeditor/embed/index.html.deploy
+++ b/apps/presentationeditor/embed/index.html.deploy
@@ -267,11 +267,6 @@
-
-
diff --git a/apps/presentationeditor/embed/index_loader.html b/apps/presentationeditor/embed/index_loader.html
index 5d725ac73e..e90de1d353 100644
--- a/apps/presentationeditor/embed/index_loader.html
+++ b/apps/presentationeditor/embed/index_loader.html
@@ -322,11 +322,6 @@
-
-
@@ -349,6 +344,7 @@
+
diff --git a/apps/presentationeditor/embed/index_loader.html.deploy b/apps/presentationeditor/embed/index_loader.html.deploy
index cb929d1b14..ee5f914c6d 100644
--- a/apps/presentationeditor/embed/index_loader.html.deploy
+++ b/apps/presentationeditor/embed/index_loader.html.deploy
@@ -315,11 +315,6 @@
-
-
diff --git a/apps/presentationeditor/embed/js/ApplicationController.js b/apps/presentationeditor/embed/js/ApplicationController.js
index 6f4ca8d876..78df5f6a25 100644
--- a/apps/presentationeditor/embed/js/ApplicationController.js
+++ b/apps/presentationeditor/embed/js/ApplicationController.js
@@ -43,6 +43,8 @@ PE.ApplicationController = new(function(){
ttOffset = [0, -10],
labelDocName;
+ var LoadingDocument = -256;
+
// Initialize analytics
// -------------------------
@@ -156,19 +158,24 @@ PE.ApplicationController = new(function(){
case Asc.c_oAscAsyncAction['Print']:
text = me.downloadTextText;
break;
+ case LoadingDocument:
+ text = me.textLoadingDocument + ' ';
+ break;
default:
text = me.waitText;
break;
}
if (type == Asc.c_oAscAsyncActionType['BlockInteraction']) {
- $('#id-loadmask .cmd-loader-title').html(text);
- showMask();
+ if (!me.loadMask)
+ me.loadMask = new common.view.LoadMask();
+ me.loadMask.setTitle(text);
+ me.loadMask.show();
}
}
function onLongActionEnd(){
- hideMask();
+ me.loadMask && me.loadMask.hide();
}
function onDocMouseMoveStart() {
@@ -244,6 +251,7 @@ PE.ApplicationController = new(function(){
onPlayStart();
}
hidePreloader();
+ onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
var zf = (config.customization && config.customization.zoom ? parseInt(config.customization.zoom) : -1);
(zf == -1) ? api.zoomFitToPage() : ((zf == -2) ? api.zoomFitToWidth() : api.zoom(zf>0 ? zf : 100));
@@ -469,6 +477,7 @@ PE.ApplicationController = new(function(){
else
$parent.css('padding-right', _left_width - _right_width);
+ onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
api.asc_setViewMode(true);
api.asc_LoadDocument();
api.Resize();
@@ -476,7 +485,7 @@ PE.ApplicationController = new(function(){
function onOpenDocument(progress) {
var proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
- $('#loadmask-text').html(me.textLoadingDocument + ': ' + Math.min(Math.round(proc * 100), 100) + '%');
+ me.loadMask && me.loadMask.setTitle(me.textLoadingDocument + ': ' + common.utils.fixedDigits(Math.min(Math.round(proc*100), 100), 3, " ") + '%');
}
var isplaymode;
@@ -505,17 +514,6 @@ PE.ApplicationController = new(function(){
$('#page-number').val(number);
}
- function showMask() {
- $('#id-loadmask').modal({
- backdrop: 'static',
- keyboard: false
- });
- }
-
- function hideMask() {
- $('#id-loadmask').modal('hide');
- }
-
function onError(id, level, errData) {
if (id == Asc.c_oAscError.ID.LoadingScriptError) {
$('#id-critical-error-title').text(me.criticalErrorTitle);
@@ -528,7 +526,8 @@ PE.ApplicationController = new(function(){
}
hidePreloader();
-
+ onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
+
var message;
switch (id)
diff --git a/apps/spreadsheeteditor/embed/index.html b/apps/spreadsheeteditor/embed/index.html
index a7eb4880a3..c21511fc46 100644
--- a/apps/spreadsheeteditor/embed/index.html
+++ b/apps/spreadsheeteditor/embed/index.html
@@ -246,11 +246,6 @@
-
-
@@ -283,6 +278,7 @@
+
diff --git a/apps/spreadsheeteditor/embed/index.html.deploy b/apps/spreadsheeteditor/embed/index.html.deploy
index 13573b7032..50678b73f0 100644
--- a/apps/spreadsheeteditor/embed/index.html.deploy
+++ b/apps/spreadsheeteditor/embed/index.html.deploy
@@ -238,11 +238,6 @@
-
-
diff --git a/apps/spreadsheeteditor/embed/index_loader.html b/apps/spreadsheeteditor/embed/index_loader.html
index f703fe3023..dffe443058 100644
--- a/apps/spreadsheeteditor/embed/index_loader.html
+++ b/apps/spreadsheeteditor/embed/index_loader.html
@@ -321,11 +321,6 @@
-
-
@@ -351,6 +346,7 @@
+
diff --git a/apps/spreadsheeteditor/embed/index_loader.html.deploy b/apps/spreadsheeteditor/embed/index_loader.html.deploy
index 56166bc855..0971259833 100644
--- a/apps/spreadsheeteditor/embed/index_loader.html.deploy
+++ b/apps/spreadsheeteditor/embed/index_loader.html.deploy
@@ -313,11 +313,6 @@
-
-
diff --git a/apps/spreadsheeteditor/embed/js/ApplicationController.js b/apps/spreadsheeteditor/embed/js/ApplicationController.js
index e2a5a70311..c2dd584dae 100644
--- a/apps/spreadsheeteditor/embed/js/ApplicationController.js
+++ b/apps/spreadsheeteditor/embed/js/ApplicationController.js
@@ -45,6 +45,8 @@ SSE.ApplicationController = new(function(){
ttOffset = [6, -15],
labelDocName;
+ var LoadingDocument = -256;
+
// Initialize analytics
// -------------------------
@@ -196,6 +198,7 @@ SSE.ApplicationController = new(function(){
function onDocumentContentReady() {
hidePreloader();
+ onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
if ( permissions.print === false)
$('#idt-print').hide();
@@ -230,6 +233,7 @@ SSE.ApplicationController = new(function(){
api.asc_registerCallback('asc_onDownloadUrl', onDownloadUrl);
api.asc_registerCallback('asc_onPrint', onPrint);
api.asc_registerCallback('asc_onPrintUrl', onPrintUrl);
+ api.asc_registerCallback('asc_onStartAction', onLongActionBegin);
Common.Gateway.on('processmouse', onProcessMouse);
Common.Gateway.on('downloadas', onDownloadAs);
@@ -371,24 +375,14 @@ SSE.ApplicationController = new(function(){
else
$parent.css('padding-right', _left_width - _right_width);
+ onLongActionBegin(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
api.asc_setViewMode(true);
api.asc_LoadDocument();
}
- function showMask() {
- $('#id-loadmask').modal({
- backdrop: 'static',
- keyboard: false
- });
- }
-
- function hideMask() {
- $('#id-loadmask').modal('hide');
- }
-
function onOpenDocument(progress) {
var proc = (progress.asc_getCurrentFont() + progress.asc_getCurrentImage())/(progress.asc_getFontsCount() + progress.asc_getImagesCount());
- $('#loadmask-text').html(me.textLoadingDocument + ': ' + Math.min(Math.round(proc * 100), 100) + '%');
+ me.loadMask && me.loadMask.setTitle(me.textLoadingDocument + ': ' + common.utils.fixedDigits(Math.min(Math.round(proc*100), 100), 3, " ") + '%');
}
function onLongActionBegin(type, id){
@@ -398,14 +392,19 @@ SSE.ApplicationController = new(function(){
case Asc.c_oAscAsyncAction['Print']:
text = me.downloadTextText;
break;
+ case LoadingDocument:
+ text = me.textLoadingDocument + ' ';
+ break;
default:
text = me.waitText;
break;
}
if (type == Asc.c_oAscAsyncActionType['BlockInteraction']) {
- $('#id-loadmask .cmd-loader-title').html(text);
- showMask();
+ if (!me.loadMask)
+ me.loadMask = new common.view.LoadMask();
+ me.loadMask.setTitle(text);
+ me.loadMask.show();
}
}
@@ -424,7 +423,7 @@ SSE.ApplicationController = new(function(){
break;
}
- hideMask();
+ me.loadMask && me.loadMask.hide();
}
}
@@ -440,6 +439,7 @@ SSE.ApplicationController = new(function(){
}
hidePreloader();
+ onLongActionEnd(Asc.c_oAscAsyncActionType['BlockInteraction'], LoadingDocument);
var message;
@@ -625,7 +625,6 @@ SSE.ApplicationController = new(function(){
});
if (api){
- api.asc_registerCallback('asc_onStartAction', onLongActionBegin);
api.asc_registerCallback('asc_onEndAction', onLongActionEnd);
api.asc_registerCallback('asc_onError', onError);
api.asc_registerCallback('asc_onOpenDocumentProgress', onOpenDocument);
diff --git a/build/presentationeditor.json b/build/presentationeditor.json
index ccddf34cdf..14f0dd7395 100644
--- a/build/presentationeditor.json
+++ b/build/presentationeditor.json
@@ -416,6 +416,7 @@
"../apps/common/Analytics.js",
"../apps/common/embed/lib/util/LocalStorage.js",
"../apps/common/embed/lib/util/utils.js",
+ "../apps/common/embed/lib/view/LoadMask.js",
"../apps/common/embed/lib/view/modals.js",
"../apps/common/embed/lib/controller/modals.js",
"../apps/presentationeditor/embed/js/ApplicationView.js",
diff --git a/build/spreadsheeteditor.json b/build/spreadsheeteditor.json
index 8d3be3fb9f..67a466ff37 100644
--- a/build/spreadsheeteditor.json
+++ b/build/spreadsheeteditor.json
@@ -429,6 +429,7 @@
"../apps/common/Analytics.js",
"../apps/common/embed/lib/util/LocalStorage.js",
"../apps/common/embed/lib/util/utils.js",
+ "../apps/common/embed/lib/view/LoadMask.js",
"../apps/common/embed/lib/view/modals.js",
"../apps/common/embed/lib/controller/modals.js",
"../apps/spreadsheeteditor/embed/js/ApplicationView.js",