SureDrive Dashboards
SureDrive has two distinct dashboard views: the Application Dashboard (a list of all SureDrives the user can access) and the Project Dashboard (the home view for a single SureDrive). Both are Angular ui-router states defined in app-states.js.
Application Dashboard
The Application Dashboard is the entry point for the SureDrive product. It lists every archive the current user has access to and provides the controls to create a new one.
| Item | Value |
|---|---|
| Route state | app.network.drive.list |
| Controller | DrivesController |
| JS file | SC/suredms-web-client/src/main/webapp/app/js/network/study/drive.js |
| Template | SC/suredms-web-client/src/main/webapp/app/views/network/study/drive-list.html |
| Feature flag | FEATURE_SURE_DRIVE_APPLICATION_ENABLED |
What the Application Dashboard Shows
- A list of all SureDrive archives the user has read access to
- Per-drive statistics: document count, organisation count, team size
- Toggle between list view and image/tile view
- Sort by name or creation date
- Filter by name; option to show deleted drives
+button to open the New SureDrive Wizard
Data Loaded
The controller calls:
- An archive-listing service that returns all
SureDMS.CloudArchivedocuments accessible to the current user ArchiveStatisticsServicefor per-drive document and team counts
Project Dashboard
The Project Dashboard is the home view for a single SureDrive. It is shown after the user selects a drive from the Application Dashboard.
| Item | Value |
|---|---|
| Route state | app.network.study.browse.dashboard-drive |
| Controller | DriveDashboardController |
| JS file | SC/suredms-web-client/src/main/webapp/app/js/network/study/drive/drive-dashboard.js |
| Template | SC/suredms-web-client/src/main/webapp/app/views/network/study/drive/drive-dashboard.html |
What the Project Dashboard Shows
- Milestone Manager widget — summary of milestone phases and completion status
- Document count — aggregate count for the archive
- Activity stream — documents and user activity over the last week/month (loaded via
StudyStreamService) - Workflow task progress — current user's open tasks and completion progress (loaded via
WorkflowService.getCurrentUserTaskStatistics) - Health gadgets — visual indicators for project status (signing, discrepancy, compliance)
- Top-level navigation links to: Documents, Acquire Queue, Quality Queue, Workflow, Reports, Team
Data Loaded
| Service | Purpose |
|---|---|
StudiesService.getStudy(studyId) | Fetches basic project metadata |
ArchiveStatisticsService.getStatistics(studyId) | Aggregate document and organisation counts |
UserArchiveStatisticsService | User-specific document statistics |
WorkflowService.getCurrentUserTaskStatistics(studyId) | Drives the task progress bars |
StudyStreamService.getStudyStream(studyId) | Chronological activity list |
Navigation to Sub-Features
From the Project Dashboard, users navigate to all major SureDrive features via the top-level menu:
| Menu Item | Route Area | Document |
|---|---|---|
| Documents | browse.documents | Document Management |
| Acquire Queue | browse.acquire-queue | Acquire and Quality Queues |
| Quality Queue | browse.quality-queue | Acquire and Quality Queues |
| Workflow | browse.workflow | Workflow Platform |
| Reports | browse.report-wizard | Reports |
| Team | browse.team | Team Management |
| Properties | browse.properties | SureDrive Properties |
| Audit Trail | browse.audit-trail | Audit Trail |
| Milestone Manager | browse.milestones | Milestone Manager |
| Content Model Editor | browse.content-model-editor | Content Model Editor |
StudyDashboardController — Service and Data Model
StudyDashboardController (SC/suredms-web-client/src/main/webapp/app/js/network/study/dashboard/study-dashboard.js) powers both the Application Dashboard and the Project Dashboard views.
Injected Services
| Service | Role |
|---|---|
ArchiveStatisticsService | Loads document count statistics per archive via getStatistics(studyId, success, error) |
UserArchiveStatisticsService | Loads per-user document and report statistics via getDocumentStatistics / getReportsStatistics |
StudyStreamService | Provides an activity stream for the drive via getStudyStream(studyId) |
SystemSnapshotCacheService | Supplies recent-activity user list via getActivity(true) |
WorkflowService | Provides workflow task counts via getCurrentUserTaskStatistics(studyId) |
DashboardQuickShortcutsService | Loads and persists quick-shortcut settings |
DashboardGadgetsVisibilityService | Controls per-gadget visibility (which health gadgets the user has enabled) |
FeatureService | Checks feature flags inline (e.g. FEATURE_SHARE_VIEW) |
ActionAvailabilityService | Checks action flags (e.g. FEATURE_GLOBAL_UPLOAD, FEATURE_VIEW_WORKFLOW) |
Document and Activity Streams
The controller loads two time-series streams from the cached study object:
| Property | Stream key | Meaning |
|---|---|---|
studyDashboard.documentsInLastWeek | STUDY_STREAM_DOCUMENTS_IN_LAST_MONTH | Array of daily document count points (keyed by day) |
studyDashboard.activityInLastWeek | STUDY_STREAM_ACTIVITY_IN_LAST_MONTH | Array of daily user activity points |
Both arrays are compared against the cached study streams on each reload (reloadStudyStreams). If the JSON representation has changed, the local array is replaced and the Flot chart re-renders. The isFlotDataLoadingInProgress flag gates the chart render, toggling off after a 500ms $timeout.
Statistics Refresh
refreshArchiveStatistics() calls ArchiveStatisticsService.getStatistics(studyId) for drive-level counts (total documents, forms, etc.). If the DASHBOARD_GADGET_MY_DOCUMENTS gadget is visible, UserArchiveStatisticsService.getDocumentStatistics and getReportsStatistics are also called to populate per-user counts.
Workflow Task Bar
reloadUserTasks() calls WorkflowService.getCurrentUserTaskStatistics(studyId). The result has .total and .completed fields. If total > 0, a progress percentage is computed as Math.round(100 * completed / total) and bound to studyDashboard.studyWorkflowTasksProgress. If total === 0, the bar shows 100.
Permission Flags Set on Activation
| Property | Condition |
|---|---|
userCanGenerateAdminReport | UserService.isAdmin() |
userCanUploadDocument | FEATURE_GLOBAL_UPLOAD action available |
userCanViewWorkflow | FEATURE_VIEW_WORKFLOW action available |
canModifyTeam | Admin OR (FEATURE_SHARE_VIEW or FEATURE_SHARE_VIEW_WITH_DELETION enabled) AND study is not unmodifiable |