Table of Contents
By default in Wizard's Toolkit each user has their own dashboard of widgets. These widgets give them important stats and information regarding the website. Some pre-defined widgets are included with Wizard's Toolkit and any developer with a little SQL knowledge can easily create unlimited custom widgets.
In the back office (located at /admin/ by default), under Client Control you can see both “Widgets” and “Widget Groups”.
First create Widgets and then assign them to Widget Groups.
When defining a widget you choose the following:
- Widget Name
- Security Level - only users with this security level or higher will be able to see these widgets
- Widget Type - List, Chart or Counter
- Widget Color - only applicable for Counter widget types
- Chart Type - only applicable for Chart widget types
- Link to Page - if you want the widget to be clickable so clicking will navigate to a page
- Use Modal Window - only applicable if “Link to Page” has a value, will open link in modal window
- Skip Footer - only applicable for Counter widget types, will skip showing footer with row counts
- Description - this will show on widget
- SQL - this will generate the data shown on widget
Note, if you are making a List widget and the list has links for navigation you should not also use “Link to Page” because then both will trigger.
When defining a widget group you choose the following:
- Widget Group Name
- Security Level for Defaults
- Staff Role for Defaults
- Use for Personal Dashboard default - checkbox for Yes or No
Note that programmatically you can ignore the security level and staff role functionality. You could make it so all users have access to these “Widget Dashboards” quite easily. Ask and I will send demo code.
If the “Use for Personal Dashboard default” checkbox is checked then this widget set will be copied to the user's personal set of widgets the first time they visit the dashboard if they do not already have personal widgets.
This data table is used as a many-to-many SQL table to associate wtkWidgets with wtkWidgetGroups.
Data columns include:
- WidgetPriority - used to determine position of widget on dashboard
If UserUID is NULL then the Widget Group set is considered the Master Set. User's cannot modify this in any way. This can only be managed in the Back Office.
When a dashboard needs to be edited by a user, simply copy the WidgetGroup and fill the wtkWidgetGroup_X_Widget.UserUID value with the wtkUsers.UID value. Then the user will be able to add, delete and re-prioritize widgets for their own dashboard.
Defaulting Widgets to User Dashboard
The logic used to determine if a widget set is copied to a user is as follows:
- If user already has at least one personal widget then skip.
- Otherwise check to see if there is a Widget Group with a Staff Role that matches the wtkUsers.StaffRole. If so, copy that WidgetGroup regardless of SecurityLevel.
- If there is not a matching StaffRole WiddgetGroup, then check to see if there is a matching SecurityLevel. If so, copy that WidgetGroup.
The “copy” process copies the `wtkWidgetGroup_X_Widget` data for the associated wtkWidgetGroup with NULL UserUID values making the new set contain the wtkUsers.UID in the wtkWidgetGroup_X_Widget.UserUID value.