Merge branch 'staging' into restricted-registration

This commit is contained in:
ansuz 2021-04-30 09:20:45 +05:30
commit 4ea15ef832
26 changed files with 226 additions and 83 deletions

View File

@ -13,6 +13,11 @@
* /report/ page
* broadcast channel included in pin list
* fix package-lock to use server update
* code app present mode fix
* sheets
* lock sheets faster when applying checkpoints
* guard against undefined checkpoints
* don't spam users with prompts to checkpoints when they can't
# 4.4.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

View File

@ -89,6 +89,8 @@ define([
'https://www.mozilla.org/en-US/moss/'),
logoLink('NGI Trust logo', '/customize/images/logo_ngi_trust.png',
'https://www.ngi.eu/ngi-projects/ngi-trust/'),
logoLink('NGI DAPSI LOGO', '/customize/images/logo_ngi_dapsi.png',
'https://dapsi.ngi.eu/'),
]),
]),
h('div.row.cp-page-section', [

View File

@ -74,23 +74,23 @@
color: @cp_calendar-now-fg !important;
}
.tui-full-calendar-weekday-schedule-time .tui-full-calendar-weekday-schedule-title {
color: @cryptpad_text_col !important; // XXX
color: @cryptpad_text_col !important;
}
.tui-full-calendar-extra-date {
.tui-full-calendar-weekday-grid-date {
color: @cp_sidebar-hint !important; // XXX
color: @cp_sidebar-hint !important;
opacity: 0.5;
}
}
.tui-full-calendar-weekday-grid-date {
color: @cryptpad_text_col !important; // XXX
color: @cryptpad_text_col !important;
}
.tui-full-calendar-month-dayname-item span {
color: @cryptpad_text_col !important; // XXX
color: @cryptpad_text_col !important;
}
}
.tui-full-calendar-dayname * {
color: @cryptpad_text_col !important; // XXX
color: @cryptpad_text_col !important;
}
.tui-full-calendar-month-more {
background-color: @cp_sidebar-right-bg !important;

View File

@ -58,41 +58,6 @@ define([
var metadataMgr;
var sframeChan;
Messages.calendar = "BETA Calendar"; // XXX
Messages.calendar_default = "My calendar"; // XXX
Messages.calendar_new = "New calendar"; // XXX
Messages.calendar_day = "Day";
Messages.calendar_week = "Week";
Messages.calendar_month = "Month";
Messages.calendar_today = "Today";
Messages.calendar_more = "{0} more";
Messages.calendar_deleteConfirm = "Are you sure you want to delete this calendar from your account?";
Messages.calendar_deleteTeamConfirm = "Are you sure you want to delete this calendar from this team?";
Messages.calendar_deleteOwned = " It will still be visible for the users it has been shared with.";
Messages.calendar_errorNoCalendar = "No editable calendar selected!";
Messages.calendar_tempCalendar = "Viewing";
Messages.calendar_import = "Import to my calendars";
Messages.calendar_import_temp = "Import this calendar";
Messages.calendar_newEvent = "New event";
Messages.calendar_new = "New calendar";
Messages.calendar_dateRange = "{0} - {1}";
Messages.calendar_dateTimeRange = "{0} {1} - {2}";
Messages.calendar_weekNumber = "Week {0}";
Messages.calendar_update = "Update";
Messages.calendar_title = "Title";
Messages.calendar_loc = "Location";
Messages.calendar_location = "Location: {0}";
Messages.calendar_allDay = "All day";
Messages.calendar_minutes = "Minutes";
Messages.calendar_hours = "Hours";
Messages.calendar_days = "Days";
Messages.calendar_before = "before";
Messages.calendar_notifications = "Reminders";
Messages.calendar_addNotification = "Add reminder";
Messages.calendar_noNotification = "None";
var onCalendarsUpdate = Util.mkEvent();
var newCalendar = function (data, cb) {
@ -603,15 +568,15 @@ Messages.calendar_noNotification = "None";
action: function (e) {
e.stopPropagation();
var cal = APP.calendars[id];
var key = Messages.calendar_deleteConfirm;
var teams = (cal && cal.teams) || [];
var text = [ Messages.calendar_deleteConfirm ];
if (teams.length === 1 && teams[0] !== 1) {
key = Messages.calendar_deleteTeamConfirm;
text[0] = Messages.calendar_deleteTeamConfirm;
}
if (cal.owned) {
key += Messages.calendar_deleteOwned;
text = text.concat([' ', Messages.calendar_deleteOwned]);
}
UI.confirm(key, function (yes) {
UI.confirm(h('span', text), function (yes) {
if (!yes) { return; }
deleteCalendar({
id: id,
@ -663,7 +628,7 @@ Messages.calendar_noNotification = "None";
(isReadOnly(id, teamId) ? h('i.fa.fa-eye', {title: Messages.readonly}) : undefined),
edit
]);
$(calendar).click(function () {
var $calendar = $(calendar).click(function () {
if (teamId === 0) { return; }
data.hidden = !data.hidden;
if (APP.$calendars) {
@ -674,6 +639,12 @@ Messages.calendar_noNotification = "None";
renderCalendar();
});
if (!data.loading) {
$calendar.contextmenu(function (ev) {
ev.preventDefault();
$(edit).click();
});
}
if (APP.$calendars) { APP.$calendars.append(calendar); }
return calendar;
};

View File

@ -1434,13 +1434,13 @@ define([
*/
UI.createDrawer = function ($button, $content) {
$button.click(function () {
var topPos = $button[0].getBoundingClientRect().bottom;
$content.toggle();
$button.removeClass('cp-toolbar-button-active');
if ($content.is(':visible')) {
$button.addClass('cp-toolbar-button-active');
$content.focus();
var wh = $(window).height();
var topPos = $button[0].getBoundingClientRect().bottom;
$content.css('max-height', Math.floor(wh - topPos - 1)+'px');
}
});

View File

@ -788,6 +788,30 @@ define([
h('span.cp-toolbar-name.cp-toolbar-drawer-element', Messages.toolbar_savetodrive)
])).click(common.prepareFeedback(type));
break;
case 'storeindrive':
Messages.toolbar_storeInDrive = "Store in CryptDrive"; // XXX
button = $(h('button.cp-toolbar-storeindrive', {
style: 'display:none;'
}, [
h('i.fa.fa-hdd-o'),
h('span.cp-toolbar-name.cp-toolbar-drawer-element', Messages.toolbar_storeInDrive)
])).click(common.prepareFeedback(type)).click(function () {
$(button).hide();
common.getSframeChannel().query("Q_AUTOSTORE_STORE", null, function (err, obj) {
waitingForStoringCb = false;
var error = err || (obj && obj.error);
if (error) {
$(button).show();
if (error === 'E_OVER_LIMIT') {
return void UI.warn(Messages.pinLimitReached);
}
return void UI.warn(Messages.autostore_error);
}
$(document).trigger('cpPadStored');
UI.log(Messages.autostore_saved);
});
});
break;
case 'hashtag':
button = $('<button>', {
'class': 'fa fa-hashtag cp-toolbar-icon-hashtag',
@ -1652,6 +1676,18 @@ define([
},
});
}
if (padType !== 'calendar' && accountName) {
options.push({
tag: 'a',
attributes: {
'class': 'fa fa-calendar',
},
content: h('span', Messages.calendar),
action: function () {
Common.openURL('/calendar/');
},
});
}
if (padType !== 'contacts' && accountName) {
options.push({
tag: 'a',
@ -2799,6 +2835,7 @@ define([
// This pad will be deleted automatically, it shouldn't be stored
if (priv.burnAfterReading) { return; }
var typeMsg = priv.pathname.indexOf('/file/') !== -1 ? Messages.autostore_file :
priv.pathname.indexOf('/drive/') !== -1 ? Messages.autostore_sf :
Messages.autostore_pad;
@ -2810,11 +2847,18 @@ define([
var actions = h('div', [hide, store]);
var initialHide = data && data.autoStore && data.autoStore === -1;
if (initialHide) {
$('.cp-toolbar-storeindrive').show();
UIElements.displayCrowdfunding(common);
return;
}
var modal = UI.cornerPopup(text, actions, footer, {hidden: initialHide});
// Once the store pad popup is created, put the crowdfunding one in the queue
UIElements.displayCrowdfunding(common);
autoStoreModal[priv.channel] = modal;
$(modal.popup).find('.cp-corner-footer a').click(function (e) {
@ -2824,6 +2868,7 @@ define([
$(hide).click(function () {
delete autoStoreModal[priv.channel];
$('.cp-toolbar-storeindrive').show();
modal.delete();
});
var waitingForStoringCb = false;

View File

@ -2385,9 +2385,14 @@ define([
};
postMsg('INIT');
/*
window.addEventListener('beforeunload', function () {
postMsg('CLOSE');
});
*/
window.addEventListener('unload', function () {
postMsg('CLOSE');
});
} else if (false && !noWorker && !noSharedWorker && 'serviceWorker' in navigator) {
var initializing = true;
var stopWaiting = waitFor2(); // Call this function when we're ready

View File

@ -461,13 +461,6 @@ define([
}
};
Messages.reminder_missed = "You missed <b>{0}</b> on {1}"; // XXX
Messages.reminder_now = "<b>{0}</b> is starting!"; // XXX
Messages.reminder_inProgress = "<b>{0}</b> has started on {1}"; // XXX
Messages.reminder_inProgressAllDay = "<b>{0}</b> is happening today"; // XXX
Messages.reminder_minutes = "<b>{0}</b> will start in {1} minutes!"; // XXX
Messages.reminder_time = "<b>{0}</b> will start today at {1}!"; // XXX
Messages.reminder_date = "<b>{0}</b> will start on {1}!"; // XXX
handlers['REMINDER'] = function (common, data) {
var content = data.content;
var msg = content.msg.content;

View File

@ -2201,20 +2201,22 @@ define([
}
};
var wasEditing = false;
var setStrictEditing = function () {
if (APP.isFast) { return; }
var editor = getEditor();
var isModified = editor.asc_isDocumentModified || editor.isDocumentModified;
var editing = isModified();
var editing = editor.asc_isDocumentModified ? editor.asc_isDocumentModified() : editor.isDocumentModified();
if (editing) {
evOnPatch.fire();
} else {
evOnSync.fire();
}
wasEditing = Boolean(editing);
};
APP.onFastChange = function (isFast) {
APP.isFast = isFast;
if (isFast) {
wasEditing = false;
if (APP.hasChangedInterval) {
window.clearInterval(APP.hasChangedInterval);
}
@ -2561,6 +2563,7 @@ define([
sframeChan.event("EV_CORRUPTED_CACHE");
};
var firstReady = true;
config.onReady = function (info) {
if (APP.realtime !== info.realtime) {
APP.realtime = info.realtime;
@ -2670,8 +2673,12 @@ define([
setMyId();
oldHashes = JSON.parse(JSON.stringify(content.hashes));
initializing = false;
common.openPadChat(APP.onLocal);
// Only execute the following code the first time we call onReady
if (!firstReady) { return void setEditable(!readOnly); }
firstReady = false;
common.openPadChat(APP.onLocal);
if (!readOnly) {
var cursors = {};

View File

@ -912,6 +912,9 @@ define([
var $copy = common.createButton('copy', true);
toolbar.$drawer.append($copy);
var $store = common.createButton('storeindrive', true);
toolbar.$drawer.append($store);
if (!cpNfInner.metadataMgr.getPrivateData().isTemplate) {
var templateObj = {
rt: cpNfInner.chainpad,

View File

@ -129,6 +129,7 @@ define([
var l = privateData.plan ? ApiConfig.premiumUploadSize : false;
l = l || ApiConfig.maxUploadSize || "?";
var maxSizeStr = Util.bytesToMegabytes(l);
// XXX blob.byteLength is wrong: we should use the lenght of the encrypted content (see whiteboard)
if (blob && blob.byteLength && typeof(l) === "number" && blob.byteLength > l) {
$pv.text(Messages.error);
queue.inProgress = false;

View File

@ -418,8 +418,8 @@
"settings_padSpellcheckHint": "Mit dieser Option kann die Rechtschreibprüfung in Rich-Text-Pads aktiviert werden. Rechtschreibfehler werden rot unterstrichen. Halte die Strg- oder Meta-Taste gedrückt, um Verbesserungsvorschläge anzuzeigen.",
"settings_padSpellcheckLabel": "Rechtschreibprüfung in Rich-Text-Pads aktivieren",
"settings_padOpenLinkTitle": "Links direkt öffnen",
"settings_padOpenLinkHint": "Mit dieser Optione werden externe Links direkt über Klick in einem neuem Fenster geöffnet.",
"settings_padOpenLinkLabel": "Aktiviert Links direkt über Klick zu öffnen",
"settings_padOpenLinkHint": "Mit dieser Option kannst du eingebettete Links direkt durch Anklicken öffnen, ohne dass ein Vorschaufenster angezeigt wird.",
"settings_padOpenLinkLabel": "Direktes Öffnen von Links aktivieren",
"settings_ownDriveTitle": "Account aktualisieren",
"settings_ownDriveHint": "Aus technischen Gründen sind nicht alle neue Funktionen für ältere Konten verfügbar. Eine kostenlose Aktualisierung wird die neuen Funktionen aktivieren und dein CryptDrive für zukünftige Aktualisierungen vorbereiten.",
"settings_ownDriveButton": "Upgrade deines Accounts",
@ -542,7 +542,6 @@
"header_logoTitle": "Zu deinem CryptDrive",
"header_homeTitle": "Zur CryptPad-Hauptseite",
"help_genericMore": "Erfahre mehr über die Nutzung von CryptPad, indem du unsere <a>Dokumentation</a> liest.",
"driveReadmeTitle": "Was ist CryptPad?",
"edit": "Bearbeiten",
"view": "Ansehen",
"feedback_about": "Wenn du das liest, fragst du dich wahrscheinlich, weshalb dein Browser bei der Ausführung mancher Aktionen Anfragen an Webseiten sendet.",
@ -1182,7 +1181,50 @@
"broadcast_newCustom": "Mitteilung der Administratoren",
"admin_broadcastCancel": "Mitteilung löschen",
"admin_broadcastActive": "Aktive Mitteilung",
"admin_broadcastHint": "Sende eine Mitteilung an alle Benutzer auf dieser Instanz. Alle existierenden und neue Benutzer werden sie als Benachrichtigung erhalten. Du kannst sie mit <b>Vorschau der Benachrichtigung</b> überprüfen. Die Vorschau ist mit einem roten Symbol gekennzeichnet und nur für dich sichtbar.",
"admin_broadcastHint": "Sende eine Mitteilung an alle Benutzer auf dieser Instanz. Alle existierenden und neue Benutzer werden sie als Benachrichtigung erhalten. Du kannst sie mit \"Vorschau der Benachrichtigung\" überprüfen. Die Vorschau ist mit einem roten Symbol gekennzeichnet und nur für dich sichtbar.",
"broadcast_preview": "Vorschau der Benachrichtigung",
"admin_maintenanceCancel": "Wartungsarbeiten stornieren"
"admin_maintenanceCancel": "Wartungsarbeiten stornieren",
"footer_roadmap": "Roadmap",
"pad_goToAnchor": "Zum Anker gehen",
"calendar_newEvent": "Neues Ereignis",
"calendar_dateTimeRange": "{0} {1} - {2}",
"calendar_dateRange": "{0} - {1}",
"calendar_import": "Zu meinen Kalendern hinzufügen",
"settings_notifCalendarHint": "Alle Benachrichtigungen für zukünftige Kalenderereignisse aktivieren/deaktivieren.",
"settings_notifCalendarTitle": "Kalenderbenachrichtigungen",
"reminder_inProgress": "<b>{0}</b> begann am {1}",
"reminder_missed": "<b>{0}</b> fand statt am {1}",
"calendar_addNotification": "Erinnerung hinzufügen",
"settings_notifCalendarCheckbox": "Kalenderbenachrichtigungen aktivieren",
"reminder_date": "<b>{0}</b> am {1}",
"reminder_time": "<b>{0}</b> heute um {1}",
"reminder_now": "<b>{0}</b> hat begonnen",
"calendar_more": "{0} weitere",
"calendar_errorNoCalendar": "Kein bearbeitbarer Kalender ausgewählt",
"calendar_deleteOwned": "Er ist weiterhin für andere Benutzer sichtbar, sofern er mit ihnen geteilt wurde.",
"calendar_deleteTeamConfirm": "Bist du sicher, dass du diesen Kalender vom Team löschen möchtest?",
"calendar_deleteConfirm": "Bist du sicher, dass du diesen Kalender von deinem Account löschen möchtest?",
"calendar_import_temp": "Diesen Kalender importieren",
"calendar_noNotification": "Keine",
"calendar_notifications": "Erinnerungen",
"reminder_minutes": "<b>{0}</b> beginnt in {1} Minute(n)",
"reminder_inProgressAllDay": "Heute: <b>{0}</b>",
"calendar_days": "Tage",
"calendar_hours": "Stunden",
"calendar_minutes": "Minuten",
"calendar_allDay": "Ganztägig",
"calendar_location": "Ort: {0}",
"calendar_loc": "Ort",
"calendar_title": "Titel",
"calendar_update": "Aktualisieren",
"calendar_today": "Heute",
"calendar_month": "Monat",
"calendar_week": "Woche",
"calendar_day": "Tag",
"calendar_new": "Neuer Kalender",
"calendar_default": "Mein Kalender",
"calendar": "Kalender",
"calendar_before": "vorher",
"calendar_weekNumber": "Woche {0}",
"oo_cantMigrate": "Diese Tabelle überschreitet die maximale Größe für hochgeladene Dateien und kann nicht migriert werden."
}

View File

@ -358,7 +358,6 @@
"four04_pageNotFound": "Η σελίδα που ψάχνετε, δεν βρέθηκε!",
"header_logoTitle": "Μετάβαση στο CryptDrive σας",
"header_homeTitle": "Μετάβαση στην αρχική σελίδα του CryptPad",
"driveReadmeTitle": "Τι είναι το CryptPad;",
"edit": "επεξεργασία",
"view": "προβολή",
"feedback_about": "Εάν το διαβάζετε αυτό, πιθανότατα ήσασταν περίεργοι για ποιο λόγο το CryptPad ζητά ιστοσελίδες όταν κάνετε συγκεκριμένες ενέργειες",

View File

@ -152,7 +152,6 @@
"settings_userFeedback": "Activar feedback",
"settings_anonymous": "No has iniciado sesión. Tus ajustes se aplicarán sólo a este navegador.",
"blog": "Blog",
"driveReadmeTitle": "¿Qué es CryptPad?",
"edit": "editar",
"view": "ver",
"settings_resetError": "Verificación no válida. Tu CryptDrive no fue cambiado.",

View File

@ -714,7 +714,6 @@
"header_logoTitle": "Siirry CryptDriveesi",
"header_homeTitle": "Siirry CryptPad-kotisivulle",
"help_genericMore": "Tutustu CryptPadin toimintaan ja ominaisuuksiin <a>dokumentaatiosivuillamme</a>.",
"driveReadmeTitle": "Mikä on CryptPad?",
"settings_kanbanTagsOr": "TAI",
"settings_kanbanTagsAnd": "JA",
"settings_kanbanTagsHint": "Valitse, miten haluat tunnistesuodattimen toimivan useita tunnisteita käytettäessä: näytä kortit, jotka sisältävät kaikki valitut tunnisteet (JA) tai näytä kortit, jotka sisältävät jonkun tai jotkin valituista tunnisteista (TAI)",

View File

@ -546,7 +546,6 @@
"header_logoTitle": "Retourner vers votre CryptDrive",
"header_homeTitle": "Aller sur la page d'accueil",
"help_genericMore": "Découvrez toutes les fonctionalités de CryptPad en lisant la <a>Documentation</a>.",
"driveReadmeTitle": "Qu'est-ce que CryptPad ?",
"edit": "éditer",
"view": "voir",
"feedback_about": "Si vous lisez ceci, vous vous demandez probablement pourquoi CryptPad envoie des requêtes vers des pages web quand vous réalisez certaines actions.",
@ -1165,7 +1164,7 @@
"admin_broadcastCancel": "Effacer le message",
"admin_broadcastActive": "Message actif",
"admin_broadcastButton": "Envoyer",
"admin_broadcastHint": "Envoyez un message à tous les utilisateurs de cette instance. Tous les utilisateurs existants et nouveaux le recevront sous forme de notification. Prévisualisez les messages avant de les envoyer avec <b>Aperçu de la notification</b>. Les aperçus de notifications ont une icône rouge et ne sont visibles que par vous.",
"admin_broadcastHint": "Envoyez un message à tous les utilisateurs de cette instance. Tous les utilisateurs existants et nouveaux le recevront sous forme de notification. Prévisualisez les messages avant de les envoyer avec \"Aperçu de la notification\". Les aperçus de notifications ont une icône rouge et ne sont visibles que par vous.",
"admin_broadcastTitle": "Message d'annonce",
"broadcast_surveyURL": "Lien vers l'enquête",
"admin_surveyActive": "Ouvrir l'enquête",
@ -1183,5 +1182,49 @@
"admin_maintenanceTitle": "Maintenance",
"admin_cat_broadcast": "Annonces",
"oo_cantMigrate": "Ce tableur dépasse la taille maximale de téléchargement et est trop grand pour être mis à jour.",
"footer_roadmap": "Feuille de route"
"footer_roadmap": "Feuille de route",
"calendar_noNotification": "Aucun",
"calendar_addNotification": "Ajouter rappel",
"calendar_notifications": "Rappels",
"settings_notifCalendarCheckbox": "Activer les notifications d'agenda",
"settings_notifCalendarHint": "Activer/désactiver les notifications pour les évenements à venir.",
"settings_notifCalendarTitle": "Notifications de calendrier",
"reminder_date": "<b>{0}</b> le {1}",
"reminder_time": "<b>{0}</b> aujourd'hui à {1}",
"reminder_minutes": "<b>{0}</b> commencera dans {1} minute(s)",
"reminder_inProgressAllDay": "Aujourd'hui : <b>{0}</b>",
"reminder_inProgress": "<b>{0}</b> a commencé à {1}",
"reminder_now": "<b>{0}</b> a commencé",
"reminder_missed": "<b>{0}</b> a eu lieu le {1}",
"calendar_more": "{0} de plus",
"calendar_days": "Jours",
"calendar_hours": "Heures",
"calendar_minutes": "Minutes",
"calendar_allDay": "Journée entière",
"calendar_location": "Lieu : {0}",
"calendar_loc": "Lieu",
"calendar_title": "Titre",
"calendar_update": "Modifier",
"calendar_dateTimeRange": "{0} {1} - {2}",
"calendar_dateRange": "{0} - {1}",
"calendar_newEvent": "Nouvel évènement",
"calendar_import": "Ajouter à mes calendriers",
"calendar_errorNoCalendar": "Aucun agenda modifiable sélectionné",
"calendar_deleteOwned": "Il restera accessible pour les autres utilisateurs avec qui il a été partagé.",
"calendar_deleteTeamConfirm": "Êtes-vous sûr de vouloir supprimer ce calendrier de l'équipe ?",
"calendar_deleteConfirm": "Êtes-vous sûr de vouloir supprimer ce calendrier de votre compte ?",
"calendar_today": "Aujourd'hui",
"calendar_month": "Mois",
"calendar_week": "Semaine",
"calendar_day": "Jour",
"calendar_new": "Nouvel agenda",
"calendar_default": "Mon agenda",
"calendar": "Agenda",
"calendar_before": "avant",
"calendar_weekNumber": "Semaine {0}",
"calendar_import_temp": "Importer ce calendrier",
"pad_goToAnchor": "Aller à cette ancre",
"settings_padOpenLinkLabel": "Activer l'ouverture directe des liens",
"settings_padOpenLinkHint": "Cette option permet d'ouvrir les liens dans un document texte sans fenêtre daperçu",
"settings_padOpenLinkTitle": "Ouvrir les lien avec un seul clic"
}

View File

@ -701,7 +701,6 @@
"admin_openFilesTitle": "Apri i file",
"canvas_select": "Seleziona",
"logoutEverywhere": "Esci ovunque",
"driveReadmeTitle": "Cos'è CryptPad?",
"edit": "modifica",
"creation_passwordValue": "Password",
"password_submit": "Invia",

View File

@ -140,7 +140,6 @@
"contact": "連絡先",
"privacy": "プライバシー",
"blog": "ブログ",
"driveReadmeTitle": "CryptPad とは?",
"register_header": "CryptPad へようこそ",
"login_confirm": "パスワードの確認",
"login_register": "新規登録",

View File

@ -436,7 +436,7 @@
"settings_padSpellcheckLabel": "Enable spell check in rich text pads",
"settings_padOpenLinkTitle": "Open links on first click",
"settings_padOpenLinkHint": "With this option you can open embedded links on click without the preview popup",
"settings_padOpenLinkLabel": "Enable direct link opening rich text pads",
"settings_padOpenLinkLabel": "Enable direct link opening",
"settings_ownDriveTitle": "Update Account",
"settings_ownDriveHint": "Older accounts do not have access to the latest features, due to technical reasons. A free update will enable current features, and prepare your CryptDrive for future updates.",
"settings_ownDriveButton": "Upgrade your account",
@ -564,7 +564,6 @@
"header_logoTitle": "Go to your CryptDrive",
"header_homeTitle": "Go to CryptPad homepage",
"help_genericMore": "Learn more about how CryptPad can work for you by reading our <a>Documentation</a>.",
"driveReadmeTitle": "What is CryptPad?",
"edit": "edit",
"view": "view",
"feedback_about": "If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions.",
@ -1174,7 +1173,7 @@
"admin_surveyActive": "Open survey",
"broadcast_surveyURL": "Survey link",
"admin_broadcastTitle": "Broadcast message",
"admin_broadcastHint": "Send a message to all users on this instance. All existing and new users will receive it as a notification. Preview messages before sending them with <b>Preview notification</b>. Preview notifications have a red icon and are visible only to you.",
"admin_broadcastHint": "Send a message to all users on this instance. All existing and new users will receive it as a notification. Preview messages before sending them with \"Preview notification\". Preview notifications have a red icon and are visible only to you.",
"admin_broadcastButton": "Send",
"admin_broadcastActive": "Active message",
"admin_broadcastCancel": "Delete message",
@ -1186,5 +1185,46 @@
"settings_deleteContinue": "Delete my account",
"settings_deleteSubscription": "Manage my subscription",
"footer_roadmap": "Roadmap",
"oo_cantMigrate": "This sheet exceeds the maximum upload size and is too large to be migrated."
"oo_cantMigrate": "This sheet exceeds the maximum upload size and is too large to be migrated.",
"pad_goToAnchor": "Go to anchor",
"calendar_import_temp": "Import this calendar",
"calendar_weekNumber": "Week {0}",
"calendar_before": "before",
"calendar": "Calendar",
"calendar_default": "My calendar",
"calendar_new": "New calendar",
"calendar_day": "Day",
"calendar_week": "Week",
"calendar_month": "Month",
"calendar_today": "Today",
"calendar_deleteConfirm": "Are you sure you want to delete this calendar from your account?",
"calendar_deleteTeamConfirm": "Are you sure you want to delete this calendar from the team?",
"calendar_deleteOwned": "It will remain visible to other users it has been shared with.",
"calendar_errorNoCalendar": "No editable calendar selected",
"calendar_import": "Add to my calendars",
"calendar_newEvent": "New event",
"calendar_dateRange": "{0} - {1}",
"calendar_dateTimeRange": "{0} {1} - {2}",
"calendar_update": "Update",
"calendar_title": "Title",
"calendar_loc": "Location",
"calendar_location": "Location: {0}",
"calendar_allDay": "All day",
"calendar_minutes": "Minutes",
"calendar_hours": "Hours",
"calendar_days": "Days",
"calendar_more": "{0} more",
"reminder_missed": "<b>{0}</b> took place on {1}",
"reminder_now": "<b>{0}</b> has started",
"reminder_inProgress": "<b>{0}</b> has started on {1}",
"reminder_inProgressAllDay": "Today: <b>{0}</b>",
"reminder_minutes": "<b>{0}</b> will start in {1} minute(s)",
"reminder_time": "<b>{0}</b> today at {1}",
"reminder_date": "<b>{0}</b> on {1}",
"settings_notifCalendarTitle": "Calendar notifications",
"settings_notifCalendarHint": "Enable/disable all notifications for upcoming calendar events.",
"settings_notifCalendarCheckbox": "Enable calendar notifications",
"calendar_notifications": "Reminders",
"calendar_addNotification": "Add reminder",
"calendar_noNotification": "None"
}

View File

@ -317,7 +317,6 @@
"creation_expireFalse": "Ubegrenset",
"view": "vis",
"edit": "rediger",
"driveReadmeTitle": "Hva er CryptPad?",
"header_homeTitle": "Gå til CryptPad-hjemmesiden",
"header_logoTitle": "Gå til din CryptDrive",
"tos_title": "CryptPad-tjenestevilkår",

View File

@ -219,7 +219,6 @@
"tos_logs": "Os Metadados providos pelo seu navegador para nosso servidor podem ser armazenados com o propósito de manter o serviço em funcionamento",
"tos_3rdparties": "Nós não disponibilizamos dados individuais para terceiros, salvo quando requisitado legalmente.",
"header_logoTitle": "Go to the main page",
"driveReadmeTitle": "What is CryptPad?",
"edit": "edit",
"view": "view",
"feedback_about": "If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions",

View File

@ -192,7 +192,6 @@
"tos_logs": "Metadatele oferite de browser-ul tău serverului ar putea fi înscrise în scopul de a menține serviciul.",
"tos_3rdparties": "Nu oferim date personale terților, decât dacă ne sunt solicitate prin lege.",
"header_logoTitle": "Mergi la pagina principală",
"driveReadmeTitle": "Ce este CryptPad?",
"edit": "editează",
"view": "vezi",
"feedback_about": "Dacă citești asta, probabil că ești curios de ce CryptPad cere pagini web atunci când întreprinzi anumite acțiuni",

View File

@ -220,7 +220,6 @@
"tos_logs": "你的瀏覽器提供給伺服器的元數據,可能會因為維護本服務之效能而被收集記錄。",
"tos_3rdparties": "除非法令要求,我們不會提供任何個人資料給第三方。",
"header_logoTitle": "回到主頁",
"driveReadmeTitle": "什麼是 CryptPad?",
"edit": "編輯",
"view": "檢視",
"feedback_about": "如果你讀了這裏,也許會好奇為何當你執行某些動作時 CryptPad 會請求網頁資訊。",

View File

@ -46,7 +46,6 @@ define([
var t = rect.bottom + $iframe.scrollTop() +'px';
var text = href;
Messages.pad_goToAnchor = "Go to anchor"; // XXX
if (text[0] === '#') { text = Messages.pad_goToAnchor; }
var a = h('a', { href: href}, text);
var link = h('div.cp-link-clicked.non-realtime', {

View File

@ -84,7 +84,7 @@ define([
'cp-settings-pad-width',
'cp-settings-pad-spellcheck',
'cp-settings-pad-notif',
//'cp-settings-pad-openlink', // XXX test, translate and re-enable
'cp-settings-pad-openlink',
],
'code': [ // Msg.settings_cat_code
'cp-settings-code-indent-unit',
@ -1603,10 +1603,6 @@ define([
cb($d);
}, true);
Messages.settings_notifCalendarTitle = "Calendar notifications"; // XXX
Messages.settings_notifCalendarHint = "You can disable completely calendar notifications for incoming events.";
Messages.settings_notifCalendarCheckbox = "Enable calendar notifications";
makeBlock('notif-calendar', function(cb) { // Msg.settings_notifCalendarHint, .settings_notifCalendarTitle
var $cbox = $(UI.createCheckbox('cp-settings-cache',