1
0
mirror of synced 2024-11-24 22:06:07 +03:00
Commit Graph

2539 Commits

Author SHA1 Message Date
Kevin Brown
581308337a
Merge pull request #5638 from select2/github-actions
Enable GitHub Actions to replace Travis CI
2019-09-11 23:34:01 -04:00
Kevin Brown
7688be5db5 Only deploy docs on releases 2019-09-11 23:27:04 -04:00
Kevin Brown
e1d64e92c4 HOST_FINGERPRINT is also required but unused 2019-09-11 23:15:02 -04:00
Kevin Brown
a31d56d47b HOST_IP is also required but unused 2019-09-11 23:12:52 -04:00
Kevin Brown
120065ed46 SSH_PUBLIC_KEY is required but unused 2019-09-11 23:10:22 -04:00
Kevin Brown
c95ed1796a Switch to using rsync 2019-09-11 23:07:31 -04:00
Kevin Brown
dea726d065 Use new syntax for args 2019-09-11 22:59:11 -04:00
Kevin Brown
bff3a777ae Try using strip.components with drone-scp
This should, in theory, strip out the leading docs directory when doing the copy.
2019-09-11 22:57:24 -04:00
Kevin Brown
29d01a00c5 Move docs into root directory before copying
Hopefully this fixes the issue where it was unpacking the enitre directory into the destination instead of the individually specified files.
2019-09-11 22:51:44 -04:00
Kevin Brown
b3c6d3ebfe Remove trailing slash on destination directory 2019-09-11 22:35:52 -04:00
Kevin Brown
5e32678e49 Proper syntax for copying dir contents 2019-09-11 22:29:43 -04:00
Kevin Brown
c891d2ec72 Deploy docs to the production location 2019-09-11 22:20:38 -04:00
Kevin Brown
8cb7e33766 Fix copying directory during deployment 2019-09-11 22:14:18 -04:00
Kevin Brown
b4c3eccd7b Merge branch 'docs-master' into merge-docs 2019-09-11 04:03:38 -04:00
Kevin Brown
3606801728 Remove old documentation
This is no longer used for deploying the old GitHub pages doucmentation.
2019-09-11 21:56:24 -04:00
Kevin Brown
fe208f1f86 Added workflow for deploying documentation
This does not yet deploy the actual documentation, but it instead deploys the old docs (which are now redirects) to a temporary folder for testing.
2019-09-11 21:49:00 -04:00
Kevin Brown
891993e39b Renamed deploy.yml to package-deploy.yml
Eventually we are going to want to do documentation deployments so it makes sense to split them up.
2019-09-11 21:22:02 -04:00
Kevin Brown
dafddb73c8 Made NPM deployment step consistent with GPM 2019-09-11 21:15:02 -04:00
Kevin Brown
7b1367c6a0 Switch to only deploying when pushing to develop/master
Hopefully this still allows the release trigger to work, but this is relying on undocumented behaviour that nobody else appears to have tried.
2019-09-11 21:13:28 -04:00
Kevin Brown
e0560c74f7 Move documentation to the docs folder 2019-09-11 04:02:16 -04:00
Kevin Brown
748d279107 Extract NPM deployment out to different workflow
This will allow us to limit what branches it runs on.
2019-09-11 03:08:03 -04:00
Kevin Brown
82c51a319c Remove dry run from publish 2019-09-11 20:57:40 -04:00
Kevin Brown
8b9a99d286 Enable dry runs for publishing 2019-09-10 20:56:45 -04:00
Kevin Brown
91838fe0a6 Add deploying to GPM and NPM
This also adds a handler for the release event, which is what we want to be using for pushing NPM builds out.
2019-09-10 20:07:35 -04:00
Kevin Brown
ffd98a493b Add steps for linting, minification, start deployments
The deployment step is not yet finished and this required splitting linting from running tests.
2019-09-10 19:44:27 -04:00
Kevin Brown
6758bb50b9 Fixed GitHub Actions syntax 2019-09-10 19:28:41 -04:00
Kevin Brown
f025d675a9 Added basic GitHub Actions workflow to build the project 2019-09-10 19:21:22 -04:00
Kevin Brown
d6acc57a7c
Merge pull request #42 from select2/develop
Release Select2 4.0.10
2019-08-28 21:27:53 -04:00
Kevin Brown
7f0800ceba Bump versions for 4.0.10 release 2019-08-28 21:26:12 -04:00
Kevin Brown
2a80567151
Merge pull request #5623 from select2/release/4.0.10
[Release] 4.0.10
2019-08-27 23:05:53 -04:00
Kevin Brown
3d52d08063 Updated changelog for 4.0.10 2019-08-27 23:03:06 -04:00
Kevin Brown
5f1a91c447 Recompiled dist for 4.0.10 2019-08-27 23:02:40 -04:00
Kevin Brown
919373e481 Bump versions for 4.0.10 release 2019-08-27 22:58:25 -04:00
Kevin Brown
64e829e447 Converting tests to unix newlines 2019-08-27 22:56:27 -04:00
Kevin Brown
d0c5aca962
Merge pull request #5622 from select2/GH-5373
Support passing in a selector for `dropdownParent` option
2019-08-27 22:54:06 -04:00
Mikhail Titov
01e68f4dd7 Test for dropdownParent option 2019-08-27 22:48:18 -04:00
Mikhail Titov
357c2a11c2 Allow passing non-jQuery objects as dropdownParent 2019-08-27 22:31:24 -04:00
Kevin Brown
9e4f842fb1
Merge pull request #5621 from select2/GH-5619
Fix bug where dropdowns pointing upwards were incorrectly positioned
2019-08-27 22:27:14 -04:00
Kevin Brown
d8d2aa5b03 Switch back to late binding the positioning handlers
This is how it used to work pre-4.0.9, where the bound handlers for
resizing and positioning the dropdown were bound at the first time
that the dropdown was opened. This was changed for the 4.0.9 release
as a part of 3f75227a693 where it was not clear why this late binding
was happening, so it was removed to simplify the code.

