mirror of
https://github.com/ONLYOFFICE/onlyoffice.github.io.git
synced 2026-04-07 14:04:30 +08:00
Developing
This commit is contained in:
55
sdkjs-plugins/v1/plugins-ui.js
Normal file
55
sdkjs-plugins/v1/plugins-ui.js
Normal file
File diff suppressed because one or more lines are too long
263
sdkjs-plugins/v1/plugins.css
Normal file
263
sdkjs-plugins/v1/plugins.css
Normal file
@ -0,0 +1,263 @@
|
||||
.btn-text-default {
|
||||
background: #fff;
|
||||
border: 1px solid #cfcfcf;
|
||||
border-radius: 2px;
|
||||
color: #444444;
|
||||
font-size: 11px;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
height: 22px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn-text-default::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.btn-text-default.primary {
|
||||
color: #fff;
|
||||
background-color: #7d858c;
|
||||
}
|
||||
|
||||
.btn-text-default:focus {
|
||||
outline: 0;
|
||||
outline-offset: 0;
|
||||
}
|
||||
|
||||
.btn-text-default:hover {
|
||||
background-color: #d8dadc;
|
||||
}
|
||||
|
||||
.btn-text-default.primary:hover {
|
||||
background-color: #666d73 !important;
|
||||
}
|
||||
|
||||
.btn-text-default:active,
|
||||
.btn-text-default.active {
|
||||
background-color: #7d858c !important;
|
||||
color: white;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.btn-text-default[disabled]:hover,
|
||||
.btn-text-default.disabled:hover,
|
||||
.btn-text-default[disabled]:active,
|
||||
.btn-text-default[disabled].active,
|
||||
.btn-text-default.disabled:active,
|
||||
.btn-text-default.disabled.active {
|
||||
background-color: #fff !important;
|
||||
color: #444444;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.btn-text-default[disabled],
|
||||
.btn-text-default.disabled {
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: 1px solid #cfcfcf;
|
||||
border-radius: 2px;
|
||||
box-sizing: border-box;
|
||||
color: #444444;
|
||||
font-size: 11px;
|
||||
height: 22px;
|
||||
padding: 1px 3px;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: #cfcfcf;
|
||||
outline: 0;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.form-control[readonly] {
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.form-control[disabled] {
|
||||
background-color: #fff;
|
||||
cursor: default;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.defaultlable {
|
||||
color: #444444;
|
||||
cursor: default;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
font-weight: normal;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.defaultcenterlable {
|
||||
color: #444444;
|
||||
cursor: default;
|
||||
text-align: center;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 11px;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.noselect{
|
||||
-khtml-user-select: none;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
/*
|
||||
* Container style
|
||||
*/
|
||||
.ps {
|
||||
overflow: hidden !important;
|
||||
overflow-anchor: none;
|
||||
-ms-overflow-style: none;
|
||||
touch-action: auto;
|
||||
-ms-touch-action: auto;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scrollbar rail styles
|
||||
*/
|
||||
.ps__rail-x {
|
||||
display: none;
|
||||
bottom: 2px; /* there must be 'right' for ps-scrollbar-y-rail */
|
||||
height: 9px;
|
||||
margin: 0 2px 0 2px;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
transition: background-color .2s linear, opacity .2s linear;
|
||||
}
|
||||
|
||||
.ps__rail-y {
|
||||
display: none;
|
||||
right: 2px; /* there must be 'right' for ps-scrollbar-y-rail */
|
||||
width: 9px;
|
||||
margin: 2px 0 2px 0;
|
||||
/* please don't change 'position' */
|
||||
position: absolute;
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
transition: background-color .2s linear, opacity .2s linear;
|
||||
}
|
||||
|
||||
.ps--active-x > .ps__rail-x,
|
||||
.ps--active-y > .ps__rail-y {
|
||||
display: block;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.ps .ps__rail-x:hover,
|
||||
.ps .ps__rail-y:hover,
|
||||
.ps .ps__rail-x:focus,
|
||||
.ps .ps__rail-y:focus,
|
||||
.ps .ps__rail-x.ps--clicking,
|
||||
.ps .ps__rail-y.ps--clicking {
|
||||
background-color: #EEEEEE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Scrollbar thumb styles
|
||||
*/
|
||||
.ps__thumb-x {
|
||||
position: absolute; /* please don't change 'position' */
|
||||
bottom: 0; /* there must be 'bottom' for ps-scrollbar-x */
|
||||
height: 9px;
|
||||
background-color: rgb(241, 241, 241);
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
visibility: visible;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAOCAYAAAD0f5bSAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAALElEQVQokWNgoBs4f/78f1JpJnIsIkvTsAQfP378TypNxyD/+PEjyRrJsgkAKS81km7nDNQAAAAASUVORK5CYII=);
|
||||
image-rendering: pixelated;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center 0;
|
||||
border: 1px solid #cfcfcf;
|
||||
}
|
||||
|
||||
.ps__thumb-y {
|
||||
position: absolute; /* please don't change 'position' */
|
||||
right: 0; /* there must be 'right' for ps-scrollbar-y */
|
||||
width: 9px;
|
||||
background-color: rgb(241, 241, 241);
|
||||
-webkit-border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
visibility: visible;
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAANCAQAAAAz1Zf0AAAAIUlEQVR42mNgAILz/0GQAQo+/gdBBqLAqE5ydH5k+sgEANHgUH2JtDRHAAAAAElFTkSuQmCC);
|
||||
image-rendering: pixelated;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 center;
|
||||
border: 1px solid #cfcfcf;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x {
|
||||
background-color: rgb(207, 207, 207);
|
||||
}
|
||||
.ps__thumb-x:hover {
|
||||
background-position: center -7px;
|
||||
}
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-x.ps--clicking .ps__thumb-x {
|
||||
background-color: #adadad;
|
||||
border-color: #adadad;
|
||||
background-position: center -7px;
|
||||
}
|
||||
|
||||
.ps__rail-y:hover > .ps__thumb-y {
|
||||
background-color: rgb(207, 207, 207);
|
||||
}
|
||||
.ps__thumb-y:hover {
|
||||
background-position: -7px center;
|
||||
}
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-y.ps--clicking .ps__thumb-y {
|
||||
background-color: #adadad;
|
||||
border-color: #adadad;
|
||||
background-position: -7px center;
|
||||
}
|
||||
|
||||
/* MS supports */
|
||||
@supports (-ms-overflow-style: none) {
|
||||
.ps {
|
||||
overflow: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
|
||||
.ps {
|
||||
overflow: auto !important;
|
||||
}
|
||||
}
|
||||
154
sdkjs-plugins/v1/plugins.js
Normal file
154
sdkjs-plugins/v1/plugins.js
Normal file
@ -0,0 +1,154 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* 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(window, undefined){
|
||||
|
||||
window.Asc = window.Asc || {};
|
||||
window.Asc.plugin = {};
|
||||
|
||||
window.Asc.plugin.tr_init = false;
|
||||
window.Asc.plugin.tr = function(val) { return val; }
|
||||
|
||||
window.Asc.scope = {};
|
||||
window.Asc.scope.prototype = {
|
||||
clear : function() {
|
||||
for (var i in window.Asc.scope)
|
||||
delete window.Asc.scope[i];
|
||||
}
|
||||
};
|
||||
|
||||
function extend(obj, plugin) {
|
||||
if (!obj || !("object" == typeof(obj) || "array" == typeof(obj)))
|
||||
return obj;
|
||||
|
||||
var dst = (plugin === undefined) ? {} : plugin;
|
||||
for (var prop in obj) {
|
||||
if (obj.hasOwnProperty(prop)) {
|
||||
dst[prop] = (obj[prop] && "object" === typeof obj[prop]) ? extend(obj[prop]) : obj[prop];
|
||||
}
|
||||
}
|
||||
return dst;
|
||||
}
|
||||
|
||||
window.onload = function()
|
||||
{
|
||||
if (!window.Asc || !window.Asc.plugin)
|
||||
return;
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("get", "./config.json", true);
|
||||
xhr.responseType = "json";
|
||||
xhr.onload = function() {
|
||||
if (!window.Asc || !window.Asc.plugin)
|
||||
return;
|
||||
|
||||
if (xhr.status == 200 || (xhr.status == 0 && xhr.readyState == 4)) {
|
||||
var objConfig = xhr.response;
|
||||
if ((typeof objConfig) == "string")
|
||||
objConfig = JSON.parse(objConfig);
|
||||
|
||||
extend(objConfig, window.Asc.plugin);
|
||||
|
||||
var obj = {
|
||||
type : "initialize",
|
||||
guid : window.Asc.plugin.guid
|
||||
};
|
||||
|
||||
var _body = document.body;
|
||||
if (_body && true !== window.Asc.plugin.enableDrops) {
|
||||
_body.ondrop = function(e) {
|
||||
if (e && e.preventDefault)
|
||||
e.preventDefault();
|
||||
return false;
|
||||
};
|
||||
_body.ondragenter = function(e) {
|
||||
if (e && e.preventDefault)
|
||||
e.preventDefault();
|
||||
return false;
|
||||
};
|
||||
_body.ondragover = function(e) {
|
||||
if (e && e.preventDefault)
|
||||
e.preventDefault();
|
||||
if (e && e.dataTransfer)
|
||||
e.dataTransfer.dropEffect = "none";
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
window.parent.postMessage(JSON.stringify(obj), "*");
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
};
|
||||
|
||||
window.Asc.supportOrigins = {};
|
||||
window.Asc.supportOrigins[window.origin] = true;
|
||||
|
||||
function onMessage(event) {
|
||||
if (!window.Asc || !window.Asc.plugin)
|
||||
return;
|
||||
|
||||
if (window.plugin_onMessage) {
|
||||
if (!window.Asc.supportOrigins[event.origin])
|
||||
return;
|
||||
window.plugin_onMessage(event);
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof(event.data) == "string") {
|
||||
var pluginData = {};
|
||||
try {
|
||||
pluginData = JSON.parse(event.data);
|
||||
}
|
||||
catch(err) {
|
||||
pluginData = {};
|
||||
}
|
||||
|
||||
if (pluginData.type == "plugin_init") {
|
||||
window.Asc.supportOrigins[event.origin] = true;
|
||||
eval(pluginData.data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (window.addEventListener)
|
||||
window.addEventListener("message", onMessage, false);
|
||||
else
|
||||
window.attachEvent("onmessage", onMessage);
|
||||
|
||||
window.onunload = function() {
|
||||
if (window.addEventListener)
|
||||
window.removeEventListener("message", onMessage, false);
|
||||
else
|
||||
window.detachEvent("onmessage", onMessage);
|
||||
};
|
||||
})(window, undefined);
|
||||
Reference in New Issue
Block a user