You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/12/10 12:38:39 UTC
[1/8] isis git commit: ISIS-1552: now uses 'readonly' rather than
'disabled' tag for disabled text fields,
provided that the new 'replaceDisabledTagWithReadonlyTag has not been set to
false.
Repository: isis
Updated Branches:
refs/heads/master f057d29d8 -> 15d87eada
ISIS-1552: now uses 'readonly' rather than 'disabled' tag for disabled text fields, provided that the new 'replaceDisabledTagWithReadonlyTag has not been set to false.
Also updates the docs
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f325400b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f325400b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f325400b
Branch: refs/heads/master
Commit: f325400b3fd1e120c67cf8ca909a5763a30f0da0
Parents: fa36da4
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Dec 9 09:00:19 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Dec 9 09:00:19 2016 +0000
----------------------------------------------------------------------
.../guides/_ugvw_configuration-properties.adoc | 5 +++
.../settings/WicketViewerSettingsDefault.java | 5 +++
.../wicket/model/isis/WicketViewerSettings.java | 7 +++-
.../components/scalars/ScalarPanelAbstract.java | 1 -
.../scalars/ScalarPanelTextFieldAbstract.java | 40 +++++++++++++++++++-
.../webapp/WEB-INF/viewer_wicket.properties | 10 ++++-
6 files changed, 64 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/f325400b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
index f01f52d..ea5f3fc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
@@ -120,6 +120,11 @@ for further details).
| Ignored for 1.8.0+; in earlier versions forced regular case rather than title case in the UI
|`isis.viewer.wicket.` +
+`replaceDisabledTagWithReadonlyTag`
+| `true`,`false` (`_true_`)
+| (`1.13.2-SNAPSHOT`) Whether to replace 'disabled' tag with 'readonly' (for link:https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute[w3 spec]-compliant browsers such as for Firefox and Chrome 54+) which prevent copy from 'disabled' fields.
+
+|`isis.viewer.wicket.` +
`rememberMe.cookieKey`
| ascii chars (`_isisWicketRememberMe_`)
|Cookie key holding the (encrypted) 'rememberMe' user/password. There is generally no need to
http://git-wip-us.apache.org/repos/asf/isis/blob/f325400b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
index 0771dde..91ef087 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -70,4 +70,9 @@ public class WicketViewerSettingsDefault implements WicketViewerSettings {
public String getTimestampPattern() {
return getConfiguration().getString("isis.viewer.wicket.timestampPattern", "yyyy-MM-dd HH:mm:ss.SSS");
}
+
+ @Override
+ public boolean isReplaceDisabledTagWithReadonlyTag() {
+ return getConfiguration().getBoolean("isis.viewer.wicket.replaceDisabledTagWithReadonlyTag", true);
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f325400b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
index 90f4d50..0f00912 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -65,5 +65,10 @@ public interface WicketViewerSettings extends Serializable {
*/
String getTimestampPattern();
-
+ /**
+ * in Firefox and more recent versions of Chrome 54+, cannot copy out of disabled fields; instead we use the
+ * readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute)
+ * This behaviour is enabled by default but can be disabled using this flag
+ */
+ boolean isReplaceDisabledTagWithReadonlyTag();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f325400b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index bf33953..98b8c55 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -43,7 +43,6 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
http://git-wip-us.apache.org/repos/asf/isis/blob/f325400b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 311e3ce..e3dbe06 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -28,6 +28,7 @@ import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.behavior.Behavior;
+import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
@@ -44,6 +45,7 @@ import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.components.actionmenu.entityactions.EntityActionUtil;
@@ -62,6 +64,17 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected final Class<T> cls;
+ protected static class ReplaceDisabledTagWithReadonlyTagBehaviour extends Behavior {
+ @Override public void onComponentTag(final Component component, final ComponentTag tag) {
+ super.onComponentTag(component, tag);
+ if(component.isEnabled()) {
+ return;
+ }
+ tag.remove("disabled");
+ tag.put("readonly","readonly");
+ }
+ }
+
protected WebMarkupContainer scalarTypeContainer;
private AbstractTextComponent<T> textField;
@@ -152,7 +165,18 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
// over the parsing (using custom subclasses of TextField etc)
}
-
+ private void addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(final Component component) {
+ if(!getSettings().isReplaceDisabledTagWithReadonlyTag()) {
+ return;
+ }
+ if (component == null) {
+ return;
+ }
+ if (!component.getBehaviors(ReplaceDisabledTagWithReadonlyTagBehaviour.class).isEmpty()) {
+ return;
+ }
+ component.add(new ReplaceDisabledTagWithReadonlyTagBehaviour());
+ }
private MarkupContainer createFormComponentLabel() {
Fragment textFieldFragment = createTextFieldFragment("scalarValueContainer");
@@ -243,12 +267,14 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected void onBeforeRenderWhenViewMode() {
super.onBeforeRenderWhenViewMode();
textField.setEnabled(false);
+ addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(textField);
final String disableReasonIfAny = scalarModel.disable(getRendering().getWhere());
if(disableReasonIfAny == null) {
CssClassAppender.appendCssClassTo(this, "editable");
}
+
setTitleAttribute("");
}
@@ -256,6 +282,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
protected void onBeforeRenderWhenDisabled(final String disableReason) {
super.onBeforeRenderWhenDisabled(disableReason);
textField.setEnabled(false);
+ addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(textField);
setTitleAttribute(disableReason);
}
@@ -275,5 +302,16 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
textField.add(behavior);
}
+
+ //region > dependencies
+
+ @com.google.inject.Inject
+ private WicketViewerSettings settings;
+ protected WicketViewerSettings getSettings() {
+ return settings;
+ }
+
+ //endregion
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/f325400b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index 7b72fb1..d6f1ff1 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -31,13 +31,21 @@
isis.viewer.wicket.maxTitleLengthInStandaloneTables=0
isis.viewer.wicket.maxTitleLengthInParentedTables=0
+
+#
+# in Firefox and more recent versions of Chrome 54+, cannot copy out of disabled fields; instead we use the
+# readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute)
+# This behaviour is enabled by default but can be disabled using this flag
+#
+#isis.viewer.wicket.replaceDisabledTagWithReadonlyTag=true
+
+
#isis.viewer.wicket.datePicker.minDate=1900-01-01T00:00:00.000Z
#isis.viewer.wicket.datePicker.maxDate=2100-01-01T00:00:00.000Z
#isis.viewer.wicket.datePattern=dd-MM-yyyy
#isis.viewer.wicket.dateTimePattern=dd-MM-yyyy HH:mm
-
#isis.viewer.wicket.datePattern=dd/MM/yy
#isis.viewer.wicket.dateTimePattern=dd/MM/yy HH:mm
[6/8] isis git commit: ISIS-1538: recreating simpleapp archetype
Posted by da...@apache.org.
ISIS-1538: recreating simpleapp archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/acb5c8b2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/acb5c8b2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/acb5c8b2
Branch: refs/heads/master
Commit: acb5c8b2d91988609967cef266f157743000c91c
Parents: 2447b1f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Dec 10 12:25:18 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Dec 10 12:25:18 2016 +0000
----------------------------------------------------------------------
.../application/translations.pot | 27 +-------------------
.../module-simple/translations.pot | 2 +-
.../webapp/WEB-INF/viewer_wicket.properties | 23 ++++++++++++++++-
.../projects/basic/archetype.properties | 2 +-
4 files changed, 25 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/acb5c8b2/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
index e97d6d2..09d9f87 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
@@ -23,7 +23,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2016-12-01 10:14:01+\n"
+"POT-Creation-Date: 2016-12-10 10:53:28+\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -101,21 +101,6 @@ msgid "Current Overrides If Any"
msgstr ""
-#: domainapp.modules.simple.dom.impl.SimpleObject#delete()
-msgid "Delete"
-msgstr ""
-
-
-#: domainapp.modules.simple.dom.impl.SimpleObject#downloadJdoMetadata()
-msgid "Download Jdo Metadata"
-msgstr ""
-
-
-#: domainapp.modules.simple.dom.impl.SimpleObject#downloadLayoutXml()
-msgid "Download Layout Xml"
-msgstr ""
-
-
#: org.apache.isis.applib.services.layout.LayoutServiceMenu#downloadLayouts()
msgid "Download Layouts (XML)"
msgstr ""
@@ -337,11 +322,6 @@ msgid "Public"
msgstr ""
-#: domainapp.modules.simple.dom.impl.SimpleObject#rebuildMetamodel()
-msgid "Rebuild Metamodel"
-msgstr ""
-
-
#: org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault#recreateObjectsAndReturnFirst()
msgid "Recreate Objects And Return First"
msgstr ""
@@ -411,11 +391,6 @@ msgid "Switch To Writing Translations"
msgstr ""
-#: domainapp.modules.simple.dom.impl.SimpleObject#updateName()
-msgid "Update Name"
-msgstr ""
-
-
#: org.apache.isis.core.metamodel.services.user.UserServiceDefault$UserAndRoleOverrides#user
msgid "User"
msgstr ""
http://git-wip-us.apache.org/repos/asf/isis/blob/acb5c8b2/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
index 1723c57..42f6074 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
@@ -23,7 +23,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2016-12-01 10:14:55+\n"
+"POT-Creation-Date: 2016-12-10 12:24:20+\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
http://git-wip-us.apache.org/repos/asf/isis/blob/acb5c8b2/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index 2e56399..05deaeb 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -34,13 +34,34 @@ ${symbol_pound}
isis.viewer.wicket.maxTitleLengthInStandaloneTables=0
isis.viewer.wicket.maxTitleLengthInParentedTables=0
+
+${symbol_pound}
+${symbol_pound} in Firefox and more recent versions of Chrome 54+, cannot copy out of disabled fields; instead we use the
+${symbol_pound} readonly attribute (https://www.w3.org/TR/2014/REC-html5-20141028/forms.html${symbol_pound}the-readonly-attribute)
+${symbol_pound} This behaviour is enabled by default but can be disabled using this flag
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.replaceDisabledTagWithReadonlyTag=true
+
+
+${symbol_pound}
+${symbol_pound} Whether to disable buttons after it has been clicked (for both form submit and no-arg actions), to prevent users
+${symbol_pound} causing an error if they do a double click.
+${symbol_pound} Also, whether to show an indicator alongside the button.
+${symbol_pound}
+${symbol_pound} This behaviour is enabled by default, but can be disabled using this flag.
+${symbol_pound}
+${symbol_pound}isis.viewer.wicket.preventDoubleClickForFormSubmit=true
+${symbol_pound}isis.viewer.wicket.preventDoubleClickForNoArgAction=true
+${symbol_pound}isis.viewer.wicket.useIndicatorForFormSubmit=true
+${symbol_pound}isis.viewer.wicket.useIndicatorForNoArgAction=true
+
+
${symbol_pound}isis.viewer.wicket.datePicker.minDate=1900-01-01T00:00:00.000Z
${symbol_pound}isis.viewer.wicket.datePicker.maxDate=2100-01-01T00:00:00.000Z
${symbol_pound}isis.viewer.wicket.datePattern=dd-MM-yyyy
${symbol_pound}isis.viewer.wicket.dateTimePattern=dd-MM-yyyy HH:mm
-
${symbol_pound}isis.viewer.wicket.datePattern=dd/MM/yy
${symbol_pound}isis.viewer.wicket.dateTimePattern=dd/MM/yy HH:mm
http://git-wip-us.apache.org/repos/asf/isis/blob/acb5c8b2/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
index 28ab8e4..e6d6158 100644
--- a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Thu Dec 01 10:20:13 GMT 2016
+#Sat Dec 10 12:25:12 GMT 2016
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
[2/8] isis git commit: ISIS-1552: doc fix only - reformatting.
Posted by da...@apache.org.
ISIS-1552: doc fix only - reformatting.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/8b46518f
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/8b46518f
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/8b46518f
Branch: refs/heads/master
Commit: 8b46518f14d2c15fae421cce83567208c013acb2
Parents: f325400
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Dec 9 09:01:29 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Dec 9 09:01:29 2016 +0000
----------------------------------------------------------------------
.../guides/_ugvw_configuration-properties.adoc | 48 +++++++++++++-------
1 file changed, 32 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/8b46518f/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
index ea5f3fc..58b9b99 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
@@ -34,17 +34,20 @@ If you prefer you can place all configuration properties into `WEB-INF/isis.prop
|`isis.viewer.wicket.` +
`ajaxDebugMode`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
| whether the Wicket debug mode should be enabled.
|`isis.viewer.wicket.` +
`bookmarkedPages`
-| +ve int (`_15_`)
+| +ve int +
+(`_15_`)
| number of pages to bookmark
|`isis.viewer.wicket.` +
`breadcrumbs.showChooser`
-| `true`,`false` (`_true_`)
+| `true`,`false` +
+(`_true_`)
| Whether to show chooser for Breadcrumbs
|`isis.viewer.wicket.` +
@@ -83,12 +86,14 @@ for further details).
|`isis.viewer.wicket.` +
`disableDependentChoiceAutoSelection`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
| For dependent choices, whether to automatically select the first dependent (eg subcategory) when the parameter on which it depends (category) changes.
|`isis.viewer.wicket.` +
`disableModalDialogs`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
|No longer supported.
|`isis.viewer.wicket.` +
@@ -101,22 +106,26 @@ for further details).
|`isis.viewer.wicket.` +
`maxTitleLengthInParentedTables`
-| +ve integer, (`_12_`)
+| +ve integer +
+(`_12_`)
| See discussion xref:ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
|`isis.viewer.wicket.` +
`maxTitleLengthInStandaloneTables`
-| +ve integer, (`_12_`)
+| +ve integer, +
+(`_12_`)
| See discussion xref:ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
|`isis.viewer.wicket.` +
`maxTitleLengthInTables`
-| +ve integer, (`_12_`)
+| +ve integer, +
+(`_12_`)
| See discussion xref:ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
|`isis.viewer.wicket.` +
`regularCase`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
| Ignored for 1.8.0+; in earlier versions forced regular case rather than title case in the UI
|`isis.viewer.wicket.` +
@@ -150,28 +159,33 @@ will have to log in again).
|`isis.viewer.wicket.` +
`rememberMe.suppress`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
|Whether to suppress "remember me" checkbox on the login page.
|`isis.viewer.wicket.` +
`stripWicketTags`
-| `true`,`false` (`_true_`)
+| `true`,`false` +
+(`_true_`)
| Whether to force Wicket tags to be stripped in prototype/development mode. See discussion xref:ugvw.adoc#_ugvw_configuration-properties_stripped-wicket-tags[below].
|`isis.viewer.wicket.` +
`suppressPasswordReset`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
|If user registration is enabled, whether to suppress the "password reset" link on the login page. See discussion xref:ugvw.adoc#_ugvw_configuration-properties_suppressing-password-reset[below].
|`isis.viewer.wicket.` +
`suppressRememberMe`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
|(Deprecated in `1.13.0`, replaced by `rememberMe.suppress`). Whether to suppress "remember me" checkbox on the login page.
|`isis.viewer.wicket.` +
`suppressSignUp`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
|If user registration is enabled, whether to suppress the "sign up" link on the login page. See discussion xref:ugvw.adoc#_ugvw_configuration-properties_suppressing-sign-up[below].
|`isis.viewer.wicket.` +
@@ -188,12 +202,14 @@ will have to log in again).
|`isis.viewer.wicket.` +
`themes.showChooser`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
| Whether to show chooser for Bootstrap themes. See discussion xref:ugvw.adoc#_ugvw_configuration-properties_showing-theme-chooser[below]
|`isis.viewer.wicket.` +
`wicketSourcePlugin`
-| `true`,`false` (`_false_`)
+| `true`,`false` +
+(`_false_`)
| Whether the Wicketsource plugin should be enabled; by default it is not enabled.
Prior to `1.12.0` this was enabled by default for prototyping (not production). However it can significantly
[7/8] isis git commit: Merge branch 'maint-1.13.2'
Posted by da...@apache.org.
Merge branch 'maint-1.13.2'
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/264f155a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/264f155a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/264f155a
Branch: refs/heads/master
Commit: 264f155aa99706d399a95949ca594782cd712e17
Parents: 567962a acb5c8b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Dec 10 12:35:54 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Dec 10 12:35:54 2016 +0000
----------------------------------------------------------------------
.../guides/_ugvw_configuration-properties.adoc | 50 ++++-
.../wicket/viewer/IsisWicketApplication.java | 12 +-
.../settings/WicketViewerSettingsDefault.java | 20 ++
.../wicket/model/isis/WicketViewerSettings.java | 32 ++-
.../isis/WicketViewerSettingsAccessor.java | 26 +++
.../viewer/wicket/model/models/ActionModel.java | 42 ++--
.../wicket/model/models/HasExecutingPanel.java | 24 ++
.../viewer/wicket/model/models/ScalarModel.java | 13 +-
.../actions/ActionParametersFormPanel.java | 128 ++---------
.../property/PropertyEditFormPanel.java | 129 ++---------
.../linkandlabel/ActionLinkFactoryAbstract.java | 74 +++++-
.../wicket/ui/pages/bootstrap-overrides.css | 13 +-
.../isis/viewer/wicket/ui/panels/PanelUtil.java | 11 +
.../ui/panels/PromptFormPanelAbstract.java | 225 +++++++++++++++++++
.../webapp/WEB-INF/viewer_wicket.properties | 13 ++
.../webapp/WEB-INF/viewer_wicket.properties | 23 +-
16 files changed, 565 insertions(+), 270 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/264f155a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/264f155a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
[4/8] isis git commit: Merge branch 'maint-1.13.2'
Posted by da...@apache.org.
Merge branch 'maint-1.13.2'
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/567962a9
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/567962a9
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/567962a9
Branch: refs/heads/master
Commit: 567962a967c37d9ae6aaff8c4a6e56811292be54
Parents: f057d29 bca9bfa
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Dec 9 09:09:07 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Dec 9 09:09:07 2016 +0000
----------------------------------------------------------------------
.../guides/_ugvw_configuration-properties.adoc | 53 ++++++++++++++------
.../wicket/viewer/IsisWicketApplication.java | 4 +-
.../settings/WicketViewerSettingsDefault.java | 5 ++
.../wicket/model/isis/WicketViewerSettings.java | 7 ++-
.../components/scalars/ScalarPanelAbstract.java | 1 -
.../scalars/ScalarPanelTextFieldAbstract.java | 40 ++++++++++++++-
.../webapp/WEB-INF/viewer_wicket.properties | 10 +++-
7 files changed, 99 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/567962a9/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/567962a9/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
----------------------------------------------------------------------
[5/8] isis git commit: ISIS-1554: prevents double click on buttons
(forms and no-arg actions) with associated wicket viewer settings
Posted by da...@apache.org.
ISIS-1554: prevents double click on buttons (forms and no-arg actions) with associated wicket viewer settings
settings are:
- isPreventDoubleClickForFormSubmit
- isPreventDoubleClickForNoArgAction
- isUseIndicatorForFormSubmit
- isUseIndicatorForNoArgAction
also:
- updated docs
- reduced duplication in PropertyEditFormPanel vs ActionParametersFormPanel
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/2447b1f2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/2447b1f2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/2447b1f2
Branch: refs/heads/master
Commit: 2447b1f2cf4b9f7828841a85e33cb86f0d1668da
Parents: bca9bfa
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Dec 10 10:48:31 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Dec 10 10:48:31 2016 +0000
----------------------------------------------------------------------
.../guides/_ugvw_configuration-properties.adoc | 50 ++++-
.../wicket/viewer/IsisWicketApplication.java | 12 +-
.../settings/WicketViewerSettingsDefault.java | 20 ++
.../wicket/model/isis/WicketViewerSettings.java | 32 ++-
.../isis/WicketViewerSettingsAccessor.java | 26 +++
.../viewer/wicket/model/models/ActionModel.java | 42 ++--
.../wicket/model/models/HasExecutingPanel.java | 24 ++
.../viewer/wicket/model/models/ScalarModel.java | 13 +-
.../actions/ActionParametersFormPanel.java | 128 ++---------
.../property/PropertyEditFormPanel.java | 129 ++---------
.../linkandlabel/ActionLinkFactoryAbstract.java | 74 +++++-
.../wicket/ui/pages/bootstrap-overrides.css | 13 +-
.../isis/viewer/wicket/ui/panels/PanelUtil.java | 11 +
.../ui/panels/PromptFormPanelAbstract.java | 225 +++++++++++++++++++
.../webapp/WEB-INF/viewer_wicket.properties | 13 ++
15 files changed, 543 insertions(+), 269 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
index 58b9b99..84628e2 100644
--- a/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/_ugvw_configuration-properties.adoc
@@ -123,6 +123,18 @@ for further details).
| See discussion xref:ugvw.adoc#_ugvw_configuration-properties_abbreviating-titles[below].
|`isis.viewer.wicket.` +
+`preventDoubleClickForFormSubmit`
+| `true`,`false` +
+(`_true_`)
+| (`1.13.2-SNAPSHOT`) Whether to disable a form submit button after it has been clicked, to prevent users causing an error if they do a double click.
+
+|`isis.viewer.wicket.` +
+`preventDoubleClickForNoArgAction`
+| `true`,`false` +
+(`_true_`)
+| (`1.13.2-SNAPSHOT`) Whether to disable a no-arg action button after it has been clicked, to prevent users causing an error if they do a double click.
+
+|`isis.viewer.wicket.` +
`regularCase`
| `true`,`false` +
(`_false_`)
@@ -130,12 +142,14 @@ for further details).
|`isis.viewer.wicket.` +
`replaceDisabledTagWithReadonlyTag`
-| `true`,`false` (`_true_`)
+| `true`,`false` +
+(`_true_`)
| (`1.13.2-SNAPSHOT`) Whether to replace 'disabled' tag with 'readonly' (for link:https://www.w3.org/TR/2014/REC-html5-20141028/forms.html#the-readonly-attribute[w3 spec]-compliant browsers such as for Firefox and Chrome 54+) which prevent copy from 'disabled' fields.
|`isis.viewer.wicket.` +
`rememberMe.cookieKey`
-| ascii chars (`_isisWicketRememberMe_`)
+| ascii chars +
+(`_isisWicketRememberMe_`)
|Cookie key holding the (encrypted) 'rememberMe' user/password. There is generally no need to
change this. +
@@ -143,19 +157,19 @@ Valid values as per link:http://stackoverflow.com/a/1969339/56880[this StackOver
|`isis.viewer.wicket.` +
`rememberMe.encryptionKey`
-| any string (a random UUID each time)
+| any string +
+(in prod, a random UUID each time)
|Encryption key is used to encrypt the rememberMe user/password. +
Apache Isis leverages link:http://wicket.apache.org[Apache Wicket]'s rememberMe support which holds remembered
user/passwords in an encrypted cookie.
-If a hard-coded and publicly known value were to be used (as was the case prior to `1.13.0`), then it would be
-possible for rememberMe user/password to be intercepted and decrypted, possibly compromising access. This
-configuration property therefore allows a private key to be specified, baked into the application.
+If a hard-coded and publicly known value were to be used (as was the case prior to `1.13.0`), then it would be possible for rememberMe user/password to be intercepted and decrypted, possibly compromising access.
+This configuration property therefore allows a private key to be specified, baked into the application.
-If no value is set then (for safety) a random UUID will be used as the encryption key. (The net effect of this
-fallback behaviour is that 'rememberMe' will work, but only until the webapp is restarted (after which the end-user
-will have to log in again).
+If no value is set then, in production, a random UUID will be used as the encryption key.
+The net effect of this fallback behaviour is that 'rememberMe' will work, but only until the webapp is restarted (after which the end-user will have to log in again.
+In prototype mode, though, (as of `1.13.2-SNAPSHOT`), a fixed key will still be used; this saves the developer having to login each time.
|`isis.viewer.wicket.` +
`rememberMe.suppress`
@@ -207,13 +221,25 @@ will have to log in again).
| Whether to show chooser for Bootstrap themes. See discussion xref:ugvw.adoc#_ugvw_configuration-properties_showing-theme-chooser[below]
|`isis.viewer.wicket.` +
+`useIndicatorForFormSubmit`
+| `true`,`false` +
+(`_true_`)
+| (`1.13.2-SNAPSHOT`) Whether to show an indicator for a form submit button that it has been clicked.
+
+|`isis.viewer.wicket.` +
+`useIndicatorForNoArgAction`
+| `true`,`false` +
+(`_true_`)
+| (`1.13.2-SNAPSHOT`) Whether to show an indicator for a no-arg action button that it has been clicked.
+
+|`isis.viewer.wicket.` +
`wicketSourcePlugin`
| `true`,`false` +
(`_false_`)
-| Whether the Wicketsource plugin should be enabled; by default it is not enabled.
+| Whether the WicketSource plugin should be enabled; by default it is not enabled.
-Prior to `1.12.0` this was enabled by default for prototyping (not production). However it can significantly
-slow down rendering, hence the introduction of this configuration setting.
+Prior to `1.12.0` this was enabled by default for prototyping (not production).
+However it can significantly slow down rendering, hence the introduction of this configuration setting.
|===
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 6764b94..07002d2 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -80,6 +80,7 @@ import org.apache.isis.schema.utils.ChangesDtoUtils;
import org.apache.isis.schema.utils.CommandDtoUtils;
import org.apache.isis.schema.utils.InteractionDtoUtils;
import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
import org.apache.isis.viewer.wicket.model.models.PageType;
@@ -137,7 +138,7 @@ import net.ftlines.wicketsource.WicketSource;
*/
public class IsisWicketApplication
extends AuthenticatedWebApplication
- implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor {
+ implements ComponentFactoryRegistryAccessor, PageClassRegistryAccessor, WicketViewerSettingsAccessor {
private static final long serialVersionUID = 1L;
@@ -207,6 +208,10 @@ public class IsisWicketApplication
@com.google.inject.Inject
private DeploymentCategory deploymentCategory;
+ @com.google.inject.Inject
+ private WicketViewerSettings settings;
+
+
private boolean determiningConfigurationType;
private DeploymentTypeWicketAbstract deploymentType;
@@ -863,4 +868,9 @@ public class IsisWicketApplication
return deploymentCategory;
}
+ @Override
+ public WicketViewerSettings getSettings() {
+ return settings;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
index 91ef087..a4cf168 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/settings/WicketViewerSettingsDefault.java
@@ -75,4 +75,24 @@ public class WicketViewerSettingsDefault implements WicketViewerSettings {
public boolean isReplaceDisabledTagWithReadonlyTag() {
return getConfiguration().getBoolean("isis.viewer.wicket.replaceDisabledTagWithReadonlyTag", true);
}
+
+ @Override
+ public boolean isPreventDoubleClickForFormSubmit() {
+ return getConfiguration().getBoolean("isis.viewer.wicket.preventDoubleClickForFormSubmit", true);
+ }
+
+ @Override
+ public boolean isPreventDoubleClickForNoArgAction() {
+ return getConfiguration().getBoolean("isis.viewer.wicket.preventDoubleClickForNoArgAction", true);
+ }
+
+ @Override
+ public boolean isUseIndicatorForFormSubmit() {
+ return getConfiguration().getBoolean("isis.viewer.wicket.useIndicatorForFormSubmit", true);
+ }
+
+ @Override
+ public boolean isUseIndicatorForNoArgAction() {
+ return getConfiguration().getBoolean("isis.viewer.wicket.useIndicatorForNoArgAction", true);
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
index 0f00912..5e0c2d6 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettings.java
@@ -21,7 +21,6 @@ package org.apache.isis.viewer.wicket.model.isis;
import java.io.Serializable;
-
public interface WicketViewerSettings extends Serializable {
/**
@@ -71,4 +70,35 @@ public interface WicketViewerSettings extends Serializable {
* This behaviour is enabled by default but can be disabled using this flag
*/
boolean isReplaceDisabledTagWithReadonlyTag();
+
+ /**
+ * Whether to disable a form submit button after it has been clicked, to prevent users causing an error if they
+ * do a double click.
+ *
+ * This behaviour is enabled by default, but can be disabled using this flag.
+ */
+ boolean isPreventDoubleClickForFormSubmit();
+
+ /**
+ * Whether to disable a no-arg action button after it has been clicked, to prevent users causing an error if they
+ * do a double click.
+ *
+ * This behaviour is enabled by default, but can be disabled using this flag.
+ */
+ boolean isPreventDoubleClickForNoArgAction();
+
+ /**
+ * Whether to show an indicator for a form submit button that it has been clicked.
+ *
+ * This behaviour is enabled by default, but can be disabled using this flag.
+ */
+ boolean isUseIndicatorForFormSubmit();
+
+ /**
+ * Whether to show an indicator for a no-arg action button that it has been clicked.
+ *
+ * This behaviour is enabled by default, but can be disabled using this flag.
+ */
+ boolean isUseIndicatorForNoArgAction();
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettingsAccessor.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettingsAccessor.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettingsAccessor.java
new file mode 100644
index 0000000..10a8e0f
--- /dev/null
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/isis/WicketViewerSettingsAccessor.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.model.isis;
+
+public interface WicketViewerSettingsAccessor {
+
+ WicketViewerSettings getSettings();
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 8c1f156..420cfc9 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -19,10 +19,31 @@
package org.apache.isis.viewer.wicket.model.models;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import com.google.common.base.Throwables;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.ContentDisposition;
+import org.apache.wicket.util.resource.AbstractResourceStream;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
+import org.apache.wicket.util.resource.StringResourceStream;
+
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.RecoverableException;
import org.apache.isis.applib.annotation.BookmarkPolicy;
@@ -52,32 +73,13 @@ import org.apache.isis.viewer.wicket.model.mementos.ActionMemento;
import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
-import org.apache.wicket.request.IRequestHandler;
-import org.apache.wicket.request.handler.resource.ResourceStreamRequestHandler;
-import org.apache.wicket.request.http.handler.RedirectRequestHandler;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.request.resource.ContentDisposition;
-import org.apache.wicket.util.resource.AbstractResourceStream;
-import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.StringResourceStream;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
/**
* Models an action invocation, either the gathering of arguments for the
* action's {@link Mode#PARAMETERS parameters}, or the handling of the
* {@link Mode#RESULTS results} once invoked.
*/
-public class ActionModel extends BookmarkableModel<ObjectAdapter> {
+public class ActionModel extends BookmarkableModel<ObjectAdapter> implements HasExecutingPanel {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasExecutingPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasExecutingPanel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasExecutingPanel.java
new file mode 100644
index 0000000..2d0826f
--- /dev/null
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/HasExecutingPanel.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.model.models;
+
+public interface HasExecutingPanel {
+ ExecutingPanel getExecutingPanel();
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index 304604f..755da1b 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -19,7 +19,13 @@
package org.apache.isis.viewer.wicket.model.models;
+import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
import com.google.common.collect.Lists;
+
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
@@ -49,11 +55,6 @@ import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
import org.apache.isis.viewer.wicket.model.mementos.PropertyMemento;
import org.apache.isis.viewer.wicket.model.mementos.SpecUtils;
-import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
/**
* Represents a scalar of an entity, either a {@link Kind#PROPERTY property} or
* a {@link Kind#PARAMETER parameter}.
@@ -62,7 +63,7 @@ import java.util.List;
* Is the backing model to each of the fields that appear in forms (for entities
* or action dialogs).
*/
-public class ScalarModel extends EntityModel implements LinksProvider {
+public class ScalarModel extends EntityModel implements LinksProvider,HasExecutingPanel {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index dbda8ad..f05caa6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -21,100 +21,71 @@ package org.apache.isis.viewer.wicket.ui.components.actions;
import java.util.List;
-import com.google.common.collect.Lists;
-
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.event.Broadcast;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.repeater.RepeatingView;
-import org.apache.wicket.model.ResourceModel;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.core.commons.ensure.Ensure;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.viewer.wicket.model.hints.IsisActionCompletedEvent;
import org.apache.isis.viewer.wicket.model.mementos.ActionParameterMemento;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
-import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
-import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
-import org.apache.isis.viewer.wicket.model.models.ExecutingPanel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.ComponentType;
+import org.apache.isis.viewer.wicket.ui.panels.PromptFormPanelAbstract;
+import org.apache.isis.viewer.wicket.ui.components.property.PropertyEditFormPanel;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarModelSubscriber;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel.ScalarModelProvider;
-import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
-import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
-import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
/**
* {@link PanelAbstract Panel} to capture the arguments for an action
* invocation.
*/
-public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
+public class ActionParametersFormPanel extends PromptFormPanelAbstract<ActionModel> {
private static final long serialVersionUID = 1L;
- private static final String ID_OK_BUTTON = "okButton";
- private static final String ID_CANCEL_BUTTON = "cancelButton";
private static final String ID_ACTION_PARAMETERS = "parameters";
- private final ExecutingPanel executingPanel;
-
public ActionParametersFormPanel(final String id, final ActionModel model) {
super(id, model);
-
- Ensure.ensureThatArg(model.getExecutingPanel(), is(not(nullValue())));
-
- this.executingPanel = model.getExecutingPanel();
buildGui();
}
private void buildGui() {
ActionModel model = getModel();
- // in case previously used, eg prompt displayed then cancelled
- model.clearArguments();
-
- add(new ActionParameterForm("inputForm", model));
+ model.clearArguments(); // in case previously used, eg prompt displayed then cancelled
+ add(new ActionParameterForm("inputForm", this, model));
}
- class ActionParameterForm extends Form<ObjectAdapter> implements ScalarModelSubscriber {
+ class ActionParameterForm extends PropertyEditFormPanel.FormAbstract<ActionModel> implements ScalarModelSubscriber {
private static final long serialVersionUID = 1L;
- private static final String ID_FEEDBACK = "feedback";
-
- private final List<ScalarPanelAbstract> paramPanels = Lists.newArrayList();
-
- public ActionParameterForm(final String id, final ActionModel actionModel) {
- super(id, actionModel);
- setOutputMarkupId(true); // for ajax button
-
- addParameters();
-
- FormFeedbackPanel formFeedback = new FormFeedbackPanel(ID_FEEDBACK);
- addOrReplace(formFeedback);
- addButtons();
+ public ActionParameterForm(
+ final String id,
+ final PromptFormPanelAbstract<?> parentPanel,
+ final ActionModel actionModel) {
+ super(id, parentPanel, actionModel);
}
private ActionModel getActionModel() {
return (ActionModel) super.getModel();
}
- private void addParameters() {
+ @Override
+ protected void addParameters() {
final ActionModel actionModel = getActionModel();
List<ActionParameterMemento> parameterMementos = actionModel.primeArgumentModels();
@@ -138,69 +109,15 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
}
}
-
- private void addButtons() {
- AjaxButton okButton = new AjaxButton(ID_OK_BUTTON, new ResourceModel("okLabel")) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onSubmit(AjaxRequestTarget target, Form<?> form) {
- boolean succeeded = executingPanel.executeAndProcessResults(target, form);
- if(succeeded) {
- // the Wicket ajax callbacks will have just started to hide the veil
- // we now show it once more, so that a veil continues to be shown until the
- // new page is rendered.
- target.appendJavaScript("isisShowVeil();\n");
-
- send(getPage(), Broadcast.EXACT, new IsisActionCompletedEvent(getActionModel(), target, form));
-
- target.add(form);
- } else {
- //if (actionPromptIfAny != null) {
-
- final StringBuilder builder = new StringBuilder();
-
- // ensure any jGrowl errors are shown
- // (normally would be flushed when traverse to next page).
- String errorMessagesIfAny = JGrowlUtil.asJGrowlCalls(getAuthenticationSession().getMessageBroker());
- builder.append(errorMessagesIfAny);
-
- // append the JS to the response.
- String buf = builder.toString();
- target.appendJavaScript(buf);
- target.add(form);
- //}
- }
- };
-
- /**
- * On validation error
- */
- @Override
- protected void onError(AjaxRequestTarget target, Form<?> form) {
- super.onError(target, form);
- target.add(form);
- }
- };
- okButton.add(new JGrowlBehaviour());
- setDefaultButton(okButton);
- add(okButton);
+ @Override
+ protected void configureButtons(final AjaxButton okButton) {
applyAreYouSure(okButton);
+ }
- AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, new ResourceModel("cancelLabel")) {
- private static final long serialVersionUID = 1L;
- @Override
- public void onSubmit(final AjaxRequestTarget target, Form<?> form) {
- final ActionPrompt actionPromptIfAny = ActionPromptProvider.Util.getFrom(ActionParametersFormPanel.this).getActionPrompt();
- if(actionPromptIfAny != null) {
- actionPromptIfAny.closePrompt(target);
- }
- }
- };
- // so can submit with invalid content (eg mandatory params missing)
- cancelButton.setDefaultFormProcessing(false);
- add(cancelButton);
+ @Override
+ protected Object newCompletedEvent(final AjaxRequestTarget target, final Form<?> form) {
+ return new IsisActionCompletedEvent(getActionModel(), target, form);
}
/**
@@ -260,13 +177,6 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
// get trampled over (ISIS-629).
}
- @Override
- public void onError(AjaxRequestTarget target, ScalarModelProvider provider) {
- if(provider instanceof Component) {
- // ensure that any feedback error associated with the providing component is shown.
- target.add((Component)provider);
- }
- }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
index ef21a30..107b7e0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/property/PropertyEditFormPanel.java
@@ -21,89 +21,55 @@ package org.apache.isis.viewer.wicket.ui.components.property;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.event.Broadcast;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.ResourceModel;
-import org.apache.isis.core.commons.authentication.MessageBroker;
-import org.apache.isis.core.commons.ensure.Ensure;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.viewer.wicket.model.hints.IsisPropertyEditCompletedEvent;
-import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
-import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
-import org.apache.isis.viewer.wicket.model.models.ExecutingPanel;
import org.apache.isis.viewer.wicket.model.models.ScalarModel;
import org.apache.isis.viewer.wicket.ui.ComponentType;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarModelSubscriber;
import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel.ScalarModelProvider;
-import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
-import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
-import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
+import org.apache.isis.viewer.wicket.ui.panels.PromptFormPanelAbstract;
import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
-
/**
* {@link PanelAbstract Panel} to capture the arguments for an action
* invocation.
*/
-public class PropertyEditFormPanel extends PanelAbstract<ScalarModel> {
+public class PropertyEditFormPanel extends PromptFormPanelAbstract<ScalarModel> {
private static final long serialVersionUID = 1L;
- private static final String ID_OK_BUTTON = "okButton";
- private static final String ID_CANCEL_BUTTON = "cancelButton";
-
private static final String ID_PROPERTY = "property";
- private final ExecutingPanel executingPanel;
-
public PropertyEditFormPanel(final String id, final ScalarModel model) {
super(id, model);
-
- Ensure.ensureThatArg(model.getExecutingPanel(), is(not(nullValue())));
-
- this.executingPanel = model.getExecutingPanel();
-
buildGui();
}
private void buildGui() {
ScalarModel model = getModel();
-
- add(new PropertyEditForm("inputForm", model));
+ add(new PropertyEditForm("inputForm", this, model));
}
- class PropertyEditForm extends Form<ObjectAdapter> implements ScalarModelSubscriber {
+ class PropertyEditForm extends FormAbstract<ScalarModel> implements ScalarModelSubscriber {
private static final long serialVersionUID = 1L;
- private static final String ID_FEEDBACK = "feedback";
-
- private ScalarPanelAbstract propertyPanel = null;
-
- public PropertyEditForm(final String id, final ScalarModel actionModel) {
- super(id, actionModel);
-
- setOutputMarkupId(true); // for ajax button
-
- addParameters();
-
- FormFeedbackPanel formFeedback = new FormFeedbackPanel(ID_FEEDBACK);
- addOrReplace(formFeedback);
- addButtons();
+ public PropertyEditForm(
+ final String id,
+ final PromptFormPanelAbstract<?> parentPanel,
+ final ScalarModel propertyModel) {
+ super(id, parentPanel, propertyModel);
}
private ScalarModel getScalarModel() {
return (ScalarModel) super.getModel();
}
- private void addParameters() {
+ @Override
+ protected void addParameters() {
final ScalarModel scalarModel = getScalarModel();
final WebMarkupContainer container = new WebMarkupContainer(ID_PROPERTY);
@@ -111,7 +77,6 @@ public class PropertyEditFormPanel extends PanelAbstract<ScalarModel> {
final Component component = getComponentFactoryRegistry().addOrReplaceComponent(container, ComponentType.SCALAR_NAME_AND_VALUE, scalarModel);
final ScalarPanelAbstract paramPanel = component instanceof ScalarPanelAbstract ? (ScalarPanelAbstract) component : null;
- propertyPanel = paramPanel;
if(paramPanel != null) {
paramPanel.setOutputMarkupId(true);
paramPanel.notifyOnChange(this);
@@ -119,68 +84,9 @@ public class PropertyEditFormPanel extends PanelAbstract<ScalarModel> {
}
- private void addButtons() {
- AjaxButton okButton = new AjaxButton(ID_OK_BUTTON, new ResourceModel("okLabel")) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onSubmit(AjaxRequestTarget target, Form<?> form) {
- boolean succeeded = executingPanel.executeAndProcessResults(target, form);
- if(succeeded) {
- // the Wicket ajax callbacks will have just started to hide the veil
- // we now show it once more, so that a veil continues to be shown until the
- // new page is rendered.
- target.appendJavaScript("isisShowVeil();\n");
-
- send(getPage(), Broadcast.EXACT, new IsisPropertyEditCompletedEvent(getScalarModel(), target, form));
-
- target.add(form);
- } else {
-
- final StringBuilder builder = new StringBuilder();
-
- // ensure any jGrowl errors are shown
- // (normally would be flushed when traverse to next page).
- final MessageBroker messageBroker = getIsisSessionFactory().getCurrentSession()
- .getAuthenticationSession().getMessageBroker();
- String errorMessagesIfAny = JGrowlUtil.asJGrowlCalls(messageBroker);
- builder.append(errorMessagesIfAny);
-
- // append the JS to the response.
- String buf = builder.toString();
- target.appendJavaScript(buf);
- target.add(form);
- }
- };
-
- /**
- * On validation error
- */
- @Override
- protected void onError(AjaxRequestTarget target, Form<?> form) {
- super.onError(target, form);
- target.add(form);
- }
- };
- okButton.add(new JGrowlBehaviour());
- setDefaultButton(okButton);
- add(okButton);
-
- AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, new ResourceModel("cancelLabel")) {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onSubmit(final AjaxRequestTarget target, Form<?> form) {
- final ActionPrompt actionPromptIfAny = ActionPromptProvider.Util.getFrom(PropertyEditFormPanel.this).getActionPrompt();
- if(actionPromptIfAny != null) {
- actionPromptIfAny.closePrompt(target);
- }
- }
- };
- // so can submit with invalid content (eg mandatory params missing)
- cancelButton.setDefaultFormProcessing(false);
- add(cancelButton);
-
+ @Override
+ protected Object newCompletedEvent(final AjaxRequestTarget target, final Form<?> form) {
+ return new IsisPropertyEditCompletedEvent(getScalarModel(), target, form);
}
@Override
@@ -189,13 +95,6 @@ public class PropertyEditFormPanel extends PanelAbstract<ScalarModel> {
}
- public void onError(AjaxRequestTarget target, ScalarModelProvider provider) {
- if(provider instanceof Component) {
- // ensure that any feedback error associated with the providing component is shown.
- target.add((Component)provider);
- }
- }
-
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index dd0c68d..421ce86 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -23,6 +23,7 @@ import org.apache.wicket.Application;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.request.IRequestHandler;
@@ -30,6 +31,8 @@ import org.apache.wicket.request.IRequestHandler;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettingsAccessor;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.models.ActionModel;
import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
@@ -41,6 +44,7 @@ import org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptHead
import org.apache.isis.viewer.wicket.ui.components.actions.ActionPanel;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistryAccessor;
+import org.apache.isis.viewer.wicket.ui.panels.PanelUtil;
import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
@@ -61,7 +65,61 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
// TODO: see https://issues.apache.org/jira/browse/ISIS-1264 for further detail.
final AjaxDeferredBehaviour ajaxDeferredBehaviour = determineDeferredBehaviour(action, actionModel);
- final AbstractLink link = new AjaxLink<Object>(linkId) {
+ // TODO: could remove some of the copy-n-paste between IndicatingAjaxLink and AjaxLink
+ final AbstractLink link = getSettings().isUseIndicatorForNoArgAction()
+ ? new IndicatingAjaxLink<Object>(linkId) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+
+ if (ajaxDeferredBehaviour != null) {
+ ajaxDeferredBehaviour.initiate(target);
+ }
+ else {
+ final ActionPromptProvider promptProvider = ActionPromptProvider.Util.getFrom(getPage());
+ final ActionPrompt actionPrompt = promptProvider.getActionPrompt();
+ final ActionPromptHeaderPanel titlePanel =
+ PersistenceSession.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
+ new Callable<ActionPromptHeaderPanel>() {
+ @Override
+ public ActionPromptHeaderPanel call() throws Exception {
+ final String titleId = actionPrompt.getTitleId();
+ return new ActionPromptHeaderPanel(titleId, actionModel);
+ }
+ });
+ final ActionPanel actionPanel =
+ (ActionPanel) getComponentFactoryRegistry().createComponent(
+ ComponentType.ACTION_PROMPT, actionPrompt.getContentId(), actionModel);
+
+ actionPanel.setShowHeader(false);
+
+ actionPrompt.setTitle(titlePanel, target);
+ actionPrompt.setPanel(actionPanel, target);
+ actionPanel.setActionPrompt(actionPrompt);
+ actionPrompt.showPrompt(target);
+ }
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ if(getSettings().isPreventDoubleClickForNoArgAction()) {
+ PanelUtil.disableBeforeReenableOnComplete(attributes, this);
+ }
+
+ // allow the event to bubble so the menu is hidden after click on an item
+ attributes.setEventPropagation(AjaxRequestAttributes.EventPropagation.BUBBLE);
+ }
+
+ @Override
+ protected void onComponentTag(ComponentTag tag) {
+ super.onComponentTag(tag);
+
+ Buttons.fixDisabledState(this, tag);
+ }
+ } :
+ new AjaxLink<Object>(linkId) {
private static final long serialVersionUID = 1L;
@Override
@@ -98,6 +156,9 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
super.updateAjaxAttributes(attributes);
+ if(getSettings().isPreventDoubleClickForNoArgAction()) {
+ PanelUtil.disableBeforeReenableOnComplete(attributes, this);
+ }
// allow the event to bubble so the menu is hidden after click on an item
attributes.setEventPropagation(AjaxRequestAttributes.EventPropagation.BUBBLE);
@@ -188,9 +249,8 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
return LinkAndLabel.newLinkAndLabel(objectAdapter, objectAction, link, disabledReasonIfAny, blobOrClob);
}
- // ////////////////////////////////////////////////////////////
- // Dependencies
- // ////////////////////////////////////////////////////////////
+
+ //region > dependencies
protected ComponentFactoryRegistry getComponentFactoryRegistry() {
return ((ComponentFactoryRegistryAccessor) Application.get()).getComponentFactoryRegistry();
@@ -200,4 +260,10 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
return ((PageClassRegistryAccessor) Application.get()).getPageClassRegistry();
}
+ protected WicketViewerSettings getSettings() {
+ return ((WicketViewerSettingsAccessor)Application.get()).getSettings();
+ }
+
+ //endregion
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
index 612eeb3..08d069d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
@@ -59,6 +59,10 @@ body {
filter: alpha(opacity=50);
}
+#veil .text-center {
+ margin-top: 100px;
+}
+
.table .table td {
border: none;
}
@@ -849,4 +853,11 @@ tr.headers th form input {
.entityHeaderPanel .entityActions ul.additionalLinkList li.additionalLinkItem {
padding-top: 3px;
padding-bottom: 7px;
-}
\ No newline at end of file
+}
+
+.propertyEditForm .buttons .wicket-ajax-indicator,
+.actionParametersForm .buttons .wicket-ajax-indicator,
+.additionalLinkList .wicket-ajax-indicator {
+ margin-left: 4px;
+ margin-right: 10px;
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
index 4c7af42..324c593 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PanelUtil.java
@@ -19,6 +19,10 @@
package org.apache.isis.viewer.wicket.ui.panels;
import com.google.common.base.Strings;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.CssReferenceHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
@@ -68,4 +72,11 @@ public final class PanelUtil {
}
return simpleName + string + ".css";
}
+
+ public static void disableBeforeReenableOnComplete(
+ final AjaxRequestAttributes attributes, final Component ajaxButtonOrLink) {
+ attributes.getAjaxCallListeners().add(new AjaxCallListener()
+ .onBefore("$('#" + ajaxButtonOrLink.getMarkupId() + "').prop('disabled',true);")
+ .onComplete("$('#" + ajaxButtonOrLink.getMarkupId() + "').prop('disabled',false);"));
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java
new file mode 100644
index 0000000..c815cb0
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/panels/PromptFormPanelAbstract.java
@@ -0,0 +1,225 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.viewer.wicket.ui.panels;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.event.Broadcast;
+import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.ResourceModel;
+
+import org.apache.isis.core.commons.ensure.Ensure;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
+import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
+import org.apache.isis.viewer.wicket.model.models.ActionPromptProvider;
+import org.apache.isis.viewer.wicket.model.models.ExecutingPanel;
+import org.apache.isis.viewer.wicket.model.models.HasExecutingPanel;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarModelSubscriber;
+import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract;
+import org.apache.isis.viewer.wicket.ui.components.scalars.TextFieldValueModel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.formcomponent.FormFeedbackPanel;
+import org.apache.isis.viewer.wicket.ui.errors.JGrowlBehaviour;
+import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+
+/**
+ * {@link PanelAbstract Panel} to capture the arguments for an action
+ * invocation.
+ */
+public abstract class PromptFormPanelAbstract<T extends IModel<?> & HasExecutingPanel> extends PanelAbstract<T> {
+
+ protected final ExecutingPanel executingPanel;
+
+ private static final String ID_OK_BUTTON = "okButton";
+ private static final String ID_CANCEL_BUTTON = "cancelButton";
+
+
+ public PromptFormPanelAbstract(final String id, final T model) {
+ super(id, model);
+ Ensure.ensureThatArg(model.getExecutingPanel(), is(not(nullValue())));
+ this.executingPanel = model.getExecutingPanel();
+ }
+
+ public static abstract class FormAbstract<T extends IModel<?>> extends Form<ObjectAdapter>
+ implements ScalarModelSubscriber {
+
+ protected static final String ID_FEEDBACK = "feedback";
+
+ protected final List<ScalarPanelAbstract> paramPanels = Lists.newArrayList();
+ protected final PromptFormPanelAbstract<?> parentPanel;
+
+ public FormAbstract(final String id, final PromptFormPanelAbstract<?> parentPanel, final IModel<ObjectAdapter> model) {
+ super(id, model);
+ this.parentPanel = parentPanel;
+
+ setOutputMarkupId(true); // for ajax button
+ addParameters();
+
+ FormFeedbackPanel formFeedback = new FormFeedbackPanel(ID_FEEDBACK);
+ addOrReplace(formFeedback);
+
+ AjaxButton okButton = addOkButton();
+ addCancelButton();
+ configureButtons(okButton);
+ }
+
+ protected abstract void addParameters();
+
+ protected AjaxButton addOkButton() {
+ AjaxButton okButton = parentPanel.getSettings().isUseIndicatorForFormSubmit()
+ ? new IndicatingAjaxButton(ID_OK_BUTTON, new ResourceModel("okLabel")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form) {
+ onSubmitOf(target, form, this, FormAbstract.this.parentPanel);
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ if(parentPanel.getSettings().isPreventDoubleClickForFormSubmit()) {
+ PanelUtil.disableBeforeReenableOnComplete(attributes, this);
+ }
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form) {
+ super.onError(target, form);
+ target.add(form);
+ }
+ }
+ : new AjaxButton(ID_OK_BUTTON, new ResourceModel("okLabel")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onSubmit(AjaxRequestTarget target, Form<?> form) {
+ onSubmitOf(target, form, this, FormAbstract.this.parentPanel);
+ }
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ if(parentPanel.getSettings().isPreventDoubleClickForFormSubmit()) {
+ PanelUtil.disableBeforeReenableOnComplete(attributes, this);
+ }
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form) {
+ super.onError(target, form);
+ target.add(form);
+ }
+ };
+ okButton.add(new JGrowlBehaviour());
+ setDefaultButton(okButton);
+ add(okButton);
+ return okButton;
+ }
+
+
+ protected void addCancelButton() {
+ AjaxButton cancelButton = new AjaxButton(ID_CANCEL_BUTTON, new ResourceModel("cancelLabel")) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onSubmit(final AjaxRequestTarget target, Form<?> form) {
+ final ActionPrompt actionPromptIfAny = ActionPromptProvider.Util.getFrom(parentPanel).getActionPrompt();
+ if(actionPromptIfAny != null) {
+ actionPromptIfAny.closePrompt(target);
+ }
+ }
+ };
+ // so can submit with invalid content (eg mandatory params missing)
+ cancelButton.setDefaultFormProcessing(false);
+
+ add(cancelButton);
+ }
+
+ protected void configureButtons(final AjaxButton okButton) {
+ }
+
+ private void onSubmitOf(
+ final AjaxRequestTarget target,
+ final Form<?> form,
+ final AjaxButton ajaxButton,
+ final PromptFormPanelAbstract<?> parentPanel) {
+ boolean succeeded = parentPanel.executingPanel.executeAndProcessResults(target, form);
+ if(succeeded) {
+ // the Wicket ajax callbacks will have just started to hide the veil
+ // we now show it once more, so that a veil continues to be shown until the
+ // new page is rendered.
+ target.appendJavaScript("isisShowVeil();\n");
+
+ ajaxButton.send(getPage(), Broadcast.EXACT, newCompletedEvent(target, form));
+
+ target.add(form);
+ } else {
+
+ final StringBuilder builder = new StringBuilder();
+
+ // ensure any jGrowl errors are shown
+ // (normally would be flushed when traverse to next page).
+ String errorMessagesIfAny = JGrowlUtil.asJGrowlCalls(parentPanel.getAuthenticationSession().getMessageBroker());
+ builder.append(errorMessagesIfAny);
+
+ // append the JS to the response.
+ String buf = builder.toString();
+ target.appendJavaScript(buf);
+ target.add(form);
+ }
+ }
+
+
+ protected abstract Object newCompletedEvent(
+ final AjaxRequestTarget target,
+ final Form<?> form);
+
+ @Override
+ public void onError(AjaxRequestTarget target, TextFieldValueModel.ScalarModelProvider provider) {
+ if(provider instanceof Component) {
+ // ensure that any feedback error associated with the providing component is shown.
+ target.add((Component)provider);
+ }
+ }
+
+ }
+
+ //region > dependencies
+ @com.google.inject.Inject
+ private WicketViewerSettings settings;
+ protected WicketViewerSettings getSettings() {
+ return settings;
+ }
+ //endregion
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/2447b1f2/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
index d6f1ff1..44fb49e 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/viewer_wicket.properties
@@ -40,6 +40,19 @@ isis.viewer.wicket.maxTitleLengthInParentedTables=0
#isis.viewer.wicket.replaceDisabledTagWithReadonlyTag=true
+#
+# Whether to disable buttons after it has been clicked (for both form submit and no-arg actions), to prevent users
+# causing an error if they do a double click.
+# Also, whether to show an indicator alongside the button.
+#
+# This behaviour is enabled by default, but can be disabled using this flag.
+#
+#isis.viewer.wicket.preventDoubleClickForFormSubmit=true
+#isis.viewer.wicket.preventDoubleClickForNoArgAction=true
+#isis.viewer.wicket.useIndicatorForFormSubmit=true
+#isis.viewer.wicket.useIndicatorForNoArgAction=true
+
+
#isis.viewer.wicket.datePicker.minDate=1900-01-01T00:00:00.000Z
#isis.viewer.wicket.datePicker.maxDate=2100-01-01T00:00:00.000Z
[3/8] isis git commit: ISIS-1553: returns a fixed encryption key if
not running in production
Posted by da...@apache.org.
ISIS-1553: returns a fixed encryption key if not running in production
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/bca9bfae
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/bca9bfae
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/bca9bfae
Branch: refs/heads/master
Commit: bca9bfaeab8dfed119170aa9128a0b70828ddd2d
Parents: 8b46518
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Dec 9 09:02:00 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Dec 9 09:02:00 2016 +0000
----------------------------------------------------------------------
.../apache/isis/viewer/wicket/viewer/IsisWicketApplication.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/bca9bfae/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index c40b7d9..6764b94 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -389,7 +389,9 @@ public class IsisWicketApplication
* app is restarted.
*/
protected String defaultEncryptionKeyIfNotConfigured() {
- return UUID.randomUUID().toString();
+ return getDeploymentCategory().isProduction()
+ ? UUID.randomUUID().toString()
+ : "PrototypingEncryptionKey";
}
private void log(final Set<String> validationErrors) {
[8/8] isis git commit: ISIS-1538: recreating simpleapp archetype
Posted by da...@apache.org.
ISIS-1538: recreating simpleapp archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/15d87ead
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/15d87ead
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/15d87ead
Branch: refs/heads/master
Commit: 15d87eada572d7d4a9a2c7292d865a1b49861b4c
Parents: 264f155
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Dec 10 12:36:14 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Dec 10 12:36:14 2016 +0000
----------------------------------------------------------------------
.../resources/archetype-resources/application/translations.pot | 2 +-
.../resources/archetype-resources/module-simple/translations.pot | 2 +-
.../src/test/resources/projects/basic/archetype.properties | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/15d87ead/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
index 8d801b2..09d9f87 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/application/translations.pot
@@ -23,7 +23,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2016-12-01 10:21:17+\n"
+"POT-Creation-Date: 2016-12-10 10:53:28+\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
http://git-wip-us.apache.org/repos/asf/isis/blob/15d87ead/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
index 863a451..42f6074 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/module-simple/translations.pot
@@ -23,7 +23,7 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
-"POT-Creation-Date: 2016-12-01 10:20:52+\n"
+"POT-Creation-Date: 2016-12-10 12:24:20+\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
http://git-wip-us.apache.org/repos/asf/isis/blob/15d87ead/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
index b6480d8..8c7c5d1 100644
--- a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Thu Dec 01 10:28:42 GMT 2016
+#Sat Dec 10 12:36:10 GMT 2016
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it