2016-03-11 00:48:53 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
|
|
|
<head>
|
2016-11-18 16:21:25 +00:00
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
|
|
|
|
|
|
<title>ONLYOFFICE Spreadsheets</title>
|
|
|
|
|
2016-11-21 13:36:00 +00:00
|
|
|
<link rel="stylesheet" type="text/css" href="../../../../sdkjs/cell/css/main-mobile.css"/>
|
2017-02-06 14:42:54 +00:00
|
|
|
<link href="https://fonts.googleapis.com/css?family=Roboto:400,300,500,700" rel="stylesheet" type="text/css">
|
2016-11-18 16:21:25 +00:00
|
|
|
<!-- App styles -->
|
|
|
|
|
|
|
|
<!-- splash -->
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
<style type="text/css">
|
2019-10-04 14:12:54 +00:00
|
|
|
|
2016-03-11 00:48:53 +00:00
|
|
|
.loadmask {
|
|
|
|
position: absolute;
|
|
|
|
left: 0;
|
|
|
|
top: 0;
|
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
|
|
|
overflow: hidden;
|
|
|
|
border: none;
|
|
|
|
background-color: #f4f4f4;
|
2019-10-04 14:12:54 +00:00
|
|
|
z-index: 10000;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel {
|
2016-03-11 00:48:53 +00:00
|
|
|
width: 100%;
|
|
|
|
position: absolute;
|
2019-10-04 14:12:54 +00:00
|
|
|
height: 44px;
|
|
|
|
background-color: #e2e2e2;
|
|
|
|
opacity: 0;
|
2016-09-14 09:45:10 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel.visible {
|
|
|
|
opacity: 1;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel.android {
|
|
|
|
height: 56px;
|
|
|
|
background: #40865c;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel > div {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
height: 100%;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel .loading-logo {
|
|
|
|
max-width: 200px;
|
|
|
|
height: 20px;
|
|
|
|
margin: 0 auto;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel .loading-logo > img {
|
|
|
|
display: inline-block;
|
|
|
|
max-width: 100px;
|
|
|
|
max-height: 20px;
|
|
|
|
opacity: 0;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .brendpanel .circle {
|
|
|
|
vertical-align: middle;
|
|
|
|
width: 28px;
|
|
|
|
height: 28px;
|
|
|
|
border-radius: 14px;
|
|
|
|
margin: 4px 10px;
|
|
|
|
background: rgba(255, 255, 255, 0.2);
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .placeholder {
|
|
|
|
background: #fbfbfb;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
border: 1px solid #dfdfdf;
|
|
|
|
white-space: nowrap;
|
|
|
|
padding-top: 43px;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .placeholder.android {
|
|
|
|
padding-top: 56px;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .placeholder > .columns {
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
display: inline-block;
|
|
|
|
background: linear-gradient(90deg, #d5d5d5 0px, rgba(0,0,0,0) 1px) 0 0,
|
|
|
|
linear-gradient(rgba(0,255,0,0) 19px, #d5d5d5 20px) 0 0,
|
|
|
|
linear-gradient( #f1f1f1 0px, #f1f1f1 20px) 0 0 repeat-x;
|
|
|
|
background-size: 80px 20px;
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
-webkit-animation: flickerAnimation 2s infinite ease-in-out;
|
|
|
|
-moz-animation: flickerAnimation 2s infinite ease-in-out;
|
|
|
|
-o-animation: flickerAnimation 2s infinite ease-in-out;
|
|
|
|
animation: flickerAnimation 2s infinite ease-in-out;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
.loadmask > .placeholder > .columns:first-child {
|
|
|
|
position: absolute;
|
|
|
|
background: linear-gradient(#f1f1f1 19px, #d5d5d5 20px) 0 0;
|
|
|
|
background-size: 20px 20px;
|
|
|
|
width: 35px;
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
@keyframes flickerAnimation {
|
|
|
|
0% { opacity:1; }
|
|
|
|
50% { opacity:0.3; }
|
|
|
|
100% { opacity:1; }
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
2019-10-04 14:12:54 +00:00
|
|
|
@-o-keyframes flickerAnimation{
|
|
|
|
0% { opacity:1; }
|
|
|
|
50% { opacity:0.3; }
|
|
|
|
100% { opacity:1; }
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
2019-10-04 14:12:54 +00:00
|
|
|
@-moz-keyframes flickerAnimation{
|
|
|
|
0% { opacity:1; }
|
|
|
|
50% { opacity:0.3; }
|
|
|
|
100% { opacity:1; }
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
2019-10-04 14:12:54 +00:00
|
|
|
@-webkit-keyframes flickerAnimation{
|
|
|
|
0% { opacity:1; }
|
|
|
|
50% { opacity:0.3; }
|
|
|
|
100% { opacity:1; }
|
2016-03-11 00:48:53 +00:00
|
|
|
}
|
|
|
|
</style>
|
2016-11-18 16:21:25 +00:00
|
|
|
</head>
|
|
|
|
<body>
|
2019-10-04 14:12:54 +00:00
|
|
|
<div id="loading-mask" class="loadmask">
|
|
|
|
<div class="brendpanel">
|
|
|
|
<div>
|
|
|
|
<div class="circle"></div>
|
|
|
|
<div class="loading-logo">
|
|
|
|
<img src="../../common/mobile/resources/img/header/header-logo.png">
|
|
|
|
</div>
|
|
|
|
<div class="circle"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="placeholder">
|
|
|
|
<div class="columns"></div>
|
|
|
|
<div class="columns"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-03-11 00:48:53 +00:00
|
|
|
<script type="text/javascript">
|
2016-11-18 16:21:25 +00:00
|
|
|
function getUrlParams() {
|
|
|
|
var e,
|
|
|
|
a = /\+/g, // Regex for replacing addition symbol with a space
|
|
|
|
r = /([^&=]+)=?([^&]*)/g,
|
|
|
|
d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
|
|
|
|
q = window.location.search.substring(1),
|
|
|
|
urlParams = {};
|
|
|
|
|
|
|
|
while (e = r.exec(q))
|
|
|
|
urlParams[d(e[1])] = d(e[2]);
|
|
|
|
|
|
|
|
return urlParams;
|
|
|
|
}
|
|
|
|
|
|
|
|
function encodeUrlParam(str) {
|
|
|
|
return str.replace(/&/g, '&')
|
|
|
|
.replace(/"/g, '"')
|
|
|
|
.replace(/'/g, ''')
|
|
|
|
.replace(/</g, '<')
|
|
|
|
.replace(/>/g, '>');
|
|
|
|
}
|
|
|
|
|
|
|
|
var params = getUrlParams(),
|
2018-01-24 11:40:59 +00:00
|
|
|
lang = (params["lang"] || 'en').split(/[\-\_]/)[0],
|
2019-10-04 14:12:54 +00:00
|
|
|
logo = params["headerlogo"] ? encodeUrlParam(params["headerlogo"]) : null;
|
2016-11-18 16:21:25 +00:00
|
|
|
|
2017-01-23 11:04:37 +00:00
|
|
|
window.frameEditorId = params["frameEditorId"];
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2019-10-04 14:12:54 +00:00
|
|
|
var brendpanel = document.getElementsByClassName('brendpanel')[0];
|
|
|
|
if (brendpanel) {
|
|
|
|
if (/Android/.test(navigator.userAgent)) {
|
|
|
|
brendpanel.classList.add('android');
|
|
|
|
}
|
|
|
|
brendpanel.classList.add('visible');
|
|
|
|
var elem = document.querySelector('.loading-logo img');
|
|
|
|
if (elem) {
|
|
|
|
logo && (elem.setAttribute('src', logo));
|
|
|
|
elem.style.opacity = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var placeholder = document.getElementsByClassName('placeholder')[0];
|
|
|
|
if (placeholder && /Android/.test(navigator.userAgent)) {
|
|
|
|
placeholder.classList.add('android');
|
|
|
|
}
|
2016-03-11 00:48:53 +00:00
|
|
|
</script>
|
|
|
|
|
2016-11-18 16:21:25 +00:00
|
|
|
<div id="viewport"></div>
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2016-11-18 16:21:25 +00:00
|
|
|
<script type="text/javascript" src="../../../vendor/jquery/jquery.min.js"></script>
|
|
|
|
<script type="text/javascript" src="../../../vendor/xregexp/xregexp-all-min.js"></script>
|
2016-03-11 00:48:53 +00:00
|
|
|
|
2016-05-13 11:23:09 +00:00
|
|
|
<script type="text/javascript" src="../sdk_dev_scripts.js"></script>
|
|
|
|
<script>
|
2019-03-21 06:35:50 +00:00
|
|
|
var ua = navigator.userAgent;
|
2019-03-15 15:06:54 +00:00
|
|
|
|
2019-03-21 06:35:50 +00:00
|
|
|
if (/Sailfish/.test(ua) || /Jolla/.test(ua)) {
|
2019-03-21 07:17:38 +00:00
|
|
|
document.write('<script type="text/javascript" src="../../../vendor/iscroll/iscroll.min.js"><\/script>');
|
2019-03-21 06:35:50 +00:00
|
|
|
|
2019-04-02 13:23:47 +00:00
|
|
|
if (!/Android/.test(ua)) {
|
2019-03-21 06:35:50 +00:00
|
|
|
var ua = navigator.userAgent + ';Android 5.0;';
|
|
|
|
Object.defineProperty(navigator, 'userAgent', {
|
|
|
|
get: function () { return ua; }
|
|
|
|
});
|
|
|
|
}
|
2019-03-15 15:06:54 +00:00
|
|
|
}
|
|
|
|
|
2016-05-13 11:23:09 +00:00
|
|
|
window.sdk_dev_scrpipts.forEach(function(item){
|
|
|
|
document.write('<script type="text/javascript" src="' + item + '"><\/script>');
|
|
|
|
});
|
2017-06-23 13:42:18 +00:00
|
|
|
|
|
|
|
window.requireTimeourError = function(){
|
|
|
|
var reqerr;
|
|
|
|
|
|
|
|
if ( lang == 'de') reqerr = 'Die Verbindung ist zu langsam, einige Komponenten konnten nicht geladen werden. Aktualisieren Sie bitte die Seite.';
|
|
|
|
else if ( lang == 'es') reqerr = 'La conexión es muy lenta, algunos de los componentes no han podido cargar. Por favor recargue la página.';
|
|
|
|
else if ( lang == 'fr') reqerr = 'La connexion est trop lente, certains des composants n\'ons pas pu être chargé. Veuillez recharger la page.';
|
|
|
|
else if ( lang == 'ru') reqerr = 'Слишком медленное соединение, не удается загрузить некоторые компоненты. Пожалуйста, обновите страницу.';
|
|
|
|
else reqerr = 'The connection is too slow, some of the components could not be loaded. Please reload the page.';
|
|
|
|
|
|
|
|
return reqerr;
|
|
|
|
};
|
2016-05-13 11:23:09 +00:00
|
|
|
</script>
|
2016-11-18 16:21:25 +00:00
|
|
|
<!-- application -->
|
|
|
|
<script data-main="app-dev" src="../../../vendor/requirejs/require.js"></script>
|
2016-03-11 00:48:53 +00:00
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|