Name a place before creating it in the drive

pull/1/head
yflory 8 years ago
parent 02906b3945
commit 5ef074370b

@ -9,7 +9,7 @@ define(function () {
out.main_slogan = "L'unité est la force, la collaboration est la clé"; out.main_slogan = "L'unité est la force, la collaboration est la clé";
out.type = {}; out.type = {};
out.type.pad = 'Pad'; out.type.pad = 'Texte';
out.type.code = 'Code'; out.type.code = 'Code';
out.type.poll = 'Sondage'; out.type.poll = 'Sondage';
out.type.slide = 'Présentation'; out.type.slide = 'Présentation';

@ -195,9 +195,11 @@ define([
}; };
// If we have a hash in the URL specifying a path, it means the document was created from // If we have a hash in the URL specifying a path, it means the document was created from
// the drive and should be stored at the selected path. // the drive and should be stored at the selected path.
if (/#\?path=/.test(window.location.href)) { if (/[?&]path=/.test(window.location.hash)) {
var arr = window.location.hash.match(/\?path=(.+)/); var patharr = window.location.hash.match(/[?&]path=([^&]+)/);
common.initialPath = arr[1] || undefined; var namearr = window.location.hash.match(/[?&]name=([^&]+)/);
common.initialPath = patharr[1] || undefined;
common.initialName = namearr[1] ? decodeURIComponent(namearr[1]) : undefined;
window.location.hash = ''; window.location.hash = '';
} }
if (!secretHash && !/#/.test(window.location.href)) { if (!secretHash && !/#/.test(window.location.href)) {
@ -578,7 +580,7 @@ define([
var data = makePad(href, name); var data = makePad(href, name);
renamed.push(data); renamed.push(data);
if (USE_FS_STORE && typeof(getStore().addPad) === "function") { if (USE_FS_STORE && typeof(getStore().addPad) === "function") {
getStore().addPad(href, common.initialPath, name); getStore().addPad(href, common.initialPath, common.initialName || name);
} }
} }

@ -871,14 +871,18 @@ define([
} }
AppConfig.availablePadTypes.forEach(function (type) { AppConfig.availablePadTypes.forEach(function (type) {
var path = filesOp.isPathInTrash(currentPath) ? '' : '/#?path=' + encodeURIComponent(currentPath); var path = filesOp.isPathInTrash(currentPath) ? '' : '/#?path=' + encodeURIComponent(currentPath);
var attributes = {
'class': 'newdoc',
'data-type': type
};
// In root, do not redirect instantly, but ask for a name first. Cf handlers below
if (!isInRoot) {
attributes.href = '/' + type + path;
attributes.target = '_blank';
}
options.push({ options.push({
tag: 'a', tag: 'a',
attributes: { attributes: attributes,
'class': 'newdoc',
'data-type': type,
'href': '/' + type + path,
'target': '_blank'
},
content: Messages.type[type] content: Messages.type[type]
}); });
}); });
@ -892,6 +896,7 @@ define([
$block.find('button').addClass('new').addClass('element'); $block.find('button').addClass('new').addClass('element');
// Handlers // Handlers
if (isInRoot) {
$block.find('a.newFolder').click(function () { $block.find('a.newFolder').click(function () {
var onCreated = function (info) { var onCreated = function (info) {
module.newFolder = info.newPath; module.newFolder = info.newPath;
@ -899,6 +904,19 @@ define([
}; };
filesOp.createNewFolder(currentPath, null, onCreated); filesOp.createNewFolder(currentPath, null, onCreated);
}); });
$block.find('a.newdoc').click(function () {
var type = $(this).data('type');
if (!type) {
throw new Error("Unable to get the pad type...");
}
var onNamed = function (name) {
var path = '/#?name=' + encodeURIComponent(name) + '&path=' + encodeURIComponent(currentPath);
console.log(path);
window.open('/' + type + path);
};
Cryptpad.prompt("How would you like to name your file?", Cryptpad.getDefaultName({type: type}), onNamed);
});
}
return $block; return $block;
}; };

Loading…
Cancel
Save