Skip to content

Commit e9bb193

Browse files
committed
Adding generic form editing.
1 parent 174a04e commit e9bb193

File tree

6 files changed

+532
-460
lines changed

6 files changed

+532
-460
lines changed

dev/meta/app.vue

Lines changed: 67 additions & 148 deletions
Original file line numberDiff line numberDiff line change
@@ -24,154 +24,73 @@ export default {
2424
test: 1
2525
},
2626
schema: {
27-
"id": "http://json-schema.org/draft-04/schema#",
28-
"$schema": "http://json-schema.org/draft-04/schema#",
29-
"description": "Core schema meta-schema",
30-
"definitions": {
31-
"schemaArray": {
32-
"type": "array",
33-
"minItems": 1,
34-
"items": { "$ref": "#" }
35-
},
36-
"positiveInteger": {
37-
"type": "integer",
38-
"minimum": 0
39-
},
40-
"positiveIntegerDefault0": {
41-
"allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
42-
},
43-
"simpleTypes": {
44-
"enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
45-
},
46-
"stringArray": {
47-
"type": "array",
48-
"items": { "type": "string" },
49-
"minItems": 1,
50-
"uniqueItems": true
51-
}
52-
},
53-
"type": "object",
54-
"properties": {
55-
"id": {
56-
"type": "string",
57-
"format": "uri"
58-
},
59-
"$schema": {
60-
"type": "string",
61-
"format": "uri"
62-
},
63-
"title": {
64-
"type": "string"
65-
},
66-
"description": {
67-
"type": "string"
68-
},
69-
"default": {},
70-
"multipleOf": {
71-
"type": "number",
72-
"minimum": 0,
73-
"exclusiveMinimum": true
74-
},
75-
"maximum": {
76-
"type": "number"
77-
},
78-
"exclusiveMaximum": {
79-
"type": "boolean",
80-
"default": false
81-
},
82-
"minimum": {
83-
"type": "number"
84-
},
85-
"exclusiveMinimum": {
86-
"type": "boolean",
87-
"default": false
88-
},
89-
"maxLength": { "$ref": "#/definitions/positiveInteger" },
90-
"minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
91-
"pattern": {
92-
"type": "string",
93-
"format": "regex"
94-
},
95-
"additionalItems": {
96-
"anyOf": [
97-
{ "type": "boolean" },
98-
{ "$ref": "#" }
99-
],
100-
"default": {}
101-
},
102-
"items": {
103-
"anyOf": [
104-
{ "$ref": "#" },
105-
{ "$ref": "#/definitions/schemaArray" }
106-
],
107-
"default": {}
108-
},
109-
"maxItems": { "$ref": "#/definitions/positiveInteger" },
110-
"minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
111-
"uniqueItems": {
112-
"type": "boolean",
113-
"default": false
114-
},
115-
"maxProperties": { "$ref": "#/definitions/positiveInteger" },
116-
"minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
117-
"required": { "$ref": "#/definitions/stringArray" },
118-
"additionalProperties": {
119-
"anyOf": [
120-
{ "type": "boolean" },
121-
{ "$ref": "#" }
122-
],
123-
"default": {}
124-
},
125-
"definitions": {
126-
"type": "object",
127-
"additionalProperties": { "$ref": "#" },
128-
"default": {}
129-
},
130-
"properties": {
131-
"type": "object",
132-
"additionalProperties": { "$ref": "#" },
133-
"default": {}
134-
},
135-
"patternProperties": {
136-
"type": "object",
137-
"additionalProperties": { "$ref": "#" },
138-
"default": {}
139-
},
140-
"dependencies": {
141-
"type": "object",
142-
"additionalProperties": {
143-
"anyOf": [
144-
{ "$ref": "#" },
145-
{ "$ref": "#/definitions/stringArray" }
146-
]
147-
}
148-
},
149-
"enum": {
150-
"type": "array",
151-
"minItems": 1,
152-
"uniqueItems": true
153-
},
154-
"type": {
155-
"anyOf": [
156-
{ "$ref": "#/definitions/simpleTypes" },
157-
{
158-
"type": "array",
159-
"items": { "$ref": "#/definitions/simpleTypes" },
160-
"minItems": 1,
161-
"uniqueItems": true
162-
}
163-
]
164-
},
165-
"allOf": { "$ref": "#/definitions/schemaArray" },
166-
"anyOf": { "$ref": "#/definitions/schemaArray" },
167-
"oneOf": { "$ref": "#/definitions/schemaArray" },
168-
"not": { "$ref": "#" }
169-
},
170-
"dependencies": {
171-
"exclusiveMaximum": [ "maximum" ],
172-
"exclusiveMinimum": [ "minimum" ]
173-
},
174-
"default": {}
27+
fields: [
28+
{
29+
type: "input",
30+
inputType: "text",
31+
label: "ID",
32+
model: "id",
33+
readonly: true,
34+
featured: false,
35+
disabled: true
36+
},
37+
{
38+
type: "input",
39+
inputType: "text",
40+
label: "Name",
41+
model: "name",
42+
readonly: false,
43+
featured: true,
44+
required: true,
45+
disabled: false,
46+
placeholder: "User's name",
47+
// validator: VueFormGenerator.validators.string
48+
},
49+
{
50+
type: "input",
51+
inputType: "password",
52+
label: "Password",
53+
model: "password",
54+
min: 6,
55+
required: true,
56+
hint: "Minimum 6 characters",
57+
// validator: VueFormGenerator.validators.string
58+
},
59+
{
60+
type: "input",
61+
inputType: "email",
62+
label: "E-mail",
63+
model: "email",
64+
placeholder: "User's e-mail address",
65+
// validator: VueFormGenerator.validators.email
66+
},
67+
{
68+
type: "checklist",
69+
label: "Skills",
70+
model: "skills",
71+
required: true,
72+
values: [
73+
"HTML5",
74+
"Javascript",
75+
"CSS3",
76+
"CoffeeScript",
77+
"AngularJS",
78+
"ReactJS",
79+
"VueJS"
80+
],
81+
// validator: VueFormGenerator.validators.array
82+
},
83+
{
84+
type: "checkbox",
85+
label: "Status",
86+
model: "status",
87+
multi: true,
88+
readonly: false,
89+
featured: false,
90+
disabled: false,
91+
default: true
92+
}
93+
]
17594
},
17695
formOptions: {
17796
// validateAfterLoad: true,

src/EditBox.vue renamed to src/DropBox.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<script>
1919
export default {
20-
name: 'EditBox',
20+
name: 'DropBox',
2121
props: {
2222
},
2323
data() {

0 commit comments

Comments
 (0)