[jira] [Commented] (ISIS-1529) TableColumnOrderService, to allow column order to be fine-tuned (or columns suppressed)

2016-11-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628690#comment-15628690
 ] 

ASF subversion and git services commented on ISIS-1529:
---

Commit d65957f9d22a7cec424e6afd8fd5ac53101603fe in isis's branch 
refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=d65957f ]

ISIS-1529: changes TableColumnOrderService to use List rather than 
Set, as less confusing.  Also added additional user guide docs on usage.


> TableColumnOrderService, to allow column order to be fine-tuned (or columns 
> suppressed)
> ---
>
> Key: ISIS-1529
> URL: https://issues.apache.org/jira/browse/ISIS-1529
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: 1.13.1
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1530) Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1530:
--
Assignee: (was: Dan Haywood)

> Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout 
> and @DomainObjectLayout
> -
>
> Key: ISIS-1530
> URL: https://issues.apache.org/jira/browse/ISIS-1530
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: 1.13.1
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> Introduce @CollectionLayout(title=SHOW|HIDE, ...) for parented collections, 
> and @ActionLayout(titleInCollection=SHOW|HIDE, ...) for actions returning 
> collections (ignored otherwise).  Could also have 
> @DomainObjectLayout(titleInCollection=SHOW|HIDE, ...) as a fallback



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (ISIS-1530) Introduce @CollectionLayout(title=SHOW|HIDE, ...) similarly for @ActionLayout and @DomainObjectLayout

2016-11-02 Thread Dan Haywood (JIRA)
Dan Haywood created ISIS-1530:
-

 Summary: Introduce @CollectionLayout(title=SHOW|HIDE, ...) 
similarly for @ActionLayout and @DomainObjectLayout
 Key: ISIS-1530
 URL: https://issues.apache.org/jira/browse/ISIS-1530
 Project: Isis
  Issue Type: New Feature
  Components: Core
Affects Versions: 1.13.1
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
 Fix For: 1.14.0


Introduce @CollectionLayout(title=SHOW|HIDE, ...) for parented collections, and 
@ActionLayout(titleInCollection=SHOW|HIDE, ...) for actions returning 
collections (ignored otherwise).  Could also have 
@DomainObjectLayout(titleInCollection=SHOW|HIDE, ...) as a fallback



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1512) MetaModelValidator should detect domain services that have collections, and fail-fast.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1512?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1512:
--
Summary: MetaModelValidator should detect domain services that have 
collections, and fail-fast.  (was: MetaModelValidator should detect domain 
objects that have collections, and fail-fast.)

> MetaModelValidator should detect domain services that have collections, and 
> fail-fast.
> --
>
> Key: ISIS-1512
> URL: https://issues.apache.org/jira/browse/ISIS-1512
> Project: Isis
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> this issue arose because attempting to download the metamodel.csv threw an 
> exception when it encountered an invalid class (specifically, 
> EstatioFakeDataService):
> {code}
> @DomainService(nature = NatureOfService.DOMAIN)
> public class EstatioFakeDataService {
> static Random random;
> static {
> random = new Random(System.currentTimeMillis());
> }
> Faker2 faker2;
> @PostConstruct
> public void init() {
> faker2 = new Faker2(random);
> }
> @Inject
> private ClockService clockService;
> @Inject
> private DomainObjectContainer container;
> private RandomService randomService;
> private final Values values;
> private final Collections collections;
> private final Dates dates;
> private final Periods periods;
> public EstatioFakeDataService() {
> randomService = new RandomService(random);
> this.values = new Values();
> this.collections = new Collections();
> this.dates = new Dates();
> this.periods = new Periods();
> }
> @Programmatic
> public PhoneNumber phoneNumber() {
> return faker2.phoneNumber();
> }
> @Programmatic
> public Options options() {
> return faker2.options();
> }
> @Programmatic
> public Internet internet() {
> return faker2.internet();
> }
> @Programmatic
> public Code code() {
> return faker2.code();
> }
> @Programmatic
> public Business business() {
> return faker2.business();
> }
> @Programmatic
> public Address address() {
> return faker2.address();
> }
> @Programmatic
> public Name name() {
> return faker2.name();
> }
> @Programmatic
> public Lorem lorem() {
> return faker2.lorem();
> }
> public Values values() {
> return values;
> }
> public Collections collections() {
> return collections;
> }
> public Dates dates() {
> return dates;
> }
> public Periods periods() {
> return periods;
> }
> public class Values {
> public String code(final int numChars) {
> final StringBuilder buf = new StringBuilder();
> final char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
> for (int i = 0; i < numChars; i++) {
> char c = collections().anElement(chars);
> buf.append(c);
> }
> return buf.toString();
> }
> public int anInt(final int upTo) {
> return randomService.nextInt(upTo);
> }
> public int anInt(final int min, final int max) {
> return min + randomService.nextInt(max-min);
> }
> public int aDouble(final int upTo) {
> return randomService.nextInt(upTo);
> }
> public boolean aCoinFlip() {
> return randomService.nextDouble() < 0.5;
> }
> public boolean aDiceRollOf6() {
> return anInt(6) == 5;
> }
> }
> public class Collections  {
> public > E anEnum(final Class enumType) {
> final E[] enumConstants = enumType.getEnumConstants();
> return enumConstants[values().anInt(enumConstants.length)];
> }
> public  T aBounded(final Class cls) {
> final List list = container.allInstances(cls);
> return anElement(list);
> }
> public  T anElement(final List list) {
> final int randomIdx = values().anInt(list.size());
> return list.get(randomIdx);
> }
> public char anElement(final char[] elements) {
> final int randomIdx = values().anInt(elements.length);
> return elements[randomIdx];
> }
> public byte anElement(final byte[] elements) {
> final int randomIdx = values().anInt(elements.length);
> return elements[randomIdx];
> }
> public short anElement(final short[] elements) {
> final int randomIdx = 

[jira] [Updated] (ISIS-1284) Fails to render a property with compile-time type of Object but returning a value type (eg joda DateTime).

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1284:
--

similar to ISIS-1264

> Fails to render a property with compile-time type of Object but returning a 
> value type (eg joda DateTime).
> --
>
> Key: ISIS-1284
> URL: https://issues.apache.org/jira/browse/ISIS-1284
> Project: Isis
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.10.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.19.0
>
>
> Was: "Unable to find component with id 'entityIconAndTitle'"
> https://github.com/joerg-rade/myapp110
> see also mailing list thread: http://isis.markmail.org/thread/32umudzsj3p7x7tr



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1264) No-arg actions that return Blob or Clob but whose return type is simply java.lang.Object throw an exception.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1264:
--

similar to ISIS-1284

> No-arg actions that return Blob or Clob but whose return type is simply 
> java.lang.Object throw an exception.
> 
>
> Key: ISIS-1264
> URL: https://issues.apache.org/jira/browse/ISIS-1264
> Project: Isis
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 1.10.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.20.0
>
>
> For example:
> {code}
> public Object downloadThis() {
> return new Clob(...);
> }
> {code}
> there are two possible workarounds; either:
> a) return Clob (or Blob) instead of Object
> {code}
> public Clob downloadThis() {
> return new Clob(...);
> }
> {code}
> b) make the action take one or more args (not be a no-arg):
> {code}
> public Object downloadThis(String filename) {
> return new Clob(...);
> }
> {code}
> ~~~
> In more detail:
> The ActionLinkFactoryAbstract class has a utility method 
> determineDeferredBehaviour that figures out from the actionModel whether this 
> is an action with no args and returning either a Clob/Blob or a URL (that 
> also requires special handling).  It has to do so by looking at the action 
> signature, ie the compile-time return type.  If the action matches, we get 
> back an AjaxDeferredBehaviour callback handler, and this is what is used to 
> handle the ajax request if the action's link is subsequently clicked.
> If the action doesn't conform to this, then we just get a regular 
> AbstractAjaxDefaultBehaviour.
> Later on, though, when we invoke the action (ActionPanel), we use this code:
> {code}
> ActionResultResponse resultResponse = 
> ActionResultResponseType.determineAndInterpretResult(this.getActionModel(), 
> target, resultAdapter);
> resultResponse.getHandlingStrategy().handleResults(this, 
> resultResponse);
> {code}
> which inspects the returned object and figures out the right way to "return" 
> it.  In the case of a Blob/Clob the selecting handlingStrategy basically 
> assumes that an AjaxDeferredBehaviour has been set up.  If it wasn't, then 
> everything blows up.
> ~~~
> Don't know how to fix this.  Perhaps Martin has a solution.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-674) Allow action parameters to be defaulted based on the (change of) value of other parameters.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-674?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-674:
-
Fix Version/s: (was: 1.19.0)
   1.16.0

