Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging
This commit is contained in:
commit
9eb8e55cf6
@ -32,7 +32,7 @@ server {
|
|||||||
set $scriptSrc "'self'";
|
set $scriptSrc "'self'";
|
||||||
set $connectSrc "'self' wss://cryptpad.fr wss://api.cryptpad.fr";
|
set $connectSrc "'self' wss://cryptpad.fr wss://api.cryptpad.fr";
|
||||||
set $fontSrc "'self'";
|
set $fontSrc "'self'";
|
||||||
set $imgSrc "data: *";
|
set $imgSrc "data: * blob:";
|
||||||
set $frameSrc "'self' beta.cryptpad.fr";
|
set $frameSrc "'self' beta.cryptpad.fr";
|
||||||
|
|
||||||
if ($uri = /pad/inner.html) {
|
if ($uri = /pad/inner.html) {
|
||||||
@ -65,8 +65,12 @@ server {
|
|||||||
rewrite ^.*$ /customize/api/config break;
|
rewrite ^.*$ /customize/api/config break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
location ^~ /blob/ {
|
||||||
|
try_files $uri =404;
|
||||||
|
}
|
||||||
|
|
||||||
## TODO fix in the code so that we don't need this
|
## TODO fix in the code so that we don't need this
|
||||||
location ~ ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard)$ {
|
location ~ ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard|file|media)$ {
|
||||||
rewrite ^(.*)$ $1/ redirect;
|
rewrite ^(.*)$ $1/ redirect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -7,14 +7,16 @@ define(function () {
|
|||||||
var userData = exp.userData = {};
|
var userData = exp.userData = {};
|
||||||
var userList = exp.userList = info.userList;
|
var userList = exp.userList = info.userList;
|
||||||
var myData = exp.myData = {};
|
var myData = exp.myData = {};
|
||||||
var myUserName = exp.myUserName = info.myID;
|
exp.myUserName = info.myID;
|
||||||
var myNetfluxId = exp.myNetfluxId = info.myID;
|
exp.myNetfluxId = info.myID;
|
||||||
|
|
||||||
|
var network = Cryptpad.getNetwork();
|
||||||
|
|
||||||
var parsed = Cryptpad.parsePadUrl(window.location.href);
|
var parsed = Cryptpad.parsePadUrl(window.location.href);
|
||||||
var appType = parsed ? parsed.type : undefined;
|
var appType = parsed ? parsed.type : undefined;
|
||||||
|
|
||||||
var users = userList.users;
|
|
||||||
var addToUserData = exp.addToUserData = function(data) {
|
var addToUserData = exp.addToUserData = function(data) {
|
||||||
|
var users = userList.users;
|
||||||
for (var attrname in data) { userData[attrname] = data[attrname]; }
|
for (var attrname in data) { userData[attrname] = data[attrname]; }
|
||||||
|
|
||||||
if (users && users.length) {
|
if (users && users.length) {
|
||||||
@ -34,7 +36,7 @@ define(function () {
|
|||||||
return {
|
return {
|
||||||
data: userData,
|
data: userData,
|
||||||
list: userList,
|
list: userList,
|
||||||
userNetfluxId: myNetfluxId
|
userNetfluxId: exp.myNetfluxId
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -44,13 +46,14 @@ define(function () {
|
|||||||
if(myUserNameTemp.length > 32) {
|
if(myUserNameTemp.length > 32) {
|
||||||
myUserNameTemp = myUserNameTemp.substr(0, 32);
|
myUserNameTemp = myUserNameTemp.substr(0, 32);
|
||||||
}
|
}
|
||||||
myUserName = myUserNameTemp;
|
exp.myUserName = myUserNameTemp;
|
||||||
myData[myNetfluxId] = {
|
myData = {};
|
||||||
name: myUserName,
|
myData[exp.myNetfluxId] = {
|
||||||
|
name: exp.myUserName,
|
||||||
uid: Cryptpad.getUid(),
|
uid: Cryptpad.getUid(),
|
||||||
};
|
};
|
||||||
addToUserData(myData);
|
addToUserData(myData);
|
||||||
Cryptpad.setAttribute('username', myUserName, function (err) {
|
Cryptpad.setAttribute('username', exp.myUserName, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log("Couldn't set username");
|
console.log("Couldn't set username");
|
||||||
console.error(err);
|
console.error(err);
|
||||||
@ -72,7 +75,7 @@ define(function () {
|
|||||||
if (typeof(lastName) === 'string') {
|
if (typeof(lastName) === 'string') {
|
||||||
setName(lastName, onLocal);
|
setName(lastName, onLocal);
|
||||||
} else {
|
} else {
|
||||||
myData[myNetfluxId] = {
|
myData[exp.myNetfluxId] = {
|
||||||
name: "",
|
name: "",
|
||||||
uid: Cryptpad.getUid(),
|
uid: Cryptpad.getUid(),
|
||||||
};
|
};
|
||||||
@ -90,6 +93,11 @@ define(function () {
|
|||||||
setName(newName, onLocal);
|
setName(newName, onLocal);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
network.on('reconnect', function (uid) {
|
||||||
|
exp.myNetfluxId = uid;
|
||||||
|
exp.setName(exp.myUserName);
|
||||||
|
});
|
||||||
|
|
||||||
return exp;
|
return exp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
<li><a tabindex="-1" data-icon="fa-file-code-o" class="newdoc own editable dropdown-item" data-type="code" data-localization="button_newcode">New code</a></li>
|
<li><a tabindex="-1" data-icon="fa-file-code-o" class="newdoc own editable dropdown-item" data-type="code" data-localization="button_newcode">New code</a></li>
|
||||||
<li><a tabindex="-1" data-icon="fa-file-powerpoint-o" class="newdoc own editable dropdown-item" data-type="slide" data-localization="button_newslide">New slide</a></li>
|
<li><a tabindex="-1" data-icon="fa-file-powerpoint-o" class="newdoc own editable dropdown-item" data-type="slide" data-localization="button_newslide">New slide</a></li>
|
||||||
<li><a tabindex="-1" data-icon="fa-calendar" class="newdoc own editable dropdown-item" data-type="poll" data-localization="button_newpoll">New poll</a></li>
|
<li><a tabindex="-1" data-icon="fa-calendar" class="newdoc own editable dropdown-item" data-type="poll" data-localization="button_newpoll">New poll</a></li>
|
||||||
<li><a tabindex="-1" data-icon="fa-calendar" class="newdoc own editable dropdown-item" data-type="whiteboard" data-localization="button_newwhiteboard">New whiteboard</a></li>
|
<li><a tabindex="-1" data-icon="fa-paint-brush" class="newdoc own editable dropdown-item" data-type="whiteboard" data-localization="button_newwhiteboard">New whiteboard</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div id="defaultContextMenu" class="contextMenu dropdown clearfix">
|
<div id="defaultContextMenu" class="contextMenu dropdown clearfix">
|
||||||
|
|||||||
@ -2369,7 +2369,7 @@ define([
|
|||||||
module.hideMenu();
|
module.hideMenu();
|
||||||
});
|
});
|
||||||
|
|
||||||
$appContainer.on('click', function (e) {
|
$appContainer.on('mousedown', function (e) {
|
||||||
if (e.which !== 1) { return ; }
|
if (e.which !== 1) { return ; }
|
||||||
removeSelected(e);
|
removeSelected(e);
|
||||||
removeInput();
|
removeInput();
|
||||||
|
|||||||
@ -30,11 +30,17 @@
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
.inputfile + label {
|
|
||||||
border: 2px solid black;
|
.block {
|
||||||
display: block;
|
display: block;
|
||||||
height: 500px;
|
height: 500px;
|
||||||
width: 500px;
|
width: 500px;
|
||||||
|
}
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.inputfile + label {
|
||||||
|
border: 2px solid black;
|
||||||
background-color: rgba(50, 50, 50, .10);
|
background-color: rgba(50, 50, 50, .10);
|
||||||
margin: 50px;
|
margin: 50px;
|
||||||
}
|
}
|
||||||
@ -50,7 +56,9 @@
|
|||||||
<div id="toolbar" class="toolbar-container"></div>
|
<div id="toolbar" class="toolbar-container"></div>
|
||||||
<div id="upload-form" style="display: none;">
|
<div id="upload-form" style="display: none;">
|
||||||
<input type="file" name="file" id="file" class="inputfile" />
|
<input type="file" name="file" id="file" class="inputfile" />
|
||||||
<label for="file">Choose a file</label>
|
<label for="file" class="block">Choose a file</label>
|
||||||
|
</div>
|
||||||
|
<div id="feedback" class="block hidden">
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@ -20,6 +20,7 @@ define([
|
|||||||
|
|
||||||
var ifrw = $('#pad-iframe')[0].contentWindow;
|
var ifrw = $('#pad-iframe')[0].contentWindow;
|
||||||
var $iframe = $('#pad-iframe').contents();
|
var $iframe = $('#pad-iframe').contents();
|
||||||
|
var $form = $iframe.find('#upload-form');
|
||||||
|
|
||||||
Cryptpad.addLoadingScreen();
|
Cryptpad.addLoadingScreen();
|
||||||
|
|
||||||
@ -85,16 +86,18 @@ define([
|
|||||||
''
|
''
|
||||||
].join('/');
|
].join('/');
|
||||||
|
|
||||||
APP.$form.hide();
|
$form.hide();
|
||||||
|
|
||||||
var newU8 = FileCrypto.joinChunks(chunks);
|
var newU8 = FileCrypto.joinChunks(chunks);
|
||||||
FileCrypto.decrypt(newU8, key, function (e, res) {
|
FileCrypto.decrypt(newU8, key, function (e, res) {
|
||||||
|
if (e) { return console.error(e); }
|
||||||
var title = document.title = res.metadata.name;
|
var title = document.title = res.metadata.name;
|
||||||
myFile = res.content;
|
myFile = res.content;
|
||||||
myDataType = res.metadata.type;
|
myDataType = res.metadata.type;
|
||||||
|
|
||||||
var defaultName = Cryptpad.getDefaultName(Cryptpad.parsePadUrl(window.location.href));
|
var defaultName = Cryptpad.getDefaultName(Cryptpad.parsePadUrl(window.location.href));
|
||||||
APP.updateTitle(title || defaultName);
|
APP.updateTitle(title || defaultName);
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -128,8 +131,6 @@ define([
|
|||||||
var andThen = function () {
|
var andThen = function () {
|
||||||
var $bar = $iframe.find('.toolbar-container');
|
var $bar = $iframe.find('.toolbar-container');
|
||||||
|
|
||||||
// Test hash:
|
|
||||||
// #/2/K6xWU-LT9BJHCQcDCT-DcQ/TBo77200c0e-FdldQFcnQx4Y/
|
|
||||||
var secret;
|
var secret;
|
||||||
var hexFileName;
|
var hexFileName;
|
||||||
if (window.location.hash) {
|
if (window.location.hash) {
|
||||||
@ -218,12 +219,15 @@ define([
|
|||||||
var key = Nacl.util.decodeBase64(cryptKey);
|
var key = Nacl.util.decodeBase64(cryptKey);
|
||||||
|
|
||||||
FileCrypto.decrypt(u8, key, function (e, data) {
|
FileCrypto.decrypt(u8, key, function (e, data) {
|
||||||
|
if (e) {
|
||||||
|
Cryptpad.removeLoadingScreen();
|
||||||
|
return console.error(e);
|
||||||
|
}
|
||||||
console.log(data);
|
console.log(data);
|
||||||
var title = document.title = data.metadata.name;
|
var title = document.title = data.metadata.name;
|
||||||
myFile = data.content;
|
myFile = data.content;
|
||||||
myDataType = data.metadata.type;
|
myDataType = data.metadata.type;
|
||||||
updateTitle(title || defaultName);
|
updateTitle(title || defaultName);
|
||||||
|
|
||||||
Cryptpad.removeLoadingScreen();
|
Cryptpad.removeLoadingScreen();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -233,13 +237,12 @@ define([
|
|||||||
return Cryptpad.alert("You must be logged in to upload files");
|
return Cryptpad.alert("You must be logged in to upload files");
|
||||||
}
|
}
|
||||||
|
|
||||||
var $form = APP.$form = $iframe.find('#upload-form');
|
|
||||||
$form.css({
|
$form.css({
|
||||||
display: 'block',
|
display: 'block',
|
||||||
});
|
});
|
||||||
|
|
||||||
$form.find("#file").on('change', function (e) {
|
var handleFile = function (file) {
|
||||||
var file = e.target.files[0];
|
console.log(file);
|
||||||
var reader = new FileReader();
|
var reader = new FileReader();
|
||||||
reader.onloadend = function () {
|
reader.onloadend = function () {
|
||||||
upload(this.result, {
|
upload(this.result, {
|
||||||
@ -248,6 +251,21 @@ define([
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
reader.readAsArrayBuffer(file);
|
reader.readAsArrayBuffer(file);
|
||||||
|
};
|
||||||
|
|
||||||
|
$form.find("#file").on('change', function (e) {
|
||||||
|
var file = e.target.files[0];
|
||||||
|
handleFile(file);
|
||||||
|
});
|
||||||
|
|
||||||
|
$form
|
||||||
|
.on('drag dragstart dragend dragover dragenter dragleave drop', function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
})
|
||||||
|
.on('drop', function (e) {
|
||||||
|
var dropped = e.originalEvent.dataTransfer.files;
|
||||||
|
handleFile(dropped[0]);
|
||||||
});
|
});
|
||||||
|
|
||||||
// we're in upload mode
|
// we're in upload mode
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user