wishlist: Angular Link Checker Interface

Bug #1993824 reported by Andrea Neiman
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Wishlist
Unassigned

Bug Description

This work is sponsored by King County Library System and developed by Equinox.

We will be reimplementing the Admin Link Checker interface in Angular, according to the specification here:

https://yeti.equinoxoli.org/dev/public/techspecs/link_checker.pdf

Changed in evergreen:
assignee: nobody → Jason Etheridge (phasefx)
Revision history for this message
Jason Etheridge (phasefx) wrote :

Pullrequest branch: collab/phasefx/lp1993824_linkchecker_rebased
Messy but more granular commits for those interested at: collab/phasefx/lp1993824_linkchecker_wip

tags: added: pullrequest
Changed in evergreen:
assignee: Jason Etheridge (phasefx) → nobody
Revision history for this message
Andrea Neiman (aneiman) wrote :
Changed in evergreen:
milestone: none → 3.12-beta
status: New → Confirmed
Revision history for this message
Jane Sandberg (sandbergja) wrote :

Thanks, Jason! It looks and works well! I have three UI suggestions:

* The ability to save grid filters is nice! My suggestion is to make it clearer that the "Manage Filters" button is to manage *grid* filters. My first thought when seeing the button was that it was for filtering the bib record search, or for filtering URLs somehow. Perhaps it could live in the Grid options menu, or just be called "Manage Grid Filters".
* The statistical information (URLs extracted and URLs verified) that displays in the alert is useful, but there's no to get back to it once you've clicked "OK". It would be nice to just have that information available any time you navigate to the attempts screen.
* It would be helpful for the attempts and URLs screens to have a way to get back to the main link checker screen.

Also, I noticed there are a number of console.logs left in the code.

In case it is useful, here is a rebased branch: user/sandbergja/lp1993824_linkchecker_rebased-again

Revision history for this message
Bill Erickson (berick) wrote :

Did a quick pass. Looking really good to me.

In addition Jane's comments:

* The progress dialog would be much more useful if it reported progress instead of being indeterminate.
* There's a TODO to replace a window.alert().
* Love the use of $localize.. I'm curious if it works with string concat vs. templated `here is a ${string} that translates`
* Some of the console.logs have TODOs to be replaced with toasts.
* If you create a session without verifying up front, is there a way to verify the entire batch instead of going page by page?
* Would be handy if the Redirected To column showed or linked to something useful.

Revision history for this message
Jason Etheridge (phasefx) wrote :

* The ability to save grid filters is nice! My suggestion is to make it clearer that the "Manage Filters" button is to manage *grid* filters. My first thought when seeing the button was that it was for filtering the bib record search, or for filtering URLs somehow. Perhaps it could live in the Grid options menu, or just be called "Manage Grid Filters".

Hrmm, the main reason it is there is because the Remove Filters action lives there normally. I didn't want to disrupt anyone's spatial memory. But a label change sounds good. We should probably relabel the normal Remove Filters as well, but maybe in a new bug.

Changed in evergreen:
assignee: nobody → Jason Etheridge (phasefx)
Revision history for this message
Andrea Neiman (aneiman) wrote :

This will also resolve (or at least partially resolve) the following Link Checker bugs:

- bug 1995132, Link Checker: Record ID Link does not work
- bug 1200634, Link Checker lacks the ability to modify and delete link checker sessions
- bug 1237100, Link Checker download CSV fails for large sets

Revision history for this message
Jason Etheridge (phasefx) wrote :
Download full text (3.9 KiB)

* The ability to save grid filters is nice! My suggestion is to make it clearer that the "Manage Filters" button is to manage *grid* filters. My first thought when seeing the button was that it was for filtering the bib record search, or for filtering URLs somehow. Perhaps it could live in the Grid options menu, or just be called "Manage Grid Filters".

This now matches the suggested label.

* The statistical information (URLs extracted and URLs verified) that displays in the alert is useful, but there's no to get back to it once you've clicked "OK". It would be nice to just have that information available any time you navigate to the attempts screen.

