eclipsesource / jsonforms Goto Github PK
View Code? Open in Web Editor NEWCustomizable JSON Schema-based forms with React, Angular and Vue support out of the box.
Home Page: http://jsonforms.io
License: Other
Customizable JSON Schema-based forms with React, Angular and Vue support out of the box.
Home Page: http://jsonforms.io
License: Other
If no UI schema can be obtained, for instance, becasue no such schema has been registered, we should generatea default layout, e.g. a vertical layout that renders all widgets in a vertical manner.
When installing JSONForms via bower install jsonforms
I end up with outdated files (the date in the copyright header is 2015-06-29).
Is this on purpose since the latest changes have not been officially 'released' yet or is this some kind of Bower registry caching issue?
It should be possible to replace existing controls and add new ones.
Currently the directive is responsible for resolving these.
Currently it uses a copy of the whole framework.
Currently the validation for single controls is implemented by hand. Additinally it doesn't consider validation contstraints. Hence we should back our validation mechanism on an existing schema validator.
The table widget should be capable of paging its content.
The BindingService isn't needed anymore since we will bind against the actual data to be displayed.
isApplicable should only take the current UIElement, the according sub schema and the current schema path.
render should take the same arguments, except one more which is the data provider.
Creating controls via native JS objects can get quite clumy, hence we should provide a factory that is responsible for prefilling most properties with sensible default values
Move all product files ( = /dist) on a release branch. The tags needed for bower.io can be done on this branch. This avoids unnecessary merge conflicts without resorting to some auto merger configs.
The jsonforms directive should be bindable in order to ease in-place editing of entities. Otherwise we would need a mechanism to submit changes back to the model.
$ npm install -g json-server
$ json-server --watch db.json
We would need to register schema by IDs in order to differentiate them in the UI Schema.
The table widget should be capable filtering its content by queries.
With the integration of dojox.json.ref
we now have support for referencing json objects ($ref:
) by path and by id. This resolves also cross-reference scenarios and cyclic references among objects. See also the tests of app/components/version/jsonref_test.js
.
Now we need to investigate how to best support referencing json objects that have not been fetched from a remote API yet. This involves providing and integrating different resolution strategies (such as, when to resolve which remote objects) to provide the necessary control on when how much data should be retrieved during resolution.
The path property of a scope construct should support arbitraty JSONPointer (https://tools.ietf.org/html/rfc6901) expressions that identify the property within the JSON schema a widget should be bound to.
The total number of entities a table widget supports is currently unknown. We need to find out, what's the best way to support integration the overall number of entities in order to display the number within the table.
Instead of configuring the JSONForms via routing and obtaining the schema/UI schema/instance data via HTTP requests we should instead provide a custom directive that lets users supply the data with sources of their choice.
For showing/hiding element in the UI. Should be specified within UI schema.
The exact requirements of this method are not entirely clear. We should check which fields of the returned object are actually used and also consider renaming the method.
Single cells/rows of the table widget should be clickable via a hyperlink that leads to the underlying entity.
For instance, if a table widget lists all available tasks for a single user, clicking a single row should navigate to the according task.
Instead, try to bundle templates as an angular module that is part of the jsonforms module.
Testing manual REST integration assumed having a ready-to-use backend with the correct routing and data format configured, which led to many possible errors. We could therefore provide a simple JSON file that contains the correct data and use json-server to simulate a simple REST API, which should suffice for simple testing purposes.
It should already be supported but by the name of 'displayName'.
We should support altering the resolution scope if an id property is encountered during resolution , see http://json-schema.org/latest/json-schema-core.html#anchor27
Think about how to best support this, maybe via custom attributes?
jsonforms.services is currently used for everything
Instead of providing an own format for specifying the resolution path of a control, we should use JSON references (https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03)
Currently, the GetData service assumes that type-specific view/ and model/ endpoints exists, which allow the retrieval of the UI model and the JSON schema.
This should be changed, since it might not be possible to change or add endpoints to a existing REST service.
We need a way to make the table widget externally configurable in case one wants to the override the default setting like, for instance, pagination size
Hi, in the latest version, enum properties are not rendered as select elements, but as regular inputs instead. It still works in the live demo, however the code there seems outdated.
This is probably because in JSONSchema the type of an enum is (I think) always string
, but never enum
. However in the control template's ng-switch-when
, the select input is only rendered when the schemaType
equals enum
.
I have prepared a pull request which should fix the problem. I will submit it later.
For instance the following property within a schema does not cause a validation error if the input text widget remains empty:
"lastName": {
"type": "string",
"minLength": 1
}
GET
http://localhost:8080/fonts/glyphicons-halflings-regular.woff [HTTP/1.1 404 Not Found 5ms]
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:1): status=2147746065 source: http://localhost:8080/fonts/glyphicons-halflings-regular.woff qb-bootstrap.min.css:261:12
GET
http://localhost:8080/fonts/glyphicons-halflings-regular.ttf [HTTP/1.1 404 Not Found 5ms]
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:2): status=2147746065 source: http://localhost:8080/fonts/glyphicons-halflings-regular.ttf qb-bootstrap.min.css:261:12
GET
http://localhost:8080/bower_components/jsonforms/dist/fonts/glyphicons-halflings-regular.woff2 [HTTP/1.1 404 Not Found 5ms]
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:1): status=2147746065 source: http://localhost:8080/bower_components/jsonforms/dist/fonts/glyphicons-halflings-regular.woff2 jsonforms.css:257:12
GET
http://localhost:8080/bower_components/jsonforms/dist/fonts/glyphicons-halflings-regular.woff [HTTP/1.1 404 Not Found 6ms]
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:2): status=2147746065 source: http://localhost:8080/bower_components/jsonforms/dist/fonts/glyphicons-halflings-regular.woff jsonforms.css:257:12
GET
http://localhost:8080/bower_components/jsonforms/dist/fonts/glyphicons-halflings-regular.ttf [HTTP/1.1 404 Not Found 4ms]
downloadable font: download failed (font-family: "Glyphicons Halflings" style:normal weight:normal stretch:normal src index:3): status=2147746065 source: http://localhost:8080/bower_components/jsonforms/dist/fonts/glyphicons-halflings-regular.ttf
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.