Revert "Remove Spring JavaScript library"

This reverts commit 4d59b21e49.

Issue: SWF-1693
This commit is contained in:
Rossen Stoyanchev
2018-02-07 10:12:31 -05:00
parent 086e4ec728
commit 7215a49e4a
30 changed files with 2464 additions and 9 deletions

View File

View File

@@ -0,0 +1,134 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* FORM ELEMENTS */
form {
margin:0;
padding:0;
}
form div,
form p {
margin: 0 0 1em 0;
padding: 0;
font-size: 1em;
}
label {
font-weight: bold;
}
fieldset {
padding: 5px 10px;
margin: 0 0 1.5em 0;
border: 1px solid #eee;
}
fieldset legend {
margin: 0 0 0 0px;
padding: 0;
font-size: 1.1em;
font-weight: bold;
color: #666;
background-color: white;
}
* html fieldset legend {
margin: 0 0 10px -10px;
}
fieldset ul {
margin: 0 0 1.5em 0;
padding: 0;
list-style: none;
}
fieldset ul li {
margin: 0 0 0.5em 0;
padding: 0;
list-style: none;
}
input, select, textarea {
margin: 0;
padding: 2px;
font-size: 1em;
font-family: arial, helvetica, verdana, sans-serif;
}
input, select {
vertical-align: middle;
}
textarea {
width: 200px;
height: 8em;
}
input.check {
width: auto;
height: auto;
margin: 0;
border: none;
}
input.radio {
width: auto;
height: auto;
margin: 0;
border: none;
}
input.file {
width: 250px;
height: auto;
}
input.readonly {
background-color: transparent;
border: none;
}
input.button {
width: 10em;
background-color: #ddd;
border: 1px solid black;
}
input.image {
width: auto;
height: auto;
border: none;
}
form div.submit {
margin: 1em 0;
}
form div.submit input {
width: 15em;
height: 2em;
}
/* END FORM ELEMENTS */

View File

@@ -0,0 +1,52 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-horizontal.css");
/* NAV BAR AT THE TOP AND ONE COLUMN OF CONTENT */
div#content {
position: relative;
width: 701px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
width: 100%;
}
div#local {
display: none;
}
div#sub {
display: none;
}
div#nav {
display: none;
}
/* END CONTENT */

View File

@@ -0,0 +1,56 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-vertical.css");
/* NAV BAR ON THE LEFT AND ONE COLUMN OF CONTENT */
div#content {
position: relative;
width: 780px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
float: right;
width: 560px;
display: inline;
}
div#local {
display: none;
}
div#sub {
display: none;
}
div#nav {
float: left;
width: 200px;
display: inline;
}
/* END CONTENT */

View File

@@ -0,0 +1,64 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-vertical.css");
/* NAV BAR ON THE LEFT AND TWO COLUMNS OF CONTENT */
div#content {
position: relative;
width: 780px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
float: right;
width: 340px;
display: inline;
margin-right: 220px;
margin-left: -220px;
}
div#local {
display: none;
}
div#sub {
float: right;
width: 200px;
display: inline;
margin-right: -340px;
margin-left: 200px;
}
div#nav {
float: left;
width: 200px;
display: inline;
}
/* END CONTENT */

View File

@@ -0,0 +1,57 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-horizontal.css");
/* NAV BAR AT THE TOP AND ONE COLUMN OF CONTENT */
div#content {
position: relative;
width: 701px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
width: 100%;
}
div#local {
width: 100%;
}
div#sub {
width: 100%;
}
div#nav {
position: absolute;
top: -15px;
left: 0;
width: 100%;
text-align: left;
}
/* END CONTENT */

View File

