Create a (sophisticated, easy-to-use, powerful, beautiful, AJAX-powered and what-not) admin interface for creating and configuring search servers and indexes, configuring the indexing process and viewing search-related information.

Add the path in the .info file and a link in a watchdog() call in .module (marked by @todo).

Comments

drunken monkey’s picture

StatusFileSize
new717 bytes

Working on it. Just posting for people who would be interested in testing: Attached is a minimal module I use for testing the admin UI (which wouldn't really be possible without defined service classes).

Bojhan’s picture

Version: » 7.x-1.x-dev

If you need me to review, post some screenshots or a demo somewhere.

drunken monkey’s picture

I'll see what I can do regarding a demo site. Not so easy to organize. But at the moment the UI is far from finished anyways.

And btw: The latest version of the little test module can be downloaded at http://betrunkeneraffe.be.funpic.de/search_api_test.tar.gz from now on.

drunken monkey’s picture

Update: I had planned to have this done by today, but as per usual I quite underestimated the workload here.
I hope I can get it to work by Thursday, because I'll be out of town this week-end. I think at least that should be possible, most of the code can be copied anyways.
Everything related to servers is already working and indexes can be created.

Bojhan’s picture

Screenshots please :)

drunken monkey’s picture

StatusFileSize
new451.5 KB

Screenshots!

drunken monkey’s picture

I didn't make it completely, but the admin UI is almost done now. The following things are working:

- Showing all servers and indexes.
- Adding, editing and deleting servers.
- Adding, editing and deleting indexes, adding the pre-/postprocessing workflow of indexes.

Still missing are:

- Buttons / links for directly indexing content, scheduling an index for re-indexing and clearing an index.
- Setting the fields to be indexed, along with their type (string/fulltext or maybe also more detailled datatypes).

Bojhan’s picture

Why are actions tabs? they should be actions

drunken monkey’s picture

You are right, I fixed that. As being still new to D7, I didn't really think of actions.

Bojhan’s picture

StatusFileSize
new32.08 KB
new95.34 KB
new29.17 KB

Ok a little bit deeper review.



drunken monkey’s picture

Thanks for the review!

* Indentation: This is to show that the index belongs to the above server. I thought a while about this but didn't come up with a better way to visualize this. I'd be grateful to get a better suggestion for that, I don't really like that myself.
* Icons: If you've got some idea on how they should look, I could use icons, although I don't think they would improve the look that much. If I don't use icons, is displaying "enabled" in bold still OK?
* "click to enable": I just thought, such one-click functions could/should be displayed directly with their items. (For indexes, I'll also add re-indexing and clearing the index there. Those I really wouldn't know where else to display.) Just displaying the link in the overview would be a bit strange, I think, but displaying it as a checkbox when editing felt also kinda wrong, mixed with all the other settings. Again, suggestions are welcome.

I'll fix the others (and add a few bits) and get back with some more realistic examples.

drunken monkey’s picture

Component: Code » User interface
Status: Active » Needs review
StatusFileSize
new893.91 KB

OK, the admin interface is finally completed. Attached is another bunch of screenshots showing almost every interface page (minus some of the "Are you really sure?" ones).
The index fields settings are still a bit Wizard-of-Oz'd, since I haven't yet figured out how to access the available properties via entity_metadata. I've marked these places with @todos and will take care of them in the course of #833648: Refine API/framework core functionality.
Suggestions for some of the more cryptic descriptions would be greatly appreciated!

Bojhan’s picture

Ehh, can you just upload the pictures I have no idea how to unzip or unrar a tar?

drunken monkey’s picture

StatusFileSize
new900.4 KB

http://betrunkeneraffe.be.funpic.de/search_api-screens/2/
Also, I've attached a ZIP version.
But actually almost any archiving program should be able to deal with a .tar.gz file (you just have to store it that way, the upload here sadly added an underscore). Programs for Windows include PowerArchiver 6.1, 7-zip, Winzip and ZipGenius, for Linux just use tar xvfz screenshots.tar.gz.

Bojhan’s picture

search-category.png

add-search.png

search-overview.png

add-solr-service.png

view-server.png

search-specific-entity-add.png

I think we could go for the existing core pattern and use some AJAX trickery to get a "other" option which exposes a textfield.
search-cron-limit.png

