1 var oilsRptTemplateCache = {};
2 var oilsRptReportCache = {};
4 /* utility method to find and build the correct folder window object */
5 function oilsRptBuildFolderWindow( type, folderId ) {
6 var node = oilsRptCurrentFolderManager.findNode(type, folderId);
7 _debug('drawing folder window for folder ' + node.folder.name());
10 return new oilsRptTemplateFolderWindow(node);
12 return new oilsRptReportFolderWindow(node);
14 return new oilsRptOutputFolderWindow(node);
18 function oilsRptFetchTemplate(id) {
19 if( oilsRptTemplateCache[id] )
20 return oilsRptTemplateCache[id];
21 var r = new Request(OILS_RPT_FETCH_TEMPLATE, SESSION, id);
28 /* generic folder window class */
29 oilsRptFolderWindow.prototype = new oilsRptObject();
30 oilsRptFolderWindow.prototype.constructor = oilsRptFolderWindow;
31 oilsRptFolderWindow.baseClass = oilsRptObject.prototype.constructor;
32 function oilsRptFolderWindow() { }
33 oilsRptFolderWindow.prototype.init2 = function(node, type) {
34 this.folderNode = node;
37 _debug('id = ' + this.id);
40 oilsRptFolderWindow.prototype.openWindow = function(node) {
41 hideMe(DOM.oils_rpt_template_folder_window_contents_div);
42 hideMe(DOM.oils_rpt_report_folder_window_contents_div);
43 unHideMe(DOM.oils_rpt_folder_table_right_td);
47 oilsRptFolderWindow.prototype.fetchFolderData = function(type, selector, cache) {
48 removeChildren(selector);
49 var req = new Request(OILS_RPT_FETCH_FOLDER_DATA,
50 SESSION, type, this.folderNode.folder.id());
53 var ts = r.getResultObject();
55 for( var i = 0; i < ts.length; i++ ) {
56 var name = ts[i].name();
57 if( type == 'report' )
58 name = oilsRptFetchTemplate(ts[i].template()).name() + ' : ' + name;
60 insertSelectorVal(selector, -1, name, ts[i].id());
61 cache[ts[i].id()] = ts[i];
69 oilsRptTemplateFolderWindow.prototype = new oilsRptFolderWindow();
70 oilsRptTemplateFolderWindow.prototype.constructor = oilsRptTemplateFolderWindow;
71 oilsRptTemplateFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
72 function oilsRptTemplateFolderWindow(node) { this.init2(node, 'template'); }
74 oilsRptTemplateFolderWindow.prototype.draw = function() {
75 this.openWindow(DOM.oils_rpt_template_folder_window_contents_div);
76 this.fetchFolderData('template', DOM.oils_rpt_template_selector, oilsRptTemplateCache);
79 DOM.oils_rpt_template_action_selector.onchange = function() {
80 var action = getSelectVal(DOM.oils_rpt_template_action_selector.onchange);
90 oilsRptTemplateFolderWindow.prototype.createReport = function() {
95 oilsRptReportFolderWindow.prototype = new oilsRptFolderWindow();
96 oilsRptReportFolderWindow.prototype.constructor = oilsRptReportFolderWindow;
97 oilsRptReportFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
98 function oilsRptReportFolderWindow(node) { this.init2(node, 'report'); }
100 oilsRptReportFolderWindow.prototype.draw = function() {
101 this.openWindow(DOM.oils_rpt_report_folder_window_contents_div);
102 this.fetchFolderData('report', DOM.oils_rpt_report_selector, oilsRptReportCache);
109 oilsRptOutputFolderWindow.prototype = new oilsRptFolderWindow();
110 oilsRptOutputFolderWindow.prototype.constructor = oilsRptOutputFolderWindow;
111 oilsRptOutputFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
112 function oilsRptOutputFolderWindow(node) { this.init2(node, 'output'); }
114 oilsRptOutputFolderWindow.prototype.draw = function() {
116 this.openWindow(null);