Details
-
Type: Story
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 5.0.0-b1
-
Component/s: None
-
Labels:None
Description
We need to have a way of customizing the navigation for both the client nav and the admin nav. We need to do this in a way that automatically replicates the current navigation.
Database
Create new tables:
- actions
- id INT(10) UNSIGNED NOT NULL AUTOINCREMENT
- location ENUM('nav_client', 'nav_staff','nav_public', 'widget_client_home', 'widget_staff_home', 'widget_staff_client', 'widget_staff_billing', 'action_staff_client') NOT NULL DEFAULT 'nav_staff',
- url VARCHAR(255) NOT NULL
- name VARCHAR(128) NOT NULL
- options TEXT DEFAULT NULL
- company_id INT(10) UNSIGNED NOT NULL
- plugin_id INT(10) UNSIGNED NULL DEFAULT NULL
- enabled TINYINT(1) UNSIGNED NOT NULL DEFAULT 1
- editable TINYINT(1) UNSIGNED NOT NULL DEFAULT 1
- primary(id)
- unique(url, location, company_id)
- index(company_id)
- index(location)
- index(plugin_id)
- index(enabled)
- index(editable)
- navigation_items
- id INT(10) UNSIGNED NOT NULL AUTOINCREMENT
- action_id INT(10) UNSIGNED NOT NULL
- order SMALLINT(5) UNSIGNED NOT NULL
- parent_id INT(10) UNSIGNED NULL DEFAULT NULL
- primary(id)
- index(action_id)
- index(parent_id)
Remove the `plugin_actions` table
Migrations
Create migrations to:
- Add new tables
- Move plugin actions to the new tables
- Actions should be created for each plugin action AND their sub items
- Navigation items should be created should be created for each plugin nav_primary_staff and nav_primary_client action that is enabled and their subitems
- Navigation items should be created for each nav_secondary_staff and nav_secondary_client plugin action
- Move core nav items fetched from the navigation model to the new tables
- Actions should be created for each primary nav item AND their sub items (public/client/staff)
- Navigation items should be created should be created for each primary nav item and their subitems (public/client/staff)
- Remove the `plugin_actions` table
Models
- Add Actions model
- Update Navigation model to pull in navigation items from the database
- Update the plugin manager to add/remove/update actions and nav items
- Make sure all action display locations now pull from the action or navigation models
Action Creation Interface
- Add an "Actions" settings nav item under Look and Feel
- Add action list page
- List only editable core (nav) actions here
- Show name and url
- Add an Add Action page
- Fields include a name text field, uri text field, and location select
- Limit location to the nav types
- Add an identical Edit Action page
- Make sure this page will redirect for uneditable actions
"Navigation" Nav Buliding Interface
- Tabs for client nav and admin nav
- Available actions list that shows all actions available to be added to the navigation
- There should be an "Add" button on each row that adds the action as a nav item at the bottom of the navigation
- Drag and drop interface for building and organizing navigation with indentation for subitems
- There should be a "Remove" button on each row to remove the nav item from the navigation
- We should have some way of marking a nav item as a subitem which would make it appear indented
- A checkbox? A clickable icon?
- In the back end we can auto assign these sub items to the most recently seen primary nav item
- It would be nice to have some kind of preview of the navigation, but it is not essential
Other
Issue Links
- duplicates
-
CORE-3823 Portal: Allow admin and client nav links to be created
- Closed