Merge branch 'merge-owned' into staging
commit
f3662ab7de
|
@ -1334,7 +1334,7 @@ define([
|
|||
break;
|
||||
}
|
||||
case 'trash': {
|
||||
show = ['remove', 'restore', 'properties'];
|
||||
show = ['remove', 'deleteowned', 'restore', 'properties'];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -898,6 +898,28 @@ define([
|
|||
$d.append(changePass);
|
||||
}
|
||||
}
|
||||
if (owned) {
|
||||
var deleteOwned = h('button.btn.btn-danger-alt', Messages.fc_delete_owned);
|
||||
var $deleteOwned;
|
||||
var spinner = UI.makeSpinner();
|
||||
UI.confirmButton(deleteOwned, {
|
||||
classes: 'btn-danger'
|
||||
}, function () {
|
||||
spinner.spin();
|
||||
sframeChan.query('Q_DELETE_OWNED', {
|
||||
teamId: typeof(owned) !== "boolean" ? owned : undefined,
|
||||
channel: data.channel
|
||||
}, function (err, obj) {
|
||||
spinner.done();
|
||||
if (err || (obj && obj.error)) { UI.warn(Messages.error); }
|
||||
});
|
||||
});
|
||||
$d.append(h('br'));
|
||||
$d.append(h('div', [
|
||||
deleteOwned,
|
||||
spinner.spinner
|
||||
]));
|
||||
}
|
||||
return $d;
|
||||
};
|
||||
var drawRight = function () {
|
||||
|
|
|
@ -795,20 +795,23 @@ define([
|
|||
// Delete permanently some pads or folders
|
||||
var _deleteOwned = function (Env, data, cb) {
|
||||
data = data || {};
|
||||
var resolved = _resolvePaths(Env, data.paths);
|
||||
if (!resolved.main.length && !Object.keys(resolved.folders).length) {
|
||||
var resolved = _resolvePaths(Env, data.paths || []);
|
||||
if (!data.channel && !resolved.main.length && !Object.keys(resolved.folders).length) {
|
||||
return void cb({error: 'E_NOTFOUND'});
|
||||
}
|
||||
var toDelete = {
|
||||
main: [],
|
||||
folders: {}
|
||||
};
|
||||
var todo = function (id, uo, p, _cb) {
|
||||
var todo = function (channel, uo, p, _cb) {
|
||||
var cb = Util.once(Util.mkAsync(_cb));
|
||||
var el = uo.find(p);
|
||||
if (!uo.isFile(el) && !uo.isSharedFolder(el)) { return; }
|
||||
var data = uo.isFile(el) ? uo.getFileData(el) : getSharedFolderData(Env, el);
|
||||
var chan = data.channel;
|
||||
var chan = channel;
|
||||
if (!chan && uo) {
|
||||
var el = uo.find(p);
|
||||
if (!uo.isFile(el) && !uo.isSharedFolder(el)) { return; }
|
||||
var data = uo.isFile(el) ? uo.getFileData(el) : getSharedFolderData(Env, el);
|
||||
chan = data.channel;
|
||||
}
|
||||
Env.removeOwnedChannel(chan, function (obj) {
|
||||
// If the error is that the file is already removed, nothing to
|
||||
// report, it's a normal behavior (pad expired probably)
|
||||
|
@ -840,13 +843,16 @@ define([
|
|||
};
|
||||
nThen(function (w) {
|
||||
// Delete owned pads from the server
|
||||
if (data.channel) {
|
||||
todo(data.channel, null, null, w());
|
||||
}
|
||||
resolved.main.forEach(function (p) {
|
||||
todo(null, Env.user.userObject, p, w());
|
||||
});
|
||||
Object.keys(resolved.folders).forEach(function (id) {
|
||||
var uo = Env.folders[id].userObject;
|
||||
resolved.folders[id].forEach(function (p) {
|
||||
todo(id, uo, p, w());
|
||||
todo(null, uo, p, w());
|
||||
});
|
||||
});
|
||||
}).nThen(function () {
|
||||
|
|
|
@ -808,6 +808,15 @@ define([
|
|||
Cryptpad.changePadPassword(Cryptget, Crypto, data, cb);
|
||||
});
|
||||
|
||||
sframeChan.on('Q_DELETE_OWNED', function (data, cb) {
|
||||
Cryptpad.userObjectCommand({
|
||||
cmd: 'deleteOwned',
|
||||
teamId: data.teamId,
|
||||
data: {
|
||||
channel: data.channel
|
||||
}
|
||||
}, cb);
|
||||
});
|
||||
};
|
||||
addCommonRpc(sframeChan, isSafe);
|
||||
|
||||
|
|
Loading…
Reference in New Issue