simon987 / sist2

Lightning-fast file system indexer and search tool
GNU General Public License v3.0
869 stars 55 forks source link

Improve sist2-admin UX #389

Open simon987 opened 1 year ago

simon987 commented 1 year ago

In that most recent version, did you intend to reduce "Indexing Options" to a single field?

AH! I see now. I missed the options to enter the elasticsearch information on the first page. This is a great improvement! It was a bit annoying having to correct the elasticsearch url for each of the indexes. Very nice.

The only thing to consider is putting an error message in the screenshot in my previous post:

Cannot connect to elasticsearch. Configure elasticsearch here. Or if you need it to be more generic:

I cannot connect to one of your databases. Please correct the configurations. (Note: this is accessible at the bottom of the homepage/dashboard.) And provide a direct link to the configuration -- or not. If you've provided instructions, it might be better to let them actually access it in the correct way.

All that being said, I may have a very unique and unusual use case, so it may not be worth the time.


From what I can tell, I need to create the search backend/index first. Then, once I've created the search index, I can link that to a job. A single search index can be linked to multiple jobs. (Is this a good idea? I'm really not sure the implications of doing this -- I likely need to do some reading up elastic search to understand that better, but would appreciate pointers.)

Then, I also need to associate the frontend with the same index/search backend as the jobs that I have selected? What happens if I select a different index/backend? Or what happens if I select several jobs with different backends?

I could help with the UI and workflow if I can understand things a little better -- I am a UX designer and happy to help, but want to make sure I understand the relationships. As it is, at least as far as I understand things, people could get themselves into trouble pretty easily, but I am speculating based on what I see here.

Ultimately, I really like this direction. It is very clever and seemingly very flexible. All-in-all, I am very impressed with Sist2 and I haven't even gotten to test the automated tagging. Seriously looking forward to trying that out.

I am currently re-indexing my files. I didn't see any way around that given the changes to the index/backend. These are fairly large indexes. I will post back here once it has finished.

(And apologies for all the posts, but wanted to report on my experiences and I thought you might find it useful.)

Originally posted by @rickcecil in https://github.com/simon987/sist2/issues/384#issuecomment-1635231458

simon987 commented 1 year ago

consider is putting an error message in the screenshot in my previous post:

In theory this should not happen unless you update from a previous version and the migration fails (AFIK) so I think that's a bug.

When the database is first initialised, a elasticsearch search backend is created by default. Newly created job have search_backend="elasticsearch" selected by default. You should not be able to delete the elasticsearch backend if it's referenced by any jobs, and the "Index now" button should be grayed out if no search backends are selected. (So I think that in your case, one of those constraints didn't work properly)

simon987 commented 1 year ago

people could get themselves into trouble pretty easily

Absolutely. I think I do have to add more constraints, but I want to avoid forcing the user to do things in a specific order unless necessary.

The interaction between "search backend", "job" and "frontend":

So one obvious improvement for the /frontend/ page would be to only allow the user to select jobs linked to the selected backend (but that would be super confusing because the backend dropdown, which would control which jobs are visible, is all the way down the page!)

Would be happy to have your thoughts on this given your background @rickcecil

rickcecil commented 1 year ago

@simon987 Here's what I was thinking for the Frontend creation/edit page:

Frontend Creation

  1. Move the Search Backends to the top and connect that to the available Jobs. As you change Search Backends, the available jobs would change to those available to that search backend.
  2. Create accordions with the other options... 2a. Web Options would be the same minus Auth0 options 2b. Auth0 options gets its own section 2c Advanced would include "Start Automatically", "Extra query arguments", and "Custom URL"

These could be expanded or collapsed, but I think collapsed as it would make it easier to get an overview and then go to where you want.

If you wanted, you could add additional organization on the dashboard by separating Frontend from the other options like so:

Backend Tab

Frontend Tab

By putting the "Backend" first, it would provide some guidance on where they should start without limiting them to where they could start.

Another consideration: Place the creation of jobs on the database creation page. If you're going to allow a job to be in multiple backends, though, this may not be a good idea. If you keep jobs associated with a single backend, then I would definitely consider this.

Let me know your thoughts. I am happy to iterate or revise as needed.

simon987 commented 1 year ago

Thanks a lot! I moved things around in the last version. Unfortunately the CSS library I'm using doesn't give me much to work with in terms of accordions https://bootstrap-vue.org/docs/components/collapse#accordion-support (I don't like how any of those look) so I skipped them for now.

rickcecil commented 1 year ago

The current iteration looks great! I'll look at the framework to see what might work or how best to recommend evolving things from here. I am curious if others think the tabs view and layout makes sense. But I really like it. :D Though, I am biased...

rickcecil commented 1 year ago

Are there other parts of the UI that you'd like me to take a look at?