581 Commits

Author SHA1 Message Date
Dave Ashby
e3a68c5e1b
Add support for array templates to the client-side templates extension (#1776)
Fix client-side template support for arrays (non-breaking)

Co-authored-by: Dave Ashby <david.h.ashby.ctr@nga.mil>
2023-09-14 10:41:32 -06:00
Jacob Ebey
89f13e6cf2
Support formaction and formmethod on <button> (#1777) 2023-09-14 10:40:39 -06:00
Vincent
55c30b5607
Make htmx IE11 compatible again + tests IE11 compatible (#1687)
* Make htmx IE11 compatible again + tests IE11 compatible

* IE11 compatible handmade socket mock for ws-ext tests

* Fallback when xpath isn't supported, hx-on wildcard now working on IE11

* Merge remote-tracking branch 'upstream/relative-url-in-hx-boost' into ie11-compatibility
2023-09-06 09:55:18 -06:00
Alexander Petros
1763cfc64e
Use raw attribute href on hx-boost (#1742)
This resolves a bug when file system URLs are used on Windows. It
reverts part of a previous change where URLs were normalized prior to
the request in order to reduce key collisions in the history cache.
Because htmx's history cache is based entirely on response URLs, not
request URLs, I am reasonably confident that reverting this line doesn't
affect that optimization at all, but in any case it causes a bug which
is more important.
2023-09-06 09:54:43 -06:00
Carson Gross
c230931d42 support ability to ignore new title tags via config, event and hx-swap 2023-08-31 10:54:47 -06:00
Carson Gross
a9ae4e3e96 Merge remote-tracking branch 'origin/dev' into dev 2023-08-24 12:16:35 -06:00
Mark Gibson
94623d1129
Fix hx-on/hx-on:* to suppress evaluation if allowEval is false (#1682)
* Added more tests for allowEval=false

* Wrap hx-on event handlers in maybeEval

* Create and cache hx-on function on first event trigger.
2023-08-24 12:11:00 -06:00
Denis Palashevskii
212c9fbd3a
[websocket] pass hx-target id in the HEADERS (#1674)
Previously, ws.js used `ws-connect` element as target when collecting request headers.
Now it correctly takes `hx-target` attribute into account
2023-08-24 12:09:22 -06:00
Carson Gross
7247e8abd7 Merge branch 'master' into dev 2023-08-17 10:39:59 -06:00
Alexander Petros
bfd7965dec
Disable logAll in headless mode (#1673)
Enabling logAll in just one test has the capacity to overwhelm the CI
with log output, so we disable it if the webdriver is automated.
2023-08-06 18:06:17 -06:00
Alexander Petros
c126d90588
Move load tests to the bottom of the core file (#1677)
This "resolves" a timing bug that was ocurring in the CI, where these
tests would run before htmx was loaded (only in the GitHub actions
servers). Not proud of this as a fix but I would like the CI to work
again ASAP.
2023-08-05 16:15:49 -06:00
Carson Gross
295d9f83eb remove a logAll() 2023-08-04 17:05:42 -06:00
Carson Gross
14e2a8c611 Merge remote-tracking branch 'origin/dev' into dev 2023-08-04 14:59:19 -06:00
Carson Gross
1acbbe5057 add test to ensure I don't screw up the sameHost value 2023-08-04 14:59:10 -06:00
Alexander Petros
fc4723c95f
Remove logAll from tests (#1657) 2023-08-01 18:04:44 -05:00
spiffytech
66387c0422
Support hx-target-5xx syntax in response-targets extension (#1629) 2023-08-01 16:13:07 -04:00
Carson Gross
36e6a426f9 security improvement
- add the `htmx.config.allowScriptTags` option
2023-07-31 12:12:44 -06:00
Carson Gross
19cb15caef security improvements
- add the `htmx.config.selfRequestsOnly` option
- add the `htmx:validateUrl` event
- better security documentation (incomplete, need to finish CORS)
2023-07-31 11:31:42 -06:00
Vincent
88a57cbc39
[Bugfix] Fix submit buttons/inputs handling (#1559)
* Fix submit buttons/inputs handling

* Removed useless concatenation

* Don't initNode links and forms that shouldn't be initialized

* Removed selectors filtering to alleviate PR

* Add @1cg 's addValueToValues function to factor code

* Use formValues variable for clicked button's value including
2023-07-25 12:55:22 -06:00
Vincent
6d1adc853f
[Bugfix] Fix hx-trigger changed modifier along from clause (#1571)
Fix hx-trigger changed modifier along from clause #1565
2023-07-22 08:39:28 -06:00
Vincent
91d06309dc
[New feature] Comma separated list syntax for HX-Trigger response header (#1479)
* Comma separated list syntax for HX-Trigger response header

* Fix wording
2023-07-18 13:10:43 -06:00
Vincent
e89c9c6402
[Bugfix] Handle dynamically added hx-disable (#1567)
Handle dynamically added hx-disable, clean up element #1176
2023-07-18 10:12:28 -06:00
matiboy
f20791c55c
Add tests for HX Retarget and fix typo (#1600)
Co-authored-by: mat <matt@techspace.asia>
2023-07-18 10:10:39 -06:00
Viktor Szépe
b085d89459
Fix assorted comment typos (#1590) 2023-07-17 11:36:04 -04:00
Carson Gross
1837f1fa97 Merge remote-tracking branch 'origin/master' into dev 2023-07-14 14:26:48 -06:00
RoToRa
3521c3c059
Implementation of HX-Reselect (#1385)
* HX-Reselect #1040

* HX-Reselect documentation

* HX-Reselect: Fix wrong variable name
2023-07-14 15:21:21 -05:00
Carson Gross
05a1f8cba7 Merge remote-tracking branch 'origin/dev' into dev 2023-07-14 13:50:31 -06:00
Alexander Petros
febfa1c6a7
Add configs to choose between ecoding parameters in the URL or request body (#1525)
* Allow extensions to set request bodies for GET and DELETE

Even though the semantics of request bodies for GET and DELETE are
undefined, it is legal to set request bodies for them. By default, GET
and DELETE form parameters should be encoded as URLs. If, however, an
extension defines `encodeParameters`, that should override the default
and set the request bodies for GET and DELETE methods, just like it does
for all the other HTTP methods.

* Don't use URL params by default with DELETE

* Re-enable skipped DELETE test

* Remove reference to DELETE in comment

* Add "useUrlParams" to requestConfig

* Add config.methodsThatUseUrlParams

* Add methodsThatUseUrlParams config tests

* Don't switch to body params based on extension
2023-07-10 15:52:01 -06:00
Alexander Petros
4a7e71d2bb
Switch CI to GitHub actions (#1515)
👑
2023-06-30 11:23:54 -05:00
Alexander Petros
d3788776d6
Fix clearWorkArea test util function (#1507)
Update the clearWorkArea function so that it doesn't error if there was
never a work area set up to begin with. This was causing the `npm test`
target to end with an error code.

The package-lock.json update happens on a fresh install with node 15, so
I'm including it here to make sure that the tests passing is
reproducible. I also updated the package.json file to warn you if you're
not running node 15.
2023-06-24 14:22:22 -06:00
Alexander Petros
fe4a803e2e
Add logNone function and apply it to tests (#1504)
New function to turn off the logger after using `logAll()`. I applied to
this to the tests as well so that `logAll()` is only used in the specfic
places where debug output is required. This makes the console output of
the tests dramatically more useful when run from the command line.
2023-06-24 14:21:55 -06:00
Alexander Petros
adef1166e2
Add support for hx-on:* attribute (#1489)
* Add support for hx-on:* attribute

* Use shorter XPath selector

* Add support for "hx-on::" shorthand

* Add note about mixing the two forms of `hx-on`
2023-06-13 09:23:16 -06:00
Denis Palashevskii
108d2b458a
Fix WebSocket extension trigger handlers initialization (#1468)
* fix websockets initialization to accomodate "haked hx-trigger"

* update changelog
2023-06-07 15:04:40 -06:00
Denis Palashevskii
c8568ea774
fix a bug with afterSettle event raised just once after multiple OOB swaps (#1474) 2023-06-07 15:00:25 -06:00
Carson Gross
ae19c18b20 Merge branch 'master' into dev
# Conflicts:
#	www/content/essays/hypermedia-on-whatever-youd-like.md
#	www/themes/htmx-theme/static/css/site.css
2023-06-03 14:20:16 -06:00
Paweł Wilk
7fc5ac5074
response-targets extension with documentation, exposed 3 functions in internal API (#1436)
* findThisElement, getClosestAttributeValue, querySelectorExt exposed in internal API

* Added response-targets extension.

* Extra check for empty element in response-targets.js

* Added test/ext/response-targets.js

* Linked response-targets.md

* Added htmx.config.{responseTargetPrefersExisting, responseTargetPrefersRetargetHeader} configuration options

* Typo fixed (not impacting logic)
2023-05-23 09:46:54 -05:00
Carson Gross
c96f01e81e bump verison + add this symbol in filter expressions 2023-05-02 14:52:54 -06:00
Carson Gross
9ee51a59ff fix https://github.com/bigskysoftware/htmx/issues/1413
properly clean up events from event handlers (also handle corner case where multiple listeners are added for the same even)
2023-04-28 11:38:42 -06:00
Carson Gross
c98e254d87 add test for relative indicator definition 2023-04-26 12:06:06 -06:00
Carson Gross
8708fe26b7 fix bug where naked hx-triggers caused boosted forms w/ explicit hx-triggers to not fire 2023-04-26 12:04:06 -06:00
Carson Gross
56ed5696e6 Merge branch 'master' into dev
# Conflicts:
#	www/attributes/hx-target.md
#	www/css/site.css
#	www/reference.md
#	www/themes/htmx-theme/templates/base.html
2023-04-11 10:05:27 -06:00
Carson Gross
110dd63e97 two small bug fixes:
* do not use template parsing for full body response content
* clear polling when reprocessing an element to avoid stacking up poll requests

latter fixes https://github.com/bigskysoftware/htmx/issues/1350
2023-04-11 09:32:52 -06:00
Carson Gross
7de777de6d Merge remote-tracking branch 'origin/dev' into dev 2023-04-05 12:48:07 -06:00
Carson Gross
6cc92bf12d fix https://github.com/bigskysoftware/htmx/issues/1348
properly trim ids in `hx-select-oob` and also support hyperscript-style query literals in attributes like `hx-target`
2023-04-05 12:47:51 -06:00
Nicolas Appriou
1e1b7cf94a
escape colons in querySelector (#1314)
thank you!
2023-04-01 17:36:15 -06:00
Mark Croxton
192df25b25
Normalize history cache keys - redux (#1338)
* Normalize URL used as a cache key for history, without breaking IE.

* Update test `boosted element hx-disinherit sanity check` to check that the fully resolved href of the boosted element matches request.detail.requestConfig.path
2023-04-01 08:02:08 -06:00
Carson Gross
c11b84120d better example 2023-03-31 13:53:16 -06:00
Carson Gross
39853f0cc6 view transition demo 2023-03-31 12:37:01 -06:00
Carson Gross
b4e6c5cbd5 hx-on attribute 2023-03-31 06:44:01 -06:00
Carson Gross
44dc3255af Merge remote-tracking branch 'origin/dev' into dev 2023-03-28 14:15:13 -06:00