Possible BUG in 5.3-alpha-13 : Parameter in Child default value in Parent throws Exception

2011-08-17 Thread dragan.sahpas...@gmail.com
Hi,
I would like to know if the following is a bug or a feature of tapestry 5.3
because it works in 5.2.5.

I get the following exception:
Unable to locate Method public java.lang.String getDefaultParam1():
com.test.components.Child.getDefaultParam1()

Child.tml
http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";>
${param1}


public class Child extends Parent{
@Property
@Parameter(value="defaultParam1")
 private String param1;
}

The parent doesn' have a template
public class Parent
{
 @Log
public String getDefaultParam1(){
return "Default value for parameter 1 in parent";
 }
}

tapestry: 5.3-alpha-13
java: openjdk version: 1.6.0_22 32 bit
os: ubuntu 11.04

Cheers,
Dragan Sahpaski


Re: SVN trunk, gradle build hangs @ > Building > :tapestry-beanvalidator:test

2011-08-07 Thread dragan.sahpas...@gmail.com
Well, selenium tests are mainly in the integration apps app1 to app6.
IDK if other tests besides these are selenium tests.

Cheers,
Dragan Sahpaski



On Sun, Aug 7, 2011 at 11:46 PM,  wrote:

> Thanks, that's what I was looking for.
> I guess I will look further into this whether I can disable selenium tests
> only,
> not all unit tests.
>
> "dragan.sahpas...@gmail.com" ** wrote:**
> > Oh, and if you explicitly want to disable tests just change the enabled
> > attribute from "true" to "false" for individual tests in
> > src->test->conf->testng.xml
> >
> > Cheers,
> > Dragan Sahpaski
> >
> >
> >
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>


Re: SVN trunk, gradle build hangs @ > Building > :tapestry-beanvalidator:test

2011-08-07 Thread dragan.sahpas...@gmail.com
Oh, and if you explicitly want to disable tests just change the enabled
attribute from "true" to "false" for individual tests in
src->test->conf->testng.xml

Cheers,
Dragan Sahpaski



On Sun, Aug 7, 2011 at 11:25 PM,  wrote:

> Is there a way to just disable the selenium tests?
> I, personally would just rather do that than to mess with my environment.
> For the subset of the trunk that I am compiling there aren't even any
> selenium tests to run...
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: SVN trunk, gradle build hangs @ > Building > :tapestry-beanvalidator:test

2011-08-07 Thread dragan.sahpas...@gmail.com
If you use eclipse just run eclipse:eclipse (generates classpath entries for
eclipse) and import the project as an existing project in eclipse and it
will build it for you.

Otherwise, just run gradle tasks and you will see all available tasks.
Here are some of the tasks.

assemble - Assembles all Jar, War, Zip, and Tar archives.
build - Assembles and tests this project.
buildDependents - Assembles and tests this project and all projects that
depend on it.
buildNeeded - Assembles and tests this project and all projects it depends
on.
classes - Assembles the main classes.
clean - Deletes the build directory.
jar - Assembles a jar archive containing the main classes.
testClasses - Assembles the test classes.

Cheers,
Dragan Sahpaski



On Sun, Aug 7, 2011 at 11:25 PM,  wrote:

> Is there a way to just disable the selenium tests?
> I, personally would just rather do that than to mess with my environment.
> For the subset of the trunk that I am compiling there aren't even any
> selenium tests to run...
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: SVN trunk, gradle build hangs @ > Building > :tapestry-beanvalidator:test

2011-08-07 Thread dragan.sahpas...@gmail.com
In ubuntu I just update the symlinks.
IDK if you can instruct selenium to use a custom command instead of just
firefox.

Cheers,
Dragan Sahpaski



On Sun, Aug 7, 2011 at 11:07 PM, Jon Williams
wrote:

> I'm on Firefox version 5.01. I know it's possible to install multiple
> versions of Firefox on OSX. The trick will be getting the 3.6 version to be
> default.
>
> thanks
>
> On Sun, Aug 7, 2011 at 1:44 PM, dragan.sahpas...@gmail.com <
> dragan.sahpas...@gmail.com> wrote:
>
> > Hi,
> > Which version of firefox do you have?
> > the current selenium version in t5 is compatible with 3.6 but not with
> > firefox 4
> > and firefox 5.
> >
> > Cheers,
> > Dragan Sahpaski
> >
> >
> >
> > On Sun, Aug 7, 2011 at 10:39 PM, Jon Williams
> > wrote:
> >
> > > Hi,
> > >
> > > I am attempting to build the SVN trunk.
> > > When gradle build gets to the point where it is indicating status ">
> > > Building > :tapestry-beanvalidator:test"
> > > Mozilla opens a new tab, with no content, and the build hangs.
> > >
> > > A wild guess, I need to do something to setup selenium locally?
> > > What else could be going wrong?
> > >
> > > thanks
> > >
> >
>


Re: SVN trunk, gradle build hangs @ > Building > :tapestry-beanvalidator:test

2011-08-07 Thread dragan.sahpas...@gmail.com
Hi,
Which version of firefox do you have?
the current selenium version in t5 is compatible with 3.6 but not with
firefox 4
and firefox 5.

Cheers,
Dragan Sahpaski



On Sun, Aug 7, 2011 at 10:39 PM, Jon Williams
wrote:

> Hi,
>
> I am attempting to build the SVN trunk.
> When gradle build gets to the point where it is indicating status ">
> Building > :tapestry-beanvalidator:test"
> Mozilla opens a new tab, with no content, and the build hangs.
>
> A wild guess, I need to do something to setup selenium locally?
> What else could be going wrong?
>
> thanks
>