@@ -0,0 +1,68 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-horizontal.css");
/* NAV BAR AT THE TOP, LOCAL NAV ON THE LEFT AND TWO COLUMNS OF CONTENT */
div#content {
position: relative;
width: 701px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
float: left;
width: 300px;
display: inline;
margin-right: -200px;
margin-left: 200px;
}
div#sub {
float: right;
width: 180px;
display: inline;
}
div#local {
float: left;
width: 180px;
display: inline;
margin-left: -300px;
}
div#nav {
position: absolute;
top: -15px;
left: 0;
width: 701px;
text-align: left;
}
/* END CONTENT */

View File

@@ -0,0 +1,61 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-horizontal.css");
/* NAV BAR AT THE TOP, LOCAL NAVIGATION ON THE LEFT AND ONE COLUMN OF CONTENT */
div#content {
position: relative;
width: 701px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
float: right;
width: 500px;
display: inline;
}
div#local {
float: left;
width: 200px;
display: inline;
}
div#sub {
display: none;
}
div#nav {
position: absolute;
top: -15px;
left: 0;
width: 100%;
text-align: left;
}
/* END CONTENT */

View File

@@ -0,0 +1,61 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
@import url("nav-horizontal.css");
/* NAV BAR AT THE TOP AND TWO COLUMNS OF CONTENT */
div#content {
position: relative;
width: 701px;
margin: 0 auto 20px auto;
padding: 0;
text-align: left;
}
div#main {
float: left;
width: 480px;
display: inline;
}
div#sub {
float: right;
width: 200px;
display: inline;
}
div#local {
display: none;
}
div#nav {
position: absolute;
top: -15px;
left: 0;
width: 100%;
text-align: left;
}
/* END CONTENT */

View File

@@ -0,0 +1,152 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* SITE SPECIFIC LAYOUT */
body {
margin: 0;
padding: 0;
text-align: center;
background: white;
}
div#page {
width: 780px;
margin: 0 auto;
padding: 0;
text-align: center;
background: white;
}
/* HEADER */
div#header {
margin: 0 0 5em 0;
padding: 40px 20px;
color: white;
background: black;
text-align: left;
}
div#branding {
float: left;
width: 40%;
margin: 0;
padding: 10px 0 10px 20px;
text-align: left;
}
div#search {
float: right;
width: 49%;
margin: 0;
padding: 16px 20px 0 0;
text-align: right;
}
/* END HEADER */
/* CONTENT */
div#content {
}
/* MAIN */
div#main {
}
/* END MAIN */
/* SUB */
div#sub {
}
/* END SUB */
/* END CONTENT */
/* FOOTER */
div#footer {
color: white;
background-color: black;
}
div#footer p {
margin: 0;
padding: 15px;
font-size: 0.8em;
}
/* END FOOTER */
/* END LAYOUT */
/* UL.SUBNAV */
ul.subnav {
margin: 0;
padding: 0;
font-size: 0.8em;
list-style: none;
}
ul.subnav li {
margin: 0 0 1em 0;
padding: 0;
list-style: none;
}
ul.subnav li a,
ul.subnav li a:link,
ul.subnav li a:visited,
ul.subnav li a:active {
text-decoration: none;
font-weight: bold;
color: black;
}
ul.subnav li a:hover {
text-decoration: underline;
}
ul.subnav li strong {
padding: 0 0 0 12px;
background: url("../i/subnav-highlight.gif") left top no-repeat transparent;
}
ul.subnav li strong a,
ul.subnav li strong a:link,
ul.subnav li strong a:visited,
ul.subnav li strong a:active {
color: white;
background-color: black;
}
/* END UL.SUBNAV */

View File

@@ -0,0 +1,105 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* NAV */
div#nav {
font-size: 0.8em;
}
* html div#nav {
/* hide ie/mac \*/
height: 1%;
/* end hide */
}
div#nav div.wrapper {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
}
div#nav ul {
width: 100%;
margin: 0;
padding: 0;
line-height: 1em;
list-style: none;
}
div#nav li {
float: left;
display: inline;
margin: 0;
padding: 0;
list-style: none;
line-height: 1em;
border-right: 1px solid #aaa;
}
div#nav li.last {
border-right: none;
}
div#nav a,
div#nav a:link,
div#nav a:active,
div#nav a:visited {
display: inline-block;
/* hide from ie/mac \*/
display: block;
/* end hide */
margin: 0;
padding: 5px 38px 5px 38px;
font-weight: bold;
text-decoration: none;
color: black;
background: #ddd;
}
div#nav a:hover {
text-decoration: underline;
}
div#nav strong {
display: inline-block;
/* hide from ie/mac \*/
display: block;
/* end hide */
color: white;
background: black;
}
div#nav strong a,
div#nav strong a:link,
div#nav strong a:active,
div#nav strong a:visited,
div#nav strong a:hover {
color: white;
background-color: black;
}
/* END NAV */

View File

@@ -0,0 +1,104 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* NAV */
div#nav {
font-size: 0.8em;
}
* html div#nav {
/* hide ie/mac \*/
height: 1%;
/* end hide */
}
div#nav div.wrapper {
width: 100%;
background: #ddd;
}
div#nav ul {
width: 100%;
margin: 0;
padding: 0;
line-height: 1em;
list-style: none;
}
div#nav li {
display: block;
margin: 0;
padding: 0;
list-style: none;
line-height: 1em;
}
* html div#nav li {
/* hide ie/mac \*/
height: 1%;
/* end hide */
}
div#nav li.last {
}
div#nav a,
div#nav a:link,
div#nav a:active,
div#nav a:visited {
display: block;
font-weight: bold;
text-decoration: none;
margin: 0;
padding: 5px 10px 5px 10px;
color: black;
background: white;
}
div#nav a:hover {
text-decoration: underline;
color: white;
background: black;
}
div#nav strong {
display: block;
color: white;
background: black;
}
div#nav strong a,
div#nav strong a:link,
div#nav strong a:active,
div#nav strong a:visited,
div#nav strong a:hover {
color: white;
background-color: black;
}
/* END NAV */

View File

@@ -0,0 +1,64 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* clearing */
.stretch,
.clear {
clear: both;
height: 1px;
margin: 0;
padding: 0;
font-size: 15px;
line-height: 1px;
}
.clearfix:after {
clear: both;
height: 0;
display: block;
visibility: hidden;
content: ".";
}
.clearfix {display:inline-block;}
/* Hide from IE Mac \*/
.clearfix {display:block;}
/* End hide from IE Mac */
/* end clearing */
/* accessibility */
span.accesskey {
text-decoration: none;
}
.accessibility {
position: absolute;
top: -999em;
left: -999em;
}
/* end accessibility */

View File

