3 function oilsRptFetchTemplate(id) {
4 var t = oilsRptGetCache('rt', id);
6 var r = new Request(OILS_RPT_FETCH_TEMPLATE, SESSION, id);
9 oilsRptCacheObject('rt', t, id);
16 /* generic folder window class */
17 oilsRptSetSubClass('oilsRptFolderWindow', 'oilsRptObject');
18 function oilsRptFolderWindow(type, folderId) {
19 var node = oilsRptCurrentFolderManager.findNode(type, folderId);
20 this.init2(node, type);
21 this.selector = DOM.oils_rpt_folder_contents_selector;
25 oilsRptFolderWindow.prototype.init2 = function(node, type) {
26 this.folderNode = node;
32 oilsRptFolderWindow.prototype.draw = function() {
34 hideMe(DOM.oils_rpt_template_folder_new_report);
35 hideMe(DOM.oils_rpt_param_editor_div);
36 unHideMe(DOM.oils_rpt_folder_table_right_td);
37 this.drawFolderDetails();
40 DOM.oils_rpt_folder_content_action_go.onclick =
41 function() {obj.doFolderAction()}
43 this.fetchFolderData();
45 var sel = DOM.oils_rpt_folder_contents_action_selector;
46 for( var i = 0; i < sel.options.length; i++ ) {
47 var opt = sel.options[i];
48 if( opt.getAttribute('type') == this.type )
54 oilsRptFolderWindow.prototype.doFolderAction = function() {
55 var objs = this.fmTable.getSelected();
59 oilsRptFolderWindow.prototype.drawFolderDetails = function() {
60 appendClear(DOM.oils_rpt_folder_creator_label,
61 text(this.folderNode.folder.owner().usrname()));
62 appendClear(DOM.oils_rpt_folder_name_label,
63 text(this.folderNode.folder.name()));
67 oilsRptFolderWindow.prototype.fetchFolderData = function(callback) {
68 removeChildren(this.selector);
69 var req = new Request(OILS_RPT_FETCH_FOLDER_DATA,
70 SESSION, this.type, this.folderNode.folder.id());
74 obj.fmTable = drawFMObjectTable(
77 obj : r.getResultObject(),
79 selectColName : 'Select Row'
83 if(callback) callback();
91 oilsRptTemplateFolderWindow.prototype = new oilsRptFolderWindow();
92 oilsRptTemplateFolderWindow.prototype.constructor = oilsRptTemplateFolderWindow;
93 oilsRptTemplateFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
94 function oilsRptTemplateFolderWindow(node) { this.init2(node, 'template'); }
96 oilsRptTemplateFolderWindow.prototype.draw = function() {
98 this.fetchFolderData('template', DOM.oils_rpt_folder_contents_selector, oilsRptTemplateCache);
101 DOM.oils_rpt_template_folder_window_go.onclick = function() {
102 var action = getSelectorVal(DOM.oils_rpt_template_action_selector);
103 var template = getSelectorVal(DOM.oils_rpt_template_selector);
105 case 'create_report':
106 obj.createReport(template);
113 oilsRptTemplateFolderWindow.prototype.createReport = function(templateId) {
114 unHideMe(DOM.oils_rpt_template_folder_new_report);
115 DOM.oils_rpt_template_folder_new_report_next.onclick = function() {
116 var name = DOM.oils_rpt_template_folder_new_report_name.value;
117 var desc = DOM.oils_rpt_template_folder_new_report_desc.value;
119 rpt.template(templateId);
121 rpt.description(desc);
122 DOM.oils_rpt_template_folder_window_contents_div.appendChild(
123 DOM.oils_rpt_param_editor_div);
124 unHideMe(DOM.oils_rpt_param_editor_div);
125 var e = new oilsRptParamEditor(
126 new oilsReport(oilsRptFetchTemplate(templateId), rpt),
127 DOM.oils_rpt_param_editor_tbody);
134 oilsRptReportFolderWindow.prototype = new oilsRptFolderWindow();
135 oilsRptReportFolderWindow.prototype.constructor = oilsRptReportFolderWindow;
136 oilsRptReportFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
137 function oilsRptReportFolderWindow(node) { this.init2(node, 'report'); }
139 oilsRptReportFolderWindow.prototype.draw = function() {
142 this.fetchFolderData('report',
143 DOM.oils_rpt_report_selector, oilsRptReportCache,
145 appendClear(DOM.oils_rpt_report_description,
146 text(obj.getSelectedReport().description()));
150 DOM.oils_rpt_report_folder_window_go.onclick = function() {
151 var rpt = obj.getSelectedReport();
152 var tmpl = oilsRptFetchTemplate(rpt.template());
153 obj.oilsReport = new oilsReport( tmpl, rpt );
157 oilsRptReportFolderWindow.prototype.drawParamEditor = function(params) {
158 _debug('drawing params: \n' + formatJSON(js2JSON(params)));
162 var oilsRptReportFolderSelectParamRow;
163 oilsRptReportFolderWindow.prototype.drawSelectParamEditor = function(params) {
164 if(params.length == 0) return;
165 //unHideMe(DOM.oils_rpt_report_folder_window_display_params_table);
167 //var tbody = $n(DOM.oils_rpt_report_folder_window_display_params_table,'tbody');
168 //if(!oilsRptReportFolderSelectParamRow)
169 //oilsRptReportFolderSelectParamRow = tbody.removeChild($n(tbody,'tr'));
171 //for( var p = 0; p < params.length; p++ ) {
173 //var row = oilsRptReportFolderSelectParamRow.cloneNode(true);
174 //var par = params[p];
175 //$n(row, 'column').appendChild(text(par.column.colname));
176 //$n(row, 'transform').appendChild(text(par.column.transform));
178 //if( typeof par.value == 'string' ) {
179 //unHideMe($n(row, 'param'));
180 //$n(row, 'param').value = par.value;
182 //switch(par.transform) {
184 //unHideMe($n(row,'string_substring_widget'));
188 //tbody.appendChild(row);
192 oilsRptReportFolderWindow.prototype.drawWhereParamEditor = function(params) {
195 oilsRptReportFolderWindow.prototype.drawHavingParamEditor = function(params) {
200 oilsRptReportFolderWindow.prototype.getSelectedReport = function() {
201 return oilsRptReportCache[getSelectorVal(DOM.oils_rpt_report_selector)];
204 oilsRptReportFolderWindow.prototype.getSelectedAction = function() {
205 return getSelectorVal(DOM.oils_rpt_report_selector, force);
212 oilsRptOutputFolderWindow.prototype = new oilsRptFolderWindow();
213 oilsRptOutputFolderWindow.prototype.constructor = oilsRptOutputFolderWindow;
214 oilsRptOutputFolderWindow.baseClass = oilsRptFolderWindow.prototype.constructor;
215 function oilsRptOutputFolderWindow(node) { this.init2(node, 'output'); }
217 oilsRptOutputFolderWindow.prototype.draw = function() {
219 this.openWindow(null);