fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [16739] Backport diff from Syncromind to trunk


From: sigurdne
Subject: [Fmsystem-commits] [16739] Backport diff from Syncromind to trunk
Date: Sat, 13 May 2017 10:17:39 -0400 (EDT)

Revision: 16739
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16739
Author:   sigurdne
Date:     2017-05-13 10:17:39 -0400 (Sat, 13 May 2017)
Log Message:
-----------
Backport diff from Syncromind to trunk

Modified Paths:
--------------
    trunk/property/inc/class.boreport.inc.php
    trunk/property/inc/class.soreport.inc.php
    trunk/property/inc/class.uireport.inc.php
    trunk/property/js/portico/report.edit.js
    trunk/property/templates/base/report.xsl

Property Changed:
----------------
    trunk/
    trunk/booking/
    trunk/bookingfrontend/

Index: trunk
===================================================================
--- trunk       2017-05-13 14:15:15 UTC (rev 16738)
+++ trunk       2017-05-13 14:17:39 UTC (rev 16739)

Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
## -1,3 +1,3 ##
 /branches/dev-syncromind:13653
-/branches/dev-syncromind-2:14933-16587
+/branches/dev-syncromind-2:14933-16738
 /branches/stavangerkommune:12743-12875,12986
\ No newline at end of property
Index: trunk/booking
===================================================================
--- trunk/booking       2017-05-13 14:15:15 UTC (rev 16738)
+++ trunk/booking       2017-05-13 14:17:39 UTC (rev 16739)

Property changes on: trunk/booking
___________________________________________________________________
Modified: svn:mergeinfo
## -1,2 +1,2 ##
-/branches/dev-syncromind-2/booking:14933-16587
+/branches/dev-syncromind-2/booking:14933-16738
 /branches/stavangerkommune/booking:9468-12740,12743-12875,12986
\ No newline at end of property
Index: trunk/bookingfrontend
===================================================================
--- trunk/bookingfrontend       2017-05-13 14:15:15 UTC (rev 16738)
+++ trunk/bookingfrontend       2017-05-13 14:17:39 UTC (rev 16739)

Property changes on: trunk/bookingfrontend
___________________________________________________________________
Modified: svn:mergeinfo
## -1,2 +1,2 ##
-/branches/dev-syncromind-2/bookingfrontend:14933-16587
+/branches/dev-syncromind-2/bookingfrontend:14933-16738
 /branches/stavangerkommune/bookingfrontend:9468-12740,12986
\ No newline at end of property
Modified: trunk/property/inc/class.boreport.inc.php
===================================================================
--- trunk/property/inc/class.boreport.inc.php   2017-05-13 14:15:15 UTC (rev 
16738)
+++ trunk/property/inc/class.boreport.inc.php   2017-05-13 14:17:39 UTC (rev 
16739)
@@ -57,9 +57,9 @@
                        return $values;
                }
 
-               public function read_to_export($id)
+               public function read_to_export($id, $data = array())
                {                       
-                       $values =  $this->so->read_to_export($id);
+                       $values =  $this->so->read_to_export($id, $data);
                        
                        return $values;
                }
@@ -78,13 +78,20 @@
                        return $values;
                }
                
-               function get_columns($id)
+               function get_view_columns($id)
                {
-                       $values = $this->so->get_columns($id);
+                       $values = $this->so->get_view_columns($id);
 
                        return $values;
                }
 
+               function get_view_content($id)
+               {
+                       $values = $this->so->get_view_content($id);
+
+                       return $values;
+               }
+               
                function read_single_dataset( $dataset_id = '' )
                {
                        $dataset = $this->so->read_single_dataset($dataset_id);

Modified: trunk/property/inc/class.soreport.inc.php
===================================================================
--- trunk/property/inc/class.soreport.inc.php   2017-05-13 14:15:15 UTC (rev 
16738)
+++ trunk/property/inc/class.soreport.inc.php   2017-05-13 14:17:39 UTC (rev 
16739)
@@ -168,7 +168,7 @@
                        return $values;
                }
                
