added order_by clause creation, did some basic testing
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 Oct 2006 03:37:01 +0000 (03:37 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 5 Oct 2006 03:37:01 +0000 (03:37 +0000)
now i need to add order_by pruning when deleting display items

git-svn-id: svn://svn.open-ils.org/ILS/trunk@6393 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/reports/oils_rpt_builder.js
Open-ILS/web/reports/oils_rpt_builder.xhtml
Open-ILS/web/reports/oils_rpt_param_editor.js
Open-ILS/web/reports/oils_rpt_param_editor.xhtml
Open-ILS/web/reports/oils_rpt_report_editor.js

index 53020cf..eda54d6 100644 (file)
@@ -573,8 +573,13 @@ function oilsRptSetDataWindowActions(div) {
                function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_filter_div)};
        DOM.oils_rpt_agg_filter_tab.onclick = 
                function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_agg_filter_div)};
+
        DOM.oils_rpt_order_by_tab.onclick = 
-               function(){oilsRptHideEditorDivs();unHideMe(DOM.oils_rpt_order_by_div)};
+               function(){
+                       oilsRptHideEditorDivs();
+                       oilsRptDrawOrderByWindow();
+                       unHideMe(DOM.oils_rpt_order_by_div);
+                       };
 
        DOM.oils_rpt_tform_tab.onclick();
        DOM.oils_rpt_column_editor_close_button.onclick = function(){hideMe(div);};
@@ -649,13 +654,47 @@ function oilsRptDrawTransformWindow(path, col, cls, field) {
 }
 
 
-function oilsRptDrawOrderByWindow(path, col, cls, field) {
+//function oilsRptDrawOrderByWindow(path, col, cls, field) {
+function oilsRptDrawOrderByWindow() {
        var sel = DOM.oils_rpt_order_by_selector;
        removeChildren(sel);
        DOM.oils_rpt_order_by_submit.onclick = function() {
-               alert('make me work');
+               oilsRptAddOrderBy(getSelectorVal(sel));
+       }
+
+       var cols = oilsRpt.def.select;
+       for( var i = 0; i < cols.length; i++ ) {
+               var obj = cols[i];
+               insertSelectorVal(sel, -1, obj.alias, obj.path);
        }
 }
 
+function oilsRptAddOrderBy(path) {
+       var rel = hex_md5(oilsRptPathRel(path));
+       var order_by = oilsRpt.def.order_by;
+
+       /* if this item is already in the order by remove it and overwrite it */
+       order_by = grep(oilsRpt.def.order_by, 
+               function(i) {return (i.path != path)});
+       
+       if(!order_by) order_by = [];
+
+       /* find the column definition in the select blob */
+       var obj = grep(oilsRpt.def.select,
+               function(i) {return (i.path == path)});
+       
+       if(!obj) return;
+       obj = obj[0];
+       
+       order_by.push({ 
+               relation : obj.relation, 
+               column : obj.column,
+               direction : getSelectorVal(DOM.oils_rpt_order_by_dir)
+       });
+
+       oilsRpt.def.order_by = order_by;
+       oilsRptDebug();
+}
+
 
 
index 0e3ac94..0f5c4bd 100644 (file)
                                        </div>
                                        <div>
                                                <table><tbody>
-                                                       <!--
                                                        <tr>
                                                        <td>Choose a column: </td>
                                                        <td>
                                                                <select id='oils_rpt_order_by_selector'/>
                                                        </td>
                                                </tr>
-                                               -->
                                                <tr>    
                                                        <td>Choose the direction the sorting should occur: </td>
                                                        <td>
                                                                <select id='oils_rpt_order_by_dir'>
-                                                                       <option selected='selected'>Ascending</option>
+                                                                       <option value='ascending' selected='selected'>Ascending</option>
                                                                        <option value='descending'>Descending</option>
                                                                </select>
                                                        </td>
index c09d3e5..48c42d6 100644 (file)
@@ -37,13 +37,14 @@ oilsRptParamEditor.prototype.draw = function() {
                $n(row, 'action').appendChild(text(par.op));
                par.widget = this.buildWidget(par, $n(row, 'widget'));
                par.widget.draw();
-               this.buildRelWidget(par, row);
+               //this.buildRelWidget(par, row);
                this.tbody.appendChild(row);
        }
 }
 
 
 /* display the time-relative options if necessary */
+/*
 oilsRptParamEditor.prototype.buildRelWidget = function(par, row) {
 
        var field = oilsRptFindField(
@@ -64,6 +65,7 @@ oilsRptParamEditor.prototype.buildRelWidget = function(par, row) {
                if( cb.checked ) par.relWidgetChecked = true;
        }
 }
+*/
 
 
 oilsRptParamEditor.prototype.buildWidget = function(param, node) {
index 7b2ea6c..c29eee2 100644 (file)
                                                <span name='hint'/>
                                                <span name='widget'/>
                                        </div>
+                                       <!--
                                        <div name='reldate_div'  style='margin-top: 5px;' class='hide_me'>
                                                <div><b> - OR - </b></div>
                                                <input type='checkbox' name='choose_rel'/> Use a relative date instead.
                                                <div name='reldate'/>
                                        </div>
+                                       -->
                                </td>
                        </tr>
                </tbody>
index d0edbe9..b937ca4 100644 (file)
@@ -69,10 +69,12 @@ oilsRptReportEditor.prototype.save = function() {
        for( var p in this.paramEditor.params ) {
                var par = this.paramEditor.params[p];
                _debug("adding report param "+par.key+" to report data");
+               /*
                if( par.relWidgetChecked )
                        data[par.key] = par.relWidget.getValue();
                else
-                       data[par.key] = par.widget.getValue();
+               */
+               data[par.key] = par.widget.getValue();
        }
 
        data = js2JSON(data);