[
https://issues.apache.org/jira/browse/OFBIZ-1648?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Adrian Crum updated OFBIZ-1648:
-------------------------------
Attachment: ofbiz_ajax.patch
ofbiz_ajax.patch is some work I did on the OFBiz-to-Ajax integration. Work had
already been started in the screen widgets and the Example component - I
expanded it a little.
The problem with the existing Ajax example in the Example component is that the
screen is useless if the user has JavaScript disabled. I fixed that by putting
JavaScript detection in the login screen, and then passing the setting around
the framework. When a user first logs in the setting is stored in the
UserPreferences entity, where it is retrieved by each webapp - making the
setting span webapp sessions. I also put a "javaScriptEnabled" element in the
screen context - it contains "true" or "false".
I modified the widget rendering code to output HTML according to the user's
JavaScript setting. Some of it doesn't work. I wanted to get form widget
pagination to use Ajax, but it isn't working. I gave up on it, but the code is
still there. It would be great if a Prototype guru could take a look at it and
figure what's wrong. I'll play with it some more later.
The Example component has been updated. One of the things I learned is that the
request Maps for Ajax calls should have the auth attribute set to false, and
have the widgets perform permission checking. With auth set to true, the HTML
container being updated will have a login screen inside it if the user's
session expires, or if they log out in another webapp. Set up the way I have
it, the request is successful when the user is logged out, but it returns
nothing - so the HTML container being updated goes blank.
This patch is intended for review and comment. It's not finished yet. If there
are no objections, I will clean up the code and get it committed.
One thing I'm considering - that is not in this patch - is a JavaScript
"connector" to bridge between the widgets and the Prototype library. Instead of
widgets outputting code like
<script type="text/javascript">new
Ajax.PeriodicalUpdater('ExampleAjaxMessages',
'/example/control/ExampleAjaxMessages', {frequency: 10});</script>
it would output something like
<script type="text/javascript">OfbizPeriodicalUpdater('ExampleAjaxMessages',
'/example/control/ExampleAjaxMessages', '10');</script>
where the OfbizPeriodicalUpdater JavaScript function is in the "connector"
library, and it would create the corresponding Protoype Ajax object.
That way, if we want to switch to another Ajax library, or if the Prototype API
changes, we only have to modify the connector JavaScript file, not all of the
widget java code.
> Sandbox: Improved Screen Widgets, adding 3rd party rendering library support
> ----------------------------------------------------------------------------
>
> Key: OFBIZ-1648
> URL: https://issues.apache.org/jira/browse/OFBIZ-1648
> Project: OFBiz
> Issue Type: Improvement
> Components: framework
> Reporter: Adrian Crum
> Priority: Minor
> Attachments: ofbiz_ajax.patch, widget_improvements.patch
>
>
> Discuss screen widget modifications and enhancements that will make the
> screen widgets more robust. Everyone is welcome to review and comment.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.