FR = {
waiting: false,
init: function () {
this.viewport = new Ext.Viewport({
layout: 'fit',
items: {
layout: 'fit',
border: false,
html: ''
}
});
this.authenticate();
this.popupChecker = new Ext.util.TaskRunner();
this.popupChecker.start({
run: function(){
if (this.popup.closed) {
if (this.waiting) {
this.popupChecker.stopAll();
this.retrieveFile(this.sendFileResults.data.id);
} else {
window.parent.FR.UI.popups[windowId].close();
}
}
},
scope: this,
interval: 500
});
},
openInPopup: function(args) {
var width = 900;
var height = 500;
var left = ((screen.width / 2) - (width / 2));
var top = (screen.height-height) / 4;
return window.open(args.url, args.name, 'scrollbars=yes, width=' + width + ', height=' + height + ', top=' + top + ', left=' + left);
},
authenticate: function() {
this.viewport.getEl().mask(FR.T('Signing into Google...
Please check the opened popup for proceeding to the editor.'));
this.popup = this.openInPopup({url: URLRoot+'/?module=custom_actions&action=google&method=gauth', name: 'gEditPopup'});
},
sendFile: function() {
this.viewport.getEl().mask(FR.T('Sending document data to Google...
Please wait.'));
Ext.Ajax.request({
url: URLRoot+'/?module=custom_actions&action=google&method=sendFile',
params: {
path: path,
filename: filename
},
success: function(req) {
this.viewport.getEl().unmask();
try {
this.sendFileResults = Ext.util.JSON.decode(req.responseText);
} catch (er){return false;}
if (this.sendFileResults.success) {
if (this.sendFileResults.data.webViewLink) {
this.popup.location.href = this.sendFileResults.data.webViewLink;
this.viewport.getEl().mask(FR.T('Waiting for the editor to close...
If you close this window, your changes will not be saved to the document.'));
this.waiting = true;
}
} else {
this.popup.close();
if (this.sendFileResults.msg) {window.parent.FR.UI.feedback(this.sendFileResults.msg);}
window.parent.FR.UI.popups[windowId].close();
}
},
scope: this
});
},
retrieveFile: function(fileId) {
this.viewport.getEl().mask(FR.T('Importing document from Google...'));
Ext.Ajax.request({
url: URLRoot+'/?module=custom_actions&action=google&method=retrieveFile',
params: {
path: path,
filename: filename,
fileId: fileId
},
success: function(req) {
this.viewport.getEl().unmask();
try {
var rs = Ext.util.JSON.decode(req.responseText);
} catch (er){return false;}
if (rs.msg) {window.parent.FR.UI.feedback(rs.msg);}
if (rs.success) {
window.parent.FR.utils.reloadGrid(rs.filename);
window.parent.FR.UI.popups[windowId].close();
}
},
scope: this
});
}
}