> Allow action parameters to be defaulted based on the (change of) value of 
> other parameters.
> ---
>
> Key: ISIS-674
> URL: https://issues.apache.org/jira/browse/ISIS-674
> Project: Isis
>  Issue Type: New Feature
>  Components: Core, Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.3.1, core-1.3.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.16.0
>
>
> For example:
> public void foo(
>Charge charge,
>BigDecimal amount,
>String description) {
>   
> }
> public String default2Foo(Charge charge, BigDecimal amount) {
> return charge != null && amount != null? amount + " " 
> charge.getDescription() : null;
> }
> Here, the value of the 'description' parameter is defaulted from that of both 
> the preceding 'charge' and 'amount' parameters.  Changing either should cause 
> the default value for the 'description' to be recomputed.
> This is analogous to the way that choices are recomputed for 
> category/subcategory, see ActionParametersFormPanel:
> @Override
> public void onUpdate(AjaxRequestTarget target, ScalarModelProvider 
> provider) {
> final ActionModel actionModel = getActionModel();
> final ObjectAdapter[] pendingArguments = 
> actionModel.getArgumentsAsArray();
> try {
> final ObjectAction action = 
> actionModel.getActionMemento().getAction();
> final int numParams = action.getParameterCount();
> for (int i = 0; i < numParams; i++) {
> final ScalarPanelAbstract paramPanel = paramPanels.get(i);
> if(paramPanel != null) {
> // this could throw a ConcurrencyException as we may 
> have to reload the 
> // object adapter of the action in order to compute 
> the choices
> // (and that object adapter might have changed)
> if(paramPanel.updateChoices(pendingArguments)) {  
> << THIS LOOKS SIMILAR TO WHAT NEEDS TO BE 
> DONE...
> target.add(paramPanel);
> }
> }
> }
> } catch(ConcurrencyException ex) {



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-491) Integrate JSR-349 validation.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-491?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-491:
-
Fix Version/s: (was: 1.19.0)
   1.18.0

> Integrate JSR-349 validation.
> -
>
> Key: ISIS-491
> URL: https://issues.apache.org/jira/browse/ISIS-491
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: core-1.2.0
>Reporter: Dan Haywood
> Fix For: 1.18.0
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> as per 
> http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
> The reference implementation (Hibernate Validator) is Apache licensed [1].
> ~~~
> Implementation: should not be too difficult; mostly a matter of writing some 
> FacetFactories.
> It may not make sense to use every feature of JSR-349... 
> * constructor parameters
> * constraint groups
> 1. In Isis bootstrapping, get hold and cache the Validator.  (This is 
> thread-safe, so could perhaps be global; maybe as a new top-level component 
> cf AuthorizationManager etc).
> {code}
> ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
> validator = factory.getValidator();
> {code}
> and also
> {code}
> executableValidator = validator.forExecutables();
> {code}
> Validating a property change can be done using:
> {code}
> Set constraintViolations = validator.validateValue(
> Car.class,
> "manufacturer",
> null
> );
> assertEquals( 1, constraintViolations.size() );
> assertEquals( "may not be null", 
> constraintViolations.iterator().next().getMessage() );
> {code}
> (nb: using validator.validateProperty(...) would mean that the value has been 
> applied already).
> eg this would be a facet that implements ValidatingInteractionAdvisor and 
> acts on a ValidityContext of type PropertyModifyContext.  (eg subclass 
> PropertyValidateFacetAbstract)
> 2. Validating a parameter of an action can be done using:
> {code}
> Car object = new Car( "Morris" );
> Method method = Car.class.getMethod( "drive", int.class );
> Object[] parameterValues = { 80 };
> Set violations = 
> executableValidator.validateParameters(
> object,
> method,
> parameterValues
> );
> assertEquals( 1, violations.size() );
> Class constraintType = violations.iterator()
> .next()
> .getConstraintDescriptor()
> .getAnnotation()
> .annotationType();
> assertEquals( Max.class, constraintType );
> {code}
> This would be in a Facet that implements ValidatingInteractionAdvisor and 
> acts on a ValidityContext of type ActionInvocationContext (eg subclass 
> ActionValidationFacetAbstract)
> ~~~
> There are also some new features that could be implemented:
> 3. validating the return value of an action:
> {code}
> Car object = new Car( "Morris" );
> Method method = Car.class.getMethod( "getPassengers" );
> Object returnValue = Collections.emptyList();
> Set violations = 
> executableValidator.validateReturnValue(
> object,
> method,
> returnValue
> );
> assertEquals( 1, violations.size() );
> Class constraintType = violations.iterator()
> .next()
> .getConstraintDescriptor()
> .getAnnotation()
> .annotationType();
> assertEquals( Size.class, constraintType );
> {code}
> This would need to be done after the action has been invoked; if the 
> constraint failed, then an exception would be thrown causing the transaction 
> to be aborted.  This might require a new subclass of ValidityContext, eg 
> ActionReturnValueContext.
> 4. cf ISIS-479, all dirtied objects should be validated prior to commit.
> a) we re-validate all properties (using the value of the property as the 
> proposed value).  This would be done using InteractionUtils, called from 
> isAssociationValid with a ValidityContext of PropertyModifyContext.
> b) we validate the object, ie InteractionUtils, with  all with a 
> ValidityContext of ObjectValidityContext.
> We would then have a new facet, implementing ValidatingInteractionAdvisor and 
> acting on an ObjectValidityContext (eg subclass ValidateObjectFacetAbstract); 
> which should perform:
> {code}
> Set constraintViolations = validator.validate( car 
> );
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1176) Provide the capability to push notification messages to end-users without refreshing (using web sockets or Atmosphere etc).

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1176:
--
Fix Version/s: (was: 1.18.0)
   1.16.0