The late binding is necessary because the handlers within results for
generating the results, and thus the content within the dropdown,
are bound after the handlers for the dropdown are bound. This results
in situations where the handlers for positioning the dropdown are
bound before the dropdown is updated with content, resulting in the
positioning being calculated for the old content and thus being
incorrectly placed. By binding the positioning handlers after the
dropdow is opened for the first time, we can ensure that the
positioning handlers are bound after the result handlers, so we
won't have to worry about this issue.

The handlers are only bound once because they only need to perform
all the calculations a single time. There is no need to keep checking
all of the calculated styles more than we need to, so this is guarded
by a flag which ensures it is only bound a single time per dropdown.

Fixes #5619
Fixes #5620
2019-08-27 22:20:39 -04:00
Kevin Brown
bdeb9075f5
Merge pull request #40 from select2/develop
Release Select2 4.0.9
2019-08-21 21:25:07 -04:00
Kevin Brown
3f8c3c54a3 Bump versions for Select2 4.0.9 release 2019-08-21 21:22:19 -04:00
Kevin Brown
f8ded17ae7
Merge pull request #39 from MediaIQ/fix_data_properties_doc
Fix the doc for data-disabled property as not available
2019-08-21 21:18:26 -04:00
Kevin Brown
d54560f21e
Merge pull request #5613 from select2/release/4.0.9
[Release] 4.0.9
2019-08-21 20:59:42 -04:00
diesl
1a6d4a1ad8 Update de.js (#5604)
Improve German translation
2019-08-21 20:26:55 -04:00
Kevin Brown
4afa7f88a4
The language option now has a clearly defined fallback chain (#5602)
* Made the test suite for translations more complete

There were previously tests for translations within the test suite,
but they only covered a select few problem cases that had previously
been fixed. They did not cover the majority of cases, which makes
changes to how the translation mechanism for Select2 works a bit
more challenging.

So this adds tests for the majority of edge cases around translations,
including how one would expect the fallback chains to work and also
around how defaults interact with the language options. This should
not be considered an exhaustive list of all of the edge cases, but
it should be good enough to refactor the internals and not have to
worry as much.

The one change of note to this test file is that we are now properly
resetting the defaults in between tests. This should fix any issues
that we may have seen where the defaults were not being reset, and
thus tests were not properly isolated and would start to interfere
with each other. This required pulling the module definition down
below the imports, since we need to reference the defaults within
the module definition.

Many of these tests will fail because the translation system is
broken in many small, unrealized ways. The next few commits should
make these pass and fix the issues that we are seeing.

* Consistently resolve the language option

This fixes an issue that we have had for a while where we did not
have a way to consistently take the `language` option from a string,
array, object, or whatever else is specified and resolve it into
`Translation`-compatible objects or strings. Now there is a new
internal `_resolveLanguage` function which is able to take any of
the supported ways of specifying a language and resolve it down into
the supported language chain.

This now means that we can properly resolve the following cases,
and we can do it in a consistent manner.

* When the language is specified as just a string (for example: "en")
* When the language is specified as a string containing a region
  (for example: "en-US")
* When the langugae chian is specified as a list of strings (for
  example: ["es", "en"])
* When the language is specifid as an object containing messages
  (for example, when a user overrides only a subset of messages)
* When the language is specified as a list of strings and objects
  (for example, when a user wants to use a language other than
  English and also wants to ovverride some default messages)
* When the language is not specified at all (the most common case)
* When the language is specified as an empty object (an edge case
  that allows us to skip processing it)

This allows us to consistently produce the language fallback chain
based on the given `language` option, something which we could not
actually do before because we didn't have a consistent chain. This also
means that now the `language` option will consistently be an array
after going through this process, instead of being any number of
types before.

The translation generation currently does not support having objects
and strings mixed as a part of the fallback chain, despite that being
how the default chain has always worked, and as such there are still
failing tests around this.

* Move English to always be at the end of the language chain

This was technically true in most cases in the past, because if a
language chain was manually specified then it would have English
injected into the end of it anyway. This is needed because not all
translations are complete, but we know the English one is, and
Select2 relies on the translation that it uses being complete.

This will result in cases where a user specifies a language but still
receives English translation for some things, which is what users
have historically seen when using partial translations anyway. This
just ensures that there will always be a complete translation that
is being used, so they won't get unexpected errors and will instead
get unexpected English translations.

* Filter out repeated languages in fallback chain

This is mostly being done for performance reasons, since Select2
will not behave any differently when there are duplicates, but it
makes things cleaner when you ask for the fallback chain and it
only contains unique values.

This cannot distinguish between languages specified by name (string)
and languages specified by the contents of their language file
(such as the default, English), but this should generally not be
an issue.

* Convert the language chain into a finalized translation

This extracts the logic for converting parts of the language chain
into the finalized `Translation` objects out into its own method,
with some small fixes for edge cases.

This can now properly convert a language chain containing both
strings and objects into a translation object that contains them
both.

We no longer need to special case the `language` option being an
array since we know that it will be an array once the language
resolution process is completed.

* Switch default translation to be empty

This should have no external effects, but it fixes an interesting
bug where resetting the defaults would not always reset custom
translations. This was because it was possible to modify the
included English translation when you were setting a default for the
language option.

This should not cause any issues because the English translation is
now appended to the end of the language chain when the defaults
are applied, which means that English will continue to exist as the
final fallback.

* Inherited `lang` attribute should be below the default in the chain

It was pointed out in #5468 that the `lang` attribute, when inherited
from a parent element, was above the option set in the global default
within the inheritance chain. While this makes sense because of how
we inherit other properties, it does not make sense for the `lang`
attribute.

The inheritance chain for the `language` option has been adjusted
to be the following:

1. The `lang` attribute on the original `<select>` element
2. The `data-language` attribute on the original `<select>` element
   (because of how `data-*` attribute resolution affects options)
3. The `language` option specified when initiailizing Select2
4. The `language` Select2 default
5. The `lang` attribute on a parent of the `<select>` element

While this is a breaking change, we believe that this change will
have minimal to no impact on real-world usage of Select2, because
of how the `lang` attribute is generally used within documents.
We believe this will now make setting the default language through
JavaScript easier and more reliable, bringing it in line with how
we recommend it is done within the documentation.

This was implemented through a new method `Defaults.applyFromElement`
instead of within the old `Options.fromElement` method because it
relies on the global defaults object. While we could have reached
in to the internals in order to apply it appropriately, it made
more sense to handle the proper resolution through a single
consistent place.

This was not implemented in the `Defaults.apply` method because that
method is not typically passed in a reference to the original
`<select>` element that it is applying the options for.

Closes #5468

* Properly resolve language chains with dictionaries

It is possible for a language chain to be specified that includes
both a dictionary and the string translation as a part of the same
chain, but we would previously throw an error because we assumed
that the list could only contain strings and that dictionaries
would never be included in lists.

This fixes the issue so language region normalization only occurs
when a string is specified in the language chain, which is what we
were previously assuming was the case but was not actually.

This also now resolves the entire language option during the
`Defaults.apply` method. This should be a no-op except for internal
tests, because the `Defaults.applyFromElement` method should almost
always be called in real-world scenarios.
2019-08-13 20:07:35 -04:00
Nagaraj Tantri
ed4b780dbb
Merge pull request #1 from tan31989/fix_data_properties_doc
Updated the docs to add data-disabled to be added as an info - not al…
2019-08-09 17:54:24 +05:30
Nagaraj Tantri
330ae4a165 Updated the docs to add data-disabled to be added as an info - not allowed 2019-08-09 17:53:09 +05:30
Kevin Brown
4db849cd99 Update changelog for 4.0.9 2019-08-07 21:40:36 -04:00
Kevin Brown
dc4e83379c Recompiled dist for 4.0.9 2019-08-07 21:30:49 -04:00
Kevin Brown
7fab80268f Bump versions for 4.0.9 release 2019-08-07 21:26:10 -04:00