nested DIV in error messages, issue 861 thanks Richard

This commit is contained in:
mdipierro
2012-06-25 14:31:52 -05:00
parent a1226f2c16
commit a364dc5fde
4 changed files with 61 additions and 103 deletions

View File

@@ -1 +1 @@
Version 2.00.0 (2012-06-25 14:21:16) dev
Version 2.00.0 (2012-06-25 14:31:49) dev

View File

@@ -1,9 +1,9 @@
/** these MUST stay **/
body { margin: 0; padding:0; border: 0; }
a { text-decoration:none}
a { text-decoration:none; white-space: nowrap;}
a:hover {text-decoration: underline}
a.button {text-decoration: none}
h1,h2,h3,h4,h5,h6 {margin: 0.5em 0 0.25em 0; display: block; font-family: Helvetica}
h1,h2,h3,h4,h5,h6 {margin: 0.5em 0 0.25em 0; display: block; font-family: Helvetica;}
h1 { font-size: 4.00em;}
h2 { font-size: 3.00em;}
h3 { font-size: 2.00em;}
@@ -13,9 +13,10 @@ h1,h2,h3,h4,h5,h6 {margin: 0.5em 0 0.25em 0; display: block; font-family: Helvet
right { float:right; text-align: right; }
left { float:left; text-align: left; }
center { width:100; text-align: center; vertical-align:middle;}
label { white-space: nowrap; }
th, label { font-weight: bold; }
th, td { text-align: left; vertical-align: top; padding: 2px 5px 2px 5px;}
th, label { font-weight: bold; white-space: nowrap; }
td, th { text-align: left; padding: 2px 5px 2px 5px; }
th { vertical-align: middle; border-right: 1px solid white;}
td { vertical-align: top; }
form table tr td label { text-align: left; }
p, table, ol, ul { padding: 0.5em 0 0.5em 0 }
p {text-align: justify }
@@ -27,17 +28,19 @@ blockquote, blockquote p, p blockquote { font-style: italic; margin: 0.5em 30px
i, em { font-style: italic; }
strong { font-weight: bold; }
small { font-size: 0.8em; }
textarea { width: 600px; }
textarea { width: 100%; }
code { font-family: Courier;}
input[type=text], input[type=password], select { width: 300px; }
video { width:400px; }
audio { width:200px; }
input[type=text], input[type=password], select { width: 300px; margin-right: 5px }
ul { list-style-type: none; margin: 0px; padding: 0px; }
.hidden {display:none;visibility:visible}
/** end **/
/* Sticky footer begin */
html, body {
height: 100%;
}
.wrapper {
min-height: 100%;
height: auto !important;
@@ -63,11 +66,8 @@ html, body {
/* Sticky footer end */
body {
background-color: #FFFFFF;
}
.footer {
background-color: #ECECEC;
border-top: 1px #DEDEDE solid;
}
.header {
// background: <fill here for header image>;
@@ -80,7 +80,7 @@ fieldset legend {text-transform:uppercase; font-weight: bold; padding: 4px 16px
/* fix ie problem with menu */
.ie-lte7 .topbar .container {z-index: 2; }
td.w2p_fw {padding-bottom: 1em;}
td.w2p_fw {padding-bottom: 1px;}
td.w2p_fl, td.w2p_fw, td.w2p_fc { vertical-align:top; }
td.w2p_fl { text-align:right; }
td.w2p_fl, td.w2p_fw {padding-right: 7px;}
@@ -93,8 +93,6 @@ td.w2p_fl, td.w2p_fc { padding-top: 4px; }
#auth_user_remember__row label {display: inline;}
#web2py_user_form td { vertical-align:top; }
a, a:visited, a:hover { color:#0069D6}
/*********** web2py specific ***********/
div.flash {
font-weight: bold;
@@ -116,16 +114,22 @@ div.flash {
-webkit-border-radius: 5px;
z-index: 2;
}
div.flash {z-index:2000;}
div.error_wrapper { display: block; }
div.error {
background-color: red;
color: white;
padding: 3px;
display: inline-block;
}
.topbar {
padding: 10px 0;
width:100%;
color: #959595; vertical-align:middle;
padding: 0;
color: #959595;
vertical-align: middle;
padding: auto;
background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));
background-image: -moz-linear-gradient(top, #333333, #222222);
background-image: -ms-linear-gradient(top, #333333, #222222);
@@ -143,9 +147,7 @@ div.error {
color: #e1e1e1;
}
#navbar {float: right; padding: .4em 0;}
#menu {padding-top: .2em;}
#navbar {float: right; padding: 5px; /* same as superfish */}
.right {
width:100%;
@@ -167,12 +169,13 @@ div.error {
.breadcrumbs { float: left; }
.copyright {float: left;}
#poweredBy {float: right;}
/* #MEDIA QUERIES SECTION */
/* All Mobile Sizes (devices and browser) */
@media only screen and (max-width: 767px) {
/* removed because of bootswatch
.topbar {text-align: center;}
#navbar, #menu {float: none;}
#navbar {font-size: 1.2em; padding: .6em 0 1.2em;}
@@ -180,7 +183,7 @@ div.error {
#menu select {font-size: 1.2em; margin: 0; padding: 0;}
div.flash {top: 110px; right: 10px;}
*/
}
/*
@@ -190,34 +193,20 @@ div.error {
* will look better with the declarations below
* if needed to remove base.css consider keeping these following lines in some css file.
*/
.web2py_table { border: 1px solid #ccc; }
.web2py_paginator { border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; }
.web2py_grid a { text-decoration:none;}
// .web2py_table { border: 1px solid #ccc; }
.web2py_paginator { }
.web2py_grid {width: 100% }
.web2py_grid table { width: 100% }
.web2py_grid td { white-space:normal; }
.web2py_grid tbody td {
padding: 2px 5px 2px 5px;
line-height: 13.5px;
vertical-align: middle;
}
.web2py_grid input:focus,
.web2py_grid textarea:focus,
.web2py_grid select:focus {
border: 1px solid #ffffff;
-webkit-box-shadow: 0px 0px 6px #007eff;
-moz-box-shadow: 0px 0px 5px #007eff;
box-shadow: 0px 0px 5px #007eff;
}
.web2py_grid thead th {
.web2py_grid thead th, .web2py_grid tfoot td {
background-color:#EAEAEA;
padding: 10px 5px 10px 5px;
line-height: 13.5px;
vertical-align: middle;
font-weight: bold;
border-bottom: 1px solid #DDD;
border-right: 1px solid #DDD;
}
.web2py_grid tr.odd {background-color: #F9F9F9;}
.web2py_grid tr:hover {background-color: #F5F5F5; }
@@ -230,25 +219,23 @@ div.error {
text-shadow: 1px 1px 0 #FFFFFF;
white-space: nowrap; overflow: visible; cursor: pointer;
background:#ECECEC;
text-decoration: none; border: 1px solid #CACACA;
border: 1px solid #CACACA;
-webkit-border-radius: 2px; -moz-border-radius: 2px;
-webkit-background-clip: padding-box; border-radius: 2px;
outline: none; position: relative; zoom: 1; *display: inline;
}
*/
.web2py_console {
min-height: 60px;
text-align: left;
.web2py_console form {
width:100%;
}
.web2py_search_actions{
width:40%;
float:left;
text-align:left;
}
.web2py_grid .row_buttons {
min-height:25px;
vertical-align: middle;
@@ -257,6 +244,10 @@ div.error {
margin: 3px;
}
.web2py_search_actions {
width: 100%;
}
.web2py_grid .row_buttons a,
.web2py_paginator ul li a,
.web2py_search_actions a,
@@ -266,41 +257,6 @@ div.error {
line-height: 20px;
margin-right: 5px; display: inline-block;
padding: 3px 5px 3px 5px;
font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
font-size: 1em;
color: #3C3C3D;
text-shadow: 1px 1px 0 #FFFFFF;
background:#ECECEC;
white-space: nowrap; overflow: visible;
cursor: pointer; text-decoration: none;
border: 1px solid #CACACA;
-webkit-border-radius: 2px; -moz-border-radius: 2px;
-webkit-background-clip: padding-box; border-radius: 2px;
outline: none; position: relative; zoom: 1; *display: inline;
}
.web2py_grid .row_buttons a:hover,
.web2py_search_actions a:hover,
.web2py_console input[type=submit]:hover,
.web2py_console input[type=button]:hover,
.web2py_paginator ul li a:hover {
color: #222;
background: #ddd; /* Old browsers */
background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */
background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,\
0,.3))); /* Chrome,Safari4+ */
background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */
background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */
background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */
background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */
border: 1px solid #888;
border-top: 1px solid #aaa;
border-left: 1px solid #aaa;
/*
color: #FFFFFF; border-color: #388AD4; text-decoration: none;
text-shadow: -1px -1px 0 rgba(0,0,0,0.3);
background-position: 0 -40px; background-color: #2D7DC5;
*/
}
.web2py_counter {
@@ -316,9 +272,8 @@ color: #222;
.web2py_paginator {
padding: 5px;
color: #333;
text-align:right;
background-color: #f2f2f2; padding: 5px; border-bottom: 1px solid #DDD;
background-color: #f2f2f2;
}
.web2py_paginator ul {
@@ -326,26 +281,24 @@ color: #222;
margin: 0px;
padding: 0px;
}
.web2py_paginator ul li {
display: inline;
}
.web2py_paginator .current {
font-weight: bold;
}
#w2p_query_trigger {
margin-left: 0;
}
#w2p_query_panel {
// float:left;
background:#e0e0e0;
border:1px solid #CFCFCF;
// bottom:3px;
// left:187px;
// margin-top: 30px;
min-width:550px;
min-height:16px;
padding: 3px 3px;
border-radius:2px;
}
.ie9 #query_panel {padding-bottom:2px;}
#w2p_query_panel {}
.web2py_breadcrumbs ul {
list-style: none;
margin-bottom: 18px;
}
.web2py_breadcrumbs ul li {
display: inline-block;
}
.ie9 #query_panel {padding-bottom:2px;}

View File

@@ -116,10 +116,12 @@ div.flash {
}
div.flash {z-index:2000;}
div.error_wrapper { display: block; }
div.error {
background-color: red;
color: white;
padding: 3px;
display: inline-block;
}
.topbar {

View File

@@ -1667,8 +1667,11 @@ class INPUT(DIV):
and self.errors.get(name, None) \
and self['hideerror'] != True:
self['_class'] = (self['_class'] and self['_class']+' ' or '')+'invalidinput'
return DIV.xml(self) + DIV(self.errors[name], _class='error',
errors=None, _id='%s__error' % name).xml()
return DIV.xml(self) + DIV(
DIV(
self.errors[name], _class='error',
errors=None, _id='%s__error' % name),
_class='error_wrapper').xml()
else:
if self['_class'] and self['_class'].endswith('invalidinput'):
self['_class'] = self['_class'][:-12]