Commit Graph

226 Commits

Author SHA1 Message Date
Michał Gołębiowski-Owczarek
9887579b61
All: Stop relying on jquery-patch.js internally, add tests
Avoid relying on jQuery patches. Instead:
* use `CSS.escape` instead of `jQuery.escapeSelector`
* use `.filter()` with a proper handler instead of `.even()`

Keep `jquery-patch.js` for backwards compatibility, though.

Also, add tests for jquery-patch.

Ref gh-2249
2024-05-15 00:38:40 +02:00
Michał Gołębiowski-Owczarek
f90eab84b5
Sortable: Rename storedStylesheet to _storedStylesheet
This follows the naming strategy for other internal properties.

Ref gh-2249
2024-05-15 00:38:40 +02:00
Michał Gołębiowski-Owczarek
bb49bd794b
All: Drop support for IE & some other browsers (but mostly IE)
Closes gh-2249
2024-05-15 00:38:40 +02:00
Michał Gołębiowski-Owczarek
daa6fb55b3
All: Drop support for jQueries different than the latest for each major
Also, remove the ability to run the test suite in jQuery <1.12.4 & <2.2.4.

Closes gh-2249
2024-05-15 00:38:30 +02:00
Michał Gołębiowski-Owczarek
ac8b1e4eee
Core: Make back compat disabled by default
Closes gh-2250
2024-05-13 18:11:57 +02:00
Michał Gołębiowski-Owczarek
8e34aa6155
Docs: Update leftover HTTP Trac URLs to HTTPS 2024-04-26 17:28:11 +02:00
Michał Gołębiowski-Owczarek
4966aea381
Docs: Change a few most common domains from HTTP to HTTPS
Also, update a few stale URLs to what they redirect now to.

Closes gh-2244
2024-04-26 16:25:34 +02:00
Michał Gołębiowski-Owczarek
7adb13ac7c
Dialog: Fix IE tests about interactions with other dialogs
The workaround triggering a second delayed focus to a tabbable element was
applied in jQueries 3.4 & 3.5 to fix IE issues. It also needs to be applied
in jQuery 3.6 which this commit adds.

This will no longer be needed in jQuery 3.7 and jQuery 3.x-git tests are
already passing because of that.

Closes gh-2160
2023-05-10 10:55:40 +02:00
Michał Gołębiowski-Owczarek
020828e7ff
Selectmenu: Fix selecting options following hidden ones
Change a2b25ef6ca made options with
the `hidden` attribute skipped when rendering. However, that makes
indexes misaligned with native options as hidden ones maintain their
index values. Instead, don't skip hidden options but add the `hidden`
attribute to the respective jQuery UI elements as well.

Fixes gh-2082
Closes gh-2144
Ref a2b25ef6ca
2023-05-10 10:55:01 +02:00
Matías Cánepa
62f2ccc567
Resizable: Fix resizing of elems with box-sizing: border-box
Fixes gh-1979
Closes gh-2012
2022-10-10 11:00:50 +02:00
Michał Gołębiowski-Owczarek
0df6e65830
All: Update JS Foundation mentions to OpenJS Foundation
Closes gh-2104
2022-07-19 09:36:55 +02:00
Michał Gołębiowski-Owczarek
8cc5bae1ca
Checkboxradio: Don't re-evaluate text labels as HTML
If you generate a Checkboxradio from a checkbox/radio with a label that
contains encoded HTML, e.g. `&lt;em&gt;test&lt;/em&gt;` this will work fine
at first. If, however a refresh is triggered on that instance (explicitly or
e.g. by turning it into a `Controlgroup`), the previously escaped HTML will
now be evaluated.

If the label was created based on some user input, this could lead to
unexpected code execution even though the initial output was escaped.

Fixes gh-2101
Closes gh-2102
2022-07-14 20:52:02 +02:00
James Hinderks
1f467baaac
Selectmenu: Remove a call to the deprecated .focus() method
Replaces a call to the deprecated jQuery `.focus()` method
with `.trigger("focus")`.

Closes gh-2053
2022-07-14 19:43:16 +02:00
Ben Mullins
933ce5d779
Autocomplete: Rewrite with a delay instead of appending the live region
This fixes the issue caused by https://bugs.jqueryui.com/ticket/9357.
We now empty the live region instead of appending to it, and we do so
after a brief timeout so the live region isn't updated on every mousemove
event or when quickly traversing through options.

