1
0
mirror of synced 2024-11-23 21:36:09 +03:00
Commit Graph

2122 Commits

Author SHA1 Message Date
Kevin Brown
e16c505c25 Move to a central key handler
This allows for any control to emit key events, and for the Select2
instance to handle them. So now the search box will allow for
results to be scrolled and selected, bringing back the old expected
functionality. This also stops triggering new queries when the
arrow keys are pressed.

The container will also be automatically focused when the dropdown
is closed, which is consistent with the old Select2.

The results will no longer be queried on initialization, but
instead will be queried when the dropdown is opened. This is more
consistent with the previous version of Select2.

The search box will now be cleared when the dropdown is closed.
2014-11-01 20:35:23 -04:00
Kevin Brown
3b575ad92f Register the click handler in the container
This shouldn't be in the core, it's much easier to override things
in the container.
2014-11-01 19:36:02 -04:00
Kevin Brown
130358e8ae Set up the click handler for closing
Now the dropdown will automatically be closed when the user clicks
outside of it.
2014-11-01 19:29:07 -04:00
Kevin Brown
f8ca597f02 Move all of the event binding into separate methods
This should make it easier to override in subclasses.
2014-11-01 19:05:08 -04:00
Kevin Brown
47d0bc4fe1 Allow the position of the tag to be customized. 2014-11-01 18:40:06 -04:00
Kevin Brown
8bdd83c44f Better support for tagging
This removes the special case for `<select>` elements and instead
handles everything tagging related within the `Tags` decorator.
2014-11-01 17:49:53 -04:00
Kevin Brown
b87a4a55e4 Fix automatically hiding the placeholder
The placeholder will not only be automatically hidden if the
results adapter was not already overridden. This will allow users
to override the results adapter to now hide the placeholder, if
they do not want that functionality.
2014-11-01 17:27:30 -04:00
Kevin Brown
e57e0b1870 Added decorator to remove the placeholder object
This will remove the placeholder object from the results list.
2014-11-01 17:21:46 -04:00
Kevin Brown
09a0bb89b8 Move placing the sections into methods
This allows them to be overridden, allowing for things like
attaching the dropdown to a different part of the DOM.

The id is also now generated in a function that can be overridden.
2014-11-01 17:08:59 -04:00
Kevin Brown
8bf86ebae1 Tweak the README
Now we point users to the `LICENSE.md` file for the license,
instead of including it in the README. This also removes the
example integrations, which are no longer officially maintained
by Select2.

The translation section has also been updated.
2014-11-01 16:05:47 -04:00
Kevin Brown
fef1ccfd81 Merge branch 'master' into select2-ng
This adds the package management files back into the repository
and also updates the README to reflect the future Select2 4.0.
2014-11-01 15:43:01 -04:00
Kevin Brown
6f6e4f50aa Added MIT license 2014-11-01 15:21:10 -04:00
Kevin Brown
4e19d87927 modified version identifiers in descriptors for release 3.5.2 2014-11-01 14:43:38 -04:00
Kevin Brown
db7cd1b373 Go back to hiding the original element
This was only done to maintain compatibility with labels, back
when we could capture the focus events from the original element.
Now that we handle them in a different way, this is no longer
needed.

This fixes #2769.
2014-11-01 14:39:06 -04:00
Kevin Brown
959b96eca6 Started work on the "No results found" message 2014-11-01 14:20:51 -04:00
Kevin Brown
9bb993cee9 Added Translation object
This continues the work to get translations built into Select2.
2014-10-31 23:03:03 -04:00
Kevin Brown
20fcaa4449 Start working on translations
This adds a custom r.js build for i18n, which processes each JS
file in the `select2/i18n` directory and builds it.

So far only the "No results found" translation has been added.
2014-10-31 22:24:59 -04:00
Kevin Brown
65875bf8e7 Better handle AMD across files
Now that `define` and `require` are never made public, we have to
build everything to support `$.fn.select2.amd` while also working
with other AMD loaders.
2014-10-31 21:13:43 -04:00
Kevin Brown
8b77dcab98 Remove old start and end files 2014-10-31 20:17:40 -04:00
Kevin Brown
afbf30d09a Wrap JS
This will prevent leaking variables, and will remove the possibility
of Select2 not working well with other plugins which support
AMD loaders. The `define` and `require` methods are now aliased
under `$.Select2.amd` for use inside additional files, such as
translations.
2014-10-31 20:15:17 -04:00
Kevin Brown
8e70642b87 Lint the Gruntfile 2014-10-31 19:12:27 -04:00
Kevin Brown
e943f6ef08 Revert "Fixed Select2 jumping around in Chrome"
This reverts commit 0daee34626.
This results in artifacts being displayed in Chrome, and doesn't
fix the other jumping issue.
2014-10-31 18:27:33 -04:00
Kevin Brown
1de4be3749 Fixed TypeError when destroying Select2
This fixes #2587.
2014-10-31 18:15:32 -04:00
Kevin Brown
7581fa5708 Merge pull request #2588 from fabdouglas/patch-8
Redirect the focus of original input to Select2
2014-10-31 18:13:47 -04:00
Kevin Brown
0daee34626 Fixed Select2 jumping around in Chrome
This fixes #2769, where Select2 will jump around because of how
focus moves to the original element when selections are made.

