Viktor, I'm missing where/how I replace
// crazy replacement var s = values["service"].split("/");
s[0] = "partial";
if (s.length==4) s.splice(3,0,s[2]);
s = s.concat(parts);
values["service"] = s.join("/");
now that I've created getLink() in PartialForm.
Jamie
Viktor Szathmary wrote:
yes - that's because the response was not served by the appropriate service (it should have been PartialService, but it wasnt)... if you are already using a patched version of Tapestry, and you have some enthusiasm, please try the following:
modify tapestry's Form.java, and make private ILink getLink(IRequestCycle cycle, String actionId) a protected method... override in tacos PartialForm.java like this:
protected ILink getLink(IRequestCycle cycle, String actionId) { IEngine engine = cycle.getEngine(); IEngineService service = engine.getService(PartialService.SERVICE_NAME); return service.getLink(cycle, this, new String[] { actionId }); }
after these changes, verify that the hidden field "service" in your Forms starts with "partial/..." - i think something like this should to the trick.
i found that monitoring the http traffic with something like tcpdump, packetyzer or the charles http proxy is really helpful in diagnosing xmlhttprequest-based apps.
viktor
On Apr 12, 2005 4:01 PM, Jamie <[EMAIL PROTECTED]> wrote:
Hmm... the javascript error I get is:
Error: this.transport.responseXML has no properties Source File: http://localhost/registrar-student/asset.svc?sp=S%2Fnet%2Fsf%2Ftacos%2Fpartial%2FPartial.js&sp=S8304332074860f58113708089fb60cc3 Line: 112
Viktor Szathmary wrote:
hi,
the PartialForm relies on a nasty, evil hack, because i was lazy :) overriding the base tapestry Form component's service link generating behavior is not currently possible without copypasting the entire sourcecode... so what i ended up doing is a dynamic substitution in the javascript:
// crazy replacement var s = values["service"].split("/"); s[0] = "partial"; if (s.length==4) s.splice(3,0,s[2]); s = s.concat(parts); values["service"] = s.join("/");
so this turns the value of the "service" hidden param from something like
direct/1/FooPage/$Form
to
partial/1/FooPage/FooPage/$Form (plus the part IDs)
which is what we really needed in the first place. This is ugly, but still seemed less gruesome than copypasting the entire Form implementation just to override 3 lines...
I'm not familiar with the operation of the "friendly urls" patch, so I don't have any immediate suggestions, but I can look into this later... in the meantime, I'm open for suggestions as to how to alter the service link rendering behavior in Form without serious copypasting.. I guess the best would be to submit a patch for Tapestry 3.0.4 that makes the offending method in Form.java protected instead of private:
private ILink getLink(IRequestCycle cycle, String actionId) { ... }
that's all I would need to override :) commiters?
regards, viktor
On Apr 12, 2005 2:42 PM, Jamie <[EMAIL PROTECTED]> wrote:
Has anyone got these working in a Friendly URLs patch to 3.0.3? I've tried the PartialForm on a couple of my pages and nothing happens at all (no errors, nothing logged, etc). I've got the Parts with IDs, and the PartialForm--but no submission seems to take place and I'm getting no errors. I've run the tacos example war in the same server with no problem.
Thanks, Jamie
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