Fixes gh-2002
Closes gh-2031
2022-01-05 11:35:34 +01:00
Michał Gołębiowski-Owczarek
b52ee4012d
Sortable: Fix positioning when moving a Draggable item into a Sortable
PR gh-1793 removed setting `this.offset.parent` in the Draggable
`refreshPositions` method which broke position calculations when moving
a Draggable item into a connected Sortable. restore that assignment.

Ref gh-1793
Fixes gh-2001
Closes gh-2009
2021-11-15 18:39:25 +01:00
Michał Gołębiowski-Owczarek
efe3b22517
Sortable: Allow 0-height containers to be sortable as in 1.12.1
Note that container specific events will not fire when the dragged element
is interacting with zero height containers.

Fixes gh-1998
Closes gh-2008

Co-authored-by: A. Wells <borgboyone@users.noreply.github.com>
2021-11-08 18:21:03 +01:00
Josep Sanz
85fba3f107
Tooltip: Don't crash on empty content
Commit 1f2011ece removed a `try-catch` around triggering the `remove` handlers
in the `jQuery.cleanData` override. The `try-catch` was meant for old IE but it was
also catching an error coming from the tooltip `remove` handler depending on
being able to find a relevant tooltip. The `_find` method returns `null`, though,
when the tooltip cotent is empty.

Instead of restoring the `try-catch`, handle the `null` case in the `remove` handler.

Fixes gh-1990
Closes gh-1994

Co-authored-by: Claas Augner <github@caugner.de>
Co-authored-by: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
2021-11-08 11:53:45 +01:00
Michał Gołębiowski-Owczarek
440f38940d
Docs: Update removal comments to mention 1.14, not 1.13
We're not removing any deprecated API or legacy browser support in 1.13,
re-target comments to mention 1.14.

It's not guaranteed 1.14 will ever get released but if it will, it sounds like
a good moment to do those removals.

Closes gh-1970
2021-08-26 13:36:06 +02:00
c-lambert
cf938e2863
Datepicker: Get selectedDay from data-date instead of element contents
This makes datepicker work fine even if translation software modifies texts on the page.

Closes gh-1943
2021-07-12 09:41:41 +02:00
Michał Gołębiowski-Owczarek
70dae67b73
Build: Migrate from JSHint & JSCS to ESLint
Fixes #15393
Closes gh-1958
2021-06-07 00:58:12 +02:00
Patrick McKay
17d115b829 Datepicker: Add option for onUpdateDatepicker callback
Add a new option named onUpdateDatepicker that allows a custom callback
to be provided. If provided, the callback is called at the end of
$.datepicker._updateDatepicker.
2021-05-21 17:58:10 +02:00
Mikolaj Wolicki
b864cd103a Fix: Adapt datpicker.js for a11y 2021-05-15 18:29:08 +02:00
Michał Gołębiowski-Owczarek
7c6a9f0128
All: Drop $.ui.escapeSelector in favor of $.escapeSelector
Fixes #14991
Closes gh-1957
2021-05-14 23:37:19 +02:00
Michał Gołębiowski-Owczarek
afe20b79a6
Datepicker: Make sure text option are text, shorten HTML strings
Instead of using enormous HTML strings, various elements are now constructed
using jQuery APIs. This makes it more obvious user-provided data is used
correctly.

Fixes #15284
Closes gh-1953
2021-05-12 00:59:42 +02:00
Michał Gołębiowski-Owczarek
32850869d3
Datepicker: Make sure altField is treated as a CSS selector
Closes gh-1954
2021-05-04 13:30:06 +02:00
Michał Gołębiowski-Owczarek
834ee5f7cf
Dialog: Workaround broken focus re-triggering in jQuery 3.4/3.5
Focus re-triggering in jQuery 3.4/3.5 makes the original element
have its focus event propagated last, breaking the re-targeting.
Trigger focus in a delay in addition if needed to avoid the issue.

This fixes the "interaction between overlay and other dialogs" core dialog
test when tested against jQuery 3.4/3.5.

