Hi everybody,
I've been playing with AIDA/Web for a project and am so far very impressed. I really like the ease with which you can bind objects to form controls and the Ajax stuff seems much easier to work with than Seaside's. That plus the ability to make a RESTful site are what won me over. I plan on having quite a few views where there will be a list of objects that don't contain many fields. At the bottom of this list will be a small form to allow people to quickly add new objects without having to load an separate view. I plan to accomplish this by having a singleton class representing all the "real" objects in our dataset and placing instance variables in views to represent new objects that are not yet live. Is there a fundamental flaw with this plan? Does this make sense? Is there a better way to do this? Thanks, Eli _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Hi Eli,
Eli Green pravi: > I've been playing with AIDA/Web for a project and am so far very impressed. I really like the ease with which you can bind objects to form controls and the Ajax stuff seems much easier to work with than Seaside's. That plus the ability to make a RESTful site are what won me over. Very nice to hear that! > I plan on having quite a few views where there will be a list of objects that don't contain many fields. At the bottom of this list will be a small form to allow people to quickly add new objects without having to load an separate view. I plan to accomplish this by having a singleton class representing all the "real" objects in our dataset and placing instance variables in views to represent new objects that are not yet live. > > Is there a fundamental flaw with this plan? Does this make sense? Is there a better way to do this? This plan perfectly correct. Making it ajaxified will make it even better. In short: 1. put a table of object in a seperate method, say #tableElement. 2. send every input in form #onChangePost to post it after entering, let it post it to a temporary new object. 3. add a button and send it #onClickUpdate: aTableElement. In above #tableElement method then check at the start to see if a new element is to be added. This is a quick idea from my head, maybe not the most elegant, but one of possibilities how to proceed towards the goal to have a fully ajaxified entry to your list. Best regards Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Eli Green-2
Hello Eli,
nice to see how the community grows! EG> I plan on having quite a few views where there will be a list EG> of objects that don't contain many fields. At the bottom of this EG> list will be a small form to allow people to quickly add new EG> objects without having to load an separate view. I plan to a bit besides your point but if you put the input form at the top of the list (if small enough) or at least put a link to the form at the top of the list your users will be grateful. They might have a smaller screen than you (if you limit the lists length) or their lists might be longer than yours. Scrolling down for (every) entry is a pain. Amongst other things I'm working to change the tutorial in this direction. Cheers, Herbert mailto:[hidden email] _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Eli Green-2
On Friday, January 23, 2009, at 11:45AM, "Herbert König" <[hidden email]> wrote: >Hello Eli, > >nice to see how the community grows! > Well, I'm still slightly nervous about deployment issues. Image-as-database makes perfect sense to me but my client knows SQL and may be more comfortable if I can persist to a RDBMS. We'll see. I'm prototyping in Smalltalk for now and will add external persistence later if I need to. Does anybody know of a virtual hosting service that they have successfully run AIDA on? > >a bit besides your point but if you put the input form at the top of >the list (if small enough) or at least put a link to the form at the >top of the list your users will be grateful. > Good point. I guess it will depend on whether the form is primarily for data entry or for reviewing existing entries. I haven't checked the documentation - is it possible to make WebGrid scrollable so that always occupies a certain percentage of the available vertical space? _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Hello Eli,
EG> Well, I'm still slightly nervous about deployment issues. EG> Image-as-database makes perfect sense to me but my client knows EG> SQL and may be more comfortable if I can persist to a RDBMS. We'll EG> see. I'm prototyping in Smalltalk for now and will add external EG> persistence later if I need to. I have an app (not web) in production with a mysql backend, it's just more work to do on the model. Nowadays I would look at SqueakDBX and not use the native driver. If in image persistence is an option (amount of data) I would keep all data in the image and just would add or change in the RDBMS. EG> Does anybody know of a virtual hosting service that they have successfully run AIDA on? If you find one, please tell me. When my web app is ready I'll start looking for something like seaside has with seasidehosting.st. A free or cheap hosting for free web services with an option to go commercial if one exceeds what can be provided for free or wants a commercial branch of ones web app. But I'm confident in this matter. EG> haven't checked the documentation - is it possible to make WebGrid EG> scrollable so that always occupies a certain percentage of the EG> available vertical space? Hopefully someone else will tell you but you always can handle this yourself. In case of the tutorial one would add displayedAddresses to AddressBookApp and an up down Button to viewMain of AddressBookApp. But someone more knowledgeable might know better. Cheers Herbert mailto:[hidden email] _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Janko Mivšek
Hi Janko,
I am going to end the Italian translaction of the tutorial; it has had a bit longer because I checked the content with some students of mine that had a very low level of Smalltalk knowledege; so, I made a tutorial for people that is learning both Smalltalk and Aida. It seems to me that the tutorial, as it is at present, has a loop; if you insert a new address, you are redirected to edit it; the edit redirect it to inserting and so on. Changing the actionAdd of ADemoAddressApp to : actionAdd self observee parent addAddress: self observee. self redirectTo: self observee parent view: #main it seems to me that all work fine. Do you mind checking it ? Many thanks Lorenzo ----- Original Message ----- From: "Janko Mivšek" <[hidden email]> To: "AIDA/Web general discussion list" <[hidden email]> Sent: Friday, January 23, 2009 12:25 AM Subject: Re: [aida] The greatest thing since sliced bread > Hi Eli, > > Eli Green pravi: > >> I've been playing with AIDA/Web for a project and am so far very >> impressed. I really like the ease with which you can bind objects to form >> controls and the Ajax stuff seems much easier to work with than >> Seaside's. That plus the ability to make a RESTful site are what won me >> over. > > Very nice to hear that! > >> I plan on having quite a few views where there will be a list of objects >> that don't contain many fields. At the bottom of this list will be a >> small form to allow people to quickly add new objects without having to >> load an separate view. I plan to accomplish this by having a singleton >> class representing all the "real" objects in our dataset and placing >> instance variables in views to represent new objects that are not yet >> live. >> >> Is there a fundamental flaw with this plan? Does this make sense? Is >> there a better way to do this? > > This plan perfectly correct. Making it ajaxified will make it even > better. In short: > > 1. put a table of object in a seperate method, say #tableElement. > 2. send every input in form #onChangePost to post it after entering, let > it post it to a temporary new object. > 3. add a button and send it #onClickUpdate: aTableElement. In above > #tableElement method then check at the start to see if a new element is > to be added. > > This is a quick idea from my head, maybe not the most elegant, but one > of possibilities how to proceed towards the goal to have a fully > ajaxified entry to your list. > > Best regards > Janko > > > -- > Janko Mivšek > AIDA/Web > Smalltalk Web Application Server > http://www.aidaweb.si > _______________________________________________ > Aida mailing list > [hidden email] > http://lists.aidaweb.si/mailman/listinfo/aida > _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Eli Green-2
Hi,
On Friday, January 23, 2009, at 12:25AM, "Janko Mivšek" <[hidden email]> wrote: > >This plan perfectly correct. Making it ajaxified will make it even >better. In short: > >1. put a table of object in a seperate method, say #tableElement. >2. send every input in form #onChangePost to post it after entering, let >it post it to a temporary new object. >3. add a button and send it #onClickUpdate: aTableElement. In above >#tableElement method then check at the start to see if a new element is >to be added. > >This is a quick idea from my head, maybe not the most elegant, but one >of possibilities how to proceed towards the goal to have a fully >ajaxified entry to your list. > I've just had a moment to sit down and take a look at how this is done and from what I'm seeing there's no way to integrate the current action methods into this setup. What I would ideally like is to be able to say this: (e addButtonText: 'Add' action #addObject) onClickUpdate: objectList. Ideally, what the Ajax handler should do is to still call the normal actionMainAddObject before refreshing the objectList component. If we return "false" in the onClick javascript handler, the page will not actually be submitted normally. It's not a big issue but it would be nice to be able to code this consistently. It has the added benefit of being able to work whether the user's browser supports javascript or not but to be perfectly honest I'm not sure how many lynx/links users I need to worry about. Oh, another benefit is that the form data gets posted all at once when the user has finished editing it, saving us the round-trips to and from the server. Anyway, not a major complaint, just a suggestion! Eli _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Eli Green pravi:
>> This is a quick idea from my head, maybe not the most elegant, but one >> of possibilities how to proceed towards the goal to have a fully >> ajaxified entry to your list. > I've just had a moment to sit down and take a look at how this is done and from what I'm seeing there's no way to integrate the current action methods into this setup. What I would ideally like is to be able to say this: > > (e addButtonText: 'Add' action #addObject) onClickUpdate: objectList. > > Ideally, what the Ajax handler should do is to still call the normal actionMainAddObject before refreshing the objectList component. If we return "false" in the onClick javascript handler, the page will not actually be submitted normally. It's not a big issue but it would be nice to be able to code this consistently. It has the added benefit of being able to work whether the user's browser supports javascript or not but to be perfectly honest I'm not sure how many lynx/links users I need to worry about. > > Oh, another benefit is that the form data gets posted all at once when the user has finished editing it, saving us the round-trips to and from the server. > > Anyway, not a major complaint, just a suggestion! Current action methods work nicely and follow MVC faithfully for views in your Apps. But for standalone ajaxified components, which can be reusable among different Apps and not only among views on the same App, well, here we have a problem. Where to put action methods in this case? To a component itself? To every App where this component runs? I have not yet a good answer, every suggestion or thought is therefore welcome. Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Le samedi 24 janvier 2009 à 11:36 +0100, Janko Mivšek a écrit :
> Eli Green pravi: > > >> This is a quick idea from my head, maybe not the most elegant, but one > >> of possibilities how to proceed towards the goal to have a fully > >> ajaxified entry to your list. > > > I've just had a moment to sit down and take a look at how this is done and from what I'm seeing there's no way to integrate the current action methods into this setup. What I would ideally like is to be able to say this: > > > > (e addButtonText: 'Add' action #addObject) onClickUpdate: objectList. > > > > Ideally, what the Ajax handler should do is to still call the normal actionMainAddObject before refreshing the objectList component. If we return "false" in the onClick javascript handler, the page will not actually be submitted normally. It's not a big issue but it would be nice to be able to code this consistently. It has the added benefit of being able to work whether the user's browser supports javascript or not but to be perfectly honest I'm not sure how many lynx/links users I need to worry about. > > > > Oh, another benefit is that the form data gets posted all at once when the user has finished editing it, saving us the round-trips to and from the server. > > > > Anyway, not a major complaint, just a suggestion! > > Current action methods work nicely and follow MVC faithfully for views > in your Apps. But for standalone ajaxified components, which can be > reusable among different Apps and not only among views on the same App, > well, here we have a problem. I think we already talked about it, and the result was that a way to do it is to extend WebComponent to have actions (I know it would be a deep change in Aida) and observee too. Cheers! Nico _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida signature.asc (204 bytes) Download Attachment |
In reply to this post by Lorenzo
Hi Lorenzo,
Lorenzo Schiavina pravi: > I am going to end the Italian translaction of the tutorial; it has had a bit > longer because I checked the content with some students of mine that had a > very low level of Smalltalk knowledege; so, I made a tutorial for people > that is learning both Smalltalk and Aida. This would be very nice to translate back to English too. A tutorial for both Smalltalk and Aida beginners! > It seems to me that the tutorial, as it is at present, has a loop; if you > insert a new address, you are redirected to edit it; the edit redirect it to > inserting and so on. > > Changing the actionAdd of ADemoAddressApp to : > > actionAdd > > self observee parent addAddress: self observee. > self redirectTo: self observee parent view: #main > > it seems to me that all work fine. Your one redirects back to address book, while the original one should redirect to the main view of address itself: actionAdd self observee parent addAddress: self observee. self redirectToView: #main This should definitely work if you have #viewMain implemented as in tutorial. I therefore don't understand from where the loop. Can you recheck again, specially if AddressApp>>viewMain is mplemented properly? Best regards Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Herbert König
Herbert König pravi:
> EG> Does anybody know of a virtual hosting service that they have successfully run AIDA on? > > If you find one, please tell me. When my web app is ready I'll start > looking for something like seaside has with seasidehosting.st. A free > or cheap hosting for free web services with an option to go > commercial if one exceeds what can be provided for free or wants a > commercial branch of ones web app. But I'm confident in this matter. I plan to replace my collocated server with a new one with virtual server support. Then one virtual server can be for free Aida hosting too. Other probably for commercial ones. What is then needed of course is to develop and admin app for such hosting ... New server will be there in a month or two. Admin app, well, that's harder to tell... But you can host your Aida based image (specially Squeak one with in-image VNC) on any virtual server. It is even easier because you don't need any database. All needed is ssh and VNC access to your Squeak image. At least I think so, I never tried by myself. Well, I lately opened an account on Amazon Elastic Cloud. Maybe we can try hosting one Aida web app there? Anyone interested on that? Best regards Janko -- Janko Mivšek Svetovalec za informatiko Eranova d.o.o. Ljubljana, Slovenija www.eranova.si tel: 01 514 22 55 faks: 01 514 22 56 gsm: 031 674 565 _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Eli Green-2
Eli Green pravi:
> Good point. I guess it will depend on whether the form is > primarily for data entry or for reviewing existing entries. > I haven't checked the documentation - is it possible to make > WebGrid scrollable so that always occupies a certain percentage > of the available vertical space? You can do that with CSS, just that I don't know from my mind, how. Anyone has time too look for such CSS example? Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Herbert König
Herbert König pravi:
> Hello Eli, > > nice to see how the community grows! > > EG> I plan on having quite a few views where there will be a list > EG> of objects that don't contain many fields. At the bottom of this > EG> list will be a small form to allow people to quickly add new > EG> objects without having to load an separate view. I plan to > > a bit besides your point but if you put the input form at the top of > the list (if small enough) or at least put a link to the form at the > top of the list your users will be grateful. > > They might have a smaller screen than you (if you limit the lists > length) or their lists might be longer than yours. Scrolling down for > (every) entry is a pain. Better solution is to use filter fields (see http://demo.aidaweb.si/?view=grid). Having a table with lots of rows is never a good idea and calls for better solution. That's why we have (besides paging) also very flexible column filters in WebGrid. Use them! Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Janko Mivšek
Hi,
If this can help, in a CSS BOX with defined dimension, you can define a scrolling behavior just setting the overflow: property to scroll, as in this small example width: 800; background-color: #F8F2FC; height:400px; overflow:scroll; here if the size of the content of the box will exceed the dimension, scroll bars will be created by the browser . Hope this can help ciao Giorgio
On Sat, Jan 24, 2009 at 3:37 PM, Janko Mivšek <[hidden email]> wrote: Eli Green pravi: _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Hello Giorgio,
gf> Hi, gf> If this can help, in a CSS BOX with defined dimension, you gf> can define a scrolling behavior just setting the overflow: gf> property to scroll, as in this small example good to know but I assume this still means, that for any added entry the whole list of entries has to be resent from the server? Am I right? Thanks Herbert mailto:[hidden email] _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Janko Mivšek
Hello Janko,
JM> I plan to replace my collocated server with a new one with virtual JM> server support. Then one virtual server can be for free Aida hosting JM> too. Other probably for commercial ones. What is then needed of course JM> is to develop and admin app for such hosting ... Really don't know what the people from netstyle (seasidehosting) have done in this regard. JM> New server will be there in a month or two. Admin app, well, that's JM> harder to tell... as usual, you are too fast for me :-)) JM> But you can host your Aida based image (specially Squeak one with JM> in-image VNC) on any virtual server. It is even easier because you don't JM> need any database. All needed is ssh and VNC access to your Squeak JM> image. At least I think so, I never tried by myself. I have no knowledge of maintaining servers. That's why I thought of an approach like netstyle. People provide the image and pay for the rest. JM> Well, I lately opened an account on Amazon Elastic Cloud. Maybe we can JM> try hosting one Aida web app there? Anyone interested on that? In the very far future, when (if :-)) I'll have more customers than two or three servers can handle.... Cheers Herbert mailto:[hidden email] _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Janko Mivšek
Hello Janko,
JM> Better solution is to use filter fields JM> (see http://demo.aidaweb.si/?view=grid). is there something to learn from this example which can't be learned from the tutorial? If so, I missed it. JM> Having a table with lots of rows is never a good idea and calls for JM> better solution. Yes! Many bad examples on the net. JM> That's why we have (besides paging) also very flexible JM> column filters in WebGrid. Use them! Filtering like used in the tutorial is only a good idea if you can afford to display the whole list in case the user empties all filters. As far as I browsed the code it's limited to String>>match:. Which is nice now that I know it. With *m##er* I could find names containing all variants of German "meier". Nice but the user has to know. I think it depends on the size of the lists (in the model) if one can rely on WebGrid's filtering capacity. For a big address book one would start with the first say 25 entries starting with "a". Entering a "b" into the filter would switch to the first 25 starting with "b", entering "br" would jump to e.g. "Brandon" onward. I think this is beyond the filter ability of WebGrid and this behaviour belongs into AddressBookApp and not into WebGrid. Tell me if you think I'm wrong, I'm planning for my own app. It would display the last 10 lines in case of data entry or 5 lines before and 4 lines behind the current entry in case of editing data. Cheers Herbert mailto:[hidden email] _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Herbert König
Herbert König pravi:
> gf> If this can help, in a CSS BOX with defined dimension, you > gf> can define a scrolling behavior just setting the overflow: > gf> property to scroll, as in this small example > > good to know but I assume this still means, that for any added entry > the whole list of entries has to be resent from the server? > > Am I right? Yep, but then turn on pagination and filters. That way you can handle really big number of rows. I have an app here with near 10.000 of rows. Without filters and pages you are in this case a dead man. Janko -- Janko Mivšek AIDA/Web Smalltalk Web Application Server http://www.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by giorgiof
Hi Giorgio,
Thanks for this CSS! I'm wondering to include this to WebGrid by introducing a new method, maybe #scrollableHeight: 400 ? Is this feature useful enough to support it with such a method? Janko giorgio ferraris pravi: > Hi, > If this can help, in a CSS BOX with defined dimension, you can define a > scrolling behavior just setting the overflow: property to scroll, as in > this small example > > width: 800; > background-color: #F8F2FC; > height:400px; > overflow:scroll; > > here if the size of the content of the box will exceed the dimension, > scroll bars will be created by the browser . > Hope this can help > ciao > Giorgio > > On Sat, Jan 24, 2009 at 3:37 PM, Janko Mivšek <[hidden email] > <mailto:[hidden email]>> wrote: > > Eli Green pravi: > > > Good point. I guess it will depend on whether the form is > > primarily for data entry or for reviewing existing entries. > > I haven't checked the documentation - is it possible to make > > WebGrid scrollable so that always occupies a certain percentage > > of the available vertical space? > > You can do that with CSS, just that I don't know from my mind, how. > Anyone has time too look for such CSS example? > > Janko > > > -- > Janko Mivšek > AIDA/Web > Smalltalk Web Application Server > http://www.aidaweb.si > _______________________________________________ > Aida mailing list > [hidden email] <mailto:[hidden email]> > http://lists.aidaweb.si/mailman/listinfo/aida > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Aida mailing list > [hidden email] > http://lists.aidaweb.si/mailman/listinfo/aida -- Janko Mivšek Svetovalec za informatiko Eranova d.o.o. Ljubljana, Slovenija www.eranova.si tel: 01 514 22 55 faks: 01 514 22 56 gsm: 031 674 565 _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
In reply to this post by Janko Mivšek
2009/1/24 Janko Mivšek <[hidden email]> -- Herbert König pravi: I started to write such application last year when we started to talk about free aida hosting. I don't really remember how far I was, but I can take a look.
ssh? why? The app should make it easy for users to upload and start/stop their images. and VNC access to your Squeak Why not :) We could host scribo website there for a while. Cheers! Nico Nicolas Petton http://nico.aidaweb.si _______________________________________________ Aida mailing list [hidden email] http://lists.aidaweb.si/mailman/listinfo/aida |
Free forum by Nabble | Edit this page |