The fastest easiest way to get it right.

The Admin Menu

Andromeda automatically builds a menu out of the modules and tables in your database. In addition, you can add specific menu entries that go to custom pages. The rules for building a menu are:

  • The menu pads take their captions from the "description" property of your module definitions.
  • The menu pads appear in the order in which they are defined in the YAML file, unless overridden by the "uisort" property of the modules.
  • Each drop-down menu shows the tables within the module.
  • The tables appear on the menu in the order they are defined in the YAML file, unless overridden by the "uisort" property of the modules.
  • Special menu entries can be defined in the YAML file and will appear in the order they are defined, or in the order determined by their "uisort" properties.
  • Setting the property "spaceafter: Y" on a table or menu entry will cause a spacer to appear after that entry, so that menus entries can be grouped.

Menu Security and Options

If a user does not have the "permsel" permission on a table, they will not see it on the menu.

For custom menu entries, we set the "permsel" permission to control who can see it on the menu, even though there is no real table to SELECT out of. We do this so the permissions work the same way as tables.

The "nomenu" property can be used to remove a table from the menu for all users. If this property is applied to a module for a group, that group will not see that module at all (unless the nomenu property is reset for at least one table entry).

Custom Pages and Programs

See the page Making Hello World a Menu Entry for more information on how to put custom programs onto the menu.

The Demo Example

The YAML example shown below is taken from the Andromeda Demo application, and has been purged of all information except the module and table definitions, to show how these affect the menu:

module ordering:
    description: Orders
    uisort: 100

module gl:
    description: Ledger
    uisort: 500

table orders:
    module: ordering
    description: Orders
    uisort: 100

table orderlines:
    module: ordering
    uisort: 110
    nomenu: "Y"
    x6childwrites: detail
    
table customers:
    module: ordering
    description: Customers
    uisort: 200
    spaceafter: "Y"

table items:
    module: ordering
    uisort: 300
    description: Items
    spaceafter: "Y"
    x6profile: twosides

table custtypes:
    module: ordering
    uisort: 900
    x6profile: grid
    description: Customer Types

table taxauths:
    module: ordering
    uisort: 910
    x6profile: grid
    description: Tax Authorities

table glaccounts:
    description: Chart of Accounts
    module: gl
    uisort: 100
    x6profile: grid
    
table glactypes:
    description: Account Types
    module: gl
    uisort: 900
    x6profile: grid
    x6all: "Y"

This definition produces a menu that looks like this:

comments powered by Disqus
Home |  Documentation |  Download |  Credits |  Contact |  Login
Andromeda © Copyright 2004-2013, Licensed under the GPL Version 2