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);