-               public function get_columns($id)
+               public function get_view_columns($id)
                {
                        $dataset = $this->read_single_dataset($id);
                        
@@ -193,48 +193,165 @@
                        return $values;
                }
                
-               function read_to_export ( $id )
+               function get_view_content ( $id )
                {
                        $id = (int)$id;
+
+                       $dataset = $this->read_single_dataset($id);
                        
-                       $definition = $this->read_single($id);
-                       $dataset = 
$this->read_single_dataset($definition['dataset_id']);
+                       $sql = "SELECT column_name, data_type
+                               FROM   information_schema.columns
+                               WHERE  table_name = '".$dataset['view_name']."'
+                               ORDER  BY ordinal_position";
+                       $this->db->query($sql, __LINE__, __FILE__);
+
+                       $columns = array();
                        
-                       $jsonB = json_decode($definition['report_definition'], 
true);
+                       while ($this->db->next_record())
+                       {
+                               $columns[] = $this->db->f('column_name');
+                       }
                        
-                       $columns = implode(',', $jsonB['group']);
-                       $agregates = array();
-                       foreach ($jsonB['aggregate'] as $c => $v)
+                       $sql = "SELECT * FROM ".$dataset['view_name'];
+                       $this->db->limit_query($sql, 0, __LINE__, __FILE__, 20);
+                       
+                       $values = array();
+                       while ($this->db->next_record())
                        {
-                               $agregates[] = 
$jsonB['cbo_aggregate'][$v]."(".$v.") AS ".$jsonB['txt_aggregate'][$v];
+                               $value = array();
+                               foreach ($columns as $column)
+                               {
+                                       $value[$column] = $this->db->f($column);
+                               }
+                               $values[] = $value;
                        }
-                       $func_agregates = implode(',', $agregates);
-                       $order = '';
-                       if (count($jsonB['order']))
+                       
+                       return $values;
+               }
+               
+               function read_to_export ( $id, $data = array() )
+               {
+                       $id = (int)$id;
+
+                       if (count($data))
                        {
-                               $order = ' ORDER BY '.implode(',', 
$jsonB['order']);
+                               $dataset = $this->read_single_dataset($id);
+                               $jsonB = $data;
+                       } 
+                       else {
+                               $definition = $this->read_single($id);
+                               $dataset = 
$this->read_single_dataset($definition['dataset_id']);                          
     
+                               $jsonB = 
json_decode($definition['report_definition'], true);
                        }
+       
+                       $string_columns = implode(',', $jsonB['columns']);
                        
-                       $sql = "SELECT ".$columns.",".$func_agregates." FROM 
".$dataset['view_name']." GROUP BY ".$columns.$order;
+                       $group = implode(',', $jsonB['group']);
+                       $order = 'ORDER BY '.$group.' ASC';
                        
-                       $this->db->query($sql, __LINE__, __FILE__);
+                       $sql = "SELECT ".$string_columns." FROM 
".$dataset['view_name']." ".$order;
 
-                       $resultado = array_merge(array_values($jsonB['group']), 
array_values($jsonB['txt_aggregate']));
+                       if (count($data))
+                       {
+                               $this->db->limit_query($sql, 0, __LINE__, 
__FILE__, 20);
+                       } else {
+                               $this->db->query($sql, __LINE__, __FILE__);
+                       }
+
+                       $columns = array_values($jsonB['columns']);
+                       array_unshift($columns, "");
+                       $functions = $jsonB['cbo_aggregate'];
+               
+                       $values = array();
+                       $array_sum = array();
+                       $array_count = array();
                        
-                       $values = array();
                        while ($this->db->next_record())
                        {
                                $value = array();
-                               foreach ($resultado as $column)
+                               foreach ($columns as $column)
                                {
                                        $value[$column] = $this->db->f($column);
                                }
-                               $values[] = $value;
+                               
+                               foreach ($functions as $k => $v)
+                               {
+                                       if ($v == 'sum')
+                                       {
+                                               
$array_sum[$this->db->f($group)][$k][] = $this->db->f($k);
+                                       }
+                                       if ($v == 'count')
+                                       {
+                                               
$array_count[$this->db->f($group)][$k][] = $this->db->f($k);
+                                       }
+                               }
+                               
+                               $values[$this->db->f($group)][] = $value;       
                        
                        }
+                                                       
+                       $result = $this->_generate_total_sum($values, 
$array_sum, $array_count);
                        
-                       return $values;
+                       return $result;
                }
                
