Config.json
- 1 Overview of configuration file - config.json
- 2 Home menu - How to hide home from the menu
- 3 DatePicker activation
- 4 Hiding tabs
- 5 Task properties
- 6 Login Page dropdown
- 7 Auto Refresh Interval
- 8 TFD Configuration
- 9 Showing custom pages in the menu
- 9.1 Icon library
- 9.2 Icon refers to one page
- 9.3 Icon with submenu of multiple pages
- 9.4 New Tab
- 9.5 Mixed
The config.json is an internal configuration file in the product, an example file can be seen at the end of this page and modified at will. To update the config.json, a user needs to upload it to the resource folder (Administration > Resources) of either the tenant or in general to the whole application via the super/admin. Only the changed and updated features to the resource folder will be overwritten in the product according to the new configuration.
→ If the document is uploaded to a super/admin, the changed config.json will be applied to all tenants of the environment.
→ If the document is uploaded only to a specific tenant, the changed config.json will only be applied to that tenant and will not affect the other tenants or the super/admin environment.
→ If the document is uploaded to both super/admin and a tenant, the tenant version of the document is considered.
For example, the config.json file uploaded to the super/admin has the showHome property set to false and the config.json file uploaded to one tenant under this super/admin has showHome property set to true. In this case, the home icon will be shown for that specific tenant, and it won’t be shown for the super/admin and other tenants under this super/admin.
Some properties might only take effect or make sense when the config.json is uploaded via the super/admin, like:
loginPage > tenants
loginPage > additionalHtml
Comments with /*COMMENT HERE*/ are not allowed in config.json
Overview of configuration file - config.json
We can do configurations in the product via config.json. The full overview of the file is as follows.
{
"autoRefreshInterval": 300000,
"filterDateFields": [],
"showHome": true,
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
},
"tasks": {
"showAdhoc": true,
"showQuery": true
},
"loginPage": {
"tenants": [],
"additionalHtml": ""
},
"registerPage": {
"additionalHtml": ""
},
"preCacheSmartformData": {
"allUsers": false,
"allGroups": false,
"csvPreloading": []
},
"documents": {
"countDocumentsRecursive": true
},
"tsdConfig": {
"allowPasswordFields": false,
"enableLogging": false,
"clearConsoleBeforeLog": false,
"trustHtml": true
},
"table": {
"bulkActions": {
"useNew": true
},
"filter": {
"useNew": true
}
}
}
The config.json is invalid once there is a missing comma or any other syntax problem. You could use https://jsonlint.com/ to easily validate your config.json.
Home menu - How to hide home from the menu
We can easily configure our config.json to hide the “Home” icon from the menu. The file should be configured as follows:
{
"showHome": false
}The home icon is hidden successfully. Users will automatically be redirected to “my open tasks” list.
DatePicker activation
Scenario 1: to activate the datepicker for specific index columns, update the config.json file by updating it to [smartFormIndex1]. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "datepicker" is now visible on the index1 field
"filterDateFields" : ["smartFormIndex1"]
The Datepicker is activated successfully
Scenario 2: to activate more than one datepicker, values can be written comma-separated if more than one index column will be filtered.
"filterDateFields" : ["smartFormIndex1","smartFormIndex2"]
The datepickers are activated successfully.
Hiding tabs
These parameters determine the features document, notes, efforts, process model for the tasks and CPM info for the instances should be disabled. If parameters are set to false, features will be disabled.
Hide “Documents” Tab
Scenario 1: To hide the "Documents" tab in the product interface, update the config.json file by setting the status of the "documents" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Documents" tab is no longer visible.
{
"features": {
"documents": false,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}
The “Documents” tab is hidden successfully
Hide “Notes” Tab
Scenario 2: To hide the "Notes" tab in the product interface, update the config.json file by setting the status of the "notes" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Notes" tab is no longer visible.
{
"features": {
"documents": true,
"notes": false,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}
The “Notes” tab is hidden successfully
Hide “Efforts” Tab
Scenario 3: To hide the “Efforts" tab in the product interface, update the config.json file by setting the status of the "efforts" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Efforts" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": false,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}
The “Efforts” tab is hidden successfully
Hide “Process model” Tab
Scenario 4: To hide the “Process model" tab in the product interface, update the config.json file by setting the status of the "processModel" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Process model" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": false,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}
The “Process model” tab is hidden successfully.
Hide “CPM” Tab
Scenario 5: To hide the “CPM" tab in the product interface, update the config.json file by setting the status of the "cpm" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "CPM" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": false,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}
The “CPM” tab is hidden successfully.
Hide “Gantt” Tab
Scenario 6: To hide the “Gantt" tab in the product interface, update the config.json file by setting the status of the "gantt" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Gantt" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": false,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}The “Gantt” tab is hidden successfully.
Hide “Activities” Tab
Scenario 7: To hide the “Activities" tab in the product interface, update the config.json file by setting the status of the "activities" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Activities" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": false,
"swimlanes": true,
"assignmenthistory": true,
"templates": true
}
}The “Activities” tab is hidden successfully.
Hide “Swimlanes” Tab
Scenario 8: To hide the “Swimlanes" tab in the product interface, update the config.json file by setting the status of the "swimlanes" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Swimlanes" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": false,
"assignmenthistory": true,
"templates": true
}
}The “Swimlanes” tab is hidden successfully.
Hide “Assignment history” Tab
Scenario 9: To hide the “Assignment history" tab in the product interface, update the config.json file by setting the status of the "assignmenthistory" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Assignment history" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": false,
"templates": true
}
}The “Assignment history” tab is hidden successfully.
Hide “Templates” Tab
Scenario 10: To hide the “Templates" tab in the product interface, update the config.json file by setting the status of the "templates" to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Templates" tab is no longer visible.
{
"features": {
"documents": true,
"notes": true,
"efforts": true,
"processModel": true,
"cpm": true,
"gantt": true,
"activities": true,
"swimlanes": true,
"assignmenthistory": true,
"templates": false
}
}The “Templates” tab is hidden successfully.
Task properties
Hiding the ”Ad-hoc” button from task properties
Scenario 1: To hide the “Ad-hoc" button from task properties, update the config.json file by setting the status of the "showAdhoc” to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Ad-hoc" button is no longer visible.
{
"tasks": {
"showAdhoc": false,
"showQuery": true
}
}
Ad-hoc button is hidden successfully
Hiding the “Show Query” button from task properties
Scenario 2: To hide the “Show Query" button from task properties, update the config.json file by setting the status of the "showQuery” to false. Once updated, upload the modified file to the "Resources" section. This action will ensure that the "Show Query" button is no longer visible.
{
"tasks": {
"showAdhoc": true,
"showQuery": false
}
}
Show Query button is hidden successfully
Login Page dropdown
To activate the “dropdown" button box on login page, update the config.json file by setting the status of the "loginPage” according to the configuration file displayed below. You can specify a different label that will be shown for a specific tenant name. E.g. tenant name is “X124” but “admin” should be shown.
Once updated, upload the modified file to the "Resources" section. This action will ensure that the "dropdown box" button is displayed.
If the config.json file is uploaded on super tenant, the dropdown box is activated for every tenant.
{
"loginPage": {
"tenants": [
{"label": "actionhandler", "value": "actionhandler"},
{"label": "admin", "value": "X124"},
{"label": "assignment", "value": "assignment"},
{"label": "basic", "value": "basic"}
],
"additionalHtml": "\n\t\t\t<div><b>config.json Test</b></div>\n\t\t\t\n\t\t\t<div>\n\t\t\t\tAT349_loginSiteNeedsToBeConfigurable\t\n\t\t\t</div>"
}
}
The dropdown box button is displayed successfully on the login page
Auto Refresh Interval
"autoRefreshInterval": 50000
This parameter determines the auto-refresh interval for the tasks and instance lists. It will reload the list every 5 minutes in case multiple users are working on the same instances and if another user completes one task or instance. The minimum value for the auto-refresh is 30 seconds.
Value is in milliseconds.
TFD Configuration
"tsdConfig": {
"allowPasswordFields": false,
"enableLogging": false,
"clearConsoleBeforeLog": false,
"trustHtml": true
},
TFD Support for Advanced HTML Elements
"trustHtml": true
trustHtml - This setting controls whether the HTML snippets in TFD forms will accept all types of HTML tags or not. For security reasons, the default of this setting is false.
If trustHtml is disabled (false)
Some advanced tags (like <iframe>, <script>, or other embedded content) will be removed.If trustHtml is enabled (true):
All HTML tags you enter will be displayed, including advanced ones like <iframe>.
Enable this if you need to embed external content (for example videos) inside your form.
Showing custom pages in the menu
Starting with version 9.1, it is possible to add custom icons to the menu and reference existing pages or create new HTML pages.
First of all, you need to activate this feature in the tenant profile:
Enabling Custom Pages allows administrators to add custom HTML views with TIM REST API access to the main navigation (Sidebar). Please note that you are responsible for the security of the content you provide. Ensure all Custom Pages follow best practices to protect your data and users.
Those config.json options are available:
custom one custom element is necessary, whereas for each icon the following is needed:
icon defines which icon from resource folder is shown (e.g myIcons/icon.svg), PNG, SVG, WEBP are supported
target defines which page should be refered to (e.g. myFolder/myPage.html or http://myserver.com/myPage.html). Please note: Many servers do not allow their pages to be displayed in an iFrame.
newTab (optional) defines if the target is opened in a new tab so that external pages can be linked. Default is false.
security (optional) defines which users are allowed to see the icon. If not present, all users are able to see the icon. Please be aware that all users with the deeplink can access the target page. If this one should be confidential, you need to take additional measures within the page itself.
Icon library
In order to have consistent icons, we recommend to use https://fonts.google.com/icons.
Icon refers to one page
"custom": [
{
"label": "Single custom page",
"icon": "custom.svg",
"target": "custom.html",
"security": ["user(sys.support)", "group(testGroup)"]
}
]This block will allow the user sys.support and all members of the group testGroup to see the icon custom.svg with the mouseover Single custom page and will redirect to custom.html which is present in the resources folder.
Icon with submenu of multiple pages
"custom": [
{
"label": "Multi custom page",
"icon": "custom_mult.svg",
"children": [
{
"label": "Custom Child 1",
"target": "custom_child_1.html"
},
{
"label": "Custom Child 2",
"target": "custom_child_2.html",
"security": ["user(sys.support232)", "group(testGroup23)"]
},
{
"label": "Custom Child 3",
"target": "custom_child_3.html"
}
]
}
]This block will allow all users to see the icon custom_mult.svg and its two childs Custom Child 1 and Custom Child 3. Whereas Custom Child 2 can only be seen by user sys.support and members of the group testGroup23.
In this screenshot, Custom Child 2 is not visible as the current user is not allowed to see it.
New Tab
As many servers do not allow their pages to be displayed within an iFrame, we need to open a tab to have an external link.
"custom": [
{
"label": "Google",
"icon": "google.svg",
"target": "https://www.google.com"
"newTab": true
}
]Clicking on this icon will open a new tab and redirect to https://www.google.com.
Mixed
Multiple icons can be shown together:
"custom": [
{
"label": "Single custom page",
"icon": "custom.svg",
"target": "custom.html",
"security": ["user(sys.support232)", "group(testGroup)"]
},
{
"label": "FEATURE1 SERVER",
"icon": "google.svg",
"target": "https://feature1.tim-bpm.com/tim/client",
"security": ["user(sys.support232)", "group(testGroup)"]
},
{
"label": "Multi custom page",
"icon": "custom_mult.svg",
"children": [
{
"label": "Custom Child 1",
"target": "custom_child_1.html"
},
{
"label": "Custom Child 2",
"target": "custom_child_2.html",
"security": ["user(sys.support232)", "group(testGroup)"]
},
{
"label": "Custom Child 3",
"target": "custom_child_3.html"
}
]
}
]
For a user which is member of group testGroup, this results in:
© TIM Solutions GmbH | AGB | Datenschutz | Impressum