This commit is contained in:
Alexey Golubev
2018-12-11 16:07:09 +03:00
19 changed files with 1080 additions and 1058 deletions

View File

@ -7,7 +7,9 @@
},
"log": {
"filePath": "",
"options": { "reloadSecs": 60 }
"options": {
"replaceConsole": true
}
},
"queue": {
"visibilityTimeout": 300,

View File

@ -1,13 +1,14 @@
{
"appenders": [{
"type": "console",
"layout": {
"type": "pattern",
"pattern": "%[[%d] [%p] %c -%] %.10000m"
"appenders": {
"default": {
"type": "console",
"layout": {
"type": "pattern",
"pattern": "%[[%d] [%p] %c -%] %.10000m"
}
}
}],
"replaceConsole": "true",
"levels": {
"nodeJS": "ALL"
},
"categories": {
"default": { "appenders": [ "default" ], "level": "ALL" }
}
}
}

View File

@ -1,13 +1,14 @@
{
"appenders": [{
"type": "console",
"layout": {
"type": "pattern",
"pattern": "[%d] [%p] %c - %.10000m"
"appenders": {
"default": {
"type": "console",
"layout": {
"type": "pattern",
"pattern": "[%d] [%p] %c - %.10000m"
}
}
}],
"replaceConsole": "true",
"levels": {
"nodeJS": "WARN"
},
"categories": {
"default": { "appenders": [ "default" ], "level": "WARN" }
}
}

View File

@ -46,7 +46,7 @@
}
},
"license": {
"license_file": "/var/www/onlyoffice/Data/license.lic",
"license_file": "/var/www/onlyoffice/documentserver/../Data/license.lic",
"warning_limit_percents": "70"
},
"FileConverter": {

File diff suppressed because it is too large Load Diff

View File

@ -5,23 +5,23 @@
"private": true,
"dependencies": {
"amazon-s3-url-signer": "https://github.com/agolybev/amazon-s3-url-signer/archive/v0.0.9.tar.gz",
"amqplib": "^0.4.1",
"aws-sdk": "^2.4.12",
"amqplib": "^0.5.2",
"aws-sdk": "^2.346.0",
"co": "^4.6.0",
"config": "^1.21.0",
"config": "^2.0.1",
"dnscache": "^1.0.1",
"escape-string-regexp": "^1.0.5",
"forwarded": "^0.1.0",
"fs-extra": "^4.0.2",
"ipaddr.js": "^1.2.0",
"jsonwebtoken": "^7.1.9",
"log4js": "^0.6.38",
"mime": "^1.3.4",
"forwarded": "^0.1.2",
"fs-extra": "^7.0.0",
"ipaddr.js": "^1.8.1",
"jsonwebtoken": "^8.3.0",
"log4js": "^3.0.6",
"mime": "^2.3.1",
"mkdirp": "^0.5.1",
"ms": "^0.7.2",
"node-cache": "^4.1.0",
"ms": "^2.1.1",
"node-cache": "^4.2.0",
"node-statsd": "^0.1.1",
"request": "^2.74.0",
"uri-js": "^3.0.2"
"request": "^2.88.0",
"uri-js": "^4.2.2"
}
}

View File

@ -35,10 +35,18 @@
var config = require('config');
var log4js = require('log4js');
log4js.configure(config.get('log.filePath'), config.get('log.options'));
log4js.configure(config.get('log.filePath'));
var logger = log4js.getLogger('nodeJS');
if (config.get('log.options.replaceConsole')) {
console.log = logger.info.bind(logger);
console.info = logger.info.bind(logger);
console.warn = logger.warn.bind(logger);
console.error = logger.error.bind(logger);
console.debug = logger.debug.bind(logger);
}
exports.trace = function (){
return logger.trace.apply(logger, Array.prototype.slice.call(arguments));
};

View File

@ -136,7 +136,7 @@ exports.putObject = function(strPath, buffer, contentLength) {
return new Promise(function(resolve, reject) {
//todo рассмотреть Expires
var params = {Bucket: cfgBucketName, Key: getFilePath(strPath), Body: buffer,
ContentLength: contentLength, ContentType: mime.lookup(strPath)};
ContentLength: contentLength, ContentType: mime.getType(strPath)};
s3Client.putObject(params, function(err, data) {
if (err) {
reject(err);

View File

@ -431,7 +431,7 @@ function fillResponse(req, res, uri, error, isJSON) {
}
var accept = req.get('Accept');
if (accept) {
switch (mime.extension(accept)) {
switch (mime.getExtension(accept)) {
case "json":
isJSON = true;
break;

File diff suppressed because it is too large Load Diff

View File

@ -4,24 +4,24 @@
"homepage": "http://www.onlyoffice.com",
"private": true,
"dependencies": {
"base64-stream": "^0.1.3",
"body-parser": "^1.15.2",
"base64-stream": "^1.0.0",
"body-parser": "^1.18.3",
"co": "^4.6.0",
"config": "^1.21.0",
"cron": "^1.1.0",
"config": "^2.0.1",
"cron": "^1.5.0",
"deep-equal": "^1.0.1",
"express": "^4.14.0",
"fakeredis": "^1.0.3",
"jsonwebtoken": "^7.1.9",
"jwa": "^1.1.4",
"mime": "^1.3.4",
"ms": "^0.7.2",
"multiparty": "^4.1.2",
"mysql": "^2.11.1",
"pg": "^6.1.0",
"express": "^4.16.4",
"fakeredis": "^2.0.0",
"jsonwebtoken": "^8.3.0",
"jwa": "^1.1.6",
"mime": "^2.3.1",
"ms": "^2.1.1",
"multiparty": "^4.2.1",
"mysql": "^2.16.0",
"pg": "^7.6.0",
"pg-escape": "^0.2.0",
"redis": "^2.6.2",
"redis": "^2.8.0",
"sockjs": "^0.3.19",
"underscore": "^1.8.3"
"underscore": "^1.9.1"
}
}

View File

@ -1246,7 +1246,7 @@ exports.install = function(server, callbackFunction) {
break;
case 'changesError':
logger.error("changesError: docId = %s %s", docId, data.stack);
if (cfgErrorFiles) {
if (cfgErrorFiles && docId) {
let destDir = cfgErrorFiles + '/browser/' + docId;
yield storage.copyPath(docId, destDir);
yield* saveErrorChanges(docId, destDir);
@ -1568,20 +1568,19 @@ exports.install = function(server, callbackFunction) {
}
//Release locks
if (isSave && conn) {
if (releaseLocks) {
const userLocks = yield* getUserLocks(docId, userId);
if (0 < userLocks.length) {
sendReleaseLock(conn, userLocks);
yield* publish({
type: commonDefines.c_oPublishType.releaseLock,
docId: docId,
userId: userId,
locks: userLocks
}, docId, userId);
}
if (releaseLocks && conn) {
const userLocks = yield* getUserLocks(docId, userId);
if (0 < userLocks.length) {
sendReleaseLock(conn, userLocks);
yield* publish({
type: commonDefines.c_oPublishType.releaseLock,
docId: docId,
userId: userId,
locks: userLocks
}, docId, userId);
}
}
if (isSave && conn) {
// Автоматически снимаем lock сами
yield* unSaveLock(conn, -1, -1);
}

View File

@ -157,7 +157,7 @@ if (cluster.isMaster) {
const urlParsed = urlModule.parse(req.url);
if (urlParsed && urlParsed.pathname) {
const filename = decodeURIComponent(path.basename(urlParsed.pathname));
sendFileOptions.headers['Content-Type'] = mime.lookup(filename);
sendFileOptions.headers['Content-Type'] = mime.getType(filename);
}
const realUrl = req.url.substring(0, index);
res.sendFile(realUrl, sendFileOptions, (err) => {

View File

@ -9,7 +9,7 @@
"resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.3.0.tgz",
"integrity": "sha1-Abik9ruhC3kmY/knLfZsfpAWba0=",
"requires": {
"cross-spawn": "5.1.0"
"cross-spawn": "^5.1.0"
}
},
"bytes": {
@ -23,12 +23,11 @@
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
},
"config": {
"version": "1.27.0",
"resolved": "https://registry.npmjs.org/config/-/config-1.27.0.tgz",
"integrity": "sha1-OrMNAID/dvQHwvR6wTJq39kIr18=",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz",
"integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==",
"requires": {
"json5": "0.4.0",
"os-homedir": "1.0.2"
"json5": "^1.0.1"
}
},
"cross-spawn": {
@ -36,9 +35,9 @@
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"requires": {
"lru-cache": "4.1.1",
"shebang-command": "1.2.0",
"which": "1.3.0"
"lru-cache": "^4.0.1",
"shebang-command": "^1.2.0",
"which": "^1.2.9"
}
},
"isexe": {
@ -47,23 +46,26 @@
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"json5": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
"integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0="
},
"lru-cache": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
"integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
"version": "1.0.1",
"resolved": "http://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"requires": {
"pseudomap": "1.0.2",
"yallist": "2.1.2"
"minimist": "^1.2.0"
}
},
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
"lru-cache": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
"integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
"requires": {
"pseudomap": "^1.0.2",
"yallist": "^2.1.2"
}
},
"minimist": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"pseudomap": {
"version": "1.0.2",
@ -75,7 +77,7 @@
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
"requires": {
"shebang-regex": "1.0.0"
"shebang-regex": "^1.0.0"
}
},
"shebang-regex": {
@ -84,11 +86,11 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
},
"which": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"requires": {
"isexe": "2.0.0"
"isexe": "^2.0.0"
}
},
"yallist": {

View File

@ -7,6 +7,6 @@
"@expo/spawn-async": "^1.3.0",
"bytes": "^3.0.0",
"co": "^4.6.0",
"config": "^1.21.0"
"config": "^2.0.1"
}
}

View File

@ -5,11 +5,11 @@
"requires": true,
"dependencies": {
"accepts": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
"integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
"requires": {
"mime-types": "2.1.17",
"mime-types": "~2.1.18",
"negotiator": "0.6.1"
}
},
@ -19,20 +19,20 @@
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"body-parser": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
"version": "1.18.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
"integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
"requires": {
"bytes": "3.0.0",
"content-type": "1.0.4",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "1.1.1",
"http-errors": "1.6.2",
"iconv-lite": "0.4.19",
"on-finished": "2.3.0",
"qs": "6.5.1",
"raw-body": "2.3.2",
"type-is": "1.6.15"
"depd": "~1.1.2",
"http-errors": "~1.6.3",
"iconv-lite": "0.4.23",
"on-finished": "~2.3.0",
"qs": "6.5.2",
"raw-body": "2.3.3",
"type-is": "~1.6.16"
}
},
"bytes": {
@ -46,12 +46,11 @@
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
},
"config": {
"version": "1.27.0",
"resolved": "https://registry.npmjs.org/config/-/config-1.27.0.tgz",
"integrity": "sha1-OrMNAID/dvQHwvR6wTJq39kIr18=",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz",
"integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==",
"requires": {
"json5": "0.4.0",
"os-homedir": "1.0.2"
"json5": "^1.0.1"
}
},
"content-disposition": {
@ -83,9 +82,9 @@
}
},
"depd": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"destroy": {
"version": "1.0.4",
@ -98,9 +97,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"encodeurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"escape-html": {
"version": "1.0.3",
@ -113,40 +112,40 @@
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"express": {
"version": "4.16.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
"integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
"version": "4.16.4",
"resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
"integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
"requires": {
"accepts": "1.3.4",
"accepts": "~1.3.5",
"array-flatten": "1.1.1",
"body-parser": "1.18.2",
"body-parser": "1.18.3",
"content-disposition": "0.5.2",
"content-type": "1.0.4",
"content-type": "~1.0.4",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "1.1.1",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"etag": "1.8.1",
"finalhandler": "1.1.0",
"depd": "~1.1.2",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.1.1",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "1.1.2",
"on-finished": "2.3.0",
"parseurl": "1.3.2",
"methods": "~1.1.2",
"on-finished": "~2.3.0",
"parseurl": "~1.3.2",
"path-to-regexp": "0.1.7",
"proxy-addr": "2.0.2",
"qs": "6.5.1",
"range-parser": "1.2.0",
"safe-buffer": "5.1.1",
"send": "0.16.1",
"serve-static": "1.13.1",
"proxy-addr": "~2.0.4",
"qs": "6.5.2",
"range-parser": "~1.2.0",
"safe-buffer": "5.1.2",
"send": "0.16.2",
"serve-static": "1.13.2",
"setprototypeof": "1.1.0",
"statuses": "1.3.1",
"type-is": "1.6.15",
"statuses": "~1.4.0",
"type-is": "~1.6.16",
"utils-merge": "1.0.1",
"vary": "1.1.2"
"vary": "~1.1.2"
}
},
"faye-websocket": {
@ -154,21 +153,21 @@
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
"requires": {
"websocket-driver": "0.7.0"
"websocket-driver": ">=0.5.1"
}
},
"finalhandler": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
"integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
"version": "1.1.1",
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
"requires": {
"debug": "2.6.9",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"on-finished": "2.3.0",
"parseurl": "1.3.2",
"statuses": "1.3.1",
"unpipe": "1.0.0"
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "~2.3.0",
"parseurl": "~1.3.2",
"statuses": "~1.4.0",
"unpipe": "~1.0.0"
}
},
"forwarded": {
@ -182,32 +181,28 @@
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"http-errors": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
"integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
"version": "1.6.3",
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
"requires": {
"depd": "1.1.1",
"depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.0.3",
"statuses": "1.3.1"
},
"dependencies": {
"setprototypeof": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
"integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
}
"setprototypeof": "1.1.0",
"statuses": ">= 1.4.0 < 2"
}
},
"http-parser-js": {
"version": "0.4.9",
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
"integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE="
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
"integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w=="
},
"iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"inherits": {
"version": "2.0.3",
@ -215,18 +210,21 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ipaddr.js": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
"integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
},
"json5": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
"integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0="
"version": "1.0.1",
"resolved": "http://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"requires": {
"minimist": "^1.2.0"
}
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"merge-descriptors": {
@ -245,18 +243,23 @@
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
},
"mime-db": {
"version": "1.30.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
"version": "1.37.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
},
"mime-types": {
"version": "2.1.17",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
"version": "2.1.21",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
"requires": {
"mime-db": "1.30.0"
"mime-db": "~1.37.0"
}
},
"minimist": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@ -268,7 +271,8 @@
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
"nodehun": {
"version": "git+https://git@github.com/ONLYOFFICE/nodehun.git#d746dbb9f6eaf8d1b5d866806785e60d9ca8ba78"
"version": "git+https://git@github.com/ONLYOFFICE/nodehun.git#0fc08b1d65c88149d1282cd3911896247355d602",
"from": "git+https://git@github.com/ONLYOFFICE/nodehun.git#0fc08b1d65c88149d1282cd3911896247355d602"
},
"on-finished": {
"version": "2.3.0",
@ -278,11 +282,6 @@
"ee-first": "1.1.1"
}
},
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"parseurl": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
@ -294,18 +293,18 @@
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"proxy-addr": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
"integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
"requires": {
"forwarded": "0.1.2",
"ipaddr.js": "1.5.2"
"forwarded": "~0.1.2",
"ipaddr.js": "1.8.0"
}
},
"qs": {
"version": "6.5.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
},
"range-parser": {
"version": "1.2.0",
@ -313,50 +312,55 @@
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
},
"raw-body": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
"integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
"integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
"requires": {
"bytes": "3.0.0",
"http-errors": "1.6.2",
"iconv-lite": "0.4.19",
"http-errors": "1.6.3",
"iconv-lite": "0.4.23",
"unpipe": "1.0.0"
}
},
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"send": {
"version": "0.16.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
"integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
"requires": {
"debug": "2.6.9",
"depd": "1.1.1",
"destroy": "1.0.4",
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"etag": "1.8.1",
"depd": "~1.1.2",
"destroy": "~1.0.4",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "1.6.2",
"http-errors": "~1.6.2",
"mime": "1.4.1",
"ms": "2.0.0",
"on-finished": "2.3.0",
"range-parser": "1.2.0",
"statuses": "1.3.1"
"on-finished": "~2.3.0",
"range-parser": "~1.2.0",
"statuses": "~1.4.0"
}
},
"serve-static": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
"integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
"requires": {
"encodeurl": "1.0.1",
"escape-html": "1.0.3",
"parseurl": "1.3.2",
"send": "0.16.1"
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.2",
"send": "0.16.2"
}
},
"setprototypeof": {
@ -369,22 +373,22 @@
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
"integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
"requires": {
"faye-websocket": "0.10.0",
"uuid": "3.1.0"
"faye-websocket": "^0.10.0",
"uuid": "^3.0.1"
}
},
"statuses": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
},
"type-is": {
"version": "1.6.15",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
"integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
"version": "1.6.16",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
"requires": {
"media-typer": "0.3.0",
"mime-types": "2.1.17"
"mime-types": "~2.1.18"
}
},
"unpipe": {
@ -398,9 +402,9 @@
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
"integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g=="
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
},
"vary": {
"version": "1.1.2",
@ -412,14 +416,14 @@
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"requires": {
"http-parser-js": "0.4.9",
"websocket-extensions": "0.1.2"
"http-parser-js": ">=0.4.0",
"websocket-extensions": ">=0.1.1"
}
},
"websocket-extensions": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz",
"integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0="
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
"integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="
}
}
}