+               private function _generate_total_sum($values, $array_sum, 
$array_count)
+               {               
+                       $result = array();
+                       $array_operations = array();
+                       
+                       foreach ($values as $k => $group)
+                       {
+                               $columns = array_keys($group[0]);
+                               
+                               $operations = array();
+                               $empty = array();
+                               foreach ($columns as $columm)
+                               {
+                                       $empty[$columm] = $operations[$columm] 
= '';
+                                       
+                                       if (is_array($array_sum[$k][$columm]))
+                                       {
+                                               $operations[$columm] = 
array_sum($array_sum[$k][$columm]);
+                                       }
+                                       if (is_array($array_count[$k][$columm]))
+                                       {
+                                               $operations[$columm] = 
count($array_count[$k][$columm]);
+                                       }
+                                       if ($columm == '')
+                                       {
+                                               $operations[$columm] = 
lang('Total');
+                                       }                                       
+                               }       
+                               
+                               $array_operations[] = $operations;
+                               $group[] =  $operations;
+                               $group[] =  $empty;
+                               
+                               $result = array_merge($result, $group);
+                       }       
+                       
+                       $grand_total = array();
+                       $columns = array_keys($array_operations[0]);
+                       foreach ($array_operations as $value)
+                       {
+                               foreach ($columns as $columm)
+                               {
+                                       if ($columm == '')
+                                       {
+                                               $grand_total[$columm] = 
lang('Grand Total');
+                                       }  
+                                       else 
+                                       { 
+                                               $grand_total[$columm] = 
($grand_total[$columm] + $value[$columm]) ? ($grand_total[$columm] + 
$value[$columm]) : '';
+                                       }
+                               }                               
+                       }
+                       
+                       $result[] = $grand_total;
+                       
+                       return $result;
+               }
+               
                function read_single_dataset ( $id, $values = array() )
                {
                        $id = (int)$id;
@@ -391,16 +508,16 @@
 
                        $this->db->transaction_begin();
                        
-                       $this->db->query("DELETE FROM fm_view_dataset WHERE id 
='{$id}'", __LINE__, __FILE__);
-                       $this->db->query("DELETE FROM fm_view_dataset_report 
WHERE dataset_id ='{$id}'", __LINE__, __FILE__);
+                       //$this->db->query("DELETE FROM fm_view_dataset WHERE 
id ='{$id}'", __LINE__, __FILE__);
+                       $this->db->query("DELETE FROM fm_view_dataset_report 
WHERE id ='{$id}'", __LINE__, __FILE__);
 
                        if ($this->db->transaction_commit())
                        {
-                               $receipt['message'][] = array('msg' => 
lang('dataset has been deleted'));
+                               $receipt['message'][] = array('msg' => 
lang('report has been deleted'));
                        }
                        else
                        {
-                               $receipt['error'][] = array('msg' => 
lang('dataset has not been deleted'));
+                               $receipt['error'][] = array('msg' => 
lang('report has not been deleted'));
                        }
                        
                        return $receipt;

Modified: trunk/property/inc/class.uireport.inc.php
===================================================================
--- trunk/property/inc/class.uireport.inc.php   2017-05-13 14:15:15 UTC (rev 
16738)
+++ trunk/property/inc/class.uireport.inc.php   2017-05-13 14:17:39 UTC (rev 
16739)
@@ -46,7 +46,8 @@
                        'edit_dataset' => true,
                        'save_dataset' => true,
                        'delete_dataset' => true,
-                       'get_columns' => true,
+                       'get_column_preview' => true,
+                       'preview' => true,
                        'download' => true
                );
 
@@ -337,6 +338,7 @@
                                'report_name' => $values['report_name'],
                                'msgbox_data' => 
$GLOBALS['phpgw']->common->msgbox($msgbox_data),
                                'tabs' => 
phpgwapi_jquery::tabview_generate($tabs, $active_tab),
+                               'image_loader' => 
$GLOBALS['phpgw']->common->image('property', 'ajax-loader', '.gif', false),
                                'validator' => 
phpgwapi_jquery::formvalidator_generate(array('location', 'date', 'security', 
'file'))
                        );
 
@@ -353,11 +355,20 @@
                        $report_name = phpgw::get_var('report_name');
                        $dataset_id = phpgw::get_var('dataset_id');
                        
-                       $group = phpgw::get_var('group');
-                       $order = phpgw::get_var('order');
+                       $_columns = phpgw::get_var('columns');
+                       $group_by = phpgw::get_var('group');
+                       $order_by = phpgw::get_var('order');
                        $aggregate = phpgw::get_var('aggregate');
                        $cbo_aggregate = phpgw::get_var('cbo_aggregate');
-                       $txt_aggregate = phpgw::get_var('txt_aggregate');
+       
+                       $group = array($group_by => $group_by);
+                       $order = array($order_by => $order_by);
+                       
+                       $columns = array();
+                       foreach ($_columns as $column)
+                       {
+                               $columns[] = $column;
+                       }
 
                        $values['id'] = $report_id;
 
@@ -373,7 +384,7 @@
                        
                        if (!count($group))
                        {
-                               $this->receipt['error'][] = array('msg' => 
lang('Please select a columns !'));
+                               $this->receipt['error'][] = array('msg' => 
lang('Please select a group !'));
                        }
 
                        if (!count($aggregate))
@@ -382,11 +393,12 @@
                        }
                        
                        $values['report_name'] = $report_name;
+                       $values['report_definition']['columns'] = $columns;
                        $values['report_definition']['group'] = $group;
                        $values['report_definition']['order'] = $order;
                        $values['report_definition']['aggregate'] = $aggregate;
                        $values['report_definition']['cbo_aggregate'] = 
$cbo_aggregate;
-                       $values['report_definition']['txt_aggregate'] = 
$txt_aggregate;
+                       //$values['report_definition']['txt_aggregate'] = 
$txt_aggregate;
                        $values['dataset_id'] = $dataset_id;
 
                        return $values;
@@ -398,7 +410,7 @@
                        {
                                return $this->edit();
                        }
-                       
+
                        /*
                         * Overrides with incoming data from POST
                         */
@@ -673,13 +685,61 @@
                        return $this->jquery_results($result_data);
                }
                
