diff --git a/Datatable/Column/DateTimeColumn.php b/Datatable/Column/DateTimeColumn.php index 049593fd..c5f31c72 100644 --- a/Datatable/Column/DateTimeColumn.php +++ b/Datatable/Column/DateTimeColumn.php @@ -67,10 +67,20 @@ public function renderSingleField(array &$row) if (true === $this->isEditableContentRequired($row)) { $content = $this->renderTemplate($this->accessor->getValue($row, $path), $row[$this->editable->getPk()]); } else { - $content = $this->renderTemplate($this->accessor->getValue($row, $path)); + try { + $content = $this->renderTemplate($this->accessor->getValue($row, $path)); + } + catch (\Exception $ex) { + $content = $this->renderTemplate(null); + } + } + + try { + $this->accessor->setValue($row, $path, $content); + } + catch (\Exception $ex) { } - $this->accessor->setValue($row, $path, $content); return $this; } diff --git a/Resources/views/datatable/datatable_js.html.twig b/Resources/views/datatable/datatable_js.html.twig index 61de6dcc..6e778100 100644 --- a/Resources/views/datatable/datatable_js.html.twig +++ b/Resources/views/datatable/datatable_js.html.twig @@ -65,6 +65,14 @@ $.extend(defaults, extensions); $.extend(defaults, columns); $.extend(defaults, initialSearch); + $.extend(defaults, { + stateSaveCallback: function(settings,data) { + localStorage.setItem(settings.sInstance, JSON.stringify(data) ) + }, + stateLoadCallback: function(settings) { + return JSON.parse( localStorage.getItem(settings.sInstance ) ) + }, + }); if (!$.fn.dataTable.isDataTable(selector)) { $(selector) @@ -83,6 +91,10 @@ } createDatatable(); + + new $.fn.dataTable.FixedColumns( oTable, { + leftColumns: 2 + } ); {% if sg_datatables_view.columnBuilder.uniqueColumn('multiselect') is not null %} {{ sg_datatables_render_multiselect_actions( sg_datatables_view.columnBuilder.uniqueColumn('multiselect'), sg_datatables_view.ajax.pipeline) }} diff --git a/Resources/views/datatable/search.js.twig b/Resources/views/datatable/search.js.twig index 427c8fa5..61384e28 100644 --- a/Resources/views/datatable/search.js.twig +++ b/Resources/views/datatable/search.js.twig @@ -37,9 +37,10 @@ var search = $.fn.dataTable.util.throttle( options.searchDelay ); -$(selector).find("tr input.sg-datatables-individual-filtering").on("keyup change", search); +$(selector).find("tr input.sg-datatables-individual-filtering").keyup(search); -$(selector).find("tr select.sg-datatables-individual-filtering").on("keyup change", function(event) { +$(selector).find("tr input.sg-datatables-individual-filtering").change(search); +$("tr select.sg-datatables-individual-filtering").change(function(event) { var searchValue = $(this).val(); searchValue = searchValue ? searchValue.toString() : ''; oTable diff --git a/Resources/views/filter/select.html.twig b/Resources/views/filter/select.html.twig index f832dca1..b87dbfde 100644 --- a/Resources/views/filter/select.html.twig +++ b/Resources/views/filter/select.html.twig @@ -89,6 +89,23 @@ {{ filter_select_initial_search }} {# #} {{ filter_select_select_options }} + + + {{ cancel_button_html }} {% endblock %} diff --git a/composer.json b/composer.json index 76167e35..90f66e95 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "sg/datatablesbundle", + "name": "roldan/datatablesbundle", "type": "symfony-bundle", "description": "Symfony Datatable Bundle For Doctrine2 Entities", "keywords": ["symfony3", "datatable", "datatables", "data-table", "grid", "table", "datagrid", "pagination"],