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

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

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

Modals look gross, and there are variations in how and when modals are used.
Jira Legacy
serverJIRA (openlmis.atlassian.net)
serverId448ba138-230b-3f91-a83e-16e7db1deed1
keyOLMIS-2592
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-2443
  • Program/Facility filter/select is implemented and used different sections of the OpenLMIS-UI
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-2955
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-2424
    Directions for searching on list pages is not always clear
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-2447
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-2656
  • Jira LegacyserverJIRA (openlmis.atlassian.net)serverId448ba138-230b-3f91-a83e-16e7db1deed1keyOLMIS-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
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-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
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-3195
    Date Picker implementation is screwy
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-3010
    Year selection component – we don't want to rewrite year formatting guidelines....
    Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-3043
    Alert warning is only used once
    Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-3080
    Jira LegacyserverJIRA (openlmis.atlassian.net)serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-3081






    Performance

    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
    ProblemSolutionTickets



    • Remove any library that isn't useful.
    • Split libraries to minimum files where possible
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-2935
  • Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    serverId448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-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
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-1958

    Offline Support

    AppCache can update detect and notification

    Less frequent offline status check (reduce UI bandwidth)
    ProblemSolutionTickets

    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

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




    Extensibility

    serverId
    ProblemSolutionTickets
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-1682
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-1923
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-1687
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-1685
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-1804
    There are no supported patterns for extending filesExtendability of directives is a problem — directive controllersAdding of changing constants in OpenLMIS
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyOLMIS-2996
    Modals are not DRY - which will make it hard to make global changes to support accessibility and i18nuh... make them DRY
    Jira Legacy
    serverJIRA (openlmis.atlassian.net)
    448ba138-230b-3f91-a83e-16e7db1deed1
    keyOLMIS-3003
















    Tooling

    OLMIS-2820
    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

    Dgeni-example JSDoc and KSS toolset

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

    There are requests and needs for OpenLMIS to function as a native application on mobile devices

    Cordova Android application compiler

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







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

    Bug?

    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyMALAWISUP-90
    Notifications are wacko
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyMW-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
      keyMALAWISUP-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
      keyMW-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
      keyMW-471
    Un-Forking
    • Jira Legacy
      serverJIRA (openlmis.atlassian.net)
      serverId448ba138-230b-3f91-a83e-16e7db1deed1
      keyMW-436

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

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

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

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

    ...