-               public function get_columns()
+               public function get_column_preview()
                {
                        $dataset_id = phpgw::get_var('dataset_id');
 
-                       $columns = $this->bo->get_columns($dataset_id);
+                       $columns = $this->bo->get_view_columns($dataset_id);
                        
-                       return $columns;
+                       $html_table = '<table class="pure-table 
pure-table-bordered">';
+                       $html_table .= '<thead><tr>';
+                       foreach ($columns as $col)
+                       {
+                               $_check = '<input type="checkbox" 
id="c_'.$col['name'].'" name="columns['.$col['name'].']" 
value="'.$col['name'].'" onchange="build_check_groups(\''. $col['name'] .'\', 
\''. $col['type'] .'\')"/>';
+                               $html_table .= "<th align='center'>".$_check." 
".$col['name']."</th>";
+                       }
+                       $html_table .= '</tr></thead>';
+
+                       $data = $this->bo->get_view_content($dataset_id);
+                       
+                       foreach ($data as $row)
+                       {
+                               $html_table .= "<tr><td>" . 
implode('</td><td>', $row) . '</td></tr>';
+                       }
+                       $html_table .= '</table>';
+                       
+                       return array('columns_preview' => $html_table);
                }
                
+               public function preview()
+               {
+                       $values = phpgw::get_var('values');
+                       $dataset_id = phpgw::get_var('dataset_id');
+                       
+                       $data['columns'] = $values['columns'];
+                       $data['group'] = $values['group'];
+                       $data['order'] = $values['order'];
+                       $data['aggregate'] = $values['aggregate'];
+                       $data['cbo_aggregate'] = $values['cbo_aggregate'];      
        
+
+                       $list = $this->bo->read_to_export($dataset_id, $data);
+                       
+                       $html_table = '<table class="pure-table 
pure-table-bordered">';
+                       $html_table .= '<thead><tr>';
+                       foreach ($list[0] as $c => $v)
+                       {                               
+                               $html_table .= "<th align='center'>".$c."</th>";
+                       }
+                       $html_table .= '</tr></thead>';
+                       
+                       foreach ($list as $row)
+                       {
+                               $html_table .= "<tr><td>" . 
implode('</td><td>', $row) . '</td></tr>';
+                       }
+                       $html_table .= '</table>';
+                       
+                       return $html_table;
+                       
+               }
+               
        }
