[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">
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [16739] Backport diff from Syncromind to trunk,
sigurdne <=