diff --git a/extension/Documentation/Manual.rst b/extension/Documentation/Manual.rst index e8f9b2255054ad638cdb9bebdfda942497526d61..cfef3edc88864ac036b14ff3d2a2b592f1ad92e1 100644 --- a/extension/Documentation/Manual.rst +++ b/extension/Documentation/Manual.rst @@ -207,22 +207,22 @@ Setup CSS & JS } page.includeJS { - file01 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.min.js - file02 = typo3conf/ext/qfq/Resources/Public/JavaScript/bootstrap.min.js - file03 = typo3conf/ext/qfq/Resources/Public/JavaScript/validator.min.js - file04 = typo3conf/ext/qfq/Resources/Public/JavaScript/jqx-all.js - file05 = typo3conf/ext/qfq/Resources/Public/JavaScript/globalize.js - file06 = typo3conf/ext/qfq/Resources/Public/JavaScript/tinymce.min.js - file07 = typo3conf/ext/qfq/Resources/Public/JavaScript/EventEmitter.min.js + file01 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.min.js + file02 = typo3conf/ext/qfq/Resources/Public/JavaScript/bootstrap.min.js + file03 = typo3conf/ext/qfq/Resources/Public/JavaScript/validator.min.js + file04 = typo3conf/ext/qfq/Resources/Public/JavaScript/jqx-all.js + file05 = typo3conf/ext/qfq/Resources/Public/JavaScript/globalize.js + file06 = typo3conf/ext/qfq/Resources/Public/JavaScript/tinymce.min.js + file07 = typo3conf/ext/qfq/Resources/Public/JavaScript/EventEmitter.min.js file08 = typo3conf/ext/qfq/Resources/Public/JavaScript/typeahead.bundle.min.js - file09 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.min.js - file10 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.combined.min.js - file11 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.pager.min.js - file12 = typo3conf/ext/qfq/Resources/Public/JavaScript/widget-columnSelector.min.js + file09 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.min.js + file10 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.combined.min.js + file11 = typo3conf/ext/qfq/Resources/Public/JavaScript/jquery.tablesorter.pager.min.js + file12 = typo3conf/ext/qfq/Resources/Public/JavaScript/widget-columnSelector.min.js - # Only needed in case FormElement 'annotate' is used. - file20 = typo3conf/ext/qfq/Resources/Public/JavaScript/fabric.min.js - file21 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.fabric.min.js + # Only needed in case FormElement 'annotate' is used. + file20 = typo3conf/ext/qfq/Resources/Public/JavaScript/fabric.min.js + file21 = typo3conf/ext/qfq/Resources/Public/JavaScript/qfq.fabric.min.js } @@ -1455,43 +1455,44 @@ Store Only variables that are known in a specified store can be substituted. - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - |Name |Description | Content | - +=====+========================================================================================+============================================================================+ - | B | :ref:`STORE_BEFORE`: Record - the current record loaded in the form before any update. | All columns of the current record from the current table | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | C | :ref:`STORE_CLIENT`: POST variable, if not found: GET variable. | Parameter sent from the Client (=Browser). | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | D | Default values column : The *table.column* specified *default value*. | | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | E | *Empty* - allways an empty string, might be helpful if a variable is empty or undefined| Any key | - | | and will be used in an SQL statement. | | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | F | :ref:`STORE_FORM`: data not saved in database yet. | All native *FormElements*. Recent values from the Browser. | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | L | :ref:`STORE_LDAP`: Will be filled on demand during processing of a *FormElement*. | Custom specified list of LDAP attributes | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | M | Column type: The *table.column* specified *type*. | | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | P | Parent record. E.g.: on multi & copy forms the current record of the outer query. | All columns of the MultiSQL Statement from the table for the current row | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | R | :ref:`STORE_RECORD`: Record - the current record loaded in the form. | All columns of the current record from the current table | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | S | :ref:`STORE_SIP`: Client parameter 's' will indicate the current SIP, which will be | sip, r (recordId), form | - | | loaded from the SESSION repo to the SIP-Store. | | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | T | :ref:`STORE_TYPO3`: a) Bodytext (ttcontent record), b) Typo3 internal variables. | See Typo3 tt_content record configuration | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | U | :ref:`STORE_USER`: per user variables, valid as long as the browser session lives. | Set via report: '...' AS '_=<var name>' | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | V | :ref:`STORE_VARS`: Generic variables. | | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | Y | :ref:`STORE_SYSTEM`: a) Database, b) helper vars for logging/debugging: | | - | | SYSTEM_SQL_RAW ... SYSTEM_FORM_ELEMENT_COLUMN, c) Any custom fields: CONTACT, HELP, ...| | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ - | 0 | *Zero* - allways value: 0, might be helpful if a variable is empty or undefined and | Any key | - | | will be used in an SQL statement. | | - +-----+----------------------------------------------------------------------------------------+----------------------------------------------------------------------------+ + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + |Name |Description | Content | + +=====+========================================================================================+================================================================================+ + | B | :ref:`STORE_BEFORE`: Record - the current record loaded in the form before any update. | All columns of the current record from the current table. See `STORE_BEFORE`_. | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | C | :ref:`STORE_CLIENT`: POST variable, if not found: GET variable. | Parameter sent from the Client (=Browser). See `STORE_CLIENT`_. | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | D | Default values column : The *table.column* specified *default value*. | | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | E | *Empty* - allways an empty string, might be helpful if a variable is empty or undefined| Any key | + | | and will be used in an SQL statement. | | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | F | :ref:`STORE_FORM`: data not saved in database yet. | All native *FormElements*. Recent values from the Browser. See: `STORE_FORM`_ | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | L | :ref:`STORE_LDAP`: Will be filled on demand during processing of a *FormElement*. | Custom specified list of LDAP attributes. See `STORE_LDAP`_. | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | M | Column type: The *table.column* specified *type*. | | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | P | Parent record. E.g.: on multi & copy forms the current record of the outer query. | All columns of the MultiSQL Statement from the table for the current row | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | R | :ref:`STORE_RECORD`: Record - the current record loaded in the form. | All columns of the current record from the current table. See `STORE_RECORD`_. | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | S | :ref:`STORE_SIP`: Client parameter 's' will indicate the current SIP, which will be | sip, r (recordId), form. See `STORE_SIP`_. | + | | loaded from the SESSION repo to the SIP-Store. | | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | T | :ref:`STORE_TYPO3`: a) Bodytext (ttcontent record), b) Typo3 internal variables. | See Typo3 tt_content record configuration. See `STORE_TYPO3`_. | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | U | :ref:`STORE_USER`: per user variables, valid as long as the browser session lives. | Set via report: '...' AS '_=<var name>' See: `STORE_USER`_, | + | | | `store_user_examples`_ | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | V | :ref:`STORE_VARS`: Generic variables. | See `STORE_VARS`_. | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | Y | :ref:`STORE_SYSTEM`: a) Database, b) helper vars for logging/debugging: | See `STORE_SYSTEM`_. | + | | SYSTEM_SQL_RAW ... SYSTEM_FORM_ELEMENT_COLUMN, c) Any custom fields: CONTACT, HELP, ...| | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ + | 0 | *Zero* - allways value: 0, might be helpful if a variable is empty or undefined and | Any key | + | | will be used in an SQL statement. | | + +-----+----------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+ * Default *<prio>*: *FSRVD* - Form / SIP / Record / Vars / Table definition. * Hint: Preferable, parameter should be submitted by SIP, not by Client (=URL). @@ -1739,6 +1740,7 @@ As soon as a value is set in the store, it remains as long as the browser sessio Values can be set via report '... AS "_=<var name>"' +See also: `store_user_examples`_ .. _LDAP: @@ -5290,7 +5292,7 @@ Special column names +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | _+html-tag attributes |The content will be wrapped with '<html-tag attributes>'. Example: SELECT 'example' AS '_+a href="http://example.com"' creates '<a href="http://example.com">example</a>' | +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| _=varname |The content will be saved in store 'user' under 'varname'. Retrieve it later via {{varname:U}} | +| _=varname |The content will be saved in store 'user' under 'varname'. Retrieve it later via {{varname:U}}. See `STORE_USER`_, `store_user_examples`_ | +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |_<nonReservedName> |Suppress output. Column names with leading underscore are used to select data from the database and make it available in other parts of the report without generating any output. | +------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ @@ -7167,8 +7169,12 @@ FormElement) forms: :: rsep = ,  } -Keep variables per user session -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +.. _`store_user_examples`: + +STORE_USER examples +^^^^^^^^^^^^^^^^^^^ + +Keep variables per user session. Two pages (pass variable) ''''''''''''''''''''''''' @@ -7220,6 +7226,28 @@ All places with `{{feUser:Y}}` has to be replaced by `{{feUser:UY}}`: :: 'p:{{pageAlias:T}}&feUser={{feUser:T}}|t:Back to own identity|b|s' AS _link, +Semester switch (remember last choice) +'''''''''''''''''''''''''''''''''''''' + +A current semester is defined via configuration in STORE_SYSTEM '{{semId:Y}}'. The first column "'{{semId:SUY}}' AS '_=semId'" saves +the semester to STORE_USER via '_=semId'. The priority 'SCUY' takes either the latest choose (STORE_SIP) or reuse the +last used (STORE_USER) or (first time call during browser session) takes the default from config (STORE_SYSTEM): :: + + # Semester switch + 10 { + sql = SELECT '{{semId:SUY}}' AS '_=semId', + CONCAT('p:{{pageAlias:T}}&semId=', sp.id, '|t:', sp.name, '|s|b|G:glyphicon-chevron-left') AS _link, + ' <button class="btn disabled ', IF({{semId:Y0}}=sc.id, 'btn-success', 'btn-default'), '">',sc.name, '</button> ', + CONCAT('p:{{pageAlias:T}}&semId=', sn.id, '|t:', sn.name, '|s|b|G:glyphicon-chevron-right|R') AS _link + FROM semester AS sc + LEFT JOIN semester AS sp ON sp.id=sc.id-1 + LEFT JOIN semester AS sn ON sc.id+1=sn.id AND sn.show_semester_from<=CURDATE() + WHERE sc.id={{semId:SUY}} AND '{{form:SE}}'='' + ORDER BY sc.semester_von + head = <div class="btn-group" style="position: absolute; top: 15px; right: 25px;"> + tail = </div><p></p> + } + .. _`system`: System