init repo

This commit is contained in:
nikolay ivanov
2014-07-05 18:22:49 +00:00
commit a8be6b9e72
17348 changed files with 9229832 additions and 0 deletions

View File

@@ -0,0 +1,272 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Documents</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- splash -->
<style type="text/css">
.loadmask {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
background-color: #f4f4f4;
z-index: 20002;
}
.loadmask-body {
position:relative;
top:44%;
}
.loadmask-logo {
display:inline-block;
min-width:220px;
height: 62px;
vertical-align:top;
background-image:url('./resources/img/loading-logo.gif');
background-repeat:no-repeat;
}
#loadmask-text {
color: #b2b2b2;
font-size: 10px;
font-weight: bold;
font-family: Arial;
height:14px;
margin-top:32px;
padding-left:40px;
text-align:left;
text-transform: uppercase;
}
</style>
<link href="../../../3rdparty/bootstrap/css/bootstrap.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body class="embed-body">
<!--facebook button-->
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<!--twitter button-->
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<div id="loading-mask" class="loadmask">
<div class="loadmask-body" align="center">
<div class="loadmask-logo">
<!-- <div id="loadmask-text">LOADING APPLICATION</div> -->
</div>
</div>
</div>
<div class="viewer">
<div id="editor_sdk" class="sdk-view" style="overflow: hidden;"></div>
<ul id="worksheets" class="worksheet-list"></ul>
</div>
<div class="overlay-controls" style="margin-left: -32px">
<ul class="left" style="width: 90px;">
<li id="id-btn-zoom-in"><button class="overlay"><i class="overlay-icon-zoom-in"></i></button></li>
<li style="width: 10px"></li>
<li id="id-btn-zoom-out"><button class="overlay"><i class="overlay-icon-zoom-out"></i></button></li>
</ul>
</div>
<div class="toolbar" id="toolbar">
<ul class="left">
<li><a class="brand-logo" href="http://www.onlyoffice.com/" target="_blank"></a></li>
<li class="separator"></li>
<li id="id-btn-copy"><button class="control-btn"><i class="control-icon-save"></i><span>Save Copy</span></button></li>
<li id="id-btn-share"><button class="control-btn"><i class="control-icon-share"></i><span>Share</span></button></li>
<li id="id-btn-embed"><button class="control-btn"><i class="control-icon-embed"></i><span>Embed</span></button></li>
</ul>
<ul class="right">
<li><button id="id-btn-fullscreen" class="control-btn no-caption"><i class="control-icon-fullscreen"></i></button></li>
<li><button id="id-btn-close" class="control-btn no-caption"><i class="control-icon-close"></i></button></li>
</ul>
</div>
<div class="error modal hide" id="id-critical-error-dialog" tabindex="-1" role="dialog">
<div class="modal-header">
<h3 id="id-critical-error-title"></h3>
</div>
<div class="modal-body">
<p id="id-critical-error-message"></p>
</div>
<div class="modal-footer">
<button id="id-critical-error-close" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
<div id="id-loadmask" class="hide modal cmd-loader-body">
<div class="cmd-loader-image"></div>
<div class="cmd-loader-title">Please wait...</div>
</div>
<!--3td party-->
<script type="text/javascript" src="../../../3rdparty/jquery/jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/jquery/mousewheel/jquery.mousewheel.js"></script>
<script type="text/javascript" src="../../../3rdparty/bootstrap/js/bootstrap.js"></script>
<script type="text/javascript" src="../../../3rdparty/ZeroClipboard/ZeroClipboard.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../../../3rdparty/sockjs/sockjs-0.3.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/underscore/underscore-min.js"></script>
<!--sdk-->
<link rel="stylesheet" type="text/css" href="../../../sdk/Excel/css/main.css"/>
<script type="text/javascript" src="../../../sdk/Common/docscoapisettings.js"></script>
<script type="text/javascript" src="../../../sdk/Common/AllFonts.js"></script>
<script type="text/javascript" src="../../../sdk/Common/browser.js"></script>
<script type="text/javascript" src="../../../sdk/Common/docscoapisettings.js"></script>
<script type="text/javascript" src="../../../sdk/Common/docscoapicommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/docscoapi.js"></script>
<script type="text/javascript" src="../../../sdk/Common/downloaderfiles.js"></script>
<script type="text/javascript" src="../../../sdk/Common/apiCommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/commonDefines.js"></script>
<script type="text/javascript" src="../../../sdk/Common/editorscommon.js"></script>
<script type="text/javascript" src="../../../sdk/Common/NumFormat.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Charts/charts.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Charts/DrawingObjects.js"></script>
<script type="text/javascript" src="../../../sdk/Common/FontsFreeType/font_engine.js"></script>
<script type="text/javascript" src="../../../sdk/Common/FontsFreeType/FontFile.js"></script>
<script type="text/javascript" src="../../../sdk/Common/FontsFreeType/FontManager.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/HatchPattern.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Externals.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Graphics.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/Metafile.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/GlobalLoaders.js"></script>
<script type="text/javascript" src="../../../sdk/Common/trackFile.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/apiDefines.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/offlinedocs/test-workbook9/Editor.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/offlinedocs/empty-workbook.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/utils/utils.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/clipboard.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/autofilters.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/graphics/DrawingContext.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/graphics/pdfprinter.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/CollaborativeEditing.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/ConditionalFormatting.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/parserFormula.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/dateandtimeFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/engineeringFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/cubeFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/databaseFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/textanddataFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/statisticalFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/financialFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/mathematicFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/lookupandreferenceFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/informationFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/FormulaObjects/logicalFunctions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/Serialize.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/WorkbookElems.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/Workbook.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/CellInfo.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/AdvancedOptions.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/History.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/UndoRedo.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/CellComment.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/StringRender.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/CellTextRender.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/CellEditorView.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/WorksheetView.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/HandlerList.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/EventsController.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/view/WorkbookView.js"></script>
<script type="text/javascript" src="../../../sdk/Common/scroll.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/ColorArray.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Shapes/EditorSettings.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Shapes/Serialize.js"></script>
<script type="text/javascript" src="../../../sdk/Common/Shapes/SerializeWriter.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/SerializeCommon.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Format.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/GraphicObjects/ObjectTypes/CreateGeometry.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Geometry.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Path.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Editor/GraphicObjects/Math.js"></script>
<script type="text/javascript" src="../../../sdk/Word/Drawing/ArcTo.js"></script>
<script type="text/javascript" src="../../../sdk/Common/SerializeCommonWordExcel.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/DrawingObjectsController.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/States.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/GroupShape.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Image.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Shape.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/TextBody.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Styles.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Numbering.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/ParagraphContent.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Paragraph.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/DocumentContent.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/FontClassification.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/Chart.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/ChartLayout.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/ChartLegend.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Format/ChartTitle.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/AdjustmentTracks.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/ResizeTracks.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/RotateTracks.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/NewShapeTracks.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/PolyLine.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/Spline.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Tracks/MoveTracks.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Hit.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Controls.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Graphics.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/Overlay.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/GlobalCounters.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/DrawingDocument.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/model/DrawingObjects/ShapeDrawer.js"></script>
<script type="text/javascript" src="../../../sdk/Word/apiCommon.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/api.js"></script>
<!--application-->
<link href="resources/css/application.css" rel="stylesheet">
<script type="text/javascript" src="../../common/Gateway.js"></script>
<script type="text/javascript" src="../../common/Analytics.js"></script>
<script type="text/javascript" src="js/ApplicationView.js"></script>
<script type="text/javascript" src="js/ApplicationController.js"></script>
<script type="text/javascript" src="js/application.js"></script>
<script type="text/javascript">
var isBrowserSupported = function() {
return ($.browser.msie && parseFloat($.browser.version) > 8) ||
($.browser.chrome && parseFloat($.browser.version) > 7) ||
($.browser.safari && parseFloat($.browser.version) > 4) ||
($.browser.opera && parseFloat($.browser.version) > 10.4) ||
($.browser.mozilla && parseFloat($.browser.version) > 3.9);
};
if (!isBrowserSupported()){
document.write(
'<div id="id-error-mask" class="errormask">',
'<div class="error-body" align="center">',
'<div id="id-error-mask-title" class="title">Your browser is not supported.</div>',
'<div id="id-error-mask-text">Sorry, ONLYOFFICE Document is currently only supported in the latest versions of the Chrome, Firefox, Safari or Internet Explorer web browsers.</div>',
'</div>',
'</div>'
);
}
</script>
</body>
</html>

View File

@@ -0,0 +1,166 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Documents</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<meta name="description" content="">
<meta name="author" content="">
<!-- splash -->
<style type="text/css">
.loadmask {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
background-color: #f4f4f4;
z-index: 20002;
}
.loadmask-body {
position:relative;
top:44%;
}
.loadmask-logo {
display:inline-block;
min-width:220px;
height: 62px;
vertical-align:top;
background-image:url('./resources/img/loading-logo.gif');
background-repeat:no-repeat;
}
#loadmask-text {
color: #b2b2b2;
font-size: 10px;
font-weight: bold;
font-family: Arial;
height:14px;
margin-top:32px;
padding-left:40px;
text-align:left;
text-transform: uppercase;
}
</style>
<link href="../../../3rdparty/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body class="embed-body">
<!--facebook button-->
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<!--twitter button-->
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<div id="loading-mask" class="loadmask">
<div class="loadmask-body" align="center">
<div class="loadmask-logo">
<!-- <div id="loadmask-text">LOADING APPLICATION</div> -->
</div>
</div>
</div>
<div id="editor_sdk" class="viewer" style="overflow: hidden;"></div>
<div class="overlay-controls" style="margin-left: -32px">
<ul class="left" style="width: 90px;">
<li id="id-btn-zoom-in"><button class="overlay"><i class="overlay-icon-zoom-in"></i></button></li>
<li style="width: 10px"></li>
<li id="id-btn-zoom-out"><button class="overlay"><i class="overlay-icon-zoom-out"></i></button></li>
</ul>
</div>
<div class="toolbar" id="toolbar">
<ul class="left">
<li><a class="brand-logo" href="http://www.onlyoffice.com/" target="_blank"></a></li>
<li class="separator"></li>
<li id="id-btn-copy"><button class="control-btn"><i class="control-icon-save"></i><span>Save Copy</span></button></li>
<li id="id-btn-share"><button class="control-btn"><i class="control-icon-share"></i><span>Share</span></button></li>
<li id="id-btn-embed"><button class="control-btn"><i class="control-icon-embed"></i><span>Embed</span></button></li>
</ul>
<ul class="right">
<li><input id="page-number" style="width: 25px" type="text" value="0"><span class="text" id="pages">of 0</span></li>
<li class="separator"></li>
<li><button id="id-btn-fullscreen" class="control-btn no-caption"><i class="control-icon-fullscreen"></i></button></li>
<li><button id="id-btn-close" class="control-btn no-caption"><i class="control-icon-close"></i></button></li>
</ul>
</div>
<div class="error modal hide" id="id-critical-error-dialog" tabindex="-1" role="dialog">
<div class="modal-header">
<h3 id="id-critical-error-title"></h3>
</div>
<div class="modal-body">
<p id="id-critical-error-message"></p>
</div>
<div class="modal-footer">
<button id="id-critical-error-close" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Close</button>
</div>
</div>
<div id="id-loadmask" class="hide modal cmd-loader-body">
<div class="cmd-loader-image"></div>
<div class="cmd-loader-title">Please wait...</div>
</div>
<!--3td party-->
<script type="text/javascript" src="../../../3rdparty/jquery/jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/jquery/mousewheel/jquery.mousewheel.js"></script>
<script type="text/javascript" src="../../../3rdparty/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/ZeroClipboard/ZeroClipboard.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/xregexp/xregexp-all-min.js"></script>
<script type="text/javascript" src="../../../3rdparty/sockjs/sockjs-0.3.min.js"></script>
<script type="text/javascript" src="../../../3rdparty/underscore/underscore-min.js"></script>
<!--sdk-->
<link rel="stylesheet" type="text/css" href="../../../sdk/Excel/css/main.css"/>
<script type="text/javascript" src="../../../sdk/Common/AllFonts.js"></script>
<script type="text/javascript" src="../../../sdk/Excel/sdk-all.js"></script>
<!--application-->
<link href="../../../apps/spreadsheeteditor/embed/resources/css/app-all.css" rel="stylesheet">
<script type="text/javascript" src="../../../apps/spreadsheeteditor/embed/app-all.js"></script>
<script type="text/javascript">
var isBrowserSupported = function() {
return ($.browser.msie && parseFloat($.browser.version) > 8) ||
($.browser.chrome && parseFloat($.browser.version) > 7) ||
($.browser.safari && parseFloat($.browser.version) > 4) ||
($.browser.opera && parseFloat($.browser.version) > 10.4) ||
($.browser.mozilla && parseFloat($.browser.version) > 3.9);
};
if (!isBrowserSupported()){
document.write(
'<div id="id-error-mask" class="errormask">',
'<div class="error-body" align="center">',
'<div id="id-error-mask-title" class="title">Your browser is not supported.</div>',
'<div id="id-error-mask-text">Sorry, ONLYOFFICE Document is currently only supported in the latest versions of the Chrome, Firefox, Safari or Internet Explorer web browsers.</div>',
'</div>',
'</div>'
);
}
</script>
</body>
</html>

View File

@@ -0,0 +1,502 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
var ApplicationController = new(function () {
var me, api, docConfig = {},
embedConfig = {},
permissions = {},
maxPages = 0,
minToolbarWidth = 550,
minEmbedWidth = 400,
minEmbedHeight = 600,
embedCode = '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="{embed-url}" width="{width}" height="{height}"></iframe>',
maxZIndex = 9090,
created = false;
Common.Analytics.initialize("UA-12442749-13", "Embedded ONLYOFFICE Spreadsheet");
if (typeof isBrowserSupported !== "undefined" && !isBrowserSupported()) {
Common.Gateway.reportError(undefined, "Your browser is not supported.");
return;
}
ZeroClipboard.setMoviePath("../../../3rdparty/ZeroClipboard/ZeroClipboard10.swf");
var clipShortUrl = new ZeroClipboard.Client();
var clipEmbedObj = new ZeroClipboard.Client();
clipShortUrl.zIndex = maxZIndex;
clipEmbedObj.zIndex = maxZIndex;
function emptyFn() {}
function createBuffered(fn, buffer, scope, args) {
return function () {
var timerId;
return function () {
var me = this;
if (timerId) {
clearTimeout(timerId);
timerId = null;
}
timerId = setTimeout(function () {
fn.apply(scope || me, args || arguments);
},
buffer);
};
} ();
}
function updateSocial() {
var $socialPanel = $("#id-popover-social-container");
if ($socialPanel.length > 0) {
if ($socialPanel.attr("data-loaded") == "false") {
typeof FB !== "undefined" && FB.XFBML && FB.XFBML.parse();
typeof twttr !== "undefined" && twttr.widgets && twttr.widgets.load();
$socialPanel.attr("data-loaded", "true");
}
}
}
function loadConfig(data) {
embedConfig = $.extend(embedConfig, data.config.embedded);
$("#id-short-url").text(embedConfig.shareUrl || "Unavailable");
$("#id-textarea-embed").text(embedCode.replace("{embed-url}", embedConfig.embedUrl).replace("{width}", minEmbedWidth).replace("{height}", minEmbedHeight));
if (typeof embedConfig.shareUrl !== "undefined" && embedConfig.shareUrl != "") {
if ($("#id-popover-social-container ul")) {
$("#id-popover-social-container ul").append('<li><div class="fb-like" data-href="' + embedConfig.shareUrl + '" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div></li>');
$("#id-popover-social-container ul").append('<li class="share-twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="' + embedConfig.shareUrl + '">Tweet</a></li>');
$("#id-popover-social-container ul").append('<li class="share-mail"><a class="btn btn-mini" href="mailto:?subject=I have shared a document with you: ' + embedConfig.docTitle + "&body=I have shared a document with you: " + embedConfig.shareUrl + '"><i class="icon-envelope"></i>Email</a></li>');
}
}
if (typeof embedConfig.shareUrl === "undefined") {
$("#id-btn-share").hide();
}
if (typeof embedConfig.embedUrl === "undefined") {
$("#id-btn-embed").hide();
}
if (typeof embedConfig.fullscreenUrl === "undefined") {
$("#id-btn-fullscreen").hide();
}
if (typeof data.config.canBackToFolder === "undefined" || !data.config.canBackToFolder) {
$("#id-btn-close").hide();
}
if (embedConfig.toolbarDocked === "top") {
$("#toolbar").addClass("top");
$(".viewer").addClass("top");
} else {
$("#toolbar").addClass("bottom");
$(".viewer").addClass("bottom");
}
}
function loadDocument(data) {
docConfig = data.doc;
if (docConfig) {
permissions = $.extend(permissions, docConfig.permissions);
var docInfo = {};
docInfo.Id = docConfig.key;
docInfo.Url = docConfig.url;
docInfo.Title = docConfig.title;
docInfo.Format = docConfig.fileType;
docInfo.VKey = docConfig.vkey;
docInfo.Origin = docConfig.origin;
if (api) {
api.asc_enableKeyEvents(true);
api.asc_setViewerMode(true);
api.asc_LoadDocument(docInfo);
Common.Analytics.trackEvent("Load", "Start");
}
}
}
function onSheetsChanged() {
if (api) {
maxPages = api.asc_getWorksheetsCount();
var setActiveWorkSheet = function (index) {
$.each($("#worksheets").children("li"), function () {
$(this).removeClass("active");
});
$("#worksheet-" + index).addClass("active");
api.asc_showWorksheet(index);
};
var handleWorksheet = function (e) {
var $worksheet = $(this);
var index = $worksheet.attr("id").match(/\d+/);
if (index.length > 0) {
index = parseInt(index[0]);
if (index > -1 && index < maxPages) {
setActiveWorkSheet(index);
}
}
};
$.each($("#worksheets").children("li"), function () {
$(this).unbind("click");
$(this).remove();
});
for (var i = 0; i < maxPages; i++) {
$("#worksheets").append('<li id="worksheet-' + i + '">' + api.asc_getWorksheetName(i).replace(/\s/g, "&nbsp;") + "</li>");
var $worksheet = $("#worksheet-" + i);
$worksheet && $worksheet.bind("click", handleWorksheet);
}
setActiveWorkSheet(api.asc_getActiveWorksheetIndex());
}
}
function onHyperlinkClick(url) {
if (url) {
var newDocumentPage = window.open(url, "_blank");
if (newDocumentPage) {
newDocumentPage.focus();
}
}
}
function hidePreloader() {
$("#loading-mask").fadeOut("slow");
}
function onDocumentContentReady() {
setVisiblePopover($("#id-popover-share"), false);
setVisiblePopover($("#id-popover-embed"), false);
handlerToolbarSize();
hidePreloader();
Common.Analytics.trackEvent("Load", "Complete");
}
function showMask() {
$("#id-loadmask").modal({
backdrop: "static",
keyboard: false
});
}
function hideMask() {
$("#id-loadmask").modal("hide");
}
function onOpenDocument(progress) {
var proc = (progress.CurrentFont + progress.CurrentImage) / (progress.FontsCount + progress.ImagesCount);
$("#loadmask-text").html("LOADING DOCUMENT: " + Math.round(proc * 100) + "%");
}
function onLongActionBegin(type, id) {
var text = "";
switch (id) {
case c_oAscAsyncAction["Print"]:
text = "Downloading document...";
break;
default:
text = "Please wait...";
break;
}
if (type == c_oAscAsyncActionType["BlockInteraction"]) {
$("#id-loadmask .cmd-loader-title").html(text);
showMask();
}
}
function onLongActionEnd(type, id) {
if (type === c_oAscAsyncActionType.BlockInteraction) {
switch (id) {
case c_oAscAsyncAction.Open:
if (api) {
api.asc_Resize();
}
onDocumentContentReady();
onSheetsChanged();
break;
}
hideMask();
}
}
function onError(id, level, errData) {
hidePreloader();
var message;
switch (id) {
case c_oAscError.ID.Unknown:
message = me.unknownErrorText;
break;
case c_oAscError.ID.ConvertationTimeout:
message = me.convertationTimeoutText;
break;
case c_oAscError.ID.ConvertationError:
message = me.convertationErrorText;
break;
case c_oAscError.ID.DownloadError:
message = me.downloadErrorText;
break;
default:
message = me.errorDefaultMessage.replace("%1", id);
break;
}
if (level == c_oAscError.Level.Critical) {
Common.Gateway.reportError(id, message);
$("#id-critical-error-title").text(me.criticalErrorTitle);
$("#id-critical-error-message").text(message);
$("#id-critical-error-close").off();
$("#id-critical-error-close").on("click", function () {
window.location.reload();
});
} else {
$("#id-critical-error-title").text(me.notcriticalErrorTitle);
$("#id-critical-error-message").text(message);
$("#id-critical-error-close").off();
$("#id-critical-error-close").on("click", function () {
$("#id-critical-error-dialog").modal("hide");
});
}
$("#id-critical-error-dialog").modal("show");
Common.Analytics.trackEvent("Internal Error", id.toString());
}
function onExternalError(error) {
if (error) {
hidePreloader();
$("#id-error-mask-title").text(error.title);
$("#id-error-mask-text").text(error.msg);
$("#id-error-mask").css("display", "block");
Common.Analytics.trackEvent("External Error", error.title);
}
}
var handlerToolbarSize = createBuffered(function (size) {
var visibleCaption = function (btn, visible) {
if (visible) {
$(btn + " button").addClass("no-caption");
$(btn + " button span").css("display", "none");
} else {
$(btn + " button").removeClass("no-caption");
$(btn + " button span").css("display", "inline");
}
};
var isMinimize = $("#toolbar").width() < minToolbarWidth;
visibleCaption("#id-btn-copy", isMinimize);
visibleCaption("#id-btn-share", isMinimize);
visibleCaption("#id-btn-embed", isMinimize);
},
10);
function onDocumentResize() {
if (api) {
api.asc_Resize();
}
handlerToolbarSize();
}
function isVisiblePopover(popover) {
return popover.hasClass("in");
}
function setVisiblePopover(popover, visible, owner) {
api && api.asc_enableKeyEvents(!visible);
if (visible) {
if (owner) {
popover.css("display", "block");
var popoverData = owner.data("popover"),
$tip = popoverData.tip(),
pos = popoverData.getPosition(false),
actualHeight = $tip[0].offsetHeight,
placement = (embedConfig.toolbarDocked === "top") ? "bottom" : "top",
tp;
$tip.removeClass("fade in top bottom left right");
switch (placement) {
case "bottom":
tp = {
top: pos.top + pos.height,
left: owner.position().left + (owner.width() - popover.width()) * 0.5
};
break;
default:
case "top":
tp = {
top: pos.top - actualHeight,
left: owner.position().left + (owner.width() - popover.width()) * 0.5
};
break;
}
$tip.css(tp).addClass(placement).addClass("in");
}
if (popover.hasClass("embed")) {
clipEmbedObj.show();
}
if (popover.hasClass("share")) {
clipShortUrl.show();
updateSocial();
}
} else {
popover.removeClass("in");
popover.css("display", "none");
popover.hasClass("embed") && clipEmbedObj.hide();
popover.hasClass("share") && clipShortUrl.hide();
}
}
function updateEmbedCode() {
var newWidth = parseInt($("#id-input-embed-width").val()),
newHeight = parseInt($("#id-input-embed-height").val());
if (newWidth < minEmbedWidth) {
newWidth = minEmbedWidth;
}
if (newHeight < minEmbedHeight) {
newHeight = minEmbedHeight;
}
$("#id-textarea-embed").text(embedCode.replace("{embed-url}", embedConfig.embedUrl).replace("{width}", newWidth).replace("{height}", newHeight));
$("#id-input-embed-width").val(newWidth + "px");
$("#id-input-embed-height").val(newHeight + "px");
}
function openLink(url) {
var newDocumentPage = window.open(url);
if (newDocumentPage) {
newDocumentPage.focus();
}
}
function createController() {
if (created) {
return me;
}
me = this;
created = true;
var documentMoveTimer;
clipShortUrl.addEventListener("mousedown", function () {
if ($("#id-btn-copy-short").hasClass("copied")) {
return;
}
$("#id-btn-copy-short").button("copied");
$("#id-btn-copy-short").addClass("copied");
clipShortUrl.setText($("#id-short-url").text());
setTimeout(function () {
$("#id-btn-copy-short").button("reset");
$("#id-btn-copy-short").removeClass("copied");
},
2000);
});
clipEmbedObj.addEventListener("mousedown", function () {
if ($("#id-btn-copy-embed").hasClass("copied")) {
return;
}
$("#id-btn-copy-embed").button("copied");
$("#id-btn-copy-embed").addClass("copied");
clipEmbedObj.setText($("#id-textarea-embed").text());
setTimeout(function () {
$("#id-btn-copy-embed").button("reset");
$("#id-btn-copy-embed").removeClass("copied");
},
2000);
});
clipShortUrl.glue("id-btn-copy-short");
clipEmbedObj.glue("id-btn-copy-embed");
$("#id-btn-copy").on("click", function () {
var saveUrl = embedConfig.saveUrl;
if (typeof saveUrl !== "undefined" && saveUrl.length > 0) {
openLink(saveUrl);
} else {
if (api) {
api.asc_Print();
}
}
Common.Analytics.trackEvent("Save");
});
$("#id-btn-share").on("click", function (event) {
setVisiblePopover($("#id-popover-share"), !isVisiblePopover($("#id-popover-share")), $("#id-btn-share"));
setVisiblePopover($("#id-popover-embed"), false);
event.preventDefault();
event.stopPropagation();
});
$("#id-btn-embed").on("click", function (event) {
setVisiblePopover($("#id-popover-embed"), !isVisiblePopover($("#id-popover-embed")), $("#id-btn-embed"));
setVisiblePopover($("#id-popover-share"), false);
event.preventDefault();
event.stopPropagation();
});
$("#id-input-embed-width").on("keypress", function (e) {
if (e.keyCode == 13) {
updateEmbedCode();
}
});
$("#id-input-embed-height").on("keypress", function (e) {
if (e.keyCode == 13) {
updateEmbedCode();
}
});
$("#id-input-embed-width").on("focusin", function (e) {
api && api.asc_enableKeyEvents(false);
});
$("#id-input-embed-height").on("focusin", function (e) {
api && api.asc_enableKeyEvents(false);
});
$("#id-input-embed-width").on("focusout", function (e) {
updateEmbedCode();
api && api.asc_enableKeyEvents(true);
});
$("#id-input-embed-height").on("focusout", function (e) {
updateEmbedCode();
api && api.asc_enableKeyEvents(true);
});
$("#id-btn-fullscreen").on("click", function () {
openLink(embedConfig.fullscreenUrl);
});
$("#id-btn-close").on("click", function () {
Common.Gateway.goBack();
});
$("#id-btn-zoom-in").on("click", function () {
if (api) {
var f = api.asc_getZoom() + 0.1;
f > 0 && !(f > 2) && api.asc_setZoom(f);
}
});
$("#id-btn-zoom-out").on("click", function () {
if (api) {
var f = api.asc_getZoom() - 0.1; ! (f < 0.5) && api.asc_setZoom(f);
}
});
$(window).resize(function () {
onDocumentResize();
});
$(document).click(function (event) {
if (event && event.target && $(event.target).closest(".popover").length > 0) {
return;
}
setVisiblePopover($("#id-popover-share"), false);
setVisiblePopover($("#id-popover-embed"), false);
});
$(document).mousemove(function (event) {
$("#id-btn-zoom-in").fadeIn();
$("#id-btn-zoom-out").fadeIn();
clearTimeout(documentMoveTimer);
documentMoveTimer = setTimeout(function () {
$("#id-btn-zoom-in").fadeOut();
$("#id-btn-zoom-out").fadeOut();
},
2000);
});
api = new Asc.spreadsheet_api("editor_sdk");
if (api) {
api.asc_Init("../../../sdk/Fonts/");
api.asc_registerCallback("asc_onStartAction", onLongActionBegin);
api.asc_registerCallback("asc_onEndAction", onLongActionEnd);
api.asc_registerCallback("asc_onError", onError);
api.asc_registerCallback("asc_onOpenDocumentProgress", onOpenDocument);
api.asc_registerCallback("asc_onSheetsChanged", onSheetsChanged);
api.asc_registerCallback("asc_onHyperlinkClick", onHyperlinkClick);
Common.Gateway.on("init", loadConfig);
Common.Gateway.on("opendocument", loadDocument);
Common.Gateway.on("showerror", onExternalError);
Common.Gateway.ready();
}
return me;
}
return {
create: createController,
errorDefaultMessage: "Error code: %1",
unknownErrorText: "Unknown error.",
convertationTimeoutText: "Convertation timeout exceeded.",
convertationErrorText: "Convertation failed.",
downloadErrorText: "Download failed.",
criticalErrorTitle: "Error",
notcriticalErrorTitle: "Warning"
};
})();

