diff --git a/typo3/sysext/lang/Resources/Private/Templates/Language/ListLanguages.html b/typo3/sysext/lang/Resources/Private/Templates/Language/ListLanguages.html index a0b79b509e46e3de82fd2082fe3e9c1eb90f6344..53107c59b535a51c576711552dcb86cb561eab0d 100644 --- a/typo3/sysext/lang/Resources/Private/Templates/Language/ListLanguages.html +++ b/typo3/sysext/lang/Resources/Private/Templates/Language/ListLanguages.html @@ -21,6 +21,11 @@ <f:section name="content"> <h1><f:translate key="header.languages" /></h1> <f:flashMessages renderMode="div" /> + <form class="form-inline"> + <div class="form-group"> + <f:form.textfield name="typo3-language-searchfield" placeholder="{f:translate(key:'table.search')}" id="typo3-language-searchfield" value="{search}" class="form-control t3js-language-searchfield" /> + </div> + </form> <table id="typo3-language-list" class="t3-table t3-datatable"> <thead> <tr> diff --git a/typo3/sysext/lang/Resources/Private/Templates/Language/ListTranslations.html b/typo3/sysext/lang/Resources/Private/Templates/Language/ListTranslations.html index 675665a7aff7abc6d54aac68fd24b0980e0801ab..2f8262efb2901932986c36d359d33958bb76b8f4 100644 --- a/typo3/sysext/lang/Resources/Private/Templates/Language/ListTranslations.html +++ b/typo3/sysext/lang/Resources/Private/Templates/Language/ListTranslations.html @@ -7,6 +7,11 @@ <f:section name="content"> <h1><f:translate key="header.translations" /></h1> <f:flashMessages renderMode="div" /> + <form class="form-inline"> + <div class="form-group"> + <f:form.textfield name="typo3-language-searchfield" placeholder="{f:translate(key:'table.search')}" id="typo3-language-searchfield" value="{search}" class="form-control t3js-language-searchfield" /> + </div> + </form> <table id="typo3-translation-list" class="t3-table t3-datatable" data-language-count="{f:count(subject: languages)}"> <thead> <tr> diff --git a/typo3/sysext/lang/Resources/Public/JavaScript/LanguageModule.js b/typo3/sysext/lang/Resources/Public/JavaScript/LanguageModule.js index cf99838682312229757b22704e52b83f066ca541..a1a7eee525912b7dc15d33964fa46130d9c64824 100644 --- a/typo3/sysext/lang/Resources/Public/JavaScript/LanguageModule.js +++ b/typo3/sysext/lang/Resources/Public/JavaScript/LanguageModule.js @@ -27,7 +27,7 @@ define('TYPO3/CMS/Lang/LanguageModule', ['jquery', 'moment', 'datatables', 'TYPO icons: {}, labels: {}, identifiers: { - searchField: 'div.dataTables_filter input', + searchField: '.t3js-language-searchfield', topMenu: 'div.menuItems', activateIcon: 'span.activateIcon', deactivateIcon: 'span.deactivateIcon', @@ -244,6 +244,7 @@ define('TYPO3/CMS/Lang/LanguageModule', ['jquery', 'moment', 'datatables', 'TYPO */ LanguageModule.buildLanguageTable = function(tableElement) { return $(tableElement).DataTable({ + dom: 'lrtip', serverSide: false, stateSave: true, paging: false, @@ -292,6 +293,7 @@ define('TYPO3/CMS/Lang/LanguageModule', ['jquery', 'moment', 'datatables', 'TYPO } return $(tableElement).DataTable({ + dom: 'lrtip', serverSide: false, stateSave: true, paging: false, @@ -313,13 +315,23 @@ define('TYPO3/CMS/Lang/LanguageModule', ['jquery', 'moment', 'datatables', 'TYPO * Initialize search field */ LanguageModule.initializeSearchField = function() { - $(LanguageModule.identifiers.searchField, LanguageModule.context).clearable({ - onClear: function() { - if (LanguageModule.table !== null) { - LanguageModule.table.search('').draw(); + var getVars = LanguageModule.getUrlVars(); + var currentSearch = (getVars['search'] ? getVars['search'] : LanguageModule.table.search()); + $(LanguageModule.identifiers.searchField) + .val(currentSearch) + .on('input', function() { + LanguageModule.table.search($(this).val()).draw(); + }) + .clearable({ + onClear: function() { + if (LanguageModule.table !== null) { + LanguageModule.table.search('').draw(); + } } - } - }); + }) + .parents('form').on('submit', function() { + return false; + }); }; /** @@ -550,6 +562,18 @@ define('TYPO3/CMS/Lang/LanguageModule', ['jquery', 'moment', 'datatables', 'TYPO $text.text(Math.round(progress) + '%'); }; + // Utility method to retrieve query parameters + LanguageModule.getUrlVars = function getUrlVars() { + var vars = [], hash; + var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); + for (var i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return vars; + }; + return function() { $(document).ready(function() { if ($('div.typo3-module-lang #typo3-language-list').length) {