This page outlines improvements and technical debt that needs to happen to the OpenLMIS-UI. Tickets listed on this page are may not be ready for work, and can actively be picked up once placed on a backlog grooming page.
Table of Contents |
---|
Resources
When working on OpenLMIS design or user interface issues, please consult the following resources.
- OpenLMIS design documentation outlines OpenLMIS recommended workflows, form layout, and writing guidelines. Individual designs may break these rules, but the OpenLMIS community recommends against this.
- Wire-frame template library which should be used to start mocks-up and quickly work through content designs.
- OpenLMIS Reference-UI Styleguide which illustrates basic UI styles, layouts, and components - along with the working code to generate them. Use this resource if creating hi-fidelity mockups or working OpenLMIS-UI code.
UI Github Repositories
- Dev-UI to v5
Semantically Versioned Repositories
- UI Components to v5.1.1
- UI Layout to v5.0.2
- Auth UI to v5.0.3
- Reference Data UI to v5.2.0
- Requisition UI to v5.1.1
- Fulfillment UI to v5.0.3
- Report UI to v5.0.3
Milestone Versioned Repositories
- Reference UI to v5.0.3
Backlog
Consistency
Problem | Solution | Tickets | Inconsistent HTML markup makes it harder for implementers to change large style applications across the OpenLMIS-UI. | Inconsistencies need to be identified and action needs to be taken to:
| |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jira Legacy | |||||||||||||||||||||||||||||||
server | JIRA (openlmis.atlassian.net) | ||||||||||||||||||||||||||||||
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 | key | OLMIS-2936Modals look gross, and there are variations in how and when modals are used. |
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2955 Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2424
Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2447 Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2656 Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2727
It is too easy to click off the modal in the add screen of stock management and loose all the work the user has done
Unit Tests
- Testing a directive is tricky
- UI-Routes could use some tests
CSS restyling:
- Comments status message
- openlmis-table borders
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
- Sonar unit test coverage
- Sonar module dependency tracking
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-3010
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Performance
Problem | Solution | Tickets | The OpenLMIS-UI uses a bunch of libraries and tools to function, but these libraries are large and should be made as small as possible |
|
---|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
- Establish data budget
- Selenium to track application size - vendor libraries, html, translation strings, image sizes
- Selenium to track download time on 3g connection
Ideally, the user will just download the information they need as they work with subsets of pages.
Offline Support
...
...
Firefox and other browsers need to be cleared to show the most recent OpenLMIS-UI version.
We need design around managing offline assets so new versions can be pushed
AppCache can update detect and notification
...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
Less frequent offline status check (reduce UI bandwidth)
Extensibility
Problem | Solution | Tickets |
| There are no supported patterns for extending files | Extendability of directives is a problem — directive controllers | Adding of changing constants in OpenLMIS |
| ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Modals are not DRY - which will make it hard to make global changes to support accessibility and i18n | uh... make them DRY |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
Tooling
Problem | Solution | Tickets | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
There are large files that have too much functionality, which makes their classes difficult to extend or change. A large part of the problem is identifying the files that need to be changes and fixing them. | Add some tooling to identify these large files, and make secondary tickets to refactor the files to be smaller
| ||||||||||||||||||||||
Jasmine 1.3 is outdated | Update to latest version of Jasmine (Overview of process here) | ||||||||||||||||||||||
Scaffolding new modules or file types involves lots of boiler plate |
| ||||||||||||||||||||||
Set up Javascript linter | |||||||||||||||||||||||
Set up Sass linter | Dgeni-example JSDoc and KSS toolset |
| There are requests and needs for OpenLMIS to function as a native application on mobile devices | Cordova Android application compiler |
| ||||||||||||||||||
Malawi
Problem | Solution | Tickets | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
User Input In requisitions, losses and adjustments error messages don't clear until the page is refreshed In requisitions, product grid cells are not shrinking to their minimal size
|
SORTING
Bug?
| |||||||||||||||||||||||||||||||||||||||||||||||||
Notifications are wacko |
| |||||||||||||||||||||||||||||||||||||||||||||||||
Offline Offline is described to be super sensitive. The UI will show that it's in the offline state, when it really isn't.
|
| |||||||||||||||||||||||||||||||||||||||||||||||||
Memory/runtime/wtf
|
| |||||||||||||||||||||||||||||||||||||||||||||||||
Caching
|
| |||||||||||||||||||||||||||||||||||||||||||||||||
WTF
|
| |||||||||||||||||||||||||||||||||||||||||||||||||
Un-Forking |
|
...
Examples | ||
---|---|---|
Brittle | Checks markup, not meaning | |
Set up view that is available in router? | https://github.com/OpenLMIS/openlmis-cce-ui/blob/master/src/cce-edit-inventory-item/edit-inventory-item.html.spec.js#L655-L672 | |
Testing utils bundled into applicaiton? | https://github.com/OpenLMIS/openlmis-cce-ui/blob/master/src/openlmis-testing-utils/openlmis-testing-utils.module.js |
Misc Notes
Todo list clearing
- Add HTML5 mode to nginx
https://gist.github.com/cjus/b46a243ba610661a7efb - Add postCSS - some styles are not getting poly-filled
- Documentation update for directives and cleaning scope
- Add documentation for layout patterns. Should be markdown eventually – but confluence is good for now
- extra-data component
2017-09-15 Alfred/Dercio/Nick
...