> Provide the capability to push notification messages to end-users without 
> refreshing (using web sockets or Atmosphere etc).
> ---
>
> Key: ISIS-1176
> URL: https://issues.apache.org/jira/browse/ISIS-1176
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: core-1.8.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.16.0
>
>
> For example, if an end-user submits a long-running job, then the action 
> should acknowledge the request.  When the job completes then we should 
> provide a mechanism to notify the user (if they are using the system).
> 
> (Jul 2015, Dan):
> One likely technology will be web sockets or Atmosphere; Wicket integrates 
> with both.
> (Oct 2016, Martin on mailing list suggested):
> The simplest way is to use 
> AbstractTimerAjaxBehavior/AjaxSelfUpdatingBehavior. This would do polling,
> i.e. every N seconds an Ajax call will be made to check whether there is new 
> data to show.
> If you need to do server push, i.e. whenever new data comes to push it 
> immediately to the client then I'd suggest Wicket Native WebSocket instead of 
> Atmosphere. Nowadays all browsers support WebSocket (IE10+ and all others) 
> and almost everyone deploys on web server that support JSR 356 - 
> https://ci.apache.org/projects/wicket/guide/7.x/guide/nativewebsockets.html.
> It's usage is as easy as Wicket Ajax.
> Another option is Server Send Events 
> (https://github.com/wicketstuff/core/tree/master/wicket-html5-parent/wicket-html5)
> demo: 
> https://github.com/wicketstuff/core/tree/master/wicket-html5-parent/wicket-html5-examples/src/main/java/org/wicketstuff/html5/eventsource
> 
> One possible design is a persisted entity to hold the messages, keyed by 
> (username, datetime).  We could then have a service that a completing action 
> could call, to save the message.
> This service could check if the user is currently logged on, and if so could 
> notify the user via Atmosphere or similar.
> I also think it might be nice if the Wicket UI could provide a way for the 
> user to view the last 5 (say) messages, a bit like a notificatoin center.  I 
> think that Mac does this, and Windows 10 will do,  Thus, if the user is *not* 
> logged on when the job completes, then we can still bring the notification 
> message to their attention when they next log on.
> Perhaps this could be added as a button on the footer bar?  And/or the 
> messages could slide in from this footer bar.  (This is the way that the MS 
> Azure portal works, and it's not too unpleasant).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1176) Provide the capability to push notification messages to end-users without refreshing (using web sockets or Atmosphere etc).

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1176:
--
Description: 
For example, if an end-user submits a long-running job, then the action should 
acknowledge the request.  When the job completes then we should provide a 
mechanism to notify the user (if they are using the system).


(Jul 2015, Dan):
One likely technology will be web sockets or Atmosphere; Wicket integrates with 
both.

(Oct 2016, Martin on mailing list suggested):
The simplest way is to use AbstractTimerAjaxBehavior/AjaxSelfUpdatingBehavior. 
This would do polling,
i.e. every N seconds an Ajax call will be made to check whether there is new 
data to show.

If you need to do server push, i.e. whenever new data comes to push it 
immediately to the client then I'd suggest Wicket Native WebSocket instead of 
Atmosphere. Nowadays all browsers support WebSocket (IE10+ and all others) and 
almost everyone deploys on web server that support JSR 356 - 
https://ci.apache.org/projects/wicket/guide/7.x/guide/nativewebsockets.html.
It's usage is as easy as Wicket Ajax.

Another option is Server Send Events 
(https://github.com/wicketstuff/core/tree/master/wicket-html5-parent/wicket-html5)
demo: 
https://github.com/wicketstuff/core/tree/master/wicket-html5-parent/wicket-html5-examples/src/main/java/org/wicketstuff/html5/eventsource



One possible design is a persisted entity to hold the messages, keyed by 
(username, datetime).  We could then have a service that a completing action 
could call, to save the message.

This service could check if the user is currently logged on, and if so could 
notify the user via Atmosphere or similar.

I also think it might be nice if the Wicket UI could provide a way for the user 
to view the last 5 (say) messages, a bit like a notificatoin center.  I think 
that Mac does this, and Windows 10 will do,  Thus, if the user is *not* logged 
on when the job completes, then we can still bring the notification message to 
their attention when they next log on.

Perhaps this could be added as a button on the footer bar?  And/or the messages 
could slide in from this footer bar.  (This is the way that the MS Azure portal 
works, and it's not too unpleasant).



  was:
For example, if an end-user submits a long-running job, then the action should 
acknowledge the request.  When the job completes then we should provide a 
mechanism to notify the user (if they are using the system).

The likely technology will be web sockets or Atmosphere; Wicket integrates with 
both.

One possible design is a persisted entity to hold the messages, keyed by 
(username, datetime).  We could then have a service that a completing action 
could call, to save the message.

This service could check if the user is currently logged on, and if so could 
notify the user via Atmosphere or similar.

I also think it might be nice if the Wicket UI could provide a way for the user 
to view the last 5 (say) messages, a bit like a notificatoin center.  I think 
that Mac does this, and Windows 10 will do,  Thus, if the user is *not* logged 
on when the job completes, then we can still bring the notification message to 
their attention when they next log on.

Perhaps this could be added as a button on the footer bar?  And/or the messages 
could slide in from this footer bar.  (This is the way that the MS Azure portal 
works, and it's not too unpleasant).




> Provide the capability to push notification messages to end-users without 
> refreshing (using web sockets or Atmosphere etc).
> ---
>
> Key: ISIS-1176
> URL: https://issues.apache.org/jira/browse/ISIS-1176
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: core-1.8.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.18.0
>
>
> For example, if an end-user submits a long-running job, then the action 
> should acknowledge the request.  When the job completes then we should 
> provide a mechanism to notify the user (if they are using the system).
> 
> (Jul 2015, Dan):
> One likely technology will be web sockets or Atmosphere; Wicket integrates 
> with both.
> (Oct 2016, Martin on mailing list suggested):
> The simplest way is to use 
> AbstractTimerAjaxBehavior/AjaxSelfUpdatingBehavior. This would do polling,
> i.e. every N seconds an Ajax call will be made to check whether there is new 
> data to show.
> If you need to do server push, i.e. whenever new data comes to push it 
> immediately to the client then I'd suggest Wicket Native WebSocket instead of 
> Atmosphere. Nowadays all browsers support WebSocket (IE10+ and all others) 
> and almost everyone deploys on web server that support JSR 356 

[jira] [Updated] (ISIS-845) Hidden (Where.REFERENCES_PARENT) should take into account the instance that is the parent, not just its type.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-845:
-
Fix Version/s: (was: 1.18.0)
   1.14.0

> Hidden (Where.REFERENCES_PARENT) should take into account the instance that 
> is the parent, not just its type.
> -
>
> Key: ISIS-845
> URL: https://issues.apache.org/jira/browse/ISIS-845
> Project: Isis
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: core-1.6.0
>Reporter: Dan Haywood
> Fix For: 1.14.0
>
>
> For example:
> PartyRelationship {
> fromParty;
> toParty;
> }
> if rendered from the point of view of the from party, would want to show only 
> the toParty.  But adding this annotation causes both properties to be 
> suppressed.
> This can be seen in the code:
> {code}
> static Filter associationDoesNotReferenceParent(final 
> ObjectSpecification parentSpec) {
> if(parentSpec == null) {
> return Filters.any();
> }
> return new Filter() {
> @Override
> public boolean accept(ObjectAssociation association) {
> final HiddenFacet facet = 
> association.getFacet(HiddenFacet.class);
> if(facet == null) {
> return true;
> }
> if (facet.where() != Where.REFERENCES_PARENT) {
> return true;
> }
> final ObjectSpecification assocSpec = 
> association.getSpecification();
> final boolean associationSpecIsOfParentSpec = 
> parentSpec.isOfType(assocSpec);
> final boolean isVisible = !associationSpecIsOfParentSpec;
> return isVisible;
> }
> };
> }
> {code}
> Instead, the code should take into account the actual instance that is 
> referenced, not just the type (ie look at the object that the association 
> points back to).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ISIS-932) Use HTML5 history API so that the address URL reflects the object being viewed (including any sorting, view selection etc).

2016-11-02 Thread Martin Grigorov (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628443#comment-15628443
 ] 

Martin Grigorov commented on ISIS-932:
--

See See https://github.com/martin-g/blogs/tree/master/ajax-history

> Use HTML5 history API so that the address URL reflects the object being 
> viewed (including any sorting, view selection etc).
> ---
>
> Key: ISIS-932
> URL: https://issues.apache.org/jira/browse/ISIS-932
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.7.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (ISIS-1463) A new user has some trouble filling in date field using wicket ui

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1463?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood closed ISIS-1463.
-
Resolution: Fixed

> A new user has some trouble filling in date field using wicket ui
> -
>
> Key: ISIS-1463
> URL: https://issues.apache.org/jira/browse/ISIS-1463
> Project: Isis
>  Issue Type: Improvement
>  Components: Core: Viewer: Wicket
>Affects Versions: 1.12.2
>Reporter: Johan Doornenbal
>Priority: Minor
> Fix For: 1.13.1
>
>
> While observing new users of an Apache Isis application (wicket UI) it 
> appears that they tend to click the icon on the righthand side of a date 
> field instead of placing the cursor in the input field.
> Maybe make the icon clickable as well?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ISIS-932) Use HTML5 history API so that the address URL reflects the object being viewed (including any sorting, view selection etc).

2016-11-02 Thread Martin Grigorov (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628441#comment-15628441
 ] 

Martin Grigorov commented on ISIS-932:
--

OK. We can include anything that is available.

> Use HTML5 history API so that the address URL reflects the object being 
> viewed (including any sorting, view selection etc).
> ---
>
> Key: ISIS-932
> URL: https://issues.apache.org/jira/browse/ISIS-932
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.7.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1479) DataNucleus data type mapping for streams (to support direct upload of large BLOBs)

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1479:
--
Fix Version/s: (was: 1.17.0)
   1.15.0

> DataNucleus data type mapping for streams (to support direct upload of large 
> BLOBs)
> ---
>
> Key: ISIS-1479
> URL: https://issues.apache.org/jira/browse/ISIS-1479
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.15.0
>
>
> from http://markmail.org/message/64xcc7twcxdrhfqj
> > With respect to the storage of the BLOBs themselves, I don't think (at
> > least I couldn't find) any datatype mapping to be able to map from a stream
> > (obtained from ServletInputStream) into a JDO entity, ie to avoid the
> > creation of the BLOB in-memory.  If it *were* possible, then I don't think
> > Isis would care; just map the property as @Programmatic and Isis would
> > ignore it.  Perhaps Andy might be able to chip in on this?
> java.io.File is currently the only java field type with a mapping that is 
> streamable. See
> http://www.datanucleus.org/products/accessplatform_5_0/jdo/types.html#Other_Types
> Somebody could take existing code used for that type and contribute a mapping 
> for some other java type.
> https://github.com/datanucleus/datanucleus-rdbms/blob/master/src/main/java/org/datanucleus/store/rdbms/mapping/datastore/BinaryStreamRDBMSMapping.java



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1395) Bulk actions button is shown for a collection, even if not in table view (eg showing collection as a map)

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1395:
--
Summary: Bulk actions button is shown for a collection, even if not in 
table view (eg showing collection as a map)  (was: Bulk actions button is shown 
for a collection, even if not in table view.)

> Bulk actions button is shown for a collection, even if not in table view (eg 
> showing collection as a map)
> -
>
> Key: ISIS-1395
> URL: https://issues.apache.org/jira/browse/ISIS-1395
> Project: Isis
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: 1.12.1
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.17.0
>
>
> Perhaps the collection components should have an API as to whether they 
> support the concept of selectable (ie checkboxes or equivalent mechanism).  
> Only show bulk action button for those that do.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ISIS-932) Use HTML5 history API so that the address URL reflects the object being viewed (including any sorting, view selection etc).

