Merge branch 'soon' of github.com:xwiki-labs/cryptpad into soon
This commit is contained in:
@@ -534,7 +534,7 @@ define([
|
||||
APP.hideDuplicateOwned = Util.find(priv, ['settings', 'drive', 'hideDuplicate']);
|
||||
APP.closed = false;
|
||||
|
||||
var $readOnly = $('#cp-app-drive-edition-state');
|
||||
var $readOnly = $(h('div#cp-app-drive-edition-state.cp-app-drive-content-info-box', Messages.readonly));
|
||||
|
||||
var updateObject = driveConfig.updateObject;
|
||||
var updateSharedFolders = driveConfig.updateSharedFolders;
|
||||
@@ -1917,7 +1917,9 @@ define([
|
||||
var $files = $('<span>', {
|
||||
'class': 'cp-app-drive-element-files cp-app-drive-element-list'
|
||||
}).text(files);
|
||||
$span.attr('title', key);
|
||||
if (getViewMode() === 'grid') {
|
||||
$span.attr('title', key);
|
||||
}
|
||||
$span.append($name).append($state).append($subfolders).append($files);
|
||||
};
|
||||
|
||||
@@ -2167,6 +2169,7 @@ define([
|
||||
|
||||
|
||||
var createInfoBox = function (path) {
|
||||
if (APP.readOnly || $content.data('readOnlyFolder')) { return; }
|
||||
var $box = $('<div>', {'class': 'cp-app-drive-content-info-box'});
|
||||
var msg;
|
||||
switch (path[0]) {
|
||||
@@ -3360,13 +3363,11 @@ define([
|
||||
var readOnlyFolder = false;
|
||||
if (APP.readOnly) {
|
||||
// Read-only drive (team?)
|
||||
$readOnly.show();
|
||||
} else if (folders[sfId] && folders[sfId].readOnly) {
|
||||
$content.prepend($readOnly.clone());
|
||||
} else if (sfId && folders[sfId] && folders[sfId].readOnly) {
|
||||
// If readonly shared folder...
|
||||
$readOnly.show();
|
||||
$content.prepend($readOnly.clone());
|
||||
readOnlyFolder = true;
|
||||
} else {
|
||||
$readOnly.hide();
|
||||
}
|
||||
$content.data('readOnlyFolder', readOnlyFolder);
|
||||
|
||||
|
||||
@@ -1035,6 +1035,10 @@ define([
|
||||
team.userObject.setReadOnly(!secret.keys.secondaryKey, secret.keys.secondaryKey);
|
||||
}
|
||||
|
||||
if (!secret.keys.secondaryKey && team.rpc) {
|
||||
team.rpc.destroy();
|
||||
}
|
||||
|
||||
// Upgrade the shared folders
|
||||
var folders = Util.find(team, ['proxy', 'drive', 'sharedFolders']);
|
||||
Object.keys(folders || {}).forEach(function (sfId) {
|
||||
|
||||
@@ -115,9 +115,13 @@ define([
|
||||
};
|
||||
|
||||
exp.deprecateSharedFolder = function (id) {
|
||||
if (readOnly) { return; }
|
||||
var data = files[SHARED_FOLDERS][id];
|
||||
if (!data) { return; }
|
||||
files[SHARED_FOLDERS_TEMP][id] = JSON.parse(JSON.stringify(data));
|
||||
var ro = !data.href || exp.cryptor.decrypt(data.href).indexOf('#') === -1;
|
||||
if (!ro) {
|
||||
files[SHARED_FOLDERS_TEMP][id] = JSON.parse(JSON.stringify(data));
|
||||
}
|
||||
var paths = exp.findFile(Number(id));
|
||||
exp.delete(paths, null, true);
|
||||
delete files[SHARED_FOLDERS][id];
|
||||
|
||||
@@ -1233,5 +1233,14 @@
|
||||
"driveOfflineError": "Die Verbindung zu CryptPad ist verloren gegangen. Änderungen an diesem Pad werden nicht in deinem CryptDrive gespeichert. Bitte schließe alle CryptPad-Tabs und versuche es in einem neuen Fenster erneut. ",
|
||||
"storageStatus": "Speicher:<br /><b>{0}</b> von <b>{1}</b> belegt",
|
||||
"teams_table": "Rollen",
|
||||
"teams_table_generic": "Rollen und Berechtigungen"
|
||||
"teams_table_generic": "Rollen und Berechtigungen",
|
||||
"teams_table_generic_view": "Ansehen: Zugriff auf Ordner und Pads (nur Lesen)",
|
||||
"teams_table_generic_edit": "Bearbeiten: Erstellen, Ändern und Löschen von Ordnern und Pads",
|
||||
"teams_table_generic_admin": "Mitglieder verwalten: Einladen und Entfernen von Mitgliedern, Ändern von Benutzerrollen bis maximal Admin",
|
||||
"teams_table_generic_own": "Team verwalten: Ändern von Namen und Avatar des Teams, Hinzufügen oder Entfernen von Eigentümerschaften des Teams, Löschung des Teams",
|
||||
"teams_table_specific": "Ausnahmen",
|
||||
"teams_table_specificHint": "Dies sind ältere geteilte Ordner, wo Benutzer noch Bearbeitungsrechte haben. Für hier erstellte oder hierhin kopierte Pads gelten Standard-Berechtigungen.",
|
||||
"teams_table_admins": "Mitglieder verwalten",
|
||||
"teams_table_owners": "Team verwalten",
|
||||
"teams_table_role": "Rolle"
|
||||
}
|
||||
|
||||
2
www/common/translations/messages.nl.json
Normal file
2
www/common/translations/messages.nl.json
Normal file
@@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
<div id="cp-app-drive-content-container">
|
||||
<div id="cp-app-drive-toolbar"></div>
|
||||
<div id="cp-app-drive-connection-state" style="display: none"></div>
|
||||
<div id="cp-app-drive-edition-state" style="display: none"></div>
|
||||
<div id="cp-app-drive-edition-state" class="cp-app-drive-content-info-box" style="display: none"></div>
|
||||
<div id="cp-app-drive-content" tabindex="2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -58,6 +58,14 @@ define([
|
||||
APP.newSharedFolder = null;
|
||||
}
|
||||
}
|
||||
if (newObj && newObj.deprecated) {
|
||||
delete folders[fId];
|
||||
delete drive.sharedFolders[fId];
|
||||
if (manager && manager.folders) {
|
||||
delete manager.folders[fId];
|
||||
}
|
||||
return;
|
||||
}
|
||||
folders[fId] = folders[fId] || {};
|
||||
copyObjectValue(folders[fId], newObj);
|
||||
folders[fId].readOnly = !secret.keys.secondaryKey;
|
||||
@@ -69,6 +77,16 @@ define([
|
||||
manager.folders[fId].userObject.setReadOnly(readOnly, secret.keys.secondaryKey);
|
||||
}));
|
||||
});
|
||||
// Remove from memory folders that have been deleted from the drive remotely
|
||||
oldIds.forEach(function (fId) {
|
||||
if (!drive.sharedFolders[fId]) {
|
||||
delete folders[fId];
|
||||
delete drive.sharedFolders[fId];
|
||||
if (manager && manager.folders) {
|
||||
delete manager.folders[fId];
|
||||
}
|
||||
}
|
||||
});
|
||||
}).nThen(function () {
|
||||
cb();
|
||||
});
|
||||
@@ -117,7 +135,6 @@ define([
|
||||
SFCommon.create(waitFor(function (c) { common = c; }));
|
||||
}).nThen(function (waitFor) {
|
||||
$('#cp-app-drive-connection-state').text(Messages.disconnected);
|
||||
$('#cp-app-drive-edition-state').text(Messages.readonly);
|
||||
var privReady = Util.once(waitFor());
|
||||
var metadataMgr = common.getMetadataMgr();
|
||||
if (JSON.stringify(metadataMgr.getPrivateData()) !== '{}') {
|
||||
|
||||
@@ -152,6 +152,9 @@ define([
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
save();
|
||||
if (!$input.val()) { return; }
|
||||
if (!$(el).closest('.kanban-item').is(':last-child')) { return; }
|
||||
$(el).closest('.kanban-board').find('.kanban-title-button.fa-plus').click();
|
||||
return;
|
||||
}
|
||||
if (e.which === 27) {
|
||||
@@ -301,6 +304,8 @@ define([
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
save();
|
||||
if (!$input.val()) { return; }
|
||||
$(el).closest('.kanban-board').find('.kanban-title-button.fa-plus').click();
|
||||
return;
|
||||
}
|
||||
if (e.which === 27) {
|
||||
|
||||
@@ -80,6 +80,16 @@ define([
|
||||
manager.folders[fId].userObject.setReadOnly(readOnly, secret.keys.secondaryKey);
|
||||
}));
|
||||
});
|
||||
// Remove from memory folders that have been deleted from the drive remotely
|
||||
oldIds.forEach(function (fId) {
|
||||
if (!drive.sharedFolders[fId]) {
|
||||
delete folders[fId];
|
||||
delete drive.sharedFolders[fId];
|
||||
if (manager && manager.folders) {
|
||||
delete manager.folders[fId];
|
||||
}
|
||||
}
|
||||
});
|
||||
}).nThen(function () {
|
||||
cb();
|
||||
});
|
||||
@@ -287,7 +297,7 @@ define([
|
||||
|
||||
// Provide secondaryKey
|
||||
var teamData = (privateData.teams || {})[id] || {};
|
||||
driveAPP.readOnly = !teamData.secondaryKey;
|
||||
driveAPP.readOnly = !teamData.hasSecondaryKey;
|
||||
var drive = DriveUI.create(common, {
|
||||
proxy: proxy,
|
||||
folders: folders,
|
||||
@@ -475,7 +485,6 @@ define([
|
||||
h('div#cp-app-drive-content-container', [
|
||||
h('div#cp-app-drive-toolbar'),
|
||||
h('div#cp-app-drive-connection-state', {style: "display: none;"}, Messages.disconnected),
|
||||
h('div#cp-app-drive-edition-state', {style: "display: none;"}, Messages.readonly),
|
||||
h('div#cp-app-drive-content', {tabindex:2})
|
||||
])
|
||||
])
|
||||
@@ -745,7 +754,7 @@ define([
|
||||
});
|
||||
var pending = Object.keys(roster).filter(function (k) {
|
||||
if (!roster[k].pending) { return; }
|
||||
return roster[k].role === "MEMBER" || !roster[k].role;
|
||||
return roster[k].role === "VIEWER" || !roster[k].role;
|
||||
}).map(function (k) {
|
||||
return makeMember(common, roster[k], me);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user