"Adrian Holovaty" <[EMAIL PROTECTED]> wrote 
in message 
news:[EMAIL PROTECTED]
>With that in mind, I still want to comprehend this mysterious concept
>of "Ajax support." In fact, I yearn for it. I want to know what it is,
>desparately.

Let me take a stub at it.

1) Client-side form validation.
2) Auto-suggest feature for linking objects.
3) Combination of #1 and #2: parametric auto-suggest feature based on some 
other field contents.
4) Form input helpers, e.g. time/date picker, color picker, picture picker, 
and so on.
5) Inline editing of field values.
6) Rich editor in some form.
7) Hierarchical selector: tree.
8) Multiple value selector. One possible form is so-called "tag cloud".
9) Dynamic menu systems.
10) Rich tooltips.

I can go on but lets stop there.

Some real life examples:

1) #2 & #3. It is frequently needed in business systems. I saw two 
variations: match objects by some text using "startwith", or using "like". I 
used an internal system, which kept all "initiatives" of one huge public 
corporation in one place. Navigation was done by preloading three huge 
selects with some text strings. Time from "click to work" was ~5 minutes on 
internal fast connection. Selection of proper topic was a subject you should 
master for month --- every pixel change of mouse position skipped huge 
number of documents. The system worked only under light load. Otherwise you 
get a timeout.

2) #8. Assigning properties/tags to objects. Right now Admin with 
filter_interface uses two boxes. In my app, I have to scroll the first one 
to get to required property. When I select something, it scrolls back 
immediately. Non-js option is a multiple select box, which is much worse 
usability-wise. Both forms require scrolling because they don't use space 
efficiently. Tag cloud (a-la del.icio.us) is much more convenient and 
compact. It is easy to select multiple components. If you highlight selected 
items somehow by using bold face or different background, you will see what 
is selected immediately.

3) #9 --- you can hardly find a web site without menu. All you need to know 
is what objects to show and their relationship. It is a little bit more 
complicated when this data is dynamic. #7 is similar to that.

The common theme between these examples that they are mundane cases, which 
pop up in multiple applications. And everybody solves them using DYI 
principle instead of DRY trading off quality for "I did it myself".

All these cases can be done with Django, and without Django at all. My point 
it they require some sort of support from server-side => server-side should 
have some standard way to provide it. In case of document selection it would 
be required to provide a template for individual items. In this case tag 
cloud can be easily transformed into picture cloud, and auto-suggest may 
show a lot of supporting information besides what you are typing.

I don't know what is the best place for it in Django. Documentation is one 
thing. :-) Provisions to provide some meta-information about underlying 
objects may be required as well. It would be nice to have some generic 
views, which present data in some predefined format. Of course my crystal 
ball tells me we may want to have some template tags and filters. ;-)

I have some gripes for #4. I saw many applications, which used inappropriate 
widgets just because it was "difficult to do it manually". Maps vs. text 
could be the perfect example. On the other hand, you probably know it from 
your own experience. :-) Lets talk about it some other time.

Thanks,

Eugene



Reply via email to