2016-11-02 Thread Dan Haywood (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628426#comment-15628426
 ] 

Dan Haywood commented on ISIS-932:
--

Not sure either, I can see arguments either way.  On balance, probably would be 
good to include those hints... I think they get broadcasted on Wicket's 
internal event bus.

> Use HTML5 history API so that the address URL reflects the object being 
> viewed (including any sorting, view selection etc).
> ---
>
> Key: ISIS-932
> URL: https://issues.apache.org/jira/browse/ISIS-932
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.7.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ISIS-932) Use HTML5 history API so that the address URL reflects the object being viewed (including any sorting, view selection etc).

2016-11-02 Thread Martin Grigorov (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628421#comment-15628421
 ] 

Martin Grigorov commented on ISIS-932:
--

My idea was to update the url in the address bar to be the same as the one that 
could be copied.
I'm not sure whether this includes data about sorting, view selection, etc.).

> Use HTML5 history API so that the address URL reflects the object being 
> viewed (including any sorting, view selection etc).
> ---
>
> Key: ISIS-932
> URL: https://issues.apache.org/jira/browse/ISIS-932
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.7.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (ISIS-513) Wicket: Pdf.js display in browser natively

2016-11-02 Thread Martin Grigorov (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Grigorov reassigned ISIS-513:


Assignee: Martin Grigorov  (was: Dan Haywood)

> Wicket: Pdf.js display in browser natively
> --
>
> Key: ISIS-513
> URL: https://issues.apache.org/jira/browse/ISIS-513
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.2.0
>Reporter: Dan Haywood
>Assignee: Martin Grigorov
> Fix For: 1.14.0
>
>
> Render PDFs in browser natively



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Issue Comment Deleted] (ISIS-1525) Problems with startup under certain circumstances

