{
  "title": "{{SELECT IF('{{id:R0}}' = 0, 'New comment', 'Edit comment')}}",
  "noteInternal": "",
  "tableName": "Comment",
  "primaryKey": "",
  "permitNew": "sip",
  "permitEdit": "sip",
  "restMethod": "",
  "escapeTypeDefault": "c",
  "render": "bootstrap",
  "requiredParameterNew": "",
  "requiredParameterEdit": "",
  "dirtyMode": "exclusive",
  "showButton": "new,delete,close,save",
  "multiMode": "none",
  "multiSql": "",
  "multiDetailForm": "",
  "multiDetailFormParameter": "",
  "forwardMode": "auto",
  "forwardPage": "",
  "labelAlign": "default",
  "bsLabelColumns": "",
  "bsInputColumns": "",
  "bsNoteColumns": "",
  "parameter": "btnCustom[delete] = p:{{pageSlug:T}}?iss={{isId:SR0}}&action=deleteComment&deleteId={{id:R0}}|b:btn btn-default navbar-btn|G:glyphicon-trash|q:Do you really want to delete the comment?:warning|o:Delete|s|A:data-ignore-history",
  "parameterLanguageA": "",
  "parameterLanguageB": "",
  "parameterLanguageC": "",
  "parameterLanguageD": "",
  "recordLockTimeoutSeconds": 900,
  "deleted": "no",
  "modified": "2025-05-12 08:08:49",
  "created": "2025-04-14 13:51:11",
  "FormElement_ff": [
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "comment",
      "label": "",
      "mode": "show",
      "modeSql": "",
      "class": "native",
      "type": "editor",
      "subrecordOption": "",
      "encode": "none",
      "checkType": "all",
      "checkPattern": "",
      "onChange": "",
      "ord": 20,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "",
      "bsInputColumns": "12",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,input,\/input,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 08:08:49",
      "created": "2025-04-14 13:51:31"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "myAccessNotificationFieldset",
      "label": "Access and notification",
      "mode": "show",
      "modeSql": "",
      "class": "container",
      "type": "fieldset",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 30,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "",
      "bsInputColumns": "",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 08:08:49",
      "created": "2025-04-28 15:26:12"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "accessContact",
      "label": "Access",
      "mode": "show",
      "modeSql": "",
      "class": "native",
      "type": "checkbox",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 40,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "2",
      "bsInputColumns": "4",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "{{SELECT IF('{{id:R0}}', i.accessContact, 'yes') FROM Issue AS i WHERE i.id = '{{isId:SR0}}'}}",
      "sql1": "",
      "parameter": "label2 = Contact\/Watcher",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 13:50:36",
      "created": "2025-04-17 12:47:24",
      "containerName_ff": "myAccessNotificationFieldset"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "mailNotificationSet",
      "label": "Notification",
      "mode": "show",
      "modeSql": "",
      "class": "native",
      "type": "checkbox",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 50,
      "tabindex": 0,
      "size": "",
      "maxLength": "3",
      "labelAlign": "default",
      "bsLabelColumns": "2",
      "bsInputColumns": "10",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "checkBoxMode = multi\r\nitemList = {{SELECT CONCAT_WS(',', pCr.`{{personEmailColumnName:Y}}`, QIFEMPTY(pCo.`{{personEmailColumnName:Y}}`, NULL), QIFEMPTY(i.mailContact, NULL), QIFEMPTY(i.mailWatcherSet, NULL), QIFEMPTY(pAs.`{{personEmailColumnName:Y}}`, NULL)) FROM (`{{personTableName:Y}}` AS pCr, Issue AS i) LEFT JOIN `{{personTableName:Y}}` AS pCo ON pCo.id = i.pIdContact LEFT JOIN `{{personTableName:Y}}` AS pAs ON pAs.id = i.pIdAssignee WHERE pCr.id = i.pIdCreator AND i.id = '{{isId:SR0}}' GROUP BY i.id}}",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 13:50:53",
      "created": "2025-04-28 15:40:23",
      "containerName_ff": "myAccessNotificationFieldset"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "myAttachmentFieldset",
      "label": "Attachments",
      "mode": "show",
      "modeSql": "",
      "class": "container",
      "type": "fieldset",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 60,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "",
      "bsInputColumns": "",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 08:08:49",
      "created": "2025-04-28 15:22:38"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "myMultiUpload",
      "label": "File(s)",
      "mode": "show",
      "modeSql": "",
      "class": "native",
      "type": "note",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 70,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "2",
      "bsInputColumns": "",
      "bsNoteColumns": "4",
      "rowLabelInputNote": "row,label,\/label,note,\/note,\/row",
      "note": "#!report\r\n\r\n{\r\n  sql = SELECT IF('{{id:R0}}', grUploadComment.id, grUploadCommentNew.id) AS _grId\r\n            , grUploadComment.id AS _grUploadCommentId\r\n          FROM Grp AS grUploadComment, Grp AS grUploadCommentNew\r\n          WHERE grUploadComment.reference = 'qfq_upload_comment'\r\n            AND grUploadCommentNew.reference = 'qfq_upload_commentNew'\r\n}\r\n\r\n{\r\n  sql = SELECT CONCAT('uploadId:', IFNULL(fu.uploadId, 0)\r\n            , '|F:\/fileadmin\/protected\/issues\/', YEAR(NOW()), '\/{{isId:SR0}}\/comments\/'\r\n            , '|recordData:xId:', QIFEMPTY('{{id:R0}}', '{{isId:SR0}}'), ',grId:{{grId:R0}},pId:{{pIdUser:S0}}'\r\n            , '|accept:'\r\n            , '|M|x') AS _upload\r\n          FROM (SELECT 1) AS fake\r\n          LEFT JOIN FileUpload AS fu\r\n            ON fu.grId = '{{grUploadCommentId:R0}}'\r\n            AND fu.xId = '{{id:R0}}'\r\n            AND fu.uploadId != 0\r\n          GROUP BY fu.xId\r\n}",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 14:02:50",
      "created": "2025-04-22 07:33:42",
      "containerName_ff": "myAttachmentFieldset"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "isId",
      "label": "",
      "mode": "show",
      "modeSql": "",
      "class": "native",
      "type": "extra",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 80,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "",
      "bsInputColumns": "",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 08:08:49",
      "created": "2025-04-22 07:30:20"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "pIdCreator",
      "label": "",
      "mode": "show",
      "modeSql": "",
      "class": "native",
      "type": "extra",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 90,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "",
      "bsInputColumns": "",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 08:08:49",
      "created": "2025-04-22 07:36:52"
    },
    {
      "dynamicUpdate": "no",
      "encryption": "no",
      "encryptionMethod": "Default",
      "enabled": "yes",
      "name": "myAfterSave",
      "label": "",
      "mode": "show",
      "modeSql": "",
      "class": "action",
      "type": "afterSave",
      "subrecordOption": "",
      "encode": "specialchar",
      "checkType": "auto",
      "checkPattern": "",
      "onChange": "",
      "ord": 100,
      "tabindex": 0,
      "size": "",
      "maxLength": "",
      "labelAlign": "default",
      "bsLabelColumns": "",
      "bsInputColumns": "",
      "bsNoteColumns": "",
      "rowLabelInputNote": "row,label,\/label,input,\/input,note,\/note,\/row",
      "note": "",
      "adminNote": "",
      "tooltip": "",
      "placeholder": "",
      "value": "",
      "sql1": "",
      "parameter": "fillStoreVar = {{!SELECT grUploadComment.id AS grUploadCommentId, grUploadCommentNew.id AS grUploadCommentNewId FROM Grp AS grUploadComment, Grp AS grUploadCommentNew WHERE grUploadComment.reference = 'qfq_upload_comment' AND grUploadCommentNew.reference = 'qfq_upload_commentNew'}}\r\nsqlBefore = {{UPDATE Comment SET mailNotification = IF(mailNotificationSet = '', '0000-00-00 00:00:00', DATE_ADD(NOW(), INTERVAL {{issueMailNotificationInterval:Y:::2}} MINUTE)) WHERE id = '{{id:R0}}'}}\r\nsqlAfter = {{UPDATE FileUpload AS fu SET fu.xId = '{{id:R0}}', fu.grId = '{{grUploadCommentId:V0}}' WHERE fu.grId = '{{grUploadCommentNewId:V0}}' AND fu.xId = '{{isId:SR0}}' AND fu.pId = '{{pIdUser:S0}}'}}",
      "parameterLanguageA": "",
      "parameterLanguageB": "",
      "parameterLanguageC": "",
      "parameterLanguageD": "",
      "clientJs": "",
      "deleted": "no",
      "modified": "2025-05-12 08:08:49",
      "created": "2025-04-25 15:39:19"
    }
  ]
}