GithubHelp home page GithubHelp logo

nasa-pds / doi-ui Goto Github PK

View Code? Open in Web Editor NEW
0.0 9.0 4.0 6.76 MB

The web interface for the PDS DOI Service providing the ability management PDS archive DOIs. See the DOI Service for more details on the available capabilities. https://nasa-pds.github.io/doi-service/

License: Apache License 2.0

HTML 0.31% CSS 2.37% JavaScript 97.02% PHP 0.30%
nasa doi nasa-pds pds

doi-ui's Introduction

pds-doi-ui

Front-end interface for pds-doi-service

An example for the reservation excel input file can be found at https://pds-engineering.jpl.nasa.gov/user/login?destination=node/691

Pre-requisites

Install the pds-doi-service:

pip install pds-doi-service
pds-doi-api

See https://nasa-pds.github.io/doi-service/ for details

Node Installation

The doi-ui app relies on a specific version of NodeJS. Ensure the NodeJS version specified in the .nvmrc file, located at the root of the repository is installed.

We recommend the use of the Node Version Manager (nvm) to easily facilitate the installation and switching between node versions. After following the nvm installation instructions and navigating to the location this repo is cloned on your machine, you can use the following commands to manage the version of node used for this project:

Install the node version specified in .nvmrc if it isn't already installed

nvm install

Switch to the node version specified in .nvmrc for all commands in the current shell window

nvm use

To Run And Build Locally

Run npm install

This will install all necessary dependencies.

Change API Locations In The Config File

The config file is located at: public/config.js It contains the necessary HTTP request URLs for the application to function correctly. These must be changed to point to your deployed backend server.

Update the Authentication Related Configurations

You can set these configurations also in the public/config.js. Make sure to use correct URL paths to match with your environment. You may check with the system admins to get the Amazon Cognito related values.

window['getGlobalConfig'] = {
    api: 'http://localhost:8080/PDS_APIs/pds_doi_api/0.2/',
    oauth_client_id: '<CLIENT ID OF COGNITO APP CLIENT>',
    oauth_redirect_uri: 'http://localhost:3000',
    oauth_logout_endpoint: 'https://<COGNITO DOMAIN NAME>.auth.us-west-2.amazoncognito.com/logout',
    oauth_provider_url: 'https://<COGNITO DOMAIN NAME>.auth.us-west-2.amazoncognito.com/oauth2',
    app_viewer_group_name: 'PDS_Viewer',
    app_admin_group_name: 'PDS_Admin',
}

Run npm start

Runs the app in development mode.
Open http://localhost:3000 to view it in the browser.

Run npm run build

Builds the app into deployable files in the /build directory. These files can be put into any server to run the app.

Create a release

git tag <version>
git push --tags
npm run build
mv build pds-doi-ui-<version>
zip -r pds-doi-ui.zip pds-doi-ui-<version>

Upload the zip file in the release of the tag in github

For Administrator

Deploying A Stable Release

Clone Build Files

git clone https://github.com/NASA-PDS/pds-doi-ui.git
cd pds-doi-ui
git checkout <TAG VERSION>
npm install -g serve
serve -s build

Run from build archive

From the github release page https://github.com/NASA-PDS/pds-doi-ui/releases/

Select the latest version and download the zip file in assets pds-doi-ui.zip

Unzip and start a standalone server

serve -s pds-doi-ui

The unzipped directory can also be configured to be published by an apache or nginx server.

Troubleshooting: a serve command is also available in anaconda, be careful not to use it instead of the npm serve.

SSH Tunnel to DOI Service

ssh -L 8085:localhost:8080 <machine>

doi-ui's People

Contributors

acraugh avatar alexdunnjpl avatar anilnatha avatar c-suh avatar dependabot[bot] avatar eddiesarevalo avatar jordanpadams avatar lylebarner avatar nutjob4life avatar pdsen-ci avatar ramesh-maddegoda avatar tloubrieu-jpl avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doi-ui's Issues

