mashlib icon indicating copy to clipboard operation
mashlib copied to clipboard

Issues with databrowser as deployed for testing on dev.inrupt.net

Open timbl opened this issue 4 years ago • 24 comments

Here is a quick place to put bugs -- or improvements to the UX -- or ideas for teh moment in one issue, later to be fixed or created as speciic bugs in the repo(s) concerned

timbl avatar Aug 06 '19 22:08 timbl

Synchronousing login UI across all panes

🐞 I had a nifty way of closing all the Log in/Sign up buttons --- they all had the same html class .. so I could get them all in one line findEElementsByClass. Then each one had a element.refresh() function which wiould be called to change the UI to (typically) enable input. timbl:speech_balloon: 6:31 PM I have seen it work, and then also see it niot work. Maybe a problem with JS scopes not being able to affect DOM made by other scopes? WHo knows. But each pane is designed to get its login status either locally or globally to the dom

timbl avatar Aug 06 '19 22:08 timbl

User profile editor

🐞Give defaults (white, and black or Solid Lavender?) for colors.

🐞Fix form labels for highlight color as well as background color

🐞Bogus ⚠️ Your profile https://timbl.solid.community/profile/card is not editable, so we cannot do much here. It is editable!

timbl avatar Aug 06 '19 22:08 timbl

Public profile pane does not work. No background colors etc.

timbl avatar Aug 06 '19 22:08 timbl

