Re: Rendering multiple zone in nested component.
Hai Geoff thanks a lot for trying :) I try to explain it better. Basically I have a survey object, that contains survey info and list of section object. The section object contains section info and list of question object. What we want to do is give the user the ability to fill the survey info, section info and question info in a single page (not moving between pages). What the user will see is this. When the user first open the page, it will only show the survey info form. After the user submit the survey form. Then the form fields will change to read only mode and the sections info form will be shown. We do this by using 3 block and 2 zone. Survey Input block and Survey view block for the survey zone. And Section Input block for the section zone. Rendering multiple zone when the Survey info form is submitted is done using the ajax renderer. It's pretty simple. Filling the section and the question info will follow the same pattern. So we create a SectionHolder component and Question Holder component. Using the same code as the page (2 zone that will render 3 block using ajax renderer). Hoping that with a component the code will be modular and easier to maintain. There is where we found the problem. It seems we can't use nested component with the ajax renderer. Yes probably tapestry 5.4 will handle this better, but unfortunately we're still stuck with Tap 5.3. As a workaround we put all of the code in a single page. So far the code seems to work. But we still think that separating the editor into its own component is the better approach. So let us know if anyone succeeded implementing this :) Thanks. On Thu, Mar 27, 2014 at 5:52 AM, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: Sorry, I tried to draw a model of your page but I don't quite get it. The techniques used in that JumpStart page's components may have a problem when they're nested deeper. They're done better in the JumpStart preview for T5.4: http://jumpstart.doublenegative.com.au/jumpstart7/together/ajaxcomponentscrud/persons A key improvement is the passing of the component's context in each request, and using them to restore the component's parameters, rather than relying on the page context and @ActivationRequestParameter. I don't know if these thoughts are addressing the source of your problem, but I hope they help. Cheers, Geoff On 27/03/2014, at 1:42 AM, abangkis wrote: Or maybe someone has an example of a single page site made with tapestry. I've tried jumpstart http://jumpstart.doublenegative.com.au/jumpstart/together/ajaxcomponentscrud/personsit's something similar but able to be nested 3-4 component deep. Thanks for any clue. Cheers. On Tue, Mar 25, 2014 at 3:18 PM, abangkis abang...@gmail.com wrote: Hello, I have 3 nested object. A survey, a section and a question. A survey will contain sections and a section will contain questions. I want to create a single page editor for this nested object using ajax. In add survey page i have created two zone, survey zone and sectionListZone. The survey zone content will depend on a flag. It can show an input form for the survey or a view of the survey data. The sectionListZone content is a SectionHolder component (custom component for handling the section). The SectionHolder component also contains two zone, sZone and qZone. The sZone content also depend on a flag, to show an input form for the section or to view the section data. The qZone content is a QuestionHolder component (custom component for handling the questions). I've managed to create the add survey page to add view the survey data. I also manage to create the section holder component by using the same pattern as the add survey page (using ajax response renderer to render both zone when the form is submitted). The problem is in the SectionHolder component i can't render multiple zone using ajax renderer. Returning a block from onSuccess will work. But using ajax renderer to render the zone will result this error : Element 'sZone' does not have an associated Tapestry.ZoneManager object. Communication with the server failed: TypeError: Cannot call method 'getStorage' of null Here's my code for the Add Survey page the Section Holder. Thanks === Add Survey TML === t:zone t:id=surveyZone id=surveyZone form t:type=form t:id=frmCreateSurvey t:zone=^ div t:delegate to=surveyBlock/ /div div t:errors/ /div /form hr/ /t:zone div t:zone t:id=sectionListZone id=sectionListZone t:delegate to=sectionListBlock/ /t:zone /div t:block id=addSurveyBlock t:label for=title/ t:textfield t:id=title value=survey?.title t:validate=required, maxlength=35 size=35/ input type=submit value=Save class=btn btn-sm btn-primary/ /t:block t:block id=viewSurveyBlock SURVEY BLOCK br/ Title : ${survey?.title} a t:type=actionlink t:id=editSurvey
RE: Updating a zone from a property method
That's not a workaround, it's a matter of what is called first. In theory it could be both things, however I realized that you're right that it's not a workaround when I compare it to the structure outlined by Geoff, which sounds like the proper structure. It was sounding to me like a workaround because I believed that the proper structure was to retrieve the values only from the getter when Tapestry calls it, and not from setupRender, and this turned out to be wrong, so I no longer consider it a workaround. Thanks Geoff for the thorough explanation, much appreciated. I actually had ended up doing basically that, except that from setupRender I explicitly call the getter to set up the value instead of calling a setupValue method, but the need to explicitly call the getter was actually the part that perplexed me. I think having a setupValue method called from setupRender that calculates the value and having the getter to simply return that value as in your example is much cleaner, I will go for that. In my opinion it's also remarkable that the order in which the elements appear in the template made the difference. Now that it was mentioned it sounds obvious but I had not realized that earlier. If in the template of my initial example I just move the ${myValue} above the error zone, it works as I had expected, that is the message is shown, because the message is set in the getter which is now called before the error zone is rendered. However I don't think it's a good idea to rely on the order of the elements in the template, so I will stick to calculating in setupRender the values for the getters to return. Thanks all for the assistance ! - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Show and tell / New 5.4 app live.
Maybe your recurring hosting will be further reduced George :) http://aws.amazon.com/ec2/pricing/effective-april-2014/ On 24/03/2014 6:58 am, George Christman gchrist...@cardaddy.com wrote: Your absolutely correct, you can deff do better price wise with a VPS, but then again I don't believe you will get all the features and conveniences you get with aws for the same price. Being I'm by myself, the last thing I have time to deal with is hosting / server issues. If I was with aws before, I probably wouldn't have ever lost my old application grr. Included in that 59 dollars, I'm getting a load balancer, autoscaling, auto maintained servers, image server with backups which I believe is on a cdn network, redundant data centers (just hope we don't have another netflix issue lol), database server with auto backups, email relays, etc. So tons of great perks that helps to reduce thousands of dollars in labor / hardware. Another perk is the ability to whip up an entire environment in under 15mins. Perhaps I find it cheap do to the fact I use to own all my own hardware in a colo which cost me thousands of dollars plus labor. Rack space alone was 1500/mo before hardware and labor, so aws to me seems like a slam dunk. I'll keep you posted as traffic continues to increase and the free tier goes away lol. On Fri, Mar 14, 2014 at 9:59 AM, George Christman gchrist...@cardaddy.comwrote: I'd like to first say thanks to all who have contributed to the on going evolution of Tapestry and it's support. I'm a long time user of Tapestry starting with version 3 in 2005 and I must say leaps and bounds have been made since then. I'd also like to say thanks to all who have continued to answer my never ending array of questions ;-) Thanks guys! It has been a pleasure working with you all. In 2008 we took a risk and decided to move forward with t5 beta over spring with the development of our new app. We experienced some short lived glorious times as we successfully processed hundreds of thousands of users and cars, however do to our nations elected official and his cash for clunkers program, it destroyed our market place forcing me to have to change our brand to CarDaddy.com. With the lack of success with the new brand I eventually had to move on to other opportunities. I ended up taking a job with our state government and some contract work for a hotel wireless company, however along with my move, I decided to bring along my dear friend Tapestry5. Tapestry5 has ended up becoming an active platform within my organizations which we are now actively focused on building 5.4 apps. :) While being focused with my other work, my personal app which was still being ran on T5.1 was lacking support and ended up getting hacked (apache) three weeks ago by the Chinese bringing down my servers. This forced me to have to whip up a new application over the past three weeks by myself in 5.4 and yup, that wasn't a typo, only three weeks and that includes mobile too, okay maybe they were 3 very long weeks, but I still managed to pulled it off and I don't think I could have without the help of T5.4, jquery, bootstrap etc :) Well I'd like to share my new app with the community while once again pushing out a beta app into production :) I realize there is a lot of room for improvement, so feel free to suggest away. Growth seems to be on the rise as traffic / inventory continue to increase daily and I don't have a doubt in my mind that Tapestry won't be up for the job. Once again, thank you guys for all you have done. New 5.4-beta3 site www.cardaddy.com Cheers, George -- George Christman www.CarDaddy.com P.O. Box 735 Johnstown, New York -- George Christman www.CarDaddy.com P.O. Box 735 Johnstown, New York
Re: Tapestry-security 0.6.0 relased!
Nice, I like it :). Now I can work on my security issues. On 26.03.2014 18:22, Kalle Korhonen wrote: As hinted earlier, our first T5.4 compatible module, tapestry-security is released. This release is primarily for compatibility, although I threw in one, non-backwards compatible enhancements for optimized rememberMe cookies because I felt it was the right time. The source has moved to Githubhttps://github.com/tynamo/tapestry-security/ and the userguide is still at the familiar location at http://tynamo.org/tapestry-security+guide. I've only recently started working more on T5.4 codebase myself so keep the enhancements (and pull requests!) coming as you see need. Open issues against the Github repo please. Release Notes - tapestry-security-0.6.0 ** Improvement * [TYNAMO-147] - Make tapestry-security compatible with tapestry-5.4 ** Task * [TYNAMO-236] - Migrate tapestry-security to tapestry 5.4 beta ** Github issue #1: Implement a new default CookieRememberMeManager for creating smaller rememberme cookies https://github.com/tynamo/tapestry-security/issues/1(how do you get release notes out from Github?) Best, Tynamo team - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Rendering multiple zone in nested component.
I see nothing wrong with your nested components approach, and there is nothing wrong with having a component render multiple zones as you are doing. I don't know the cause of your client-side exception, but I think your code must be very, very close to correct. On Thursday, 27 March 2014, abangkis abang...@gmail.com wrote: Hai Geoff thanks a lot for trying :) I try to explain it better. Basically I have a survey object, that contains survey info and list of section object. The section object contains section info and list of question object. What we want to do is give the user the ability to fill the survey info, section info and question info in a single page (not moving between pages). What the user will see is this. When the user first open the page, it will only show the survey info form. After the user submit the survey form. Then the form fields will change to read only mode and the sections info form will be shown. We do this by using 3 block and 2 zone. Survey Input block and Survey view block for the survey zone. And Section Input block for the section zone. Rendering multiple zone when the Survey info form is submitted is done using the ajax renderer. It's pretty simple. Filling the section and the question info will follow the same pattern. So we create a SectionHolder component and Question Holder component. Using the same code as the page (2 zone that will render 3 block using ajax renderer). Hoping that with a component the code will be modular and easier to maintain. There is where we found the problem. It seems we can't use nested component with the ajax renderer. Yes probably tapestry 5.4 will handle this better, but unfortunately we're still stuck with Tap 5.3. As a workaround we put all of the code in a single page. So far the code seems to work. But we still think that separating the editor into its own component is the better approach. So let us know if anyone succeeded implementing this :) Thanks. On Thu, Mar 27, 2014 at 5:52 AM, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: Sorry, I tried to draw a model of your page but I don't quite get it. The techniques used in that JumpStart page's components may have a problem when they're nested deeper. They're done better in the JumpStart preview for T5.4: http://jumpstart.doublenegative.com.au/jumpstart7/together/ajaxcomponentscrud/persons A key improvement is the passing of the component's context in each request, and using them to restore the component's parameters, rather than relying on the page context and @ActivationRequestParameter. I don't know if these thoughts are addressing the source of your problem, but I hope they help. Cheers, Geoff On 27/03/2014, at 1:42 AM, abangkis wrote: Or maybe someone has an example of a single page site made with tapestry. I've tried jumpstart http://jumpstart.doublenegative.com.au/jumpstart/together/ajaxcomponentscrud/personsit's something similar but able to be nested 3-4 component deep. Thanks for any clue. Cheers. On Tue, Mar 25, 2014 at 3:18 PM, abangkis abang...@gmail.com wrote: Hello, I have 3 nested object. A survey, a section and a question. A survey will contain sections and a section will contain questions. I want to create a single page editor for this nested object using ajax. In add survey page i have created two zone, survey zone and sectionListZone. The survey zone content will depend on a flag. It can show an input form for the survey or a view of the survey data. The sectionListZone content is a SectionHolder component (custom component for handling the section). The SectionHolder component also contains two zone, sZone and qZone. The sZone content also depend on a flag, to show an input form for the section or to view the section data. The qZone content is a QuestionHolder component (custom component for handling the questions). I've managed to create the add survey page to add view the survey data. I also manage to create the section holder component by using the same pattern as the add survey page (using ajax response renderer to render both zone when the form is submitted). The problem is in the SectionHolder component i can't render multiple zone using ajax renderer. Returning a block from onSuccess will work. But using ajax renderer to render the zone will result this error : Element 'sZone' does not have an associated Tapestry.ZoneManager object. Communication with the server failed: TypeError: Cannot call method 'getStorage' of null Here's my code for the Add Survey page the Section Holder. Thanks === Add Survey TML === t:zone t:id=surveyZone id=surveyZone form t:type=form t:id=frmCreateSurvey t:zone=^ div t:delegate to=surveyBlock/ /div div t:errors/ /div /form hr/ /t:zone
Re: Rendering multiple zone in nested component.
Right before you send the request that fails, if you use your browser's web inspect the page DOM, can you see the sZone div? If not, then that's the problem: the failing response would be referring to a zone that the client doesn't know about. This looks quite likely since your conditional blocks contain zones, as opposed to having your zones contain conditional blocks. On Friday, 28 March 2014, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: I see nothing wrong with your nested components approach, and there is nothing wrong with having a component render multiple zones as you are doing. I don't know the cause of your client-side exception, but I think your code must be very, very close to correct. On Thursday, 27 March 2014, abangkis abang...@gmail.comjavascript:_e(%7B%7D,'cvml','abang...@gmail.com'); wrote: Hai Geoff thanks a lot for trying :) I try to explain it better. Basically I have a survey object, that contains survey info and list of section object. The section object contains section info and list of question object. What we want to do is give the user the ability to fill the survey info, section info and question info in a single page (not moving between pages). What the user will see is this. When the user first open the page, it will only show the survey info form. After the user submit the survey form. Then the form fields will change to read only mode and the sections info form will be shown. We do this by using 3 block and 2 zone. Survey Input block and Survey view block for the survey zone. And Section Input block for the section zone. Rendering multiple zone when the Survey info form is submitted is done using the ajax renderer. It's pretty simple. Filling the section and the question info will follow the same pattern. So we create a SectionHolder component and Question Holder component. Using the same code as the page (2 zone that will render 3 block using ajax renderer). Hoping that with a component the code will be modular and easier to maintain. There is where we found the problem. It seems we can't use nested component with the ajax renderer. Yes probably tapestry 5.4 will handle this better, but unfortunately we're still stuck with Tap 5.3. As a workaround we put all of the code in a single page. So far the code seems to work. But we still think that separating the editor into its own component is the better approach. So let us know if anyone succeeded implementing this :) Thanks. On Thu, Mar 27, 2014 at 5:52 AM, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: Sorry, I tried to draw a model of your page but I don't quite get it. The techniques used in that JumpStart page's components may have a problem when they're nested deeper. They're done better in the JumpStart preview for T5.4: http://jumpstart.doublenegative.com.au/jumpstart7/together/ajaxcomponentscrud/persons A key improvement is the passing of the component's context in each request, and using them to restore the component's parameters, rather than relying on the page context and @ActivationRequestParameter. I don't know if these thoughts are addressing the source of your problem, but I hope they help. Cheers, Geoff On 27/03/2014, at 1:42 AM, abangkis wrote: Or maybe someone has an example of a single page site made with tapestry. I've tried jumpstart http://jumpstart.doublenegative.com.au/jumpstart/together/ajaxcomponentscrud/personsit's something similar but able to be nested 3-4 component deep. Thanks for any clue. Cheers. On Tue, Mar 25, 2014 at 3:18 PM, abangkis abang...@gmail.com wrote: Hello, I have 3 nested object. A survey, a section and a question. A survey will contain sections and a section will contain questions. I want to create a single page editor for this nested object using ajax. In add survey page i have created two zone, survey zone and sectionListZone. The survey zone content will depend on a flag. It can show an input form for the survey or a view of the survey data. The sectionListZone content is a SectionHolder component (custom component for handling the section). The SectionHolder component also contains two zone, sZone and qZone. The sZone content also depend on a flag, to show an input form for the section or to view the section data. The qZone content is a QuestionHolder component (custom component for handling the questions). I've managed to create the add survey page to add view the survey data. I also manage to create the section holder component by using the same pattern as the add survey page (using ajax response renderer to render both zone when the form is submitted). The problem is in the t:delegate to=sectionListBlock - To unsubscribe, e-mail:
Assets in component library
Hi, I'm moving my components to a Tapestry component library. But I'm not sure how to handle images used in those components. Before I just put them in *src/main/webapp/images/* and then used *img src=${context:/images/something.png /* But what's the right way of handling images in a Tapestry library. I've been trying different things without success. 1) Where do I put my images 2) How can I get the url to these images, also how if I need to get them dynamically (use of AssetSource?) Thanks
Re: Assets in component library
On Thu, 27 Mar 2014 12:19:41 -0300, Nathan Quirynen nat...@pensionarchitects.be wrote: Hi, Hi! I'm moving my components to a Tapestry component library. But I'm not sure how to handle images used in those components. Before I just put them in *src/main/webapp/images/* and then used *img src=${context:/images/something.png /* But what's the right way of handling images in a Tapestry library. I've been trying different things without success. 1) Where do I put my images In the classpath. If you're using the Maven source folder structure, and it seems you do, /src/main/resources is the place. 2) How can I get the url to these images, also how if I need to get them dynamically (use of AssetSource?) ${classpath:/images/something.png} -- Thiago H. de Paula Figueiredo Tapestry, Java and Hibernate consultant and developer http://machina.com.br - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Is there will be any Tapestry5 + AngularJS integration?
So.. what's the current best practice/front-runner for AngularJS integration? I see several users, Michael Wyraz to name one, have tipped their toes on AngularJS but I didn't find any sample sample apps, much less definitive libraries on Github or elsewhere. There are several areas where a small integration library would be able to help making them both work together seamlessly. Kalle On Tue, May 21, 2013 at 7:10 PM, Thiago H de Paula Figueiredo thiag...@gmail.com wrote: On Tue, 21 May 2013 22:18:40 -0300, Howard Lewis Ship hls...@gmail.com wrote: That's OK; that's the future direction of all web applications, 1 year in the futre? 5? 10? I don't see that coming, at least not for most of webapps. Single page webapps are good for desktop-like stuff but awful for search engines, which are vital for public-facing stuff. andsupporting that should be the principle goal going forward, even if it means that much of the T5 infrastructure (pages, components, server-side state, etc.) becomes somewhat vestigial As long as they still work as they (pages, components, etc) work as they do now, I see no problem in that. That's the most mature part of Tapestry, having gone through some major internal revisions already (page pool, page pool not used anymore, performance improvements) already. AJAX is one of the less mature parts and everything that improves that is a good thing IMHO. I have some ideas for having a very well integrated api approach, that would be on-par with pages and components. That will probably have to wait for 5.5. Basically, page-like objects that represent API end points and support injection, but lack the complexity of Tapestry pages. What would be the improvements over a page without a template? I'm not familiar with this part of the Tapestry code. For these page-like objects: what about an 'endpoints' subpackage, as we have now for pages, using the same routing rules? The less new logic we add and the most we reuse, the better. Or put them in the 'pages' package and we just use an annotation to tell that specific class is an endpoint and not a full-blown page. We'd still support live class reloading and maybe a bit of magic in terms of how incoming requests are routed, parsed to JSON or Java objects, and then how responses are generated. Live class reloading is a major selling point of Tapestry (maybe the biggest one) so it should be kept for pages, components, mixins and these new endpoint objects. -- Thiago H. de Paula Figueiredo - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Rendering multiple zone in nested component.
Hi Geoff, thanks for your response. I'm not really sure. Since I already move the code from the component to the page . But as I recall the sZone div is there, only it didn't attached to the Tapestry.ZoneManager. Yes, it could be the problem. We have zone that contain blocks and then inside the blocks there will be other zone with their own block (for editing the section question). I'll try experimenting on it again when some free time opens up. It feels really-really close to solving it. Thanks Geoff. On Thu, Mar 27, 2014 at 10:08 PM, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: Right before you send the request that fails, if you use your browser's web inspect the page DOM, can you see the sZone div? If not, then that's the problem: the failing response would be referring to a zone that the client doesn't know about. This looks quite likely since your conditional blocks contain zones, as opposed to having your zones contain conditional blocks. On Friday, 28 March 2014, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: I see nothing wrong with your nested components approach, and there is nothing wrong with having a component render multiple zones as you are doing. I don't know the cause of your client-side exception, but I think your code must be very, very close to correct. On Thursday, 27 March 2014, abangkis abang...@gmail.com javascript:_e(%7B%7D,'cvml','abang...@gmail.com'); wrote: Hai Geoff thanks a lot for trying :) I try to explain it better. Basically I have a survey object, that contains survey info and list of section object. The section object contains section info and list of question object. What we want to do is give the user the ability to fill the survey info, section info and question info in a single page (not moving between pages). What the user will see is this. When the user first open the page, it will only show the survey info form. After the user submit the survey form. Then the form fields will change to read only mode and the sections info form will be shown. We do this by using 3 block and 2 zone. Survey Input block and Survey view block for the survey zone. And Section Input block for the section zone. Rendering multiple zone when the Survey info form is submitted is done using the ajax renderer. It's pretty simple. Filling the section and the question info will follow the same pattern. So we create a SectionHolder component and Question Holder component. Using the same code as the page (2 zone that will render 3 block using ajax renderer). Hoping that with a component the code will be modular and easier to maintain. There is where we found the problem. It seems we can't use nested component with the ajax renderer. Yes probably tapestry 5.4 will handle this better, but unfortunately we're still stuck with Tap 5.3. As a workaround we put all of the code in a single page. So far the code seems to work. But we still think that separating the editor into its own component is the better approach. So let us know if anyone succeeded implementing this :) Thanks. On Thu, Mar 27, 2014 at 5:52 AM, Geoff Callender geoff.callender.jumpst...@gmail.com wrote: Sorry, I tried to draw a model of your page but I don't quite get it. The techniques used in that JumpStart page's components may have a problem when they're nested deeper. They're done better in the JumpStart preview for T5.4: http://jumpstart.doublenegative.com.au/jumpstart7/together/ajaxcomponentscrud/persons A key improvement is the passing of the component's context in each request, and using them to restore the component's parameters, rather than relying on the page context and @ActivationRequestParameter. I don't know if these thoughts are addressing the source of your problem, but I hope they help. Cheers, Geoff On 27/03/2014, at 1:42 AM, abangkis wrote: Or maybe someone has an example of a single page site made with tapestry. I've tried jumpstart http://jumpstart.doublenegative.com.au/jumpstart/together/ajaxcomponentscrud/personsit's something similar but able to be nested 3-4 component deep. Thanks for any clue. Cheers. On Tue, Mar 25, 2014 at 3:18 PM, abangkis abang...@gmail.com wrote: Hello, I have 3 nested object. A survey, a section and a question. A survey will contain sections and a section will contain questions. I want to create a single page editor for this nested object using ajax. In add survey page i have created two zone, survey zone and sectionListZone. The survey zone content will depend on a flag. It can show an input form for the survey or a view of the survey data. The sectionListZone content is a SectionHolder component (custom component for handling the section).