Re: How to use a different zone to update after the AJAX submit?

2011-08-05 Thread dragan.sahpas...@gmail.com
On Fri, Aug 5, 2011 at 5:23 PM, stephanos2k
wrote:

> Let's assume I have *2 zones* and *1 event link*.
> I set up the event link to update zone #1 with the current time on click
> (zone="zone1").
>
> What if, on the server-side after the submit is issued, I decide that
> */before noon/ zone #1* and */after noon/ zone #2* is updated.
>
> Is this in any way possible?
>

Yes. Just return MultiZoneUpdate from the event handler - updating zone2,
with it's id and desired body.


> [PS: My real use case is updating a complete form vs. only the status bar
> in
> case of errors/warnings]
>
> Cheers
>
>
Cheers,
Dragan Sahpaski




>  --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/How-to-use-a-different-zone-to-update-after-the-AJAX-submit-tp4669860p4669860.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: ActionLink not Search Engine safe?

2011-07-31 Thread dragan.sahpas...@gmail.com
On Sun, Jul 31, 2011 at 12:32 PM, PXZ  wrote:

>
> Taha Hafeez wrote:
> >
> > A link can be used for updates. As a developer it is our responsibility
> to
> > ensure that such a link is only available to properly authenticated
> users.
> And what if the link action should be available for publicly
> non-authenticated users? For example a blogging website where everybody can
> post comments. Than actionlinks cannot be used.
>

As Thiago said, you (the developer) are responsible of doing this.
One solution is to check the user-agent header. Here is a list of common
user agents http://www.robotstxt.org/db.html.
You can get the user-agent header by injecting the Reqest in your page

@Inject
private Request request;

and use
String getHeader(String name);

Also you can see all headers using  List getHeaderNames();

Cheers,
Dragan Sahpaski

