added output support, more tuning
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Oct 2006 01:30:53 +0000 (01:30 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 2 Oct 2006 01:30:53 +0000 (01:30 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@6319 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/reports/oils_rpt.js
Open-ILS/web/reports/oils_rpt_folder_window.js
Open-ILS/web/reports/oils_rpt_folder_window.xhtml
Open-ILS/web/reports/oils_rpt_utils.js
Open-ILS/web/reports/oils_rpt_vars.js

index 7751fdc..74a559a 100644 (file)
@@ -5,6 +5,8 @@ function oilsInitReports() {
        document.captureEvents(Event.MOUSEMOVE);
        document.onmousemove = setMousePos;
 
+       //DEBUG = 1;
+
        var cgi = new CGI();
        fetchUser(cgi.param('ses'));
        DOM.oils_rpt_user.appendChild(text(USER.usrname()));
index 3f01eb4..f954c91 100644 (file)
@@ -26,9 +26,9 @@ oilsRptFolderWindow.prototype.draw = function() {
 
        _debug(this.folderNode.folder.owner().id() + ' : ' + USER.id());
 
-       if( this.folderNode.folder.owner().id() != USER.id() 
-               hideMe(DOM.oils_rpt_folder_window_contents_new_template.parentNode);
-       else unHideMe(DOM.oils_rpt_folder_window_contents_new_template.parentNode);
+       if( this.folderNode.folder.owner().id() == USER.id() && this.type == 'template'
+               unHideMe(DOM.oils_rpt_folder_window_contents_new_template.parentNode);
+       else hideMe(DOM.oils_rpt_folder_window_contents_new_template.parentNode);
 
        unHideMe(DOM.oils_rpt_folder_window_contents_div);
        hideMe(DOM.oils_rpt_folder_manager_div);
@@ -57,15 +57,19 @@ oilsRptFolderWindow.prototype.draw = function() {
        this.fetchFolderData();
 
        var sel = DOM.oils_rpt_folder_contents_action_selector;
+       var x = true;
        for( var i = 0; i < sel.options.length; i++ ) {
                var opt = sel.options[i];
-               if( opt.getAttribute('type') == this.type )
+               if( opt.getAttribute('type') == this.type ) {
+                       if(x) opt.selected = true;
+                       x = false;
                        unHideMe(opt);
+               }
                else hideMe(opt);
        }
+       sel.options[0].selected = true;
 
        this.drawEditActions();
-
 }
 
 oilsRptFolderWindow.prototype.drawEditActions = function() {
@@ -76,10 +80,6 @@ oilsRptFolderWindow.prototype.drawEditActions = function() {
                goTo( 'oils_rpt_builder.xhtml'+s+'&folder='+obj.folderNode.folder.id());
        }
 
-       if( this.type == 'template' )
-               unHideMe(DOM.oils_rpt_folder_window_contents_new_template)
-       else
-               hideMe(DOM.oils_rpt_folder_window_contents_new_template)
 
        if( this.folderNode.folder.owner().id() != USER.id() )
                hideMe(DOM.oils_rpt_folder_manager_tab_table);
@@ -147,11 +147,25 @@ oilsRptFolderWindow.prototype.doFolderAction = function() {
                        for(var r = 0; r < objs.length; r++) 
                                this.deleteTemplate(objs[r]);
                        break;
+               case 'show_output':
+                       this.showOutput(objs[0]);
+                       break;
 
        }
 }
 
 
+
+oilsRptFolderWindow.prototype.showOutput = function(sched) {
+       oilsRptFetchReport(sched.report(), 
+               function(r) {
+                       var url = oilsRptBuildOutputLink(r.template(), r.id(), sched.id());
+                       goTo(url);
+               }
+       );
+}
+
+
 oilsRptFolderWindow.prototype.deleteReport = function(report) {
        if(!confirmId('oils_rpt_folder_contents_confirm_report_delete')) return;
        var req = new Request(OILS_RPT_DELETE_REPORT, SESSION, report.id());
@@ -205,19 +219,26 @@ oilsRptFolderWindow.prototype.fetchFolderData = function(callback) {
        removeChildren(this.selector);
        var req = new Request(OILS_RPT_FETCH_FOLDER_DATA, 
                SESSION, this.type, this.folderNode.folder.id());
+
+       if(this.type == 'output') 
+               req = new Request(OILS_RPT_FETCH_OUTPUT, SESSION, this.folderNode.folder.id());
+
+
        var obj = this;
        removeChildren(obj.selector);
        req.callback(
                function(r) {
+                       var res = r.getResultObject();
                        obj.fmTable = drawFMObjectTable( 
                                { 
                                        dest : obj.selector, 
-                                       obj : r.getResultObject(),
+                                       obj : res,
                                        selectCol : true,
-                                       selectColName : 'Select Row'    
+                                       selectColName : 'Select',
+                                       selectAllName : 'All',
+                                       selectNoneName : 'None'
                                }
                        );
-                       //sortables_init();
                        if(callback) callback();
                }
        );
index f6df979..09a1044 100644 (file)
@@ -1,6 +1,6 @@
 <div id='oils_rpt_folder_window_contents_div'>
        <div style='width:100%;text-align: center; margin: 10px;'>
-               <a id='oils_rpt_folder_window_contents_new_template' href='javascript:void(0);'><b>Create a new Template</b></a>
+               <a id='oils_rpt_folder_window_contents_new_template' href='javascript:void(0);'><b>Create a new Template for this folder</b></a>
        </div>
        <table id='oils_rpt_folder_window_contents_table'>
                <tbody>
@@ -14,6 +14,8 @@
                                                        <option type='report' value='change_params'>Clone report</option>
                                                        <option type='report' value='schedule_report'>Schedule report</option>
                                                        <option type='report' value='delete_report'>Delete selected report(s)</option>
+                                                       <option type='output' value='show_output'>View report output</option>
+                                                       <option type='output' value='delete_output'>Delete selected output(s)</option>
                                                </select>
                                        </span>
                                        <input type='submit' value='Submit' id='oils_rpt_folder_content_action_go'/>
@@ -42,5 +44,6 @@
                The selected template could not be deleted because there are reports
                that depend on it.
        </span>
+
 </div>
 
index ddce821..9a3ac6c 100644 (file)
@@ -275,5 +275,16 @@ function oilsRptCreateFolder(folder, type, callback) {
        }
 }
 
+function oilsRptFetchReport(id, callback) {
+       var req = new Request(OILS_RPT_FETCH_REPORT, SESSION, id);
+       req.callback(function(r){ callback(r.getResultObject());});
+       req.send();
+}
+
+
 function oilsRptAlertSuccess() { alertId('oils_rpt_generic_success'); }
 
+
+function oilsRptBuildOutputLink(tid, rid, sid) {
+       return OILS_IDL_OUTPUT_URL + tid+'/'+rid+'/'+sid+'/'+ OILS_IDL_OUTPUT_FILE;
+}
index acc28f2..495270d 100644 (file)
@@ -23,6 +23,9 @@ var oilsRptSharedOutputFolderTree;
 /* URL to retrieve the IDL from */
 var OILS_IDL_URL = "/reports/fm_IDL.xml";
 
+var OILS_IDL_OUTPUT_URL = '/reporter/'
+var OILS_IDL_OUTPUT_FILE = 'report-data.html';
+
 /* multi-select which shows the user 
        what data they want to see in the report */
 var oilsRptDisplaySelector;
@@ -74,6 +77,9 @@ var OILS_RPT_CREATE_TEMPLATE          = 'open-ils.reporter:open-ils.reporter.template.cr
 var OILS_RPT_CREATE_SCHEDULE           = 'open-ils.reporter:open-ils.reporter.schedule.create';
 var OILS_RPT_UPDATE_REPORT                     = 'open-ils.reporter:open-ils.reporter.report.update';
 var OILS_RPT_UPDATE_TEMPLATE           = 'open-ils.reporter:open-ils.reporter.template.update';
+var OILS_RPT_FETCH_OUTPUT                      = 'open-ils.reporter:open-ils.reporter.schedule.retrieve_by_folder';
+var OILS_RPT_FETCH_REPORT                      = 'open-ils.reporter:open-ils.reporter.report.retrieve';
+var OILS_RPT_FETCH_TEMPLATE            = 'open-ils.reporter:open-ils.reporter.template.retrieve';
 
 var oilsRptCurrentFolderManager;