As a user, I want to acquire a DOI for a PDS4 product that has been registered and is publicly accessible

Motivation

...so that I can get a DOI for a PDS4 product after it has already been publicly released.

The PDS Policy describes that the PDS "should" acquire DOIs prior to peer review. However, some scenarios will call for DOIs after the fact (e.g. DOIs for already existing User Guides or other documentation where a DOI was not foreseen as being needed prior to peer review).

Additional Details

Acceptance Criteria

Given an PDS4 product that has been registered, a landing page exists, and the data is available publicly online
When I perform a request to get a new DOI
Then I expect to be prompted to "release a new DOI"
Then I expect to be prompted to input the expected metadata to release a DOI
Then I expect to submit the required metadata to the DOI service (https://pds-imaging.jpl.nasa.gov/data/nsyt/insight_cameras/bundle_7.0.xml)
Then I expect to receive a notification as to the status of the request
Then I expect a DOI to be displayed, or information on how I will receive that DOI
Then I expect the information I entered to be saved in a draft state until it is released

Given an PDS4 product that has not been registered, a landing page does not exist, or the data is not publicly accessible
When I perform a request to get a DOI
Then I expect to be prompted to "release a new DOI"
Then I expect to be prompted to input the expected metadata to release a DOI (https://pds-gamma.jpl.nasa.gov/data/pds4/test-data/registry/doi/bundle_doi_test.xml)
Then I expect to submit the required metadata to the DOI service
Then I expect to receive a prompt that the DOI request has failed do to the lack of landing page / public accessibility of the data.
Then I expect the information I entered to be saved in a draft state until it is released

Engineering Details

Related Requirements

🦄 NASA-PDS/doi-service#7

navigation issue when using the app bar

🐛 Describe the bug

The browser's back button does not work after going to a discipline node site.

📜 To Reproduce

Steps to reproduce the behavior:
See video

Screen.Recording.2021-07-13.at.9.49.14.AM.mov

🕵️ Expected behavior

The doi ui page should work or display a specific error message with redirection to a working page.

📚 Version of Software Used

branch routing_fixes

🩺 Test Data / Additional context

🏞Screenshots

🖥 System Info

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

** 🦄 Applicable requirements**

Add Unified Astronomy Thesaurus Autocomplete Widget for DOI Keywords

Autocomplete widget is here: http://astrothesaurus.org/thesaurus/autocomplete-widget/

Right now, DOI Service provides some basic subset of keywords, but using the UAT is probably a better method for ensuring we use a more consistent vocabulary across DOIs.

I imagine we would want to allow the autocomplete, but also allow for custom keywords, we can then, eventually, go back through these custom keywords and look to submit those back to UAT.

If the implementation is not straightfoward, we may want to punt this. But I imagine if we don't do this now, we never will...

As a user, I want to have a dedicated favicon for the service

Motivation

...so that I identify the application in my tabs.

Additional Details

Currently the favicon is the default react icon.

The icon to be used need to be identified (pds ?).

Acceptance Criteria

Given a DOI UI service deployment
When I perform a request on it in the browser
Then I expect to see an dedicated icon in my browser tab

Engineering Details

As a user, I want the button to be "submit for review" when I am ready to submit my DOI for release

Motivation

...so that it is consistent in the UI, and tells what actually is hapening.

Additional Details

The button label is still "Release" when we click release on an existing DOI

image

Acceptance Criteria

When I perform Release from an existing record
Then I expect the button label is "submit for reiview"

When I perform Release from a new record
Then I expect the button label is "submit for reiview"

Engineering Details

Enable force warning

Wherever an error is expected from the API, the user should be able to force it with a checkbox 'ignore warnings'.

Acceptance criteria
When reserve input generates a warning
Then: the warning can be forced

When: pds4 label url input generates a warning
Then: the warning can be forced

When OSTI DOI record save generates a warning
Then: the warning can be forced

When OSTI DOI record submit generates a warning
Then: the warning can be forced

I can not draft a doi which has been reserved

🐛 Describe the bug

When I select a reserved DOI and click on RELEASE, then SAVE, I have an error "JSON requestBody provided for draft POST request. Body must be an XML PDS4/OSTI label."

This used to work and the API still work for me equivalent test case.

📜 To Reproduce

  1. select a reserved DOI and click on RELEASE,
  2. then SAVE,
  3. I have an error "JSON requestBody provided for draft POST request. Body must be an XML PDS4/OSTI label."

🕵️ Expected behavior

The DOI should be saved as draft

📚 Version of Software Used

Latest on master

🩺 Test Data / Additional context

I believe this is because of the request HEADER content-type, this is application/json, and this should be application/xml or text/plain so that the API recognize the submitted format.

As a user, I want to see the error/warnings messages on the same page from where they were raised

The user will need to compare the error message with the actual data he has edited to understand better what need to be changed.

This is applicable to reserver, release/save and release/release actions.

While having the error/warning message on the form screen (reserve or release), we'll be careful to 2 things:

  • not to move the preexisting widget in the screen because of the new message (eg on release/Save, now the SAVE,RELEASE buttons are pushed down when an error message appears)
  • that the error message is clearly visible when it appear (e.g. not to have it on top of the screen while the user have scrolled down the screen to click on the button)

Display errors and warning when user clicks "save" on the release screen

As a user, I want to see the validation error message when I save a DOI record, before its release.

This should work the same as for reserve and release buttons.

Acceptance criteria:
Given a DOI OSTI record contains errors or warning (e.g. a duplicated title compared to one DOI already registered)
When the user saves it in the release screen
Then: the errors and warning message are shown to the user and help him to resolve them.

As a user, I want my search criteria to persist in the URL

Motivation

...so that I can easily share or come back to a specific DOI search.

Additional Details

Acceptance Criteria

Given a deployed DOI service with data ingested
When I perform a search for a DOI like *insight*
Then I expect the URL to include the API query parameters

Engineering Details

Follow on to #52

Update Release and Update DOI pages to follow similar design as Create DOI page

Release DOI

When I click on the release button for urn:nasa:pds:insight_hp3_tem:

Screen Shot 2021-06-02 at 10 19 57 AM

what I would like to see is something that looks very similar to the create DOI page.

Screen Shot 2021-06-02 at 10 27 42 AM

If they select Yes:

Screen Shot 2021-06-02 at 10 21 59 AM

If they select No, display the following text in a red error box:

The data must registered with PDS Engineering Node and made publicly available prior to the release of the DOI. See FAQs for more information.


Update DOI

Same interface as Release DOI.

Error need to be catched when one draft a pds4 label from the url

For example when one request this on the API:
{{baseUrl}}/dois?action=draft&submitter=&node=atm&url=https://pds-geosciences.wustl.edu/insight/urn-nasa-pds-insight_seis/bundle_insight_seis.xml

By using label url https://pds-geosciences.wustl.edu/insight/urn-nasa-pds-insight_seis/bundle_insight_seis.xml which has already been submitted.

The user should be able to see the error message coming back from the API.

He should be able to force it or submit a different url.

Acceptance criteria:
Given a pds4 label with warning (e.g. duplicated title with existing DOI)
When the DOI is release from this url
Then: a warning message is shown to the user
And: the user can force the warning and save and submit the DOI to engineering node.

PDS Label url should take a public URL

The input PDS4 Label should take a pds4 label online, for example https://pds-imaging.jpl.nasa.gov/data/nsyt/insight_cameras/data/collection_data.xml

Then call the API with method http://localhost:8085/PDS_APIs/pds_doi_api/0.1/ui/#/dois/post_dois with action=draft

This will send back the doi record to be shown in the edition form.

Acceptance criteria:
Given a public url of a PDS4 label
When the user use the release form to create a new DOI
Then: he can use the PDS4 label url as an input
And: the PDS4 label can be converted and saved as an OSTI DOI label

unable to release a doi created with command line in doi-ui

🐛 Describe the bug

image

📜 To Reproduce

Steps to reproduce the behavior:

  1. pds-doi-cmd reserve -n eng -i doi5.csv -s "[email protected]"
  2. pds-doi-cmd draft -n eng -i doi5.bundle.xml -s "[email protected]" > doi5.draft.xml
  3. add doi id from step 1 to doi5.draft.xml
  4. pds-doi-cmd release -n eng -i doi5.draft.xml -s "[email protected]" > doi5.release.xml

🕵️ Expected behavior

should be able to click on release button on the doi-ui's search result page, and the release page should show up correctly.

📚 Version of Software Used

🩺 Test Data / Additional context

🏞Screenshots

🖥 System Info

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

** 🦄 Applicable requirements**

Enhancements per initial implementation of mockups

Here some updates to be implemented to the initial dev completed for #44

  • Change “Get URL” to “Upload Label”
  • Add "Upload Label" button next to text box
  • "Save" and "Submit for Review" buttons side-by-side
  • Add DOI(s) returned from Reserve step to output message
  • Update API requests per latest changes to https://miro.com/app/board/o9J_lF_ReJo=/
    • Save button -> POST /dois with action=draft
    • Submit for Review button -> POST /dois with action=draft AND POST /dois/{lidvid}/submit to submit for review
  • Update "Nodes" dropdown to be "Node" (the dropdown contains all the nodes, but the user is inputting their Node)

As a user, I want to acquire a DOI for a PDS4 product prior to it's public release of the data

Motivation

...so that I can get a DOI and add it to the product metadata prior registering and releasing the data.

Per PDS Policy, DOIs should be reserved prior to peer review, where possible.

Additional Details

Acceptance Criteria

Given a draft PDS4 product, I want to get a DOI for the product prior to peer review
When I perform a request to get a DOI for data that is not yet publicly available
Then I expect the interface to prompt the user to "Create a DOI for non publicly available product"
Then I expect the interface to prompt the user to input the expected metadata to reserve a DOI
Then I expect to submit the required metadata to the DOI service DOI_Reserved_DEMO.csv
Then I expect to receive a prompt as to whether or not the submissions was successful
Then I expect to receive a prompt with the newly acquired DOI or information on how I will receive that information

Engineering Details

From a more technical perspective, this is the "Reserve" step of the DOI workflow

Reserve - the state of acquiring a DOI when the data is not yet publicly accessible / released.

Inputs:

  • LIDVID for the PDS4 product(s)
  • product type (PDS4 Collection, PDS4 Bundle, PDS4 Document)
  • applicable node
  • contact person email address

Outputs:

  • success or failure information
  • DOI for product

Related Requirements

🦄 NASA-PDS/doi-service#6
🦄 NASA-PDS/doi-service#171

Issue with displaying the content of an uploaded file after multiple selections

🐛 Describe the bug

When the user reserve a DOI and chose a file to upload, and then update the file and re-upload it by reclicking on choose file, the display of the content of the file is not updated.

📜 To Reproduce

Steps to reproduce the behavior:

  1. Go to http://localhost:3000/create
  2. Click on Has the data been registered and made publicly available? NO
  3. choose a file and load it in the form (see compressed test dataset)
  4. update locally the chosen file
  5. choose a file again
    The displayed content of the file is not updated.

🕵️ Expected behavior

The content displayed in the form should be updated as well as the content sent to the API back-end.

📚 Version of Software Used

origin/route-fixes, commit 4c59199

🩺 Test Data / Additional context

DOI_Reserved_DEMO.csv.zip

🏞Screenshots

🖥 System Info

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

** 🦄 Applicable requirements**

Update to DOI UI code per pull request #51 comments

From @eddiesarevalo :

It is looking good. Just a couple of things if possible before we merge to main branch.

  • Remove the commented code. If it isn't going to be used we should delete it to avoid confusion and clutter in the future.

  • Stick to Material-UI's style solution for consistency. Instead of using the global CSS file use make styles

  • Extend this component to fill out the page so that the page won't have a double scroll. It seems a bit awkward to have double scrolls when its not necessary.

Screen Shot 2021-06-01 at 11 29 59 AM

As a user, I want to search for a DOI and associated metadata by LID/LIDVID

...so i can use the DOI in a citation or trace back from a DOI to an associated bundle, collection, or product LID/LIDVID

Details

Web page that displays all available DOIs in the PDS.

NOTE: As much as possible, let's try to replicate the search functionality implemented in the DOI UI.

Initial State

This page should appear as the landing page for the DOI UI. From this page, it should display a table of all PDS DOIs, ordered by latest update date.

Screen Shot 2021-03-22 at 5.40.23 PM.png

Search

Here is a quick wireframe of what I am thinking about the UI layout. This will go at https://pds.nasa.gov/datastandards/citing/doi .

Screen Shot 2021-03-22 at 5.41.38 PM.png

Additionally, it should provide a basic search capability where a user can:

  1. (this ticket) enter a LID/LIDVID and get the results associated DOI metadata
  2. (see #33) enter a DOI and get the resulting associated DOI metadata

The LID or LIDVID can come in several forms:

  • bundle LID / LIDVID - urn:nasa:pds:<bundle_id>
  • collection LID / LIDVID - urn:nasa:pds:<bundle_id>:<collection_id>
  • product LID / LIDVID (for documents) - urn:nasa:pds:<bundle_id>:<collection_id>:<product_id>
  • LIDVID - `LID::<version_id>

See DOI UI for how this is being handled over there for querying the the service.

Here is some logic for what I think needs to happen for the search:

For primary results at the top

if search by DOI / LID/ LIDVID not found:
    display "Exact match not found", and move onto related DOI section

For related DOI metadata (should include related DOIs even if an exact match is found):

if search by product LID / LIDVID `urn:nasa:pds:<bundle_id>:<collection_id>:<product_id>` not found:
    search for the parent collection DOI by removing the `<product_id>` from the LID/LIDVID: `urn:nasa:pds:<bundle_id>:<collection_id>`

if search by collection LID / LIDVID `urn:nasa:pds:<bundle_id>:<collection_id>` not found:
    search for the parent bundle DOI by removing the `<collection_id>` from the LID/LIDVID: `urn:nasa:pds:<bundle_id>`

if search by bundle LID / LIDVID not found: # currently wildcards are unsupported by API
    search for all child collections with `urn:nasa:pds:<bundle_id>:*` 

Technical Info

How to connect to the validation API:

ssh -L 8085:localhost:8080 pds-dev3

See http://localhost:8085/PDS_APIs/pds_doi_api/0.1/ui/

Return API error message in UI

How to create a test case: send multiple time the same reserve request.

In curl:

curl --location --request POST 'http://localhost:8080/PDS_APIs/pds_doi_api/0.1/dois?action=reserve&[email protected]&node=eng'
--header 'Content-Type: application/json'
--data-raw '{"labels":[{"status":"Reserved","title":"Laboratory Shocked Feldspars Bundle","publication_date":"2020-03-11","product_type_specific":"PDS4 Collection","author_last_name":"Johnson","author_first_name":"J. R.","related_resource":"urn:nasa:pds:lab_shocked_feldspars"}]}

The second time an error 400 is sent back with message:
{
"errors": [
{
"message": "The title: 'Laboratory Shocked Feldspars Bundle' has already been used for a DOI by lidvid(s):urn:nasa:pds:lab_shocked_feldspars::None, status: reserved_not_submitted, doi: ,None . You must use a different title.",
"name": "WarningDOIException"
}
]
}

The errors need to be shown in the UI.

Acceptance criteria:
When an invalidate file is submitted for reservation
Then: the error message is displayed in the UI and helps the user to correct the error

When an invalid PDS4 label is used for draft
Then the error message is displayed in the UI and helps the user to correct the error.

When an invalid OSTI record is submitted for review (ie released to Engineering Node)
Then the error message is displayed in the UI and helps the user to correct the error.

As a user, I want to search for a PDS identifier and associated metadata by DOI

...so i can use the DOI in a citation or trace back from a DOI to an associated bundle, collection, or product LID/LIDVID

Details

Web page that displays all available DOIs in the PDS.

NOTE: As much as possible, let's try to replicate the search functionality implemented in the DOI UI.

UI

Here is a quick wireframe of what I am thinking about the UI layout. This will go at https://pds.nasa.gov/datastandards/citing/doi .
Screen Shot 2021-03-11 at 6.23.44 PM.png

Search Functionality

Additionally, it should provide a basic search capability where a user can:

  1. enter a DOI and get the resulting associated DOI metadata
  2. enter a LID/LIDVID and get the results associated DOI metadata

The LID or LIDVID can come in several forms:

  • bundle LID / LIDVID - urn:nasa:pds:<bundle_id>
  • collection LID / LIDVID - urn:nasa:pds:<bundle_id>:<collection_id>
  • product LID / LIDVID (for documents) - urn:nasa:pds:<bundle_id>:<product_id>

See DOI UI for how this is being handled over there for querying the the service.

Here is some logic for what I think needs to happen for the search:

For primary results at the top

if search by DOI / LID/ LIDVID not found:
    display "Exact match not found", and move onto related DOI section

For related DOI metadata (should include related DOIs even if an exact match is found):

if search by product LID / LIDVID `urn:nasa:pds:<bundle_id>:<collection_id>:<product_id>` not found:
    search for the parent collection DOI by removing the `<product_id>` from the LID/LIDVID: `urn:nasa:pds:<bundle_id>:<collection_id>`

if search by collection LID / LIDVID `urn:nasa:pds:<bundle_id>:<collection_id>` not found:
    search for the parent bundle DOI by removing the `<collection_id>` from the LID/LIDVID: `urn:nasa:pds:<bundle_id>`

if search by bundle LID / LIDVID not found:
    search for all child collections with `urn:nasa:pds:<bundle_id>:*`  # not sure if wildcards are possible through API

Technical Info

How to connect to the validation API:

ssh -L 8085:localhost:8080 pds-dev3

See http://localhost:8085/PDS_APIs/pds_doi_api/0.1/ui/

Dependent upon #25

Remove dead comment code from SearchResults.jsx

🐛 Describe the bug

There's a chunk of code in SearchResults.jsx (lines 187-279) which is mostly comments. Either the commented out part can be deleted or those lines can be replaced with null.

As an administrator, I want to deploy the ui from a release and be able to change the back-end API urls

Motivation

...so that I can actually use the release package

Additional Details

The js files are minified and it is not easily editable.

Acceptance Criteria

Given a release package, e.g. https://github.com/NASA-PDS/pds-doi-ui/releases/tag/v0.3.0
When I perform the deployment procedure, see https://github.com/NASA-PDS/pds-doi-ui/releases/tag/v0.3.0
Then I expect to be able to edit a configuration file where I can set the back-end API url in a single string

Engineering Details

As a SA, I don't want security vulnerabilities in the public UI

When we npm install the UI, we was some warning on vulnerabilities, see

$ npm install

[email protected] postinstall /data/home/pds4/pds-doi-ui/node_modules/babel-runtime/node_modules/core-js
node -e "try{require('./postinstall')}catch(e){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:

https://opencollective.com/core-js
https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

[email protected] postinstall /data/home/pds4/pds-doi-ui/node_modules/core-js
node -e "try{require('./postinstall')}catch(e){}"

[email protected] postinstall /data/home/pds4/pds-doi-ui/node_modules/core-js-pure
node -e "try{require('./postinstall')}catch(e){}"

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/webpack-dev-server/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/watchpack-chokidar2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/jest-haste-map/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 1691 packages from 810 contributors and audited 1699 packages in 32.942s

76 packages are looking for funding
run npm fund for details

found 6 vulnerabilities (1 low, 2 moderate, 3 high)
run npm audit fix to fix them, or npm audit for details

Enable save draft before submission

when the DOI is released it creates a 500 error. What we should have is:

The dois data is sent in a post in the body of the request http://localhost:8085/PDS_APIs/pds_doi_api/0.1/ui/#/dois/post_dois which will be updated to accept doi osti format for drafts.

Develop Web UI for DOI service

provide a web UI for the doi service so that eventually a user in a discipline node can submit a doi on its own with less manual contribution from Engineering Node operator.

Document the security requirements for operational installation of the DOI UI

The UI form for release when the button release is clicked will do:

  • call the API /dois//submit
  • an information message will say: "Your DOI has been submitted to Engineering Node. You will be notified if the DOI can be released or if updates are required."

The end point /dois//release will never be called by the UI

Acceptance criteria:

  1. A user of the DOI UI can not release a DOI to OSTI without a review from the Engineering node operator.
  2. The engineering node operator can be review the DOi which are submitted by the discipline node and release them or enable nodes to update them.

Implement URL handling to reflect "pages"

Update web pages to include URLs to enable some basic state for the webpages

Acceptance Critieria

  • Able to use a static URL to return to a page in the workflow (does not need to be super robust, does not have to be mid-action)
  • Use navigation buttons forward / backward (does not need to be super robust)

Add additional help information throughout DOI UI

Add info (something like ℹ️ ) icons on following pages / sections with the following text:

  • Keywords text box - These keywords may be used to enable future discovery of these datasets. The auto-complete values are populated by the Unified Astronomy Thesaurus. Additional custom keywords may also be entered.

    • while updating that, also update to have text completion lineup with the cursor in the text box
  • On Create DOI page, below "Ignore Warnings" checkbox, add text "Questions about process or information requested? See FAQs or contact the PDS Operator for assistance." For the FAQ page and email address, let's make sure we add the applicable icons to indicate they will be leaving the interface, and open in a new window.

As an administrator, I want to deploy a stable version of the application from a package in production environment

Motivation

...so that I don't need to build the application and the application is ready for production deployment.

Additional Details

Can follow a tutorial like this one https://medium.com/bb-tutorials-and-thoughts/packaging-your-react-app-with-nodejs-backend-for-production-7ddae2b84f1b
Or using previous experience in the domain.

Acceptance Criteria

Given
When I perform
Then I expect

Engineering Details

Improve Search UI behavior to only show results when search button is selected

🐛 Describe the bug

  1. Search behavior: IIRC, the latest decision regarding the default view for the Search page is that it's not supposed to display any results until the search button (or enter from the search bar) is entered.
  2. Search behavior: clicking the 'X' in the search bar to clear the search - should this clear the results as well as the text in the search bar?

Prevent the discipline node for doing DOI release without a ENG node review

The UI form for release when the button release it clicked will do:
call the API:

  1. POST /dois?action=draft
  2. /dois/{lidvid/submit
    an information message will say: "Your DOI has been submitted to Engineering Node. You will be notified if the DOI can be released or if updates are required."

Note, when save is clicked we only do step 1)

The end point /dois/{lidvid}/release will never be called by the UI (it is de-activated)

Acceptance criteria:
When the user release the DOI in the UI
Then the DOI is switch to review status. It is not submitted to OSTI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.