Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set up first example of embedded help #265

Closed
cecilia-donnelly opened this issue Jul 12, 2017 · 8 comments
Closed

Set up first example of embedded help #265

cecilia-donnelly opened this issue Jul 12, 2017 · 8 comments

Comments

@cecilia-donnelly
Copy link

@brainwane discussed the need for embedded (tooltip-type) help in #195.

  • In-app context-sensitive help
    This depends on the frontend libraries and frameworks we use; James suggested it would be nice if we could in some way reuse stuff from a central knowledge base. Read the Docs content embedding via JavaScript via JavaScript might be something to consider.

When a user is completing a form on a page (for example), we should offer a tooltip for each field that describes what we expect the content of that field to look like. For example, a tooltip for "NPI" might say something like "National Provider Identifier" and describe where a provider can get an NPI.

The to-do's for this issue are:

  1. Should we use a framework like the RTD one Sumana mentioned? If so, which one? We'd like to reuse text in the tooltips and standalone documentation, and keep them up to date with each other.
  2. Create a tooltip for a field.
@brainwane
Copy link
Contributor

I started work on this by getting familiar with setting up a brand-new Read the Docs project with a few placeholder pages of documentation, which I've been able to do; next I'll start a branch with the PSM that includes some documents that build to Read the Docs, and uses the JavaScript content embedding approach.

@brainwane
Copy link
Contributor

brainwane commented Jul 21, 2017

Further thought, investigation, and conversation with @jasonaowen later:

  • I don't want to use JavaScript to embed content in the PSM from ReadTheDocs because that introduces a network dependency; what if the user's behind a firewall, for instance?
  • I want to use ReStructuredText for user help docs, at least at first, because Sphinx works well with it (building it into HTML) and the ReadTheDocs workflow works well with Sphinx. Any new build step, though, will have to also include a Gradle change.
  • Whatever templating system we use (sticking with JSP, moving to Jinja, or other), we'll have to implement some way for the user to hover/click/select the embedded/inline/tooltip/hover/contextual help. And that's going to be its own kind of tough thing, and it'd be good to figure out how to do that first (and submit a PR for it first).

So I'm going to try this:

  1. hand-write a small HTML file with "What's an NPI?" help text in psm-app/cms-web/WebContent/WEB-INF/pages/
  2. figure out how to get a JSP file to transclude this HTML file as hover text on a relevant <span> or a similar element, e.g., the NPI chunk of psm-app/cms-web/WebContent/WEB-INF/pages/provider/enrollment/steps/pageTemplates/default/personal_information.jsp [and submit this as a PR]
  3. write an .rst file containing that "What's an NPI?" help text
  4. get Sphinx to build that to an HTML file that lives in a directory in psm-app/cms-web/WebContent/WEB-INF/pages/
  5. get personal_information.jsp to transclude that file

brainwane added a commit to brainwane/psm that referenced this issue Jul 21, 2017
@brainwane
Copy link
Contributor

npi-label-wip
Progress!

brainwane added a commit to brainwane/psm that referenced this issue Jul 21, 2017
brainwane added a commit to brainwane/psm that referenced this issue Jul 21, 2017
brainwane added a commit to brainwane/psm that referenced this issue Jul 21, 2017
This is a first step towards SolutionGuidance#265. If the user hovers
their mouse pointer over the abbreviation "NPI" during
the Personal Info step of the enrollment process, they'll
see a short informational message. We need to polish the
presentation but this first step is useful in itself as
well as serving as a proof of concept.
brainwane added a commit to brainwane/psm that referenced this issue Jul 24, 2017
This is a first step towards SolutionGuidance#265. If the user hovers
their mouse pointer over the abbreviation "NPI" during
the Personal Info step of the enrollment process, they'll
see a short informational message. We need to polish the
presentation but this first step is useful in itself as
well as serving as a proof of concept.
brainwane added a commit to brainwane/psm that referenced this issue Jul 24, 2017
This is a first step towards SolutionGuidance#265. If the user hovers
their mouse pointer over the abbreviation "NPI" during
the Personal Info step of the enrollment process, they'll
see a short informational message. We need to polish the
presentation but this first step is useful in itself as
well as serving as a proof of concept.
@brainwane
Copy link
Contributor

