This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch WW-5255-script-link
in repository https://gitbox.apache.org/repos/asf/struts.git
The following commit(s) were added to refs/heads/WW-5255-script-link by this
push:
new 01a454957 WW-5255 Fixes debug console and validators' details page
01a454957 is described below
commit 01a454957f3230d8eeb49e3659190f7b59009032
Author: Lukasz Lenart <[email protected]>
AuthorDate: Wed Nov 2 10:14:10 2022 +0100
WW-5255 Fixes debug console and validators' details page
---
.../struts2/interceptor/debugging/console.ftl | 2 +-
core/src/main/resources/template/simple/link.ftl | 3 +-
.../resources/config-browser/config-styles.css | 812 ---------------------
.../resources/config-browser/config-styles.ftl | 710 ++++++++++++++++++
.../main/resources/config-browser/page-header.ftl | 10 +-
.../resources/config-browser/showValidators.ftl | 16 +-
.../resources/config-browser/validatorDetails.ftl | 8 +-
7 files changed, 733 insertions(+), 828 deletions(-)
diff --git
a/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
b/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
index eb42ba9f9..4aaccaa01 100644
---
a/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
+++
b/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
@@ -22,7 +22,7 @@
<html>
<head>
<@s.script type="text/javascript">
- var baseUrl = "<@s.url value="/struts" includeParams="none"/>";
+ var baseUrl = "<@s.url value="/static" includeParams="none"/>";
window.open(baseUrl+"/webconsole.html", 'OGNL
Console','width=500,height=450,status=no,toolbar=no,menubar=no');
</@s.script>
</head>
diff --git a/core/src/main/resources/template/simple/link.ftl
b/core/src/main/resources/template/simple/link.ftl
index 13d7b4b00..e4847adea 100644
--- a/core/src/main/resources/template/simple/link.ftl
+++ b/core/src/main/resources/template/simple/link.ftl
@@ -60,4 +60,5 @@
</#if>
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl"
/><#rt/>
<#include
"/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl"
/><#rt/>
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/nonce.ftl"
/><#rt/>/>
+<#include "/${parameters.templateDir}/${parameters.expandTheme}/nonce.ftl"
/><#rt/>
+/>
diff --git
a/plugins/config-browser/src/main/resources/config-browser/config-styles.css
b/plugins/config-browser/src/main/resources/config-browser/config-styles.css
deleted file mode 100644
index eae9c223a..000000000
--- a/plugins/config-browser/src/main/resources/config-browser/config-styles.css
+++ /dev/null
@@ -1,812 +0,0 @@
-<style>
-/*
- * $Id$
- *
- * 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.
- */
- /* colors, backgrounds, borders, link indication */
-body {
- background: #fff;
- color: #000;
-}
-
-.app h3, .app h4, .tabs td, .tabs th, .functnbar {
- background-image: url(../images/nw_maj_rond.gif);
- background-repeat: no-repeat;
-}
-
-.functnbar, .functnbar2 {
- background-color: #aaa;
-}
-
-.functnbar2, .functnbar3 {
- background-color: #aaa;
- background-image: url(../images/sw_maj_rond.gif);
- background-repeat: no-repeat;
- background-position: bottom left;
-}
-
-.functnbar3 {
- background-color: #ddd;
- background-image: url(../images/sw_med_rond.gif);
-}
-
-.functnbar, .functnbar2, .functnbar3 {
- color: #000;
-}
-
-.functnbar a, .functnbar2 a, .functnbar3 a {
- color: #000;
- text-decoration: underline;
-}
-
-#navcolumn .body div, body.docs #toc li li {
- background-image: url(../images/strich.gif);
- background-repeat: no-repeat;
- background-position: .5em .5em;
-}
-
-#searchbox .body div, #navcolumn .body .heading {
- background-image: none;
-}
-
-a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
- color: blue;
-}
-
-a:link.selfref, a:visited.selfref {
- color: #555 !important;
- text-decoration: none;
-}
-
-a:active, a:hover, #leftcol a:active, #leftcol a:hover {
- color: #f30 !important;
-}
-
-#leftcol a, #breadcrumbs a {
- text-decoration: none;
-}
-
-.app h3, .app h4 {
- color: #fff;
-}
-
-.app h3 {
- background-color: #333;
-}
-
-.app h3 a:link, .app h3 a:visited, .app h4 a:link, .app h4 a:visited {
- color: #fff !important;
- text-decoration: underline;
-}
-
-.app h4 {
- background-color: #888;
-}
-
-.a td {
- background: #ddd;
-}
-
-.b td {
- background: #efefef;
-}
-
-table, th, td {
- border: none;
-}
-
-div.colbar {
- background: #eee;
- border-color: #999 #EEE #EEE #999;
- border-width: 1px;
- border-style: solid;
-}
-
-.toolgroup {
- background: #efefef;
-}
-
-.toolgroup .label {
- border-bottom: 1px solid #666;
- border-right: 1px solid #666;
- background: #ddd;
- color: #555;
-}
-
-.toolgroup .body {
- border-right: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
-}
-
-#breadcrumbs {
- border-top: 1px solid #fff;
- background-color: #ccc;
-}
-
-#main {
- border-top: 1px solid #999;
-}
-
-#rightcol div.www, #rightcol div.help {
- border: 1px solid #ddd;
-}
-
-body.docs div.docs {
- background-color: #fff;
- border-left: 1px solid #ddd;
- border-top: 1px solid #ddd;
-}
-
-#helptext .label {
- background-image: url(../images/icon_help_sml.gif);
- background-repeat: no-repeat;
- background-position: 97%;
-}
-
-body.docs {
- background: #eee url(../images/help_logo.gif) top right no-repeat
!important;
-}
-
-.docs h3, .docs h4 {
- border-top: solid 1px #000;
-}
-
-#apphead h2 em {
- color: #777;
-}
-
-.app th {
- background-color: #bbb;
-}
-
-.tabs th {
- border-right: 1px solid #333;
- background-color: #ddd;
- color: #fff;
- border-left: 1px solid #fff;
-}
-
-.tabs td {
- background-color: #999;
- border-bottom: 1px solid #fff;
- border-right: 1px solid #fff;
- border-left: 1px solid #fff;
-}
-
-.tabs {
- border-bottom: 6px #ddd solid;
-}
-
-.tabs th, .tabs th a:link, .tabs th a:visited {
- color: #555;
-}
-
-.tabs td, .tabs td a:link, .tabs td a:visited {
- color: #fff;
-}
-
-.tabs a {
- text-decoration: none;
-}
-
-.axial th {
- background-color: #ddd;
- color: black;
-}
-
-.alert {
- background-color: #ff9;
-}
-
-.expandedwaste {
- background: url(../images/icon_arrowwaste2_sml.gif) no-repeat;
-}
-
-.collapsedwaste {
- background: url(../images/icon_arrowwaste1_sml.gif) no-repeat;
-}
-
-.filebrowse .expanded, .filebrowse-alt .expanded {
- background-image: url(../images/icon_arrowfolderopen2_sml.gif);
- background-repeat: no-repeat;
-}
-
-.filebrowse .collapsed, .filebrowse-alt .collapsed {
- background-image: url(../images/icon_arrowfolderclosed1_sml.gif);
- background-repeat: no-repeat;
-}
-
-.filebrowse .leafnode, .filebrowse-alt .leafnode {
- background-image: url(../images/icon_folder_sml.gif);
- background-repeat: no-repeat;
-}
-
-.filebrowse .leaf, .filebrowse-alt .leaf {
- background-image: url(../images/icon_doc_sml.gif);
- background-repeat: no-repeat;
-}
-
-.sortup {
- background: url(../images/icon_sortup.gif) no-repeat;
-}
-
-.sortdown {
- background: url(../images/icon_sortdown.gif) no-repeat;
-}
-
-.collapsedwaste {
- background: url(../images/icon_arrowwaste1_sml.gif) no-repeat;
-}
-
-body .grid td {
- border-top: 1px solid #ccc;
- border-left: 1px solid #ccc;
- background-color: transparent;
-}
-
-.confirm {
- color: #090;
-}
-
-.info {
- color: #069;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage {
- border-top: 5px solid #900;
- border-left: 1px solid #900;
- background-image: url(../images/icon_error_lrg.gif);
- background-repeat: no-repeat;
- background-position: 5px 1.33em;
-}
-
-.warningmessage {
- background-image: url(../images/icon_warning_lrg.gif);
- border-color: #c60;
-}
-
-.donemessage {
- background-image: url(../images/icon_success_lrg.gif);
- border-color: #090;
-}
-
-.infomessage {
- background-image: url(../images/icon_info_lrg.gif);
- border-color: #069;
-}
-
-.docinfo {
- background: url(../images/icon_doc_lrg.gif) no-repeat;
-}
-
-.dirinfo {
- background: url(../images/icon_folder_lrg.gif) no-repeat;
-}
-
-.memberinfo {
- background: url(../images/icon_members_lrg.gif) no-repeat;
-}
-
-.usergroupinfo {
- background: url(../images/icon_usergroups_lrg.gif) no-repeat;
-}
-
-.errormark, .warningmark, .donemark, .infomark {
- background: url(../images/icon_error_sml.gif) no-repeat;
-}
-
-.warningmark {
- background-image: url(../images/icon_warning_sml.gif);
-}
-
-.donemark {
- background-image: url(../images/icon_success_sml.gif);
-}
-
-.infomark {
- background-image: url(../images/icon_info_sml.gif);
-}
-
-.cvsdiff, .cvsblame {
- background-color: #ccc;
-}
-
-.cvsdiffadd {
- background-color: #afa;
-}
-
-.cvsdiffremove {
- background-color: #faa;
-}
-
-.cvsdiffchanges1 {
- background-color: #ff7;
-}
-
-.cvsdiffchanges2 {
- background-color: #ff7;
-}
-
-li.selection ul a {
- background: #fff;
-}
-
-.band1 {
- color: #fff;
- background-color: #663;
-}
-
-.band2 {
- color: #fff;
- background-color: #66C;
-}
-
-.band3 {
- background-color: #C99;
-}
-
-.band4 {
- background-color: #CFF;
-}
-
-.band5 {
- color: #fff;
- background-color: #336;
-}
-
-.band6 {
- color: #fff;
- background-color: #966;
-}
-
-.band7 {
- background-color: #9CC;
-}
-
-.band8 {
- background-color: #FFC;
-}
-
-.band9 {
- color: #fff;
- background-color: #633;
-}
-
-.band10 {
- color: #fff;
- background-color: #699;
-}
-
-.band11 {
- background-color: #CC9;
-}
-
-.band12 {
- background-color: #CCF;
-}
-
-.band13 {
- color: #fff;
- background-color: #366;
-}
-
-.band14 {
- color: #fff;
- background-color: #996;
-}
-
-.band15 {
- background-color: #99C;
-}
-
-.band16 {
- background-color: #FCC;
-}
-
-.app .helplink, #helptext .helplink {
- cursor: help;
-}
-
-.legend th, .bars th {
- background-color: #fff;
-}
-
-/* font and text properties, exclusive of link indication, alignment,
text-indent */
-body, th, td, input, select {
- font-family: Verdana, Helvetica, Arial, sans-serif;
-}
-
-code, pre {
- font-family: 'Andale Mono', Courier, monospace;
-}
-
-body, .app h3, .app h4, #rightcol h3, pre, code, #apphead h2 small {
- font-size: x-small;
- voice-family: "\"}\"";
- voice-family: inherit;
- font-size: small;
-}
-
-small, div#footer, div#login, div.tabs th, div.tabs td, input, select,
.paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs, .courtesylinks,
#rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol, .legend,
.bars {
- font-size: xx-small;
- voice-family: "\"}\"";
- voice-family: inherit;
- font-size: x-small;
-}
-
-.tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection {
- font-weight: bold;
-}
-
-li.selection ul {
- font-weight: normal;
-}
-
-h4, table {
- font-size: 1em;
-}
-
-#apphead h2 em {
- font-style: normal;
-}
-
-#banner h1 {
- font-size: 1.25em;
-}
-
-/* box properties (exclusive of borders), positioning, alignments, list types,
text-indent */
-#bodycol h2 {
- margin-top: .3em;
- margin-bottom: .5em;
-}
-
-p, ul, ol, dl, .bars table {
- margin-top: .67em;
- margin-bottom: .67em;
-}
-
-h3, h4 {
- margin-bottom: 0;
-}
-
-form {
- margin: 0;
-}
-
-#bodycol {
- padding-left: 12px;
- padding-right: 12px;
- width: 100%;
- voice-family: "\"}\"";
- voice-family: inherit;
- width: auto;
-}
-
-html>body #bodycol {
- width: auto;
-}
-
-.docs {
- line-height: 1.4;
-}
-
-ol ol {
- list-style-type: lower-alpha;
-}
-
-ol ol ol {
- list-style-type: lower-roman;
-}
-
-.app h3, .app h4 {
- padding: 5px;
- margin-right: 2px;
- margin-left: 2px;
-}
-
-.app td, .app th {
- padding: 2px 3px;
-}
-
-.h3 p, .h4 p, .h3 dt, .h4 dt {
- margin-right: 7px;
- margin-left: 7px;
-}
-
-.tasknav {
- margin-bottom: 1.33em;
-}
-
-div.colbar {
- padding: 3px;
- margin: 2px 2px 0;
-}
-
-.tabs {
- margin-top: .67em;
- margin-right: 2px;
- margin-left: 2px;
- padding-left: 8px;
-}
-
-.tabs td, .tabs th {
- padding: 3px 9px;
-}
-
-#rightcol div.www, #rightcol div.help {
- padding: 0 .5em;
-}
-
-body.docs #toc {
- position: absolute;
- top: 15px;
- left: 0px;
- width: 120px;
- padding: 0 20px 0 0;
-}
-
-body.docs #toc ul, #toc ol {
- margin-left: 0;
- padding-left: 0;
-}
-
-body.docs #toc li {
- margin-top: 7px;
- padding-left: 10px;
- list-style-type: none;
-}
-
-body.docs div.docs {
- margin: 61px 0 0 150px;
- padding: 1em 2em 1em 1em !important;
-}
-
-.docs p+p {
- text-indent: 5%;
- margin-top: -.67em;
-}
-
-.docs h3, .docs h4 {
- margin-bottom: .1em;
- padding-top: .3em;
-}
-
-.functnbar, .functnbar2, .functnbar3 {
- padding: 5px;
- margin: .67em 2px;
-}
-
-.functnbar3 {
- margin-top: 0;
-}
-
-body {
- padding: 1em;
-}
-
-body.composite, body.docs {
- margin: 0;
- padding: 0;
-}
-
-th, td {
- text-align: left;
- vertical-align: top;
-}
-
-.right {
- text-align: right !important;
-}
-
-.center {
- text-align: center !important;
-}
-
-.axial th, .axial th .strut {
- text-align: right;
-}
-
-.app .axial td th {
- text-align: left;
-}
-
-body .stb {
- margin-top: 1em;
- text-indent: 0;
-}
-
-body .mtb {
- margin-top: 2em;
- text-indent: 0;
-}
-
-.courtesylinks {
- margin-top: 1em;
- padding-top: 1em;
-}
-
-dd {
- margin-bottom: .67em;
-}
-
-.toolgroup {
- margin-bottom: 6px;
-}
-
-.toolgroup .body {
- padding: 4px 4px 4px 0;
-}
-
-.toolgroup .label {
- padding: 4px;
-}
-
-.toolgroup .body div {
- padding-bottom: .3em;
- padding-left: 1em;
-}
-
-.toolgroup .body div div {
- margin-top: .3em;
- padding-bottom: 0;
-}
-
-.tier1 {
- margin-left: 0;
-}
-
-.tier2 {
- margin-left: 1.5em;
-}
-
-.tier3 {
- margin-left: 3em;
-}
-
-.tier4 {
- margin-left: 4.5em;
-}
-
-.tier5 {
- margin-left: 6em;
-}
-
-.tier6 {
- margin-left: 7.5em;
-}
-
-.tier7 {
- margin-left: 9em;
-}
-
-.tier8 {
- margin-left: 10.5em;
-}
-
-.tier9 {
- margin-left: 12em;
-}
-
-.tier10 {
- margin-left: 13.5em;
-}
-
-.filebrowse .expanded, .filebrowse .collapsed {
- padding-left: 34px;
-}
-
-.filebrowse .leafnode, .filebrowse .leaf {
- padding-left: 20px;
-}
-
-.messagechild {
- padding-left: 34px;
-}
-
-.filebrowse-alt .expanded, .filebrowse-alt .collapsed, .filebrowse-alt .leaf,
.filebrowse-alt .leafnode, .expandedwaste, .collapsedwaste, .sortup, .sortdown {
- /* hide from macie5\*/
- float: left;
- /* resume */
- display: inline-block;
- height: 15px;
- width: 34px;
- padding-left: 0 !important;
-}
-
-.filebrowse-alt .leaf, .filebrowse-alt .leafnode, .sortup, .sortdown {
- width: 20px;
-}
-
-.filebrowse ul, .filebrowse-alt ul {
- list-style-type: none;
- padding-left: 0;
- margin-left: 0;
-}
-
-.filebrowse ul ul, .filebrowse-alt ul ul {
- margin-left: 1.5em;
- margin-top: 0;
- padding-top: .67em;
-}
-
-.filebrowse li, .filebrowse-alt li {
- margin-bottom: .67em;
-}
-
-td.filebrowse h3 {
- margin-top: 0;
-}
-
-.errormessage, .warningmessage, .donemessage, .infomessage, .docinfo,
.dirinfo, .memberinfo, .usergroupinfo {
- margin: .67em 0;
- padding: .33em 0 .67em 42px;
- min-height: 32px;
-}
-
-.errormark, .warningmark, .donemark, .infomark {
- padding-left: 20px;
- min-height: 15px;
-}
-
-.alt {
- display: none;
-}
-
-#banner h1 {
- margin: 0;
-}
-
-#leftcol {
- width: 14em;
-}
-
-.axial th, .axial th .strut, #leftcol .strut {
- width: 12em;
-}
-
-#breadcrumbs {
- padding: 2px 8px;
-}
-
-.app h3, .app h4, .bars {
- clear: both;
-}
-
-.legend {
- float: right;
-}
-
-.legend th, .bars th {
- text-align: right;
- padding-left: 1em;
-}
-
-.bars table {
- table-layout: fixed;
-}
-
-.bars th {
- width: 12em;
-}
-
-#projectdocumentlist td.filebrowse-alt {
- padding-right: .75em;
-}
-
-</style>
diff --git
a/plugins/config-browser/src/main/resources/config-browser/config-styles.ftl
b/plugins/config-browser/src/main/resources/config-browser/config-styles.ftl
new file mode 100644
index 000000000..7a223c469
--- /dev/null
+++ b/plugins/config-browser/src/main/resources/config-browser/config-styles.ftl
@@ -0,0 +1,710 @@
+<#--
+/*
+ * 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.
+ */
+-->
+<style>
+ /* colors, backgrounds, borders, link indication */
+ body {
+ background: #fff;
+ color: #000;
+ }
+
+ .functnbar, .functnbar2 {
+ background-color: #aaa;
+ }
+
+ .functnbar2, .functnbar3 {
+ background-color: #aaa;
+ background-position: bottom left;
+ }
+
+ .functnbar3 {
+ background-color: #ddd;
+ }
+
+ .functnbar, .functnbar2, .functnbar3 {
+ color: #000;
+ }
+
+ .functnbar a, .functnbar2 a, .functnbar3 a {
+ color: #000;
+ text-decoration: underline;
+ }
+
+ #searchbox .body div, #navcolumn .body .heading {
+ background-image: none;
+ }
+
+ a:link, #navcolumn a:visited, .app a:visited, .tasknav a:visited {
+ color: blue;
+ }
+
+ a:link.selfref, a:visited.selfref {
+ color: #555 !important;
+ text-decoration: none;
+ }
+
+ a:active, a:hover, #leftcol a:active, #leftcol a:hover {
+ color: #f30 !important;
+ }
+
+ #leftcol a, #breadcrumbs a {
+ text-decoration: none;
+ }
+
+ .app h3, .app h4 {
+ color: #fff;
+ }
+
+ .app h3 {
+ background-color: #333;
+ }
+
+ .app h3 a:link, .app h3 a:visited, .app h4 a:link, .app h4 a:visited {
+ color: #fff !important;
+ text-decoration: underline;
+ }
+
+ .app h4 {
+ background-color: #888;
+ }
+
+ .a td {
+ background: #ddd;
+ }
+
+ .b td {
+ background: #efefef;
+ }
+
+ table, th, td {
+ border: none;
+ }
+
+ div.colbar {
+ background: #eee;
+ border-color: #999 #EEE #EEE #999;
+ border-width: 1px;
+ border-style: solid;
+ }
+
+ .toolgroup {
+ background: #efefef;
+ }
+
+ .toolgroup .label {
+ border-bottom: 1px solid #666;
+ border-right: 1px solid #666;
+ background: #ddd;
+ color: #555;
+ }
+
+ .toolgroup .body {
+ border-right: 1px solid #aaa;
+ border-bottom: 1px solid #aaa;
+ }
+
+ #breadcrumbs {
+ border-top: 1px solid #fff;
+ background-color: #ccc;
+ }
+
+ #main {
+ border-top: 1px solid #999;
+ margin-top: 40px;
+ }
+
+ #rightcol div.www, #rightcol div.help {
+ border: 1px solid #ddd;
+ }
+
+ body.docs div.docs {
+ background-color: #fff;
+ border-left: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+ }
+
+ .docs h3, .docs h4 {
+ border-top: solid 1px #000;
+ }
+
+ #apphead h2 em {
+ color: #777;
+ }
+
+ .app th {
+ background-color: #bbb;
+ }
+
+ .tabs th {
+ border-right: 1px solid #333;
+ background-color: #ddd;
+ color: #fff;
+ border-left: 1px solid #fff;
+ }
+
+ .tabs td {
+ background-color: #999;
+ border-bottom: 1px solid #fff;
+ border-right: 1px solid #fff;
+ border-left: 1px solid #fff;
+ }
+
+ .tabs {
+ border-bottom: 6px #ddd solid;
+ }
+
+ .tabs th, .tabs th a:link, .tabs th a:visited {
+ color: #555;
+ }
+
+ .tabs td, .tabs td a:link, .tabs td a:visited {
+ color: #fff;
+ }
+
+ .tabs a {
+ text-decoration: none;
+ }
+
+ .axial th {
+ background-color: #ddd;
+ color: black;
+ }
+
+ .alert {
+ background-color: #ff9;
+ }
+
+ body .grid td {
+ border-top: 1px solid #ccc;
+ border-left: 1px solid #ccc;
+ background-color: transparent;
+ }
+
+ .confirm {
+ color: #090;
+ }
+
+ .info {
+ color: #069;
+ }
+
+ .errormessage, .warningmessage, .donemessage, .infomessage {
+ border-top: 5px solid #900;
+ border-left: 1px solid #900;
+ }
+
+ .warningmessage {
+ border-color: #c60;
+ }
+
+ .donemessage {
+ border-color: #090;
+ }
+
+ .infomessage {
+ border-color: #069;
+ }
+
+ .cvsdiff, .cvsblame {
+ background-color: #ccc;
+ }
+
+ .cvsdiffadd {
+ background-color: #afa;
+ }
+
+ .cvsdiffremove {
+ background-color: #faa;
+ }
+
+ .cvsdiffchanges1 {
+ background-color: #ff7;
+ }
+
+ .cvsdiffchanges2 {
+ background-color: #ff7;
+ }
+
+ li.selection ul a {
+ background: #fff;
+ }
+
+ .band1 {
+ color: #fff;
+ background-color: #663;
+ }
+
+ .band2 {
+ color: #fff;
+ background-color: #66C;
+ }
+
+ .band3 {
+ background-color: #C99;
+ }
+
+ .band4 {
+ background-color: #CFF;
+ }
+
+ .band5 {
+ color: #fff;
+ background-color: #336;
+ }
+
+ .band6 {
+ color: #fff;
+ background-color: #966;
+ }
+
+ .band7 {
+ background-color: #9CC;
+ }
+
+ .band8 {
+ background-color: #FFC;
+ }
+
+ .band9 {
+ color: #fff;
+ background-color: #633;
+ }
+
+ .band10 {
+ color: #fff;
+ background-color: #699;
+ }
+
+ .band11 {
+ background-color: #CC9;
+ }
+
+ .band12 {
+ background-color: #CCF;
+ }
+
+ .band13 {
+ color: #fff;
+ background-color: #366;
+ }
+
+ .band14 {
+ color: #fff;
+ background-color: #996;
+ }
+
+ .band15 {
+ background-color: #99C;
+ }
+
+ .band16 {
+ background-color: #FCC;
+ }
+
+ .app .helplink, #helptext .helplink {
+ cursor: help;
+ }
+
+ .legend th, .bars th {
+ background-color: #fff;
+ }
+
+ /* font and text properties, exclusive of link indication, alignment,
text-indent */
+ body, th, td, input, select {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
+ }
+
+ code, pre {
+ font-family: 'Andale Mono', Courier, monospace;
+ }
+
+ body, .app h3, .app h4, #rightcol h3, pre, code, #apphead h2 small {
+ font-size: x-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: small;
+ }
+
+ small, div#footer, div#login, div.tabs th, div.tabs td, input, select,
.paginate, .functnbar, .functnbar2, .functnbar3, #breadcrumbs, .courtesylinks,
#rightcol div.help, .colbar, .tasknav, body.docs div#toc, #leftcol, .legend,
.bars {
+ font-size: xx-small;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ font-size: x-small;
+ }
+
+ .tabs td, .tabs th, dt, .tasknav .selfref, #login .username, .selection {
+ font-weight: bold;
+ }
+
+ li.selection ul {
+ font-weight: normal;
+ }
+
+ h4, table {
+ font-size: 1em;
+ }
+
+ #apphead h2 em {
+ font-style: normal;
+ }
+
+ #banner h1 {
+ font-size: 1.25em;
+ }
+
+ /* box properties (exclusive of borders), positioning, alignments, list
types, text-indent */
+ #bodycol h2 {
+ margin-top: .3em;
+ margin-bottom: .5em;
+ }
+
+ p, ul, ol, dl, .bars table {
+ margin-top: .67em;
+ margin-bottom: .67em;
+ }
+
+ h3, h4 {
+ margin-bottom: 0;
+ }
+
+ form {
+ margin: 0;
+ }
+
+ #bodycol {
+ padding-left: 12px;
+ padding-right: 12px;
+ width: 100%;
+ voice-family: "\"}\"";
+ voice-family: inherit;
+ width: auto;
+ }
+
+ html > body #bodycol {
+ width: auto;
+ }
+
+ .docs {
+ line-height: 1.4;
+ }
+
+ ol ol {
+ list-style-type: lower-alpha;
+ }
+
+ ol ol ol {
+ list-style-type: lower-roman;
+ }
+
+ .app h3, .app h4 {
+ padding: 5px;
+ margin-right: 2px;
+ margin-left: 2px;
+ }
+
+ .app td, .app th {
+ padding: 2px 3px;
+ }
+
+ .h3 p, .h4 p, .h3 dt, .h4 dt {
+ margin-right: 7px;
+ margin-left: 7px;
+ }
+
+ .tasknav {
+ margin-bottom: 1.33em;
+ }
+
+ div.colbar {
+ padding: 3px;
+ margin: 2px 2px 0;
+ }
+
+ .tabs {
+ margin-top: .67em;
+ margin-right: 2px;
+ margin-left: 2px;
+ padding-left: 8px;
+ }
+
+ .tabs td, .tabs th {
+ padding: 3px 9px;
+ }
+
+ #rightcol div.www, #rightcol div.help {
+ padding: 0 .5em;
+ }
+
+ body.docs #toc {
+ position: absolute;
+ top: 15px;
+ left: 0px;
+ width: 120px;
+ padding: 0 20px 0 0;
+ }
+
+ body.docs #toc ul, #toc ol {
+ margin-left: 0;
+ padding-left: 0;
+ }
+
+ body.docs #toc li {
+ margin-top: 7px;
+ padding-left: 10px;
+ list-style-type: none;
+ }
+
+ body.docs div.docs {
+ margin: 61px 0 0 150px;
+ padding: 1em 2em 1em 1em !important;
+ }
+
+ .docs p + p {
+ text-indent: 5%;
+ margin-top: -.67em;
+ }
+
+ .docs h3, .docs h4 {
+ margin-bottom: .1em;
+ padding-top: .3em;
+ }
+
+ .functnbar, .functnbar2, .functnbar3 {
+ padding: 5px;
+ margin: .67em 2px;
+ }
+
+ .functnbar3 {
+ margin-top: 0;
+ }
+
+ body {
+ padding: 1em;
+ }
+
+ body.composite, body.docs {
+ margin: 0;
+ padding: 0;
+ }
+
+ th, td {
+ text-align: left;
+ vertical-align: top;
+ }
+
+ .right {
+ text-align: right !important;
+ }
+
+ .center {
+ text-align: center !important;
+ }
+
+ .axial th, .axial th .strut {
+ text-align: right;
+ }
+
+ .app .axial td th {
+ text-align: left;
+ }
+
+ body .stb {
+ margin-top: 1em;
+ text-indent: 0;
+ }
+
+ body .mtb {
+ margin-top: 2em;
+ text-indent: 0;
+ }
+
+ .courtesylinks {
+ margin-top: 1em;
+ padding-top: 1em;
+ }
+
+ dd {
+ margin-bottom: .67em;
+ }
+
+ .toolgroup {
+ margin-bottom: 6px;
+ }
+
+ .toolgroup .body {
+ padding: 4px 4px 4px 0;
+ }
+
+ .toolgroup .label {
+ padding: 4px;
+ }
+
+ .toolgroup .body div {
+ padding-bottom: .3em;
+ padding-left: 1em;
+ }
+
+ .toolgroup .body div div {
+ margin-top: .3em;
+ padding-bottom: 0;
+ }
+
+ .tier1 {
+ margin-left: 0;
+ }
+
+ .tier2 {
+ margin-left: 1.5em;
+ }
+
+ .tier3 {
+ margin-left: 3em;
+ }
+
+ .tier4 {
+ margin-left: 4.5em;
+ }
+
+ .tier5 {
+ margin-left: 6em;
+ }
+
+ .tier6 {
+ margin-left: 7.5em;
+ }
+
+ .tier7 {
+ margin-left: 9em;
+ }
+
+ .tier8 {
+ margin-left: 10.5em;
+ }
+
+ .tier9 {
+ margin-left: 12em;
+ }
+
+ .tier10 {
+ margin-left: 13.5em;
+ }
+
+ .filebrowse .expanded, .filebrowse .collapsed {
+ padding-left: 34px;
+ }
+
+ .filebrowse .leafnode, .filebrowse .leaf {
+ padding-left: 20px;
+ }
+
+ .messagechild {
+ padding-left: 34px;
+ }
+
+ .filebrowse-alt .expanded, .filebrowse-alt .collapsed, .filebrowse-alt
.leaf, .filebrowse-alt .leafnode, .expandedwaste, .collapsedwaste, .sortup,
.sortdown {
+ /* hide from macie5\*/
+ float: left;
+ /* resume */
+ display: inline-block;
+ height: 15px;
+ width: 34px;
+ padding-left: 0 !important;
+ }
+
+ .filebrowse-alt .leaf, .filebrowse-alt .leafnode, .sortup, .sortdown {
+ width: 20px;
+ }
+
+ .filebrowse ul, .filebrowse-alt ul {
+ list-style-type: none;
+ padding-left: 0;
+ margin-left: 0;
+ }
+
+ .filebrowse ul ul, .filebrowse-alt ul ul {
+ margin-left: 1.5em;
+ margin-top: 0;
+ padding-top: .67em;
+ }
+
+ .filebrowse li, .filebrowse-alt li {
+ margin-bottom: .67em;
+ }
+
+ td.filebrowse h3 {
+ margin-top: 0;
+ }
+
+ .errormessage, .warningmessage, .donemessage, .infomessage, .docinfo,
.dirinfo, .memberinfo, .usergroupinfo {
+ margin: .67em 0;
+ padding: .33em 0 .67em 42px;
+ min-height: 32px;
+ }
+
+ .errormark, .warningmark, .donemark, .infomark {
+ padding-left: 20px;
+ min-height: 15px;
+ }
+
+ .alt {
+ display: none;
+ }
+
+ #banner h1 {
+ margin: 0;
+ }
+
+ #leftcol {
+ width: 14em;
+ }
+
+ .axial th, .axial th .strut, #leftcol .strut {
+ width: 12em;
+ }
+
+ #breadcrumbs {
+ padding: 2px 8px;
+ }
+
+ .app h3, .app h4, .bars {
+ clear: both;
+ }
+
+ .legend {
+ float: right;
+ }
+
+ .legend th, .bars th {
+ text-align: right;
+ padding-left: 1em;
+ }
+
+ .bars table {
+ table-layout: fixed;
+ }
+
+ .bars th {
+ width: 12em;
+ }
+
+ #projectdocumentlist td.filebrowse-alt {
+ padding-right: .75em;
+ }
+</style>
diff --git
a/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
b/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
index ac286130b..ba3827444 100644
--- a/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
@@ -24,19 +24,19 @@
<head>
<title>${pageTitle}</title>
<meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1" />
-<#include "/config-browser/config-styles.css" parse="y"></head>
+<#include "/config-browser/config-styles.ftl" parse="y"></head>
<body class="composite" marginwidth="0" marginheight="0" leftmargin="0"
topmargin="0">
<div id="breadcrumbs">
<table border="0" cellspacing="0" cellpadding="4" width="100%">
<tr>
- <td>
+ <td>
Struts Configuration Browser > ${pageTitle}
</td>
</tr>
</table>
-</div>
-
+</div>
+
<table border="0" cellspacing="0" cellpadding="4" width="100%" id="main">
<tr valign="top">
<#if !hideNav??> <td id="leftcol" width="20%">
@@ -94,4 +94,4 @@
<div id="apphead">
<h2>${pageTitle}</h2>
</div>
- <div id="content" class="app">
+ <div id="content" class="app">
diff --git
a/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
b/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
index 068198180..98f746256 100644
---
a/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
+++
b/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
@@ -31,15 +31,17 @@
<tr <#if i_index%2 gt 0>class="b" <#else>class="a"</#if>>
<td>${i.fieldName!"(see expression)"}</td>
<td>${action.stripPackage(i.class)}</td>
- <td><a href="#" id="show-validators">details</a></td>
+ <td>
+ <a href="#" id="showValidators_${row}">details</a>
+ <@s.script>
+
document.getElementById('showValidators_${row}').onclick = function() {
+
window.open('validatorDetails.${extension}?clazz=${clazz}&context=${context}&selected=${row}',
'Validator Details',
'resizable=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,width=1280,height=800');
+ return false;
+ }
+ </@s.script>
+ </td>
</tr>
<#assign row = row + 1>
</#foreach>
</#if>
</table>
-<@s.script>
- document.getElementById('show-validators').onclick = function() {
-
window.open('validatorDetails.${extension}?clazz=${clazz}&context=${context}&selected=${row}',
'Validator Details',
'resizable=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,width=640,height=480');
- return false;
- }
-</@s.script>
diff --git
a/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
b/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
index 05a945133..e010217fc 100644
---
a/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
+++
b/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
@@ -21,7 +21,7 @@
<#include "tigris-macros.ftl">
<#assign hideNav = true>
<#call startPage pageTitle="Validator Details"/>
-<table>
+<table style="margin-top: 40px">
<tr><td>Validated Class:</td><td>${action.stripPackage(clazz)}</td></tr>
<tr><td>Context:</td><td>${context}</td></tr>
<tr><td>Validator Number:</td><td>${selected}</td></tr>
@@ -34,7 +34,11 @@
<td>${prop.name}</td>
<td><#if prop.value??>
<#if prop.value?is_collection>(size =
${prop.value?size})<#foreach v in prop.value>${v.value}, </#foreach>
- <#else>${prop.value?string}</#if>
+ <#elseif prop.value?is_date_like>
+ ${prop.value?datetime}
+ <#else>
+ ${prop.value?string}
+ </#if>
<#else> <b>null</b> </#if></td>
<td><#if prop.value?? &&
prop.value?is_collection>(collection)<#else>${prop.type.name}</#if></td>
</tr>