fields-taxonomy-term-index.png

search-status.png

search-overview-enabledornot.png

drunken monkey’s picture

Status: Needs review » Needs work
StatusFileSize
new205.38 KB

Thanks again for the detailled review! I've implemented most of your suggestions. Regarding a few others:

> Still a bit weird these aren't icons
As said, I would be more than prepared to change these to buttons, but have no idea how they should look. If you can give me a hint or show me an example, I'd do it. As for now, I removed the bold font from "enabled", so it doesn't draw the attention that much.

> What's the use of this text?
It describes the respective service class a bit, the text is specified with a hook. The name of the class alone could be a bit little in some or even most cases.

> Why are examples bigger?
They are just in <code> tags, for some reason the seven theme displays those larger.

> Also – let's do one example.
> Why not just the examples?
I've copied all three descriptions from the apachesolr module, so this was no explicit decission. However, these are only descriptions of the (mock-up) service class and therefore not part of the module, so they aren't an issue here.

> I think we could go for the existing core pattern and use some AJAX trickery to get a "other" option which exposes a textfield.
I haven't found anything like that in a quick search. Could you give me an example (path)? I also don't really know what you want to solve with that (probably because I don't know which pattern you mean).

> Why do the "Number of items to index per cron run" like interaction?
I don't really understand this comment. Do you mean, "why let users set this"?
If that is the case: the cron limit is a standard setting in most search implementations I know, and setting it per index seems like a good idea. Some items might be quick to index, some take considerably longer, and you even might want to stop indexing some items (at least via cron) for a while.

> Is a bit useless, can you link to a resource?
Do you mean the whole description or just the first sentence? Would this be better (replacing the first sentence): "Whether detailled field types are supported depends on the type of server this index resides on. Check the server's service class' documentation for details."
What kind of resource did you have in mind?

> This is weird, actions on a view page?
Should have seen that one coming. Just thought it would be practical to have these at hand, but I guess you're right. They just aren't really "settings" (except "Disable"), so I'll probably move them to a new "Status" tab.

> Why is that field so long?
Because it's the default width. But you are right, of course. (Ew, two consecutive sentences starting with conjunctions…)

> "Re-index entity" instead of "clear", perhaps?
There are actually both, as you can see on the image after that one. "Clear" not only marks all of this index' content for re-indexing, but also deletes all indexed data from the server. "Re-index" just marks the content for re-indexing, and is therefore disabled when all content needs to be indexed anyways.
However, the new layout has (hopefully) made this a lot clearer.

Attached are a few screenshots of the new interface.

Bojhan’s picture

1.Alright, I have said you should use icons - so I have linked some, more importantly outline them to the far left in the table :
http://drupal.org/files/issues/Fail-icon.png
http://drupal.org/files/issues/Succes-icon.png

2. Alright, I would avoid using it when its super obvious what it is for example with solr.

3. Get them out of that then :) I would really not recommend having strange markup in this description

4. Oke

5/6. You can see it at admin/config/search/settings; my comment wasn't about its purpose.

7. I don't know which kind of resource, but I feel its somewhat useless to say; maybe it will work with your service with no direction where to find out whether it will.

8,9,10. The redesign did a lot, I think we can make this status page a little bit more prettier :) But I will get back to that later.

Bojhan’s picture

On that last note look for example at a design exploration we did for search settings page.

drunken monkey’s picture

Status: Needs work » Fixed
StatusFileSize
new26.83 KB

It certainly looks a lot nicer than the current interface, but I think this is beyond the scope of this issue. Before implementing such eye-candy, I should get the module completely running and with usable example implementations.
Thanks again for your help, and feel free to post further suggestions in a new issue, but I'm marking this one as fixed (as long as you don't think there are still really annoying UI bugs).

Attached is a screenshot of the overview with icons. I first tried to create some similar ones on my own, but the ones you posted are just better. Is it OK to use these (don't know where they were posted originally, or by whom)?

Bojhan’s picture

They are GPL, just didn't go into core. I would avoid using a sort on status though. When its possible ping me to create that new status page design issue, its not really eye-candy.

Status: Fixed » Closed (fixed)
Issue tags: -gsoc, -gsoc2010, -gsoc2010-drunken_monkey

Automatically closed -- issue fixed for 2 weeks with no activity.