Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging
This commit is contained in:
commit
0ed6846e07
@ -129,6 +129,7 @@ define(function () {
|
|||||||
out.saveTemplatePrompt = "Choisir un titre pour ce modèle";
|
out.saveTemplatePrompt = "Choisir un titre pour ce modèle";
|
||||||
out.templateSaved = "Modèle enregistré !";
|
out.templateSaved = "Modèle enregistré !";
|
||||||
out.selectTemplate = "Sélectionner un modèle ou appuyer sur Échap";
|
out.selectTemplate = "Sélectionner un modèle ou appuyer sur Échap";
|
||||||
|
out.useTemplate = "Vous posséder des modèles pour ce type de pad, souhaitez-vous en utiliser un?";
|
||||||
|
|
||||||
out.previewButtonTitle = "Afficher ou cacher la prévisualisation de Markdown";
|
out.previewButtonTitle = "Afficher ou cacher la prévisualisation de Markdown";
|
||||||
|
|
||||||
|
|||||||
@ -131,6 +131,7 @@ define(function () {
|
|||||||
out.saveTemplatePrompt = "Choose a title for the template";
|
out.saveTemplatePrompt = "Choose a title for the template";
|
||||||
out.templateSaved = "Template saved!";
|
out.templateSaved = "Template saved!";
|
||||||
out.selectTemplate = "Select a template or press escape";
|
out.selectTemplate = "Select a template or press escape";
|
||||||
|
out.useTemplate = "You have available templates for that type of pad. Do you want to use one?";
|
||||||
|
|
||||||
out.previewButtonTitle = "Display or hide the Markdown preview mode";
|
out.previewButtonTitle = "Display or hide the Markdown preview mode";
|
||||||
|
|
||||||
|
|||||||
@ -81,6 +81,7 @@ nThen((waitFor) => {
|
|||||||
sema.take((returnAfter) => {
|
sema.take((returnAfter) => {
|
||||||
Fs.stat(f, waitFor(returnAfter((err, st) => {
|
Fs.stat(f, waitFor(returnAfter((err, st) => {
|
||||||
if (err) { throw err; }
|
if (err) { throw err; }
|
||||||
|
st.filename = f;
|
||||||
dsFileStats[f.replace(/^.*\/([^\/\.]*)(\.ndjson)?$/, (all, a) => (a))] = st;
|
dsFileStats[f.replace(/^.*\/([^\/\.]*)(\.ndjson)?$/, (all, a) => (a))] = st;
|
||||||
})));
|
})));
|
||||||
});
|
});
|
||||||
@ -118,18 +119,27 @@ nThen((waitFor) => {
|
|||||||
}).nThen(() => {
|
}).nThen(() => {
|
||||||
if (process.argv.indexOf('--unpinned') > -1) {
|
if (process.argv.indexOf('--unpinned') > -1) {
|
||||||
const ot = process.argv.indexOf('--olderthan');
|
const ot = process.argv.indexOf('--olderthan');
|
||||||
let before = 0;
|
let before = Infinity;
|
||||||
if (ot > -1) {
|
if (ot > -1) {
|
||||||
before = new Date(process.argv[ot+1]);
|
before = new Date(process.argv[ot+1]);
|
||||||
if (isNaN(before)) {
|
if (isNaN(before)) {
|
||||||
throw new Error('--olderthan error [' + process.argv[ot+1] + '] not a valid date');
|
throw new Error('--olderthan error [' + process.argv[ot+1] + '] not a valid date');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const bot = process.argv.indexOf('--blobsolderthan');
|
||||||
|
let blobsbefore = before;
|
||||||
|
if (bot > -1) {
|
||||||
|
blobsbefore = new Date(process.argv[bot+1]);
|
||||||
|
if (isNaN(blobsbefore)) {
|
||||||
|
throw new Error('--blobsolderthan error [' + process.argv[bot+1] + '] not a valid date');
|
||||||
|
}
|
||||||
|
}
|
||||||
Object.keys(dsFileStats).forEach((f) => {
|
Object.keys(dsFileStats).forEach((f) => {
|
||||||
if (!(f in pinned)) {
|
if (!(f in pinned)) {
|
||||||
if ((+dsFileStats[f].mtime) >= before) { return; }
|
const isBlob = dsFileStats[f].filename.indexOf('.ndjson') === -1;
|
||||||
console.log("./datastore/" + f.slice(0,2) + "/" + f + ".ndjson " +
|
if ((+dsFileStats[f].mtime) >= ((isBlob) ? blobsbefore : before)) { return; }
|
||||||
dsFileStats[f].size + " " + (+dsFileStats[f].mtime));
|
console.log(dsFileStats[f].filename + " " + dsFileStats[f].size + " " +
|
||||||
|
(+dsFileStats[f].mtime));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -442,27 +442,37 @@ define([
|
|||||||
UI.openTemplatePicker = function (common) {
|
UI.openTemplatePicker = function (common) {
|
||||||
var metadataMgr = common.getMetadataMgr();
|
var metadataMgr = common.getMetadataMgr();
|
||||||
var type = metadataMgr.getMetadataLazy().type;
|
var type = metadataMgr.getMetadataLazy().type;
|
||||||
var first = true; // We can only pick a template once (for a new document)
|
var sframeChan = common.getSframeChannel();
|
||||||
var fileDialogCfg = {
|
|
||||||
onSelect: function (data) {
|
var onConfirm = function (yes) {
|
||||||
if (data.type === type && first) {
|
if (!yes) { return; }
|
||||||
Cryptpad.addLoadingScreen({hideTips: true});
|
var first = true; // We can only pick a template once (for a new document)
|
||||||
var sframeChan = common.getSframeChannel();
|
var fileDialogCfg = {
|
||||||
sframeChan.query('Q_TEMPLATE_USE', data.href, function () {
|
onSelect: function (data) {
|
||||||
first = false;
|
if (data.type === type && first) {
|
||||||
Cryptpad.removeLoadingScreen();
|
Cryptpad.addLoadingScreen({hideTips: true});
|
||||||
common.feedback('TEMPLATE_USED');
|
sframeChan.query('Q_TEMPLATE_USE', data.href, function () {
|
||||||
});
|
first = false;
|
||||||
return;
|
Cryptpad.removeLoadingScreen();
|
||||||
|
common.feedback('TEMPLATE_USED');
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
common.initFilePicker(fileDialogCfg);
|
||||||
|
var pickerCfg = {
|
||||||
|
types: [type],
|
||||||
|
where: ['template']
|
||||||
|
};
|
||||||
|
common.openFilePicker(pickerCfg);
|
||||||
|
};
|
||||||
|
|
||||||
|
sframeChan.query("Q_TEMPLATE_EXIST", type, function (err, data) {
|
||||||
|
if (data) {
|
||||||
|
Cryptpad.confirm(Messages.useTemplate, onConfirm);
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
common.initFilePicker(common, fileDialogCfg);
|
|
||||||
var pickerCfg = {
|
|
||||||
types: [type],
|
|
||||||
where: ['template']
|
|
||||||
};
|
|
||||||
common.openFilePicker(common, pickerCfg);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return UI;
|
return UI;
|
||||||
|
|||||||
@ -297,6 +297,10 @@ define([
|
|||||||
sframeChan.on('Q_TEMPLATE_USE', function (href, cb) {
|
sframeChan.on('Q_TEMPLATE_USE', function (href, cb) {
|
||||||
Cryptpad.useTemplate(href, Cryptget, cb);
|
Cryptpad.useTemplate(href, Cryptget, cb);
|
||||||
});
|
});
|
||||||
|
sframeChan.on('Q_TEMPLATE_EXIST', function (type, cb) {
|
||||||
|
var hasTemplate = Cryptpad.listTemplates(type).length > 0;
|
||||||
|
cb(hasTemplate);
|
||||||
|
});
|
||||||
|
|
||||||
CpNfOuter.start({
|
CpNfOuter.start({
|
||||||
sframeChan: sframeChan,
|
sframeChan: sframeChan,
|
||||||
|
|||||||
@ -104,6 +104,8 @@ define({
|
|||||||
|
|
||||||
// Template picked, replace the content of the pad
|
// Template picked, replace the content of the pad
|
||||||
'Q_TEMPLATE_USE': true,
|
'Q_TEMPLATE_USE': true,
|
||||||
|
// Check if we have template(s) for the selected pad type
|
||||||
|
'Q_TEMPLATE_EXIST': true,
|
||||||
|
|
||||||
// File upload queries and events
|
// File upload queries and events
|
||||||
'Q_UPLOAD_FILE': true,
|
'Q_UPLOAD_FILE': true,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user