Workflow 1 - Sign Up for Solid

  1. Created a new Pod (e.g., https://khoward5.dev.inrupt.net/)
  2. Goto the WebID for the new Pod (e.g., https://khoward5.dev.inrupt.net/)
  3. New Home Page is displayed.
  4. Click “Sign Up for Solid” button.
  5. Redirected to https://solid.github.io/solid-idps.
    • In the list of displayed servers, going to Solidtest.space looks like a hacked website.
    • Why not redirect to the registration page for the Pod Server you are on (e.g., https://dev.inrupt.net/register?)?

brownhoward avatar Aug 06 '19 23:08 brownhoward

Workflow 2 - Not Logged In

  1. Created a new Pod (e.g., https://khoward5.dev.inrupt.net/)
  2. Goto the WebID for the new Pod (e.g., https://khoward5.dev.inrupt.net/)
  3. New Home Page is displayed.
  4. Home Page is displayed.
    • “khoward5’s Pod” grouping of controls are center justified. Would have expected this to be left justified in the browser tab.
  5. Clicking on home page buttons left to right:
    • Dashboard:
      • More below.
    • Prefs:
      • Showed error: TypeError: Cannot read property 'doc' of null undefined TypeError: Cannot read property 'doc' of null undefined at Object.render (https://khoward5.dev.inrupt.net/mashlib.min.js:21:99611) undefined at https://khoward5.dev.inrupt.net/mashlib.min.js:21:33650 undefined at HTMLImageElement.<anonymous> (https://khoward5.dev.inrupt.net/mashlib.min.js:21:34122)
    • Contents:
      • The mouseover popup shows “Contents (8)”. What does the “(8)” relate to as there are only 7 visible items in the folder.
      • I can “add” a Dokieli doc. After typing in the name and clicking the tick/check mark, I see “Log in” and “Sign Up for Solid” buttons but no warning/error message saying I need to be logged in to create a document.
    • Slideshow:
      • Shows a fuzzy Solid logo, but not other information. Not sure how to proceed.
    • Data:
      • Mouseover popup displays “Data (60)”. What does the “(60)” refer to?
    • Source:
      • Attempting to edit the source gives a error ''Error saving back: Error: Web error: 401 (Unauthenticated) on PUT of https://khoward5.dev.inrupt.net/''
    • Data as N3:
      • Mouseover popup displays “Data (60) as N3”. What does the “(60)” refer to?
    • As RDF/XML:
      • Mouseover popup displays “As RDF/XML (60)”. What does the “(60)” refer to? For consistency with previous, should it say “Data (60) as RDF/XML”?
    • About:
      • Mouseover popup displays “about”. Should display “About” (capitalized).
    • Sharing:
    • Settings:
      • Mouseover popup displays “under the hood”. Should display “Under the hood” (capitalized).
        • User is presented with the option to delete the folder https://khoward5.dev.inrupt.net.
        • No-one should be given the option to delete this folder.
        • You can attempt to delete the folder (should not) but eventually get a sequence of 401 errors. Should just a warning message and the Login /. Sign Up buttons.

brownhoward avatar Aug 06 '19 23:08 brownhoward

Workflow 3 - Login

  1. Created a new Pod (e.g., https://khoward5.dev.inrupt.net/)
  2. Goto the WebID for the new Pod (e.g., https://khoward5.dev.inrupt.net/)
  3. New Home Page is displayed.
  4. Click the Login button.
  5. Log into the new WebID.
  6. Clicking on home page buttons left to right:
    • Dashboard:
      • More below.
    • Prefs:
      • Shows 2 checkboxes.
        • If I attempt to uncheck either, I get an error: Checkbox: Error updating store from false to true: Web error: 409 (Conflict) on PATCH of https://khoward5.dev.inrupt.net/profile/card
        • Also odd that the error message says it is trying to update from false to true, as the checkboxes are checked by default (i.e., true), and I would expect it to update from true to false.
    • Contents:
      • After clicking the green + button, 2 "Make new Notepad" icons are shown.
    • Slideshow:
      • Same issues as when not logged in.
    • Data:
      • Same issues as when not logged in.
    • Source:
      • Same issues as when not logged in.
    • Data as N3:
      • Same issues as when not logged in.
    • As RDF/XML:
      • Same issues as when not logged in.
    • About:
      • Same issues as when not logged in.
    • Sharing:
      • Two green + buttons shown at the bottom.
      • Sharing for folder and “Access to things within this folder” shows same Owner and email. Why doesn't the “Access to things within this folder” just inherit from the folder?

brownhoward avatar Aug 07 '19 00:08 brownhoward

Workflow 4 - Login | Dashboard

  1. Created a new Pod (e.g., https://khoward5.dev.inrupt.net/)
  2. Goto the WebID for the new Pod (e.g., https://khoward5.dev.inrupt.net/)
  3. New Home Page is displayed.
  4. Click the Login button.
  5. Log into the new WebID.
  6. Click on Dashboard button on the home page:
    • Clicking the across the tabs causes the width of the tab headers to change. They should retain a standard width.
    • Your Stuff:
      • Make new Address book: Asked to choose a Workspace and a storage folder. Way too complex for the average user. At minimum, defaults for both should be selected.
      • 2 "Make new Notepad" icons are shown.
      • Microblog button: Displays error: ''Error: Missing IRI for NamedNode undefined Error: Missing IRI for NamedNode undefined at new t (https://khoward5.dev.inrupt.net/mashlib.min.js:15:649) undefined at t.value (https://khoward5.dev.inrupt.net/mashlib.min.js:127:31394) undefined at new d (https://khoward5.dev.inrupt.net/mashlib.min.js:27:350435) undefined at Object.render (https://khoward5.dev.inrupt.net/mashlib.min.js:27:355143) undefined at https://khoward5.dev.inrupt.net/mashlib.min.js:21:33650 undefined at HTMLImageElement. (https://khoward5.dev.inrupt.net/mashlib.min.js:21:34122)''
    • Typo: Should be “Trusted Apps” not “Trusted Aps” in tab header.
    • "Edit your profile":
      • Warning "Your profile https://khoward5.dev.inrupt.net/profile/card is not editable, so we cannot do much here." shown at the bottom but I am logged in.
      • Background Color control is duplicated.
      • Background Color is misspelled as "Background colorr".

brownhoward avatar Aug 07 '19 00:08 brownhoward

Workflow 5 - Login | Delete Root Folder

  1. Created a new Pod (e.g., https://khoward6.dev.inrupt.net/)
  2. Goto the WebID for the new Pod (e.g., https://khoward6.dev.inrupt.net/)
  3. New Home Page is displayed.
  4. Click “Login” button.
  5. Log in successfully.
  6. Click the "under the hood" button.
  7. Click "Remove this Folder" button.
  8. Click "Delete Folder" button.
  9. Folder https://khoward6.dev.inrupt.net/ is deleted (at least partially).
  10. Redisplay Dashboard.
  11. Lots of errors "Logged in but cannot load profile" are displayed.

Users should not be given the option to delete the root folder.

Update: User cannot delete the account. When entering the WebID in dev.inrupt.net/account/delete, an “account not found” error is displayed.

brownhoward avatar Aug 07 '19 00:08 brownhoward

Agreed! Maybe should also protect profile folder and prefs folder

timbl avatar Aug 07 '19 02:08 timbl

There are some panes that are making the current data browser more confusing than they are of help (in my opinion), so I suggest not including the following panes until we've had time to fix them up a bit:

  • microblog: This is just broken anyway, right?
  • scratchpad OR pad: They both use the same icon and name for their pane) - another solution is to do changes to one of them to make it more distinguishable from the other
  • longChat OR shortChat: Again, people will be confused about them - at some point we will probably merge their functionality into one pane, but I suggest we remove one of them from the interface, to lessen confussion

Also, I recommend removing the basicPreferences from the root, but keep it in the global dashboard.

megoth avatar Aug 07 '19 11:08 megoth

Some thoughts when trying to add an index.html to your root:

  • You cannot drag-and-drop files to your root (returns 403 Forbidden), which means you cannot drag-and-drop an index.html file there
  • You can create an index.html file with Dokieli though, which gives people the opportunity to create their custom homepage somewhat easily
  • With index.html on the root, "Your storage" stops loading the folder pane, which makes it impossible to navigate your Pod
  • With index.html on the root, if you try to delete via "Under the hood", you'll be prompted to delete the root itself (this is something we should not allow users to do in general, like @timbl and @kevin-howard-jd has mentioned)

megoth avatar Aug 07 '19 11:08 megoth

Navigating to the global panes from the user menu was broken - I've fixed it in the latest versions of dev

megoth avatar Aug 07 '19 11:08 megoth

I've added some hacky functionality to "Under the hood" that "protects" certain URIs to be deleted via the data browser. Essentially it's a hard-coded list of resources where the delete button will not be available.

Still able to delete stuff other ways, of course, but limits the trouble some newcomers might get when starting to use the data browser.

megoth avatar Aug 07 '19 12:08 megoth

"You cannot drag-and-drop files to your root (returns 403 Forbidden), which means you cannot drag-and-drop an index.html file there"

@megoth Is it going to be possible to edit the root index.html using the data browser?

mikeadams1 avatar Aug 07 '19 13:08 mikeadams1

Nice job on the dashboard, it's coming together just fine. It reminds me of Linkedin but, with Linkedin, once you visit user profiles a certain amount of times without being logged in, it asks you to either sign up, or sign in to view a users profile, is this something Solid is considering?

mikeadams1 avatar Aug 07 '19 13:08 mikeadams1

@megoth Is it going to be possible to edit the root index.html using the data browser?

That's a possibility yes.

megoth avatar Aug 07 '19 14:08 megoth

FYI: We've updated dev.inrupt.net with latest version of https://github.com/solid/mashlib/tree/dev

megoth avatar Aug 08 '19 13:08 megoth

Screen Shot 2019-08-08 at 15 08 19

Seems to be a bug when changing colors for profile "Edit your profile" in the global dashboard

megoth avatar Aug 08 '19 13:08 megoth

Also noticing a bug where the storage tab(s) won't necessarily always load.

Example with bug:

image

Example without bug:

image

megoth avatar Aug 08 '19 13:08 megoth

Stop specific sharing for this folder

If I click the "Stop specific sharing for this folder" button for a specific folder, I get a "Error reading ACL. status 404: Found no ACL resource" error.

To Replicate

  1. Goto Pod on dev.inrupt.net.
  2. Login
  3. Display Folders.
  4. Display Sharing for a given folder.
  5. Click the "Stop specific sharing for this folder" button.

Expected Behaviour

  1. The bottom panel of the Sharing pane is closed and replaced with a message saying that "The sharing for this folder is now the default."

Actual Behaviour

  1. A message/error is displayed "The sharing for this folder is now the default.Error reading ACL. status 404: Found no ACL resource".
  2. No obvious way of resetting.

brownhoward avatar Aug 08 '19 17:08 brownhoward

Display Public Profile for WebID

If I navigate to someone elses WebID, there is no obvious way of displaying their Profile.

To Replicate

  1. Navigate to a WebID (e.g., https://khoward7.dev.inrupt.net/).
  2. Dashboard is displayed showing an options to view Khoward7's Files.

Notes

I would have expected Khoward7's Public Profile to be displayed. I can click on any Khoward7 link to view the Profile but that is not obvious to the End User. Display the Profile by default seems a more logical thing to do than start viewing files.

brownhoward avatar Aug 08 '19 17:08 brownhoward

Cannot Drag-Drop Files into Root Folder

I get a 403 error when trying to drag-and-drop a file onto the green + button in the root folder.

To Replicate

  1. Create a new Pod in https://dev.inrupt.net.
  2. Log into the new Pod.
  3. Display the Folders.
  4. Drag-and-drop a file onto the green +.
  5. A dialog is displayed stating "Are you sure you want to drop this file here? (Cancel opens it in a new tab)". Click OK.

Expected Behaviour

  1. The file is uploaded to the server, and displayed in the list of Folder files.

Actual Behaviour

  1. An 403 error message is displayed "Upload: FAIL https://khoward8.dev.inrupt.net//{filename}, Error: Error: Web error: 403 (Forbidden) on PUT of https://khoward8.dev.inrupt.net//{filename}

brownhoward avatar Aug 08 '19 18:08 brownhoward

Goto Newly Created Address Book Error

If I create a new Address Book, I am presented with a link to "Go to new address book". When I click the link, I see a message "Can't find file requested: [object Object]".

To Replicate

  1. Navigate to WebID on https://dev.inrupt.net
  2. Login.
  3. Display Folders.
  4. Click green + button and select Address Book.
  5. Enter the name for the new Address Book, and click green tick/check.
  6. A message is shown saying the "Your new address book is ready. Go to new address book".
  7. Click either of the links in the message.

Expected Behaviour

  1. The new address book is displayed.

Actual Behaviour

  1. A new page is displayed with text message "Can't find file requested: [object Object]".

Dev Notes

  1. The new address was created successfully as you can navigate to it. It just seems as if the page redirect should goto https://{WebID}/{New Address Book Name}/index.ttl#this rather than just https://{WebID}/{New Address Book Name}/index.ttl.

brownhoward avatar Aug 08 '19 18:08 brownhoward

No Validation on new Folder Names

There does not seem to be any validation on the entered name for a new folder which can cause the Pod to be corrupted.

To Replicate

  1. Navigate to a WebID on dev.inrupt.net.
  2. Login.
  3. Click Contents button to display Files/Folders.
  4. Add a new Folder
  5. Enter the new Folder name as the current WebID Profile (e.g., https://{WebID}/profile/card#me).
  6. Click green tick/check.

Expected Behaviour

  1. Warning message stating the Folder name is not valid.

Actual Behaviour

  1. A new Folder "me" appears to have been created and inserted into the list of Files/Folder.
  2. Refreshing the page shows error: Error: NamedNode IRI "/" must be absolute. undefined Error: NamedNode IRI "/" must be absolute. undefined at new t (https://khoward7.dev.inrupt.net/mashlib.min.js:15:748) undefined at t.value (https://khoward7.dev.inrupt.net/mashlib.min.js:15:1101) undefined at l (https://khoward7.dev.inrupt.net/mashlib.min.js:27:313368) undefined at Array.filter (<anonymous>) undefined at p (https://khoward7.dev.inrupt.net/mashlib.min.js:27:313921) undefined at Object.render (https://khoward7.dev.inrupt.net/mashlib.min.js:27:314334) undefined at https://khoward7.dev.inrupt.net/mashlib.min.js:21:34501 undefined at HTMLImageElement.<anonymous> (https://khoward7.dev.inrupt.net/mashlib.min.js:21:34973)

brownhoward avatar Aug 08 '19 18:08 brownhoward