use historical shared folder data when viewing drive history

pull/1/head^2
ansuz 3 years ago
parent fce63af2c1
commit 6516b1ec48

@ -4525,6 +4525,14 @@ define([
var type = $contextMenu.attr('data-menu-type'); var type = $contextMenu.attr('data-menu-type');
var $this = $(this); var $this = $(this);
var prefix = /cp\-app\-drive\-context\-/;
var command = Util.slice(this.classList)
.map(c => {
if (!prefix.test(c)) { return; }
return c.replace(prefix, '');
}).filter(Boolean);
console.log(command);
var el, data; var el, data;
if (paths.length === 0) { if (paths.length === 0) {
log(Messages.fm_forbidden); log(Messages.fm_forbidden);
@ -4784,9 +4792,13 @@ define([
common: common common: common
}; };
if (padType === 'file') { if (padType === 'file') {
return void Share.getFileShareModal(common, padData); return void Share.getFileShareModal(common, padData, function (err) {
if (err) { UI.warn(Messages.error); }
});
} }
Share.getShareModal(common, padData); Share.getShareModal(common, padData, function (err) {
if (err) { UI.warn(Messages.error); }
});
} }
} }
else if ($this.hasClass('cp-app-drive-context-savelocal')) { else if ($this.hasClass('cp-app-drive-context-savelocal')) {
@ -4875,7 +4887,10 @@ define([
el = manager.find(paths[0].path.slice(1), APP.newSharedFolder); el = manager.find(paths[0].path.slice(1), APP.newSharedFolder);
} }
APP.getProperties(el, function (e) { APP.getProperties(el, function (e) {
if (e) { return void logError(e); } if (e) {
UI.warn(Messages.error);
return void logError(e, el);
}
}); });
} }
else if ($this.hasClass("cp-app-drive-context-access")) { else if ($this.hasClass("cp-app-drive-context-access")) {
@ -4886,7 +4901,10 @@ define([
el = manager.find(paths[0].path.slice(1), APP.newSharedFolder); el = manager.find(paths[0].path.slice(1), APP.newSharedFolder);
} }
APP.getAccess(el, function (e) { APP.getAccess(el, function (e) {
if (e) { return void logError(e); } if (e) {
UI.warn(Messages.error);
return void logError(e);
}
}); });
} }
else if ($this.hasClass("cp-app-drive-context-hashtag")) { else if ($this.hasClass("cp-app-drive-context-hashtag")) {
@ -5130,14 +5148,17 @@ define([
if (!obj || typeof(obj) !== "object" || Object.keys(obj).length === 0) { if (!obj || typeof(obj) !== "object" || Object.keys(obj).length === 0) {
return; return;
} }
manager.setHistoryMode(true);
copyObjectValue(folders[history.sfId], obj); copyObjectValue(folders[history.sfId], obj);
refresh(); refresh();
return; return;
} }
history.sfId = false; history.sfId = false;
var ok = manager.isValidDrive(obj.drive); var ok = manager.isValidDrive(obj.drive);
if (!ok) { return; } if (!ok) { return; }
manager.setHistoryMode(true);
var restricted = files.restrictedFolders; var restricted = files.restrictedFolders;
copyObjectValue(files, obj.drive); copyObjectValue(files, obj.drive);
@ -5147,6 +5168,7 @@ define([
refresh(); refresh();
}; };
history.onLeaveHistory = function () { history.onLeaveHistory = function () {
manager.setHistoryMode(false);
copyObjectValue(files, proxy.drive); copyObjectValue(files, proxy.drive);
refresh(); refresh();
}; };

@ -730,7 +730,7 @@ define([
opts.access = true; // Allow the use of the modal even if the pad is not stored opts.access = true; // Allow the use of the modal even if the pad is not stored
var hashes = opts.hashes; var hashes = opts.hashes;
if (!hashes || (!hashes.editHash && !hashes.viewHash && !opts.static)) { return; } if (!hashes || (!hashes.editHash && !hashes.viewHash && !opts.static)) { return cb("NO_HASHES"); }
var teams = getEditableTeams(common, opts); var teams = getEditableTeams(common, opts);
opts.teams = teams; opts.teams = teams;

@ -236,8 +236,10 @@ define([
}; };
var getSharedFolderData = function (Env, id) { var getSharedFolderData = function (Env, id) {
if (!Env.folders[id]) { return {}; } var inHistory;
var proxy = Env.folders[id].proxy; if (Env.isHistoryMode && !Env.folders[id]) { inHistory = true; }
else if (!Env.folders[id]) { return {}; }
var proxy = inHistory? {}: Env.folders[id].proxy;
// Clean deprecated values // Clean deprecated values
if (Object.keys(proxy.metadata || {}).length > 1) { if (Object.keys(proxy.metadata || {}).length > 1) {
@ -522,6 +524,7 @@ define([
href: '/drive/#' + hashes.editHash, href: '/drive/#' + hashes.editHash,
roHref: '/drive/#' + hashes.viewHash, roHref: '/drive/#' + hashes.viewHash,
channel: secret.channel, channel: secret.channel,
lastTitle: data.name,
ctime: +new Date(), ctime: +new Date(),
}; };
if (data.password) { folderData.password = data.password; } if (data.password) { folderData.password = data.password; }
@ -1562,6 +1565,10 @@ define([
return Env.user.userObject.getOwnedPads(Env.edPublic); return Env.user.userObject.getOwnedPads(Env.edPublic);
}; };
var setHistoryMode = function (Env, flag) {
Env.isHistoryMode = Boolean(flag);
};
var getFolderData = function (Env, path) { var getFolderData = function (Env, path) {
var resolved = _resolvePath(Env, path); var resolved = _resolvePath(Env, path);
if (!resolved || !resolved.userObject) { return {}; } if (!resolved || !resolved.userObject) { return {}; }
@ -1657,6 +1664,7 @@ define([
// Manager // Manager
addProxy: callWithEnv(addProxy), addProxy: callWithEnv(addProxy),
removeProxy: callWithEnv(removeProxy), removeProxy: callWithEnv(removeProxy),
setHistoryMode: callWithEnv(setHistoryMode),
// Drive RPC commands // Drive RPC commands
rename: callWithEnv(renameInner), rename: callWithEnv(renameInner),
move: callWithEnv(moveInner), move: callWithEnv(moveInner),

Loading…
Cancel
Save