Skip to content
Snippets Groups Projects
Commit 0afa9324 authored by Benjamin Baer's avatar Benjamin Baer
Browse files

Using both version of changes

# Conflicts:
#   less/qfq-bs.css.less
parents aafe74fa 0af33392
No related branches found
No related tags found
1 merge request!71Thesis code correction
Pipeline #786 failed
Showing
with 4438 additions and 1807 deletions
/.python_virtualenv
/.plantuml_install
# Created by .ignore support plugin (hsz.mobi)
.python_virtualenv/
.virtual_env
.bowerpackages
.doc_plantuml
.idea
.npmpackages
.phpdocinstall
.plantuml
.plantuml_install
.python_virtualenv
.sonar_scanner
.support
.support_plantuml
.support_sonar
test.json
test.php
*.autosave
/bower_components
/composer.phar
/css
/dist/
/doc/*.pdf
/.doc_plantuml
/.support
/.support_plantuml
/.plantuml
/doc/jsdoc
/doc/phpdoc
/doc/plantuml
/extension/Documentation/_make/build
/doc/phpdoc
/.idea
/extension/Documentation/html
/extension/Resources/Private/vendor
/extension/Resources/Public/Css
/extension/Resources/Public/fonts
/extension/Resources/Public/JavaScript
/fonts
/js
/node_modules
/packages
/bower_components
# Created by .ignore support plugin (hsz.mobi)
/.bowerpackages
/.npmpackages
/.phpdocinstall
/js
/css
/fonts
/qfq.flowchart.dia.autosave
/support
/extension/Resources/Public/fonts
/extension/Resources/Public/JavaScript
/extension/Resources/Public/Css
/doc/jsdoc
/dist/
.python_virtualenv/
.virtual_env
/.support_sonar
/.sonar_scanner
/extension/Documentation/html
\ No newline at end of file
/vendor
before_script:
- VERSION=`cat ./version`
snapshot:
except:
- tags
script:
- make VERSION=$VERSION snapshot
- chmod a+r qfq_$VERSION_*.zip
- scp qfq_$VERSION_*.zip w16:qfq/snapshots/
release:
only:
- tags
script:
- make VERSION=$VERSION release
- chmod a+r qfq_$VERSION_*.zip
- scp qfq_$VERSION_*.zip w16:qfq/releases/
This diff is collapsed.
......@@ -11,6 +11,7 @@ module.exports = function (grunt) {
'javascript/src/*.js'
];
var js_plugins = 'javascript/src/Plugins/*.js';
var js_worker = 'javascript/src/Worker/*.js';
// Project configuration.
grunt.initConfig({
......@@ -19,7 +20,7 @@ module.exports = function (grunt) {
bootstrap: {
files: [
{
cwd: 'bower_components/bootstrap/dist/css/',
cwd: 'node_modules/bootstrap/dist/css/',
src: [
'bootstrap.min.css',
'bootstrap-theme.min.css'
......@@ -30,7 +31,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/bootstrap/dist/js/',
cwd: 'node_modules/bootstrap/dist/js/',
src: [
'bootstrap.min.js'
],
......@@ -39,7 +40,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/bootstrap/dist/fonts/',
cwd: 'node_modules/bootstrap/dist/fonts/',
expand: true,
src: [
'*'
......@@ -52,7 +53,7 @@ module.exports = function (grunt) {
bootstrap_dev: {
files: [
{
cwd: 'bower_components/bootstrap/dist/css/',
cwd: 'node_modules/bootstrap/dist/css/',
src: [
'bootstrap.min.css',
'bootstrap-theme.min.css'
......@@ -63,7 +64,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/bootstrap/dist/js/',
cwd: 'node_modules/bootstrap/dist/js/',
src: [
'bootstrap.min.js'
],
......@@ -72,7 +73,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/bootstrap/dist/fonts/',
cwd: 'node_modules/bootstrap/dist/fonts/',
expand: true,
src: [
'*'
......@@ -85,7 +86,7 @@ module.exports = function (grunt) {
bootstrap_validator: {
files: [
{
cwd: 'bower_components/bootstrap-validator/dist/',
cwd: 'node_modules/bootstrap-validator/dist/',
src: [
'validator.min.js'
],
......@@ -94,7 +95,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/bootstrap-validator/dist/',
cwd: 'node_modules/bootstrap-validator/dist/',
src: [
'validator.min.js'
],
......@@ -107,7 +108,7 @@ module.exports = function (grunt) {
jquery: {
files: [
{
cwd: 'bower_components/jquery/dist/',
cwd: 'node_modules/jquery/dist/',
src: [
'jquery.min.js'
],
......@@ -116,7 +117,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/jquery/dist/',
cwd: 'node_modules/jquery/dist/',
src: [
'jquery.min.js'
],
......@@ -129,7 +130,7 @@ module.exports = function (grunt) {
jquery_tablesorter: {
files: [
{
cwd: 'bower_components/tablesorter/dist/js/',
cwd: 'node_modules/tablesorter/dist/js/',
src: [
'jquery.tablesorter.min.js'
],
......@@ -138,7 +139,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/tablesorter/dist/js/',
cwd: 'node_modules/tablesorter/dist/js/',
src: [
'jquery.tablesorter.min.js',
'jquery.tablesorter.widgets.min.js',
......@@ -153,7 +154,7 @@ module.exports = function (grunt) {
ChartJS: {
files: [
{
cwd: 'bower_components/Chart.js/dist/',
cwd: 'node_modules/chart.js/dist/',
src: [
'Chart.min.js'
],
......@@ -162,7 +163,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/Chart.js/dist/',
cwd: 'node_modules/chart.js/dist/',
src: [
'Chart.min.js'
],
......@@ -175,7 +176,7 @@ module.exports = function (grunt) {
jqwidgets: {
files: [
{
cwd: 'bower_components/jqwidgets/jqwidgets/',
cwd: 'node_modules/jqwidgets-framework/jqwidgets/',
src: [
'jqx-all.js',
'globalization/globalize.js'
......@@ -185,7 +186,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
cwd: 'node_modules/jqwidgets-framework/jqwidgets/styles/',
src: [
'jqx.base.css',
'jqx.bootstrap.css'
......@@ -195,7 +196,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
cwd: 'node_modules/jqwidgets-framework/jqwidgets/styles/',
src: [
'images/**'
],
......@@ -207,7 +208,7 @@ module.exports = function (grunt) {
jqwidgets_devel: {
files: [
{
cwd: 'bower_components/jqwidgets/jqwidgets/',
cwd: 'node_modules/jqwidgets-framework/jqwidgets/',
src: [
'jqx-all.js',
'globalization/globalize.js'
......@@ -217,7 +218,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
cwd: 'node_modules/jqwidgets-framework/jqwidgets/styles/',
src: [
'jqx.base.css',
'jqx.bootstrap.css'
......@@ -227,7 +228,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/jqwidgets/jqwidgets/styles/',
cwd: 'node_modules/jqwidgets-framework/jqwidgets/styles/',
src: [
'images/**'
],
......@@ -239,7 +240,7 @@ module.exports = function (grunt) {
tinymce: {
files: [
{
cwd: 'bower_components/tinymce/',
cwd: 'node_modules/tinymce/',
src: [
'tinymce.min.js'
],
......@@ -248,7 +249,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/tinymce/',
cwd: 'node_modules/tinymce/',
src: [
'themes/*/theme.min.js',
'plugins/*/plugin.min.js',
......@@ -263,7 +264,7 @@ module.exports = function (grunt) {
tinymce_devel: {
files: [
{
cwd: 'bower_components/tinymce/',
cwd: 'node_modules/tinymce/',
src: [
'tinymce.min.js'
],
......@@ -272,7 +273,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/tinymce/',
cwd: 'node_modules/tinymce/',
src: [
'themes/*/theme.min.js',
'plugins/*/plugin.min.js',
......@@ -287,7 +288,7 @@ module.exports = function (grunt) {
eventEmitter: {
files: [
{
cwd: 'bower_components/eventEmitter/',
cwd: 'node_modules/wolfy87-eventemitter/',
src: [
'EventEmitter.min.js'
],
......@@ -296,7 +297,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/eventEmitter/',
cwd: 'node_modules/wolfy87-eventemitter/',
src: [
'EventEmitter.min.js'
],
......@@ -331,7 +332,7 @@ module.exports = function (grunt) {
typeahead: {
files: [
{
cwd: 'bower_components/corejs-typeahead/dist',
cwd: 'node_modules/corejs-typeahead/dist',
src: [
"typeahead.bundle.min.js"
],
......@@ -340,7 +341,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/corejs-typeahead/dist',
cwd: 'node_modules/corejs-typeahead/dist',
src: [
"typeahead.bundle.min.js"
],
......@@ -353,7 +354,7 @@ module.exports = function (grunt) {
codemirror: {
files: [
{
cwd: 'bower_components/codemirror/lib',
cwd: 'node_modules/codemirror/lib',
src: [
"codemirror.js"
],
......@@ -362,7 +363,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/codemirror/lib',
cwd: 'node_modules/codemirror/lib',
src: [
"codemirror.js"
],
......@@ -371,7 +372,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/codemirror/lib',
cwd: 'node_modules/codemirror/lib',
src: [
"codemirror.css"
],
......@@ -380,7 +381,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/codemirror/lib',
cwd: 'node_modules/codemirror/lib',
src: [
"codemirror.css"
],
......@@ -389,7 +390,7 @@ module.exports = function (grunt) {
flatten: true
},
{
cwd: 'bower_components/codemirror/mode',
cwd: 'node_modules/codemirror/mode',
src: [
"**"
],
......@@ -398,7 +399,7 @@ module.exports = function (grunt) {
flatten: false
},
{
cwd: 'bower_components/codemirror/mode',
cwd: 'node_modules/codemirror/mode',
src: [
"**"
],
......@@ -424,6 +425,28 @@ module.exports = function (grunt) {
flatten: true
}
]
},
worker: {
files: [
{
src: js_worker,
expand: true,
dest: "js/Worker/",
flatten: true
},
{
src: js_worker,
expand: true,
dest: typo3_js,
flatten: true
},
{
src: js_worker,
expand: true,
dest: "mockup/Worker/",
flatten: true
}
]
}
},
uglify: {
......
PHPDOC ?= support/pear/phpdoc
JSDOC ?= jsdoc
SONAR_SCANNER_VERSION = 3.0.3.778
PKG_VERSION = $(shell awk '/version/ { print $$3 }' extension/ext_emconf.php | sed "s/'//g")
NIGHTLY_DATE = $(shell date '+%Y%m%d')
......@@ -11,7 +6,7 @@ RELEASE_DATE = $(shell date '+%Y%m%d%H%M')
GIT_REVISION_SHORT = $(shell git rev-parse --short HEAD || true)
GIT_REVISION_LONG = $(shell git rev-parse HEAD || true)
EXTENSION_CONTENT = Classes Configuration Documentation qfq Resources ext_emconf.php ext_localconf.php ext_tables.php ext_icon.png config.qfq.example.ini RELEASE.txt
EXTENSION_CONTENT = Classes Configuration Documentation qfq Resources ext_emconf.php ext_localconf.php ext_tables.php ext_icon.png ext_conf_template.txt config.qfq.example.php RELEASE.txt
DISTDIR=dist
......@@ -20,15 +15,14 @@ PIP_TMP ?= /tmp
all: archive t3sphinx
doc: phpdoc jsdoc plantuml
maintainer-clean:
rm -f .bowerpackages .doc_plantuml .npmpackages .phpdocinstall .plantuml_install .support .support_plantuml
rm -rf doc/jsdoc doc/phpdoc doc/plantuml support bower_components node_modules .python_virtualenv build-dist
rm -f .doc_plantuml .npmpackages .phpdocinstall .plantuml_install .support .support_plantuml
rm -rf doc/jsdoc doc/phpdoc doc/plantuml support node_modules .python_virtualenv build-dist
archive: clean qfq.zip
qfq.zip:
cd extension/Resources/Private/vendor/phpoffice; rm -rf phpspreadsheet/{C*,bin,c*,d*,m*,p*,sa*,.g*,.p*,.s*,.t*}
cd extension; zip -r ../$@ $(EXTENSION_CONTENT)
clean:
......@@ -61,13 +55,13 @@ dist-copy-extension:
build-dist: t3sphinx make-dist-dir dist-copy-extension dist-move-doc git-revision
echo "Distribution made in $(DIST)"
nightly: bootstrap build-dist
nightly: basic build-dist
cd $(DISTDIR); zip -r ../qfq_$(VERSION)_$(RELEASE_DATE).zip $(EXTENSION_CONTENT) revision.git -x config.ini
snapshot: bootstrap build-dist
snapshot: basic build-dist
cd $(DISTDIR) ; zip -r ../qfq_$(VERSION)_$(RELEASE_DATE).zip $(EXTENSION_CONTENT) revision.git -x config.ini
release: bootstrap build-dist
release: basic build-dist
if [ -z "$(VERSION)" ] ; then echo "Set VERSION make variable to the release version (fmt: maj.min.micro)" ; exit 1 ; fi
cd $(DISTDIR) ; zip -r "../qfq_$(VERSION)_$(RELEASE_DATE).zip" $(EXTENSION_CONTENT) revision.git -x config.ini
......@@ -77,31 +71,16 @@ t3sphinx: .virtual_env
plantuml:
cd doc/diagram ; $(MAKE)
bootstrap: .phpdocinstall .npmpackages .bowerpackages .plantuml_install .virtual_env .sonar_scanner
bootstrap: .npmpackages .plantuml_install .virtual_env
npm update
bower update
grunt default
composer update
cd extension/Resources/Private; composer update
jsdoc: .npmpackages
$(JSDOC) -c JSDocConf.json
phpdoc: .phpdocinstall
$(PHPDOC)
.phpdocinstall: .support
if [ ! -f "`pwd`/support/pear.config" ]; then \
pear config-create "`pwd`/support" "`pwd`/support/pear.config" ; \
pear -c "`pwd`/support/pear.config" channel-discover pear.phpdoc.org ; \
fi
pear -c "`pwd`/support/pear.config" install --alldeps phpDocumentor
touch $@
.sonar_scanner: .support_sonar
cd support/sonar ;\
wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$(SONAR_SCANNER_VERSION)-linux.zip ;\
unzip -o sonar-scanner-cli-$(SONAR_SCANNER_VERSION)-linux.zip
touch $@
basic: .npmpackages .virtual_env
npm update
grunt default
cd extension/Resources/Private; composer update; cd vendor/phpoffice/phpspreadsheet; rm -rf .github bin docs samples .g* .s* .t* C* c* m* p*
.plantuml_install: .support_plantuml
wget --no-check-certificate -O support/plantuml/plantuml.jar 'https://downloads.sourceforge.net/project/plantuml/plantuml.jar'
......@@ -109,15 +88,9 @@ phpdoc: .phpdocinstall
.npmpackages: package.json
npm ls -g grunt-cli 2>/dev/null || { echo "Please install grunt-cli npm package using 'npm install -g grunt-cli'" 1>&2 ; exit 1; }
npm ls -g jsdoc 2>/dev/null || { echo "Please install jsdoc npm package using 'npm install -g jsdoc'" 1>&2 ; exit 1; }
npm ls -g bower 2>/dev/null || { echo "Please install bower npm package using 'npm install -g bower'" 1>&2 ; exit 1; }
npm install
touch $@
.bowerpackages: bower.json
bower --silent install
touch $@
.support:
mkdir -p support
touch $@
......@@ -126,10 +99,6 @@ phpdoc: .phpdocinstall
mkdir -p support/plantuml
touch $@
.support_sonar: .support
mkdir -p support/sonar
touch $@
.virtual_env: pip-temp-directory
virtualenv .python_virtualenv
. .python_virtualenv/bin/activate ; TMPDIR="$(PIP_TMP)" pip install --upgrade sphinx==1.5.5
......@@ -138,10 +107,6 @@ phpdoc: .phpdocinstall
pip-temp-directory:
test -d "$(PIP_TMP)" || mkdir -p "$(PIP_TMP)"
sonar: .sonar_scanner
support/sonar/sonar-scanner-$(SONAR_SCANNER_VERSION)-linux/bin/sonar-scanner
.PHONY: nightly maintainer-clean snapshot release git-revision t3sphinx build-dist make-dist-dir dist-move-doc dist-copy-extension pip-temp-directory plantuml sonar
copyReleaseNotes:
......
[![pipeline status](https://git.math.uzh.ch/typo3/qfq/badges/master/pipeline.svg)](https://git.math.uzh.ch/typo3/qfq/commits/master)
QFQ: Quick Form Query - Typo3 Extbase Extension
===============================================
......
{
"name": "qfq",
"authors": [
"Carsten Rose <carsten.rose@math.uzh.ch>"
],
"description": "",
"main": "",
"moduleType": [],
"license": "MIT",
"homepage": "",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"bootstrap": "^3.3.6",
"jqwidgets": "4.2.1",
"tablesorter": "jquery.tablesorter#^2.25.6",
"eventEmitter": "^4.3.0",
"bootstrap-validator": "^0.11.5",
"Chart.js": "^2.1.2",
"tinymce": "tinymce-dist#^4.4.3",
"corejs-typeahead": "^1.1.1",
"codemirror": "^5.24.0"
}
}
{
"require-dev": {
"phpunit/phpunit": "^6.5"
}
}
This diff is collapsed.
......@@ -196,6 +196,12 @@ Download
See PROTOCOL.md > Download
Monitor
-------
Shows files instantly in the browser. Via AJAX request a user defined HTML element will be replaced by the content of the
file. 'frequency' and mode 'replace' / 'append' can be configured. Only files in document root are acessible.
Print
-----
......@@ -249,6 +255,30 @@ Debug / Log
* Check to display debug info:
$this->store->getVar(SYSTEM_SHOW_DEBUG_INFO, STORE_SYSTEM) === 'yes'
Form Log
--------
On request (by user in FormEditor) a 'formLog' mode can be activated per individual form. The mode will be disabled after
FORM_LOG_EXPIRE (typically 1800 seconds).
* The formLog button (top of FormEditor) open's the same page with SIP parameter:
* form=<formName>
* _formLogMode=logAll|logSession
* If a form is opened with '_formLogMode' SIP parameter, the form is not shown.
* Instead:
* An empty formLogFile ist created
* Filename: $this->formSpec[formLogFileSession|formLogFileAll]='fileadmin/protected/log/form.<formname>.log' (all) or
form.<formname>.<beuser>log is set.
* A HTML element with htmlid='formLog-1' is rendered together with the AJAX monitor code to the current logFile.
* If a form is instantiated (load, save, udpate, delete), the system checks if corresponding lock files exist.
* Correspondig expired logfiles will be deleted.
* Active logfiles will be filled.
Errormessages & Exceptions
==========================
......
# Drag And Drop
## Sort
Initialize a dnd container by adding the class "qfq-dnd"
Set container object class to `class="qfq-dnd qfq-dnd-sort"`.
Add the data elements: `data-dnd-api="url"` and `data-dnd-key="key"`.
For the children inside of the container (just the first children):
add `data-dnd-id` to a reference you can handle (probably record id).
Request will be sent containing following GET variables:
* dragId = `data-dnd-id` of the dragged object,
* dragPosition = client internal old position of the dragged object.
* setTo = "after" or "before",
* hoverId = `data-dnd-id` id of the element the dragged element is now hovering, meaning before or after.
* hoverPosition = client internal position of currently hovered element.
Example: http://something/bla?dragId=uno&dragPosition=1&setTo=before&hoverId=tre&hoverPosition=3
\ No newline at end of file
......@@ -43,12 +43,12 @@ Neue Versionsnummer
* Update the version number in this document (topic 6)
* Commit & Push new version changes to master branch:
New version x.y.z.
New version 18.8.1
6) **New Tag**:
git tag v0.25.15a
git push -u origin v0.25.15a
git tag v18.8.1
git push -u origin v18.8.1
7) PhpStorm: **Sync** all files to VM qfq.
......@@ -58,10 +58,13 @@ Update Doku auf docs.typo3.org
https://docs.typo3.org/typo3cms/drafts/github/T3DocumentationStarter/Public-Info-053/
1) Copy - Im `qfq` Projektverzeichnis: make update-qfq-doc
2) Commit - In `qfq-doc` Projektverzeichnis wechseln und auf github einchecken:
1) Copy 'qfq' doc to github project 'qfq-doc'. Commit changes. Push changes to github::
git commit -a
git push # User: math-uzh, PW: <kpit>
make update-qfq-doc
**one line**: make update-qfq-doc; pushd ../qfq-doc; git commit -a; git push; popd
\ No newline at end of file
Upload new version to TER
=========================
* https://extensions.typo3.org/ > Log in > My Extensions.
* Rename the ZIP file to be TER compatible: e.g. qfq_18.6.0.zip.
* Upload - that's all.
\ No newline at end of file
......@@ -73,11 +73,11 @@ the Client by adding following name/value pairs to the response JSON
Stream
{
"status": "error",
...
"field-name": "<field name>",
"field-message": "<message>",
...
"status": "error",
...
"field-name": "<field name>",
"field-message": "<message>",
...
}
Only one validation failure per request can be reported to Client.
......@@ -224,18 +224,22 @@ The format of redirect information is outlined below
{
...
"redirect": "no" | "url" | "url-skip-history" | "client"
"redirect": "no" | "url" | "url-skip-history" | "auto" | "close"
"redirect-url": "<url>"
...
}
`"redirect"`
: type of redirection. `"no"` advises the Client to stay on the
Current Page. `"client"` advises the Client to decide where to
redirect to. `"url"` advices the Client to redirect to the URL
provided in `"redirect-url"`. `"url-skip-history"` behaves like
`"url"` but the current page will skip the browser history.
: type of redirection.
* `"no"` advises the Client to stay on the Current Page.
* `"close"` the client goes back one in history - if there is no history, stays on the same page.
* `"auto"` the Client decide where to redirect to.
* if the user clicks 'save', stay on the same page.
* if the user clicks 'close', go back one in history - if there is no history, stays on the same page.
* `"url"` advices the Client to redirect to the URL provided in `"redirect-url"`.
* `"url-skip-history"` behaves like `"url"` but the current page will skip the browser history.
`"redirect-url"`
: Used to provide an URL when `"redirect"` is set to `"url"`. It
......@@ -393,42 +397,67 @@ A download might be:
* an export of several files as a ZIP archive,
* an export of a T3-'XML'-Page converted to Excel,
* a converted HTML page to PDF,
* a PDF file, concatenated on single PDF files and/or converted HTML page to PDF.
* a thumbnail, streamed from cache dir of if not present/recent rendered on request.
* a PDF file, concatenated on single PDF files and/or converted HTML page to PDF,
* a thumbnail, streamed from cache dir of if not present/recent rendered on request,
* a file to monitor constantly,
* a file, delivered as a JSON structure, used in 'copy to clipboard',
'api/download.php' will be called with a SIP (no other vars used). The SIP contains:
* DOWNLOAD_EXPORT_FILENAME - any target filename, if none given take DOWNLOAD_OUTPUT_PDF ('output.pdf').
* DONWLOAD_MODE - file / pdf / excel / zip / thumbnail. If not specified:
* DONWLOAD_MODE - file / pdf / excel / zip / thumbnail / monitor. If not specified:
a) 'file' is the default, if only one source is given and if that is a file.
b) 'pdf' is the default, if there are multiple TOKEN_URL, TOKEN_URL_PARAM, TOKEN_FILE in SIP_DOWNLOAD_PARAMETER found.
* SIP_DOWNLOAD_PARAMETER (base64 encoded): all DONWLOAD_MODE but 'thumbnail' - contains all parameter to source elements.
Format: <format 1>:<element 1>|<format 2>:<element 2>|...|<format n>:<element n>|
<format>: TOKEN_URL, TOKEN_URL_PARAM, TOKEN_FILE, TOKEN_THUMBNAIL_DIMENSION
<element>: depending on the token - see below
URL: a) 'u:http://w3c.org', b) 'u:w3c.org/', c) 'u:w3c.org/2017/index.php?issue=23'
URL_PARAM: a) 'U:id=export&r=123', b) 'U:id=export&r=123&_orientation=landscape&_page-size=a3'
FILE: a) 'F:fileadmin/example.png'
* DONWLOAD_MODE: file / pdf / excel / zip
* SIP_DOWNLOAD_PARAMETER (base64 encoded) - contains all parameter to source elements.
Format: <format 1>:<element 1>|<format 2>:<element 2>|...|<format n>:<element n>|
<format>: TOKEN_URL, TOKEN_URL_PARAM, TOKEN_FILE, TOKEN_THUMBNAIL_DIMENSION
<element>: depending on the token - see below
URL: a) 'u:http://w3c.org', b) 'u:w3c.org/', c) 'u:w3c.org/2017/index.php?issue=23'
URL_PARAM: a) 'U:id=export&r=123', b) 'U:id=export&r=123&_orientation=landscape&_page-size=a3'
FILE: a) 'F:fileadmin/example.png'
* In URL_PARAM extra parameter used by `wkhtmltopdf` can be specified. All Parameter, starting with '-'
will be extracted from the regular URL_PARAM and instead forwarded as options to `wkhtmlpdf`
* DONWLOAD_MODE: thumbnail
* SIP_DOWNLOAD_PARAMETER (base64 encoded)
* T:<pathFilename Source>
* W:<dimension>
* r:<render mode>
* Render the thumbnail
Download.php will be called with the SIP. After decoding the SIP, the base64 encoded parameter are used with
DONWLOAD_MODE=file and SIP_DOWNLOAD_PARAMETER=F:<thumbnail>
* DONWLOAD_MODE: monitor
SIP encoded parameter
* In URL_PARAM extra parameter used by `wkhtmltopdf` can be specified. All Parameter, starting with '-'
will be extracted from the regular URL_PARAM and instead forwarded as options to `wkhtmlpdf`
* SIP_DOWNLOAD_PARAMETER (base64 encoded): *DONWLOAD_MODE:thumbnail*
* T:<pathFilename Source>
* W:<dimension>
* r:<render mode>
* Render the thumbnail
Download.php will be called with the SIP. After decoding the SIP, the base64 encoded parameter are used with
DONWLOAD_MODE=file and SIP_DOWNLOAD_PARAMETER=F:<thumbnail>
* file: <filename>
* tail: <number of last lines>
* append: 0|1
The retrieved lines are outputted without any conversion.
* DOWNLOAD_OUTPUT_FORMAT: raw (default), json
* If this parameter is missing, 'raw' ist meant.
* 'json' is used for 'copy to clipboard'.
* The base64 encoding is necessary:
* to deliver multiple elements with the same token (e.g. multiple PDF files to concatenate).
* special parameter names, like 'id', should not force the regular interpretation of 'id' during conversion to a SIP.
During preparing and delivering the download, a popup shows a spinning gear by default. The popup itself will display an
individual message. The popup needs some HTML code (only once per T3 page).
During preparing and delivering the download (file / pdf / excel / zip), a popup shows a spinning gear by default. The
popup itself will display an individual message. The popup needs some HTML code (only once per T3 page).
Download links might be generated in `report` as well as in `subrecords of forms`. To trigger the generation of the HTML
popup code, a variable DOWNLOAD_POPUP_REQUEST in STORE_SYSTEM will be set to 'true' (string) in class Link(), as soon as
the first download link is rendered. During internal rendering of the download link, the const text token
......@@ -465,7 +494,7 @@ Request Method
: GET
URL Parameters
: `s=<SIP>` (form, r)
: `s=<SIP>` (form, r)
: `action=lock`, `action=extend`, `action=release>`
: `recordHashMd5=<value of hidden form element 'recordHashMd5'>`
......@@ -479,7 +508,7 @@ JSON Response from the server (extended [Minimal Response]) containing:
{
"status": "success"|"error"|"conflict"|"conflict_allow_force",
"message": "<message>"
"message": "<message>"e5
}
`status` indicates how the request has been fulfilled by the server.
......@@ -488,6 +517,29 @@ On one of`"error"|"conflict"|"conflict_allow_force"` the Client must display `"<
On `"conflict"` the Client opens the alert as modal dialog (user can't change anything on the form) with a 'reload current
form' button.
On `"conflict_allow_force"` the Client opens the alert non-modal (default).
### Drag And Drop (sort)
Request
: api/dragAndDrop.php
Request Method
: GET
URL Parameters:
: `s=<SIP>` (`form=<formname>`)
:
: `dragId=<data-dnd-id of dragged element>`
: `dragPosition=<client internal position (numbering) of element before dragging>`
: `setTo=before`, `setTo=after`
: `hoverId=<data-dnd-id of dragged element>`
: `hoverPosition=<client internal position (numbering) of element after dragging>`
Server Response
: The response contains at least a [Minimal Response]. In addition, a
[HTML Element Update] may be included.
## Glossary
......
......@@ -13,8 +13,17 @@ require_once(__DIR__ . '/../../qfq/qfq/exceptions/UserReportException.php');
require_once(__DIR__ . '/../../qfq/qfq/exceptions/CodeException.php');
require_once(__DIR__ . '/../../qfq/qfq/exceptions/DbException.php');
/**
* Class QfqController
* @package IMATHUZH\Qfq\Controller
*/
class QfqController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* @return string
* @throws qfq\CodeException
* @throws qfq\UserFormException
*/
public function showAction() {
$origErrorReporting = '';
......
mod.wizards.newContentElement
{
wizardItems
{
special.elements
{
qfq_element
{
icon = icon
goes
here
title = QFQ Content Element
Content
Element
description = Quick Form Query (QFQ) offers a Form Editor and a SQL based Report Language.
info
goes
here
tt_content_defValues
{
CType = qfq_qfq
}
}
}
special.show
:
= addToList(qfq_element)
mod.wizards.newContentElement.wizardItems.special.elements.qfq_qfq {
icon = EXT:qfq/ext_icon_lg.png
title = QFQ Content Element
description = Quick Form Query(QFQ) offers a Form Editor and a SQL based Report Language.
tt_content_defValues {
CType = qfq_qfq
}
}
mod.wizards.newContentElement.wizardItems.special.show := addToList(qfq_qfq)
\ No newline at end of file
......@@ -6,6 +6,12 @@
.. include:: Includes.txt
.. _start:
=============================================================
......@@ -36,10 +42,10 @@ QFQ Extension
2017
:Author:
Carsten Rose, Rafael Ostertag
Carsten Rose, Benjamin Baer
:Email:
carsten.rose@math.uzh.ch, rafael.ostertag@math.uzh.ch
carsten.rose@math.uzh.ch, benjamin.baer@math.uzh.ch
:License:
This document is published under the Open Publication License
......
This diff is collapsed.
This diff is collapsed.
......@@ -2,8 +2,8 @@
[general]
project = QFQ - Quick Form Query
version = 0.25
release = 0.25.15a
version = 18.8
release = 18.8.1
t3author = Carsten Rose
copyright = since 2017 by the author
......
......@@ -57,9 +57,9 @@ copyright = u'2017, Carsten Rose'
# built documents.lease
#
# The short X.Y version.
version = '0.25'
version = '18.8'
# The full version, including alpha/beta/rc tags.
release = '0.25.15a'
release = '18.8.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment