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.
When working on OpenLMIS design or user interface issues, please consult the following resources.
Semantically Versioned Repositories
Milestone Versioned Repositories
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:
| |
Modals look gross, and there are variations in how and when modals are used. | ||
Program/Facility filter/select is implemented and used different sections of the OpenLMIS-UI | ||
Directions for searching on list pages is not always clear | ||
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
| ||
sticky-columns can't be "easily used" | ||
CSS restyling:
| ||
As the OpenLMIS-UI evolves, we need to make sure the code base is stable |
| |
Date Picker implementation is screwy | ||
Year selection component – we don't want to rewrite year formatting guidelines.... | ||
Alert warning is only used once | ||
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 |
| |
As the application evolves, we need to make sure the OpenLMIS-UI continues to download and start quickly. |
| |
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. |
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 | |
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) |
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 |
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 |
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 |
http://docs.openlmis.org/en/latest/conventions/uiCodeConventions.html#unit-testing-guidelines
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 |