formSpec[F_BS_COLUMNS] . "'>", $data);
$data = Support::wrapTag('
', $data);
diff --git a/extension/Classes/Sql/formEditor.sql b/extension/Classes/Sql/formEditor.sql
index 253b18ee1b1512cad31a2da313955a3aa269db14..960132fd08fce279fc5f1a000845708e426c0064 100644
--- a/extension/Classes/Sql/formEditor.sql
+++ b/extension/Classes/Sql/formEditor.sql
@@ -197,27 +197,29 @@ VALUES
# Basic
(1, 'name', 'Name', 'required', 'text', 'pattern', 'native', 110, 0, 0,
- '
Info', '', '', '',
+ '
Info', '', '', '',
'autofocus\ndata-pattern-error=Allowed characters: alphabet, number or . - +',
1, '', '', '', 'specialchar', 'no', '[a-zA-Z0-9._+-]+'),
- (1, 'title', 'Title', 'show', 'text', 'all', 'native', 120, 0, 0, '
Info',
+ (1, 'title', 'Title', 'show', 'text', 'all', 'native', 120, 0, 0,
+ '
Info',
'', '', '', '', 1, '', '', '', 'none', 'no', ''),
(1, 'noteInternal', 'Note', 'show', 'text', 'all', 'native', 130, '40,3', 0,
- '
Info', '', '', '', '', 1, '', '', '', 'specialchar', 'no', ''),
+ '
Info', '', '', '', '', 1, '', '', '', 'specialchar', 'no',
+ ''),
(1, 'tableName', 'Table', 'required', 'select', 'all', 'native', 140, 0, 0,
- '
Info', '', '', '{{[{{indexData:Y}}]!SHOW tables}}',
+ '
Info', '', '', '{{[{{indexData:Y}}]!SHOW tables}}',
'emptyItemAtStart', 1, '', '', '', 'specialchar', 'no', ''),
(1, 'parameterLanguageA', 'Language: {{formLanguageALabel:YE}}', 'show', 'text', 'all', 'native', 150, '60,2', 0,
- '
Info', '', '', '', '', 1, '',
+ '
Info', '', '', '', '', 1, '',
'{{SELECT IF("{{formLanguageAId:YE}}"="","hidden","show" ) }}', '', 'none', 'no', ''),
(1, 'parameterLanguageB', 'Language: {{formLanguageBLabel:YE}}', 'show', 'text', 'all', 'native', 160, '60,2', 0,
- '
Info', '', '', '', '', 1, '',
+ '
Info', '', '', '', '', 1, '',
'{{SELECT IF("{{formLanguageBId:YE}}"="","hidden","show" ) }}', '', 'none', 'no', ''),
(1, 'parameterLanguageC', 'Language: {{formLanguageCLabel:YE}}', 'show', 'text', 'all', 'native', 170, '60,2', 0,
- '
Info', '', '', '', '', 1, '',
+ '
Info', '', '', '', '', 1, '',
'{{SELECT IF("{{formLanguageCId:YE}}"="","hidden","show" ) }}', '', 'none', 'no', ''),
(1, 'parameterLanguageD', 'Language: {{formLanguageDLabel:YE}}', 'show', 'text', 'all', 'native', 180, '60,2', 0,
- '
Info', '', '', '', '', 1, '',
+ '
Info', '', '', '', '', 1, '',
'{{SELECT IF("{{formLanguageDId:YE}}"="","hidden","show" ) }}', '', 'none', 'no', ''),
# FormElement
@@ -230,15 +232,18 @@ VALUES
# Layout
(1, 'showButton', 'Show button', 'show', 'checkbox', 'all', 'native', 220, 0, 5,
- '
Info', '', '', '', 'checkBoxMode = multi\norientation=vertical', 3, '',
+ '
Info', '', '', '',
+ 'checkBoxMode = multi\norientation=vertical', 3, '',
'', '', 'specialchar', 'no', ''),
(1, 'labelAlign', 'Label Align', 'show', 'radio', 'alnumx', 'native', 225, 0, 5,
- '
Info', '', '', '', 'buttonClass', 3, '',
+ '
Info', '', '', '', 'buttonClass', 3, '',
'', '', 'specialchar', 'no', ''),
(1, 'parameter', 'Parameter', 'show', 'text', 'all', 'native', 230, '40,8', 0,
- '
Info', '', '', '', '', 3, '', '', '', 'none', 'no', ''),
+ '
Info', '', '', '', '', 3, '', '', '', 'none', 'no',
+ ''),
(1, 'bsLabelColumns', 'BS Label Columns', 'show', 'text', 'all', 'native', 240, 0, 0,
- '
Info', '', '', '', '', 3, '', '', '{{bsLabelColumns:Y}}',
+ '
Info', '', '', '', '', 3, '', '',
+ '{{bsLabelColumns:Y}}',
'specialchar', 'no', ''),
(1, 'bsInputColumns', 'BS Input Columns', 'show', 'text', 'all', 'native', 250, 0, 0, '', '', '', '', '', 3, '', '',
'{{bsInputColumns:Y}}', 'specialchar', 'no', ''),
@@ -248,42 +253,48 @@ VALUES
# Access
(1, 'forwardMode', 'Forward', 'show', 'radio', 'all', 'native', 310, 0, 0,
- '
Info', '', '', '', 'buttonClass=btn-default', 4, '', '', '',
+ '
Info', '', '', '', 'buttonClass=btn-default', 4, '',
+ '', '',
'specialchar', 'no', ''),
(1, 'forwardPage', 'Forward URL / Page', 'show', 'text', 'all', 'native', 320, 0, 0,
- '
Info', '', '', '', '', 4, '',
+ '
Info', '', '', '', '', 4, '',
'', '', 'none', 'no', ''),
(1, 'requiredParameterNew', 'Required Parameter NEW', 'show', 'text', 'all', 'native', 330, 0, 0,
- '
Info', '', '', '', '', 4, '', '', '', 'specialchar',
+ '
Info', '', '', '', '', 4, '', '', '',
+ 'specialchar',
'no', ''),
(1, 'requiredParameterEdit', 'Required Parameter EDIT', 'show', 'text', 'all', 'native', 340, 0, 0,
- '
Info', '', '', '', '', 4, '', '', '', 'specialchar',
+ '
Info', '', '', '', '', 4, '', '', '',
+ 'specialchar',
'no', ''),
(1, 'permitNew', 'Permit New', 'show', 'radio', 'all', 'native', 350, 0, 10,
- '
Info', '', '', '', 'buttonClass=btn-default', 4, '', '', '',
+ '
Info', '', '', '', 'buttonClass=btn-default', 4,
+ '', '', '',
'specialchar', 'no', ''),
(1, 'permitEdit', 'Permit Edit', 'show', 'radio', 'all', 'native', 360, 0, 10,
- '
Info', '', '', '', 'buttonClass=btn-default', 4, '', '', '',
+ '
Info', '', '', '', 'buttonClass=btn-default', 4,
+ '', '', '',
'specialchar', 'no', ''),
(1, 'prestMethod', 'Permit REST', 'show', 'checkbox', 'all', 'native', 370, 0, 10,
- '
Info', '', '', '',
+ '
Info', '', '', '',
'buttonClass=btn-default\nitemList=get,post:insert,put:update,delete', 4, '', '', '',
'specialchar', 'no', ''),
(1, 'escapeTypeDefault', 'Escape type default', 'show', 'radio', 'all', 'native', 380, 0, 10,
- '
Info', '', '', '',
+ '
Info', '', '', '',
'itemList=c:config,s:single,d:double,l:ldap search,L:ldap value,m:mysql realEscapeString,-:none\nbuttonClass=btn-default',
4, '', '', '', 'specialchar', 'no', ''),
(1, 'dirtyMode', 'Record Locking', 'show', 'radio', 'all', 'native', 390, 0, 10,
- '
Info', '', '', '',
+ '
Info', '', '', '',
'buttonClass=btn-default', 4, '', '', '', 'specialchar', 'no', ''),
(1, 'recordLockTimeoutSeconds', 'Lock timeout (seconds)', 'show', 'text', 'all', 'native', 400, 0, 0,
- '
Info', '',
+ '
Info', '',
'{{SELECT IF("{{recordLockTimeoutSeconds:R0}}"=0,"{{recordLockTimeoutSeconds:Y0}}","{{recordLockTimeoutSeconds:R0}}")}}',
'', '', 4, '', '', '', 'specialchar', 'no', ''),
(1, 'primaryKey', 'Primary Key', 'show', 'text', 'all', 'native', 410, 0, 0,
- '
Info', '', '', '', '', 4, '', '', 'id', 'specialchar', 'no', ''),
+ '
Info', '', '', '', '', 4, '', '', 'id',
+ 'specialchar', 'no', ''),
# Multi
(1, 'multi', 'Multi', 'show', 'fieldset', 'all', 'native', 510, 0, 0, '', '', '', '', '', 5, '', '', '',
@@ -321,7 +332,7 @@ INSERT INTO FormElement (formId, name, label, mode, type, checkType, class, ord,
sql1, parameter, feIdContainer, subrecordOption, dynamicUpdate, bsLabelColumns, bsInputColumns,
bsNoteColumns, modeSql, placeholder, encode)
VALUES (2, 'feIdContainer', 'Container', 'show', 'select', 'all', 'native', 120, 0, 0,
- '
Info', '',
+ '
Info', '',
'{{feIdContainer:FR:::{{SELECT fe.feIdContainer FROM FormElement AS fe WHERE fe.formId={{formId:SR0}} AND fe.feIdContainer!=0 AND "{{class:FRD0:alnumx}}"!="action" ORDER BY fe.modified DESC LIMIT 1}}}}',
'{{!SELECT fe.id, CONCAT(fe.type, " / ", fe.name, " (", COUNT(feSub.id), ")" ) FROM FormElement As fe LEFT JOIN FormElement As feSub ON feSub.feIdContainer=fe.id WHERE fe.formId={{formId:SR0}} AND fe.class="container" AND ("{{class:FRD0:alnumx}}"!="action" OR fe.type="templateGroup") GROUP BY fe.id ORDER BY fe.type, fe.ord, fe.name }}',
'emptyItemAtStart',
@@ -329,74 +340,86 @@ VALUES (2, 'feIdContainer', 'Container', 'show', 'select', 'all', 'native', 120,
'{{SELECT IF(COUNT(fe.id)>0, "show", "hidden") FROM Form AS f LEFT JOIN FormElement AS fe ON f.id=fe.formId AND fe.class="container" WHERE f.id={{formId:S0}} GROUP BY f.id}}',
'', 'specialchar'),
(2, 'enabled', 'Enabled', 'show', 'checkbox', 'all', 'native', 130, 0, 0,
- '
Info', '', '', '', '', 100, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 100, '', 'no', '', '', '',
+ '', '',
'specialchar'),
(2, 'dynamicUpdate', 'Dynamic Update', 'show', 'checkbox', 'all', 'native', 135, 0, 0,
- '
Info',
+ '
Info',
'', '', '', '', 100, '', 'no', '', '', '', '', '', 'specialchar'),
(2, 'name', 'Name', 'show', 'text', 'all', 'native', 140, 0, 0,
- '
Info',
+ '
Info',
'', '', '',
'typeAheadSql = [{{indexData:Y}}]SELECT COLUMN_NAME FROM information_schema.columns WHERE table_schema = "{{DB_1_NAME:Y}}" AND table_name = "{{SELECT f.tableName FROM Form AS f WHERE f.id={{formId:S0}}}}" AND COLUMN_NAME LIKE ? ORDER BY COLUMN_NAME\ntypeAheadMinLength = 1\ntypeAheadLimit = 100\ntypeAheadPedantic = 0\n',
- 100, '
Info', 'no', '', '', '', '', '', 'specialchar'),
+ 100, '
Info', 'no', '', '', '', '', '',
+ 'specialchar'),
(2, 'label', 'Label', 'show', 'text', 'all', 'native', 150, 0, 0,
- '
Info',
+ '
Info',
'', '', '', '', 100, '', 'no', '', '', '', '', '', 'none'),
(2, 'mode', 'Mode', 'show', 'radio', 'all', 'native', 160, 0, 0,
- '
Info',
+ '
Info',
'', '', '', 'buttonClass=btn-default', 100, '', 'no', '', '', '', '', '', 'specialchar'),
(2, 'modeSql', 'Mode sql', 'show', 'text', 'all', 'native', 170, '70,2', 0,
- '
Info', '', '', '', '', 100, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 100, '', 'no', '', '',
+ '', '', '',
'none'),
(2, 'class', 'Class', 'show', 'select', 'all', 'native', 180, 0, 0,
- '
Info', '', '{{class:FSRD0:alnumx}}', '', '', 100, '', 'yes',
+ '
Info', '', '{{class:FSRD0:alnumx}}', '', '',
+ 100, '', 'yes',
'', '',
'', '', '', 'none'),
(2, 'type', 'Type', 'show', 'select', 'all', 'native', 190, 0, 0,
- '
Native,
Action,
Container',
+ '
Native,
Action,
Container',
'', '', '',
'itemList={{SELECT IF( "{{class:FRD0:alnumx}}"="native","checkbox,date,time,datetime,dateJQW,datetimeJQW,extra,gridJQW,text,editor,annotate,imageCut,note,password,radio,select,subrecord,upload", IF("{{class:FRD0:alnumx}}"="action","beforeLoad,beforeSave,beforeInsert,beforeUpdate,beforeDelete,afterLoad,afterSave,afterInsert,afterUpdate,afterDelete,sendMail,paste", "fieldset,pill,templateGroup") ) }}',
100, '', 'yes', '', '', '', '', '', 'specialchar'),
(2, 'subrecordOption', 'Subrecord Option', 'show', 'checkbox', 'all', 'native', 200, 0, 0,
- '
Info', '', '', '',
+ '
Info', '', '', '',
'', 100, '', 'yes', '', '', '',
'{{ SELECT IF("{{type:FRE:alnumx}}"="subrecord" AND "{{class:FRE:alnumx}}"="native", "show", "hidden") }}', '',
'specialchar'),
(2, 'parameterLanguageA', 'Language: {{formLanguageALabel:YE}}', 'show', 'text', 'all', 'native', 210, '60,2', 0,
- '
Info', '', '', '', '', 100, '', 'no', '', '', '',
+ '
Info', '', '', '', '', 100, '', 'no', '',
+ '', '',
'{{SELECT IF("{{formLanguageAId:YE}}"="","hidden","show" ) }}', '', 'none'),
(2, 'parameterLanguageB', 'Language: {{formLanguageBLabel:YE}}', 'show', 'text', 'all', 'native', 210, '60,2', 0,
- '
Info', '', '', '', '', 100, '', 'no', '', '', '',
+ '
Info', '', '', '', '', 100, '', 'no', '',
+ '', '',
'{{SELECT IF("{{formLanguageBId:YE}}"="","hidden","show" ) }}', '', 'none'),
(2, 'parameterLanguageC', 'Language: {{formLanguageCLabel:YE}}', 'show', 'text', 'all', 'native', 210, '60,2', 0,
- '
Info', '', '', '', '', 100, '', 'no', '', '', '',
+ '
Info', '', '', '', '', 100, '', 'no', '',
+ '', '',
'{{SELECT IF("{{formLanguageCId:YE}}"="","hidden","show" ) }}', '', 'none'),
(2, 'parameterLanguageD', 'Language: {{formLanguageDLabel:YE}}', 'show', 'text', 'all', 'native', 210, '60,2', 0,
- '
Info', '', '', '', '', 100, '', 'no', '', '', '',
+ '
Info', '', '', '', '', 100, '', 'no', '',
+ '', '',
'{{SELECT IF("{{formLanguageDId:YE}}"="","hidden","show" ) }}', '', 'none'),
(2, 'encode', 'Encode', 'show', 'radio', 'all', 'native', 300, 0, 0,
- '
Info', '', '', '', 'buttonClass=btn-default', 101, '', 'no', '',
+ '
Info', '', '', '', 'buttonClass=btn-default', 101,
+ '', 'no', '',
'',
'', '', '', 'specialchar'),
(2, 'checkType', 'Check Type', 'show', 'radio', 'all', 'native', 310, 0, 0,
- '
Info', '', '', '', 'buttonClass=btn-default', 101, '', 'yes',
+ '
Info', '', '', '', 'buttonClass=btn-default',
+ 101, '', 'yes',
'',
'', '', '', '', 'specialchar'),
(2, 'checkPattern', 'Check Pattern', 'show', 'text', 'all', 'native', 320, 0, 0,
- '
Info,
Regex101', '',
+ '
Info,
Regex101',
+ '',
'', '',
'', 101, '', 'yes', '', '', '',
'{{ SELECT IF("{{checkType:FRE:alnumx}}"="pattern" OR "{{checkType:FRE:allbut}}" LIKE "min%", "show", "hidden") }}',
'', 'none'),
#(2, 'onChange', 'JS onChange', 'show', 'text', 'all', 'native', 330, 0, 0, '', '', '', '', '', 101, '', 'no', '', '', '', '', '', 'none'),
(2, 'ord', 'Order', 'show', 'text', 'all', 'native', 340, 0, 0,
- '
Info', '',
+ '
Info', '',
'{{SELECT IF({{ord:R0}}=0, MAX(IFNULL(fe.ord,0))+10,{{ord:R0}}) FROM (SELECT 1) AS a LEFT JOIN FormElement AS fe ON fe.formId={{formId:S0}} GROUP BY fe.formId}}',
'', '', 101, '', 'no', '', '', '', '', '', 'specialchar'),
(2, 'tabindex', 'tabindex', 'show', 'text', 'all', 'native', 350, 0, 0,
- '
Info', '', '', '', '', 101, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 101, '', 'no', '', '',
+ '', '', '',
'specialchar'),
(2, 'adminNote', 'Internal Note', 'show', 'text', 'all', 'native', 360, '60,4', 0, '', '', '', '', '', 101, '',
'no',
@@ -404,14 +427,16 @@ VALUES (2, 'feIdContainer', 'Container', 'show', 'select', 'all', 'native', 120,
'', '', '', 'specialchar'),
(2, 'labelAlign', 'Label Align', 'show', 'radio', 'all', 'native', 400, 0, 0,
- '
Info', '', '', '', 'buttonClass=btn-default', 102, '', 'no', '',
+ '
Info', '', '', '', 'buttonClass=btn-default', 102,
+ '', 'no', '',
'',
'', '', '', 'specialchar'),
(2, 'size', 'Size', 'show', 'text', 'all', 'native', 405, 0, 0,
- '
Info', '',
+ '
Info', '',
'', '', '', 102, '', 'no', '', '', '', '', '', 'specialchar'),
(2, 'bsLabelColumns', 'BS Label Columns', 'show', 'text', 'all', 'native', 410, 0, 0,
- '
Info', '', '', '', '', 102, '', 'no', '', '', '', '',
+ '
Info', '', '', '', '', 102, '', 'no', '',
+ '', '', '',
'{{SELECT IF(f.bsLabelColumns != '''', f.bsLabelColumns, ''{{bsLabelColumns:Y}}'') FROM Form AS f WHERE f.id = {{formId}} }}',
'specialchar'),
(2, 'bsInputColumns', 'BS Input Columns', 'show', 'text', 'all', 'native', 420, 0, 0, '', '', '', '', '', 102,
@@ -425,29 +450,35 @@ VALUES (2, 'feIdContainer', 'Container', 'show', 'select', 'all', 'native', 120,
'{{SELECT IF(f.bsNoteColumns != '''', f.bsNoteColumns, ''{{bsNoteColumns:Y}}'') FROM Form AS f WHERE f.id = {{formId}} }}',
'specialchar'),
(2, 'rowLabelInputNote', 'Label / Input / Note', 'show', 'checkbox', 'alnumx', 'native', 440, 0, 10,
- '
Info', '', '', '', '', 102, '', 'no', '', '', '', '',
+ '
Info', '', '', '', '', 102, '', 'no',
+ '', '', '', '',
'',
'specialchar'),
(2, 'maxLength', 'Maxlength', 'show', 'text', 'all', 'native', 450, 0, 0,
- '
Info', '', '', '', '', 102, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 102, '', 'no', '', '',
+ '', '', '',
'specialchar'),
(2, 'note', 'Note', 'show', 'text', 'all', 'native', 460, '40,5', 0,
- '
Info', '', '', '', '', 102, '', 'no', '', '', '', '', '', 'none'),
+ '
Info', '', '', '', '', 102, '', 'no', '', '', '',
+ '', '', 'none'),
(2, 'tooltip', 'Tooltip', 'show', 'text', 'all', 'native', 470, 0, 0,
- '
Info', '', '', '', '', 102, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 102, '', 'no', '', '', '',
+ '', '',
'none'),
(2, 'placeholder', 'Placeholder', 'show', 'text', 'all', 'native', 480, 0, 0,
- '
Info', '', '', '', '', 102, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 102, '', 'no', '', '',
+ '', '', '',
'none'),
(2, 'value', 'value', 'show', 'text', 'all', 'native', 500, '40,2', 0,
- '
Info', '', '', '', '', 103, '', 'no', '', '', '', '', '',
+ '
Info', '', '', '', '', 103, '', 'no', '', '', '',
+ '', '',
'none'),
(2, 'sql1', 'sql1', 'show', 'text', 'all', 'native', 510, '40,5', 0,
- '
InfoMariaDB:
Select,
Functions',
+ '
InfoMariaDB:
Select,
Functions',
'', '', '', '', 103, '', 'no', '', '', '', '', '', 'none'),
(2, 'parameter', 'Parameter', 'show', 'text', 'all', 'native', 520, '40,8', 0,
- '
Info',
+ '
Info',
'', '', '', '', 103, '', 'no', '', '', '', '', '', 'none');
INSERT INTO `FormElement` (`id`, `formId`, `feIdContainer`, `dynamicUpdate`, `enabled`, `name`, `label`, `mode`,
@@ -616,7 +647,7 @@ VALUES (4, 'status', 'Enabled', 'show', '', 'checkbox', 'specialchar', 'alnumx',
'specialchar', 'alnumx', 90, 'buttonClass=btn-default', '', '', 'yes', '', '', ''),
(4, 'outputPattern', 'Pattern to look for on output', 'show',
'{{SELECT IF("{{type:FR:alnumx}}"="mail","hidden","show") }}', 'text', 'none', 'all', 100, '', '',
- 'If pattern isn\'t found, return an error.
Check
pcre /
regexp101.com ',
+ 'If pattern isn\'t found, return an error.
Check
pcre /
regexp101.com ',
'yes', '', '', ''),
(4, 'lastRun', 'Last run', 'readonly', '', 'text', 'specialchar', 'alnumx', 120, '', '', '', 'no', '', '', ''),