View File

@ -5,9 +5,9 @@
"private": true,
"dependencies": {
"co": "^4.6.0",
"config": "^1.21.0",
"express": "^4.14.0",
"nodehun": "git+https://git@github.com/ONLYOFFICE/nodehun.git",
"sockjs": "^0.3.17"
"config": "^2.0.1",
"express": "^4.16.4",
"nodehun": "git+https://git@github.com/ONLYOFFICE/nodehun.git#0fc08b1d65c88149d1282cd3911896247355d602",
"sockjs": "^0.3.19"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -24,30 +24,48 @@
header {
background: #3D4A6B;
height: 80px;
height: 44px;
margin: 0 auto;
min-width: 600px;
width: auto;
padding-top: 4px;
}
header img {
margin: 20px 0 0 16px;
margin: 8px 0 0 24px;
}
table {
table-layout: fixed;
border-spacing: 0;
margin-bottom: 40px;
}
td {
padding-left: 15px;
padding-bottom: 16px;
vertical-align: top;
}
.td-caption {
font-size: 16px;
padding-bottom: 4px;
}
.td-value {
font-size: 32px;
line-height: 28px;
padding-bottom: 8px;
}
.td-separator {
padding-left: 0;
padding-top: 10px;
padding-bottom: 10px;
padding-right: 24px;
}
.main-panel {
margin: 80px auto 16px;
width: 600px;
width: 672px;
}
.header0 {
@ -56,12 +74,7 @@
}
.header1 {
font-size: 20px;
padding-bottom: 20px;
}
.header2 {
font-size: 16px;
padding: 30px 0 5px 0;
padding-bottom: 30px;
}
#doc-server-wait {
@ -94,18 +107,15 @@
}
.critical {
color: #ff0000;
font-weight: bold;
}
.warning {
color: #ff8a00;
font-weight: bold;
}
.td-caption {
font-weight: bold;
}
.td-center {
text-align: center;
.separator {
vertical-align: top;
width: 100%;
height: 0;
border-top: 1px solid #dadada;
}
</style>
</head>
<body>
@ -116,61 +126,69 @@
<div class="header0" id="doc-server-wait">Please, wait...</div>
<div class="hidden" id="doc-server-ok">
<div class="header1">Document Server information</div>
<div class="header2">Build</div>
<table>
<table width="672px">
<tr>
<td width="120px" class="td-caption">Type:</td>
<td width="500px" id="build-type"></td>
<td class="td-caption">Build</td>
<td class="td-caption">License</td>
<td class="td-caption" id="limit-type">Connections limit</td>
</tr>
<tr>
<td class="td-caption">Date:</td>
<td id="build-date"></td>
<td class="td-separator"><div class="separator"></div></td>
<td class="td-separator"><div class="separator"></div></td>
<td class="td-separator"><div class="separator"></div></td>
</tr>
<tr>
<td class="td-caption">Version:</td>
<td id="build-version"></td>
</tr>
</table>
<div class="header2">License</div>
<table>
<tr>
<td width="280px" class="td-caption" id="lic-valid-type">Valid:</td>
<td width="500px">until <span id="lic-valid"></span></td>
<td id="build-type">Type:</td>
<td><span id="lic-valid-type">Valid: </span><span id="lic-valid"></span></td>
<td rowspan="3" id="lic-limit" class="td-value"></td>
</tr>
<tr>
<td class="td-caption" id="limit-type">Concurrent users limit:</td>
<td id="lic-limit"></td>
</tr>
</table>
<div class="header2">Number Concurrent Connections</div>
<table width="600px">
<tr class="td-caption">
<td id="build-version">Version:</td>
<td></td>
<td class="td-center">Last Hour</td>
<td class="td-center">Last 24 Hours</td>
<td class="td-center">Last Week</td>
<td class="td-center">Last Month</td>
</tr>
<tr>
<td class="td-caption">Maximum:</td>
<td id="cell-hour-max" class="td-center">0</td>
<td id="cell-day-max" class="td-center">0</td>
<td id="cell-week-max" class="td-center">0</td>
<td id="cell-month-max" class="td-center">0</td>
<td id="build-date">Release date:</td>
<td></td>
</tr>
</table>
<table>
<tr>
<td colspan="4" class="td-caption">Peaks</td>
</tr>
<tr>
<td class="td-caption">Minimum:</td>
<td id="cell-hour-min" class="td-center">0</td>
<td id="cell-day-min" class="td-center">0</td>
<td id="cell-week-min" class="td-center">0</td>
<td id="cell-month-min" class="td-center">0</td>
<td class="td-separator" colspan="4"><div class="separator"></div></td>
</tr>
<tr>
<td class="td-caption">Average:</td>
<td id="cell-hour-avr" class="td-center">0</td>
<td id="cell-day-avr" class="td-center">0</td>
<td id="cell-week-avr" class="td-center">0</td>
<td id="cell-month-avr" class="td-center">0</td>
<td id="cell-hour-max" class="td-value" width="150">0</td>
<td id="cell-day-max" class="td-value" width="150">0</td>
<td id="cell-week-max" class="td-value" width="150">0</td>
<td id="cell-month-max" class="td-value" width="224">0</td>
</tr>
<tr>
<td>Last Hour</td>
<td>24 Hours</td>
<td>Week</td>
<td>Month</td>
</tr>
</table>
<table>
<tr>
<td colspan="4" class="td-caption">Average</td>
</tr>
<tr>
<td class="td-separator" colspan="4"><div class="separator"></div></td>
</tr>
<tr>
<td id="cell-hour-avr" class="td-value" width="150">0</td>
<td id="cell-day-avr" class="td-value" width="150">0</td>
<td id="cell-week-avr" class="td-value" width="150">0</td>
<td id="cell-month-avr" class="td-value" width="224">0</td>
</tr>
<tr>
<td>Last Hour</td>
<td>24 Hours</td>
<td>Week</td>
<td>Month</td>
</tr>
</table>
</div>
@ -203,23 +221,23 @@
};
function fillInfo(licenseInfo, serverInfo) {
var elem = document.getElementById('build-type');
elem.innerText = (licenseInfo.packageType == 0) ? 'Open source' : ((licenseInfo.packageType == 1) ? 'Integration' : 'Developer');
elem.innerText = 'Type: ' + ((licenseInfo.packageType == 0) ? 'Open source' : ((licenseInfo.packageType == 1) ? 'Integration Edition' : 'Developer Edition'));
elem = document.getElementById('build-date');
var builddate = new Date(licenseInfo.buildDate);
elem.innerText = builddate.toLocaleDateString();
elem.innerText = 'Release date: ' + builddate.toLocaleDateString();
elem = document.getElementById('build-version');
elem.innerText = serverInfo.buildVersion + '.' + serverInfo.buildNumber;
elem.innerText = 'Version: ' + serverInfo.buildVersion + '.' + serverInfo.buildNumber;
elem = document.getElementById('limit-type');
elem.innerText = (licenseInfo.usersCount>0) ? 'Concurrent users limit:' : 'Concurrent connections limit:';
elem.innerText = (licenseInfo.usersCount>0) ? 'Users limit' : 'Connections limit' ;
elem = document.getElementById('lic-limit');
elem.innerText = (licenseInfo.usersCount || licenseInfo.connections);
elem = document.getElementById('lic-valid-type');
elem.innerText = (licenseInfo.mode == 1) ? 'Valid:' : 'Updates available:';
elem.innerText = (licenseInfo.mode == 1) ? 'Valid: ' : 'Updates available: ';
var licdate = new Date(licenseInfo.endDate);
elem = document.getElementById('lic-valid');
@ -234,11 +252,11 @@
for (var agregate in info.connectionsStat[precision].edit) {
var value = info.connectionsStat[precision].edit[agregate];
var elem = document.getElementById('cell-' + precision + '-' + agregate);
elem.innerText = value;
if (value >= limit) {
elem.classList.add("critical");
} else if (value >= limit * 0.7) {
elem.classList.add("warning");
if (elem) {
elem.innerText = value;
if (value >= limit) {
elem.classList.add("critical");
}
}
}
}