/*globals $,OC,fileDownloadPath,t,document,odf,webodfEditor,alert,require,dojo */
var officeMain = {
onStartup: function() {
"use strict";
OC.addScript('office', 'webodf_bootstrap', function() {
OC.addScript('office', 'webodf-debug').done(function() {
require({}, ["dojo/ready"], function(ready) {
ready(function(){
require({}, ["webodf/editor/Editor"], function(Editor) {
if (Editor && typeof(Editor) === 'function') {
officeMain.initialized = 1;
} else {
alert("initialization of webodf/editor/Editor\n"+
"failed somehow...");
}
});
});
});
});
});
},
joinSession: function(response) {
"use strict";
OC.addScript('office', 'editor/boot_editor').done(function() {
var doclocation = response.genesis_url;
// fade out files menu and add odf menu
$('.documentslist, #emptyfolder').fadeOut('slow').promise().done(function() {
// odf action toolbar
var odfToolbarHtml =
'
' +
'' +
'' +
'
';
$('#controls').append(odfToolbarHtml);
});
// fade out file list and show WebODF canvas
$('.documentslist, #emptyfolder').fadeOut('slow').promise().done(function() {
var odfelement, odfcanvas, canvashtml =
'
'+
'
'+
//''+
'
'+
''+
'
'+
'
'+
'
'+
'
'+
'
'+
''+
''+
'
'+
'
'+
'
'+
'
';
$(document.body).addClass("claro");
$('.documentslist, #emptyfolder').after(canvashtml);
// in case we are on the public sharing page we shall display the odf into the preview tag
$('#preview').html(canvashtml);
runtime.assert(response.es_id, "invalid session id.");
webodfEditor.boot(
{
collaborative: "owncloud",
docUrl: doclocation,
loginProcedure: function(cb) {
cb(response.es_id, OC.currentUser, "token");
},
callback: function() {
// initialized.
}
}
);
});
});
},
startSession : function(filepath){
"use strict";
if (officeMain.initialized === undefined) {
alert("WebODF Editor not yet initialized...");
return;
}
$.post(OC.Router.generate('office_session_start'),
{ 'path' : filepath },
officeMain.joinSession
);
},
showSessions : function(){
if ($('#allsessions').length){
$('#allsessions').remove();
return;
}
$.post(OC.Router.generate('office_session_list'), {}, officeMain.onSessions);
},
onSessions : function(response){
if (response && response.sessions){
$(response.sessions).each( function(i, s){ officeMain.addSession(s) } );
}
},
addSession : function(s){
if (!$('#allsessions').length){
$(document.body).append('');
}
$('