/* globals FileList, OCA.Files.fileActions, oc_debug */ var odfViewer = { isDocuments : false, supportedMimesRead: [ ], supportedMimesUpdate: [ 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.graphics', 'application/vnd.oasis.opendocument.presentation' ], register : function(response){ var i, mimeRead, mimeUpdate; if (response && response.mimes){ jQuery.each(response.mimes, function(i, mime){ odfViewer.supportedMimesRead.push(mime); odfViewer.supportedMimesUpdate.push(mime); }); } for (i = 0; i < odfViewer.supportedMimesRead.length; ++i) { mimeRead = odfViewer.supportedMimesRead[i]; OCA.Files.fileActions.register(mimeRead, 'View', OC.PERMISSION_READ, '', odfViewer.onView); OCA.Files.fileActions.setDefault(mimeRead, 'View'); } for (i = 0; i < odfViewer.supportedMimesUpdate.length; ++i) { mimeUpdate = odfViewer.supportedMimesUpdate[i]; OCA.Files.fileActions.register( mimeUpdate, 'Edit', OC.PERMISSION_UPDATE, OC.imagePath('core', 'actions/rename'), odfViewer.onEdit, t('documents', 'Edit') ); OCA.Files.fileActions.setDefault(mimeUpdate, 'Edit'); } }, dispatch : function(filename){ if (odfViewer.supportedMimesUpdate.indexOf(OCA.Files.fileActions.getCurrentMimeType()) !== -1 && OCA.Files.fileActions.getCurrentPermissions() & OC.PERMISSION_UPDATE ){ odfViewer.onEdit(filename); } else { odfViewer.onView(filename); } }, onEdit : function(fileName, context){ var fileId = context.$file.attr('data-id'); window.location = OC.generateUrl('apps/documents/index#{file_id}', {file_id: fileId}); }, onView: function(filename, context) { var attachTo = odfViewer.isDocuments ? '#documents-content' : '#controls'; FileList.setViewerMode(true); // TODO call something like in the onEdit case; or do we want // view-only at all? /* var viewer = window.location.protocol + '//' + window.location.host + '/cloudsuite/cloudsuite.html?' + 'file_path=' + context.dir + '/' + filename + '&host=' + 'ws://' + window.location.hostname + ':9980' + '&edit=' + 'false' + '×tamp=' + ''; var frame = '