Because absolute positioning pushed the original element out of the
viewport, bringing it back into the viewport should be the best
fix.
2014-10-31 18:10:13 -04:00
Kevin Brown
0ed9e0283d Merge pull request #2775 from Splaktar/patch-1
Update link for AngularUI
2014-10-31 16:32:56 -04:00
Kevin Brown
f16eb6c621 Merge pull request #2776 from bjornjohansen/master
Replaced nonexistent locale "no" with "nb" (Norwegian Bokmål).
2014-10-30 11:51:11 -04:00
Bjørn Johansen
d1c19eb012 Added the formatMatches string 2014-10-29 22:36:54 +01:00
Bjørn Johansen
3a9896dc4b Replaced nonexistent locale "no" with "nb" (Norwegian Bokmål). Added space before ellipsis for correct punctuation. 2014-10-29 22:13:48 +01:00
Michael Prentice
9ff939b534 Updated AngularJS link to HTTPS
HTTPS everywhere
2014-10-29 12:45:07 -04:00
Michael Prentice
fd9006047c Updated link for AngularUI
They have deprecated the original ui-select2 directive in favor of the new and better supported ui-select directive. This happened a couple weeks ago.
2014-10-29 12:41:03 -04:00
Kevin Brown
dd323687f3 Merge pull request #2364 from joshuajonah/master
Stopped refresh to top when `closeOnSelect: false`
2014-10-24 18:27:25 -04:00
Valdas Petrulis
c1f338cfbf Dont update the results if the term hasn't changed.
https://github.com/ivaynberg/select2/issues/2751
2014-10-23 10:04:39 +03:00
Valdas Petrulis
0cc0ac43f5 Fixed not to break use case: setting the new value after someone was just searching with a different value
https://github.com/ivaynberg/select2/issues/2751
2014-10-22 16:34:28 +03:00
Kevin Brown
f4f09c9d7e Dropping the new translation for now 2014-10-21 21:44:49 -04:00
Kevin Brown
86cd7245d2 Working on the contributor pages 2014-10-21 21:44:01 -04:00
Kevin Brown
19033f60f7 Added disabled example 2014-10-21 21:44:01 -04:00
Kevin Brown
5dd7df33bb Allow programmatic access of Select2 2014-10-21 21:44:01 -04:00
Kevin Brown
5dd5ad93a6 Ensure that the highlighted result is visible
When opening the dropdown, the highlighted result will not always
be scrolled into view if it isn't already.
2014-10-21 21:44:01 -04:00
Kevin Brown
a728d948c1 Added some content to the tagging section 2014-10-21 21:44:01 -04:00
Kevin Brown
559a93bcb6 Added basic implementation of tags
Tags no longer takes an array, as pre-existing tags should already
exist as options in the data adapter.  A compatibility module will
later be added to convert tag data that is passed in to array data.

Tags allow for users to enter their own options, which will be
added to the beginning of the results list.
2014-10-21 21:44:01 -04:00
Kevin Brown
9e130956fc Better compatibility with array data
When using array data, and an option is selected, the data that is
attached to the DOM element will be run through `item` and should
have any private, automatically generated attributes added and
merged with it.
2014-10-21 21:44:00 -04:00
Kevin Brown
72ae0da879 Only generate result ids when the container has an id 2014-10-21 21:44:00 -04:00
Kevin Brown
cdfa0499f4 Accessibility matches better
Now the accessibility for the single select box better matches what
is picked up for a native select.

This fixes an issue with us always setting `aria-activedescendant`,
which caused Orca to always say the full path to the selected
result, instead of saying that the box was a combobox with a
selection. This means that the `aria-activedescendant` attribute
will now only be set when the dropdown is open.

This also switches the results list from a listbox to a tree, which
is what Firefox tells screen readers that a standard select is.
Combined with a change to use `role=group` and `aria-label` for
option group labels, screen readers will now announce the group
that they are in as well.
2014-10-21 21:44:00 -04:00
Kevin Brown
7c8601d33b Better accessibility for results
Options are correctly called out as focus moves around the results
list.
2014-10-21 21:44:00 -04:00
Kevin Brown
00a31df47a Generate more consistent ids
A global id is generated for the container, and each further id
builds off of the global id.
2014-10-21 21:44:00 -04:00
Kevin Brown
e018a6f69e Changed tests to not use deepEqual
We should only be checking the option values that matter, such as
`id` and `text`, instead of checking all of the option values. This
will prevent unexpected breaking when new properties are added to
the options.

Existing properties should be covered by tests to avoid regressions.
2014-10-21 21:44:00 -04:00
Kevin Brown
9102cf9473 Fixed keyboard scrolling
Now when scrolling through results with the keyboard, the
highlighted option will always be visible.
2014-10-21 21:44:00 -04:00
Kevin Brown
9ada3712f7 Single select accessibility
Now the Select2 instance is correctly recognized as a combobox, and
the selected option is read aloud when it is focused, just like in
a standard select box.

This works by generating semi-random ids that are used for the
ARIA attributes.  These are not intended to be consistent by any
means, they are just generated to make the instance accessible by
screen readers.
2014-10-21 21:44:00 -04:00
Kevin Brown
8dfd6d6960 Add more keyboard support
When the main container is focused, you can now move the highlighted
result by using the up and down arrows on the keyboard.

This does not yet keep the highlighted result visible at all times,
and it only is implemented on single selects, but that will come in
the future.
2014-10-21 21:44:00 -04:00