Top Menu Entry

TopMenu is an API for registering entry in the Nextcloud Top Menu for ExApps. AppAPI takes responsibility to register TopMenu and proxy all requests to ExApp.

Note

TopMenu rendered only for enabled ExApps.

Register Menu Entry

OCS endpoint: POST /apps/app_api/api/v1/ui/top-menu

Params

Complete list of params (including optional):

{
        "name": "unique_name_of_top_menu",
        "displayName": "Display name",
        "icon": "img/icon.svg",
        "adminRequired": "0 or 1",
}

Note

icon are relative to the ExApp root, starting slash is not required.

Optional params

  • icon - Url to icon, default: null

  • adminRequired - Value indicating should be Entry visible to all or only to admins.

Unregister Menu Entry

OCS endpoint: DELETE /apps/app_api/api/v1/ui/top-menu

Params

To unregister TopMenu, you just need to provide name of registered TopMenu:

{
        "name": "unique_name_of_top_menu"
}

Set Initial state

OCS endpoint: POST /apps/app_api/api/v1/ui/initial-state

Params

{
        "type": "top_menu",
        "name": "unique_name_of_top_menu",
        "key": "key_name",
        "value": "array with value(s)",
}

Remove Initial state

OCS endpoint: DELETE /apps/app_api/api/v1/ui/initial-state

Params

{
        "type": "top_menu",
        "name": "unique_name_of_top_menu",
        "key": "key_name",
}

Add script

OCS endpoint: POST /apps/app_api/api/v1/ui/script

Params

{
        "type": "top_menu",
        "name": "unique_name_of_script",
        "path": "Url to script, e.g.: js/ui_example-main",
        "afterAppId": "optional value",
}

Note

Url to script is relative to the ExApp root, starting slash is not required, “.js” extension is not needed and will be appended automatically by server.

Remove script

OCS endpoint: DELETE /apps/app_api/api/v1/ui/script

Params

{
        "type": "top_menu",
        "name": "unique_name_of_script",
        "path": "Url to script",
}

Add style

OCS endpoint: POST /apps/app_api/api/v1/ui/style

Params

{
        "type": "top_menu",
        "name": "unique_name_of_style",
        "path": "Url to style, e.g.: css/my-style",
}

Note

Url to style is relative to the ExApp root, starting slash is not required, “.css” extension is not needed and will be appended automatically by server.

Remove style

OCS endpoint: DELETE /apps/app_api/api/v1/ui/style

Params

{
        "type": "top_menu",
        "name": "unique_name_of_style",
        "path": "Url to style",
}