View File

@@ -0,0 +1,48 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
var ApplicationView = new(function () {
function createView() {
$("#id-btn-share").popover({
trigger: "manual",
template: '<div class="popover share" id="id-popover-share"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
content: '<div class="share-link">' + '<span class="caption">Link:</span>' + '<span id="id-short-url" class="input-medium uneditable-input"></span>' + '<button id="id-btn-copy-short" type="button" class="btn btn-mini btn-primary" style="width: 65px;" data-copied-text="Copied">Copy</button>' + "</div> " + '<div class="share-buttons" style="height: 25px" id="id-popover-social-container" data-loaded="false">' + "<ul></ul>" + "</div>"
}).popover("show");
$("#id-btn-embed").popover({
trigger: "manual",
template: '<div class="popover embed" id="id-popover-embed"><div class="arrow"></div><div class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
content: '<div class="size-manual">' + '<span class="caption">Width:</span>' + '<input id="id-input-embed-width" class="input-mini" type="text" value="400px">' + '<input id="id-input-embed-height" class="right input-mini" type="text" value="600px">' + '<span class="right caption">Height:</span>' + "</div>" + '<textarea id="id-textarea-embed" rows="4" readonly></textarea>' + '<button id="id-btn-copy-embed" type="button" class="btn btn-mini btn-primary" data-copied-text="Copied">Copy</button>'
}).popover("show");
}
return {
create: createView
};
})();