>
> There no easy solution in Tapestry to solve this :(
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/ActionLink-not-Search-Engine-safe-tp4490777p4651671.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Checkout of tapestry-project not working

2011-07-30 Thread dragan.sahpas...@gmail.com
On Sat, Jul 30, 2011 at 8:44 PM, nillehammer <
tapestry.nilleham...@winfonet.eu> wrote:

> I have been trying to checkout the Tapestry sources for some days now.
> Haven't succeeded.
> I have followed the instructions given here:
> http://tapestry.apache.org/community.html
> Namely using this command: svn checkout
> https://svn.apache.org/repos/asf/tapestry/tapestry5/trunk tapestry-project
>

Just tried in terminal with svn checkout and it worked.
Try maybe http instead of https.


> After waiting for a long time i get the following error on the command
> line:
> svn: "OPTIONS von
> »https://svn.apache.org/repos/asf/tapestry/tapestry5/trunk«: Konnte keine
> Verbindung zum Server herstellen (https://svn.apache.org)"
> Which is tranlated "svn: OPTIONS of
> »https://svn.apache.org/repos/asf/tapestry/tapestry5/trunk«: Could not
> establish connection to server (https://svn.apache.org)
>
> Same result when I try it with Eclipse's svn plugin.
>
> -
> http://www.winfonet.eu
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Checkout-of-tapestry-project-not-working-tp4650349p4650349.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Form using both a zone and no zone.

2011-07-27 Thread dragan.sahpas...@gmail.com
On Tue, Jul 26, 2011 at 11:48 PM, nillehammer <
tapestry.nilleham...@winfonet.eu> wrote:

>
> Dragan Sahpaski  wrote:
> >
> > Interesting,
> > As I never had used annotations for event handlers in any project so far.
> > I choose the name of the event to imply what is needed to be done in the
> > method, which I prefer to keep it as short as possible (3-4 lines of
> >  code, rarely any more).
> >
> Same with me. My methods also mostly contain no more than a few lines. But
> to get to know, what is done, one would have to read the source code and
> hopefully understand it.
>


Wow, thanks for they example, that certainly points out the advantage of
using the annotation approach instead of the naming convention approach.

I'm just not sure why I've never used it. Guess I never thought about this
advantage too much. Thanks for the example once again.

Another advantage of the annotation approach would be that it can be easy to
rename an event during development of a custom component for example by
using @OnEvent(value=MyEvents.SOME_EVENT), using simple refactor->rename in
an IDE. This doesn't happen with tapestry events I suppose because they are
considered as a public api, but can clearly happen during development of
some t5 project using new events.

Also, sorry for stealing the thread :)

Cheers,
Dragan Sahpaski


>
> To give you simple example:
> Imagine someone would have to read your code (perhaps even you in 6 monts)
> trying to figure out what's going on. First aproach event handler with
> naming convention:
>
> final Class onSuccessFromForm() {
>  // Ok, he's handling the succsess event of the form. But what's he doing?
>
>  this.dao.save(this.entity);
>  // Ah, he has saved an entity using a dao.
>
>  return Success.class;
>  // He returns a Success.class. Hmm, why is he doing that?
>  // ... read Tapestry documentation... come back here
>  // Ok, Success.class is in the pages subpackage and returning classes
>  // from there means to forward to the particular page.
> }
>
> Now Annotation aproach with meaningfull name:
> @OnEvent(value="success", component="form")
> final Class storeEntityAndForwardToSuccess() {
>  // Ok, got it he saves an entity and forwards to Success.
>  // I'm not interested in HOW he does it and am glad not to have
>  // to read any further.
>
>  this.dao.save(this.entity);
>  return Success.class;
> }
>
> I know this example may be a bit over simplified, but I hove you got my
> point.
>
> Lastly I want to apologize to George for stealing his thread. I am glad to
> discuss code styling matters, but perhaps we should open a new thread for
> that.
>
> Cheers nillehammer
>
>
>
>
> -
> http://www.winfonet.eu
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Form-using-both-a-zone-and-no-zone-tp4635695p4636545.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Form using both a zone and no zone.

2011-07-26 Thread dragan.sahpas...@gmail.com
On Tue, Jul 26, 2011 at 9:48 PM, nillehammer <
tapestry.nilleham...@winfonet.eu> wrote:

>
> Thiago H. de Paula Figueiredo wrote:
> >
> > By the way, any event in Tapestry can be handled by using an annotation
> in
> > the method instead of relying on naming conventions. It's your choice. :)
> >
> That cannot be repeated often enough. I think it is better style to use a
> name that explains, what is realy done in the method rather than that it is
> jus an event handler.
>

Interesting,
As I never had used annotations for event handlers in any project so far.
I choose the name of the event to imply what is needed to be done in the
method, which I prefer to keep it as short as possible (3-4 lines of code,
rarely any more).

Anyway it's nice to hear different opinions.

Cheers,
Dragan Sahpaski




>
> -
> http://www.winfonet.eu
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Form-using-both-a-zone-and-no-zone-tp4635695p4636078.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Form using both a zone and no zone.

2011-07-26 Thread dragan.sahpas...@gmail.com
I wasn't aware you had nested zones.
Please paste the code here.

It probably is the case that when the outer zone gets updated, tapestry
changes the id of the inner zone, so if you wire the inner zone to the form
using the zone paramter with a literal value of the id, than the form cannot
find that zone.

Anyway please paste the code here and the exact error.

Cheers,
Dragan Sahpaski

On Tue, Jul 26, 2011 at 9:11 PM, George Christman
wrote:

> I think I spoke to soon, I'm getting a different error with all the nested
> zones. Can't find zone. Any thoughts
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Form-using-both-a-zone-and-no-zone-tp4635695p4635965.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Form using both a zone and no zone.

2011-07-26 Thread dragan.sahpas...@gmail.com
Hi,
When you submit a form using ajax you can return a Link that will send a
redirect read more in the doc
here
.

When having two submit buttons you can identify which one is clicked by
using
the onSelected event. For example submit with t:id="saveDB" will fire
onSelectedFromSaveDB.

Cheers,
Dragan Sahpaski



On Tue, Jul 26, 2011 at 7:47 PM, George Christman
wrote:

> Hello, I'm using  the AjaxFormLoop component in my page. Nested within it
> is
> a select menu that contains an "Add New" option. When you click add new a
> popup box appears with an additional AddFormLoop component that contains
> all
> the options contained within the select menu.  When you add a new row with
> item to the popup AjaxFormLoop component and click the popup save button,
> the data is persisted to the main object and the entire page is reloaded
> wiith persisted data. The nested select menu from page AjaxFormLoop is now
> rendered with new values from popup box. In order to commit the main object
> to the database, there is a second save button on the page which handles
> database commits.
>
> What I'd like to do.
>
> When you only need to commit data to the user session, I'd like to submit
> form using ajax which will allow the menus to update and popup box to
> disappear while allowing page scroll to remain static
>
> Now when saving to the database using the Save to Database button, I'd like
> to just commit the object to the database and return page with context.
>
> I'm not sure how to get both functions out of the form. Any Ideas?
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Form-using-both-a-zone-and-no-zone-tp4635695p4635695.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Delete confirmation with beaneditform

2011-07-26 Thread dragan.sahpas...@gmail.com
On Tue, Jul 26, 2011 at 3:49 PM, Thiago H. de Paula Figueiredo <
thiag...@gmail.com> wrote:

> On Tue, 26 Jul 2011 10:31:28 -0300, dragan.sahpas...@gmail.com <
> dragan.sahpas...@gmail.com> wrote:
>
>  Yes sure I agree, but I guess It cannot be done inside the BeanEditForm
>> unless you introduce a new component quite similar to it with this delete
>> functionality.
>>
>
> Again, just use Form and BeanEditor instead of BeanEditForm. As Taha said,
> copy and paste reuse is the worst one by far. In this scenario, it's even
> worse, as all the logic BeanEditForm has to generates the fields is actually
> imiplemented inside BeanEditor. And Tapestry already has the building blocks
> to do almost everything of what the original poster wants.
>

OK you are right. I totally agree with you. Avoid copy->paste and make a new
component.

Cheers,
Dragan Sahpaski


> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
> and instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br
>


Re: Delete confirmation with beaneditform

2011-07-26 Thread dragan.sahpas...@gmail.com
On Tue, Jul 26, 2011 at 3:26 PM, Taha Hafeez wrote:

> Hi Dragan,
>
> IMHO copy-paste is never good. Think about any change in BeanEditForm
> in the future.
>

Yes sure I agree, but I guess It cannot be done inside the BeanEditForm
unless you introduce a new component quite similar to it with this delete
functionality.

Cheers,
Dragan Sahpaski

>
> regards
> Taha
>
> On Tue, Jul 26, 2011 at 6:47 PM, dragan.sahpas...@gmail.com
>  wrote:
> > Hi,
> > On Tue, Jul 26, 2011 at 2:13 PM, Thiago H. de Paula Figueiredo <
> > thiag...@gmail.com> wrote:
> >
> >> On Tue, 26 Jul 2011 04:38:39 -0300, dragan.sahpas...@gmail.com <
> >> dragan.sahpas...@gmail.com> wrote:
> >>
> >>  Just customize the bean edit form by adding a delete button, by copying
> >>> the entire tml and java class in your components package and make the
> needed
> >>> changes. I use this approach and works for me.
> >>>
> >>
> >> Hi!
> >>
> >> I'm sorry, but I wouldn't recommend this at all. BeanEditForm is almost
> >> nothing more than a Form with a BeanEditor and an HTML submit button
> inside.
> >> The real work is done by BeanEditor, so copying BeanEditForm makes
> >> absolutely no sense to me.
> >>
> >> Why not? If you just want to add a delete button, than that doesn't
> nothing
> > to do with the actual beaneditor. You just add a delete button that
> should
> > only be aware of the editing object in order to delete it (if you want
> that
> > automatically to work in the bean edit form component).
> >
> > Cheers
> > Dragan Sahpaski
> >
> >>
> >> --
> >> Thiago H. de Paula Figueiredo
> >> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
> >> and instructor
> >> Owner, Ars Machina Tecnologia da Informação Ltda.
> >> http://www.arsmachina.com.br
> >>
> >>
> --**--**-
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.**apache.org<
> users-unsubscr...@tapestry.apache.org>
> >> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>
> >>
> >
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Delete confirmation with beaneditform

2011-07-26 Thread dragan.sahpas...@gmail.com
Hi,
On Tue, Jul 26, 2011 at 2:13 PM, Thiago H. de Paula Figueiredo <
thiag...@gmail.com> wrote:

> On Tue, 26 Jul 2011 04:38:39 -0300, dragan.sahpas...@gmail.com <
> dragan.sahpas...@gmail.com> wrote:
>
>  Just customize the bean edit form by adding a delete button, by copying
>> the entire tml and java class in your components package and make the needed
>> changes. I use this approach and works for me.
>>
>
> Hi!
>
> I'm sorry, but I wouldn't recommend this at all. BeanEditForm is almost
> nothing more than a Form with a BeanEditor and an HTML submit button inside.
> The real work is done by BeanEditor, so copying BeanEditForm makes
> absolutely no sense to me.
>
> Why not? If you just want to add a delete button, than that doesn't nothing
to do with the actual beaneditor. You just add a delete button that should
only be aware of the editing object in order to delete it (if you want that
automatically to work in the bean edit form component).

Cheers
Dragan Sahpaski

>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
> and instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br
>
> --**--**-
> To unsubscribe, e-mail: 
> users-unsubscribe@tapestry.**apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Delete confirmation with beaneditform

2011-07-26 Thread dragan.sahpas...@gmail.com
Hi,

On Tue, Jul 26, 2011 at 5:15 AM, Thiago H. de Paula Figueiredo <
thiag...@gmail.com> wrote:

> On Mon, 25 Jul 2011 23:29:20 -0300, TG  wrote:
>
>  I use beaneditform to generate my CRUD UI and web tiers automagically. I
>> would like to have Delete action prompt me to confirm or cancel the
>> action, no customization required, plain confirmation box.
>>
>
> Most of what you want is done by using a BeanEditor and a couple Submit
> instances inside a Form instead of using BeanEditForm. No additional Java
> code needed. The confirmation box needs JavaScript and there are some
> examples in this list. JumpStart has at least one example of this (and lots
> of examples of many other things): http://jumpstart.**
> doublenegative.com.au/**jumpstart/
>
>
>  I saw some threads in
>> this forum, it does not seem to have any one link annotation or codes that
>> can let me just provide this simple functionalities.I do not want to write
>> any Java class or anything that is more than 1 or 2 lines of codes, is it
>> possible?
>>
>
> Don't you think you're asking too much? ;) As Howard once said,
> BeanEditForm, BeanEditor, and Grid are meant to be used to get something
> working quickly, not to be the solution of all scenarios.
>

Just customize the bean edit form by adding a delete button, by copying the
entire tml and java class in your components package and make the needed
changes. I use this approach and works for me.

I often use complex components, that let me assemble pages like lego boxes.
I prefer extreme scenarios where for CRUD pages (Even customized crud pages)
don't have ANY (or a few lines at max) java code in the page class, just TML
;)

Cheers,
Dragan Sahpaski


>
> --
> Thiago H. de Paula Figueiredo
> Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
> and instructor
> Owner, Ars Machina Tecnologia da Informação Ltda.
> http://www.arsmachina.com.br
>
>
> --**--**-
> To unsubscribe, e-mail: 
> users-unsubscribe@tapestry.**apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Ajax Navigation

2011-07-25 Thread dragan.sahpas...@gmail.com
Nice,
Do you have some tests for it to see it in action?
I couldn't find any using the bind mixin.

Cheers,
Dragan Sahpaski



On Mon, Jul 25, 2011 at 2:12 AM, Barry Books  wrote:

> If you look in my fork of tapestry5-jquery on github
>
> https://github.com/trsvax/tapestry5-jquery
>
> there is a mixin called bind that supports this. You can bind jQuery
> events to Tapestry component events and provide a tittle and history
> callback when the event is triggered. It also supports Tapestry zones.
> Since there is no standard jQuery history module the implementation is
> pretty generic.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Ajax Navigation

2011-07-24 Thread dragan.sahpas...@gmail.com
HI,
On Sun, Jul 24, 2011 at 7:14 PM, stephanos2k
wrote:

> Thanks a lot for your post! :-)
>
> I looked at what you suggested, are there any hints/tips on how to
> integrate
> such functionality with Tapestry?
>
> Well it's obviously not trivial.


> I suppose a JS script (like history.js) should receive and handle + request
> and 'call' Tapestry to actually do the rendering. But I can't seem to come
> up with a good way on how to 'squeeze' the library in-between.
>
> Basically the short example here  
> relies
on rendering JSON in different states (all the logic is based on states).
Using tapestry you can make a GET request and return a JSON response. So
that's maybe the simplest scenario.

More complex scenario would be that you integrate zone's in the whole
picture. This one's tricky and I wouldn't suggest much at the moment. Maybe
one idea would be: when you make an ajax request using an EventLink you
somehow put the name of the action (or some other ID) in the URL and also
the context and the parameters in the URL (basically all info that the
EventLink carries), so if you bookmark and make a GET you make an Ajax call
using those parameters and update the corresponding zone reconstructing the
link that triggers the update.
I'm not sure if this is a good idea, but as I said generalizing
the functionality using zones is not trivial.

Cheers
Dragan Sahpaski


> Cheers
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Ajax-Navigation-tp4627764p4628324.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Ajax Navigation

2011-07-24 Thread dragan.sahpas...@gmail.com
Hi,
The approach in general is either use HTML5 history (works for html5
compatible browsers only), or use the hash change mechanism.

As far as I know there is no out of the box integration with tapestry5, but
there are various js scripts like the
history.jsjquery plugin
(supports html5 history and fallback for html4 with the hash
change mechanism), that you can try and share your experience with
community.

Cheers,
Dragan Sahpaski



On Sun, Jul 24, 2011 at 1:24 PM, stephanos2k
wrote:

> I have a web page similar to GMail: one list of items, sub-folders (like
> Spam/Inbox) and separate items to 'go in to'. Everything works via AJAX,
> but
> now I want to have bookmarkable URLs.
>
> Any recommendations on how to achieve this with Tapestry?
>
> Cheers
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Ajax-Navigation-tp4627764p4627764.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Loop Map

2011-07-14 Thread dragan.sahpas...@gmail.com
Here is a short example:

TML (not tested)


key: ${key}  -   value: ${value}



JAVA (not tested)

private Map map;

public Collection getKeys(){

return map.keyset();

}

@Property
private String key;

public String getValue(){

return map.get(key);

}

Cheers,
Dragan Sahpaski



On Fri, Jul 15, 2011 at 8:27 AM, dick_hu  wrote:

> How can I Loop the Map?
> in the loop I can get the key and value.
> Can anyone share a part of code?
> Thanks a lot.
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Loop-Map-tp4589569p4589569.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Palette inside a beaneditor

2011-07-01 Thread dragan.sahpas...@gmail.com
Hi,

On Fri, Jul 1, 2011 at 9:14 PM, Mark  wrote:

> I have a beaneditor inside an Ajax loop that is inside a form.  One of
> the attributes needs to be a palette.  When I try to simply add it as
> a parameter, it doesn't show up.  It looks like it would work if I
> skip using the beaneditor and just add all the fields manually. Is
> there a reason this doesn't seem to work or am I overlooking something
> silly?
>

Please use the add parameter which adds fields not present in the default
generated BeanModel.
 


> Also is there a way for me to tell Tapestry to use the Palette
> automatically whenever it tries to render this particular attribute
> inside of a beaneditor or beaneditorform?
>

Yes. You have to  contribute to BeanBlockSource etc.
There is a nice explanation in the tapestry
documentation
.


> Thanks for any suggestions.
>
> Mark
>
>
> source="event.ticketClasses"  encoder="ticketClassEncoder"
> value="ticketClass">
>
> 
>
>  t:id="discountDefinitions"
> selected="ticketClass.discountDefinitions"
>
>  encoder="discountDefinitionEncoder" model="discountDefinitionsModel"/>
>
>
>
>remove ticket class
>
> t:zone="ticketClasses">Add a ticket class
>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Java Magic has 10000+ hits

2011-06-28 Thread dragan.sahpas...@gmail.com
I have you on my rss reader.
I'm I the only one?

Cheers,
Dragan Sahpaski



On Tue, Jun 28, 2011 at 9:20 AM, Taha Hafeez wrote:

> Thank God I have only 1 :)
>
>
> On Tue, Jun 28, 2011 at 12:47 PM, Chris Collins  wrote:
>
> > Do you know what your uniques are, were those browser or rss reader
> > requests?  If you had 133 people who added your rss to their rss reader,
> > assuming it only fetched from your feed once a day that would be about
> 130
> > people :-{
> >
> > Best
> >
> > C
> >
> >
> > On Jun 27, 2011, at 11:50 PM, Taha Hafeez wrote:
> >
> > > Hi
> > >
> > > More than 1 hits in two and a half months, not bad.
> > >
> > > regards
> > > Taha
> >
> >
> > -
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >
>


Re: onPrepare(Integer id)

2011-06-13 Thread dragan.sahpas...@gmail.com
Hi,
You are not missing anything.

Insert an onPrepare() with no arguments.
tapestry will not call onPrepare(Integer officeId) with null for officeId.

Cheers,
Dragan Sahpaski



On Mon, Jun 13, 2011 at 5:54 PM, Tony Nelson  wrote:

> I'm trying to create a simple form that will work for both Add and Edit.
>  I'm trying to use onPrepare to setup the database object and the code works
> fine for an existing object.  When I try to use the form with a new object
> (id = null) it appears that onPrepare isn't called, so I end up with null
> pointer exceptions trying to build the form.
>
> Here is my simple controller:
>
> package com.starpoint.helpdesk.pages.office;
>
> import com.starpoint.helpdesk.business.OfficeLogic;
> import com.starpoint.helpdesk.domain.Office;
> import com.sun.istack.internal.Nullable;
> import org.apache.tapestry5.annotations.Log;
> import org.apache.tapestry5.annotations.Persist;
> import org.apache.tapestry5.annotations.Property;
> import org.apache.tapestry5.ioc.annotations.Inject;
> import org.slf4j.Logger;
>
>
> /**
>  */
> public class EditOffice {
>
>@Inject
>private Logger logger;
>
>@Inject
>private OfficeLogic officeLogic;
>
>@Persist
>private Integer officeId;
>
>@Property
>private Office office;
>
>public Integer getOfficeId() {
>return officeId;
>}
>
>@Log
>public void setOfficeId(@Nullable Integer officeId) {
>this.officeId = officeId;
>}
>
>@Log
>void onPrepare(Integer officeId) {
>if (office == null) {
>office = officeId == null ? new Office() :
> officeLogic.getOffice(officeId);
>}
>}
>void onActivate(Integer officeId) {
>this.officeId = officeId;
>}
>
>Integer onPassivate() {
>return officeId;
>}
>
>public Object onSuccess() {
>logger.info("**: " + office.toString());
>return this;
>}
> }
>
>
> And my form:
>
>   t:sidebarTitle="Current Time"
>  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";
>  xmlns:p="tapestry:parameter">
>
> 
>
>
>
>Office Name
> value="prop:office.officeName">
>
>
>
>
>Save
> Office
>
>
>
>
> 
>
> 
>
> What am I missing?
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: Easiest way to communicate with the WebApp

2011-06-12 Thread dragan.sahpas...@gmail.com
Hi,
You can start a thread in your AppModule with a @Startup method and poll for
changes on a regular interval.

Cheers,
Dragan Sahpaski



On Sun, Jun 12, 2011 at 1:22 PM, Erik Fäßler wrote:

> Hey all,
>
> the web application I'm developing depends on some resources which may
> change on a regular basis. I have a plain Java application which is
> responsible for creating/updating these resources, e.g. a database table.
> I would like this update application to be able to tell my tapestry web app
> that new data is available and should be loaded. I would like to send a
> command like "update" to the web app which then would tell the services that
> new resources are available and that they should reload these.
> The question: Which would be easiest way to do this? I have found a package
> "tapestry-resteasy" which seems to offer a RESTful interface quite nicely.
> However, I do not intend to offer a public API to my web application - I
> would rather hide the update functionality from the public.
>
> I would be glad for a few tips about in which direction I should think and
> search here.
>
> Thanks and best regards,
>
> Erik
> -
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


Re: updating a zone on form submit

2011-06-01 Thread dragan.sahpas...@gmail.com
The form will change it's id on a zone update, so either manualy generate it
or maybe do it like this

@InjectComponent
private Form addToLightboxForm;

public String getAddToLightboxFormId(){

return addToLightboxForm.getClientId();

}

and
onchange="$('${addToLightboxFormId}').fire(Tapestry.FORM_PROCESS_SUBMIT_EVENT);"
Cheers,
Dragan Sahpaski



On Wed, Jun 1, 2011 at 4:32 PM, Ray Nicholus  wrote:

> 
> 
>:
> onchange="$('addToLightboxForm').fire(Tapestry.FORM_PROCESS_SUBMIT_EVENT);"
> value="selectedLightboxName" label="literal:Add To Lightbox"/>
>
> 
>
> On the Java side:
>
> public Object onSubmitFromAddToLightboxForm()
>  {
> if (selectedLightboxName.equals(AddToLightboxModel.NEW_LIGHTBOX_NAME))
>  {
> return onAddToNewLightbox();
> }
>  onAddToLightbox();
> return this;
> }
>
>
> On Wed, Jun 1, 2011 at 9:29 AM, dragan.sahpas...@gmail.com <
> dragan.sahpas...@gmail.com> wrote:
>
> > It works good for me.
> > Paste the entire code here.
> >
> > Cheers,
> > Dragan Sahpaski
> >
> >
> >
> > On Wed, Jun 1, 2011 at 4:22 PM, Ray Nicholus 
> wrote:
> >
> > > This is causing all sorts of other odd issues.  First, the onSubmit for
> > the
> > > form is only called occasionally now.  I can't predict when it will and
> > > will
> > > not be called.
> > >
> > > On Wed, Jun 1, 2011 at 9:08 AM, dragan.sahpas...@gmail.com <
> > > dragan.sahpas...@gmail.com> wrote:
> > >
> > > > For example use it in a submit element like this:
> > > >
> > > > onchange="$('formId').fire(Tapestry.FORM_PROCESS_SUBMIT_EVENT);"
> > > >
> > > >
> > > > Cheers,
> > > > Dragan Sahpaski
> > > >
> > > >
> > > >
> > > > On Wed, Jun 1, 2011 at 4:04 PM, Ray Nicholus 
> > > wrote:
> > > >
> > > > > Thanks for the info.  Where exactly do I put the javascript dragon
> > > > listed?
> > > > >
> > > > > On Wed, Jun 1, 2011 at 9:02 AM, Thiago H. de Paula Figueiredo <
> > > > > thiag...@gmail.com> wrote:
> > > > >
> > > > > > On Wed, 01 Jun 2011 10:51:09 -0300, Ray Nicholus <
> > > rnicho...@widen.com>
> > > > > > wrote:
> > > > > >
> > > > > >  I guess I'm not sure what zone I need to specify in the form tag
> > or
> > > > why
> > > > > I
> > > > > >> need to specify a zone at all.
> > > > > >>
> > > > > >
> > > > > > Tapestry only sets up an AJAX form submit if you use the zone
> > > > parameter.
> > > > > > When returning a MultiZoneUpdate, the value of this parameter is
> > > > ignored.
> > > > > >
> > > > > >
> > > > > >  I only want to update a zone if one
> > > > > >> particular option in the form's Select component is selected.
>  In
> > > > fact,
> > > > > >> when a new item in the Select is selected, I am submitting the
> > form
> > > > via
> > > > > >> javascript (onchange=this.form.submit()).
> > > > > >>
> > > > > >
> > > > > > This will probably not trigger an AJAX form submission. The right
> > way
> > > > was
> > > > > > cited by Dragan in this thread.
> > > > > >
> > > > > > --
> > > > > > Thiago H. de Paula Figueiredo
> > > > > > Independent Java, Apache Tapestry 5 and Hibernate consultant,
> > > > developer,
> > > > > > and instructor
> > > > > > Owner, Ars Machina Tecnologia da Informação Ltda.
> > > > > > http://www.arsmachina.com.br
> > > > > >
> > > > > >
> > > > > >
> > -
> > > > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > > > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Re: updating a zone on form submit

2011-06-01 Thread dragan.sahpas...@gmail.com
It works good for me.
Paste the entire code here.

Cheers,
Dragan Sahpaski



On Wed, Jun 1, 2011 at 4:22 PM, Ray Nicholus  wrote:

> This is causing all sorts of other odd issues.  First, the onSubmit for the
> form is only called occasionally now.  I can't predict when it will and
> will
> not be called.
>
> On Wed, Jun 1, 2011 at 9:08 AM, dragan.sahpas...@gmail.com <
> dragan.sahpas...@gmail.com> wrote:
>
> > For example use it in a submit element like this:
> >
> > onchange="$('formId').fire(Tapestry.FORM_PROCESS_SUBMIT_EVENT);"
> >
> >
> > Cheers,
> > Dragan Sahpaski
> >
> >
> >
> > On Wed, Jun 1, 2011 at 4:04 PM, Ray Nicholus 
> wrote:
> >
> > > Thanks for the info.  Where exactly do I put the javascript dragon
> > listed?
> > >
> > > On Wed, Jun 1, 2011 at 9:02 AM, Thiago H. de Paula Figueiredo <
> > > thiag...@gmail.com> wrote:
> > >
> > > > On Wed, 01 Jun 2011 10:51:09 -0300, Ray Nicholus <
> rnicho...@widen.com>
> > > > wrote:
> > > >
> > > >  I guess I'm not sure what zone I need to specify in the form tag or
> > why
> > > I
> > > >> need to specify a zone at all.
> > > >>
> > > >
> > > > Tapestry only sets up an AJAX form submit if you use the zone
> > parameter.
> > > > When returning a MultiZoneUpdate, the value of this parameter is
> > ignored.
> > > >
> > > >
> > > >  I only want to update a zone if one
> > > >> particular option in the form's Select component is selected.  In
> > fact,
> > > >> when a new item in the Select is selected, I am submitting the form
> > via
> > > >> javascript (onchange=this.form.submit()).
> > > >>
> > > >
> > > > This will probably not trigger an AJAX form submission. The right way
> > was
> > > > cited by Dragan in this thread.
> > > >
> > > > --
> > > > Thiago H. de Paula Figueiredo
> > > > Independent Java, Apache Tapestry 5 and Hibernate consultant,
> > developer,
> > > > and instructor
> > > > Owner, Ars Machina Tecnologia da Informação Ltda.
> > > > http://www.arsmachina.com.br
> > > >
> > > >
> > > > -
> > > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > > > For additional commands, e-mail: users-h...@tapestry.apache.org
> > > >
> > > >
> > >
> >
>


Re: updating a zone on form submit

2011-06-01 Thread dragan.sahpas...@gmail.com
For example use it in a submit element like this:

onchange="$('formId').fire(Tapestry.FORM_PROCESS_SUBMIT_EVENT);"


Cheers,
Dragan Sahpaski



On Wed, Jun 1, 2011 at 4:04 PM, Ray Nicholus  wrote:

> Thanks for the info.  Where exactly do I put the javascript dragon listed?
>
> On Wed, Jun 1, 2011 at 9:02 AM, Thiago H. de Paula Figueiredo <
> thiag...@gmail.com> wrote:
>
> > On Wed, 01 Jun 2011 10:51:09 -0300, Ray Nicholus 
> > wrote:
> >
> >  I guess I'm not sure what zone I need to specify in the form tag or why
> I
> >> need to specify a zone at all.
> >>
> >
> > Tapestry only sets up an AJAX form submit if you use the zone parameter.
> > When returning a MultiZoneUpdate, the value of this parameter is ignored.
> >
> >
> >  I only want to update a zone if one
> >> particular option in the form's Select component is selected.  In fact,
> >> when a new item in the Select is selected, I am submitting the form via
> >> javascript (onchange=this.form.submit()).
> >>
> >
> > This will probably not trigger an AJAX form submission. The right way was
> > cited by Dragan in this thread.
> >
> > --
> > Thiago H. de Paula Figueiredo
> > Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
> > and instructor
> > Owner, Ars Machina Tecnologia da Informação Ltda.
> > http://www.arsmachina.com.br
> >
> >
> > -
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >
>


Re: updating a zone on form submit

2011-06-01 Thread dragan.sahpas...@gmail.com
Probably the request is not ajax.

You can do it like this, but don't forget to bind the zone parameter in the
form

$('formId').fire(Tapestry.FORM_PROCESS_SUBMIT_EVENT);

Cheers,
Dragan Sahpaski



On Wed, Jun 1, 2011 at 3:39 PM, Ray Nicholus  wrote:

> Any idea how I can do this?  When I return a MultiZoneUpdate from my submit
> handler, I get the following exception:
>
>  Return type org.apache.tapestry5.ajax.MultiZoneUpdate can not be handled.
>


tapestry-hibernate TypeCoercers

2011-05-31 Thread dragan.sahpas...@gmail.com
Hi,
Is there a reason why tapestry-hibernate does not provide a TypeCoercer
between String<->EntityType or ID<->EntityType. it provides ValueEncoders
and the implementation would be pretty much the same.

I have a problem when I re-throw an event from an triggered from an
eventLink. If I catch the eventLink event I can put an entity as a context,
but If I put the same entity as a context to the re-thrown event, than I
cannot have the entity as the context on the re-thrown event handler,
because I guess it needs a TypeCoercer to do the conversion.

Just curious why is there no TypeCoercers for entities and does someone
think this use case is justifiable to file a JIRA.

Cheers,
Dragan Sahpaski


Re: Render a block and a div in render phase methods

2011-05-30 Thread dragan.sahpas...@gmail.com
OK got it sorry.

The solution was to use the RenderCommand pushing multiple RenderCommands in
the RenderQueue.
I was just doing it in the wrong order.

Cheers,
Dragan Sahpaski



On Mon, May 30, 2011 at 10:26 AM, dragan.sahpas...@gmail.com <
dragan.sahpas...@gmail.com> wrote:

> Hi,
> I just can't wrap my head around on how to do the following.
>
> @Parameter
> private Block block;
>
> void afterRender(MarkupWriter writer)
> {
>
> writer.element("div");
> // here I want to render the block
> writer.end();
>
> }
>
> I cannot use tml template and also I cannot implement this is different
> passes of beginRender afterRender etc. rendering the div in one of the
> passes and the block in another by returning the block from the render phase
> method.
>
> Advice would be very appreciated.
>
> Cheers,
> Dragan Sahpaski
>


Render a block and a div in render phase methods

2011-05-30 Thread dragan.sahpas...@gmail.com
Hi,
I just can't wrap my head around on how to do the following.

@Parameter
private Block block;

void afterRender(MarkupWriter writer)
{

writer.element("div");
// here I want to render the block
writer.end();

}

I cannot use tml template and also I cannot implement this is different
passes of beginRender afterRender etc. rendering the div in one of the
passes and the block in another by returning the block from the render phase
method.

Advice would be very appreciated.

Cheers,
Dragan Sahpaski


Re: Dateformat

2011-03-25 Thread dragan.sahpas...@gmail.com
IDK of there is an easier way,
but you can make new DisplayBlockContribution only for Date.class and format
the date as you like.

Cheers,
Dragan Sahpaski



On Fri, Mar 25, 2011 at 1:39 PM, Jim O'Callaghan
wrote:

> Can anyone advise on whether there is a global format setting that can be
> applied for date fields throughout a tap application - I don't want to have
> to specify the format for every field - thanks.
>
>
>
> Regards,
>
> Jim.
>
>


Re: GSOC 2011 ideas for custom components

2011-03-25 Thread dragan.sahpas...@gmail.com
I guess this could be done when tapestry creates the GridModel and
GridDataSource from the List. Off course for smarter
HibernateDataSource more work needs to be done by pushing the sort in the
hibernate criteria.

Maybe we could do this as a configuration symbol maybe.

Cheers,
Dragan Sahpaski



On Fri, Mar 25, 2011 at 10:18 AM, Vangel V. Ajanovski wrote:

> On 03/24/2011 09:10 PM, dragan.sahpas...@gmail.com wrote:
>
>> 2. Grid enhacements: 1. better pager, 2. sorting params go in URL, 3.
>> Better
>> HibernateDataSource (more generic). 4.Changing column order and visibility
>> and saving this in a db.
>>
> +1
>
> And if the philosophy of Tapestry is to fix things that get you most
> annoyed as a developer (as Igor writes in his new book) than I would suggest
> an addition.
> If I have a grid sourced over list of Person-s and if I define a custom
> column on the expansion ${person.country.title} the model for this column is
> not created, so for example there is no option to sort the grid based on
> it's values. So now, I have to create the model manually and assign it to
> the grid component. And in fact - if you have a heavily normalized domain
> (database) this is in 99% of the cases.
>
> I'm not sure if this is fixed in latest version or fixed with some
> additional components, but it would be nice to have it in the core.
>
>


GSOC 2011 ideas for custom components

2011-03-24 Thread dragan.sahpas...@gmail.com
Dear users,
I'm applying for GSOC 2011 to work on tapestry and I really hope you can
give ideas on what you like too see as a part of tapestry.
Maybe focus on some new custom components that you think will popularize the
framework more and be useful for the majority of users.
Please fill free to step in with a suggestion.

My ideas for now are:
1. Right click menu (find existing js implementation and integrate with it?
or make something more generic that can be used with different js
implementations of a right click menu?)

2. Grid enhacements: 1. better pager, 2. sorting params go in URL, 3. Better
HibernateDataSource (more generic). 4.Changing column order and visibility
and saving this in a db.

3.  Integrate Tapestry with some NoSQL database like Couch DB but possibly
not tie ourselves with one driver (Java adapter).

4. Enhance the hibernate support with some extra annotations providing
better control over the type of transactions and open/close of
a transaction in one session (session is opened/closed per request as i
understand).

5. What about making a tab component (like in Jira) that works with the back
button and makes an ajax call when pressing back). Also while on the topic,
can we make ajax updates (zone updates) to add parameter in the URL so that
the back button also reverts the action or so? I know its pretty complex,
but would a simple scenario be useful for the majority of users?

6. Maybe making a notification bubble like in gmail when it says loading..
or sending etc.and also providing the "Are you sure you want to navigate
away from this page" the dialog when closing a browser tab/window when you
have some process in the background (like post or a zone update).

Cheers,
Dragan Sahpaski