2016-11-02 Thread Timothy Simecsek (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Simecsek updated ISIS-1525:
---
Comment: was deleted

(was: Vielen Dank für Ihre Nachricht. Ich bin bis inkl. 01.11.2016 auf 
Zeitausgleich.
In besonders dringenden Fällen bin ich am Handy erreichbar.
Ihre Nachricht wird nicht weitergeleitet

Thank you for your message. I'm on time off and will be back on 02.11.2016.
In urgent cases please contact me on my mobile.
Your message will not be forwarded.

Mit freundlichen Grüßen / With best regards
Timothy Simecsek


)

> Problems with startup under certain circumstances
> -
>
> Key: ISIS-1525
> URL: https://issues.apache.org/jira/browse/ISIS-1525
> Project: Isis
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.13.1
>
>
> see mailing list thread
> https://lists.apache.org/thread.html/e468c2e6d12172402e65c3158aca1758d564cef4a1ca6b8027e5b0ef@%3Cusers.isis.apache.org%3E
> Has anyone observed problems with running version 1.13.0?  We upgraded a 
> while ago and a bit after that we saw sometimes this error when redeploying 
> our application on tomcat: 
> {code}
> 2016-10-14 14:29:21,690 [IsisWicketApplication http-nio-18080-exec-103 ERROR] 
> Failed to initialize com.google.inject.ProvisionException: Unable to 
> provision, see the following errors:  1) Error in custom provider, 
> java.util.ConcurrentModificationException at 
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:109)
>  at 
> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSessionFactory(IsisInjectModule.java:109)
>  while locating 
> org.apache.isis.core.runtime.system.session.IsisSessionFactory for field at 
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.isisSessionFactory(IsisWicketApplication.java:138)
>  while locating domainapp.webapp.A1FulfilllmentApplication  1 error at 
> com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:482)
>  at 
> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:67)
>  at 
> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:984) 
> at 
> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:279)
>  at 
> domainapp.webapp.A1FulfilllmentApplication.init(A1FulfilllmentApplication.java:73)
>  at org.apache.wicket.Application.initApplication(Application.java:823) at 
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:427) at 
> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:351) at 
> org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
>  at 
> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
>  at 
> org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:105)
>  at 
> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4561)
>  at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5204)
>  at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152) at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
>  at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702) 
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:952) at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473) at 
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1617) at 
> sun.reflect.GeneratedMethodAccessor3189.invoke(Unknown Source) at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:498) at 
> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) 
> at 
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>  at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at 
> org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1483) at 
> org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:731) at 
> org.apache.catalina.manager.ManagerServlet.doPut(ManagerServlet.java:424) at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:651) at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
>  at 
> 