Hrmm, okay, it's not persistent, but instead of window.alert, I'm pushing the string to the invoked interface via route parameters for display.

* It would be helpful for the attempts and URLs screens to have a way to get back to the main link checker screen.

This used to be a peeve of mine (people just not using browser navigation), but these days I see a benefit for this from an accessibility point of view, in that it can reduce a cognitive burden of remembering or figuring out the navigation history. Moreso if we include the title of the previous interface in the link. We have instances of that with hard-coded links, and we have admin page subpages using a Return button.

For now, I added an <eg-back-button></eg-back-button> component that any developer can use, and maybe later we can give it an option to display the title of the page it would take you back to, or just make that change without an option.

* In case it is useful, here is a rebased branch: user/sandbergja/lp1993824_linkchecker_rebased-again

Thanks! I saw it too late, and even made a mistake with my first rebase attempt. 😀

* The progress dialog would be much more useful if it reported progress instead of being indeterminate.

Agreed. Not a showstopper, though, yeah? Somehow these things become rabbit holes for me.

* There's a TODO to replace a window.alert().

I'm actually coming around to window.alert now that we have $localize, but the hobgoblins do beckon.

* Love the use of $localize.. I'm curious if it works with string concat vs. templated `here is a ${string} that translates`

I think the string interpolation would be better.

window.alert(
    $localize`Session ID = ${res['sessionId']}\n
    Title Hits = ${res['number_of_hits']}\n
    URLs Extracted = ${res['urls_extracted']}\n
    URLs Verified = ${res['verified_total_processed']}\n`
);

In my head, I was remembering the pain from $localize not fully supporting the ICU message format, and melding it with the OPAC's "l" function as if in some fever dream. So I thought restricting the translators to a label/value construct would be a minor sin compared to some of the things I've seen in Evergreen, like entire widgets breaking up translatable strings. 😀

But as I jump around between yours and Jane's bullet points, I now find us not having a modal popup at all for this information. I think that works.

* Some of the console.logs have TODOs to be replaced with toasts.

I came to the conclusion later that toasts are not very accessible, even for people who can see them a...

Read more...

Changed in evergreen:
assignee: Jason Etheridge (phasefx) → nobody
tags: added: signedoff
Revision history for this message
Jane Sandberg (sandbergja) wrote :

Thanks, Jason! It looks great! Signoff at user/sandbergja/lp1993824_linkchecker_signoff.

This time around, I did notice a question in 950.data.seed-values.sql: "Do we need to distribute these changes? (workstation setting types to that one big INSERT, table changes made without using ALTER, etc.)". I personally don't have a strong preference regarding the workstation settings, but I think the table changes would be more at home in 075.schema.url_verify.sql. That would be nice to change before this gets merged, but not a showstopper.

Revision history for this message
Bill Erickson (berick) wrote :

Agreed schema changes should be moved to the source table definitions. I'll take a quick stab at that.

Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
Revision history for this message
Bill Erickson (berick) wrote :

Branch w/ the schema changes moved out of seed data file. An extra eye on those appreciated.

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/berick/lp1993824-ang-link-checker

Changed in evergreen:
assignee: Bill Erickson (berick) → nobody
Revision history for this message
Ruth Frasur Davis (redavis) wrote :

I did test this, and it appears to work as I'd expect with the additional considerations from Jane, Bill, and Jason. I'm not sure I feel confident to add my sign off based on not knowing if I need to be testing something other than the actual interface(s).

Changed in evergreen:
assignee: nobody → Terran McCanna (tmccanna)
Revision history for this message
Jane Sandberg (sandbergja) wrote :

I tested both the seed data and the upgrade script -- both worked well, including deleting rows in the various tables.

Revision history for this message
Terran McCanna (tmccanna) wrote :

Reviewed during a release team meeting, too - this is a vast improvement on the old interface!

Fix committed to main for inclusion in 3.12.

Changed in evergreen:
status: Confirmed → Fix Committed
assignee: Terran McCanna (tmccanna) → nobody
Changed in evergreen:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.