SolidOS/mashlib

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

Opened this issue · 24 comments

timbl commented

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 commented

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 commented

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 commented

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

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?)?

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:
    • 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.

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?

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:

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.

timbl commented

Agreed! Maybe should also protect profile folder and prefs folder

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.

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)

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

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.

"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?

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?

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

That's a possibility yes.

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

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

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

Example with bug:

image

Example without bug:

image

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.

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.

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}

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.

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)