File manager in the home page, lint

This commit is contained in:
yflory 2016-12-19 17:53:03 +01:00
parent 4646d5c866
commit e3f484d876
10 changed files with 61 additions and 31 deletions

View File

@ -33,7 +33,7 @@ define([
// implement in alternative store
Store.setBatch = function (map, cb) {
Object.keys(map).forEach(function (key) {
safeSet(key, val);
safeSet(key, map[key]);
});
cb(void 0, map);
};

View File

@ -40,7 +40,7 @@
<div id="main">
<center>
<img class="imgcenter cryptofist" src="/customize/cryptofist_small.png" />
<h1 data-localization="main_slogan">Unity is Strength - Collaboration is Key</h1>
<h1>Unity is Strength - Collaboration is Key</h1>
</center>
<p data-localization="main_p1"><!-- Zero Knowledge collaborative realtime editor. Protected from the NSA. --></p>
@ -65,9 +65,9 @@
<strong>OUPS</strong> Afin de pouvoir réaliser le cryptage depuis votre navigateur, Javascript est <strong>vraiment</strong> requis.
</p>
</noscript>
<h5 id="tryit" data-localization="tryIt"></h5>
<h5 id="tryit" data-localization="tryIt"></h5> (<a href="/file" target="_blank" data-localization="main_openFileManager">Open in a new tab</a>)
<!-- <table class="recent scroll" style="display:none">
<!--<table class="recent scroll" style="display:none">
<tbody>
<tr>
@ -79,9 +79,8 @@
</tr>
</tbody>
</table>
-->
<iframe src="/file#iframe" style="width: 100%; height: 500px;"></iframe>
</table>-->
<iframe src="/file/#iframe" id="fileManagerIframe" style="display: none;"></iframe>
<div id="buttons" class="buttons">
<a id="create-pad" class="button create" href="/pad/" data-localization="button_newpad"></a>

View File

@ -321,6 +321,11 @@ tr {
font-size: medium;
padding-bottom: 1em;
}
#fileManagerIframe {
width: 100%;
height: 500px;
margin-top: 15px;
}
/* buttons */
.create,
.action {

View File

@ -123,16 +123,19 @@ define([
if (recentPads.length) {
recentPads.sort(Cryptpad.mostRecent);
makeRecentPadsTable(recentPads);
$('iframe').attr('style', '');
$tryit.removeAttr('data-localization');
$tryit.text(Messages.recentPadsIframe);
//makeRecentPadsTable(recentPads);
}
if (hasRecent) {
/*if (hasRecent) {
$('table').attr('style', '');
// Race condition here, this is triggered before the localization in HTML
// so we have to remove the data-localization attr
$tryit.removeAttr('data-localization');
$tryit.text(Messages.recentPads);
}
}*/
});
};

View File

@ -150,6 +150,12 @@ p, pre, td, a, table, tr {
padding-bottom: 1em;
}
#fileManagerIframe {
width: 100%;
height: 500px;
margin-top: 15px;
}
/* buttons */
.create, .action {
@thick: 2px;

View File

@ -25,9 +25,9 @@
<strong>OUPS</strong> Afin de pouvoir réaliser le cryptage depuis votre navigateur, Javascript est <strong>vraiment</strong> requis.
</p>
</noscript>
<h5 id="tryit" data-localization="tryIt"></h5>
<h5 id="tryit" data-localization="tryIt"></h5> (<a href="/file" target="_blank" data-localization="main_openFileManager">Open in a new tab</a>)
<table class="recent scroll" style="display:none">
<!--<table class="recent scroll" style="display:none">
<tbody>
<tr>
@ -39,7 +39,8 @@
</tr>
</tbody>
</table>
</table>-->
<iframe src="/file/#iframe" id="fileManagerIframe" style="display: none;"></iframe>
<div id="buttons" class="buttons">
<a id="create-pad" class="button create" href="/pad/" data-localization="button_newpad"></a>

View File

@ -104,6 +104,7 @@ define(function () {
out.tryIt = 'Essayez-le !';
out.recentPads = 'Vos documents récents (stockés uniquement dans votre navigateur)';
out.recentPadsIframe = 'Vos documents récents';
out.okButton = 'OK (Entrée)';
out.cancelButton = 'Annuler (Echap)';
@ -217,6 +218,7 @@ define(function () {
out.main_about = 'À propos';
out.main_about_p1 = 'Vous pouvez en apprendre davantage sur notre <a href="/privacy.html" title="">politique de confidentialité</a> et nos <a href="/terms.html">conditions d\'utilisation</a>.';
out.main_about_p2 = 'Si vous avez des questions ou commentaires, vous pouvez <a href="https://twitter.com/cryptpad">nous tweeter</a>, ouvrir une issue sur <a href="https://github.com/xwiki-labs/cryptpad/issues/" title="our issue tracker">Github</a>, venir dire bonjour sur IRC (<a href="http://webchat.freenode.net?channels=%23cryptpad&uio=MT1mYWxzZSY5PXRydWUmMTE9Mjg3JjE1PXRydWUe7" title="freenode webchat">irc.freenode.net</a>), ou <a href="mailto:research@xwiki.com">nous envoyer un email</a>.';
out.main_openFileManager = 'Ouvrir dans un nouvel onglet';
out.table_type = 'Type';
out.table_link = 'Lien';

View File

@ -107,6 +107,7 @@ define(function () {
out.tryIt = 'Try it out!';
out.recentPads = 'Your recent pads (stored only in your browser)';
out.recentPadsIframe = 'Your recent pads';
out.okButton = 'OK (enter)';
out.cancelButton = 'Cancel (esc)';
@ -219,8 +220,8 @@ define(function () {
out.main_howitworks_p1 = 'CryptPad uses a variant of the <a href="https://en.wikipedia.org/wiki/Operational_transformation">Operational transformation</a> algorithm which is able to find distributed consensus using a <a href="https://bitcoin.org/bitcoin.pdf">Nakamoto Blockchain</a>, a construct popularized by <a href="https://en.wikipedia.org/wiki/Bitcoin">Bitcoin</a>. This way the algorithm can avoid the need for a central server to resolve Operational Transform Edit Conflicts and without the need for resolving conflicts, the server can be kept unaware of the content which is being edited on the pad.';
out.main_about = 'About';
out.main_about_p1 = 'You can read more about our <a href="/privacy.html" title="">privacy policy</a> and <a href="/terms.html">terms of service</a>.';
out.main_about_p2 = 'If you have any questions or comments, you can <a href="https://twitter.com/cryptpad">tweet us</a>, open an issue <a href="https://github.com/xwiki-labs/cryptpad/issues/" title="our issue tracker">on github</a>, come say hi on irc (<a href="http://webchat.freenode.net?channels=%23cryptpad&uio=MT1mYWxzZSY5PXRydWUmMTE9Mjg3JjE1PXRydWUe7" title="freenode webchat">irc.freenode.net</a>), or <a href="mailto:research@xwiki.com">send us an email</a>.';
out.main_openFileManager = 'Open in a new tab';
out.table_type = 'Type';
out.table_link = 'Link';

View File

@ -227,7 +227,7 @@ define([
appStatus._onReady.forEach(function (h) {
h();
});
_onReady = [];
appStatus._onReady = [];
}
}
};
@ -348,6 +348,7 @@ define([
// Open the selected context menu on the closest "li" element
var openContextMenu = function (e, $menu) {
module.hideMenu();
e.stopPropagation();
var path = $(e.target).closest('li').data('path');
if (!path) { return; }
@ -744,13 +745,14 @@ define([
var SORT_FILE_DESC = 'sortFilesDesc';
var onSortByClick = function (e) {
var $span = $(this);
var value;
if ($span.hasClass('foldername')) {
var value = files[SORT_FOLDER_DESC];
value = files[SORT_FOLDER_DESC];
files[SORT_FOLDER_DESC] = value ? false : true;
refresh();
return;
}
var value = files[SORT_FILE_BY];
value = files[SORT_FILE_BY];
var descValue = files[SORT_FILE_DESC];
if ($span.hasClass('filename')) {
if (value === '') {
@ -1234,7 +1236,7 @@ define([
var i = 0;
var space = 10;
path.forEach(function (s) {
if (i === 0) { s = rootName(s) }
if (i === 0) { s = rootName(s); }
$div.append($('<span>', {'style': 'margin: 0 0 0 ' + i * space + 'px;'}).text(s));
$div.append($('<br>'));
i++;
@ -1263,7 +1265,7 @@ define([
else if ($(this).hasClass('newfolder')) {
var onCreated = function (info) {
module.newFolder = info.newPath;
module.displayDirectory(path);;
module.displayDirectory(path);
};
filesOp.createNewFolder(path, null, onCreated);
}
@ -1437,14 +1439,9 @@ define([
Cryptpad.styleAlerts();
if (window.location.hash && window.location.hash === "#iframe") {
$('.top-bar').hide();
$('#pad-iframe').css({
top: "0px",
height: "100%"
});
$iframe.find('body').addClass('iframe');
window.location.hash = "";
homePageIframe = true;
APP.homePageIframe = true;
}
var hash = window.location.hash.slice(1) || localStorage.FS_hash;
@ -1465,8 +1462,8 @@ define([
rt.proxy.on('create', function (info) {
var realtime = module.realtime = info.realtime;
var editHash = !readOnly ? Cryptpad.getEditHashFromKeys(info.channel, secret.keys) : undefined;
var viewHash = Cryptpad.getViewHashFromKeys(info.channel, secret.keys);
var editHash = APP.editHash = !readOnly ? Cryptpad.getEditHashFromKeys(info.channel, secret.keys) : undefined;
var viewHash = APP.viewHash = Cryptpad.getViewHashFromKeys(info.channel, secret.keys);
APP.hash = readOnly ? viewHash : editHash;
if (!readOnly && (!window.location.hash || !localStorage.FS_hash)) {
@ -1478,7 +1475,7 @@ define([
logging: true,
});
userList = APP.userList = info.userList;
var userList = APP.userList = info.userList;
var config = {
readOnly: readOnly,
ifrw: window,
@ -1490,8 +1487,23 @@ define([
var $bar = APP.$bar;
var $rightside = $bar.find('.' + Toolbar.constants.rightside);
var $userBlock = $bar.find('.' + Toolbar.constants.username);
var $editShare = $bar.find('.' + Toolbar.constants.editShare);
var $viewShare = $bar.find('.' + Toolbar.constants.viewShare);
if (APP.homePageIframe) {
var $linkToMain = $bar.find('.cryptpad-link a');
$linkToMain.attr('href', '#');
$linkToMain.attr('title', '');
$linkToMain.css('cursor', 'default');
$linkToMain.off('click');
}
if (!readOnly) {
var $backupButton = Cryptpad.createButton('', true);
$backupButton.on('click', function() {
var url = window.location.origin + window.location.pathname + '#' + editHash;
Cryptpad.alert("Backup URL for this pad. It is highly recommended that you do not share it with other people.<br>Anybody with that URL can remove all the files in your file manager.<br>" + url);
});
$userBlock.append($backupButton);
}
}).on('ready', function () {
module.files = rt.proxy;
@ -1506,6 +1518,7 @@ define([
}
initLocalStorage();
init(rt.proxy);
APP.userList.onChange();
})
.on('disconnect', function (info) {
setEditable(false);

View File

@ -660,7 +660,7 @@ define([
});
};
var disconnect = function () {
var disconnect = function (info) {
//setEditable(false); // TODO
if (info.error) {
Cryptpad.alert(Messages.websocketError);