web-apps/apps/documenteditor/main/index.html

370 lines
16 KiB
HTML
Raw Normal View History

2016-03-11 00:48:53 +00:00
<!doctype html>
<html>
<head>
<title>ONLYOFFICE Documents</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=IE8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<link rel="icon" href="resources/img/favicon.ico" type="image/x-icon">
<!-- splash -->
<style type="text/css">
2021-02-22 13:58:25 +00:00
.theme-dark {
--toolbar-header-document: #2a2a2a;
--background-toolbar: #404040;
--border-toolbar: #2a2a2a;
2021-06-28 14:26:13 +00:00
--highlight-button-hover: #555;
2021-05-08 21:39:17 +00:00
--highlight-header-button-hover: rgba(255,255,255,.05);
2021-11-04 19:44:24 +00:00
--canvas-background: #555;
2021-02-22 13:58:25 +00:00
/*--canvas-content-background: #fff;*/
--skeleton-canvas-page-border: #555;
2021-11-04 19:44:24 +00:00
}
.content-theme-dark {
--skeleton-canvas-content-background: #3a3a3a;
--skeleton-canvas-page-border: #2a2a2a;
--skeleton-canvas-line: rgba(255,255,255,.05);
2021-02-22 13:58:25 +00:00
}
2021-04-24 18:23:24 +00:00
.theme-classic-light {
2021-05-08 21:39:17 +00:00
}
.theme-light {
--background-toolbar: #f7f7f7;
/*--border-toolbar: #cbcbcb;*/
--highlight-button-hover: #ccc;
--highlight-header-button-hover: rgba(255,255,255,.15);
--canvas-background: #eee;
2021-11-04 19:44:24 +00:00
--loadmask-canvas-page-border: #ccc;
2021-04-24 18:23:24 +00:00
}
2016-03-11 00:48:53 +00:00
.loadmask {
left: 0;
top: 0;
position: absolute;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
2021-05-08 21:39:17 +00:00
background: #e2e2e2;
background: var(--canvas-background, #e2e2e2);
2021-10-08 07:51:28 +00:00
z-index: 1002;
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
.loadmask > .brendpanel {
2016-03-11 00:48:53 +00:00
width: 100%;
min-height: 28px;
2021-02-22 14:23:58 +00:00
background: #446995;
2021-02-22 13:58:25 +00:00
background: var(--toolbar-header-document, #446995);
}
2019-07-19 13:05:44 +00:00
.loadmask > .brendpanel > div {
display: flex;
align-items: center;
2019-10-21 13:58:34 +00:00
height: 28px;
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
.loadmask > .brendpanel .spacer {
margin-left: auto;
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
.loadmask > .brendpanel .loading-logo {
padding: 0 24px 0 12px;
max-width: 200px;
2019-07-19 13:05:44 +00:00
height: 20px;
2016-03-11 00:48:53 +00:00
}
2019-07-22 14:32:10 +00:00
.loadmask > .brendpanel .loading-logo > img {
display: inline-block;
2019-07-22 14:32:10 +00:00
max-width: 100px;
max-height: 20px;
2019-07-22 14:04:24 +00:00
opacity: 0;
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
.loadmask > .brendpanel .rect {
vertical-align: middle;
width: 50px;
height: 12px;
border-radius: 3px;
margin: 0 10px;
2021-05-08 21:39:17 +00:00
background: rgba(255,255,255,.2);
background: var(--highlight-header-button-hover, rgba(255,255,255,.2));
2016-03-11 00:48:53 +00:00
}
2019-10-02 14:55:15 +00:00
.loadmask > .sktoolbar {
2021-05-08 21:39:17 +00:00
background: #f1f1f1;
background: var(--background-toolbar, #f1f1f1);
2021-02-22 14:23:58 +00:00
border-bottom: 1px solid #cbcbcb;
2021-02-22 13:58:25 +00:00
border-bottom: var(--scaled-one-px-value, 1px) solid var(--border-toolbar, #cbcbcb);
2019-10-02 14:55:15 +00:00
height: 46px;
2020-12-23 17:22:31 +00:00
padding: 10px 6px;
2019-10-02 14:55:15 +00:00
box-sizing: content-box;
2016-03-11 00:48:53 +00:00
}
2019-10-02 14:55:15 +00:00
.loadmask > .sktoolbar ul {
margin: 0;
padding: 0;
white-space: nowrap;
position: relative;
2016-03-11 00:48:53 +00:00
}
2019-10-02 14:55:15 +00:00
.loadmask > .sktoolbar li {
2021-05-08 21:39:17 +00:00
background: #d8dadc;
background: var(--highlight-button-hover, #d8dadc);
2019-10-02 14:55:15 +00:00
border-radius: 3px;
width: 20px;
height: 20px;
display: inline-block;
margin-right: 6px;
2016-03-11 00:48:53 +00:00
}
2019-10-02 14:55:15 +00:00
.loadmask > .sktoolbar li.space {
background: none;
2020-12-23 17:22:31 +00:00
width: 0;
2016-03-11 00:48:53 +00:00
}
2019-10-02 14:55:15 +00:00
.loadmask > .sktoolbar li.fat {
position: absolute;
right: 0;
top: 0;
bottom: 0;
2020-12-23 17:22:31 +00:00
left: 525px;
2019-10-02 14:55:15 +00:00
width: inherit;
height: 44px;
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
.loadmask > .placeholder {
2021-02-22 14:23:58 +00:00
background: #fff;
2021-11-04 19:44:24 +00:00
background: var(--skeleton-canvas-content-background, #fff);
2019-11-22 14:58:21 +00:00
width: 794px;
2019-10-02 14:55:15 +00:00
margin: 46px auto;
2019-07-19 13:05:44 +00:00
height: 100%;
2021-05-08 21:39:17 +00:00
border: 1px solid #bbbec2;
2021-11-04 19:44:24 +00:00
border: var(--scaled-one-px-value, 1px) solid var(--skeleton-canvas-page-border, #bbbec2);
2019-07-19 13:05:44 +00:00
padding-top: 50px;
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
.loadmask > .placeholder > .line {
height: 15px;
margin: 30px 80px;
2021-11-04 19:44:24 +00:00
background: var(--skeleton-canvas-line, rgba(0,0,0,.05));
2019-07-19 13:05:44 +00:00
overflow: hidden;
position: relative;
2016-03-11 00:48:53 +00:00
2019-07-19 13:05:44 +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-07-19 13:05:44 +00:00
@keyframes flickerAnimation {
2019-10-21 13:58:34 +00:00
0% { opacity:0.5; }
2019-07-19 13:05:44 +00:00
50% { opacity:1; }
2019-10-21 13:58:34 +00:00
100% { opacity:0.5; }
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
@-o-keyframes flickerAnimation{
2019-10-21 13:58:34 +00:00
0% { opacity:0.5; }
2019-07-19 13:05:44 +00:00
50% { opacity:1; }
2019-10-21 13:58:34 +00:00
100% { opacity:0.5; }
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
@-moz-keyframes flickerAnimation{
2019-10-21 13:58:34 +00:00
0% { opacity:0.5; }
2019-07-19 13:05:44 +00:00
50% { opacity:1; }
2019-10-21 13:58:34 +00:00
100% { opacity:0.5; }
2016-03-11 00:48:53 +00:00
}
2019-07-19 13:05:44 +00:00
@-webkit-keyframes flickerAnimation{
2019-10-21 13:58:34 +00:00
0% { opacity:0.5; }
2019-07-19 13:05:44 +00:00
50% { opacity:1; }
2019-10-21 13:58:34 +00:00
100% { opacity:0.5; }
2016-03-11 00:48:53 +00:00
}
2021-02-10 20:42:55 +00:00
.pixel-ratio__1_5 {
--scaled-one-px-value: calc(1px / 1.5);
}
2016-03-11 00:48:53 +00:00
</style>
2017-07-04 15:15:09 +00:00
2016-03-11 00:48:53 +00:00
<script>
// don't add zoom for mobile devices
2021-01-20 21:05:31 +00:00
// if (!(/android|avantgo|playbook|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera)))
// document.getElementsByTagName('html')[0].setAttribute('style', 'zoom: ' + 1 / (window.devicePixelRatio < 2 ? window.devicePixelRatio : window.devicePixelRatio / 2) + ';');
2016-09-15 12:59:06 +00:00
var userAgent = navigator.userAgent.toLowerCase(),
check = function(regex){ return regex.test(userAgent); },
stopLoading = false;
if (!check(/opera/) && (check(/msie/) || check(/trident/))) {
var m = /msie (\d+\.\d+)/.exec(userAgent);
2018-02-20 10:45:35 +00:00
if (m && parseFloat(m[1]) < 10.0) {
2017-07-04 15:15:09 +00:00
document.write(
'<div class="app-error-panel">' +
'<div class="message-block">' +
'<div class="message-inner">' +
'<div class="title">Your browser is not supported.</div>' +
'<div class="text">Sorry, Document Editor is currently only supported in the latest versions of the Chrome, Firefox, Safari or Internet Explorer web browsers.</div>' +
'</div>' +
'</div>' +
'</div>');
2016-09-15 12:59:06 +00:00
stopLoading = true;
}
2019-04-29 15:03:21 +00:00
} else
if (check(/windows\snt/i)) {
var re = /chrome\/(\d+)/i.exec(userAgent);
2019-05-07 08:54:00 +00:00
if (!!re && !!re[1] && !(re[1] > 49)) {
2019-04-29 15:03:21 +00:00
setTimeout(function () {
document.getElementsByTagName('body')[0].className += "winxp";
},0);
}
2016-09-15 12:59:06 +00:00
}
2016-03-11 00:48:53 +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) {
2021-07-27 15:20:52 +00:00
return str.replace(/"/g, '&quot;')
2016-03-11 00:48:53 +00:00
.replace(/'/g, '&#39;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
var params = getUrlParams(),
lang = (params["lang"] || 'en').split(/[\-\_]/)[0],
2021-10-04 20:58:27 +00:00
logo = params["headerlogo"] ? encodeUrlParam(params["headerlogo"]) : null,
logoDark = params["headerlogodark"] ? encodeUrlParam(params["headerlogodark"]) : null;
window.frameEditorId = params["frameEditorId"];
2020-03-19 14:38:09 +00:00
window.parentOrigin = params["parentOrigin"];
2020-06-30 14:19:04 +00:00
2022-05-06 08:52:33 +00:00
if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) {
2020-06-30 14:19:04 +00:00
document.write('<script src="../../common/main/lib/util/fix-ie-compat.js"><\/script>');
2022-05-06 08:52:33 +00:00
document.write('<script src="../../../../sdkjs/vendor/string.js"><\/script>');
}
2016-03-11 00:48:53 +00:00
</script>
2021-06-25 08:53:43 +00:00
<script src="../../common/main/lib/util/themeinit.js"></script>
2016-03-11 00:48:53 +00:00
2017-07-04 15:15:09 +00:00
<!-- debug begin -->
<link rel="stylesheet/less" type="text/css" href="resources/less/app.less" />
<!-- debug end -->
</head>
<body>
2021-02-10 20:42:55 +00:00
<script src="../../common/main/lib/util/htmlutils.js"></script>
2019-10-04 08:01:51 +00:00
<div id="loading-mask" class="loadmask">
2021-02-11 12:52:38 +00:00
<div class="brendpanel" style="display: none;">
<div><div class="loading-logo"><img src="../../common/main/resources/img/header/header-logo_s.svg"></div><div class="spacer"></div><div class="rect"></div></div><div><span class="rect"></span><span class="rect"></span><span class="rect"></span><span class="rect"></span><span class="rect"></span><span class="rect"></span></div></div>
2021-02-11 12:52:38 +00:00
<div class="sktoolbar" style="display: none;">
2020-12-23 17:22:31 +00:00
<ul><li></li><li class="space"></li><li style="width: 209px;"></li><li class="space"></li><li style="width: 187px;"></li><li class="space"></li><li style="width: 60px;"></li><li class="fat"></li></ul>
<ul><li></li><li class="space"></li><li style="width: 209px;"></li><li class="space"></li><li style="width: 187px;"></li><li class="space"></li><li style="width: 60px;"></li></ul>
2019-10-04 08:01:51 +00:00
</div>
2021-02-11 12:52:38 +00:00
<div class="placeholder" style="display: none;">
2019-10-04 08:01:51 +00:00
<div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div><div class="line"></div>
</div>
</div>
2016-03-11 00:48:53 +00:00
<div id="viewport"></div>
2019-07-22 14:04:24 +00:00
<script>
var params = getUrlParams(),
notoolbar = params["toolbar"] == 'false',
2019-11-25 11:23:27 +00:00
compact = params["compact"] == 'true',
2021-02-11 12:52:38 +00:00
view = params["mode"] == 'view',
visible = true;
(compact || view || notoolbar) && document.querySelector('.brendpanel > :nth-child(2)').remove();
2019-11-25 11:23:27 +00:00
if (compact || view) {
if (notoolbar) {
document.querySelector('.brendpanel > :nth-child(1)').remove();
2021-02-11 12:52:38 +00:00
visible = false;
} else
document.querySelector('.brendpanel > :nth-child(1)').style.height = '32px';
} else if (notoolbar) {
document.querySelector('.brendpanel > :nth-child(1)').style.height = '28px';
2019-11-25 11:23:27 +00:00
}
2021-02-11 12:52:38 +00:00
visible && (document.querySelector('.brendpanel').style.display = 'block');
!(view && (params["toolbar"] !== 'true') || notoolbar) && (document.querySelector('.sktoolbar').style.display = 'block');
view && (document.querySelector('.placeholder').style.marginTop = '19px');
document.querySelector('.placeholder').style.display = 'block';
2019-07-22 14:04:24 +00:00
if (stopLoading) {
document.body.removeChild(document.getElementById('loading-mask'));
} else {
2019-07-22 14:32:10 +00:00
var elem = document.querySelector('.loading-logo img');
2019-07-22 14:04:24 +00:00
if (elem) {
2021-10-04 20:58:27 +00:00
(logo || logoDark) && elem.setAttribute('src', /theme-dark/.test(document.body.className) ? logoDark || logo : logo || logoDark);
2019-07-22 14:04:24 +00:00
elem.style.opacity = 1;
}
}
</script>
<script src="../../../vendor/svg-injector/svg-injector.min.js"></script>
<img class="inline-svg" src="../../common/main/resources/img/header/buttons.svg">
2018-02-01 14:15:56 +00:00
<img class="inline-svg" src="../../common/main/resources/img/header/buttons150.svg">
2019-04-01 13:10:35 +00:00
<img class="inline-svg" src="../../common/main/resources/img/toolbar/shapetypes.svg">
2020-01-31 10:53:58 +00:00
<img class="inline-svg" src="../../common/main/resources/img/toolbar/charttypes.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/docx.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/dotx.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/pdf.svg">
2018-07-18 11:07:24 +00:00
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/pdfa.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/txt.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/odt.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/ott.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/rtf.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/html.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/fb2.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/epub.svg">
2021-07-20 18:30:09 +00:00
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/docm.svg">
2021-10-08 16:54:58 +00:00
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/oform.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/docxf.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/djvu.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/xps.svg">
<img class="inline-svg" src="../../common/main/resources/img/doc-formats/oxps.svg">
2020-06-18 11:43:26 +00:00
<img class="inline-svg" src="resources/img/blank.svg">
2020-06-11 16:36:37 +00:00
<img class="inline-svg" src="resources/img/recent-file.svg">
2020-06-18 11:43:26 +00:00
<img class="inline-svg" src="resources/img/file-template.svg">
<script>
var svgpoints = document.querySelectorAll('img.inline-svg');
SVGInjector(svgpoints);
</script>
2017-04-20 14:46:14 +00:00
2016-03-11 00:48:53 +00:00
<!-- debug begin -->
2019-07-19 13:05:44 +00:00
<script type="text/javascript">var less=less||{};less.env='development';less.async=true;</script>
2019-10-18 08:33:36 +00:00
<script src="../../../vendor/less/dist/less.js" type="text/javascript"></script>
2016-03-11 00:48:53 +00:00
<!-- debug end -->
<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
2019-12-03 10:29:58 +00:00
<script type="text/javascript" src="../../../../sdkjs/develop/sdkjs/word/scripts.js"></script>
<script>
2019-12-03 10:29:58 +00:00
window.sdk_scripts.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 = 'Слишком медленное соединение, не удается загрузить некоторые компоненты. Пожалуйста, обновите страницу.';
2021-12-09 10:54:03 +00:00
else if ( lang == 'tr') reqerr = 'Bağlantı çok yavaş, bileşenlerin bazıları yüklenemedi. Lütfen sayfayı yenileyin.';
2017-06-23 13:42:18 +00:00
else reqerr = 'The connection is too slow, some of the components could not be loaded. Please reload the page.';
return reqerr;
};
</script>
2016-03-11 00:48:53 +00:00
<!-- application -->
<script data-main="app_dev" src="../../../vendor/requirejs/require.js"></script>
2016-03-11 00:48:53 +00:00
</body>
</html>