@@ -0,0 +1,228 @@
/*
A CSS Framework by Mike Stenhouse of Content with Style
-------------------------------------------------------
Copyright (c) 2005, Mike Stenhouse of Content with Style
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of CSS Framework nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* TYPOGRAPHY */
body {
text-align: left;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 76%;
line-height: 1em;
color: #333;
}
div {
font-size: 1em;
}
img {
border: 0;
}
/* LINKS */
a,
a:link,
a:active {
text-decoration: underline;
color: blue;
background-color: white;
}
a:visited {
color: purple;
background-color: transparent;
}
a:hover {
text-decoration: none;
color: white;
background-color: black;
}
/* END LINKS */
/* HEADINGS */
h1 {
margin: 0 0 0.5em 0;
padding: 0;
font-size: 2em;
line-height: 1.5em;
color: black;
}
h2 {
margin: 0 0 0.5em 0;
padding: 0;
font-size: 1.5em;
line-height: 1.5em;
color: black;
}
h3 {
margin: 0 0 0.5em 0;
padding:0;
font-size: 1.3em;
line-height: 1.3em;
color: black;
}
h4 {
margin: 0 0 0.25em 0;
padding: 0;
font-size: 1.2em;
line-height: 1.3em;
color: black;
}
h5 {
margin: 0 0 0.25em 0;
padding: 0;
font-size: 1.1em;
line-height: 1.3em;
color: black;
}
h6 {
margin: 0 0 0.25em 0;
padding: 0;
font-size: 1em;
line-height: 1.3em;
color: black;
}
/* END HEADINGS */
/* TEXT */
p {
margin: 0 0 1.5em 0;
padding: 0;
font-size: 1em;
line-height:1.4em;
}
blockquote {
margin-left: 10px;
border-left: 10px solid #ddd;
}
pre {
font-family: monospace;
font-size: 1.0em;
}
strong, b {
font-weight: bold;
}
em, i {
font-style:italic;
}
code {
font-family: "Courier New", Courier, monospace;
font-size: 1em;
white-space: pre;
}
/* END TEXT */
/* LISTS */
ul {
margin: 0 0 1.5em 0;
padding: 0;
line-height:1.4em;
}
ul li {
margin: 0 0 0.25em 30px;
padding: 0;
}
ol {
margin: 0 0 1.5em 0;
padding: 0;
font-size: 1.0em;
line-height: 1.4em;
}
ol li {
margin: 0 0 0.25em 30px;
padding: 0;
font-size: 1.0em;
}
dl {
margin: 0 0 1.5em 0;
padding: 0;
line-height: 1.4em;
}
dl dt {
margin: 0.25em 0 0.25em 0;
padding: 0;
font-weight: bold;
}
dl dd {
margin: 0 0 0 30px;
padding: 0;
}
/* END LISTS */
/* TABLE */
table {
margin: 0 0 1.5em 0;
padding: 0;
font-size: 1em;
}
table caption {
margin: 0;
padding: 0 0 1.5em 0;
font-weight: bold;
}
th {
font-weight: bold;
text-align: left;
}
td {
font-size: 1em;
}
/* END TABLE */
hr {
display: none;
}
div.hr {
height: 1px;
margin: 1.5em 10px;
border-bottom: 1px dotted black;
}
/* END TYPOGRAPHY */

View File

