You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Brian K <ha...@gmail.com> on 2019/06/07 18:27:13 UTC

How to use select-able action invocations

Hi,

I'm looking to use the feature described in ISIS-1585 [1].  I can't find it
in the docs.  I have an action that, given date range parameters, returns a
List of domain objects.   I would like to select all or some of the objects
returned and invoke one of the object's actions for each selected object.
I imagine that it would return a list of the objects that were processed
and would be enabled by a simple @Action parameter.

The alternatives I see in the docs are
   1.  Have a collection property of a view model and have the action
annotated with `@Action(associateWith=[the name of the property])`
   2.  Have a domain service action take a collection parameter.  I'd need
a choices... facet method.
   3.  Bulk actions using `@Action(invokeOn=OBJECT_AND_COLLECTION)` - not
really a choice for me because the version I am using does not have it
available.

I think alternatives (1) and (2) would require that the date range
parameters to be defined as members of the view model or domain service
because a collection property or choices facet cannot take parameters.

I am currently running 2.0.0-M2.

Thanks!
Brian

[1] https://issues.apache.org/jira/browse/ISIS-1585

Re: How to use select-able action invocations

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
@Jayesh, Thanks for that detailed answer.

@Brian ... I am pretty sure that all the features in 1.16.2 are in 2.0.0-M2
... we've been forward porting changes, and I don't think anything is left
out.

Apologies this isn't documented, I'm actually currently working on porting
our docs from "native" Asciidoctor [1] onto Antora [2], which is still
Asciidoctor but more opinionated.  So I'll go through my todo list of stuff
to document once I've done that and hopefully fill in the gaps.

Cheers
Dan

[1] https://asciidoctor.org/
[2] https://antora.org/




On Sat, 8 Jun 2019 at 14:58, Jayesh Prajapati <ja...@gmail.com> wrote:

> Hi Brian,
>
> In my statements github repository [1] I am using Apache Isis v1.16.2, in
> this there are many view model I am using as dashboard and I think it is
> preferred way to manage bulk actions, search/filter, etc. at view model
> level.
> Under this repo you will find ManageTransactionDashboard view model that
> has below capabilities
> 1) It shows list of statement source on left side, transaction filter area
> on right top and transactions grid on right bottom
> 2) Transactions panel as below actions
>      a) Add Expense - this action is used for adding expense entry to
> transaction
>      b) Add Income - this action is used for adding income entry to
> transactions
>      a) Filter - this action shows a popup with filter criteria like text
> field, drop downs, date range, amount range, etc.
>      a) Update category - this is bulk action which shows a popup with a
> field that shows all selected transactions and two drop down for category
> and sub-category
> 3) See screenshot of manage transaction dashboard at [2]
> 4) See screenshot of manage transaction dashboard with filter at [3]
> 5) See screenshot of bulk action at [4]
> 6) One of the problem for filter to work correctly is that ID for view
> models are regenerated every-time and hence you will need to make use of
> HintIdProvider interface
> 7) In ManageTransactionDashboard I have used TransactionFilter object to
> record filter provided by user and converting it to string for usage as ID
> of the view model; this is because logically my view model is attached to
> filter specified by user
>
> I hope this will help.
>
> Thanks,
> Jayesh
> [1] - https://github.com/Jayeshecs/statements
> [2] -
>
> https://github.com/Jayeshecs/statements/blob/master/images/manage-transaction.png
> [3] -
>
> https://github.com/Jayeshecs/statements/blob/master/images/manage-transaction-with-filter.png
> [4] -
>
> https://github.com/Jayeshecs/statements/blob/master/images/bulk-action-change-category.png
>
> On Fri, Jun 7, 2019 at 11:57 PM Brian K <ha...@gmail.com> wrote:
>
> > Hi,
> >
> > I'm looking to use the feature described in ISIS-1585 [1].  I can't find
> it
> > in the docs.  I have an action that, given date range parameters,
> returns a
> > List of domain objects.   I would like to select all or some of the
> objects
> > returned and invoke one of the object's actions for each selected object.
> > I imagine that it would return a list of the objects that were processed
> > and would be enabled by a simple @Action parameter.
> >
> > The alternatives I see in the docs are
> >    1.  Have a collection property of a view model and have the action
> > annotated with `@Action(associateWith=[the name of the property])`
> >    2.  Have a domain service action take a collection parameter.  I'd
> need
> > a choices... facet method.
> >    3.  Bulk actions using `@Action(invokeOn=OBJECT_AND_COLLECTION)` - not
> > really a choice for me because the version I am using does not have it
> > available.
> >
> > I think alternatives (1) and (2) would require that the date range
> > parameters to be defined as members of the view model or domain service
> > because a collection property or choices facet cannot take parameters.
> >
> > I am currently running 2.0.0-M2.
> >
> > Thanks!
> > Brian
> >
> > [1] https://issues.apache.org/jira/browse/ISIS-1585
> >
>

