Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Bootstrap 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/UX WTF is a place to catalog inconsistencies that are not ready to become a JIRA ticket

UI Github Repositories

Features Backlog

...

Backlog

Consistency

ProblemSolutionTickets












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







Performance

ProblemSolutionTickets



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




Extensibility

ProblemSolutionTickets
















Tooling

ProblemSolutionTickets

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







Malawi

ProblemSolutionTickets

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
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

  • 506
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

  • 458
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

  • 463
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)

...

  • serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyMALAWISUP-101

SORTING

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MALAWISUP-68

Bug?

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MALAWISUP-90
Notifications are wacko
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

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

...

  • MW-507
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyMW-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
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

Performance

...

  • 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
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

Offline Support

  • App Cache update detect and notification
  • OfflineService component to simplify offline development
  • Less frequent offline status check (reduce UI bandwidth)

Extensibility

...

  • 574

Caching

  • Dropdown list will say "No Options" but once refreshed will show values

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyMW-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
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-471
Un-Forking
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

  • 436

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

  • 454

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-

...

  • 419

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-439

  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    key

...

  • MW-437



Unit Testing

http://docs.openlmis.org/en/latest/conventions/uiCodeConventions.html#unit-testing-guidelines


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

  • Hide as many columns as possible
    • In Stock Management Recieve - reason entry isn't needed as there is only one choice, the column should not even show
    • There are blank areas from lot/vaccination groups → its weird
  • Odoo allows users to define groups of data, remembering the order that a use clicked buttons to create the group
    • This made complex data reporting and editing easier
  • Make all editable fields in a table required
    • Odoo allows users to add additional information to a row in a secondary view (modal-ish)
  • Odoo allows devs to configure if the system should do 'live' validation or validate once a form is submitted
  • Module development in Odoo, allows an implementer/user to see the packages that are installed – which makes talking and reasoning about the system possible