55 Commits

Author SHA1 Message Date
Nick Doiron
6dcc73cf7c Add lang atttribute on multilingual names, wikidata/wikipedia fields (#10716)
This improves rendering of CJK names that contain unified ideographs that share a unicode codepoint, such as 化.
2025-01-31 13:49:49 +01:00
Hirako
85278c35e4 Field: fix wikiURL by URL encoding it - and slight refactors (#10165)
* Field: fix wikiURL by URL encoding it - and slight refactors

* Field: fix wikiURL only encodeURIComponent instead of redundant full URL

* Field: refactors function to generate wikiURL, ensures anchor part is also URI encoded, ensures the anchor ref is not encoded, adds unit tests

* Field: refactors wikipedia URI encoding of the anchor logic, removes legacy anchorencode effort via try-catch that replaced percentage character with dots, adds unit further  tests, reduces exessive inlining
2024-03-21 00:42:08 -07:00
Quincy Morgan
e83235df54 Fix regression where changing the Wikidata field wouldn't update the wikidata tag (close #8132) 2020-10-29 10:05:43 -04:00
Quincy Morgan
dc8fd13586 Enable array-callback-return eslint rule 2020-10-23 13:47:09 -04:00
Quincy Morgan
21a49bbec8 Initial support for D3 v6.2.0 2020-10-06 15:08:39 -04:00
Quincy Morgan
58014ace62 Don't prevent default tabbing to elements (re: #8004) 2020-09-17 12:07:20 -04:00
Quincy Morgan
426af25ae4 Fix code tests re: #7890 2020-09-02 16:32:30 -04:00
Quincy Morgan
caf1343b62 Properly default the Wikipedia field language to iD's current language (close #7890) 2020-09-02 14:51:15 -04:00
Quincy Morgan
874c412b74 Enforce max unicode charachter length of keys, values, and relation roles through truncation upon input rather than HTML maxlength attribute (close #6817)
Normalize unicode when changing keys, values, and relation roles
2020-06-10 14:11:55 -04:00
Quincy Morgan
762307bd7d Restrict key, value, and role character limits based on unicode characters, not UTF-16 code units (re: #6817) 2020-06-09 15:41:15 -04:00
Quincy Morgan
87b4c34d1f Make sure the Wikipedia field reloads after the wiki language data is received 2020-05-29 11:37:22 -04:00
Quincy Morgan
a1af118f0e Ensure locales and presets are loaded before the UI loads (close #7406)
Consolidate localization behavior and init to a coreLocalizer function and singleton
Explicitly support `en-US` locale
Rename coreData to coreFileFetcher and export a singleton rather than using a property of coreContext
Add `apiConnections` property of coreContext to simplify adding a source switcher
Replace some init functions with re-callable, promise-supporting `ensureLoaded` functions
Make coreContext itself load the UI if a container has been specified at init time
Fix code tests
2020-03-31 12:23:31 -07:00
Quincy Morgan
4872b06a28 Randomize form field ids to thwart browser memory and help with embedding iD (close #6444) 2020-03-21 13:16:40 -07:00
Quincy Morgan
1b331bb678 Add mechanism for fields to support editing during multiselection (re: #7276)
Add `utilCombinedTags` method and use it for the raw tag editor as well as fields
Pass `entityIDs` array into fields instead of single `entity` object
Give field revertion its own path separate from `change`
Add multiselection editing to fields in files: access, address, check, combo, cycleway, input, maxspeed, textarea, and wikidata
2020-01-30 13:53:29 -05:00
Bryan Housel
33a2dafc10 Fetch wmf-sitematrix from CDN.. No need to depend on it anymore. 2020-01-30 09:48:37 -05:00
Bryan Housel
c481f90e7d Stop bundling wmf-sitematrix, move it extern
This also includes a bunch of tweaks to make the tests work
in both PhantomJS and modern browsers like Chrome.

Basically - introduce some more async into the test code so that
the coreData.get promise is guaranteed to settle.  Because in
PhantomJS the promise is polyfilled, and Chrome it's native, they
work slightly differently.
2020-01-29 12:30:11 -05:00
Quincy Morgan
89ce98f510 Don't require services/osm in order to get max OSM character lengths 2020-01-28 09:28:23 -05:00
Quincy Morgan
17ae12b3d7 Address most common places where tag keys or values could exceed the 255 character API limit (close #6817) 2020-01-27 15:57:55 -05:00
Quincy Morgan
6c7d8b6150 Add identifier field for tags linking features to external databases
Add US-only field for `gnis:feature_id` (close #7086)
Add tooltip to wikipedia field link button
2019-12-03 20:47:10 -05:00
Bryan Housel
a3605f9b74 Comment out "anchor encoding" for wiki links
(closes #6232)
2019-04-29 22:53:16 -04:00
Quincy Morgan
d01bb78707 Reduce circular dependencies caused by importing from indexes, the location of the validation models, and the location of areaKeys (close #6237) 2019-04-24 13:45:59 -07:00
Quincy Morgan
80a6e1806f Don't remove wikidata tag when clearing the wikipedia field value (close #4322) 2019-04-15 13:39:30 -07:00
Bryan Housel
0e90167513 Remove lodash clone
(re: #6087)
2019-03-22 23:18:25 -04:00
Bryan Housel
ff4f8f005f Remove lodash find and findIndex
(re: #6087)
2019-03-22 17:31:41 -04:00
Bryan Housel
29ce6cb30c Use proper errbacks
(re: #5823)
2019-02-09 14:51:37 -05:00
Bryan Housel
39b3f1df68 Avoid creating comboboxes
(closes #5568)

Several strategies in here:
- Move uiCombobox() from inside the render function to class variable
- Don't render stuff like the raw tag editor when it's collapsed
- Don't show as many fields/combos on hover
- Don't instantiate fields (like universal/more) until they're actually shown
- Bind the combo on enter selection not on update selection
2018-12-11 16:07:00 -05:00
Bryan Housel
15a54cab17 Use context.container instead of passing it in 2018-12-10 14:14:27 -05:00
Bryan Housel
e5dedeff8b Move lib/d3.combobox.js -> ui/combobox.js
As with other things from this lib/ folder, little original code remains
and turning these things into reusable d3 plugins is not a priority.
2018-12-10 12:38:21 -05:00
Bryan Housel
50d204866b Flexbox the raw member, membership controls, finish tag editor 2018-11-29 22:31:58 -05:00
Bryan Housel
d0612ba519 Fix css for address and wikipedia fields, fix hover styles 2018-11-28 23:20:52 -05:00
Bryan Housel
958d7fac4f wip changing all fields to use flexbox everywhere 2018-11-28 18:15:38 -05:00
Bryan Housel
4533603a88 preset-input-wrap -> form-field-input-wrap
This better describes what it does.
Also, took this opportunity to update a bunch of the uifield code
(no multi line variable declarations, prefix state variables with _,
eliminate unnecessray lodash, etc)
2018-11-27 10:54:03 -05:00
Bryan Housel
470835b38f Extract all graphics from iD sprite, reassemble with svg-sprite
All iD sprite graphics are now prefixed with `iD-`
Also includes support for sending the preset logos to taginfo
2018-06-08 16:06:46 -04:00
Bryan Housel
4a71aa6146 Use safer field ids in classes, element ids, css selectors
Fixes issue with nested/namespaced fields, such as `maxspeed/advisory`,
in situations where would try to use a css selector or element id.
Can't use characters like '/' in a css selector.
2018-03-15 00:57:41 -04:00
Bryan Housel
6d65a1c89a Convert lodah-es and d3 to named imports for ui/fields 2017-09-26 00:17:13 -04:00
Bryan Housel
e8bd6bff6c Fix wikidata clearing, failed lookup when entity no longer selected
(closes #3987)
(closes #3684)
(related #3929)
2017-06-23 16:37:13 -04:00
Bryan Housel
5f44c9a00a Add combobox menus to id-container instead of document.body
(re: https://github.com/openstreetmap/iD/issues/3925#issuecomment-290718356)
2017-03-31 13:44:55 -04:00
Bryan Housel
21321108f9 Fix wikipedia field link button
(closes #2024)
2017-03-22 02:39:07 -04:00
Bryan Housel
2314acfec7 Add utilNoAuto to remove autocorrect/spellcheck features from inputs
(closes #3839)
2017-02-14 17:19:24 -05:00
Bryan Housel
053074d076 Export live binding for services in iD.services, fix init/reset
(closes #3324)

Previously we allowed devs to swap out services that they didn't need.
This became difficult now that ES6 exports are immutable bindings.
But we can wrap the immutable bindings themselves in a live object,
to get back the flexibility that we used to have.

This change also drops the `taginfo` accessor on Context, since devs who want
to swap out taginfo service with something else can now do so through the live
binding.  `iD.services.taginfo = myTaginfo()`
2016-10-14 10:38:09 -04:00
Bryan Housel
3102a4ae6a Rename all the things to include pseudonamespaces 2016-10-04 19:06:20 -04:00
Bryan Housel
4a94474a3a Better guard code around wiki services, always call callbacks 2016-09-28 14:42:30 -04:00
Bryan Housel
0ea59a043d Fields mostly working (but not dispatch/update) 2016-09-20 22:41:05 -04:00
Tom MacWright
92f2908ffe Fix wikipedia 2016-09-05 21:48:22 -04:00
Tom MacWright
ed135ce9ef Enable lib tests 2016-09-05 10:22:45 -04:00
Bryan Housel
a86f34b4ef Pacify eslint, get build and tests running again 2016-08-26 01:15:07 -04:00
Tom MacWright
cdb533fa84 Begin d3 v4 update 2016-08-21 15:19:27 -04:00
Tom MacWright
8819d3d061 Remove continued iD references (#3341)
* Remove continued iD references

* make build.js safe enough to dodge json plugin bug

* Package as an iife to avoid var name issue
2016-08-10 20:06:45 -07:00
Bryan Housel
0755847401 Default Wikipedia language field to the user's detected language
(fixes #3265)
2016-07-23 16:17:38 -07:00
Tom MacWright
af776501d3 Require locale, second pass (#3259)
* Require locale, second pass

* Remove t global, remove t where it isn't needed
2016-07-21 16:20:13 -04:00