forked from verdnatura/hedera-web
87 lines
1.9 KiB
JavaScript
87 lines
1.9 KiB
JavaScript
|
|
module.exports = new Class({
|
|
Extends: Vn.Object
|
|
|
|
,initialize(moduleInfo, gui) {
|
|
this.info = moduleInfo;
|
|
this.gui = gui;
|
|
this.conn = gui.conn;
|
|
Vn.Object.prototype.initialize.call(this);
|
|
}
|
|
|
|
,open(lot) {
|
|
this.lot = lot;
|
|
this.createWindow();
|
|
}
|
|
|
|
,print() {
|
|
this.window.print();
|
|
}
|
|
|
|
,includeCss(path) {
|
|
var basePath = location.protocol +'//'+ location.host;
|
|
basePath += location.port ? ':'+ location.port : '';
|
|
basePath += location.pathname.substring(0,
|
|
location.pathname.lastIndexOf('/'));
|
|
|
|
var link = this.doc.createElement('link');
|
|
link.rel = 'stylesheet';
|
|
link.type = 'text/css';
|
|
link.href = basePath +'/'+ path + Vn.getVersion();
|
|
|
|
var head = this.doc.getElementsByTagName('head')[0];
|
|
head.appendChild(link);
|
|
}
|
|
|
|
,createWindow() {
|
|
var reportWindow = window.open(
|
|
'js/hedera/report.html', '_blank',
|
|
'height=650, width=950, resizable=yes, fullscreen=no,'+
|
|
'titlebar=no, menubar=no, toolbar=no, location=no, scrollbars=yes'
|
|
);
|
|
|
|
if (!reportWindow) {
|
|
Htk.Toast.showError(
|
|
_('Please unlock popups and try again'));
|
|
return false;
|
|
}
|
|
|
|
reportWindow.addEventListener('load',
|
|
this._onWindowLoad.bind(this));
|
|
this.window = reportWindow;
|
|
return true;
|
|
}
|
|
|
|
,_onWindowLoad() {
|
|
this.doc = this.window.document
|
|
|
|
this.includeCss('reports/'+ this.info.path +'/style.css');
|
|
|
|
var printButton = this.doc.getElementById('print');
|
|
printButton.addEventListener('click', this.print.bind(this));
|
|
Vn.Node.setText(printButton, _('Print'));
|
|
|
|
this.onWindowCreate();
|
|
}
|
|
|
|
,onWindowCreate() {
|
|
var builder = new Vn.Builder();
|
|
builder.compileFile('reports/'+ this.info.path +'/ui.xml');
|
|
|
|
var scope = this.scope = builder.load(this.doc, this);
|
|
scope.link({
|
|
lot: this.lot,
|
|
conn: this.conn
|
|
});
|
|
this.$ = scope.$;
|
|
|
|
this.doc.body.appendChild(scope.$.report);
|
|
}
|
|
|
|
,_destroy() {
|
|
if (this.scope) this.scope._destroy();
|
|
Vn.Object.prototype._destroy.call(this);
|
|
}
|
|
});
|
|
|