Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging

This commit is contained in:
yflory committed 2017-07-05 12:27:08 +02:00
commit 35e8c1a63b
8 files changed
+74 -84

No files matched your search

+2 -1
View File
@@ -38,6 +38,7 @@
"scrypt-async": "1.2.0", "scrypt-async": "1.2.0",
"require-css": "0.1.10", "require-css": "0.1.10",
"less": "^2.7.2", "less": "^2.7.2",
"bootstrap": "#v4.0.0-alpha.6" "bootstrap": "#v4.0.0-alpha.6",
"diff-dom": "2.1.1"
} }
} }
+6 -5
View File
@@ -583,9 +583,10 @@ var resetUserPins = function (Env, publicKey, channelList, cb) {
if (e) { return void cb(e); } if (e) { return void cb(e); }
var pinSize = sumChannelSizes(sizes); var pinSize = sumChannelSizes(sizes);
getFreeSpace(Env, publicKey, function (e, free) {
getLimit(Env, publicKey, function (e, limit) {
if (e) { if (e) {
WARN('getFreeSpace', e); WARN('[RESET_ERR]', e);
return void cb(e); return void cb(e);
} }
@@ -597,7 +598,7 @@ var resetUserPins = function (Env, publicKey, channelList, cb) {
They will not be able to pin additional pads until they upgrade They will not be able to pin additional pads until they upgrade
or delete enough files to go back under their limit. */ or delete enough files to go back under their limit. */
if (pinSize > free && session.hasPinned) { return void(cb('E_OVER_LIMIT')); } if (pinSize > limit && session.hasPinned) { return void(cb('E_OVER_LIMIT')); }
pinStore.message(publicKey, JSON.stringify(['RESET', channelList]), pinStore.message(publicKey, JSON.stringify(['RESET', channelList]),
function (e) { function (e) {
if (e) { return void cb(e); } if (e) { return void cb(e); }
@@ -1087,8 +1088,8 @@ RPC.create = function (config /*:typeof(ConfigType)*/, cb /*:(?Error, ?Function)
return void handleMessage(false); return void handleMessage(false);
} }
// restrict upload capability unless explicitly disabled // allow unrestricted uploads unless restrictUploads is true
if (config.restrictUploads === false) { if (config.restrictUploads !== true) {
return void handleMessage(true); return void handleMessage(true);
} }
-1
View File
@@ -9,7 +9,6 @@ define([
'/common/cryptpad-common.js', '/common/cryptpad-common.js',
'/common/cryptget.js', '/common/cryptget.js',
'/common/diffMarked.js', '/common/diffMarked.js',
'/bower_components/tweetnacl/nacl-fast.min.js', // needed for media-tag
'css!/bower_components/components-font-awesome/css/font-awesome.min.css', 'css!/bower_components/components-font-awesome/css/font-awesome.min.css',
'less!/customize/src/less/cryptpad.less' 'less!/customize/src/less/cryptpad.less'
+37 -47
View File
@@ -16,9 +16,10 @@ define([
'/common/clipboard.js', '/common/clipboard.js',
'/common/pinpad.js', '/common/pinpad.js',
'/customize/application_config.js' '/customize/application_config.js',
'/common/media-tag.js',
], function ($, Config, Messages, Store, Util, Hash, UI, History, UserList, Title, Metadata, ], function ($, Config, Messages, Store, Util, Hash, UI, History, UserList, Title, Metadata,
CodeMirror, Files, FileCrypto, Clipboard, Pinpad, AppConfig) { CodeMirror, Files, FileCrypto, Clipboard, Pinpad, AppConfig, MediaTag) {
/* This file exposes functionality which is specific to Cryptpad, but not to /* This file exposes functionality which is specific to Cryptpad, but not to
any particular pad type. This includes functions for committing metadata any particular pad type. This includes functions for committing metadata
@@ -830,7 +831,9 @@ define([
if (!pinsReady()) { return void cb('RPC_NOT_READY'); } if (!pinsReady()) { return void cb('RPC_NOT_READY'); }
var account = common.account; var account = common.account;
if (typeof(account.limit) !== 'number' ||
var ALWAYS_REVALIDATE = true;
if (ALWAYS_REVALIDATE || typeof(account.limit) !== 'number' ||
typeof(account.plan) !== 'string' || typeof(account.plan) !== 'string' ||
typeof(account.note) !== 'string') { typeof(account.note) !== 'string') {
return void rpc.getLimit(function (e, limit, plan, note) { return void rpc.getLimit(function (e, limit, plan, note) {
@@ -893,7 +896,6 @@ define([
var $container = $('<span>', {'class':'limit-container'}); var $container = $('<span>', {'class':'limit-container'});
var todo; var todo;
var updateUsage = window.updateUsage = common.notAgainForAnother(function () { var updateUsage = window.updateUsage = common.notAgainForAnother(function () {
console.log("updating usage bar");
common.getPinnedUsage(todo); common.getPinnedUsage(todo);
}, LIMIT_REFRESH_RATE); }, LIMIT_REFRESH_RATE);
@@ -963,21 +965,12 @@ define([
}; };
setInterval(function () { setInterval(function () {
var t = updateUsage(); updateUsage();
if (t) {
console.log("usage already updated. eligible for refresh in %sms", t);
}
}, LIMIT_REFRESH_RATE * 3); }, LIMIT_REFRESH_RATE * 3);
updateUsage(); updateUsage();
getProxy().on('change', ['drive'], function () { getProxy().on('change', ['drive'], function () {
var t = updateUsage(); updateUsage();
if (t) {
console.log("usage bar update throttled due to overuse." +
" Eligible for update in %sms", t);
} else {
console.log("usage bar updated");
}
}); });
cb(null, $container); cb(null, $container);
}; };
@@ -1231,18 +1224,18 @@ define([
} }
if (decrypted.blob) { if (decrypted.blob) {
size = decrypted.blob.size size = decrypted.blob.size;
} }
var sizeMb = Cryptpad.bytesToMegabytes(size); var sizeMb = common.bytesToMegabytes(size);
var $btn = $(root).find('button'); var $btn = $(root).find('button');
$btn.addClass('btn btn-success') $btn.addClass('btn btn-success')
.attr('type', 'download') .attr('type', 'download')
.html(function (i, html) { .html(function () {
var text = Messages.download_mt_button + '<br>'; var text = Messages.download_mt_button + '<br>';
if (title) { if (title) {
text += '<b>' + Cryptpad.fixHTML(title) + '</b><br>'; text += '<b>' + common.fixHTML(title) + '</b><br>';
} }
if (size) { if (size) {
text += '<em>' + Messages._getKey('formattedMB', [sizeMb]) + '</em>'; text += '<em>' + Messages._getKey('formattedMB', [sizeMb]) + '</em>';
@@ -1284,35 +1277,32 @@ define([
var $img = $('<media-tag>').appendTo($container); var $img = $('<media-tag>').appendTo($container);
$img.attr('src', src); $img.attr('src', src);
$img.attr('data-crypto-key', 'cryptpad:' + cryptKey); $img.attr('data-crypto-key', 'cryptpad:' + cryptKey);
require(['/common/media-tag.js'], function (MediaTag) { MediaTag($img[0]);
MediaTag($img[0]); var observer = new MutationObserver(function(mutations) {
var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) {
mutations.forEach(function(mutation) { if (mutation.type === 'childList' && mutation.addedNodes.length) {
if (mutation.type === 'childList' && mutation.addedNodes.length) { if (mutation.addedNodes.length > 1 ||
console.log(mutation); mutation.addedNodes[0].nodeName !== 'IMG') {
if (mutation.addedNodes.length > 1 || $img.remove();
mutation.addedNodes[0].nodeName !== 'IMG') { return void displayDefault();
$img.remove();
return void displayDefault();
}
var $image = $img.find('img');
var onLoad = function () {
var w = $image.width();
var h = $image.height();
if (w>h) {
$image.css('max-height', '100%');
$img.css('flex-direction', 'row');
if (cb) { cb($img); }
return;
}
$image.css('max-width', '100%');
$img.css('flex-direction', 'column');
if (cb) { cb($img); }
};
if ($image[0].complete) { onLoad(); }
$image.on('load', onLoad);
} }
}); var $image = $img.find('img');
var onLoad = function () {
var w = $image.width();
var h = $image.height();
if (w>h) {
$image.css('max-height', '100%');
$img.css('flex-direction', 'row');
if (cb) { cb($img); }
return;
}
$image.css('max-width', '100%');
$img.css('flex-direction', 'column');
if (cb) { cb($img); }
};
if ($image[0].complete) { onLoad(); }
$image.on('load', onLoad);
}
}); });
observer.observe($img[0], { observer.observe($img[0], {
attributes: false, attributes: false,
+1 -1
View File
@@ -1 +1 @@
(function webpackUniversalModuleDefinition(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else if(typeof exports==="object")exports["MediaTag"]=factory();else root["MediaTag"]=factory()})(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.i=function(value){return value};__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=86)}([function(module,exports,__webpack_require__){"use strict";var Identifier={IMAGE:"image",AUDIO:"audio",VIDEO:"video",PDF:"pdf",DASH:"dash",DOWNLOAD:"download",CRYPTO:"crypto",CLEAR_KEY:"clear-key",MEDIA_OBJECT:"media-object"};module.exports=Identifier},function(module,exports,__webpack_require__){"use strict";var Type={MATCHER:"matcher",RENDERER:"renderer",FILTER:"filter",SANITIZER:"sanitizer"};module.exports=Type},function(module,exports,__webpack_require__){"use strict";var ProcessingEngine=__webpack_require__(25);var MatchingEngine=__webpack_require__(24);var PluginStore=__webpack_require__(44);var UriStore=__webpack_require__(45);var Parser=__webpack_require__(23);var MediaObject=__webpack_require__(22);function MediaTag(elements){if(elements instanceof Array){var mediaObjects=[];elements.forEach(function(element){if(element.mediaObject){mediaObjects.push(element.mediaObject)}else{mediaObjects.push(MediaTag.start(element))}});return mediaObjects}var element=elements;return MediaTag.start(element)}MediaTag.createMediaObject=function(element){var mediaObject=new MediaObject(element);var properties=Parser.parse(mediaObject);mediaObject.setProperties(properties);return mediaObject};MediaTag.start=function(element){var mediaObject=MediaTag.createMediaObject(element);return MediaTag.processingEngine.start(mediaObject)};MediaTag.pluginStore=MediaTag.pluginStore||new PluginStore;MediaTag.uriStore=MediaTag.uriStore||new UriStore("../plugins");MediaTag.processingEngine=MediaTag.processingEngine||new ProcessingEngine(MediaTag.pluginStore);MediaTag.matchingEngine=MediaTag.matchingEngine||new MatchingEngine(MediaTag.pluginStore,MediaTag.uriStore);MediaTag.loadingEngine=null;module.exports=MediaTag},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Type=__webpack_require__(1);var Occurrence=__webpack_require__(5);var Plugin=__webpack_require__(6);var Matcher=function(_Plugin){_inherits(Matcher,_Plugin);function Matcher(identifier,targetType){_classCallCheck(this,Matcher);var _this=_possibleConstructorReturn(this,(Matcher.__proto__||Object.getPrototypeOf(Matcher)).call(this,identifier,Type.MATCHER,Occurrence.ANY));_this.targetType=targetType;return _this}_createClass(Matcher,[{key:"getTargetType",value:function getTargetType(){return this.targetType}}]);return MatchLine truncated (function webpackUniversalModuleDefinition(root,factory){if(typeof exports==="object"&&typeof module==="object")module.exports=factory();else if(typeof define==="function"&&define.amd)define([],factory);else if(typeof exports==="object")exports["MediaTag"]=factory();else root["MediaTag"]=factory()})(this,function(){return function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.i=function(value){return value};__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=86)}([function(module,exports,__webpack_require__){"use strict";var Identifier={IMAGE:"image",AUDIO:"audio",VIDEO:"video",PDF:"pdf",DASH:"dash",DOWNLOAD:"download",CRYPTO:"crypto",CLEAR_KEY:"clear-key",MEDIA_OBJECT:"media-object"};module.exports=Identifier},function(module,exports,__webpack_require__){"use strict";var Type={MATCHER:"matcher",RENDERER:"renderer",FILTER:"filter",SANITIZER:"sanitizer"};module.exports=Type},function(module,exports,__webpack_require__){"use strict";var ProcessingEngine=__webpack_require__(25);var MatchingEngine=__webpack_require__(24);var PluginStore=__webpack_require__(44);var UriStore=__webpack_require__(45);var Parser=__webpack_require__(23);var MediaObject=__webpack_require__(22);function MediaTag(elements){if(elements instanceof Array){var mediaObjects=[];elements.forEach(function(element){if(element.mediaObject){mediaObjects.push(element.mediaObject)}else{mediaObjects.push(MediaTag.start(element))}});return mediaObjects}var element=elements;return MediaTag.start(element)}MediaTag.createMediaObject=function(element){var mediaObject=new MediaObject(element);var properties=Parser.parse(mediaObject);mediaObject.setProperties(properties);return mediaObject};MediaTag.start=function(element){var mediaObject=MediaTag.createMediaObject(element);return MediaTag.processingEngine.start(mediaObject)};MediaTag.pluginStore=MediaTag.pluginStore||new PluginStore;MediaTag.uriStore=MediaTag.uriStore||new UriStore("../plugins");MediaTag.processingEngine=MediaTag.processingEngine||new ProcessingEngine(MediaTag.pluginStore);MediaTag.matchingEngine=MediaTag.matchingEngine||new MatchingEngine(MediaTag.pluginStore,MediaTag.uriStore);MediaTag.loadingEngine=null;module.exports=MediaTag},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return call&&(typeof call==="object"||typeof call==="function")?call:self}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass)}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass}var Type=__webpack_require__(1);var Occurrence=__webpack_require__(5);var Plugin=__webpack_require__(6);var Matcher=function(_Plugin){_inherits(Matcher,_Plugin);function Matcher(identifier,targetType){_classCallCheck(this,Matcher);var _this=_possibleConstructorReturn(this,(Matcher.__proto__||Object.getPrototypeOf(Matcher)).call(this,identifier,Type.MATCHER,Occurrence.ANY));_this.targetType=targetType;return _this}_createClass(Matcher,[{key:"getTargetType",value:function getTargetType(){return this.targetType}}]);return MatchLine truncated
+27 -27
View File
@@ -7,12 +7,14 @@ define([
'/common/visible.js', '/common/visible.js',
'/common/notify.js', '/common/notify.js',
'/file/file-crypto.js', '/file/file-crypto.js',
'/common/media-tag.js',
'/bower_components/file-saver/FileSaver.min.js', '/bower_components/file-saver/FileSaver.min.js',
'/bower_components/tweetnacl/nacl-fast.min.js',
'css!/bower_components/components-font-awesome/css/font-awesome.min.css', 'css!/bower_components/components-font-awesome/css/font-awesome.min.css',
'less!/customize/src/less/cryptpad.less', 'less!/customize/src/less/cryptpad.less',
], function ($, Crypto, realtimeInput, Toolbar, Cryptpad, Visible, Notify, FileCrypto) { ], function ($, Crypto, realtimeInput, Toolbar, Cryptpad, Visible, Notify, FileCrypto, MediaTag) {
var Messages = Cryptpad.Messages; var Messages = Cryptpad.Messages;
var saveAs = window.saveAs; var saveAs = window.saveAs;
var Nacl = window.nacl; var Nacl = window.nacl;
@@ -133,32 +135,30 @@ define([
console.log(progress.percent); console.log(progress.percent);
}); });
require(['/common/media-tag.js'], function (MediaTag) { /**
/** * Allowed mime types that have to be set for a rendering after a decryption.
* Allowed mime types that have to be set for a rendering after a decryption. *
* * @type {Array}
* @type {Array} */
*/ var allowedMediaTypes = [
var allowedMediaTypes = [ 'image/png',
'image/png', 'image/jpeg',
'image/jpeg', 'image/jpg',
'image/jpg', 'image/gif',
'image/gif', 'audio/mp3',
'audio/mp3', 'audio/ogg',
'audio/ogg', 'audio/wav',
'audio/wav', 'audio/webm',
'audio/webm', 'video/mp4',
'video/mp4', 'video/ogg',
'video/ogg', 'video/webm',
'video/webm', 'application/pdf',
'application/pdf', 'application/dash+xml',
'application/dash+xml', 'download'
'download' ];
]; MediaTag.CryptoFilter.setAllowedMediaTypes(allowedMediaTypes);
MediaTag.CryptoFilter.setAllowedMediaTypes(allowedMediaTypes);
MediaTag($mt[0]); MediaTag($mt[0]);
});
}; };
var todoBigFile = function (sizeMb) { var todoBigFile = function (sizeMb) {
-1
View File
@@ -11,7 +11,6 @@ define([
'/bower_components/marked/marked.min.js', '/bower_components/marked/marked.min.js',
'cm/lib/codemirror', 'cm/lib/codemirror',
'cm/mode/markdown/markdown', 'cm/mode/markdown/markdown',
'/bower_components/tweetnacl/nacl-fast.min.js',
'less!/profile/main.less', 'less!/profile/main.less',
], function ($, Cryptpad, Listmap, Crypto, Marked, CodeMirror) { ], function ($, Cryptpad, Listmap, Crypto, Marked, CodeMirror) {
+1 -1
View File
@@ -9,7 +9,6 @@ define([
'/common/cryptpad-common.js', '/common/cryptpad-common.js',
'/common/cryptget.js', '/common/cryptget.js',
'/slide/slide.js', '/slide/slide.js',
'/bower_components/tweetnacl/nacl-fast.min.js', // needed for media-tag
'css!/bower_components/components-font-awesome/css/font-awesome.min.css', 'css!/bower_components/components-font-awesome/css/font-awesome.min.css',
'less!/customize/src/less/cryptpad.less', 'less!/customize/src/less/cryptpad.less',
@@ -470,6 +469,7 @@ define([
}).append($('<span>', {'class': 'drawer'}).text(Messages.printText)); }).append($('<span>', {'class': 'drawer'}).text(Messages.printText));
// TODO reenable this when it is working again // TODO reenable this when it is working again
$printButton = $printButton;
//$drawer.append($printButton); //$drawer.append($printButton);
var $slideOptions = $('<button>', { var $slideOptions = $('<button>', {