Closes gh-1946
Ref jquery/jquery#4382
2021-02-22 00:02:02 +01:00
Jérémy Munsch
dadde722a4 Resizable: Fix CSP violation (style unsafe-inline) 2020-08-11 23:43:45 +02:00
Michał Gołębiowski-Owczarek
1712b9bbb2
Menu: Account for scrollbars in jQuery 3.2
jQuery >=3.2 doesn't include scrollbars in `.height()`, this commit switches
it to `.innerHeight()` which does so in jQuery >=3.3. In  jQuery 3.2 it doesn't
either so include scrollbars in innerHeight, add it back.

Using `.innerHeight()` instead of `.height()` should be fine as menu doesn't
define padding styles.

Closes gh-1929
2020-07-23 15:55:18 +02:00
Michał Gołębiowski-Owczarek
b61b16b5a8
All: Drop support for jQuery 1.7
Closes gh-1923
2020-07-22 16:04:47 +02:00
Michał Gołębiowski-Owczarek
f4ef03e57e
All: Resolve most jQuery Migrate warnings
Closes gh-1919
2020-05-16 08:36:55 +02:00
jigar gala
817ce38555 Datepicker: Fixed current instance memory leak and added unit testcases 2020-03-23 21:49:23 +01:00
Michał Gołębiowski-Owczarek
0c860b0d92
All: Remove usage of jQuery positional selectors
jQuery positional selectors () have been deprecated in
[jQuery 3.4.0](https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/)
and they'll be removed in jQuery 4.0.0. This PR removes their usage.

