diff --git a/VERSION b/VERSION index 5b548304..7c1c59b3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.00.0 (2012-06-25 14:21:16) dev +Version 2.00.0 (2012-06-25 14:31:49) dev diff --git a/applications/examples/static/css/web2py.css b/applications/examples/static/css/web2py.css index ab9beaf2..cab92321 100644 --- a/applications/examples/static/css/web2py.css +++ b/applications/examples/static/css/web2py.css @@ -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: ; @@ -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;} diff --git a/applications/welcome/static/css/web2py.css b/applications/welcome/static/css/web2py.css index 9d41654e..cab92321 100644 --- a/applications/welcome/static/css/web2py.css +++ b/applications/welcome/static/css/web2py.css @@ -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 { diff --git a/gluon/html.py b/gluon/html.py index d32fdf1e..220e8824 100644 --- a/gluon/html.py +++ b/gluon/html.py @@ -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]