= Wicket Viewer
:page-role: -toc -narrow


:Notice: 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.

include::../section-hooks/isis.viewer.wicket~pre.adoc[]

[cols="3a,2a,5a", options="header"]
|===
|Property
|Default
|Description
|
[[isis.viewer.wicket.ajax-debug-mode]]
isis.viewer.wicket.ajax-debug-mode

| 
| Whether the Ajax debug should be shown, by default this is disabled.


|
[[isis.viewer.wicket.app]]
isis.viewer.wicket.app

| 
| Specifies the subclass of ``IsisWicketApplication`` that is used to bootstrap Wicket.

There is usually very little reason to change this from its default.


|
[[isis.viewer.wicket.application.about]]
isis.viewer.wicket.application. +
about

| 
| Label used on the about page.


|
[[isis.viewer.wicket.application.brand-logo-header]]
isis.viewer.wicket.application. +
brand-logo-header

| 
| Either the location of the image file (relative to the class-path resource root), or an absolute URL.

This is rendered on the header panel. An image with a size of 160x40 works well. If not specified, the application.name is used instead.


|
[[isis.viewer.wicket.application.brand-logo-signin]]
isis.viewer.wicket.application. +
brand-logo-signin

| 
| Either the location of the image file (relative to the class-path resource root), or an absolute URL.

This is rendered on the sign-in page. An image with a size of 400x40 works well. If not specified, the application name is used instead.


|
[[isis.viewer.wicket.application.css]]
isis.viewer.wicket.application.css

| 
| URL of file to read any custom CSS, relative to ``static`` package on the class path.

