mirror of
https://github.com/cryptpad/cryptpad.git
synced 2026-09-14 11:05:41 +05:00
Add notification when a pinned shared folder has been destroyed
This commit is contained in:
parent
6acf8aa150
commit
d9741d53dc
@ -407,6 +407,28 @@ define([
|
||||
}
|
||||
};
|
||||
|
||||
handlers['SF_DELETED'] = function(common, data) {
|
||||
var content = data.content;
|
||||
var msg = content.msg;
|
||||
|
||||
// Display the notification
|
||||
var title = Util.fixHTML(msg.content.title);
|
||||
var teamName = Util.fixHTML(msg.content.teamName);
|
||||
|
||||
Messages.dph_sf_destroyed = "Your shared folder <em>{0}</em> has been destroyed by its owner."; // XXX
|
||||
Messages.dph_sf_destroyed_team= "The shared folder <em>{0}</em> from your team <b>{1}</b> has been destroyed by its owner."; // XXX
|
||||
|
||||
content.getFormatText = function() {
|
||||
if (teamName) {
|
||||
return Messages._getKey('dph_sf_destroyed_team', [title, teamName]);
|
||||
}
|
||||
return Messages._getKey('dph_sf_destroyed', [title]);
|
||||
};
|
||||
if (!content.archived) {
|
||||
content.dismissHandler = defaultDismiss(common, data);
|
||||
}
|
||||
};
|
||||
|
||||
handlers['MOVE_TODO'] = function(common, data) {
|
||||
var content = data.content;
|
||||
var msg = content.msg;
|
||||
|
||||
@ -639,6 +639,7 @@ define([
|
||||
}
|
||||
};
|
||||
cb(JSON.parse(JSON.stringify(metadata)));
|
||||
return metadata;
|
||||
};
|
||||
|
||||
Store.onMaintenanceUpdate = function (uid) {
|
||||
@ -2726,6 +2727,7 @@ define([
|
||||
loadSharedFolder: loadSharedFolder,
|
||||
settings: proxy.settings,
|
||||
removeOwnedChannel: function (channel, cb) { Store.removeOwnedChannel('', channel, cb); },
|
||||
store: store,
|
||||
Store: Store
|
||||
}, {
|
||||
outer: true,
|
||||
|
||||
@ -794,6 +794,29 @@ define([
|
||||
cb(true);
|
||||
};
|
||||
|
||||
var sfDeleted = {};
|
||||
handlers['SF_DELETED'] = function (ctx, box, data, cb) {
|
||||
var msg = data.msg;
|
||||
var content = msg.content;
|
||||
var teamId = content.team;
|
||||
var sfId = content.sfId;
|
||||
|
||||
if (sfDeleted[sfId]) { return void cb(true); }
|
||||
sfDeleted[sfId] = 1;
|
||||
|
||||
// If it's a team SF, add the team name here
|
||||
|
||||
if (!teamId) { return void cb(false); }
|
||||
|
||||
var team = ctx.store.proxy.teams[teamId];
|
||||
content.teamName = team.metadata && team.metadata.name;
|
||||
cb(false);
|
||||
};
|
||||
removeHandlers['SF_DELETED'] = function (ctx, box, data) {
|
||||
var id = data.content.sfId;
|
||||
delete sfDeleted[id];
|
||||
};
|
||||
|
||||
return {
|
||||
add: function (ctx, box, data, cb) {
|
||||
/**
|
||||
|
||||
@ -319,8 +319,10 @@ define([
|
||||
}
|
||||
ctx.Store.removeOwnedChannel('', data, cb);
|
||||
},
|
||||
Store: ctx.Store
|
||||
Store: ctx.Store,
|
||||
store: ctx.store
|
||||
}, {
|
||||
teamId: team.id,
|
||||
outer: true,
|
||||
edPublic: keys.drive.edPublic,
|
||||
loggedIn: true,
|
||||
|
||||
@ -70,6 +70,30 @@ define([
|
||||
delete Env.folders[id];
|
||||
};
|
||||
|
||||
var sendNotification = (Env, sfId, title) => {
|
||||
var mailbox = Env.store.mailbox;
|
||||
if (!mailbox) { return; }
|
||||
var team = Env.cfg.teamId;
|
||||
var box;
|
||||
if (team) {
|
||||
let teams = Env.store.modules['team'].getTeamsData();
|
||||
box = teams[team];
|
||||
} else {
|
||||
let md = Env.Store.getMetadata(null, null, () => {});
|
||||
box = md.user;
|
||||
}
|
||||
mailbox.sendTo('SF_DELETED', {
|
||||
sfId: sfId,
|
||||
team: team,
|
||||
title: title
|
||||
}, {
|
||||
curvePublic: box.curvePublic,
|
||||
channel: box.notifications
|
||||
}, (err) => {
|
||||
console.error(err);
|
||||
});
|
||||
};
|
||||
|
||||
// Password may have changed
|
||||
var deprecateProxy = function (Env, id, channel, reason) {
|
||||
if (Env.folders[id] && Env.folders[id].deleting) {
|
||||
@ -88,8 +112,12 @@ define([
|
||||
|
||||
// If it's explicitely a deletion, no need to deprecate, just delete
|
||||
if (reason && reason !== "PASSWORD_CHANGE") {
|
||||
var temp = Util.find(Env, ['user', 'proxy', UserObject.SHARED_FOLDERS]);
|
||||
let temp = Util.find(Env, ['user', 'proxy', UserObject.SHARED_FOLDERS]);
|
||||
let title = temp[id] && temp[id].lastTitle;
|
||||
if (title) { sendNotification(Env, id, title); }
|
||||
|
||||
delete temp[id];
|
||||
|
||||
if (Env.Store && Env.Store.refreshDriveUI) { Env.Store.refreshDriveUI(); }
|
||||
return;
|
||||
}
|
||||
@ -1317,6 +1345,7 @@ define([
|
||||
unpinPads: data.unpin,
|
||||
onSync: data.onSync,
|
||||
Store: data.Store,
|
||||
store: data.store,
|
||||
removeOwnedChannel: data.removeOwnedChannel,
|
||||
loadSharedFolder: data.loadSharedFolder,
|
||||
cfg: uoConfig,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user