Re: How to use select-able action invocations

Posted by Jayesh Prajapati <ja...@gmail.com>.
Hi Brian,

In my statements github repository [1] I am using Apache Isis v1.16.2, in
this there are many view model I am using as dashboard and I think it is
preferred way to manage bulk actions, search/filter, etc. at view model
level.
Under this repo you will find ManageTransactionDashboard view model that
has below capabilities
1) It shows list of statement source on left side, transaction filter area
on right top and transactions grid on right bottom
2) Transactions panel as below actions
     a) Add Expense - this action is used for adding expense entry to
transaction
     b) Add Income - this action is used for adding income entry to
transactions
     a) Filter - this action shows a popup with filter criteria like text
field, drop downs, date range, amount range, etc.
     a) Update category - this is bulk action which shows a popup with a
field that shows all selected transactions and two drop down for category
and sub-category
3) See screenshot of manage transaction dashboard at [2]
4) See screenshot of manage transaction dashboard with filter at [3]
5) See screenshot of bulk action at [4]
6) One of the problem for filter to work correctly is that ID for view
models are regenerated every-time and hence you will need to make use of
HintIdProvider interface
7) In ManageTransactionDashboard I have used TransactionFilter object to
record filter provided by user and converting it to string for usage as ID
of the view model; this is because logically my view model is attached to
filter specified by user

I hope this will help.

Thanks,
Jayesh
[1] - https://github.com/Jayeshecs/statements
[2] -
https://github.com/Jayeshecs/statements/blob/master/images/manage-transaction.png
[3] -
https://github.com/Jayeshecs/statements/blob/master/images/manage-transaction-with-filter.png
[4] -
https://github.com/Jayeshecs/statements/blob/master/images/bulk-action-change-category.png

On Fri, Jun 7, 2019 at 11:57 PM Brian K <ha...@gmail.com> wrote:

> Hi,
>
> I'm looking to use the feature described in ISIS-1585 [1].  I can't find it
> in the docs.  I have an action that, given date range parameters, returns a
> List of domain objects.   I would like to select all or some of the objects
> returned and invoke one of the object's actions for each selected object.
> I imagine that it would return a list of the objects that were processed
> and would be enabled by a simple @Action parameter.
>
> The alternatives I see in the docs are
>    1.  Have a collection property of a view model and have the action
> annotated with `@Action(associateWith=[the name of the property])`
>    2.  Have a domain service action take a collection parameter.  I'd need
> a choices... facet method.
>    3.  Bulk actions using `@Action(invokeOn=OBJECT_AND_COLLECTION)` - not
> really a choice for me because the version I am using does not have it
> available.
>
> I think alternatives (1) and (2) would require that the date range
> parameters to be defined as members of the view model or domain service
> because a collection property or choices facet cannot take parameters.
>
> I am currently running 2.0.0-M2.
>
> Thanks!
> Brian
>
> [1] https://issues.apache.org/jira/browse/ISIS-1585
>