@@ -0,0 +1,452 @@
/*
* Copyright 2004-2008 the original author or authors.
*
* Licensed 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.
*/
dojo.declare("Spring.DefaultEquals", null, {
equals : function(/*Object*/other){
if (other.declaredClass && other.declaredClass == this.declaredClass) {
return true;
}else{
return false;
}
}
});
dojo.declare("Spring.ElementDecoration", [Spring.AbstractElementDecoration, Spring.DefaultEquals], {
constructor : function(config) {
this.widgetAttrs = {};
this.copyFields = new Array('name', 'value', 'type', 'checked', 'selected', 'readOnly', 'disabled', 'alt', 'maxLength', 'class', 'title');
dojo.mixin(this, config);
this.element = dojo.byId(this.elementId);
this.elementId = dojo.isString(this.elementId) ? this.elementId : this.elementId.id;
if(this.widgetModule == "") {
this.widgetModule = this.widgetType;
}
dojo.require(this.widgetModule);
},
apply : function(){
if (dijit.byId(this.elementId)) {
dijit.byId(this.elementId).destroyRecursive(false);
}
if (!this.element) {
console.error("Could not apply " + this.widgetType + " decoration. Element with id '" + this.elementId + "' not found in the DOM.");
}
else {
/*
* dijit.form.DateTextBox uses locale information when displaying a date and a
* fixed date format when parsing or serializing date values coming from the
* server-side. There is no way configure it to use a single date pattern,
* which is the reason for the code below.
*/
var datePattern = this.widgetAttrs['datePattern'];
if (datePattern && this.widgetType == 'dijit.form.DateTextBox') {
if (!this.widgetAttrs['value']) {
// Help dijit.form.DateTextBox parse the server side date value.
this.widgetAttrs['value'] = dojo.date.locale.parse(this.element.value, {selector : "date", datePattern : datePattern});
}
if (!this.widgetAttrs['serialize']) {
// Help dijit.form.DateTextBox format the date to send to the server side.
this.widgetAttrs['serialize'] = function(d, options){
return dojo.date.locale.format(d, {selector : "date", datePattern : datePattern});
}
}
// Add a constraint that specifies the date pattern to use when displaying a date
// but don't interfere with any constraints that may have been specified.
if (!this.widgetAttrs['constraints']) {
this.widgetAttrs['constraints'] = {};
}
if (!this.widgetAttrs['constraints'].datePattern) {
this.widgetAttrs['constraints'].datePattern = datePattern;
}
}
for (var copyField in this.copyFields) {
copyField = this.copyFields[copyField];
if (!this.widgetAttrs[copyField] && this.element[copyField] &&
(typeof this.element[copyField] != 'number' ||
(typeof this.element[copyField] == 'number' && this.element[copyField] >= 0))) {
this.widgetAttrs[copyField] = this.element[copyField];
}
}
if(this.element['style'] && this.element['style'].cssText){
this.widgetAttrs['style'] = this.element['style'].cssText;
}
var widgetConstructor = dojo.eval(this.widgetType);
this.widget = new widgetConstructor(this.widgetAttrs, this.element);
this.widget.startup();
}
//return this to support method chaining
return this;
},
validate : function(){
if (!this.widget.isValid) {
// some widgets cannot be validated
return true;
}
var isValid = this.widget.isValid(false);
if (!isValid) {
this.widget.state = "Error";
this.widget._setStateClass();
}
return isValid;
}
});
dojo.declare("Spring.ValidateAllDecoration", [Spring.AbstractValidateAllDecoration, Spring.DefaultEquals], {
constructor : function(config) {
this.originalHandler = null;
this.connection = null;
dojo.mixin(this, config);
},
apply : function() {
var element = dojo.byId(this.elementId);
if (!element) {
console.error("Could not apply ValidateAll decoration. Element with id '" + this.elementId + "' not found in the DOM.");
} else {
this.originalHandler = element[this.event];
var context = this;
element[this.event] = function(event){
context.handleEvent(event, context);
};
}
return this;
},
cleanup : function(){
dojo.disconnect(this.connection);
},
handleEvent : function(event, context){
if (!Spring.validateAll()) {
dojo.publish(this.elementId+"/validation", [false]);
dojo.stopEvent(event);
} else {
dojo.publish(this.elementId+"/validation", [true]);
if(dojo.isFunction(context.originalHandler)) {
var result = context.originalHandler(event);
if (result == false) {
dojo.stopEvent(event);
}
}
}
}
});
dojo.declare("Spring.AjaxEventDecoration", [Spring.AbstractAjaxEventDecoration, Spring.DefaultEquals], {
constructor : function(config){
this.validationSubscription = null;
this.connection = null;
this.allowed = true;
dojo.mixin(this, config);
},
apply : function() {
var element = dijit.byId(this.elementId) ? dijit.byId(this.elementId) : dojo.byId(this.elementId);
if (!element) {
console.error("Could not apply AjaxEvent decoration. Element with id '" + this.elementId + "' not found in the DOM.");
} else {
this.validationSubscription = dojo.subscribe(this.elementId+"/validation", this, "_handleValidation");
this.connection = dojo.connect(element, this.event, this, "submit");
}
return this;
},
cleanup : function(){
dojo.unsubscribe(this.validationSubscription);
dojo.disconnect(this.connection);
},
submit : function(event){
if (this.sourceId == ""){
this.sourceId = this.elementId;
}
if(this.formId == ""){
Spring.remoting.getLinkedResource(this.sourceId, this.params, this.popup);
} else {
if (this.allowed){
Spring.remoting.submitForm(this.sourceId, this.formId, this.params);
}
}
dojo.stopEvent(event);
},
_handleValidation : function(success){
if (!success) {
this.allowed=false;
} else {
this.allowed=true;
}
}
});
dojo.declare("Spring.RemotingHandler", Spring.AbstractRemotingHandler, {
constructor : function(){},
submitForm : function(/*String */ sourceId, /*String*/formId, /*Object*/ params) {
var content = new Object();
for (var key in params) {
content[key] = params[key];
}
var sourceComponent = dojo.byId(sourceId);
if (sourceComponent != null){
if(sourceComponent.value != undefined && sourceComponent.type && ("button,submit,reset").indexOf(sourceComponent.type) < 0) {
content[sourceId] = sourceComponent.value;
}
else if(sourceComponent.name != undefined) {
content[sourceComponent.name] = sourceComponent.name;
} else {
content[sourceId] = sourceId;
}
}
if (!content['ajaxSource']) {
content['ajaxSource'] = sourceId;
}
var formNode = dojo.byId(formId);
var formMethod = dojo.string.trim(formNode.method);
formMethod = formMethod.length > 0 ? formMethod.toUpperCase() : "GET";
dojo.xhr(formMethod, {
content: content,
form: formId,
handleAs: "text",
headers: {"Accept" : "text/html;type=ajax"},
// The LOAD function will be called on a successful response.
load: this.handleResponse,
// The ERROR function will be called in an error case.
error: this.handleError
}, formMethod == "POST" ? true : false);
},
getLinkedResource: function(/*String */ linkId, /*Object*/params, /*boolean*/ modal) {
this.getResource(dojo.byId(linkId).href, params, modal);
},
getResource: function(/*String */ resourceUri, /*Object*/params, /*boolean*/ modal) {
dojo.xhrGet({
url: resourceUri,
content: params,
handleAs: "text",
headers: {"Accept" : "text/html;type=ajax"},
load: this.handleResponse,
error: this.handleError,
modal: modal
});
},
handleResponse: function(response, ioArgs) {
//First check if this response should redirect
var redirectURL = ioArgs.xhr.getResponseHeader('Spring-Redirect-URL');
var modalViewHeader = ioArgs.xhr.getResponseHeader('Spring-Modal-View');
var modalView = ((dojo.isString(modalViewHeader) && modalViewHeader.length > 0) || ioArgs.args.modal);
if (dojo.isString(redirectURL) && redirectURL.length > 0) {
if (modalView) {
//render a popup with the new URL
Spring.remoting._renderURLToModalDialog(redirectURL);
return response;
}
else {
if (redirectURL.indexOf("/") >= 0) {
window.location = window.location.protocol + "//" + window.location.host + redirectURL;
} else {
var location = window.location.protocol + "//" + window.location.host + window.location.pathname;
var appendIndex = location.lastIndexOf("/");
location = location.substr(0,appendIndex+1) + redirectURL;
if (location == window.location) {
Spring.remoting.getResource(location, ioArgs.args.content, false);
}
else {
window.location = location;
}
}
return response;
}
} else if ((dojo.string.trim(response).length == 0) && (ioArgs.xhr.status != 204) && (ioArgs.xhr.status != 205)) {
if (Spring.debug) {
Spring.remoting.showError('Received empty response with no Spring redirect headers. If this is intentional set the response status code to 204 or 205.');
}
}
//Extract and store all <script> elements from the response
var scriptPattern = '(?:<script(.|[\n|\r])*?>)((\n|\r|.)*?)(?:<\/script>)';
var extractedScriptNodes = [];
var matchAll = new RegExp(scriptPattern, 'img');
var matchOne = new RegExp(scriptPattern, 'im');
var scriptNodes = response.match(matchAll);
if (scriptNodes != null)
{
for (var i=0; i<scriptNodes.length; i++)
{
var script = (scriptNodes[i].match(matchOne) || ['','',''])[2];
script = script.replace(/<!--/mg,'').replace(/\/\/-->/mg,'').replace(/<!\[CDATA\[(\/\/>)*/mg,'').replace(/(<!)*\]\]>/mg,'');
extractedScriptNodes.push(script);
}
}
// Remove scripts but don't remove scripts entirely (see SWF-1358)
response = response.replace(matchAll, '<script> // Original script removed to avoid re-execution </script>');
if (modalView) {
//For a modal view, just dump the response into a modal dialog
Spring.remoting._renderResponseToModalDialog(response);
} else {
//Extract the new DOM nodes from the response
var tempSpan = dojo.doc.createElement("span");
tempSpan.id="ajaxResponse";
tempSpan.style.display= "none";
document.body.appendChild(tempSpan);
tempSpan.innerHTML=response;
var tempContainer = new dojo.NodeList(tempSpan);
var newNodes = tempContainer.query(">").orphan();
tempContainer.orphan();
//Insert the new DOM nodes and update the Form's action URL
newNodes.forEach(function(item){
if (item.id != null && item.id != "") {
var target = dijit.byId(item.id) ? dijit.byId(item.id).domNode : dojo.byId(item.id);
if (!target) {
console.error("An existing DOM elment with id '" + item.id + "' could not be found for replacement.");
} else {
target.parentNode.replaceChild(item, target);
}
}
});
}
//Evaluate any script code
dojo.forEach(extractedScriptNodes, function(script){
dojo.eval(script);
});
return response;
},
handleError: function(response, ioArgs) {
dojo.require("dijit.Dialog");
console.error("HTTP status code: ", ioArgs.xhr.status);
if (Spring.debug && ioArgs.xhr.status != 200) {
var dialog = new dijit.Dialog({ title: 'Ajax Request Error' });
dojo.connect(dialog, "hide", dialog, function(){
this.destroyRecursive(false);
});
dialog.domNode.style.overflow = "auto";
dialog.setContent(ioArgs.xhr.responseText);
dialog.show();
}
return response;
},
showError: function(message) {
dojo.require("dijit.Dialog");
var dialog = new dijit.Dialog({ title: 'Error Message' });
dojo.connect(dialog, "hide", dialog, function(){
this.destroyRecursive(false);
});
dialog.domNode.style.width = "500px";
dialog.setContent(message);
dialog.show();
},
_renderURLToModalDialog: function(url) {
Spring.remoting.getResource(url, {}, true);
},
_renderResponseToModalDialog: function(response) {
dojo.require("dijit.Dialog");
var dialog = new dijit.Dialog({});
dialog.setContent(response);
dojo.connect(dialog, "hide", dialog, function(){
this.destroyRecursive(false);
});
dialog.show();
}
});
dojo.declare("Spring.CommandLinkDecoration", [Spring.AbstractCommandLinkDecoration, Spring.DefaultEquals], {
constructor : function(config){
dojo.mixin(this, config);
},
apply : function(){
var advisedNode = dojo.byId(this.elementId);
if (!dojo.hasClass(advisedNode, "progressiveLink")) {
//Node must be replaced
var nodeToReplace = new dojo.NodeList(advisedNode);
nodeToReplace.addContent(this.linkHtml, "after").orphan("*");
//Get the new node
advisedNode = dojo.byId(this.elementId);
}
advisedNode.submitFormFromLink = this.submitFormFromLink;
//return this to support method chaining
return this;
},
submitFormFromLink : function(/*String*/ formId, /*String*/ sourceId, /*Array of name,value params*/ params){
var addedNodes = [];
var formNode = dojo.byId(formId);
var linkNode = document.createElement("input");
linkNode.name = sourceId;
linkNode.value = "submitted";
addedNodes.push(linkNode);
dojo.forEach(params, function(param){
var paramNode = document.createElement("input");
paramNode.name=param.name;
paramNode.value=param.value;
addedNodes.push(paramNode);
});
dojo.forEach(addedNodes, function(nodeToAdd){
dojo.addClass(nodeToAdd, "SpringLinkInput");
dojo.place(nodeToAdd, formNode, "last");
});
if ((formNode.onsubmit ? !formNode.onsubmit() : false) || !formNode.submit()) {
dojo.forEach(addedNodes, function(hiddenNode){
hiddenNode.parentNode.removeChild(hiddenNode);
});
}
}
});
dojo.addOnLoad(Spring.initialize);