I'd like to make my contextual help more helpful than an unstyled title element can be. For instance, in the NPI contextual help, I'd like to actually provide a clickable link to https://nppes.cms.hhs.gov/ .

So I am going to poke around a little and see if there is any existing tooling for providing contextual anything anywhere within the templates.

@brainwane
Copy link
Contributor

I did some searching and I can't find any existing tooling within the PSM for providing richer contextual help.

So here's my current plan:

  • For pure abbreviations, the <abbr> tag will probably be my go-to.
  • We're going to use plaintext for the contextual help for now.
  • I'll write a sample admin doc, which will be longer than a piece of embedded help would be, and then start on the Sphinx-and-RTD side of this issue.

@jasonaowen
Copy link
Contributor

An element like <details> would be awesome, but Internet Explorer doesn't support it.

If IE/Edge support is important, and we want to use <details>, we may be able to use a polyfill. There are several JavaScript libraries available on GitHub, although none of them seem like a clear winner to me.

For the sake of evaluating compatibility, we're currently using jquery-1.7.1.

@brainwane
Copy link
Contributor

I'm working on the assumption that the list of admin help topics I made in #195 (comment) is reasonable. I'm working on "Which enrollment information the provider or service agent can modify or delete, and which enrollment information the service admin can modify or delete" for now. (I recognize that the precise content there will change over time; I'm picking this topic because it's something I can test locally and it's for service admins.)

brainwane added a commit to brainwane/psm that referenced this issue Jul 28, 2017
This commit is related to SolutionGuidance#265 and SolutionGuidance#195. It includes a document
answering questions PSM system administrators will likely have,
`admin-help.rst`. It also includes some infrastructure for using
Sphinx to build the `.rst` file into an HTML file.

To test this:

$ pip install sphinx
$ psm-app/docs/userhelp/
$ make html

Then you should be able to see
`psm-app/docs/userhelp/build/html/admin-help.html` in your browser.
https://docs.readthedocs.io/en/latest/getting_started.html is a good
guide to how I'm using Sphinx here.

I anticipate revising this commit or adding a commit to wire the
Sphinx build process into our Gradle build process.
brainwane added a commit to brainwane/psm that referenced this issue Jul 28, 2017
This commit is related to SolutionGuidance#265 and SolutionGuidance#195. It includes a document
answering questions PSM system administrators will likely have,
`admin-help.rst`. It also includes some infrastructure for using
Sphinx to build the `.rst` file into an HTML file.

To test this:

$ pip install sphinx
$ psm-app/docs/userhelp/
$ make html

Then you should be able to see
`psm-app/docs/userhelp/build/html/admin-help.html` in your browser.
https://docs.readthedocs.io/en/latest/getting_started.html is a good
guide to how I'm using Sphinx here.

I anticipate revising this commit or adding a commit to wire the
Sphinx build process into our Gradle build process.
brainwane added a commit to brainwane/psm that referenced this issue Aug 2, 2017
This commit is related to SolutionGuidance#265 and SolutionGuidance#195. It includes a document
answering questions PSM system administrators will likely have,
`admin-help.rst`. It also includes some infrastructure for using
Sphinx to build the `.rst` file into an HTML file.

To test this:

$ pip install sphinx
$ psm-app/docs/userhelp/
$ make html

Then you should be able to see
`psm-app/docs/userhelp/build/html/admin-help.html` in your browser.
https://docs.readthedocs.io/en/latest/getting_started.html is a good
guide to how I'm using Sphinx here.

I anticipate revising this commit or adding a commit to wire the
Sphinx build process into our Gradle build process.
brainwane added a commit to brainwane/psm that referenced this issue Aug 2, 2017
This commit is related to SolutionGuidance#265 and SolutionGuidance#195. It includes a document
answering questions PSM system administrators will likely have,
`admin-help.rst`. It also includes some infrastructure for using
Sphinx to build the `.rst` file into an HTML file.

To test this:

$ pip install sphinx
$ psm-app/docs/userhelp/
$ make html

Then you should be able to see
`psm-app/docs/userhelp/build/html/admin-help.html` in your browser.
https://docs.readthedocs.io/en/latest/getting_started.html is a good
guide to how I'm using Sphinx here.

I anticipate that a next step will be wiring the
Sphinx build process into our Gradle build process.
brainwane added a commit to brainwane/psm that referenced this issue Aug 2, 2017
This commit is related to SolutionGuidance#265 and SolutionGuidance#195. It includes a document
answering questions PSM system administrators will likely have,
`admin-help.rst`. It also includes some infrastructure for using
Sphinx to build the `.rst` file into an HTML file.

To test this:

$ pip install sphinx
$ psm-app/docs/userhelp/
$ make html

Then you should be able to see
`psm-app/docs/userhelp/build/html/admin-help.html` in your browser.
https://docs.readthedocs.io/en/latest/getting_started.html is a good
guide to how I'm using Sphinx here.

I anticipate that a next step will be wiring the
Sphinx build process into our Gradle build process.
brainwane added a commit to brainwane/psm that referenced this issue Aug 2, 2017
This commit is related to SolutionGuidance#265 and SolutionGuidance#195. It includes a document
answering questions PSM system administrators will likely have,
`admin-help.rst`. It also includes some infrastructure for using
Sphinx to build the `.rst` file into an HTML file.

To test this:

$ pip install sphinx
$ psm-app/docs/userhelp/
$ make html

Then you should be able to see
`psm-app/docs/userhelp/build/html/admin-help.html` in your browser.
https://docs.readthedocs.io/en/latest/getting_started.html is a good
guide to how I'm using Sphinx here.

I anticipate that a next step will be wiring the
Sphinx build process into our Gradle build process.
brainwane added a commit to brainwane/psm that referenced this issue Aug 8, 2017
This documentation helps service and system administrators with common
questions about enrollments, the verification process, provider types,
agreements, and user privileges.

Relevant to SolutionGuidance#29 and SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 10, 2017
This documentation helps service and system administrators with common
questions about enrollments, the verification process, provider types,
agreements, and user privileges.

Relevant to SolutionGuidance#29 and SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 10, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds two versions (one in black and one in blue) of
the "Info" icon, CC BY 3.0 by Weltenraser , from
https://thenounproject.com/term/info/1017664/ .

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 10, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds two versions (one in black and one in blue) of
the "Info" icon, CC BY 3.0 by Weltenraser, from
https://thenounproject.com/term/info/1017664/ , and adds the license
to LICENSE.md.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 10, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds two versions (one in black and one in blue) of
the "Info" icon, CC BY 3.0 by Weltenraser, from
https://thenounproject.com/term/info/1017664/ , uses the icon in a
provider enrollment template, and adds the license to LICENSE.md.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 10, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds a blue version of the "Info" icon, CC BY 3.0 by
Weltenraser, from https://thenounproject.com/term/info/1017664/ , uses
the icon in a provider enrollment template, and adds the license to
LICENSE.md.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 15, 2017
This documentation helps service and system administrators with common
questions about enrollments, the verification process, provider types,
agreements, and user privileges.

Relevant to SolutionGuidance#29 and SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 15, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds a blue version of the "Info" icon, CC BY 3.0 by
Weltenraser, from https://thenounproject.com/term/info/1017664/ , uses
the icon in a provider enrollment template, and adds the license to
LICENSE.md. We also move the red asterisk for required fields to the
right of each field, to aid readability and reduce clutter.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 23, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds a blue version of the "Info" icon, CC BY 3.0 by
Weltenraser, from https://thenounproject.com/term/info/1017664/ , uses
the icon in a provider enrollment template, and adds the license to
LICENSE.md. We also move the red asterisk for required fields to the
right of each field, to aid readability and reduce clutter.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Aug 23, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds a blue version of the "Info" icon, CC BY 3.0 by
Weltenraser, from https://thenounproject.com/term/info/1017664/ , uses
the icon in a provider enrollment template, adds CSS to align it, and
adds the license to LICENSE.md. We also move the red asterisk for
required fields to the right of each field, to aid readability and
reduce clutter.

Relevant to SolutionGuidance#265.
@brainwane
Copy link
Contributor

I have just found a tooltip implementation in the PSM, in the organizational enrollment workflow, in psm-app/cms-web/WebContent/WEB-INF/pages/provider/enrollment/steps/pageTemplates/default/ownership_information.jsp, where there's a question mark character next to "Type" that, when clicked, causes a pop-up with definitions:

org-contextual-hint-question-mark
definitions-org-enrollment

brainwane added a commit to brainwane/psm that referenced this issue Sep 12, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds a blue version of the "Info" icon, CC BY 3.0 by
Weltenraser, from https://thenounproject.com/term/info/1017664/ , uses
the icon in a provider enrollment template, adds CSS to align it, and
adds the license to LICENSE.md. We also move the red asterisk for
required fields to the right of each field, to aid readability and
reduce clutter.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 12, 2017
The lower case i, surrounded by a circle, is a commonly understood
icon for "information" so users can hover over it to get contextual
help. This commit adds a blue version of the "Info" icon, CC BY 3.0 by
Weltenraser, from https://thenounproject.com/term/info/1017664/ , uses
the icon in a provider enrollment template, adds CSS to align it, and
adds the license to LICENSE.md. We also move the red asterisk for
required fields to the right of each field, to aid readability and
reduce clutter.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 12, 2017
This commit reuses the PSM's modal-related infrastructure to
provide users with an explanation of the NPI, available by
hovering over a question mark in the form. This requires a
modification of the CSS; "definitionsModal" ought to be a
class, not an ID.

We also move the red asterisk for required fields to the right
of each field, to aid readability and reduce clutter.

Thanks to Cecilia Donnelly for pair-programming.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 13, 2017
This commit reuses the PSM's modal-related infrastructure to
provide users with an explanation of the NPI, available by
hovering over a question mark in the form. This requires a
modification of the CSS; "definitionsModal" ought to be a
class, not an ID.

Thanks to Cecilia Donnelly for pair-programming.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 13, 2017
This commit reuses the PSM's modal-related infrastructure to
provide users with an explanation of the NPI, available by
hovering over a question mark in the form. This requires a
modification of the CSS; "definitionsModal" ought to be a
class, not an ID.

Thanks to Cecilia Donnelly for pair-programming.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 13, 2017
This commit reuses the PSM's modal-related infrastructure to
provide users with an explanation of the NPI, available by
hovering over a question mark in the form. This requires a
modification of the CSS; "definitionsModal" ought to be a
class, not an ID.

Thanks to Cecilia Donnelly for pair-programming.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 13, 2017
This commit reuses the PSM's modal-related infrastructure to
provide users with an explanation of the NPI, available by
hovering over a question mark in the form. This requires a
modification of the CSS; "definitionsModal" ought to be a
class, not an ID.

Thanks to Cecilia Donnelly for pair-programming.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 14, 2017
This commit reuses the PSM's modal-related infrastructure to
provide users with an explanation of the NPI, available by
hovering over a question mark in the form. This requires a
modification of the CSS; "definitionsModal" ought to be a
class, not an ID.

Thanks to Cecilia Donnelly for pair-programming.

Relevant to SolutionGuidance#265.
brainwane added a commit to brainwane/psm that referenced this issue Sep 14, 2017
This commit reuses the PSM's modal-related infrastructure to provide
users with an explanation of the NPI, available by hovering over a
question mark in the form. This requires a modification of the CSS;
"definitionsModal" ought to be a class, not an ID. This also replaces
an old, flat NPI explanation with a richer (HTML) one.

Thanks to Cecilia Donnelly for pair-programming.

Fixes SolutionGuidance#265.
@kfogel kfogel added the REQ-1 label Feb 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants
@kfogel @brainwane @jasonaowen @cecilia-donnelly @BenGalewsky and others