Commit Graph

129 Commits

Author SHA1 Message Date
jos 10a48ca7b2 Fix lint issues 2019-12-28 17:17:27 +01:00
jos 275fcc8fee Changed the file size reported in `preview` mode to `KB` and `MB` 2019-12-28 17:12:56 +01:00
jos c059fdb543 Have the preview test file actually load `preview` mode 2019-12-27 22:31:01 +01:00
jos d973464545 Rename test file 2019-12-18 17:39:32 +01:00
jos f86f3d4e1c Implemented `popupAnchor` allowing to select a custom anchor element. See #869 and #870. 2019-12-18 17:26:16 +01:00
jos 03fa90bd71 Revert using field names to determine whether a value is a timestamp (see #847, #856) 2019-12-11 11:51:48 +01:00
Meir Rotstein 266eeec21a onValidationError option (#854)
* provide onValidationError callback

* linter fixes

* docu fixes

* textmode - invoke callback also when no errors
This to cover situation of changes that fixes validations

* fixed cautom validation example
2019-12-01 16:21:16 +01:00
jos 51410c363f More improvements in the built-in `isTimestamp` function (see #847) 2019-11-27 15:45:48 +01:00
jos 39dfc41100 Improve `timestampTag` API (see #847) 2019-11-27 15:28:50 +01:00
Survesh Jones 8894420263 Fix #727 (#809)
* Fix #727: exposing Focus and Blur events through JSONEditor options

* Comments for onFocus and onBlur exposed events

* Fixing lint issues

* Fix for #727: Updated code for emitting onFocus and onBlur events

* Seperating FocusTarget out as a seperate class

* Fixing an issue that kept on setting the focus to the last element in the editor instead of passing it out

* Moving the add() method of FocusTracker into its constructor and renaming its remove() to destroy()

* removing a flag not needed anymore and making FocusTracker.target a required input

* updating focus tracker's focus checking condition

* Emitting onBlur callback when FocusTracker is being destroyed

* fixing lint issues
2019-11-24 19:41:08 +01:00
jos a60a1125ea Reverted solution for #794 due to undesirable side effects 2019-09-17 20:20:40 +02:00
jos 8554789aa7 Fix #794: fix discrepancy between valid JSON numbers and valid JavaScript numbers 2019-09-15 11:55:15 +02:00
jos 83e9e0655c Fixed #723: schema error popup not always fully visible 2019-09-11 15:59:19 +02:00
jos b354ddbe8d Fix broken unit tests 2019-08-31 17:38:57 +02:00
jos b79885471e A few more files refactored to ES modules 2019-08-31 11:21:29 +02:00
jos e67fa19375 Run lebab on test folder: convert let/const and arrow functions 2019-08-28 13:43:06 +02:00
jos a5d6b8a65b Set up code style linting with standardjs 2019-08-28 13:21:14 +02:00
jos 964fe3e06d Fixed #761: JSON schema errors not rendered in the gutter for mode `code` when the path contained a property with a forward slash 2019-08-25 20:43:21 +02:00
jos ce7433fd46 Publish v6.2.0 2019-07-28 16:12:46 +02:00
jos 14cdd0e61b Fix using arrow function and const 2019-07-28 11:45:43 +02:00
jos 3f182a1f04 Repair button is now capable of turning MongoDB documents into valid JSON 2019-07-27 14:16:59 +02:00
jos cec16b9de1 Rename `util.sanitize` to `util.repair` 2019-07-27 13:13:02 +02:00
jos df952ac61d Replace deprecated `assert.equal` with `assert.strictEqual` 2019-07-27 13:08:02 +02:00
jos e82ef3ed31 Move rendering of errors in separate component `ErrorTable` 2019-07-24 11:00:49 +02:00
jos df386b6f1b Add `'preview'` to the list with allowed modes in all examples 2019-07-08 20:00:34 +02:00
jos abc242c873 Implement array size in status bar 2019-07-03 13:10:00 +02:00
jos 9ed18da7b6 Create util function `limitCharacters`, tweak limiting of preview texts 2019-07-03 11:54:00 +02:00
jos 726f829541 Show "busy" message when working on a heavy action 2019-06-30 20:08:52 +02:00
jos cda54f95fc Implemented `stringifyPartial` and use it in Transform modal 2019-06-26 21:57:22 +02:00
jos 1e1ee3463c Implemented `preview` mode (WIP) 2019-06-26 17:24:09 +02:00
jos 797541cd6b Make `getChildPaths` json pointer compliant 2019-06-19 12:46:50 +02:00
jos 7311e78b53 Implemented `transform` modal for modes `code` and `text` 2019-06-19 11:57:28 +02:00
jos 74b816a554 Implemented sort button in code/text mode 2019-06-19 11:16:30 +02:00
jos 10daf40b56 Use JSON schema title as name for the root object if defined (see #635) 2019-06-12 15:43:16 +02:00
Jos de Jong 3ccdeeec40
Fix #697 JSON Schema enum dropdown not working inside an array (#707)
* Fix #697 JSON Schema enum dropdown not working inside an array

* Make schema in unit test valid by adding `type: 'object'`
2019-05-29 15:51:42 +02:00
jos 70b7e7914b Fixed #663 and #682: JSONEditor not being able to handle JSON schema validation errors when the root of the document is an Array 2019-04-10 12:23:13 +02:00
jos b38816a88b Merge branch 'duplicate_key_errors_take2' into develop
# Conflicts:
#	src/js/util.js
2019-04-03 14:56:39 +02:00
jos 801921867d Improve detection of value type in transform modal 2019-03-31 19:51:12 +02:00
jos 00baaacacc Disable having duplicate nodes (except whilst typing) 2019-03-30 13:35:51 +01:00
Adam Vigneaux 09ab92017c Fix JSON path parsing for array indices (#679)
* Switch JSON path tests to strict equality

The tests for `stringifyPath` and `parsePath` were using
[`assert.deepEqual`](https://nodejs.org/api/assert.html#assert_assert_deepequal_actual_expected_message),
which was causing the tests to pass when they should not have. Beyond
that, the `deepEqual` method is deprecated. The suggested replacement is
[`assert.deepStrictEqual`](https://nodejs.org/api/assert.html#assert_assert_deepstrictequal_actual_expected_message),
which causes the tests to fail where they should.

The difference between the two methods is the different between `==` and
`===`. `deepEqual` would coerce the input `"2"` to `2`, so the test was
passing even though the output was of the wrong type (string instead of
number).

* Coerce numeric indices to numbers in parsePath

This fixes a regression introduced in
3e7e1cebfd.
2019-03-28 19:49:36 +01:00
tobiasfriden 4763bdf293 Fixed using hyphens in the path of custom validation errors (#665)
* Fixed a bug where using hyphens in the path for custom validatons error didn't work

* Added closing bracket check and unit tests

* Automatically add brackets when path component contains hyphens

* use regexp to check if dot notation is safe
2019-03-21 21:27:17 +01:00
jos 3e7e1cebfd Fixed #676: JSON Paths containing array properties with a `]` not parsed correctly 2019-03-20 17:34:39 +01:00
Adam Vigneaux c79bea4eb8 Display schema defaults inline next to Nodes (#666)
* Display schema defaults inline next to Nodes

* Improve usability of schema default display

- When value is default, make it bold and set a tooltip
- When value is not default, display the default next to the value
- When value is default and is a select, show "Default" next to it
- Lighten the color of green used for values
  This increases the contrast between normal values and default values.

* Remove styling when value is the same as the schema default

This styling may have been confusing for some users and may not have
been applicable to all situations.

* Apply is-default and is-not-default classes to values

This allows the user to supply custom styling for these states.

To set styles for values that match the default value in the schema, use
the class `.jsoneditor-is-default`.

To set styles for values that _do not_ match the default value in the
schema, use the class `.jsoneditor-is-not-default`.

* Remove extra newline after schema examples in tooltip

* Move schema default display from inline to tooltip

This presents less opportunity for user confusion and is likely to be
more widely applicable.

* Add examples of schema metadata display

* Add documentation on styling
2019-03-17 15:39:00 +01:00
Adam Vigneaux 4f4a733fd6
Fix Node._findSchema bug when path is not present in schema
Previously, the function would return the wrong schema when it was
unable to find a path in the given schema.
2019-03-15 15:29:08 -04:00
Adam Vigneaux c0915548de
Add failing Node._findSchema schema reference test 2019-03-14 16:12:03 -04:00
jos 2dfde82197 Add examples to test_schema.html 2019-03-07 20:50:05 +01:00
Adam Vigneaux 803563003c
Show examples from schema in field tooltip 2019-03-04 16:10:30 -05:00
Adam Vigneaux 03d019a554
Provide Navigator and allow locale override in test environment setup 2019-03-04 16:09:52 -05:00
Adam Vigneaux f8279537d0 Fix Node._findSchema() (#651)
* Add test setup function for simulating browser globals

* Add tests for Node._findSchema

Some of the tests currently fail, which will be helpful in fixing the
incorrect behavior of the `_findSchema` function. The current failures
are:
- the last schema in the pattern properties object is always returned
- when pattern properties are present, wrong object schemas are returned

* Add schema-based tooltip to field names

Using the `title` and `description` properties from the schema, create
and set a tooltip on each field name. When the user hovers over a field
name, it will show the applicable information: title, description, both,
or neither, depending on what data is present in the schema.

* Remove redundant setting of field name title

* Remove accidental .only() from Node tests

* Fix Node._findSchema for pattern properties

The method now checks the key against the RegExp specified by the
pattern properties instead of always returning the last pattern property
in the object.

* Fix path used for recursive calls in Node._findSchema

* Add failing Node._findSchema tests for multi-level pattern properties

* Fix Node._findSchema for schemas with properties and patternProperties
2019-02-16 14:01:30 +01:00
Adam Vigneaux dc357061a7
Add schema-based tooltip to field names
Using the `title` and `description` properties from the schema, create
and set a tooltip on each field name. When the user hovers over a field
name, it will show the applicable information: title, description, both,
or neither, depending on what data is present in the schema.
2019-02-08 09:31:28 -05:00