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.
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
Semantically Versioned Repositories
Milestone Versioned Repositories
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: - Create and document a pattern
- Clean up code that doesn't fit this pattern
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2936 |
---|
|
|
Modals look gross, and there are variations in how and when modals are used. | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2592 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2443 |
---|
|
Program/Facility filter/select is implemented and used different sections of the OpenLMIS-UI | 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 |
---|
|
| Directions for searching on list pages is not always clear | 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
|
|
|
sticky-columns can't be "easily used" |
|
|
| CSS restyling: - Comments status message
- openlmis-table borders
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2821 |
---|
|
|
As the OpenLMIS-UI evolves, we need to make sure the code base is stable | - Sonar unit test coverage
- Sonar module dependency tracking
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-3195 |
---|
|
|
Date Picker implementation is screwy | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-3010 |
---|
|
| Year selection component – we don't want to rewrite year formatting guidelines.... | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-3043 |
---|
|
| Alert warning is only used once | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-3080 |
---|
|
| Jira Legacy |
---|
|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1key | OLMIS-3081 |
---|
|
|
| |
|
|
|
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 |
---|
|
|
|
- Remove any library that isn't useful.
- Split libraries to minimum files where possible
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2935 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2973 |
---|
| As the application evolves, we need to make sure the OpenLMIS-UI continues to download and start quickly. | - Establish data budget
- Selenium to track application size - vendor libraries, html, translation strings, image sizes
- Selenium to track download time on 3g connection
|
Currently the OpenLMIS-UI downloads all functionality regardless of the user who is logging in, or the pages they visit. | Ideally, the user will just download the information they need as they work with subsets of pages. | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-1958 |
---|
|
|
Offline Support
Problem | Solution | Tickets |
---|
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 |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-3166 |
---|
|
| The most frequent HTTP request from the UI is to find out if the browser is offline or not. This could be done in a slower and more meaningful way. | Less frequent offline status check (reduce UI bandwidth) |
|
|
|
|
Extensibility
Problem | Solution | Tickets | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-1682 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-1923 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-1687 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-1685 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-1804 |
---|
|
| There are no supported patterns for extending files | Extendability of directives is a problem — directive controllers | Adding of changing constants in OpenLMIS | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2996 |
---|
|
| Modals are not DRY - which will make it hard to make global changes to support accessibility and i18n | uh... make them DRY | Jira Legacy |
---|
---|
server | JIRA (openlmis.atlassian.net) |
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 | key | OLMIS-3003 |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 - A known file is the RequisitionService
|
|
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 | - Add grunt/yoman command
- Automatically add IFFE enclosure to all javascript files
- Automate minification strings with ngAnnotate
|
|
| Set up Javascript linter |
|
| Set up Sass linter | Dgeni-example JSDoc and KSS toolset | Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2030 |
---|
|
| There are requests and needs for OpenLMIS to function as a native application on mobile devices | Cordova Android application compiler | Jira Legacy |
---|
|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | OLMIS-2820
|
|
|
|
|
|
|
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 - Once a login has failed, a user can't login successfully until the UI page is reloaded
- Submit vs Sync with server doesn't seem well understuff
- Christine said: "users don't understand when to use sync with server"
- When filling in requisition product grid, not 100% obvious which lineitem you are working on
- SCM manager had popover that showed label of lineitem
- If there is an error message on page 17 of a requisition, and you are on page 1 → you can't see the error in the pagination component
- Pagination "First" and "Last" links would be helpful
|
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-506 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-458 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-463 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MALAWISUP-101 |
---|
|
SORTING Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MALAWISUP-68 |
---|
|
Bug? Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MALAWISUP-90 |
---|
|
|
Notifications are wacko |
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-507 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-510 |
---|
|
|
Offline Offline is described to be super sensitive. The UI will show that it's in the offline state, when it really isn't. - UI doesn't work on a 2g connection - either stuck offline or page doesn't load at all (in a reasonable manner)
|
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MALAWISUP-121 |
---|
|
|
Memory/runtime/wtf - Main navigation links are not clickable *sometimes* after user login
- The second page is non-responsive
- Often have to "refresh" to make page work correctly
- Loading modal spinner will sometimes stop spinning – this indicates the browser is dropping frames
- Chrome will ask to kill a page because it is "non-responsive" 3-4 times while editing a user
- Users and facility administration pages are horribly slow
- Editing user information page is an act of patience (takes forever to load/start)
- Timeliness and reporting rates reports are super slow
|
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-574 |
---|
|
|
Caching - Dropdown list will say "No Options" but once refreshed will show values
|
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-511 |
---|
|
|
WTF - Working on the initialize/authorize requisition periods page is rough for a user
- Takes long time to load
- Needs to be refreshed often
- Periods could be paginated and sorted
|
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-471 |
---|
|
|
Un-Forking |
| Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-436 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-454 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-419 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-439 |
---|
|
Jira Legacy |
---|
server | JIRA (openlmis.atlassian.net) |
---|
serverId | 448ba138-230b-3f91-a83e-16e7db1deed1 |
---|
key | MW-437 |
---|
|
|
...