Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
typo3
qfq
Commits
087dc631
Commit
087dc631
authored
May 04, 2016
by
Carsten Rose
Browse files
QFQ Design / API Definition
parent
97ac1eff
Changes
2
Hide whitespace changes
Inline
Side-by-side
API.md
0 → 100644
View file @
087dc631
API: Client / Server
====================
Form initial call
-----------------
Request: index.php (QuickFormQuery.php, included by Typo3 extension)
Response:
Form attributes:
data-hidden: 'yes'|'no' - yes: The element is not visible yet, maybe later.
data-disabled: 'yes'|'no' - yes: The element is visible, but the user can't interact with it.
data-required: 'yes'|'no' - yes: The element is required. The form can't be submitted if any required element is empty.
General
-------
Asynchronous request (read AJAX) initiated by the client receive a JSON Response from the server containing at least:
{
"status": "success"|"error",
"message": "<message>"
}
`status`
indicates whether or not the request has been fullfiled by the server (
`"success"`
) or encountered an error (
`"error"`
).
On
`"error"`
the client must display
`"<message>"`
to the user. On
`"success"`
, the client may display
`"<message>"`
to the user.
Form load (update)
------------------
### Trigger
Form Element with attribute
`data-load="data-load"`
.
The client side JavaScript installs on change handlers for all HTML Form Elements having the
`data-load`
attribute.
### Request: api/load.php
#### Type
POST
#### Parameters
##### URL
none
##### POST
HTML Form without
`<input>`
elements of type
`file`
. The HTML Form is required to have a HTML Form Element named
`s`
, which must contain the SIP.
### Response
JSON Stream
{
"status": "success"|"error",
"message": "<message>",
"redirect": "client"|"url"|"no",
"field-name": "<field name>",
"field-message": "<message>",
"form-update": [
{
"form-element": "<element_name>",
"hidden": true | false,
"disabled": true | false,
"required": true | false,
"value": <value>
}
]
}
Name | Description
------- | -----------
status | see General
message | see General
redirect | not used
field-name | HTML Form Element Name which raised error on server side. Requires status to be
`"error"`
field-message | reason of error. Requires status to be
`"error"`
.
form-update | Array of Objects. Each object describes the state and value of a HTML Form Element identfied by its
`name`
attribute.
Form save
---------
### Trigger
none
### Request: api/save.php
#### Type
POST
#### Parameters
##### URL
none
##### POST
HTML Form without
`<input>`
elements of type
`file`
. The HTML Form is required to have a HTML Form Element named
`s`
, which must contain the SIP.
### Response
JSON Stream
{
"status": "success"|"error",
"message": "<message>",
"redirect": "client"|"url"|"no",
"field-name": "<field name>",
"field-message": "<message>",
"form-update": [
{
"form-element": "<element_name>",
"hidden": true | false,
"disabled": true | false,
"required": true | false,
"value": <value>
}
]
}
Name | Description
------- | -----------
status | see General
message | see General
redirect | not used
field-name | HTML Form Element Name which raised error on server side. Requires status to be
`"error"`
field-message | reason of error. Requires status to be
`"error"`
.
form-update | Array of Objects. Each object describes the state and value of a HTML Form Element identfied by its
`name`
attribute.
File (upload)
-------------
### Trigger
none
### Request: api/file.php
#### Type
POST
#### Parameters
##### URL
`action=upload`
##### POST
Multi part form with file content, parameter
`s`
containing SIP, and parameter
`name`
containing the name of the HTML Form Element.
### Response
JSON Stream
{
"status": "success"|"error",
"message": "<message>"
}
Name | Description
------- | -----------
status | see General
message | see General
Record delete
-------------
Request: api/delete.php
Return JSON encoded answer
status: success|error
message:
<message>
redirect: client|url|no
redirect-url:
<url>
field-name:
<field
name
>
field-message:
<message>
Description:
Delete successfull.
status = 'success'
message =
<message>
redirect = 'client'
Delete successfull.
status = 'success'
message =
<message>
redirect = 'url'
redirect-url =
<URL>
Delete failed: Show message.
status = 'error'
message =
<message>
redirect = 'no'
CODING.md
View file @
087dc631
Notes / Best Practices for Coding
=================================
Design /
Notes / Best Practices for Coding
=================================
=========
General
=======
...
...
@@ -88,6 +88,7 @@ Button status
Save Button
-----------
*
User presses the button
*
Reset all validation states
*
Client validates HTML Form
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment