Shared folders UI

This commit is contained in:
yflory
2018-07-10 14:41:37 +02:00
parent bc7524c134
commit 4b86ed2dec
10 changed files with 142 additions and 37 deletions

View File

@@ -1147,7 +1147,7 @@ define([
// SHARED FOLDERS
var loadSharedFolder = function (id, data, cb) {
var parsed = Hash.parsePadUrl(data.href);
var secret = Hash.getSecrets('folder', parsed.hash, data.password);
var secret = Hash.getSecrets('drive', parsed.hash, data.password);
var listmapConfig = {
data: {},
websocketURL: NetConfig.getWebsocketURL(),
@@ -1191,7 +1191,12 @@ define([
onSync(waitFor());
// 2b. load the proxy
loadSharedFolder(id, data, waitFor());
rt = loadSharedFolder(id, data.folderData, waitFor(function () {
if (data.metadata) { // Creating a new shared folder
rt.proxy.metadata = data.metadata;
onSync(waitFor());
}
}));
}).nThen(function () {
sendDriveEvent('DRIVE_CHANGE', {
path: ['drive'].concat(path)
@@ -1201,16 +1206,19 @@ define([
};
store.createSharedFolder = function () {
// XXX
var hash = Hash.createRandomHash('folder');
var href = '/folder/#' + hash;
var secret = Hash.getSecrets('folder', hash);
var hash = Hash.createRandomHash('drive');
var href = '/drive/#' + hash;
var secret = Hash.getSecrets('drive', hash);
Store.addSharedFolder(null, {
path: ['root'],
folderData: {
href: href,
roHref: '/folder/#' + Hash.getViewHashFromKeys(secret),
roHref: '/drive/#' + Hash.getViewHashFromKeys(secret),
channel: secret.channel,
title: "Test",
ctime: +new Date()
},
metadata: {
title: "Test"
}
}, function () {
console.log('done');

View File

@@ -53,6 +53,7 @@ define([
GET_STRONGER_HASH: Store.getStrongerHash,
INCREMENT_TEMPLATE_USE: Store.incrementTemplateUse,
GET_SHARED_FOLDER: Store.getSharedFolder,
ADD_SHARED_FOLDER: Store.addSharedFolder,
// Messaging
INVITE_FROM_USERLIST: Store.inviteFromUserlist,
ADD_DIRECT_MESSAGE_HANDLERS: Store.addDirectMessageHandlers,

View File

@@ -71,6 +71,14 @@ define([
exp.pushSharedFolder = function (data, cb) {
if (typeof cb !== "function") { cb = function () {}; }
// Check we already have this shared folder in our drive
if (Object.keys(files[SHARED_FOLDERS]).some(function (k) {
return files[SHARED_FOLDERS][k].channel === data.channel;
})) {
return void cb ('EEXISTS');
}
// Add the folder
var todo = function () {
var id = Util.createRandomInteger();
files[SHARED_FOLDERS][id] = data;
@@ -695,11 +703,11 @@ define([
});
};
fixSharedFolders();
fixRoot();
fixTrashRoot();
fixTemplate();
fixFilesData();
fixSharedFolders();
fixDrive();
if (JSON.stringify(files) !== before) {