Shared folder history
This commit is contained in:
@@ -130,6 +130,12 @@ define([
|
||||
postMessage("DRIVE_USEROBJECT", data, cb);
|
||||
};
|
||||
common.restoreDrive = function (data, cb) {
|
||||
if (data.sfId) { // Shared folder ID
|
||||
postMessage('RESTORE_SHARED_FOLDER', data, cb, {
|
||||
timeout: 5 * 60 * 1000
|
||||
});
|
||||
return;
|
||||
}
|
||||
postMessage("SET", {
|
||||
key:['drive'],
|
||||
value: data
|
||||
|
||||
@@ -85,6 +85,20 @@ define([
|
||||
cb({});
|
||||
};
|
||||
|
||||
Store.restoreSharedFolder = function (clientId, data, cb) {
|
||||
if (!data.sfId || !data.drive) { return void cb({error:'EINVAL'}); }
|
||||
if (store.sharedFolders[data.sfId]) {
|
||||
Object.keys(data.drive).forEach(function (k) {
|
||||
store.sharedFolders[data.sfId].proxy[k] = data.drive[k];
|
||||
});
|
||||
Object.keys(store.sharedFolders[data.sfId].proxy).forEach(function (k) {
|
||||
if (data.drive[k]) { return; }
|
||||
delete store.sharedFolders[data.sfId].proxy[k];
|
||||
});
|
||||
}
|
||||
onSync(cb);
|
||||
};
|
||||
|
||||
Store.hasSigningKeys = function () {
|
||||
if (!store.proxy) { return; }
|
||||
return typeof(store.proxy.edPrivate) === 'string' &&
|
||||
|
||||
@@ -57,6 +57,7 @@ define([
|
||||
GET_SHARED_FOLDER: Store.getSharedFolder,
|
||||
ADD_SHARED_FOLDER: Store.addSharedFolder,
|
||||
LOAD_SHARED_FOLDER: Store.loadSharedFolderAnon,
|
||||
RESTORE_SHARED_FOLDER: Store.restoreSharedFolder,
|
||||
// Messaging
|
||||
ANSWER_FRIEND_REQUEST: Store.answerFriendRequest,
|
||||
SEND_FRIEND_REQUEST: Store.sendFriendRequest,
|
||||
|
||||
@@ -63,7 +63,8 @@ define([
|
||||
var sframeChan = common.getSframeChannel();
|
||||
|
||||
sframeChan.query('Q_GET_HISTORY_RANGE', {
|
||||
lastKnownHash: lastKnownHash
|
||||
lastKnownHash: lastKnownHash,
|
||||
sharedFolder: config.sharedFolder
|
||||
}, function (err, data) {
|
||||
if (err) { return void console.error(err); }
|
||||
if (!Array.isArray(data.messages)) { return void console.error('Not an array!'); }
|
||||
@@ -313,6 +314,10 @@ define([
|
||||
$(window).trigger('resize');
|
||||
};
|
||||
|
||||
if (config.onOpen) {
|
||||
config.onOpen();
|
||||
}
|
||||
|
||||
// Load all the history messages into a new chainpad object
|
||||
loadMoreHistory(config, common, function (err, newRt, isFull) {
|
||||
History.readOnly = common.getMetadataMgr().getPrivateData().readOnly;
|
||||
|
||||
@@ -537,9 +537,12 @@ define([
|
||||
sframeChan.on('Q_GET_HISTORY_RANGE', function (data, cb) {
|
||||
var nSecret = secret;
|
||||
if (cfg.isDrive) {
|
||||
// Shared folder or user hash or fs hash
|
||||
var hash = Utils.LocalStore.getUserHash() || Utils.LocalStore.getFSHash();
|
||||
if (data.sharedFolder) { hash = data.sharedFolder.hash; }
|
||||
if (hash) {
|
||||
nSecret = Utils.Hash.getSecrets('drive', hash);
|
||||
var password = (data.sharedFolder && data.sharedFolder.password) || undefined;
|
||||
nSecret = Utils.Hash.getSecrets('drive', hash, password);
|
||||
}
|
||||
}
|
||||
var channel = nSecret.channel;
|
||||
|
||||
Reference in New Issue
Block a user