[jira] [Resolved] (ISIS-1293) [DUPLICATE] when in prototype mode, have a mechanism to temporarily hide the prototyping menus ... eg for taking screenshots

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1293.
---
   Resolution: Duplicate
Fix Version/s: (was: 1.17.0)
   1.14.0

duplicates ISIS-976

> [DUPLICATE] when in prototype mode, have a mechanism to temporarily hide the 
> prototyping menus ... eg for taking screenshots
> 
>
> Key: ISIS-1293
> URL: https://issues.apache.org/jira/browse/ISIS-1293
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: 1.11.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> eg could live on the about page.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1293) [DUPLICATE] when in prototype mode, have a mechanism to temporarily hide the prototyping menus ... eg for taking screenshots

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1293?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1293:
--
Summary: [DUPLICATE] when in prototype mode, have a mechanism to 
temporarily hide the prototyping menus ... eg for taking screenshots  (was: 
when in prototype mode, have a mechanism to temporarily hide the prototyping 
menus ... eg for taking screenshots)

> [DUPLICATE] when in prototype mode, have a mechanism to temporarily hide the 
> prototyping menus ... eg for taking screenshots
> 
>
> Key: ISIS-1293
> URL: https://issues.apache.org/jira/browse/ISIS-1293
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: 1.11.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.17.0
>
>
> eg could live on the about page.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1280) Provide redirect hints so that when the user clicks on a rendered link, the viewer instead navigates to some other entity.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1280?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1280:
--
Fix Version/s: (was: 1.17.0)
   1.14.0

> Provide redirect hints so that when the user clicks on a rendered link, the 
> viewer instead navigates to some other entity.
> --
>
> Key: ISIS-1280
> URL: https://issues.apache.org/jira/browse/ISIS-1280
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: 1.10.0
>Reporter: Dan Haywood
> Fix For: 1.14.0
>
>
> This was originally raised as ISIS-666, but that ticket was repurposed and 
> rescoped to be the ability to return a different object when an action is 
> invoked (using the RoutingService SPI service).  That applies on the 
> "response".
> This ticket could be implemented through a "RedirectService" that applies on 
> the "request".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1121) Integ Tests: allow them to simulate a new Authentication Session

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1121:
--

I think this is probably supported via the SudoService.

> Integ Tests: allow them to simulate a new Authentication Session
> 
>
> Key: ISIS-1121
> URL: https://issues.apache.org/jira/browse/ISIS-1121
> Project: Isis
>  Issue Type: Improvement
>  Components: Core
>Affects Versions: core-1.8.0
>Reporter: Oscar Bou
> Fix For: 1.17.0
>
>
> There are some integration tests where the authentication context used can be 
> relevant (i.e., for testing Application Tenancy configured through the Isis 
> Security Add-on).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-489) Allow logging to be configured using JMX, possibly support other real-time metrics/analytics.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-489:
-
Fix Version/s: (was: 1.17.0)
   1.16.0

> Allow logging to be configured using JMX, possibly support other real-time 
> metrics/analytics.
> -
>
> Key: ISIS-489
> URL: https://issues.apache.org/jira/browse/ISIS-489
> Project: Isis
>  Issue Type: Improvement
>  Components: Core, Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.2.0, core-1.2.0
>Reporter: Dan Haywood
> Fix For: 1.16.0
>
>
> eg using logging-jmx-service, perhaps?
> See also: ISIS-490, convert to using slf4j



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1015) DataNucleus doesn't support LocalDateTime

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1015:
--
Fix Version/s: (was: 1.16.0)
   1.15.0

> DataNucleus doesn't support LocalDateTime
> -
>
> Key: ISIS-1015
> URL: https://issues.apache.org/jira/browse/ISIS-1015
> Project: Isis
>  Issue Type: Sub-task
>  Components: Core: Objectstore: JDO
>Affects Versions: core-1.8.0
>Reporter: Martin Grigorov
>Priority: Minor
> Fix For: 1.15.0
>
>
> While debugging ISIS-1012 I've found that Kitchensink app doesn't behave 
> correctly for Joda-Time's LocalDateTime: 
> org.apache.isis.viewer.wicket.ui.components.scalars.jodatime.JodaLocalDateTimePanel
>  doesn't show the scalar value.
> Partially the problem has been solved by moving 
> {code}
> @javax.jdo.annotations.Persistent(defaultFetchGroup="true")
> {code}
> next to
> {code}
> @Column(allowsNull = "true")
> {code}
> applied on the property getters.
> But it appeared that the actual problem is that DataNucleus 3.x and 4.x do 
> not support Joda-Time's LocalDateTime. There is support for Joda-Time's 
> LocalDate and JSR310/ThreeTen/JDK8 LocalDateTime though.
> This ticket is to document the bug. Since there is no urgent need for 
> supporting this type its priority is set to "Minor".
> Thanks to Dan for the directions!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-976) Add a checkbox on footer to allow prototype actions to be hidden in the Wicket viewer

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-976:
-
Fix Version/s: (was: 1.16.0)
   1.14.0

> Add a checkbox on footer to allow prototype actions to be hidden in the 
> Wicket viewer
> -
>
> Key: ISIS-976
> URL: https://issues.apache.org/jira/browse/ISIS-976
> Project: Isis
>  Issue Type: Improvement
>  Components: Core, Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.7.0, core-1.7.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> My thoughts on this is that this would be per-user rather than a singleton, 
> but probably pluggable.  The default implementation could store in the 
> (Wicket wrapper for) HttpSession.
> UI would be a button on the bottom toolbar (alongside "About", only rendered 
> if running in prototype mode); perhaps make the "About" into a drop-down 
> menu).  It would provide a checkbox to hide prototype actions.
> The implementation would be to enhance the PrototypeFacet so that it 
> implements HidingInteractionAdvisor.  The implementation should delegate to 
> an injected new service which would wrap the HttpSession, simply indicating 
> whether prototype actions are visible or not, eg:
> public interface PrototypeActionVisibilityService {
> boolean isHidden();
> }
> This would be injected into the FacetFactory (we do something similar with 
> other services) and passed down to the PrototypeFacet.
> In terms of providing a default impl, could write a 
> PrototypeActionVisibilityServiceUsingWicketHttpSession, annotated as 
> @DomainService, and this would be automatically available.  If the user 
> writes their own impl and registers in isis.properties then this would take 
> precedence.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (ISIS-513) Wicket: Pdf.js display in browser natively

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood reopened ISIS-513:
--

