Repository navigation
Releases: se7enxweb/expui
Releases · se7enxweb/expui
Release list
v1.0.0.19
v1.0.0.18
- Added: Translations into 59 more languages: aka-GH, arc-IQ, asm-IN, aze-AZ, bel-BY, bho-IN, bod-CN, ceb-PH, che-RU, ckb-IQ, cym-GB, eng-AU, eus-ES, fil-PH, ful-SN, gla-GB, glg-ES, haw-US, huy-IL, hye-AM, ind-ID, jav-ID, kat-GE, kaz-KZ, khm-KH, kik-KE, kin-RW, kir-KG, lao-LA, lin-CD, ltz-LU, lug-UG, mai-IN, mkd-MK, mlg-MG, mon-MN, mri-NZ, msa-MY, mya-MM, nep-NP, orm-ET, pcm-NG, pnb-PK, run-BI, sin-LK, sna-ZW, snd-PK, sun-ID, syr-IQ, tat-RU, tgk-TJ, tha-TH, tir-ET, tuk-TM, uig-CN, uzb-UZ, vie-VN, wol-SN and yid-US.
Upgrading: composer update; clear the translation cache.
v1.0.0.17
- Added: Chinese translations in Simplified (chi-CN) and Traditional (chi-TW) script; chi-HK falls back to chi-TW, from ekked's pull request #14.
- Added: Translations into seventeen languages from South Asia and Africa: Bengali, Urdu, Marathi, Telugu, Tamil, Gujarati, Kannada, Malayalam, Punjabi, Odia, Hausa, Amharic, Yoruba, Igbo, isiZulu, Somali and isiXhosa, from ekked's pull request #13.
- Added: Russian, Catalan, Serbian (Cyrillic and Latin), Bulgarian, Lithuanian, Portuguese (Portugal) and Afrikaans translations, from ekked's pull request #12.
- Added: Translations into eighteen more administration languages: Hindi, Korean, Bosnian, Lower Sorbian, Estonian, Irish, Icelandic, Greenlandic, Latvian, Hungarian, Maltese, Romanian, Albanian, Slovak, Slovenian, Japanese, Greek and Finnish, from ekked's pull request #11.
- Added: Swahili (Kenya) translation, from ekked's pull request #8.
- Updated: The modules move to ClassicBackendJavaScriptList, so admin4 no longer loads every module on every page, from ekked's pull request #10.
- Fixed: Translations that contradicted their language guide: wrong meanings, glossary breaches, forms of address, typos and English left in the text, from ekked's pull request #9.
- Fixed: A module started by a plain core gets its element in jQuery once a later exp::core brought jQuery 4.
- Fixed: expUIServerFunctions::VERSION and Exp.version say the release version, as ezinfo.php and extension.xml do (1.0.0.16 had left them at 1.0.0.15).
- Fixed: ezinfo.php names the bundled jQuery as 4.0.0 again; the version commit of 1.0.0.16 had replaced it with the extension's version.
v1.0.0.16
Updated: the Polish (pol-PL) buttons and menu items use the infinitive ("Edytować", "Usunąć", "Zapisać i zakończyć"), as the Exponential administration does since its Polish catalogue was corrected (pol-PL GUIDE.md: buttons, menu items and action tooltips in the infinitive). Messages, headings and longer instructions are unchanged. Translation file only; no code change.
expui 1.0.0.15: runs without jQuery
Added
- Exponential UI runs without jQuery.
exp::core::sharedon a page that
requests noezjsc::jquerybrings none: the boot leavesExp.$unset (no
error), andexp::core,exp::ioandexp::datatablerun on plain
JavaScript with the same API. Where jQuery 4 is on the page, they run on it
exactly as before. API.md exp::core:Exp.util.extend(),param(),isPlainObject()(jQuery's
rules; jQuery's own functions when it is there) andExp.util.request(), a
request asjQuery.ajax()sends it, onfetch. Without jQuery
Exp.config.jqueryisnull,Exp.ready()hands overundefined, and
Exp.register()modules get the element itself.exp::iowithout jQuery: the same requests throughfetch(address,
method, fields, form token,AcceptandX-Requested-With, cookies for the
same origin, timeouts, aborting) and the same answers andExp.io.Error
kinds;Exp.io.raw()then returns a Promise withabort().exp::datatableis written on the DOM:Exp.datatable.create(el, options)
sets up a table without jQuery (callbacks get elements:render(row, td)),
Exp.datatable.get(el)finds one, the parts are there as elements
(table.body,table.pagers…) andtable.rowData(tr)gives a row. The
events on the element are alsoCustomEvents (the data in
event.detail).$.fn.expDataTablestays, registered onExp.$(and with
Exp.datatable.install(jQuery)on a jQuery loaded later): the same markup,
callbacks with jQuery objects, the jQuery properties ($table,$body…),
$.data(tr, 'expRow'), listeners bound through jQuery so.trigger()
reaches them. modules/datatable.mdexpui/test:ExpTest.bare(), a frame without jQuery, and 7 tests of the
plain JavaScript path. TESTING.mdexp::collapse,exp::sticky,exp::dialog,exp::upload,
exp::datepickerandexp::autosaverun without jQuery as well, with the
same markup, classes, ARIA, keyboard, focus, animations and requests. Where
jQuery 4 is on the page they run on it exactly as before: listeners bound
through it (.trigger()reaches them), its.animate(),.html()and
$.ajax(), the parts in jQuery, the plugins. New entry points that take
elements:Exp.upload.create(),Exp.datepicker.create()and, to find an
instance,Exp.collapse.get(),Exp.sticky.get(),Exp.dialog.get(),
Exp.upload.get(),Exp.datepicker.get();Exp.sticky.start(),
Exp.collapse(),Exp.dialog.*andExp.autosave.*take elements as
before. The parts are there as elements (dialog.body,upload.listElement,
a file'srow,preview.placeElement…), in jQuery too while the page has
it ($body,$list,$row,preview.place…). The events on the dialog
and the upload element are alsoCustomEvents (each listener hears one
once); without jQuery the date picker's fields get a nativechangeevent
and the events hand over elements.Exp.<module>.install(jQuery)puts the
plugins on a jQuery loaded later. API.mdexp::core:Exp.util.css(),Exp.util.animate()andExp.util.stop(),
jQuery's.css(),.animate()('show'/'hide'for the fades) and
.stop()by its rules and timing, for the modules without jQuery.expui/test: 11 tests of the plain JavaScript path of these modules, and
ExpTest.bare()loads them (136 tests). TESTING.md
Changed
exp::compat, the one module that needs jQuery, says so in the browser
console when the page has none, instead of setting nothing up silently.dialog.bodyis the body element; it was the same jQuery object as
dialog.$body, which stays.- A module file loaded twice keeps its first copy (and its open dialogs,
uploads and toolbars) instead of setting up a second one. - When the boot finds a jQuery that is not a 4.x, the core now runs without
jQuery instead of not at all (the console still says which jQuery it found).
Fixed
exp::datatable: while theCustomEventof a table event is dispatched,
only the table's own jQuery listeners are told it was triggered already, so
each listener hears each event once and other jQuery handlers on the page
are not held back. modules/datatable.mdexpui/test: theExp.iotest without jQuery compares what reaches the
server (theexpui/test/echoanswer) with what jQuery sends, instead of
only what the client built.
expui 1.0.0.14: six more languages, right to left pager
Added
- Translations in French, Ukrainian, Arabic, Persian, Pashto and Kurdish (Kurmanji) (pull requests #1, #2 and
#5). Pull request #4 (the ten languages of 1.0.0.13) is merged too; their released wording is kept.
Fixed
exp::datatable: right to left (Arabic, Hebrew, Persian) the full pager puts first and previous at the right
and next and last at the left, as the top pager and admin4's mirrored arrows already did (pull request #3).
The groups float toinline-startandinline-end, so a left to right table inside a right to left page keeps
its order; browsers without those values use the[dir="rtl"]rules. A browser test covers all three cases.
modules/datatable.md
expui 1.0.0.13: translations in ten more languages
Added: translations in Croatian, Czech, Danish, Dutch, Italian, Norwegian, Polish, Brazilian Portuguese, Swedish and Turkish; version bump
expui 1.0.0.12: scrollToStart on pages with a fixed header
Updated
exp::sticky:scrollToStartfocuses the form's first text field without scrolling again (focus({ preventScroll: true })). On a page withscroll-padding-top, such as admin4's and admin4l's fixed header, the focus scrolled the field to the middle of the window and undid the scroll to the start; the expui/test case "scrolls to the start and focuses the first text field" failed there.
expui 1.0.0.11: tests N/A under an enforced Content Security Policy
Updated
expui/testunder an enforced Content Security Policy without'unsafe-inline': the three tests that need inline scripts (a dialog withscripts: true, the classiconclickcalendar icon by click and by keyboard) report "N/A under enforced CSP" with the reason instead of failing, and still run where the policy allows inline scripts. The runner hast.skip(reason),t.needsInlineScripts(what)andExpTest.inlineScripts();ExpTestResultscountsskipped. The dialog script test is split, so "not run by default" runs under every policy.Exp.versionandexpUIServerFunctions::VERSIONagree withezinfo.phpandextension.xmlagain (1.0.0.9 and 1.0.0.10 still said 1.0.0.8).
expui 1.0.0.10: the test page without an inline script
- Updated: expui/test starts the tests from exp/test/start.js instead of an inline script, so the test page runs under a Content Security Policy without unsafe-inline. The testing documentation shows the same.