Use parameters to trigger new document creation in the files app
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Родитель
247f1a71d9
Коммит
ec388693be
|
@ -555,6 +555,9 @@ var documentsMain = {
|
|||
$buttons.eq(0).text(t('richdocuments', 'Cancel'));
|
||||
$buttons.eq(1).text(t('richdocuments', 'Save'));
|
||||
});
|
||||
} else if (msgId === 'UI_CreateFile') {
|
||||
documentsMain.UI.createNewFile(args.DocumentType);
|
||||
|
||||
} else if (msgId === 'UI_InsertGraphic') {
|
||||
parent.OC.dialogs.filepicker(t('richdocuments', 'Insert Graphic'), function(path, type) {
|
||||
if (type === OC.dialogs.FILEPICKER_TYPE_CHOOSE) {
|
||||
|
@ -602,6 +605,32 @@ var documentsMain = {
|
|||
$('#loleafletform').submit();
|
||||
},
|
||||
|
||||
/* Ask for a new filename and open the files app in a new tab
|
||||
* the parameters richdocuments_create and richdocuments_filename are
|
||||
* parsed by viewer.js and open a template picker in the new tab
|
||||
*/
|
||||
createNewFile: function(type) {
|
||||
parent.OC.dialogs.prompt(
|
||||
t('richdocuments', 'Please enter the filename for the new document'),
|
||||
t('richdocuments', 'Save As'),
|
||||
function(result, value) {
|
||||
if (result === true && value) {
|
||||
var dir = parent.$('#dir').val();
|
||||
var url = OC.generateUrl('/apps/files/?dir=' + dir + '&richdocuments_create=' + type + '&richdocuments_filename=' + encodeURI(value));
|
||||
var win = window.open(url, '_blank');
|
||||
}
|
||||
},
|
||||
true,
|
||||
t('richdocuments', 'New filename'),
|
||||
false
|
||||
).then(function() {
|
||||
var $dialog = parent.$('.oc-dialog:visible');
|
||||
var $buttons = $dialog.find('button');
|
||||
$buttons.eq(0).text(t('richdocuments', 'Cancel'));
|
||||
$buttons.eq(1).text(t('richdocuments', 'Create a new document'));
|
||||
});
|
||||
},
|
||||
|
||||
hideEditor : function(){
|
||||
// Fade out editor
|
||||
$('#mainContainer').fadeOut('fast', function() {
|
||||
|
@ -646,6 +675,7 @@ var documentsMain = {
|
|||
}
|
||||
|
||||
documentsMain.ready = true;
|
||||
parent.OCA.Files.App.fileList.reload();
|
||||
},
|
||||
|
||||
WOPIPostMessage: function(iframe, msgId, values) {
|
||||
|
|
|
@ -1,4 +1,16 @@
|
|||
/* globals FileList, OCA.Files.fileActions, oc_debug */
|
||||
|
||||
var url = new URL(window.location);
|
||||
var type = url.searchParams.get("richdocuments_create");
|
||||
var filename = url.searchParams.get("richdocuments_filename");
|
||||
|
||||
var Preload = {
|
||||
create: {
|
||||
type: type,
|
||||
filename: filename,
|
||||
}
|
||||
};
|
||||
|
||||
var odfViewer = {
|
||||
isDocuments : false,
|
||||
supportedMimes: [
|
||||
|
@ -57,6 +69,18 @@ var odfViewer = {
|
|||
odfViewer.onEdit(filename);
|
||||
},
|
||||
|
||||
getNewDocumentFromTemplateUrl: function(templateId, fileName, fileDir, fillWithTemplate) {
|
||||
return OC.generateUrl(
|
||||
'apps/richdocuments/indexTemplate?templateId={templateId}&fileName={fileName}&dir={dir}&requesttoken={requesttoken}',
|
||||
{
|
||||
templateId: templateId,
|
||||
fileName: fileName,
|
||||
dir: fileDir,
|
||||
requesttoken: OC.requestToken
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
onEdit : function(fileName, context) {
|
||||
if(context) {
|
||||
var fileDir = context.dir;
|
||||
|
@ -78,15 +102,7 @@ var odfViewer = {
|
|||
} else {
|
||||
// We are dealing with a template
|
||||
if (typeof(templateId) !== 'undefined') {
|
||||
viewer = OC.generateUrl(
|
||||
'apps/richdocuments/indexTemplate?templateId={templateId}&fileName={fileName}&dir={dir}&requesttoken={requesttoken}',
|
||||
{
|
||||
templateId: templateId,
|
||||
fileName: fileName,
|
||||
dir: fileDir,
|
||||
requesttoken: OC.requestToken
|
||||
}
|
||||
);
|
||||
viewer = this.getNewDocumentFromTemplateUrl(templateId, fileName, fileDir);
|
||||
} else {
|
||||
viewer = OC.generateUrl(
|
||||
'apps/richdocuments/index?fileId={fileId}&requesttoken={requesttoken}',
|
||||
|
@ -248,7 +264,6 @@ var odfViewer = {
|
|||
_createDocumentFromTemplate: function(templateId, mimetype, filename) {
|
||||
OCA.Files.Files.isFileNameValid(filename);
|
||||
filename = FileList.getUniqueName(filename);
|
||||
|
||||
odfViewer.onEdit(filename, {
|
||||
fileId: -1,
|
||||
dir: $('#dir').val(),
|
||||
|
@ -279,7 +294,7 @@ var odfViewer = {
|
|||
$(this).ocdialog('close');
|
||||
}
|
||||
}];
|
||||
|
||||
|
||||
$('#template-picker').ocdialog({
|
||||
closeOnEscape: true,
|
||||
modal: true,
|
||||
|
@ -304,7 +319,7 @@ var odfViewer = {
|
|||
templates.forEach(function(template) {
|
||||
self._appendTemplateFromData($dlg[0], template);
|
||||
})
|
||||
|
||||
|
||||
$('body').append($dlg);
|
||||
})
|
||||
},
|
||||
|
@ -318,13 +333,35 @@ var odfViewer = {
|
|||
template.onclick = function() {
|
||||
dlg.dataset.templateId = data.id;
|
||||
};
|
||||
|
||||
|
||||
dlg.querySelector('.template-container').appendChild(template);
|
||||
}
|
||||
};
|
||||
})(OCA);
|
||||
|
||||
OC.Plugins.register('OCA.Files.NewFileMenu', OCA.FilesLOMenu);
|
||||
|
||||
// Open the template picker if there was a create parameter detected on load
|
||||
if (!!(Preload.create && Preload.create.type && Preload.create.filename)) {
|
||||
var mimetype;
|
||||
var ext;
|
||||
switch (type) {
|
||||
case 'document':
|
||||
mimetype = docMime;
|
||||
ext = docExt;
|
||||
break;
|
||||
case 'spreadsheet':
|
||||
mimetype = spreadsheetMime;
|
||||
ext = spreadsheetExt;
|
||||
break;
|
||||
case 'presentation':
|
||||
mimetype = presentationMime;
|
||||
ext = presentationExt;
|
||||
break;
|
||||
}
|
||||
OCA.FilesLOMenu._openTemplatePicker(Preload.create.type, mimetype, Preload.create.filename + '.' + ext);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -349,7 +386,6 @@ $(document).ready(function() {
|
|||
if (typeof oc_capabilities === 'undefined') {
|
||||
getCapabilities = $.get(OC.linkToOCS('cloud', 2) + 'capabilities?format=json', function (data) {
|
||||
oc_capabilities = data.ocs.data.capabilities;
|
||||
console.log(oc_capabilities);
|
||||
})
|
||||
}
|
||||
$.when(getSettings, getCapabilities).done(odfViewer.registerFilesMenu)
|
||||
|
|
Загрузка…
Ссылка в новой задаче