View File

@@ -0,0 +1,37 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
(function ($) {
$(function () {
ApplicationView.create();
ApplicationController.create();
});
})(window.jQuery);

View File

@@ -0,0 +1,545 @@
.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
line-height: 0;
}
.clearfix:after {
clear: both;
}
.hide-text {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.input-block-level {
display: block;
width: 100%;
min-height: 30px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.btn-mini {
font-weight: bold;
}
.btn-primary {
color: #ffffff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
background-color: #7a9adf;
background-image: -moz-linear-gradient(top, #8aacf1, #6180c4);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#8aacf1), to(#6180c4));
background-image: -webkit-linear-gradient(top, #8aacf1, #6180c4);
background-image: -o-linear-gradient(top, #8aacf1, #6180c4);
background-image: linear-gradient(to bottom, #8aacf1, #6180c4);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8aacf1', endColorstr='#ff6180c4', GradientType=0);
border-color: #6180c4 #6180c4 #3b5a9e;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
*background-color: #6180c4;
/* Darken IE7 buttons by default so they stand out more given they won't have borders */
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.btn-primary:hover,
.btn-primary:active,
.btn-primary.active,
.btn-primary.disabled,
.btn-primary[disabled] {
color: #ffffff;
background-color: #6180c4;
*background-color: #4e71bd;
}
.btn-primary:active,
.btn-primary.active {
background-color: #4264b0 \9;
}
.embed-body {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
font-size: 12px;
overflow: hidden;
}
.popover.top {
margin-top: -10px;
}
.viewer {
position: absolute;
margin: 0;
padding: 0;
left: 0;
right: 0;
}
.viewer.top {
top: 32px;
bottom: 0;
}
.viewer.bottom {
top: 0;
bottom: 30px;
}
.toolbar {
position: fixed;
font-size: 12px;
min-width: 340px;
background-color: #dfdfdf;
background-image: -moz-linear-gradient(top, #ebebeb, #cccccc);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ebebeb), to(#cccccc));
background-image: -webkit-linear-gradient(top, #ebebeb, #cccccc);
background-image: -o-linear-gradient(top, #ebebeb, #cccccc);
background-image: linear-gradient(to bottom, #ebebeb, #cccccc);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#ffcccccc', GradientType=0);
}
.toolbar.top {
top: 0;
left: 0;
width: 100%;
height: 32px;
-webkit-box-shadow: inset 0 -1px 0 #929292, inset 0 1px 0 #fafafa;
-moz-box-shadow: inset 0 -1px 0 #929292, inset 0 1px 0 #fafafa;
box-shadow: inset 0 -1px 0 #929292, inset 0 1px 0 #fafafa;
}
.toolbar.bottom {
bottom: 0;
left: 0;
width: 100%;
height: 30px;
-webkit-box-shadow: inset 0 1px 0 #929292, inset 0 2px 0 #fafafa;
-moz-box-shadow: inset 0 1px 0 #929292, inset 0 2px 0 #fafafa;
box-shadow: inset 0 1px 0 #929292, inset 0 2px 0 #fafafa;
}
.toolbar ul {
position: absolute;
list-style-type: none;
margin: 0;
}
.toolbar ul li input {
height: 14px;
font-size: 12px;
margin: 4px 3px 5px;
padding: 4px 0;
text-align: center;
}
.toolbar ul li .text {
cursor: default;
}
.toolbar ul.left {
left: 0;
}
.toolbar ul.left li {
float: left;
}
.toolbar ul.right {
right: 0;
}
.toolbar ul.right li {
float: left;
}
.toolbar ul .separator {
height: 24px;
margin: 4px 9px;
border-right: 1px solid #fafafa;
border-left: 1px solid #929292;
}
a.brand-logo {
display: block;
background-image: url("../img/glyphicons.png");
width: 127px;
height: 20px;
margin: 5px 0 0 10px;
background-position: 0 -100px;
}
[class^="control-icon-"],
[class*=" control-icon-"] {
display: inline-block;
width: 20px;
height: 20px;
vertical-align: text-top;
background-image: url("../img/glyphicons.png");
background-repeat: no-repeat;
margin-top: -2px;
}
[class^="overlay-icon-"],
[class*=" overlay-icon-"] {
display: inline-block;
width: 32px;
height: 32px;
vertical-align: text-top;
background-image: url("../img/glyphicons.png");
background-repeat: no-repeat;
opacity: .3;
}
.control-icon-share {
background-position: 0 0;
}
.control-icon-embed {
background-position: 0 -20px;
}
.control-icon-fullscreen {
background-position: 0 -40px;
}
.control-icon-close {
background-position: 0 -60px;
}
.control-icon-save {
background-position: 0 -80px;
}
.overlay-icon-zoom-in {
background-position: 0 -120px;
}
.overlay-icon-zoom-out {
background-position: -32px -120px;
}
.control-btn {
display: inline-block;
padding: 1px 5px;
font-size: 12px;
line-height: 20px;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
margin: 4px 5px 0 0;
}
.control-btn i {
margin-right: 5px;
}
.control-btn.no-caption {
padding: 1px 2px;
}
.control-btn.no-caption i {
margin-right: 0;
}
.control-btn:hover {
color: #7698de;
text-decoration: none;
text-shadow: 0 1px 0 #fafafa;
}
.control-btn:hover .control-icon-share {
background-position: -20px 0;
}
.control-btn:hover .control-icon-embed {
background-position: -20px -20px;
}
.control-btn:hover .control-icon-fullscreen {
background-position: -20px -40px;
}
.control-btn:hover .control-icon-close {
background-position: -20px -60px;
}
.control-btn:hover .control-icon-save {
background-position: -20px -80px;
}
.control-btn:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.control-btn.active,
.control-btn:active {
color: #ffffff;
outline: 0;
border: 1px solid #4e71bd;
background-color: #7192d6;
background-image: -moz-linear-gradient(top, #6180c4, #8aacf1);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#6180c4), to(#8aacf1));
background-image: -webkit-linear-gradient(top, #6180c4, #8aacf1);
background-image: -o-linear-gradient(top, #6180c4, #8aacf1);
background-image: linear-gradient(to bottom, #6180c4, #8aacf1);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6180c4', endColorstr='#ff8aacf1', GradientType=0);
text-shadow: 0 1px 0 #5f5f5f;
}
.control-btn.active .control-icon-share,
.control-btn:active .control-icon-share {
background-position: -40px 0;
}
.control-btn.active .control-icon-embed,
.control-btn:active .control-icon-embed {
background-position: -40px -20px;
}
.control-btn.active .control-icon-fullscreen,
.control-btn:active .control-icon-fullscreen {
background-position: -40px -40px;
}
.control-btn.active .control-icon-close,
.control-btn:active .control-icon-close {
background-position: -40px -60px;
}
.control-btn.active .control-icon-save,
.control-btn:active .control-icon-save {
background-position: -40px -80px;
}
.overlay-controls {
position: absolute;
bottom: 55px;
z-index: 10;
left: 50%;
}
.overlay-controls ul {
list-style-type: none;
margin: 0 auto;
}
.overlay-controls ul li {
display: inline-block;
}
.overlay-controls .overlay {
width: 32px;
height: 32px;
display: inline-block;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-color: transparent;
background-image: none;
border: none;
padding: 0;
line-height: 0;
}
.overlay-controls .overlay:hover [class^="overlay-icon-"],
.overlay-controls .overlay:hover [class*=" overlay-icon-"] {
opacity: .6;
}
.overlay-controls .overlay.active [class^="overlay-icon-"],
.overlay-controls .overlay:active [class^="overlay-icon-"],
.overlay-controls .overlay.active [class*=" overlay-icon-"],
.overlay-controls .overlay:active [class*=" overlay-icon-"] {
opacity: .8;
}
.errormask {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
overflow: hidden;
border: none;
background-color: #f4f4f4;
z-index: 30002;
}
.errormask .error-body {
position: relative;
top: 40%;
width: 400px;
margin: 0 auto;
padding: 20px;
background-color: #FFFFFF;
border: 1px solid #C0C0C0;
}
.errormask .error-body .title {
font-weight: bold;
font-size: 1.6em;
padding-bottom: 10px;
}
.popover .popover-content {
padding: 14px;
}
.popover .btn {
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.popover.hyperlink .popover-content {
padding: 5px 10px;
}
.popover.hyperlink .popover-content p {
display: block;
word-wrap: break-word;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.popover.share {
width: 280px;
}
.popover.share .share-link .caption {
margin-right: 8px;
float: left;
}
.popover.share .share-link .uneditable-input {
font-size: 1em;
padding: 0 4px;
margin-right: 5px;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
cursor: auto;
-moz-user-select: text;
-khtml-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
user-select: text;
}
.popover.share .share-link .input-medium {
width: 130px;
}
.popover.share .share-link .btn {
float: right;
}
.popover.share .share-buttons ul {
height: 25px;
list-style-type: none;
margin: 5px 0 0;
overflow: hidden;
}
.popover.share .share-buttons ul li {
display: inline-block;
float: left;
margin: 1px 5px 0 0;
vertical-align: middle;
}
.popover.share .share-buttons ul li.share-mail {
float: right;
margin: 0;
}
.popover.share .share-buttons ul li.share-mail a {
padding: 2px 8px;
}
.popover.share .share-buttons ul li.share-mail i {
margin-right: 5px;
}
.popover.share .share-buttons ul li.share-twitter {
max-width: 100px;
}
.popover.embed {
width: 270px;
}
.popover.embed .size-manual {
margin-bottom: 10px;
}
.popover.embed .right {
float: right;
}
.popover.embed .caption {
margin-right: 8px;
}
.popover.embed input {
font-size: 1em;
padding: 0 4px;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
margin: 0;
margin-top: -1px;
}
.popover.embed input.input-mini {
width: 40px;
}
.popover.embed textarea {
width: 228px;
resize: none;
cursor: auto;
font-size: 1em;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.popover.embed button {
float: right;
margin: 5px 0 15px;
width: 86px;
}
.modal.error .modal-footer {
text-align: center;
}
.cmd-loader-body {
z-index: 20001;
width: 300px;
padding: 16px;
margin: -71px 0 0 -166px;
border: none;
background-image: none;
background-color: #787C80;
opacity: 0.8;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
.cmd-loader-body .cmd-loader-image {
background-image: url("../img/loading.gif");
background-repeat: no-repeat;
background-position: top center;
height: 74px;
width: 100%;
}
.cmd-loader-body .cmd-loader-title {
font-size: 18px;
font-weight: lighter;
color: #FFF;
text-align: center;
margin: 16px 24px 0 24px;
}
.viewer .sdk-view {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 25px;
}
.viewer ul.worksheet-list {
position: absolute;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 0 9px;
border-top: 1px solid #5A5A5A;
border-bottom: 1px solid #BABABA;
background-color: #bebebe;
background-image: -moz-linear-gradient(top, #b6b6b6, #cacaca);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b6b6b6), to(#cacaca));
background-image: -webkit-linear-gradient(top, #b6b6b6, #cacaca);
background-image: -o-linear-gradient(top, #b6b6b6, #cacaca);
background-image: linear-gradient(to bottom, #b6b6b6, #cacaca);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb6b6b6', endColorstr='#ffcacaca', GradientType=0);
box-shadow: 0 4px 4px -4px #333333 inset;
}
.viewer ul.worksheet-list li {
float: left;
cursor: pointer;
list-style: none;
margin: 0 2px 2px 3px;
padding: 0 13px;
color: #FFFFFF;
background-color: #909090;
background-image: -moz-linear-gradient(top, #9a9a9a, #828282);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9a9a9a), to(#828282));
background-image: -webkit-linear-gradient(top, #9a9a9a, #828282);
background-image: -o-linear-gradient(top, #9a9a9a, #828282);
background-image: linear-gradient(to bottom, #9a9a9a, #828282);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff9a9a9a', endColorstr='#ff828282', GradientType=0);
box-shadow: 0 4px 4px -4px #333333 inset;
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
border-bottom-right-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-bottomleft: 4px;
border-bottom-left-radius: 4px;
border-bottom: 1px solid #929292;
border-top-color: transparent;
}
.viewer ul.worksheet-list li.active {
margin-top: -1px;
padding: 0 12px;
border: 1px solid #929292;
border-top-color: transparent;
background: #DDDDDD;
color: #000;
box-shadow: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,58 @@
// Bootstrap core variables and mixins
@import "../../../../common/embed/resources/less/common.less";
// Worksheets
// -------------------------
.viewer {
.sdk-view {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 25px;
}
ul.worksheet-list {
position: absolute;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 0 9px;
border-top: 1px solid #5A5A5A;
border-bottom: 1px solid #BABABA;
#gradient > .vertical(#B6B6B6, #CACACA);
box-shadow: 0 4px 4px -4px #333 inset;
li {
float: left;
cursor: pointer;
list-style: none;
margin: 0 2px 2px 3px;
padding: 0 13px;
color: #FFFFFF;
#gradient > .vertical(#9A9A9A, #828282);
box-shadow: 0 4px 4px -4px #333 inset;
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
border-bottom-right-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-bottomleft: 4px;
border-bottom-left-radius: 4px;
border-bottom: 1px solid #929292;
border-top-color: transparent;
&.active {
margin-top: -1px;
padding: 0 12px;
border: 1px solid #929292;
border-top-color: transparent;
background: #DDDDDD;
color: #000;
box-shadow: none;
}
}
}
}

View File

@@ -0,0 +1,2 @@
call npm install less
call npm install watchr

View File

@@ -0,0 +1,99 @@
/*
* (c) Copyright Ascensio System SIA 2010-2014
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
* EU, LV-1021.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
(function () {
var path = require("path"),
util = require("util"),
fs = require("fs"),
watchr = require("watchr"),
less = require("less"),
cwd = process.cwd(),
watchPath = process.argv.length === 3 ? path.resolve(cwd, process.argv[2]) : cwd;
var options = {
compress: false,
yuicompress: false,
optimization: 1,
silent: false,
paths: [],
color: true,
strictImports: false
};
var parseLessFile = function (input, output) {
return function (e, data) {
if (e) {
console.log("lessc:", e.message);
}
new(less.Parser)({
paths: [path.dirname(input)],
optimization: options.optimization,
filename: input
}).parse(data, function (err, tree) {
if (err) {
less.writeError(err, options);
} else {
try {
var css = tree.toCSS({
compress: options.compress
});
if (output) {
var fd = fs.openSync(output, "w");
fs.writeSync(fd, css, 0, "utf8");
} else {
console.log("WARNING: output is undefined");
util.print(css);
}
} catch(e) {
less.writeError(e, options);
}
}
});
};
};
console.log(">>> Script is polling for changes. Press Ctrl-C to Stop.");
watchr.watch({
path: watchPath,
listener: function (eventName, filePath, fileCurrentStat, filePreviousStat) {
if (eventName == "change" || eventName == "update") {
console.log(">>> Change detected at", new Date().toLocaleTimeString(), "to:", path.basename(filePath));
var baseFilePath = path.basename(filePath, ".less");
fs.readFile(filePath, "utf-8", parseLessFile(filePath, "../css/" + baseFilePath + ".css"));
console.log("overwrite", baseFilePath + ".css");
}
},
next: function (err, watcher) {
if (err) {
console.log("!!! epic fail");
throw err;
}
console.log("Now watching:", watchPath);
}
});
})();