Most of the changes were possible without changing public API. However,
dropping `:even` usage required a change to the
[`header` option](https://api.jqueryui.com/accordion/#option-header)
of the accordion widget. I made it an optional function; this will need
to be documented.

The polyfill for `.even()` & `.odd()` is added for jQuery <3.5.0. There was
no usage of the :odd selector in the code but the `.odd()` method is also
polyfilled for completeness.

Closes gh-1904
2020-01-22 16:44:34 +01:00
Maksymenkov Eugene
995b5faec9 All: Use expr.pseudos instead of deprecated expr.filters
See:
https://github.com/jquery/jquery-migrate/blob/master/warnings.md#jqmigrate-jqueryexprfilters-is-deprecated-use-jqueryexprpseudos

Closes gh-1887
2019-12-08 22:27:16 +01:00
Michał Gołębiowski-Owczarek
98b539171b All: Migrate away from deprecated/removed Core APIs
Summary of the changes:

* Build: Add jQuery 3.2.0-3.4.1 to versions UI can be tested against
* Build: Load jQuery & Migrate via HTTPS
* Build: Add package-lock.json to .gitignore
* Build: Update jQuery Migrate from 3.0.0 to 3.1.0
* Build: Allow to run tests against jQuery 3.x-git
* Build: Fix formatting according to JSCS rules
* Build: Disable JSCS for the inlined jQuery Color
* All: Switch from $.isArray to Array.isArray (jQuery.isArray will be
  removed in jQuery 4.0)
* All: Switch from `$.isFunction( x )` to `typeof x === "function"`
  (jQuery.isFunction will be removed in jQuery 4.0)
* All: Inline jQuery.isWindow as it'll be removed in jQuery 4.0
* Effects: Fix a timing issue in a variable declaration. Previously,
  a jQuery object was created, chained & assigned to a variable that
  was then accessed in a callback used inside of this chained
  definition. Due to a timing difference in when the callback fired for
  the first time in latest jQuery master, it was being called before
  the variable was defined.
* Tests: Make dialog & draggable unit tests less strict (newest jQuery
  returns fractional results in some cases, making comparisons fail when
  there's a tiny difference)
* All: Migrate from $.trim to bare String.prototype.trim (jQuery.trim
  will be deprecated in jQuery 3.5)

Closes gh-1901
2019-12-08 22:23:08 +01:00
Scott González
5708046ea1 Dialog: Fix shared event handler for modal dialogs
The old logic worked when all widgets of the same type used the same
event namespace. However, now that each instance has its own namespace,
we cannot use `_on()` for shared event handlers.

Fixes #15182
Closes gh-1817
2017-05-17 11:29:09 -04:00
Scott González
809f29efa7 All: Remove uses of jQuery.proxy()
Ref #15160
Closes gh-1813
2017-05-17 11:17:17 -04:00
Eirik Sletteberg
0b7246b6ee Core: Fix JQMIGRATE warning about jQuery.expr[":"]
This commit polyfills `jQuery.expr.pseudos` for old versions of jQuery.

Fixes #15185
Closes gh-1773
2017-05-02 15:28:51 -04:00
Scott González
50efd6e1b0 Menu: Ignore mouse events triggered due to page scrolling
Fixes #9356
Closes gh-1806
2017-05-02 15:16:17 -04:00
Scott González
7d992ae29d Menu: Handle mouse movement mixed with keyboard navigation
Fixes #9357
Closes gh-1805
2017-05-02 15:12:47 -04:00
Scott González
a3e953b495 Menu: Don't focus dividers when wrapping via keyboard navigation
Fixes #15157
Closes gh-1804
2017-05-02 15:12:04 -04:00
Alexander Schmitz
abc9e7ce2f Button: Fix backcompat when called on collection of mixed elements
Fixes #15109
Closes gh-1808
2017-05-02 15:11:24 -04:00
A. Wells
c866e45537 Sortable: Fix various scrolling issues
* Created _scroll extension point and migrated scroll code from _mouseDrag
* Cleaned up logic for scrolled
* Fixed appendTo functionality to match documentation
* Remove unnecessary function calls
* Move set-up position functions to appropriate place
* Base scrollParent on placeholder and not helper
* Update scrollParent when switching containers

Fixes #3173
Fixes #15165
Fixes #15166
Fixes #15167
Fixes #15168
Fixes #15169
Fixes #15170
Closes gh-1793
2017-05-02 13:34:02 -04:00
Scott González
0d25a36eec Menu: Close menus immediately on selection or click outside
Fixes #15034
Closes gh-1807
2017-04-25 06:33:00 -04:00
Konstantin Dinev
c426b9a203 Resizable: Keep user-provided handles on destroy
Closes gh-1798
Ref gh-1795
2017-04-17 14:58:12 -04:00
Konstantin Dinev
278d1e1108 Resizable: Keep user defined handles on _setOption
Fixes #15084
Closes gh-1795
2017-02-24 14:30:58 -05:00
Scott González
a3b9129be1 Spinner: Ignore mousewheel events when not focused
Fixes #15139
Closes gh-1794
2017-02-21 12:45:19 -05:00
claudi
17404ced47 Datepicker: Fix prev/next button behavior with showCurrentAtPos
Fixes #15102
Closes gh-1784
2017-01-25 11:14:57 -05:00
Ryan Oriecuia
573e7e69c9 Autocomplete: Fix IE/Edge scrolling issues
IE11 and scrolling autocompletes didn't get along great; this should help fix
their relationship.

When you click on an autocomplete scrollbar in IE11, the menu temporarily
gains focus, which caused a couple problems.

1. Depending on how long you clicked, the dropdown could close.

2. Scrolling down by clicking the scrollbar's down arrow would misbehave. The
list would pop back up to the top with the first item selected.

We can fix both problems by modifying the focus/blur handling a bit.

1. There is a flag to instruct the control to ignore blurs, but it was getting
cleared too quickly; when the code refocused the input after it was blurred,
IE would send *another* blur event, which wasn't getting ignored and would
close the dropdown. We now wait for the focus/blur pair to process before
clearing the flag.

2. We remove the tabindex from the dropdown menu, which prevents menu's focus
handler from firing. When you focus a menu, it will select the first menu item
if none are selected. Selecting a menu item will scroll it into view if it's
not visible. This combination of behaviors was causing the strange behavior
when attempting to scroll down.

I couldn't figure out a way to write a unit test for this, since it's IE only
and seems to require user interaction. You can verify the previous behavior
(and the fix) on `demos/autocomplete/maxheight.html`

Fixes #9638
Closes gh-1785
2017-01-25 10:57:34 -05:00
Scott González
a2b25ef6ca Selectmenu: Don't render options with the hidden attribute
Fixes #15098
2016-11-16 12:52:15 -05:00
pallxk
9a4c057157 Tooltip: Clear interval for delayed tracking tooltips on remove
This is needed in the case that the tooltip is removed before it gets shown.

Fixes #15099
Closes gh-1768
2016-11-16 12:12:22 -05:00