will see if martin has availability to tackle this.

> Wicket: Pdf.js display in browser natively
> --
>
> Key: ISIS-513
> URL: https://issues.apache.org/jira/browse/ISIS-513
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.2.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
> Fix For: 1.14.0
>
>
> Render PDFs in browser natively



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-513) Wicket: Pdf.js display in browser natively

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-513?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-513:
-
Fix Version/s: (was: 1.10.0)
   1.14.0

> Wicket: Pdf.js display in browser natively
> --
>
> Key: ISIS-513
> URL: https://issues.apache.org/jira/browse/ISIS-513
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.2.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
> Fix For: 1.14.0
>
>
> Render PDFs in browser natively



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-932) Use HTML5 history API so that the address URL reflects the object being viewed (including any sorting, view selection etc).

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-932?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-932:
-
Fix Version/s: (was: 1.16.0)
   1.14.0

Perhaps martin might pick this up for us later in Nov...

> Use HTML5 history API so that the address URL reflects the object being 
> viewed (including any sorting, view selection etc).
> ---
>
> Key: ISIS-932
> URL: https://issues.apache.org/jira/browse/ISIS-932
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.7.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-842) Rework the bookmark/breadcrumbs views.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-842:
-
Fix Version/s: (was: 1.16.0)
   1.14.0

> Rework the bookmark/breadcrumbs views.
> --
>
> Key: ISIS-842
> URL: https://issues.apache.org/jira/browse/ISIS-842
> Project: Isis
>  Issue Type: Improvement
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.5.0
>Reporter: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> I'm currently thinking that something like IntelliJ's ctrl+E pop-up might 
> work well ?  And perhaps also the ctrl+1 idea for a project explorer sliding 
> in.
> 
> This has had various incarnations:
> - was "open each object in a new tab".
> - bookmark window pinnable on the side (as a set of side tabs).
> - a project explorer view, cf IntelliJ (ctrl+1 to toggle).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1486) three-way Boolean checkbox doesn't seem to be rendering correctly (shows as two-way only)

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1486:
--
Fix Version/s: (was: 1.15.0)
   1.14.0

> three-way Boolean checkbox doesn't seem to be rendering correctly (shows as 
> two-way only)
> -
>
> Key: ISIS-1486
> URL: https://issues.apache.org/jira/browse/ISIS-1486
> Project: Isis
>  Issue Type: Bug
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> this for a mandatory parameter, defined as java.lang.Boolean, with the intent 
> being that the end-user must select.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1500) ReplayService, to directly execute a previously persisted command

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1500:
--
Fix Version/s: (was: 1.15.0)
   1.16.0

> ReplayService, to directly execute a previously persisted command
> -
>
> Key: ISIS-1500
> URL: https://issues.apache.org/jira/browse/ISIS-1500
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.16.0
>
>
> perhaps using something like this...
> ... https://gist.github.com/danhaywood/5b3a106ee7c06a53cc33d76f88a04c75
> would need to decide:
> (a) is this to act on Command (in which case CommandJdo is impl), or
> (b) should this perhaps act on CommandDto?
> (c) does it just create a new command/interaction, or somehow correlated?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-709) Support multi-select for the drop-down box

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-709:
-
Fix Version/s: (was: 1.16.0)
   1.14.0

> Support multi-select for the drop-down box
> --
>
> Key: ISIS-709
> URL: https://issues.apache.org/jira/browse/ISIS-709
> Project: Isis
>  Issue Type: New Feature
>  Components: Core, Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.3.1, core-1.3.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
> Fix For: 1.14.0
>
>
> See also ISIS-785 (substantial overlap).
> ~~~
> ISIS-778 (now implemented) is a prereq to this.  (NB: ISIS-764 is a duplicate 
> of ISIS-778).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1528) Rename isis-viewer-wicket artifacts to isis-core-viewer-wicket, for consistency with other core modules.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1528.
---
Resolution: Fixed

> Rename isis-viewer-wicket artifacts to isis-core-viewer-wicket, for 
> consistency with other core modules.
> 
>
> Key: ISIS-1528
> URL: https://issues.apache.org/jira/browse/ISIS-1528
> Project: Isis
>  Issue Type: Improvement
>  Components: Core: Viewer: Wicket
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Trivial
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1031) Make it possible to filter on tables

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1031?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1031:
--
Fix Version/s: (was: 1.15.0)
   1.14.0
  Description: 
It should be possible to show pagination in the tables possibly with 
configurable page size. It should also be nice to have ability to filter 
entities in a table.

