diff --git a/Datatable/Events.php b/Datatable/Events.php index bf0a9c9e..95d3e55d 100644 --- a/Datatable/Events.php +++ b/Datatable/Events.php @@ -137,6 +137,13 @@ class Events */ protected $xhr; + /** + * Fired when responsive extension resizing table. + * + * @var null|array + */ + protected $responsiveResize; + //------------------------------------------------- // Ctor. //------------------------------------------------- @@ -178,6 +185,7 @@ public function configureOptions(OptionsResolver $resolver) 'state_load_params' => null, 'state_save_params' => null, 'xhr' => null, + 'responsive_resize' => null, )); $resolver->setAllowedTypes('column_sizing', array('null', 'array')); @@ -195,6 +203,7 @@ public function configureOptions(OptionsResolver $resolver) $resolver->setAllowedTypes('state_load_params', array('null', 'array')); $resolver->setAllowedTypes('state_save_params', array('null', 'array')); $resolver->setAllowedTypes('xhr', array('null', 'array')); + $resolver->setAllowedTypes('responsive_resize', array('null', 'array')); return $this; } @@ -622,4 +631,32 @@ public function setXhr($xhr) return $this; } + + /** + * Get ResponsiveResize. + * + * @return array|null + */ + public function getResponsiveResize() + { + return $this->responsiveResize; + } + + /** + * Set responsiveResize. + * + * @param array|null $responsiveResize + * + * @return $this + */ + public function setResponsiveResize($responsiveResize) + { + if (is_array($responsiveResize)) { + $this->validateArrayForTemplateAndOther($responsiveResize); + } + + $this->responsiveResize = $responsiveResize; + + return $this; + } } diff --git a/Resources/views/datatable/datatable_html.html.twig b/Resources/views/datatable/datatable_html.html.twig index cb377e1a..1b748b0e 100644 --- a/Resources/views/datatable/datatable_html.html.twig +++ b/Resources/views/datatable/datatable_html.html.twig @@ -38,13 +38,6 @@ {% endif %} {% endif %} - - {% for column in sg_datatables_view.columnBuilder.columns %} - {% if column.sentInResponse %} - {{ column.title }} - {% endif %} - {% endfor %} - {% if true == individual_filtering %} {% if 'foot' == sg_datatables_view.options.individualFilteringPosition or 'both' == sg_datatables_view.options.individualFilteringPosition%} diff --git a/Resources/views/datatable/events.html.twig b/Resources/views/datatable/events.html.twig index b0b38a6e..c1ec6040 100644 --- a/Resources/views/datatable/events.html.twig +++ b/Resources/views/datatable/events.html.twig @@ -126,3 +126,11 @@ {% endif %} .on('xhr.dt', {% include sg_datatables_view.events.xhr['template'] with vars %}) {% endif %} +{% if sg_datatables_view.events.responsiveResize is not same as(null) %} + {% if sg_datatables_view.events.responsiveResize['vars'] is defined %} + {% set vars = sg_datatables_view.events.responsiveResize['vars'] %} + {% else %} + {% set vars = {} %} + {% endif %} + .on('responsive-resize.dt', {% include sg_datatables_view.events.responsiveResize['template'] with vars %}) +{% endif %} \ No newline at end of file diff --git a/Resources/views/render/datetime.html.twig b/Resources/views/render/datetime.html.twig index effca016..01c59a4c 100644 --- a/Resources/views/render/datetime.html.twig +++ b/Resources/views/render/datetime.html.twig @@ -6,34 +6,34 @@ # For the full copyright and license information, please view the LICENSE # file that was distributed with this source code. #} -{%- set datetime_id_selector -%} - sg-datatables-{{ datatable_name }}-datetime-{{ row_id }} + {%- set datetime_id_selector -%} + sg-datatables-{{ datatable_name }}-datetime-{{ row_id }} {%- endset -%} {%- set datetime_selector -%} - id="{{ datetime_id_selector }}" + id="{{ datetime_id_selector }}" {%- endset -%} {% if column_class_editable_selector is defined %} -
+ {% else %} -
- {% if data is same as(null) and default_content is not same as(null) %} - {{ default_content }} - {% endif %} -
+ + {% if data is same as(null) and default_content is not same as(null) %} + {{ default_content }} + {% endif %} + {% endif %} {% if data is not same as(null) %} - + {% if timeago is same as(false) %} + $(".{{ datetime_id_selector }}").html(moment.unix({{ data|date('U') }}).format("{{ date_format }}")); + {% else %} + $(".{{ datetime_id_selector }}").html(moment.unix({{ data|date('U') }}).fromNow()); + {% endif %} + }); + {% endif %} diff --git a/Response/DatatableQueryBuilder.php b/Response/DatatableQueryBuilder.php index 4b800783..ca28a47c 100644 --- a/Response/DatatableQueryBuilder.php +++ b/Response/DatatableQueryBuilder.php @@ -251,7 +251,12 @@ private function initColumnArrays() // Order on alias column name $this->addOrderColumn($column, null, $columnAlias); // Fix subqueries alias duplication - $searchDql = preg_replace('/\{([\w]+)\}/', '$1_search', $dql); + // Another fix customDql to identify field select from base request and Subrequest + if (preg_match('/^SELECT/i', $dql)) { + $searchDql = preg_replace('/\{([\w]+)\}/', '$1_search', $dql); // original + } else { + $searchDql = preg_replace('/\{([\w]+)\}/', '$1', $dql); + } $this->addSearchColumn($column, null, $searchDql); } elseif (true === $this->accessor->getValue($column, 'selectColumn')) { $parts = explode('.', $dql);