-
Notifications
You must be signed in to change notification settings - Fork 0
Archive Trac docs menu
madscatt edited this page Jun 20, 2026
·
1 revision
Legacy Trac archive page imported from
docs_menu. Source: https://genapp.rocks/wiki/wiki/docs_menu. Active canonical page: Reference-Menu-JSON. Review age, links, and examples before treating as current.
- the menu organizes modules
- see genapptest/menu.json for an example
- help for the menu json can be added for each menu level entry with the "help" : "help text..." name value pair.
- note that the width of these is overridden by a currently fixed value
- it can be adjusted, inform a tool developer
- technically, it is blocked by a 'div' and would be too thin if let to autosize
- menu options can be restricted to certain users
- you add the tag "restricted" : "groupcode"
- example menu.json fragment
,{
"id" : "beta"
,"restricted" : "somegroupname"
,"label" : "Beta"
,"icon" : "pngs/beta.png"
,"modules" : [
{
"id" : "testbeta"
,"label" : "testbeta"
}
]
}
- in the above case only users with "somegroupname" permission will be given access after login
- then in appconfig.json, one manually enters user permissions
- in future we plan to add admin control of appconfig.json editing
- N.B.: appconfig.json does not support comments # !
- N.B.: make sure you don't make mistakes in appconfig.json
- verify no comments manually
- $ check_json.pl appconfig.json
- example appconfig.json fragement
,"restricted" : {
"somegroupname" : [ "ausername", "anotherusername" ]
,"othergroup" : [ "oneuser" ]
}
- if a menu entry has only one module, it can automatically be run when clicking on the menu item with the "autorun" tag referencing the module
- here is an example with autorun set
...
,{
"id" : "simulate",
"label" : "Simulate",
"icon" : "pngs/simulate.png",
"autorun" : "simulate_1",
"modules" : [
{
"id" : "simulate_1",
"label" : "Simulate 1"
}
]
}
...
- a menu can be the default at startup... i.e. it be as if the user clicked that menu entry with the "startup" tag
- e.g.
...
{
"id" : "build",
"label" : "Build",
"icon" : "pngs/build.png",
"help" : "build help text",
"startup" : "true",
"modules" : [
{
"id" : "build_1",
"label" : "Build 1"
},
{
"id" : "build_2",
"label" : "Build 2"
}
]
},
...
- "startup" can be combined with "autorun" to provide a welcome page, e.g.
...
{
"id" : "welcome_menu",
"label" : "Welcome!",
"icon" : "pngs/noicon.png",
"autorun" : "welcome",
"startup" : "true",
"modules" : [
{
"id" : "welcome",
"label" : "Welcome"
}
]
}
...
- by default, each module within a menu will have a button to run it
- this option will disable the display of the menu
- this is primarily useful in combination with "autorun" above... (without "autorun", there is no way to run a "nobutton" module)
- e.g.
...
{
"id" : "welcome_menu",
"label" : "Welcome!",
"icon" : "pngs/noicon.png",
"autorun" : "welcome",
"startup" : "true",
"modules" : [
{
"id" : "welcome",
"label" : "Welcome",
"nobutton" : "true"
}
]
}
...
- by default the sidebar menu hides when a menu button is pressed. this can be overridden for each menu entry with the "nohidemenu" option
- e.g. perhaps for the autorun startup welcome menu you wanted to leave the options present
...
{
"id" : "welcome_menu",
"label" : "Welcome!",
"icon" : "pngs/noicon.png",
"autorun" : "welcome",
"startup" : "true",
"nohidemenu" : "true",
"modules" : [
{
"id" : "welcome",
"label" : "Welcome"
}
]
}
...
- menu specific background images are also supported
- N.B. can not be currently combined with user colors
- e.g. in menu.json
,{
"id" : "admin",
"restricted" : "admin",
"label" : "Admin",
"icon" : "pngs/admin.png",
"backgroundimage" : "pngs/admin.png",
"modules" : [
{
"id" : "jobmonitor",
"label" : "Job monitor"
}
,{
"id" : "jobintegritycheck",
"label" : "Integrity check"
}
,{
"id" : "sysuserslist",
"label" : "Users"
}
]
}