The DataTable,js (https://www.datatables.net/), which looks like it has a 
Wicket integration already 
(https://github.com/wicketstuff/core/wiki/DataTables) could be a good way to go 
(we've used it in Naked Objects.NET application).

To enable it, suggest an extension to @CollectionLayout(filterable=...) and 
corresponding enhancement to layout.xml

  was:It should be possible to show pagination in the tables possibly with 
configurable page size. It should also be nice to have ability to filter 
entities in a table.


> Make it possible to filter on tables
> 
>
> Key: ISIS-1031
> URL: https://issues.apache.org/jira/browse/ISIS-1031
> Project: Isis
>  Issue Type: New Feature
>  Components: Core
>Affects Versions: viewer-wicket-1.7.0, core-1.7.0
>Reporter: Joshua Kamau
>Assignee: Dan Haywood
>Priority: Minor
>  Labels: filter, grid, pagination
> Fix For: 1.14.0
>
>
> It should be possible to show pagination in the tables possibly with 
> configurable page size. It should also be nice to have ability to filter 
> entities in a table.
> The DataTable,js (https://www.datatables.net/), which looks like it has a 
> Wicket integration already 
> (https://github.com/wicketstuff/core/wiki/DataTables) could be a good way to 
> go (we've used it in Naked Objects.NET application).
> To enable it, suggest an extension to @CollectionLayout(filterable=...) and 
> corresponding enhancement to layout.xml



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-582) Abstract properties are not rendered in the UI (in tables)

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-582?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-582:
-
Fix Version/s: (was: 1.15.0)
   1.14.0

> Abstract properties are not rendered in the UI (in tables)
> --
>
> Key: ISIS-582
> URL: https://issues.apache.org/jira/browse/ISIS-582
> Project: Isis
>  Issue Type: Improvement
>  Components: Core: Viewer: Wicket
>Affects Versions: viewer-wicket-1.3.0
>Reporter: Jeroen van der Wal
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> Abstract properties are not rendered in the viewer. 
> As a workaround replace the abstract with a dummy implementation:
> abstract public BigDecimal getValue();
> replace with:
> public BigDecimal getValue() {
> return null;
> }
> NB: Have added a page to the website; please remove when this implemented... 
> http://isis.apache.org/components/viewers/wicket/tips-and-workarounds.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (ISIS-1388) Introduce @Property(columnOrder=...) to make order of properties (when shown in tables) more predictable.

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood updated ISIS-1388:
--
Summary: Introduce @Property(columnOrder=...) to make order of properties 
(when shown in tables) more predictable.(was: Order of fields (as shown by 
column ordering) should be more predictable.  )

> Introduce @Property(columnOrder=...) to make order of properties (when shown 
> in tables) more predictable.  
> ---
>
> Key: ISIS-1388
> URL: https://issues.apache.org/jira/browse/ISIS-1388
> Project: Isis
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.12.1
>Reporter: Dan Haywood
>Assignee: Dan Haywood
> Fix For: 1.14.0
>
>
> At the moment it can be hard to predict, because the BS3Grid is traversed by 
> type, eg:
> {code}
> private void traverseCols(final Grid.Visitor visitor, final BS3Row 
> bs3Row) {
> final BS3Grid.Visitor bs3Visitor = asBs3Visitor(visitor);
> final List cols = bs3Row.getCols();
> for (BS3RowContent rowContent : Lists.newArrayList(cols)) {
> rowContent.setOwner(bs3Row);
> if(rowContent instanceof BS3Col) {
> final BS3Col bs3Col = (BS3Col) rowContent;
> bs3Visitor.preVisit(bs3Col);
> bs3Visitor.visit(bs3Col);
> traverseDomainObject(bs3Col, visitor);
> traverseTabGroups(bs3Col, visitor);
> traverseActions(bs3Col, visitor);
> traverseFieldSets(bs3Col, visitor);
> traverseCollections(bs3Col, visitor);
> traverseRows(bs3Col, visitor);
> bs3Visitor.postVisit(bs3Col);
> } else if (rowContent instanceof BS3ClearFix) {
> final BS3ClearFix bs3ClearFix = (BS3ClearFix) rowContent;
> bs3Visitor.visit(bs3ClearFix);
> } else {
> throw new IllegalStateException(
> "Unrecognized implementation of BS3RowContent, " + 
> rowContent);
> }
> }
> }
> {code}
> Instead, if it were traversed by element order, then the ordering of 
> properties would be more predictable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1529) TableColumnOrderService, to allow column order to be fine-tuned (or columns suppressed)

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1529.
---
Resolution: Fixed

> TableColumnOrderService, to allow column order to be fine-tuned (or columns 
> suppressed)
> ---
>
> Key: ISIS-1529
> URL: https://issues.apache.org/jira/browse/ISIS-1529
> Project: Isis
>  Issue Type: New Feature
>  Components: Core: Viewer: Wicket
>Affects Versions: 1.13.1
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (ISIS-1526) WebServer --port option not working

2016-11-02 Thread Dan Haywood (JIRA)

 [ 
https://issues.apache.org/jira/browse/ISIS-1526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Haywood resolved ISIS-1526.
---
Resolution: Fixed

> WebServer --port option not working
> ---
>
> Key: ISIS-1526
> URL: https://issues.apache.org/jira/browse/ISIS-1526
> Project: Isis
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> see mailing list thread
> https://lists.apache.org/thread.html/df764dfb6c49944073a2afa44617ede8dbbaddabb4d433891cc3@%3Cusers.isis.apache.org%3E



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ISIS-1526) WebServer --port option not working

2016-11-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-1526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628162#comment-15628162
 ] 

ASF subversion and git services commented on ISIS-1526:
---

Commit b1cd8207b69be2d5955b7a935c55c44ed7de4692 in isis's branch 
refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=b1cd820 ]

Merge branch 'ISIS-1526_pr-62'


> WebServer --port option not working
> ---
>
> Key: ISIS-1526
> URL: https://issues.apache.org/jira/browse/ISIS-1526
> Project: Isis
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> see mailing list thread
> https://lists.apache.org/thread.html/df764dfb6c49944073a2afa44617ede8dbbaddabb4d433891cc3@%3Cusers.isis.apache.org%3E



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (ISIS-1526) WebServer --port option not working

2016-11-02 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/ISIS-1526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15628161#comment-15628161
 ] 

ASF subversion and git services commented on ISIS-1526:
---

Commit 9f6f8dfd79ccdaa83a2a50a6a57baeb0beab01d4 in isis's branch 
refs/heads/master from mwhesse
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=9f6f8df ]

ISIS-1526 - proposed fix

peeking into configuration needs to take into account selective
properties


> WebServer --port option not working
> ---
>
> Key: ISIS-1526
> URL: https://issues.apache.org/jira/browse/ISIS-1526
> Project: Isis
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 1.13.0
>Reporter: Dan Haywood
>Assignee: Dan Haywood
>Priority: Minor
> Fix For: 1.14.0
>
>
> see mailing list thread
> https://lists.apache.org/thread.html/df764dfb6c49944073a2afa44617ede8dbbaddabb4d433891cc3@%3Cusers.isis.apache.org%3E



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)