Commit Graph

50 Commits

Author SHA1 Message Date
David Taylor 37b7afa522 FIX: Sanitize tags before creation 2018-10-22 10:53:42 +01:00
David Taylor 0dd717e641 Revert "FIX: Sanitize tags before creation"
This reverts commit 18ae8de9e5.
2018-10-19 15:49:05 +01:00
David Taylor 18ae8de9e5 FIX: Sanitize tags before creation 2018-10-19 15:43:31 +01:00
David Taylor 9bf522f227
FEATURE: Mixed case tagging (#6454)
- By default, behaviour is not changed: tags are made lowercase upon creation and edit.

- If force_lowercase_tags is disabled, then mixed case tags are allowed.

- Tags must remain case-insensitively unique. This is enforced by ActiveRecord and Postgres.

- A migration is added to provide a `UNIQUE` index on `lower(name)`. Migration includes a safety to correct any current tags that do not meet the criteria.

- A `where_name` scope is added to `models/tag.rb`, to allow easy case-insensitive lookups. This is used instead of `Tag.where(name: "blah")`.

- URLs remain lowercase. Mixed case URLs are functional, but have the lowercase equivalent as the canonical.
2018-10-05 10:23:52 +01:00
Joffrey JAFFEUX 17087eff2a
FIX: Reset tags on category change (#6363) 2018-09-05 17:18:52 +02:00
Joffrey JAFFEUX bfcf8ed61b
FIX: prevents focus of input on mobile (#6251) 2018-08-09 14:23:09 +02:00
Joffrey JAFFEUX 523acfcea4
FIX: checks on parent visibility instead of filter itself (#6250) 2018-08-09 10:45:53 +02:00
Joffrey JAFFEUX 066010db7d
FEATURE: introduces list/compact_list components 2018-08-03 16:41:37 -04:00
Joffrey JAFFEUX 73d736c8c3
FIX: popup-menu instantly closing (#6147) 2018-07-23 14:19:36 -04:00
Joffrey JAFFEUX 78419f677d
FIX: multiple select-kit fixes on mobile 2018-07-23 12:19:40 -04:00
Joffrey JAFFEUX 5e521f8ce6 Revert "FIX: various select-kit corrections on mobile"
This reverts commit 78a2324c89.
2018-07-20 15:28:12 -04:00
Joffrey JAFFEUX 78a2324c89
FIX: various select-kit corrections on mobile 2018-07-20 14:46:25 -04:00
Joffrey JAFFEUX eb9b99e519
FIX: makes select-kit match searches with accents (filter and content) 2018-06-26 12:19:14 +02:00
Joffrey JAFFEUX 666386d4b7
FIX: allows more chars than a-z in select-kit 2018-06-25 12:52:20 +02:00
Joffrey JAFFEUX 03a7d532cf
DEV: introduces prettier for es6 files 2018-06-15 17:03:24 +02:00
Joffrey JAFFEUX 4b9c713581
FIX: avoids hidding mobile keyboard on each keystroke 2018-05-28 16:18:25 +02:00
Joffrey JAFFEUX 1be76d066c
FIX: forces boolean when content is only "true" && "false" 2018-05-24 23:41:39 +02:00
Joffrey JAFFEUX 11c47f57f9
FIX: prevents keyboard from appearing on android when expanding 2018-04-10 16:25:05 +02:00
Joffrey JAFFEUX f0fe16d824
FEATURE: implements minimum selection for select-kit 2018-04-05 16:45:19 +02:00
Joffrey JAFFEUX d54da517d9
FIX: more resilient focus filter or header 2018-04-02 22:50:20 +02:00
Joffrey JAFFEUX a828da33aa
FIX: regression preventing addition of multiple tags in a group 2018-04-02 17:54:40 +02:00
Joffrey JAFFEUX cbbeedf53b
FIX: fires onExpand/onCollapse when using arrows 2018-03-22 18:35:46 +01:00
Joffrey JAFFEUX 4f61f5db27
FIX: event is not present here
TODO: make event accessible everywhere and in a more consitent way.
2018-03-22 16:17:23 +01:00
Joffrey JAFFEUX d48542796e
FIX: select-kit refactoring
- improve mini-tag-chooser keyboard behavior
- all multil select now respond to select all and left/right arrows
- improve events handling
- many minor tweaks
2018-03-22 11:29:55 +01:00
Joffrey JAFFEUX 057fa049e6
FIX: display keyboard on mobile when focusing mini-tag-chooser 2018-03-05 10:55:20 +01:00
Joffrey JAFFEUX 460c905dc6
FIX: improves positioning of select-kit body 2018-03-01 11:53:14 +01:00
Joffrey JAFFEUX 9b680fc45c
FIX: prevents create row to be displayed if term is in displayed list 2018-02-27 18:31:58 +01:00
Joffrey JAFFEUX ac701696b3
FEATURE: replaces tag-chooser/tag-group-chooser with select-kit component
These component were also the last using select2. As a consequence select2 is removed from Discourse in this commit.
2018-02-26 11:42:57 +01:00
Joffrey JAFFEUX d525a644d2
fix linting 2018-02-13 18:12:30 +01:00
Joffrey JAFFEUX 20123271d2
FIX: override backspaceFromFilter only if defined 2018-02-13 17:48:00 +01:00
Joffrey JAFFEUX 6bfc25d895
FEATURE: new {{mini-tag-chooser}} replaces {{tag-chooser}} in composer 2018-02-13 17:23:12 +01:00
Joffrey JAFFEUX 97ddaeeae8
FIX: use css instead of js to fix select-kit-collection max-height 2018-02-01 16:56:07 +01:00
Joffrey JAFFEUX 56834dbd98
FEATURE: select-kit api to modify collection header 2018-01-26 14:42:24 +01:00
Joffrey JAFFEUX bd5a82cfe7
FIX: makes sure mousedown is stopped only on select-kit element 2018-01-19 15:19:07 +01:00
Joffrey JAFFEUX 3ec2024466
select-kit refactoring
* improve events naming/handling
* do not explicitly check for true/Fasle
* make sure header is re-computed on toggle
2018-01-11 09:39:51 +01:00
Joffrey JAFFEUX c9921869f1
FIX: adds select-kit api to modify header computed content (#5476)
This api would allow to simply modify header text or icons, eg:

```
      api.modifySelectKit("select-kit")
        .modifyHeaderComputedContent((context, computedContent) => {
          computedContent.title = "Not so evil";
          return computedContent;
        });
```
2018-01-09 10:52:32 +01:00
Joffrey JAFFEUX 8fd683ab19
select-kit DOM mixin refactoring
This commits improves code readability, performance and rendering precision.
2017-12-28 16:12:45 +01:00
Joffrey JAFFEUX 329343be06
FIX: various sizing issues on select-kit 2017-11-26 17:21:39 +01:00
Joffrey JAFFEUX 616a0dae4e
FIX: removes auto sizing and touchstart support for now 2017-11-23 15:34:52 +01:00
Joffrey JAFFEUX d32c95b6e8
FIX: avoid touch on select-kit causing instant closing of it 2017-11-22 16:36:50 +01:00
Joffrey JAFFEUX 86b8f6b238
FIX: cast integer on truthy value and not only true
allows castInteger="true" to work
2017-11-22 13:40:22 +01:00
Joffrey JAFFEUX a3b511f4f5
FIX: simplify keyboard handling 2017-11-22 11:29:30 +01:00
Joffrey JAFFEUX b2b565c2fb
select-kit initial plugin api implementation (0.8.13)
```
api.modifySelectKit("identifier-of-the-select-targeted")
  .modifyContent((context, existingContent) => {})
  .appendContent(() => {})
  .prependContent(() => {})
  .onSelect((context, val) => {});
```
2017-11-22 10:34:12 +01:00
Joffrey JAFFEUX 761f4afd85
FIX: tab should select and focus next tabindex 2017-11-21 23:28:48 +01:00
Joffrey JAFFEUX 12beb77afa
FIX: make sure the element exists before calling `off`
This commit fixes an issue happening only when running tests under `/qunit` and not with `rake qunit:test`
2017-11-21 19:08:59 +01:00
Joffrey JAFFEUX 7669146897
FIX: force focus input only on expand 2017-11-21 18:23:49 +01:00
Joffrey JAFFEUX 9444c31918
FIX: makes typing indicator visible when possible 2017-11-21 18:07:10 +01:00
Joffrey JAFFEUX 3dfc0777df
FIX: close on click outside 2017-11-21 17:37:13 +01:00
Joffrey JAFFEUX 2087d011df
FIX: fix bugs with keyboard events 2017-11-21 16:59:03 +01:00
Joffrey JAFFEUX 39f3dbd945
Introduces select-kit
* renames `select-box-kit` into `select-kit`
* introduces `single-select` and `multi-select` as base components
* introduces {{search-advanced-category-chooser}} as a better component for selecting category in advanced search
* improves events handling in select-kit
* recreates color selection inputs using {{multi-select}} and a custom {{selected-color}} component
* replaces category-selector by a component using select-kit and based on multi-select
* improves positioning of wrapper
* removes the need for offscreen, and instead use `select-kit-header` as a base focus point for all select-kit based components
* introduces a formal plugin api for select-kit based components
* introduces a formal pattern for loading and updating select-kit based components:

```
computeValue()
computeContent()
mutateValue()
```
2017-11-21 11:53:09 +01:00