\ No newline at end of file

Modified: trunk/property/js/portico/report.edit.js
===================================================================
--- trunk/property/js/portico/report.edit.js    2017-05-13 14:15:15 UTC (rev 
16738)
+++ trunk/property/js/portico/report.edit.js    2017-05-13 14:17:39 UTC (rev 
16739)
@@ -1,10 +1,11 @@
 $(document).ready(function ()
 {
-       //$('.processing').hide();
+       $('.processing').hide();
+       $('.processing-preview').hide();
        
        $('#btn_get_columns').click( function()
        {
-               var oArgs = {menuaction: 'property.uireport.get_columns'};
+               var oArgs = {menuaction: 
'property.uireport.get_column_preview'};
                var requestUrl = phpGWLink('index.php', oArgs, true);
                var data = {"dataset_id": $('#cbo_dataset_id').val()};
 
@@ -20,7 +21,7 @@
                        dataType: 'json',
                        data: data
                }).always(function () {
-                       //$('.processing').hide();
+                       $('.processing').hide();
                }).done(function (result) {
                        //console.log(result);
                        $('#container_columns').empty();
@@ -28,7 +29,8 @@
                        $('#container_order').empty();
                        $('#container_aggregates').empty();
                        
-                       build_check_columns(result);
+                       $('#container_columns').html(result.columns_preview);
+                       
                        if (jsonB !== '')
                        {
                                set_values();
@@ -37,14 +39,108 @@
        });
        
        $('#btn_get_columns').click();
+       
+       $('#btn_preview').click( function()
+       {
+               var oArgs = {menuaction: 'property.uireport.preview'};
+               var requestUrl = phpGWLink('index.php', oArgs, true);
+
+               if ($('#cbo_dataset_id').val() == '')
+               {
+                       alert('choose dataset');
+                       return;
+               }
+               
+               var values = {};
+
+               values['columns'] = {};
+               values['group'] = {};
+               values['order'] = {};
+               values['aggregate'] = {};
+               values['cbo_aggregate'] = {};
+               
+               $('input[name^="columns"]').each(function() {
+
+                       if ($(this).is(":checked"))
+                       {
+                               values['columns'][$(this).val()] = 
$(this).val();
+                       }
+               });
+               
+               var invalid_groups = true;
+               $('input[name="group"]').each(function() {
+
+                       if ($(this).is(":checked"))
+                       {
+                               values['group'][$(this).val()] = $(this).val();
+                               invalid_groups = false;
+                       }
+               });
+                               
+               if (invalid_groups)
+               {
+                       alert('Choose group');
+                       $('#responsiveTabsGroups').responsiveTabs('activate', 
1);
+                       return;
+               }
+               
+               $('input[name="order"]').each(function() {
+
+                       if ($(this).is(":checked"))
+                       {
+                               values['order'][$(this).val()] = $(this).val();
+                       }
+               });
+         
+           var name = '';
+               var invalid_aggregate = true;
+
+               $('input[name^="aggregate"]').each(function() {
+
+                       if ($(this).is(":checked"))
+                       {
+                               name = $(this).val();
+                               values['aggregate'][name] = name;
+                               invalid_aggregate = false;
+                               
+                               values['cbo_aggregate'][name] = $('#cbo_' + 
name).val();
+                       }
+               });
+               
+               if (invalid_aggregate)
+               {
+                       $('#responsiveTabsGroups').responsiveTabs('activate', 
3);
+                       alert('Choose COUNT/SUM option');                       
+                       return;
+               }
+               
+               var data = {"values": values, "dataset_id": 
$('#cbo_dataset_id').val()};
+               $('.processing-preview').show();
+               $.ajax({
+                       type: 'GET',
+                       url: requestUrl,
+                       dataType: 'json',
+                       data: data
+               }).always(function () {
+                       $('.processing-preview').hide();
+               }).done(function (result) {
+                       $('#container_preview').html(result);
+               });             
+       });
+       
 });
 
 function set_values()
 {
+       $.each(jsonB.columns, function(key, value) 
+       {
+               $("#c_" + value).prop('checked', true);
+               $("#c_" + value).change();
+       });
+       
        $.each(jsonB.group, function(key, value) 
        {
-               $("#c_" + key).prop('checked', true);
-               $("#c_" + key).change();
+               $("#g_" + key).prop('checked', true);
        });     
        
        $.each(jsonB.order, function(key, value) 
@@ -62,11 +158,6 @@
        {
                $("#cbo_" + key).val(value);
        });
-       
-       $.each(jsonB.txt_aggregate, function(key, value) 
-       {
-               $("#txt_" + key).val(value);
-       });
 }
 
 function build_check_columns(data)
@@ -73,28 +164,33 @@
 {
        $.each(data, function(key, object) 
        {
-               $('#container_columns').append('<span 
style="margin-right:12px;"><input type="checkbox" id="c_'+ object.name +'" 
value="'+ object.name +'" onchange="build_check_groups(\''+ object.name 
+'\')"/> ' + object.name + '</span>');
-
                var combo = build_list_aggregates(object.name, object.type);
-               var text = build_text_aggregates(object.name);
+               //var text = build_text_aggregates(object.name);
                var check = build_check_aggregates(object.name);
-               var el_1 = '<span style="display:table-row;">'+ check + combo + 
text + '</span>';
+               var el_1 = '<span style="display:table-row;">'+ check + combo + 
'</span>';
                $('#container_aggregates').append(el_1);                        
        });     
 }
 
-function build_check_groups(name)
+function build_check_groups(name, type)
 {
        if ($("#c_" + name).is(":checked")) 
        {
-               var el_1 = '<span style="display:block;"><input onclick="return 
false;" onkeydown="return false;" type="checkbox" name="group['+ name +']" 
id="g_'+ name +'" value="'+ name +'" checked/>' + name + '</span>';
-               var el_2 = '<span style="display:block;"><input type="checkbox" 
name="order['+ name +']" id="o_'+ name +'" value="'+ name +'"/>' + name + 
'</span>';
+               var el_1 = '<span style="display:block;"><input type="radio" 
name="group" id="g_'+ name +'" value="'+ name +'"/>' + name + '</span>';
+               var el_2 = '<span style="display:block;"><input type="radio" 
name="order" id="o_'+ name +'" value="'+ name +'"/>' + name + '</span>';
                $('#container_groups').append(el_1);
                $('#container_order').append(el_2);
+               
+               var combo = build_list_aggregates(name, type);
+               //var text = build_text_aggregates(name);
+               var check = build_check_aggregates(name);
+               var el_1 = '<span style="display:table-row;">'+ check + combo + 
'</span>';
+               $('#container_aggregates').append(el_1);
        } 
        else {
                $("#g_" + name).parent().remove();
                $("#o_" + name).parent().remove();
+               $("#cbo_" + name).parent().parent().remove();
        }
 }
 
@@ -108,7 +204,7 @@
 {
     var combo = $("<select></select>");  
        combo.append("<option value='count'>Count</option>");
-       if (type == 'integer')
+       if (type == 'integer' || type == 'numeric')
        {
                combo.append("<option value='sum'>Sum</option>");
        }
@@ -126,9 +222,7 @@
        if ($("#a_" + name).is(":checked")) 
        {
                $("#cbo_" + name).prop('disabled', false);
-               $("#txt_" + name).prop('disabled', false);
        } else {
-               $("#cbo_" + name).prop('disabled', true);
-               $("#txt_" + name).prop('disabled', true);               
+               $("#cbo_" + name).prop('disabled', true);               
        }
 }

Modified: trunk/property/templates/base/report.xsl
===================================================================
--- trunk/property/templates/base/report.xsl    2017-05-13 14:15:15 UTC (rev 
16738)
+++ trunk/property/templates/base/report.xsl    2017-05-13 14:17:39 UTC (rev 
16739)
@@ -75,8 +75,20 @@
                </xsl:when>
        </xsl:choose>
        <script type="text/javascript">
-               var jsonB = <xsl:value-of select="report_definition"/>;
+               var jsonB = {};
+               <xsl:if test="report_definition != ''">
+                       jsonB = <xsl:value-of select="report_definition"/>;
+               </xsl:if>               
        </script>
+       
+       <style type="text/css">
+               .content_columns {
+                       position: relative; 
+                       overflow: auto; 
+                       max-height: 50vh; 
+                       width: 100%;    
+               }
+       </style>
        <div id="document_edit_tabview">
                
                <xsl:variable name="form_action">
@@ -86,7 +98,7 @@
                        <div id="tab-content">                                  
                                <xsl:value-of disable-output-escaping="yes" 
select="tabs"/>                                             
                                <div id="report">
-                                       <input type="hidden" name="report_id" 
value="{report_id}"/>
+                                       <input type="hidden" id="report_id"  
name="report_id" value="{report_id}"/>
                                        <div class="pure-control-group">
                                                <label>
                                                        <xsl:value-of 
select="php:function('lang', 'report name')" />
@@ -104,32 +116,65 @@
                                                        <xsl:attribute 
name="value">
                                                                <xsl:value-of 
select="php:function('lang', 'get columns')" />
                                                        </xsl:attribute>
-                                               </input>                        
                                                        
-                                       </div>  
-                                       <div class="pure-control-group">
-                                               <label>
-                                                       <xsl:value-of 
select="php:function('lang', 'Choose columns')" />
-                                               </label>
-                                               <div id="container_columns" 
class="pure-custom"></div>                          
+                                               </input>
+                                               <img src="{image_loader}" 
class="processing" align="absmiddle"></img>                                     
                              
                                        </div>
-                                       <div class="pure-control-group">
-                                               <label>
-                                                       <xsl:value-of 
select="php:function('lang', 'Group by')" />
-                                               </label>
-                                               <div id="container_groups" 
class="pure-custom"></div>
-                                       </div>
-                                       <div class="pure-control-group">
-                                               <label>
-                                                       <xsl:value-of 
select="php:function('lang', 'Sort by')" />
-                                               </label>
-                                               <div id="container_order" 
class="pure-custom"></div>
-                                       </div>  
-                                       <div class="pure-control-group">
-                                               <label>
-                                                       <xsl:value-of 
select="php:function('lang', 'Count / Sum')" />
-                                               </label>
-                                               <div id="container_aggregates" 
class="pure-custom"></div>
-                                       </div>                                  
                                                
+                                       
+                                       <div id="responsiveTabsGroups">
+                                               <ul>
+                                                       <li><a 
href="#tab-columns"><xsl:value-of select="php:function('lang', 
'Columns')"/></a></li>
+                                                       <li><a 
href="#tab-group"><xsl:value-of select="php:function('lang', 'Group 
by')"/></a></li>
+                                                       <li><a 
href="#tab-sort"><xsl:value-of select="php:function('lang', 'Sort 
by')"/></a></li>
+                                                       <li><a 
href="#tab-count-sum"><xsl:value-of select="php:function('lang', 'Count / 
Sum')"/></a></li>
+                                                       <li><a 
href="#tab-preview"><xsl:value-of select="php:function('lang', 
'Preview')"/></a></li>
+                                               </ul>
+                                               <div id="tab-columns">
+                                                       <div 
class="pure-control-group">
+                                                               <label>
+                                                                       
<xsl:value-of select="php:function('lang', 'Choose')" />
+                                                               </label>
+                                                               <div 
id="container_columns" class="content_columns"></div>                      
+                                                       </div>                  
                                                
