Forum OpenACS Development: Re: GUI Redesign of OpenACS, ]po[ and Others?

Collapse
Posted by Antonio Pisano on
Dear Maurizio,

About your "machinery" subject I agree with you that no much support for "modern UIs" is provided by OpenACS out of the box.

Take the case of template::list. The way it was designed is nowadays less suitable for a modern UI, as it assumes "data retrieval" to happen together with rendering/sorting/pagination... at each and every request, while UIs today would fetch data from e.g. a JSON endpoint and update the UI dynamically and/or progressively without the user noticing a new request.

However, I am not 100% sure such fancier kinds of UIs cannot be achieved with just existing tools and plain HTML/javascript or if we should go for a "new and improved" template::list. For instance, one could render an existing template::list as JSON by defining a new style and hack it into a paginated JSON datasource that one could query from e.g. from ajax or websockets... For many use cases, a plain multirow can be very powerful as well to produce not only HTML, but many kinds of output (csv, JSON, XML...)

One issue with platform support for fancy UIs is the adoption of some javascript framework vs rolling up our own code. This has proven challenging to maintain in the past (e.g. ExtJS, YUI...). Even frameworks which used to be very established in the past such as jQuery UI or jQuery Mobile have declined over time. It will always be some kind of moving target.

Worth thinking about anyway.

Antonio

Collapse
Posted by Frank Bergmann on
Ciao Antonio,

not much support for "modern UIs" is
provided by OpenACS out of the box

Please have a look at the ]po[ REST API in this post here that I've just created:
https://openacs.org/forums/message-view?message_id=5467288

Please have a look at our demo-server and use the Chrome "Developer Tools" in order to see how it works:
https://demo.project-open.net/

So with this API you can create "forms" for HTML5 CRU(D) operations in minutes, with no need for any back-end code.

So this is just completely beyond ad_form and template::list.

Cheers
Frank