View File

@@ -0,0 +1,176 @@
/*
* Copyright 2004-2008 the original author or authors.
*
* Licensed 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.
*/
Spring = {};
Spring.debug = true;
Spring.decorations = {};
Spring.decorations.applied = false;
Spring.initialize = function(){
Spring.applyDecorations();
Spring.remoting = new Spring.RemotingHandler();
};
Spring.addDecoration = function(/*Object*/decoration){
//Spring.decorations.push(decoration);
if (!Spring.decorations[decoration.elementId]) {
Spring.decorations[decoration.elementId] = [];
Spring.decorations[decoration.elementId].push(decoration);
} else {
var replaced = false;
for(var i = 0; i<Spring.decorations[decoration.elementId].length; i++) {
var existingDecoration = Spring.decorations[decoration.elementId][i];
if(existingDecoration.equals(decoration)) {
if (existingDecoration.cleanup != undefined) {
existingDecoration.cleanup();
}
Spring.decorations[decoration.elementId][i] = decoration;
replaced=true;
break;
}
}
if (!replaced) {
Spring.decorations[decoration.elementId].push(decoration);
}
}
if(Spring.decorations.applied) {
decoration.apply();
}
};
Spring.applyDecorations = function(){
if (!Spring.decorations.applied) {
for (var elementId in Spring.decorations) {
for (var x = 0; x < Spring.decorations[elementId].length; x++) {
Spring.decorations[elementId][x].apply();
}
}
Spring.decorations.applied = true;
}
};
Spring.validateAll = function(){
var valid = true;
for (var elementId in Spring.decorations) {
for (var x = 0; x < Spring.decorations[elementId].length; x++) {
if (Spring.decorations[elementId][x].widget && !Spring.decorations[elementId][x].validate()) {
valid = false;
}
}
}
return valid;
};
Spring.validateRequired = function(){
var valid = true;
for (var elementId in Spring.decorations) {
for (var x = 0; x < Spring.decorations[elementId].length; x++) {
if (Spring.decorations[elementId][x].widget && Spring.decorations[elementId][x].isRequired() &&
!Spring.decorations[elementId][x].validate()) {
valid = false;
}
}
}
return valid;
};
Spring.AbstractElementDecoration = function(){};
Spring.AbstractElementDecoration.prototype = {
elementId : "",
widgetType : "",
widgetModule : "",
widget : null,
widgetAttrs : {},
apply : function(){},
validate : function(){},
isRequired : function(){},
equals : function(/*Object*/other){}
};
Spring.AbstractValidateAllDecoration = function(){};
Spring.AbstractValidateAllDecoration.prototype = {
event : "",
elementId : "",
apply : function() {},
cleanup : function(){},
handleEvent : function(event){},
equals : function(/*Object*/other){}
};
Spring.AbstractCommandLinkDecoration = function(){};
Spring.AbstractCommandLinkDecoration.prototype = {
elementId : "",
linkHtml : "",
apply : function(){},
submitFormFromLink : function(/*String*/ formId, /*String*/ sourceId, /*Array of name,value params*/ params){},
equals : function(/*Object*/other){}
};
Spring.AbstractAjaxEventDecoration = function(){};
Spring.AbstractAjaxEventDecoration.prototype = {
event : "",
elementId : "",
sourceId : "",
formId : "",
popup : false,
params : {},
apply : function(){},
cleanup : function(){},
submit : function(event){},
equals : function(/*Object*/other){}
};
Spring.AbstractRemotingHandler = function(){};
Spring.AbstractRemotingHandler.prototype = {
submitForm : function(/*String */ sourceId, /*String*/formId, /*Object*/ params){},
getLinkedResource: function(/*String */ linkId, /*Object*/params, /*boolean*/ modal) {},
getResource : function(/*String */ resourceUri, /*Object*/params, /*boolean*/ modal) {},
handleResponse : function() {},
handleError : function() {}
};

View File

View File