A typical value is ``css``. This will result in this file being read from the ``static/css`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).


|
[[isis.viewer.wicket.application.favicon-url]]
isis.viewer.wicket.application. +
favicon-url

| 
| Specifies the URL to use of the favIcon.

This is expected to be a local resource.


|
[[isis.viewer.wicket.application.js]]
isis.viewer.wicket.application.js

| 
| URL of file to read any custom JavaScript, relative to ``static`` package on the class path.

A typical value is ``js``. This will result in this file being read from the ``static/js`` directory (because static resources such as CSS are mounted by Spring by default under ``static`` package).


|
[[isis.viewer.wicket.application.menubars-layout-xml]]
isis.viewer.wicket.application. +
menubars-layout-xml

| 
| Specifies the file name containing the menubars.

This is expected to be a local resource.


|
[[isis.viewer.wicket.application.name]]
isis.viewer.wicket.application. +
name

| 
| Identifies the application on the sign-in page (unless a sign-in image is configured) and on top-left in the header (unless a header image is configured).


|
[[isis.viewer.wicket.application.version]]
isis.viewer.wicket.application. +
version

| 
| The version of the application, eg 1.0, 1.1, etc.

If present, then this will be shown in the footer on every page as well as on the about page.


|
[[isis.viewer.wicket.base-path]]
isis.viewer.wicket.base-path

| 
| The base path at which the Wicket viewer is mounted.


|
[[isis.viewer.wicket.bookmarked-pages.max-size]]
isis.viewer.wicket. +
bookmarked-pages.max-size

| 
| Specifies the maximum number of bookmarks to show.

These are aged out on an MRU-LRU basis.


|
[[isis.viewer.wicket.bookmarked-pages.show-chooser]]
isis.viewer.wicket. +
bookmarked-pages.show-chooser

| 
| Whether the panel providing linsk to previously visited object should be accessible from the top-left of the header.


|
[[isis.viewer.wicket.bookmarked-pages.show-drop-down-on-footer]]
isis.viewer.wicket. +
bookmarked-pages. +
show-drop-down-on-footer

| 
| Whether the drop-down list of previously visited objects should be shown in the footer.


|
[[isis.viewer.wicket.breadcrumbs.enabled]]
isis.viewer.wicket.breadcrumbs. +
enabled

| 
| Whether to enable the 'where am i' feature, in other words the breadcrumbs.


|
[[isis.viewer.wicket.breadcrumbs.max-parent-chain-length]]
isis.viewer.wicket.breadcrumbs. +
max-parent-chain-length

| 
| null


|
[[isis.viewer.wicket.clear-original-destination]]
isis.viewer.wicket. +
clear-original-destination

| 
| If the end user uses a deep link to access the Wicket viewer, but is not authenticated, then this configuration property determines whether to continue through to that original destination once authenticated, or simply to go to the home page.

The default behaviour is to honour the original destination requested.


|
[[isis.viewer.wicket.credit]]
isis.viewer.wicket.credit

| 
| List of organisations or individuals to give credit to, shown as links and icons in the footer. A maximum of 3 credits can be specified.

IntelliJ unfortunately does not provide IDE completion for lists of classes; YMMV.

NOTE: For further discussion, see for example https://stackoverflow.com/questions/41417933/spring-configuration-properties-metadata-json-for-nested-list-of-objects[this stackoverflow question] and https://github.com/spring-projects/spring-boot/wiki/IDE-binding-features#simple-pojo[this wiki page].


|
[[isis.viewer.wicket.date-picker.max-date]]
isis.viewer.wicket.date-picker. +
max-date

| 
| Defines the first date available in the date picker.

As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).


|
[[isis.viewer.wicket.date-picker.min-date]]
isis.viewer.wicket.date-picker. +
min-date

| 
| Defines the first date available in the date picker.

As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).


|
[[isis.viewer.wicket.development-utilities.enable]]
isis.viewer.wicket. +
development-utilities.enable

| 
| Determines whether debug bar and other stuff influenced by ``DebugSettings#isDevelopmentUtilitiesEnabled()`` is enabled or not.

By default, depends on the mode (prototyping = enabled, server = disabled). This property acts as an override.


|
[[isis.viewer.wicket.dialog-mode]]
isis.viewer.wicket.dialog-mode

| 
| Whether the dialog mode rendered when invoking actions on domain objects should be to use the sidebar (the default) or to use a modal dialog.

This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.


|
[[isis.viewer.wicket.dialog-mode-for-menu]]
isis.viewer.wicket. +
dialog-mode-for-menu

| 
| Whether the dialog mode rendered when invoking actions on domain services (that is, menus) should be to use a modal dialog (the default) or to use the sidebar panel.

This can be overridden on a case-by-case basis using ``ActionLayout#promptStyle()``.


|
[[isis.viewer.wicket.live-reload-url]]
isis.viewer.wicket.live-reload-url

| 
| If specified, then is rendered on each page to enable live reload.

Configuring live reload also requires an appropriate plugin to the web browser (eg see http://livereload.com/[livereload.com] and a mechanism to trigger changes, eg by watching ``xml`` files.


|
[[isis.viewer.wicket.max-title-length-in-parented-tables]]
isis.viewer.wicket. +
max-title-length-in-parented- +
tables

| 
| null


|
[[isis.viewer.wicket.max-title-length-in-standalone-tables]]
isis.viewer.wicket. +
max-title-length-in-standalone- +
tables

| 
| null


|
[[isis.viewer.wicket.max-title-length-in-tables]]
isis.viewer.wicket. +
max-title-length-in-tables

| 
| The maximum number of characters to use to render the title of a domain object (alongside the icon) in any table, if not otherwise overridden by either ``#getMaxTitleLengthInParentedTables()`` or ``#getMaxTitleLengthInStandaloneTables()``.

If truncated, then the remainder of the title will be replaced with ellipses (...).


|
[[isis.viewer.wicket.message-popups.error-delay]]
isis.viewer.wicket.message-popups. +
error-delay

| 
| How long the error popup should display before disappearing.

A value of 0 (the default) means do not disappear automatically.


|
[[isis.viewer.wicket.message-popups.info-delay]]
isis.viewer.wicket.message-popups. +
info-delay

| 
| How long the info popup should display before disappearing.

A value of 0 means do not disappear automatically.


|
[[isis.viewer.wicket.message-popups.offset]]
isis.viewer.wicket.message-popups. +
offset

| 
| How far in from the edge the popup should display


|
[[isis.viewer.wicket.message-popups.placement.horizontal]]
isis.viewer.wicket.message-popups. +
placement.horizontal

| 
| Whether to display popups aligned ot the left or right of the page.

The default is to show them aligned to the right


|
[[isis.viewer.wicket.message-popups.placement.vertical]]
isis.viewer.wicket.message-popups. +
placement.vertical

| 
| Whether to display popups at the top or the bottom of the page.

The default is to show them at the top.


|
[[isis.viewer.wicket.message-popups.warning-delay]]
isis.viewer.wicket.message-popups. +
warning-delay

| 
| How long the warning popup should display before disappearing.

A value of 0 (the default) means do not disappear automatically.


|
[[isis.viewer.wicket.prevent-double-click-for-form-submit]]
isis.viewer.wicket. +
prevent-double-click-for-form- +
submit

| 
| 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.


|
[[isis.viewer.wicket.prevent-double-click-for-no-arg-action]]
isis.viewer.wicket. +
prevent-double-click-for-no-arg- +
action

| 
| 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.


|
[[isis.viewer.wicket.prompt-style]]
isis.viewer.wicket.prompt-style

| 
| Whether to use a modal dialog for property edits and for actions associated with properties.

This can be overridden on a case-by-case basis using ``@PropertyLayout#promptStyle`` and ``@ActionLayout#promptStyle``.

This behaviour is disabled by default; the viewer will use an inline prompt in these cases, making for a smoother user experience.


|
[[isis.viewer.wicket.redirect-even-if-same-object]]
isis.viewer.wicket. +
redirect-even-if-same-object

| 
| Whether to redirect to a new page, even if the object being shown (after an action invocation or a property edit) is the same as the previous page.

This behaviour is disabled by default; the viewer will update the existing page if it can, making for a smoother user experience. If enabled then this reinstates the pre-1.15.0 behaviour of redirecting in all cases.


|
[[isis.viewer.wicket.remember-me.cookie-key]]
isis.viewer.wicket.remember-me. +
cookie-key

| 
| If the "remember me" feature is available, specifies the key to hold the encrypted credentials in the cookie.


|
[[isis.viewer.wicket.remember-me.encryption-key]]
isis.viewer.wicket.remember-me. +
encryption-key

| 
| If the "remember me" feature is available, optionally specifies an encryption key (a complex string acting as salt to the encryption algorithm) for computing the encrypted credentials.

If not set, then (in production mode) the Wicket viewer will compute a random key each time it is started. This will mean that any credentials stored between sessions will become invalid.

Conversely, if set then (in production mode) then the same salt will be used each time the app is started, meaning that cached credentials can continue to be used across restarts.

In prototype mode this setting is effectively ignored, because the same key will always be provided (either as set, or a fixed literal otherwise).


|
[[isis.viewer.wicket.remember-me.suppress]]
isis.viewer.wicket.remember-me. +
suppress

| 
| Whether the sign-in page should have a "remember me" link (the default), or if it should be suppressed.

If "remember me" is available and checked, then the viewer will allow users to login based on encrypted credentials stored in a cookie. An encryption key can optionally be specified.


|
[[isis.viewer.wicket.replace-disabled-tag-with-readonly-tag]]
isis.viewer.wicket. +
replace-disabled-tag-with-readonly- +
tag

| 
| 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.show-footer]]
isis.viewer.wicket.show-footer

| 
| Whether to show the footer menu bar.

This is enabled by default.


|
[[isis.viewer.wicket.strip-wicket-tags]]
isis.viewer.wicket. +
strip-wicket-tags

| 
| Whether Wicket tags should be stripped from the markup.

By default this is enabled, in other words Wicket tags are stripped. Please be aware that if tags are _not_ stripped, then this may break CSS rules on some browsers.


|
[[isis.viewer.wicket.suppress-password-reset]]
isis.viewer.wicket. +
suppress-password-reset

| 
| Whether to suppress the password reset link on the sign-in page.

Although this is disabled by default (in other words the 'reset password' link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressSignUp()`` sign-up link).


|
[[isis.viewer.wicket.suppress-sign-up]]
isis.viewer.wicket. +
suppress-sign-up

| 
| Whether to suppress the sign-up link on the sign-in page.

Although this is disabled by default (in other words the sign-up link is not suppressed), note that in addition the application must provide an implementation of the ``UserRegistrationService`` as well as a configured ``EmailNotificationService`` (same conditions as for the ``#isSuppressPasswordReset()`` password reset link).


|
[[isis.viewer.wicket.themes.enabled]]
isis.viewer.wicket.themes.enabled

| 
| A comma separated list of enabled theme names, as defined by https://bootswatch.com.


|
[[isis.viewer.wicket.themes.initial]]
isis.viewer.wicket.themes.initial

| 
| The initial theme to use.

Expected to be in the list of ``#getEnabled()`` themes.


|
[[isis.viewer.wicket.themes.show-chooser]]
isis.viewer.wicket.themes. +
show-chooser

| 
| Whether the theme chooser widget should be available in the footer.


|
[[isis.viewer.wicket.use-indicator-for-form-submit]]
isis.viewer.wicket. +
use-indicator-for-form-submit

| 
| Whether to show an indicator for a form submit button that it has been clicked.

This behaviour is enabled by default.


|
[[isis.viewer.wicket.use-indicator-for-no-arg-action]]
isis.viewer.wicket. +
use-indicator-for-no-arg-action

| 
| Whether to show an indicator for a no-arg action button that it has been clicked.

This behaviour is enabled by default.


|
[[isis.viewer.wicket.welcome.text]]
isis.viewer.wicket.welcome.text

| 
| Text to be displayed on the application’s home page, used as a fallback if welcome.file is not specified. If a @HomePage action exists, then that will take precedence.


|
[[isis.viewer.wicket.wicket-source-plugin]]
isis.viewer.wicket. +
wicket-source-plugin

| 
| Whether the Wicket source plugin should be enabled; if so, the markup includes links to the Wicket source.

This behaviour is disabled by default. Please be aware that enabloing it can substantially impact performance.



|===

include::../section-hooks/isis.viewer.wicket~post.adoc[]