+                                               </div>
+                                               <div id="tab-group">
+                                                       <div 
class="pure-control-group">
+                                                               <label>
+                                                                       
<xsl:value-of select="php:function('lang', 'Choose')" />
+                                                               </label>
+                                                               <div 
id="container_groups" class="pure-custom"></div>
+                                                       </div>                  
                
+                                               </div>
+                                               <div id="tab-sort">
+                                                       <div 
class="pure-control-group">
+                                                               <label>
+                                                                       
<xsl:value-of select="php:function('lang', 'Choose')" />
+                                                               </label>
+                                                               <div 
id="container_order" class="pure-custom"></div>
+                                                       </div>                  
        
+                                               </div>
+                                               <div id="tab-count-sum">
+                                                       <div 
class="pure-control-group">
+                                                               <label>
+                                                                       
<xsl:value-of select="php:function('lang', 'Choose')" />
+                                                               </label>
+                                                               <div 
id="container_aggregates" class="pure-custom"></div>
+                                                       </div>          
+                                               </div>  
+                                               <div id="tab-preview">
+                                                       <div 
class="pure-control-group">
+                                                               <label>
+                                                                       
<xsl:value-of select="php:function('lang', 'Show')" />
+                                                               </label>
+                                                               <input 
type="button" class="pure-button pure-button-primary" name="btn_preview" 
id="btn_preview">
+                                                                       
<xsl:attribute name="value">
+                                                                               
<xsl:value-of select="php:function('lang', 'preview')" />
+                                                                       
</xsl:attribute>
+                                                               </input>
+                                                               <img 
src="{image_loader}" class="processing-preview" align="absmiddle"></img>
+                                                       </div>
+                                                       <div 
id="container_preview" class="content_columns"></div>                           
   
+                                               </div>                          
        
+                                       </div>                                  
                
                                </div>
                        </div>
                        <div class="proplist-col">
@@ -152,6 +197,12 @@
                        </div>  
                </form>
        </div>
+       <script>
+               
+               $('#responsiveTabsGroups').responsiveTabs({
+                       startCollapsed: 'accordion'
+               });
+       </script>
 </xsl:template>
 
 <xsl:template match="edit_dataset">




reply via email to

[Prev in Thread] Current Thread [Next in Thread]