diff options
| author | Thibault Delavallée <tde@openerp.com> | 2012-06-21 10:16:13 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2012-06-21 10:16:13 +0200 |
| commit | cefce78cb664e1285dfcabe3702bc5aa1b40925f (patch) | |
| tree | 59215bfe4b4a06c0858890c4eaa345310201ef3d /addons/web/static/src | |
| parent | 896fd9fdf90470b84b106e6c76463966f39afc9d (diff) | |
| parent | da7c964068ed317f94f2e55624b94388583c861c (diff) | |
[MERGE] Merged with main web.
bzr revid: tde@openerp.com-20120611083449-fjcy5injx0wydrlm
bzr revid: tde@openerp.com-20120612074745-zmfq9i0h3gcqz2z1
bzr revid: tde@openerp.com-20120613153033-8yhiis0mk7a91rfu
bzr revid: tde@openerp.com-20120614083859-eo4gpuvxuqhw9ob1
bzr revid: tde@openerp.com-20120615081833-tyv0wl56wcppwstp
bzr revid: tde@openerp.com-20120618075747-tvealk8do8h1sigb
bzr revid: tde@openerp.com-20120619073535-rgleb9j9g5xy2xeg
bzr revid: tde@openerp.com-20120620073852-xatt6u4855i5g681
bzr revid: tde@openerp.com-20120621081613-hfu05ia738euiarr
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/css/base.css | 1480 | ||||
| -rw-r--r-- | addons/web/static/src/css/base.sass | 1442 | ||||
| -rw-r--r-- | addons/web/static/src/js/boot.js | 5 | ||||
| -rw-r--r-- | addons/web/static/src/js/chrome.js | 57 | ||||
| -rw-r--r-- | addons/web/static/src/js/coresetup.js | 38 | ||||
| -rw-r--r-- | addons/web/static/src/js/search.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 118 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list.js | 1 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 72 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 192 |
10 files changed, 1544 insertions, 1863 deletions
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 5ef56c69797..5c34e40ec7f 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -41,7 +41,6 @@ } .openerp table { padding: 0; - font-size: 13px; border-collapse: collapse; } .openerp thead { @@ -84,13 +83,6 @@ background-image: -o-linear-gradient(top, #eeeeee, #dedede); background-image: linear-gradient(to bottom, #eeeeee, #dedede); } -.openerp .numeric { - text-align: right; - width: 82px; -} -.openerp .numeric input { - text-align: right; -} .openerp ul, .openerp li, .openerp ol { margin: 0; padding: 0; @@ -98,44 +90,18 @@ .openerp li { list-style-type: none; } -.openerp input, .openerp textarea { +.openerp input, .openerp textarea, .openerp select { + padding: 4px; border: 1px solid #cccccc; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } -.openerp .oe_i { - font-family: "mnmliconsRegular" !important; - font-size: 21px; - font-weight: 300 !important; -} -.openerp .oe_e { - font-family: "entypoRegular" !important; - font-size: 34px; - font-weight: 300 !important; -} -.openerp .oe_left { - float: left; - margin-right: 8px; -} -.openerp .oe_right { - float: right; - margin-left: 8px; -} -.openerp .oe_text_right { - text-align: right; -} -.openerp .oe_clear { - clear: both; -} -.openerp .oe_wait { - cursor: wait; -} -.openerp .oe_fade { - color: #888888; +.openerp img { + vertical-align: middle; } -.openerp .oe_bold { - font-weight: bold; +.openerp h4 { + margin: 4px 0; } .openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'] { display: inline-block; @@ -157,7 +123,7 @@ border-radius: 3px; -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); -webkit-font-smoothing: antialiased; outline: none; @@ -183,7 +149,7 @@ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; } .openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active { background: #e3e3e3; @@ -192,20 +158,71 @@ background: linear-gradient(top, #e3e3e3, #f6f6f6) #1b468f; -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; } .openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled { background: #efefef !important; border: 1px solid #d1d1d1 !important; -moz-box-shadow: none !important; -webkit-box-shadow: none !important; - -box-shadow: none !important; + box-shadow: none !important; color: #aaaaaa !important; cursor: default; text-shadow: 0 1px 1px white !important; } -.openerp button.primary { +.openerp .ui-widget { + font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; + font-size: 13px; +} +.openerp .ui-menu .ui-menu-item { + margin: 0 8px 0 0; + padding: 0 0 0 12px; + width: auto; +} +.openerp .ui-menu .ui-menu-item a.ui-state-active { + background: #f0f0fa; +} +.openerp .oe_i { + font-family: "mnmliconsRegular" !important; + font-size: 21px; + font-weight: 300 !important; +} +.openerp .oe_e { + font-family: "entypoRegular" !important; + font-size: 34px; + font-weight: 300 !important; +} +.openerp .oe_left { + float: left; + margin-right: 8px; +} +.openerp .oe_right { + float: right; + margin-left: 8px; +} +.openerp .oe_text_right { + text-align: right; +} +.openerp .oe_clear { + clear: both; +} +.openerp .oe_wait { + cursor: wait; +} +.openerp .oe_fade { + color: #888888; +} +.openerp .oe_bold { + font-weight: bold; +} +.openerp .oe_inline { + width: auto; +} +.openerp .oe_highlight { color: white; + background: #dc5f59; +} +.openerp button.oe_highlight { background-color: #dc5f59; background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); background-image: -webkit-linear-gradient(top, #dc5f59, #b33630); @@ -215,9 +232,21 @@ background-image: linear-gradient(to bottom, #dc5f59, #b33630); -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; } -.openerp button.primary:hover { +.openerp button.oe_highlight:active { + background-color: #b33630; + background-image: -webkit-gradient(linear, left top, left bottom, from(#b33630), to(#dc5f59)); + background-image: -webkit-linear-gradient(top, #b33630, #dc5f59); + background-image: -moz-linear-gradient(top, #b33630, #dc5f59); + background-image: -ms-linear-gradient(top, #b33630, #dc5f59); + background-image: -o-linear-gradient(top, #b33630, #dc5f59); + background-image: linear-gradient(to bottom, #b33630, #dc5f59); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.openerp button.oe_highlight:hover { background-color: #df6b66; background-image: -webkit-gradient(linear, left top, left bottom, from(#df6b66), to(#bf3a33)); background-image: -webkit-linear-gradient(top, #df6b66, #bf3a33); @@ -227,42 +256,233 @@ background-image: linear-gradient(to bottom, #df6b66, #bf3a33); -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); - -box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); } -.openerp button.primary:active { - background-color: #b33630; - background-image: -webkit-gradient(linear, left top, left bottom, from(#b33630), to(#dc5f59)); - background-image: -webkit-linear-gradient(top, #b33630, #dc5f59); - background-image: -moz-linear-gradient(top, #b33630, #dc5f59); - background-image: -ms-linear-gradient(top, #b33630, #dc5f59); - background-image: -o-linear-gradient(top, #b33630, #dc5f59); - background-image: linear-gradient(to bottom, #b33630, #dc5f59); +.openerp .oe_title { + width: 55%; +} +.openerp .oe_title:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.openerp .oe_button_box { + width: 200px; + text-align: center; +} +.openerp .oe_avatar { + margin: 0 16px 0 0; +} +.openerp .oe_avatar img { + height: 50px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + border: none; +} +.openerp.oe_tooltip { + font-size: 12px; +} +.openerp.oe_tooltip .oe_tooltip_string { + color: #ffdd55; + font-weight: bold; + font-size: 13px; +} +.openerp.oe_tooltip .oe_tooltip_help { + white-space: pre-wrap; +} +.openerp.oe_tooltip .oe_tooltip_technical { + padding: 0 0 4px 0; + margin: 5px 0 0 15px; +} +.openerp.oe_tooltip .oe_tooltip_technical li { + list-style: circle; +} +.openerp.oe_tooltip .oe_tooltip_technical_title { + font-weight: bold; +} +.openerp .oe_notebook { + margin: 8px 0; + padding: 0 16px; + list-style: none; + zoom: 1; +} +.openerp .oe_notebook:before, .openerp .oe_notebook:after { + display: table; + content: ""; + zoom: 1; +} +.openerp .oe_notebook:after { + clear: both; +} +.openerp .oe_notebook > li { + float: left; +} +.openerp .oe_notebook > li > a { + display: block; + color: #4c4c4c; +} +.openerp .oe_notebook { + border-color: #dddddd; + border-style: solid; + border-width: 0 0 1px; +} +.openerp .oe_notebook > li { + position: relative; +} +.openerp .oe_notebook > li > a { + padding: 0 12px; + margin-right: 2px; + line-height: 30px; + border: 1px solid transparent; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.openerp .oe_notebook > li > a:hover { + text-decoration: none; + background-color: #eeeeee; + border-color: #eeeeee #eeeeee #dddddd; +} +.openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover { + background-color: white; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; +} +.openerp .oe_notebook_page { + padding: 0; +} +.openerp div.ui-tabs { + padding: 3px 0px 3px 0px; +} +.openerp .ui-tabs-hide { + display: none; +} +.openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle { + position: relative; + cursor: pointer; +} +.openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened { + display: block; +} +.openerp .oe_dropdown_menu { + display: none; + position: absolute; + top: 28px; + z-index: 1; + border: 1px solid #afafb6; + background: white; + padding: 8px; + min-width: 120px; + text-align: left; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); +} +.openerp .oe_dropdown_menu > li { + list-style-type: none; + float: none; + display: block; + position: relative; +} +.openerp .oe_dropdown_menu > li:hover { + background-color: #f0f0fa; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; } -.openerp button.following { - color: white; - width: 120px; - background-color: #8a89ba; - background-image: -webkit-gradient(linear, left top, left bottom, from(#8a89ba), to(#807fb4)); - background-image: -webkit-linear-gradient(top, #8a89ba, #807fb4); - background-image: -moz-linear-gradient(top, #8a89ba, #807fb4); - background-image: -ms-linear-gradient(top, #8a89ba, #807fb4); - background-image: -o-linear-gradient(top, #8a89ba, #807fb4); - background-image: linear-gradient(to bottom, #8a89ba, #807fb4); -} -.openerp button.unfollow { +.openerp .oe_dropdown_menu > li > a { + white-space: nowrap; + display: block; + padding: 3px 6px; + color: #4c4c4c; + text-decoration: none; +} +.openerp .oe_dropdown_menu > li > a:hover { + text-decoration: none; +} +.openerp .oe_dropdown_arrow:after { + width: 0; + height: 0; + display: inline-block; + content: "&darr"; + text-indent: -99999px; + vertical-align: top; + margin-top: 8px; + margin-left: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #404040; + filter: alpha(opacity=50); + opacity: 0.5; +} +.openerp .oe_sidebar { + white-space: nowrap; +} +.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment { + height: 20px; + cursor: pointer; + padding-left: 6px; + margin-top: 6px; +} +.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span { + font-weight: bold; +} +.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file { + width: 200px; +} +.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover { + background-color: #f0f0fa; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item { + position: absolute; + top: 4px; + right: 4px; display: none; + width: 12px; + height: 12px; + padding: 1px; + color: #8786b7; + line-height: 8px; + text-align: center; + font-weight: bold; + text-shadow: 0 1px 1px white; +} +.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover { + text-decoration: none; color: white; - width: 120px; - background-color: #dc5f59; - background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); - background-image: -webkit-linear-gradient(top, #dc5f59, #b33630); - background-image: -moz-linear-gradient(top, #dc5f59, #b33630); - background-image: -ms-linear-gradient(top, #dc5f59, #b33630); - background-image: -o-linear-gradient(top, #dc5f59, #b33630); - background-image: linear-gradient(to bottom, #dc5f59, #b33630); + background: #8786b7; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; +} +.openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item { + display: inline-block; } .openerp .oe_loading { display: none; @@ -314,7 +534,7 @@ border-radius: 4px; -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; } .openerp .oe_login input, .openerp .oe_login select { width: 252px; @@ -323,7 +543,7 @@ background: whitesmoke; -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3); - -box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3); -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; @@ -383,7 +603,7 @@ border-radius: 8px; -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); -webkit-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); - -box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); + box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); } .openerp .oe_login .oe_login_pane h2 { margin-top: 0; @@ -427,7 +647,7 @@ border-radius: 4px; -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); } .openerp .oe_login_invalid .oe_login_error_message { display: inline-block; @@ -464,10 +684,7 @@ background-image: -o-linear-gradient(top, #646060, #262626); background-image: linear-gradient(to bottom, #646060, #262626); } -.openerp .oe_topbar .oe_topbar_item li { - float: left; -} -.openerp .oe_topbar .oe_topbar_item li a { +.openerp .oe_topbar .oe_topbar_item { display: block; padding: 5px 10px 7px; line-height: 20px; @@ -476,12 +693,12 @@ vertical-align: top; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } -.openerp .oe_topbar .oe_topbar_item li a:hover { +.openerp .oe_topbar .oe_topbar_item:hover { background: #303030; color: white; -moz-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; -webkit-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; - -box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; + box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; } .openerp .oe_topbar .oe_topbar_item .oe_active { background: #303030; @@ -489,33 +706,53 @@ color: white; -moz-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; -webkit-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; - -box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; + box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; } .openerp .oe_topbar .oe_topbar_avatar { width: 24px; height: 24px; margin: -2px 2px 0 0; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; } .openerp .oe_topbar .oe_topbar_avatar { vertical-align: top; } -.openerp .oe_topbar .oe_dropdown_toggle:after { - width: 0; - height: 0; - display: inline-block; - content: "&darr"; - text-indent: -99999px; - vertical-align: top; - margin-top: 8px; - margin-left: 4px; - border-left: 4px solid transparent; - border-right: 4px solid transparent; +.openerp .oe_topbar .oe_dropdown_arrow:after { border-top: 4px solid white; - filter: alpha(opacity=50); - opacity: 0.5; +} +.openerp .oe_topbar .oe_dropdown_menu { + background: #333333; + background: rgba(37, 37, 37, 0.9); + border-color: #999999; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 0 1px 1px; + -moz-border-radius: 0 0 6px 6px; + -webkit-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.openerp .oe_topbar .oe_dropdown_menu li { + float: none; +} +.openerp .oe_topbar .oe_dropdown_menu li a { + color: #eeeeee; +} +.openerp .oe_topbar .oe_dropdown_menu li a:hover { + background-color: #292929; + background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919)); + background-image: -webkit-linear-gradient(top, #292929, #191919); + background-image: -moz-linear-gradient(top, #292929, #191919); + background-image: -ms-linear-gradient(top, #292929, #191919); + background-image: -o-linear-gradient(top, #292929, #191919); + background-image: linear-gradient(to bottom, #292929, #191919); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } .openerp .oe_leftbar { display: none; @@ -524,7 +761,6 @@ border-right: 1px solid #afafb6; text-shadow: 0 1px 1px white; padding-bottom: 16px; - line-height: 18px; } .openerp a.oe_logo { width: 220px; @@ -565,66 +801,8 @@ list-style-type: none; float: left; } -.openerp .oe_user_menu .oe_dropdown { - position: relative; -} -.openerp .oe_user_menu .oe_dropdown_options { - float: left; - background: #333333; - background: rgba(37, 37, 37, 0.9); - display: none; - position: absolute; - top: 32px; +.openerp .oe_user_menu .oe_dropdown_menu { right: -1px; - border: 0; - z-index: 900; - margin-left: 0; - margin-right: 0; - padding: 6px 0; - zoom: 1; - border-color: #999999; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 0 1px 1px; - -moz-border-radius: 0 0 6px 6px; - -webkit-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.openerp .oe_user_menu .oe_dropdown_options li { - float: none; - display: block; - background-color: none; -} -.openerp .oe_user_menu .oe_dropdown_options li a { - white-space: nowrap; - display: block; - padding: 4px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #eeeeee; -} -.openerp .oe_user_menu .oe_dropdown_options li a:hover { - background-color: #292929; - background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919)); - background-image: -webkit-linear-gradient(top, #292929, #191919); - background-image: -moz-linear-gradient(top, #292929, #191919); - background-image: -ms-linear-gradient(top, #292929, #191919); - background-image: -o-linear-gradient(top, #292929, #191919); - background-image: linear-gradient(to bottom, #292929, #191919); - -moz-box-shadow: none; - -webkit-box-shadow: none; - -box-shadow: none; -} -.openerp .oe_user_menu .oe_dropdown_options li hr { - border-top: 1px solid #999999; - border-bottom: 0; } .openerp .oe_systray > div { float: left; @@ -633,61 +811,6 @@ .openerp .oe_systray { float: right; } -.openerp .oe_systray .oe_systray_dropdown { - position: relative; -} -.openerp .oe_systray .oe_systray_dropdown:hover .oe_systray_dropdown_options { - display: block; -} -.openerp .oe_systray .oe_systray_dropdown_options { - background: #333333; - background: rgba(37, 37, 37, 0.9); - display: none; - position: absolute; - z-index: 900; - border: 0; - margin-left: 0; - margin-right: 0; - padding: 6px 0; - border-color: #999999; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 0 1px 1px; - -moz-border-radius: 0 0 6px 6px; - -webkit-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.openerp .oe_systray .oe_systray_dropdown_options li { - float: none; - display: block; - background-color: none; -} -.openerp .oe_systray .oe_systray_dropdown_options li a { - display: block; - padding: 4px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #eeeeee; -} -.openerp .oe_systray .oe_systray_dropdown_options li a:hover { - background-color: #292929; - background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919)); - background-image: -webkit-linear-gradient(top, #292929, #191919); - background-image: -moz-linear-gradient(top, #292929, #191919); - background-image: -ms-linear-gradient(top, #292929, #191919); - background-image: -o-linear-gradient(top, #292929, #191919); - background-image: linear-gradient(to bottom, #292929, #191919); - -moz-box-shadow: none; - -webkit-box-shadow: none; - -box-shadow: none; -} .openerp .oe_menu { float: left; padding: 0; @@ -710,7 +833,7 @@ color: white; -moz-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; -webkit-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; - -box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; + box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; } .openerp .oe_menu .oe_active { background: #303030; @@ -718,25 +841,7 @@ color: white; -moz-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; -webkit-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; - -box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; -} -.openerp .oe_menu_more_container { - position: relative; -} -.openerp .oe_menu_more_container .oe_menu_more { - position: absolute; - padding: 0; - background-color: #646060; - z-index: 1; - border: 1px solid black; - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; -} -.openerp .oe_menu_more_container .oe_menu_more li { - float: none; -} -.openerp .oe_menu_more_container .oe_menu_more li a { - white-space: nowrap; + box-shadow: 0 1px 2px rgba(255, 255, 255, 0.3) inset; } .openerp .oe_secondary_menu_section { font-weight: bold; @@ -774,15 +879,15 @@ border-radius: 4px; -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); - -box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); } .openerp .oe_secondary_submenu .oe_menu_counter { float: right; background: #8a89ba; color: #eeeeee; - font-size: 12px; + font-size: 10px; border: 1px solid lightgray; - padding: 0px 4px 0px 4px; + padding: 2px 4px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); margin: 0px; -moz-border-radius: 4px; @@ -796,7 +901,7 @@ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); - -box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); } .openerp .oe_secondary_submenu .oe_active a { color: white; @@ -807,7 +912,7 @@ text-shadow: 0 1px 1px white; -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - -box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } .openerp .oe_secondary_submenu .oe_active .oe_menu_counter { background: #eeeeee; @@ -846,181 +951,82 @@ .openerp .oe_application a:hover { text-decoration: underline; } -.openerp .oe-view-manager-header { - border-top: 1px solid #cacaca; - border-bottom: 1px solid #cacaca; - background-color: #fcfcfc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); - -box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); -} -.openerp .oe-view-manager-header h2 { - float: left; - font-size: 18px; - margin: 1px 0; -} -.openerp .oe-view-manager-header h2 a { - color: #8a89ba; -} -.openerp .oe-view-manager-header .buttons { - padding-right: 8px; -} -.openerp .oe-view-manager-header .buttons li { - float: left; - margin-right: 12px; -} -.openerp .oe-view-manager-header .filter { - vertical-align: top; -} -.openerp .oe-view-manager-header .filter li { - height: 24px; - line-height: 24px; - padding: 0 8px; -} -.openerp .oe-view-manager-header .header-row { - height: 26px; - line-height: 26px; - margin: 8px; - clear: both; - text-shadow: 0 1px 1px white; -} -.openerp .oe-view-manager-header .header-row .dropdown-toggle:after { - margin-top: 7px; - margin-left: 6px; - border-top-color: #404040; -} -.openerp .oe-view-manager-header .oe_vm_switch li { - padding-left: 1px; - text-align: center; - width: 24px; - height: 24px; - line-height: 24px; -} -.openerp .oe-view-manager-header .pagination li { - height: 24px; - line-height: 24px; - padding: 0 8px; -} -.openerp .oe-view-manager-header .button-group { - display: inline-block; - border: 1px solid #ababab; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; -} -.openerp .oe-view-manager-header .button-group li { - float: left; - border-right: 1px solid #ababab; -} -.openerp .oe-view-manager-header .button-group li:last-child { - border: none; +.openerp .oe_application > div { + height: 100%; } -.openerp .oe-view-manager-header .button-group a { - color: #4c4c4c; +.openerp .oe_view_manager .oe_view_manager_body { + height: inherit; } -.openerp .oe-view-manager-header .button-group a:hover { - text-decoration: none; +.openerp .oe_view_manager .oe_view_manager_view_kanban { + height: inherit; } -.openerp .oe-view-manager-header .button-group .active { +.openerp .oe_view_manager .oe_view_manager_header { width: 100%; - background: #999999; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - color: white; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } -.openerp .oe_view_manager_header { - width: 100%; - border-top: 1px solid #cacaca; - border-bottom: 1px solid #cacaca; - background-color: #fcfcfc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); - -box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); -} -.openerp .oe_view_manager_header .oe_header_row { +.openerp .oe_view_manager .oe_view_manager_header .oe_header_row { clear: both; text-shadow: 0 1px 1px white; } -.openerp .oe_view_manager_header .oe_header_row td { - padding: 8px; -} -.openerp .oe_view_manager_header .oe_header_row:last-child td { +.openerp .oe_view_manager .oe_view_manager_header .oe_header_row:last-child td { padding-top: 0; } -.openerp .oe_view_manager_header .oe_header_row:first-child td { - padding-top: 8px; -} -.openerp .oe_view_manager_header .oe_view_manager_sidebar { +.openerp .oe_view_manager .oe_view_manager_header .oe_view_manager_sidebar { margin: 0px auto; width: 400px; text-align: center; } -.openerp .oe_view_manager_header td { +.openerp .oe_view_manager .oe_view_manager_header td { line-height: 26px; } -.openerp .oe_view_manager_header h2 { +.openerp .oe_view_manager .oe_view_manager_header h2 { font-size: 18px; margin: 0; float: left; } -.openerp .oe_view_manager_header h2 a { +.openerp .oe_view_manager .oe_view_manager_header h2 a { color: #8a89ba; } -.openerp .oe_view_manager_header .oe_button_group { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group { display: inline-block; border: 1px solid #ababab; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } -.openerp .oe_view_manager_header .oe_button_group li { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group li { float: left; border-right: 1px solid #ababab; } -.openerp .oe_view_manager_header .oe_button_group li:last-child { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group li:last-child { border: none; } -.openerp .oe_view_manager_header .oe_button_group a { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group a { color: #4c4c4c; } -.openerp .oe_view_manager_header .oe_button_group a:hover { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group a:hover { text-decoration: none; } -.openerp .oe_view_manager_header .oe_button_group .active { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group .active { background: #999999; -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; } -.openerp .oe_view_manager_header .oe_button_group .active a { +.openerp .oe_view_manager .oe_view_manager_header .oe_button_group .active a { color: white; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } -.openerp .oe_view_manager_header .oe_view_manager_buttons { +.openerp .oe_view_manager .oe_view_manager_header .oe_view_manager_buttons { white-space: nowrap; } -.openerp .oe_view_manager_pager { +.openerp .oe_view_manager .oe_view_manager_pager { line-height: 26px; } -.openerp .oe_pager_value { +.openerp .oe_view_manager .oe_pager_value { float: left; margin-right: 8px; } -.openerp .oe_pager_group { +.openerp .oe_view_manager .oe_pager_group { float: left; height: 24px; line-height: 24px; @@ -1031,47 +1037,50 @@ -webkit-border-radius: 5px; border-radius: 5px; } -.openerp .oe_pager_group li { +.openerp .oe_view_manager .oe_pager_group li { height: 24px; line-height: 24px; padding: 0; float: left; border-right: 1px solid #ababab; } -.openerp .oe_pager_group li:last-child { +.openerp .oe_view_manager .oe_pager_group li:last-child { border: none; } -.openerp .oe_pager_group a { +.openerp .oe_view_manager .oe_pager_group a { color: #4c4c4c; padding: 0 8px; } -.openerp .oe_pager_group a:hover { +.openerp .oe_view_manager .oe_pager_group a:hover { text-decoration: none; } -.openerp .oe_pager_group .active { +.openerp .oe_view_manager .oe_pager_group .active { background: #999999; -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; } -.openerp .oe_pager_group .active a { +.openerp .oe_view_manager .oe_pager_group .active a { color: white; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } -.openerp .oe_view_manager_switch li { +.openerp .oe_view_manager .oe_view_manager_switch li { text-align: center; width: 24px; height: 24px; line-height: 16px; } -.openerp .oe_view_manager_switch li a { +.openerp .oe_view_manager .oe_view_manager_switch li a { position: relative; } -.openerp .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager_switch .oe_vm_switch_tree:after { +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after { padding: 2px; content: "i"; } -.openerp .oe_view_manager_switch .oe_vm_switch_graph:after { +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after { + content: "m"; +} +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after { font-family: "mnmliconsRegular" !important; font-size: 21px; font-weight: 300 !important; @@ -1079,7 +1088,7 @@ top: -2px; position: relative; } -.openerp .oe_view_manager_switch .oe_vm_switch_gantt:after { +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after { font-family: "mnmliconsRegular" !important; font-size: 21px; font-weight: 300 !important; @@ -1087,85 +1096,40 @@ top: -2px; position: relative; } -.openerp .oe_view_manager_switch .oe_vm_switch_calendar:after { +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after { content: "P"; } -.openerp .oe_view_manager_switch .oe_vm_switch_kanban:after { +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after { content: "k"; } -.openerp .oe_view_manager_switch .oe_vm_switch_diagram:after { +.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after { content: "f"; } -.openerp .oe_form_dropdown_section { - position: relative; - display: inline-block; +.openerp .oe_view_manager_global { + height: 100%; } -.openerp .oe_dropdown_toggle:after { - width: 0; - height: 0; - display: inline-block; - content: "&darr"; - text-indent: -99999px; - vertical-align: top; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid white; - filter: alpha(opacity=50); - opacity: 0.5; - margin-top: 7px; - margin-left: 6px; - border-top-color: #404040; +.openerp .oe_view_manager_global > .oe_view_manager_header { + border-top: 1px solid #cacaca; + border-bottom: 1px solid #cacaca; + background-color: #fcfcfc; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); + background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); + background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); + background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); + background-image: -o-linear-gradient(top, #fcfcfc, #dedede); + background-image: linear-gradient(to bottom, #fcfcfc, #dedede); + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); } -.openerp .oe_dropdown_menu { - display: none; - position: absolute; - top: 28px; - left: 0px; +.openerp .oe_view_manager_global > .oe_view_manager_header .oe_header_row td { padding: 8px; - border: 1px solid #afafb6; - min-width: 120px; - overflow-x: hidden; - z-index: 900; - text-align: left; - background: white; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); -} -.openerp .oe_dropdown_menu li { - list-style-type: none; - float: none; - display: block; - background-color: none; } -.openerp .oe_dropdown_menu li a { - display: block; - padding: 3px 6px; - clear: both; - font-weight: normal; - line-height: 14px; - color: #4c4c4c; - text-decoration: none; - cursor: pointer; -} -.openerp .oe_dropdown_menu li a:hover { - text-decoration: none; - background-color: #f0f0fa; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); - background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); - -moz-box-shadow: none; - -webkit-box-shadow: none; - -box-shadow: none; +.openerp .oe_view_manager_global > .oe_view_manager_header .oe_header_row:first-child td { + padding-top: 8px; } -.openerp .oe_sidebar { - white-space: nowrap; +.openerp .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager { + display: none !important; } .openerp .oe_searchview { cursor: text; @@ -1181,23 +1145,19 @@ border-radius: 13px; -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; } .openerp .oe_searchview input, .openerp .oe_searchview textarea { padding: 3px; height: 14px; font-size: 11px; line-height: 18px; - border: 1px solid #cccccc; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; } .openerp .oe_searchview.oe_focused { border-color: #a6a6fe; -moz-box-shadow: 0 1px 2px #a6a6fe inset; -webkit-box-shadow: 0 1px 2px #a6a6fe inset; - -box-shadow: 0 1px 2px #a6a6fe inset; + box-shadow: 0 1px 2px #a6a6fe inset; } .openerp .oe_searchview .oe_searchview_clear { cursor: pointer; @@ -1280,7 +1240,7 @@ border-color: #a6a6fe; -moz-box-shadow: 0 0 3px 1px #a6a6fe; -webkit-box-shadow: 0 0 3px 1px #a6a6fe; - -box-shadow: 0 0 3px 1px #a6a6fe; + box-shadow: 0 0 3px 1px #a6a6fe; } .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values { background: #f0f0fa; @@ -1332,7 +1292,7 @@ } .openerp .oe_searchview .oe_searchview_drawer { position: absolute; - z-index: 1; + z-index: 100; margin-top: 4px; top: 100%; right: -1px; @@ -1346,7 +1306,7 @@ border-radius: 4px; -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } .openerp .oe_searchview .oe_searchview_drawer > div { border-top: 1px solid #cccccc; @@ -1384,7 +1344,7 @@ padding: 0 2px; -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; @@ -1394,8 +1354,9 @@ width: 100%; } .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div { - -moz-box-sizing: border-box; -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; box-sizing: border-box; display: table-cell; width: 50%; @@ -1485,14 +1446,12 @@ .openerp .oe_searchview .oe_searchview_drawer .oe_opened form { display: block; } -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete { - position: absolute; - left: 4px; - top: 3px; -} .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop { + display: inline-block; width: 12px; height: 12px; + line-height: 12px; + padding: 1px; color: #8786b7; line-height: 8px; text-align: center; @@ -1508,6 +1467,23 @@ -webkit-border-radius: 2px; border-radius: 2px; } +.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete { + display: none; + position: absolute; + bottom: 1px; + right: 4px; +} +.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete { + display: inline-block; +} +.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after { + content: ","; + font-family: "entypoRegular" !important; + font-size: 22px; + font-weight: 300 !important; + margin: 0 0 0 4px; + padding: 0; +} .openerp .oe_view_nocontent > img { float: left; margin: 1.5em; @@ -1518,23 +1494,12 @@ max-width: 700px; font-size: 125%; } -.openerp .oe_view_topbar { - border-bottom: 1px solid #cacaca; - background-color: #fcfcfc; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); - padding: 0 8px; - line-height: 30px; -} .openerp .oe_formview { background: white; } -.openerp .oe_form_header { - padding: 8px; +.openerp .oe_form_dropdown_section { + position: relative; + display: inline-block; } .openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea { background-color: #ff6666 !important; @@ -1543,17 +1508,34 @@ .openerp .oe_form_button_save_dirty { color: white; background: #dc5f59; - background: -moz-linear-gradient(#dc5f59, #b33630); - background: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); - background: -webkit-linear-gradient(#dc5f59, #b33630); + background-color: #dc5f59; + background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); + background-image: -webkit-linear-gradient(top, #dc5f59, #b33630); + background-image: -moz-linear-gradient(top, #dc5f59, #b33630); + background-image: -ms-linear-gradient(top, #dc5f59, #b33630); + background-image: -o-linear-gradient(top, #dc5f59, #b33630); + background-image: linear-gradient(to bottom, #dc5f59, #b33630); -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; font-weight: bold; } .openerp .oe_form_button_save_dirty:hover { background: #ed6f6a; } +.openerp .oe_form_invisible { + display: none !important; +} +.openerp .oe_form_editable .oe_edit_only { + display: none !important; +} +.openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { + display: none !important; +} +.openerp .oe_form_nosheet > *:not(header) { + margin-left: 10px !important; + margin-right: 10px !important; +} .openerp .oe_form header { position: relative; border-bottom: 1px solid #cacaca; @@ -1567,124 +1549,183 @@ padding: 0 8px; line-height: 30px; } -.openerp .oe_form header button { - font-size: 12px; - float: left; - height: 24px !important; - line-height: 24px; - vertical-align: top; - padding: 0 10px; - margin: 3px 4px 3px 0; +.openerp .oe_form header ul { + display: inline-block; + float: right; } -.openerp .oe_form header button span.i { - line-height: 20px; - height: 24px; +.openerp .oe_form footer { + min-width: 650px; + max-width: 960px; + margin: 0 auto; } -.openerp .oe_form header ul { +.openerp ul.oe_form_steps { height: 30px; padding: 0; margin: 0; text-shadow: 0 1px 1px white; - border-left: 1px solid #cacaca; - border-right: 1px solid #cacaca; } -.openerp .oe_form header ul li { +.openerp ul.oe_form_steps img { + vertical-align: top; + margin-left: 8px; +} +.openerp ul.oe_form_steps li { + border-right: none; padding: 0; margin: 0; float: left; vertical-align: top; - border-right: 1px solid #cacaca; height: 30px; - padding: 0 12px; + padding: 0 0 0 12px; } -.openerp .oe_form header ul li:first-child { +.openerp ul.oe_form_steps li:first-child { border-left: 1px solid #cacaca; } -.openerp .oe_form header ul li a { +.openerp ul.oe_form_steps li:last-child { + margin-right: 12px; + padding-right: 12px; + border-right: 1px solid #cacaca; +} +.openerp ul.oe_form_steps li a { color: #4c4c4c; } -.openerp .oe_form header ul li a:hover { +.openerp ul.oe_form_steps li a:hover { color: black; } -.openerp .oe_form header .oe_form_steps { - display: inline-block; - float: right; +.openerp ul.oe_form_steps .oe_form_steps_active { + font-weight: bold; + color: #b33630; } -.openerp .oe_form header .oe_form_steps img { - margin: 0 8px; - vertical-align: top; +.openerp .oe_form_subtotal_footer { + width: auto; + float: right; } -.openerp .oe_form header .oe_form_steps li { - border-right: none; +.openerp .oe_form_subtotal_footer td.oe_form_group_cell { + text-align: right; padding: 0; } -.openerp .oe_form header .oe_form_steps li:first-child { - margin-left: 12px; - border-left: none; +.openerp .oe_form_subtotal_footer td.oe_form_group_cell_label { + border: none; } -.openerp .oe_form header .oe_form_steps li:last-child { - margin-right: 12px; +.openerp .oe_form_subtotal_footer .oe_form_field { + width: auto !important; } -.openerp .oe_form header .oe_form_steps_active { +.openerp .oe_form_subtotal_footer .oe_form_subtotal_footer_separator { + border-top: 1px solid #cacaca; + font-size: 120%; font-weight: bold; - color: #b33630; -} -.openerp .oe_form_readonly button.oe_form_button_hi { - color: white; - background: #dc5f59; - background: -moz-linear-gradient(#dc5f59, #b33630); - background: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); - background: -webkit-linear-gradient(#dc5f59, #b33630); - -moz-box-shadow: none; - -webkit-box-shadow: none; - -box-shadow: none; } -.openerp .oe_form_readonly button.oe_form_button_hi:hover { - background: #df6b66; - background: -moz-linear-gradient(#df6b66, #bf3a33); - background: -webkit-gradient(linear, left top, left bottom, from(#df6b66), to(#bf3a33)); - background: -webkit-linear-gradient(#df6b66, #bf3a33); - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); - -box-shadow: 0 0 1px rgba(0, 0, 0, 0.2); +.openerp .oe_form_subtotal_footer label.oe_form_subtotal_footer_separator { + font-weight: bold !important; + padding: 2px 8px 2px 0px !important; } .openerp .oe_application .oe_form_sheetbg { background: url(/web/static/src/img/form_sheetbg.png); padding: 8px 0; border-bottom: 1px solid #dddddd; } -.openerp .oe_application .oe_form_sheet_width, .openerp .oe_application footer { +.openerp .oe_application .oe_form_sheet_width { min-width: 650px; max-width: 960px; margin: 0 auto; } .openerp .oe_application .oe_form_sheet { - padding: 18px; background: white; min-height: 330px; + padding: 16px; border: 1px solid #afafb6; -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - -box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); } -.openerp .oe_form_invisible { - display: none; +.openerp .oe_application .oe_form_sheet .ui-tabs { + margin: 0 -16px; } -.openerp .oe_form_editable .oe_form_editable_hidden { - display: none; +.openerp .oe_application .oe_form_sheet .oe_notebook_page { + padding: 0 16px; } -.openerp .oe_form_readonly .oe_form_readonly_hidden, .openerp .oe_form_readonly .oe_form_field:empty { - display: none; +.openerp .oe_form td.oe_form_group_cell_label { + border-right: 1px solid #dddddd; + padding: 2px 0px 2px 0px; +} +.openerp .oe_form td.oe_form_group_cell_label label { + line-height: 18px; + display: block; + min-width: 120px; +} +.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell { + padding-left: 8px; +} +.openerp .oe_form .oe_form_group { + width: 100%; + margin: 4px 0 4px 0; +} +.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] { + font-weight: bold; + white-space: nowrap; + padding-right: 8px; +} +.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span { + font-size: 80%; + color: darkGreen; + vertical-align: top; + position: relative; + top: -4px; + padding: 0 2px; +} +.openerp .oe_horizontal_border { + border-bottom: 1px solid black; +} +.openerp .oe_horizontal_separator { + font-weight: bold; + font-size: 20px; + margin: 8px 0px 8px 0px; + color: #aaaabb; +} +.openerp .oe_horizontal_separator:empty { + height: 5px; +} +.openerp .oe_vertical_separator { + border-left: 1px solid #666666; + padding: 0 4px 0 4px; +} +.openerp .oe_form_field_progressbar { + display: inline-block; + min-width: 70px; +} +.openerp .oe_form_field_progressbar.ui-progressbar { + height: 22px; + font-size: 10px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #999999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: white; + min-width: 50px; +} +.openerp .oe_form_field_progressbar.ui-progressbar span { + position: absolute; + margin-left: 10px; + font-weight: bold; +} +.openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header { + background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; } .openerp .oe_form .oe_form_field_text { width: 100%; } .openerp .oe_form .oe_form_field_char input, -.openerp .oe_form .oe_form_field_text textarea, .openerp .oe_form .oe_form_field_url input, +.openerp .oe_form .oe_form_field_text textarea, .openerp .oe_form .oe_form_field_selection select { width: inherit; } +.openerp .oe_form .oe_form_sheet textarea { + width: 500px; +} .openerp .oe_form .oe_form_field_float input { width: 100px; } @@ -1701,26 +1742,6 @@ height: inherit !important; font-size: inherit; } -.openerp .oe_form_nosheet > *:not(.oe_form_topbar) { - margin-left: 10px !important; - margin-right: 10px !important; -} -.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] { - font-weight: bold; - white-space: nowrap; - padding-right: 8px; -} -.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span { - font-size: 80%; - color: darkGreen; - vertical-align: top; - position: relative; - top: -4px; - padding: 0 2px; -} -.openerp .oe_form .oe_form_field_text textarea { - resize: vertical; -} .openerp .oe_form .oe_form_field { width: 100%; display: inline-block; @@ -1742,39 +1763,20 @@ .openerp .oe_form .oe_form_field_datetime { width: 11em; } -.openerp .oe_form .oe_form_inline { - width: auto; -} -.openerp .oe_form input[type="text"], -.openerp .oe_form input[type="password"], -.openerp .oe_form input[type="file"], -.openerp .oe_form select { +.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select { height: 22px; padding-top: 2px; } -.openerp .oe_form input[type="text"], -.openerp .oe_form input[type="password"], -.openerp .oe_form input[type="file"], -.openerp .oe_form select, -.openerp .oe_form textarea { - -moz-box-sizing: border-box; +.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea { -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; - padding: 0 2px; - border: 1px solid #999999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; background: white; min-width: 70px; color: #1f1f1f; } -.openerp .oe_form input[readonly], -.openerp .oe_form select[readonly], -.openerp .oe_form textarea[readonly], -.openerp .oe_form input[disabled], -.openerp .oe_form select[disabled] { +.openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] { background: #e5e5e5 !important; color: #666666; } @@ -1784,16 +1786,12 @@ padding-left: 8px; -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; } -.openerp .oe_form .oe_form_field_many2one input, -.openerp .oe_form .oe_form_field_binary input, -.openerp .oe_form .oe_form_field_binary input, -.openerp .oe_form .oe_form_field_email input, -.openerp .oe_form .oe_form_field_url input { +.openerp .oe_form .oe_form_field_many2one input, .openerp .oe_form .oe_form_field_binary input, .openerp .oe_form .oe_form_field_binary input, .openerp .oe_form .oe_form_field_url input { border-right: none; -webkit-border-top-right-radius: 0px; -webkit-border-bottom-right-radius: 0px; @@ -1802,7 +1800,6 @@ border-top-right-radius: 0px; border-bottom-right-radius: 0px; } -.openerp .oe_form .oe_form_field_email button img, .openerp .oe_form .oe_form_field_url button img { vertical-align: top; } @@ -1821,6 +1818,9 @@ } .openerp .oe_form .oe_form_field_many2manytags .oe_form_field_many2manytags_box { border-radius: 2px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; box-sizing: border-box; position: relative; float: left; @@ -1862,19 +1862,14 @@ right: 5px; top: 3px; } -.openerp .oe_form .oe_form_group_cell .oe_kanban_view { - position: static; -} .openerp .oe_form .oe_form_field_with_button input { width: 100%; } .openerp .oe_form .oe_form_field_with_button > .oe_button { float: right; - -webkit-border-top-left-radius: 0px; - -webkit-border-bottom-left-radius: 0px; - -moz-border-radius-topleft: 0px; - -moz-border-radius-bottomleft: 0px; - border-top-left-radius: 0px; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; border-bottom-left-radius: 0px; height: 22px; } @@ -1882,46 +1877,14 @@ position: relative; overflow: hidden; } -.openerp .oe_form .oe_form_title { - width: 55%; -} -.openerp .oe_form .oe_form_title:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} -.openerp .oe_form .oe_form_button_box { - width: 200px; - text-align: center; -} -.openerp .oe_form .oe_form_group { - margin: 5px 0px 5px 0px; -} -.openerp .oe_form .oe_form_group_cell .oe_kanban_view { - position: static; -} -.openerp .oe_form .oe_form_button.oe_button { - height: 22px; - white-space: nowrap; -} -.openerp .oe_form .oe_form_button.oe_button span { - position: relative; - vertical-align: top; -} -.openerp .oe_form .oe_form_button > img { - vertical-align: -3px; - padding: 0 2px; -} -.openerp .oe_form .oe-binary-file-set { +.openerp .oe_hidden_input_file { overflow: hidden; position: relative; display: inline-block; width: 45px; height: 30px; } -.openerp .oe_form input.oe-binary-file { +.openerp .oe_hidden_input_file input.oe-binary-file { z-index: 0; line-height: 0; font-size: 12px; @@ -1941,210 +1904,90 @@ width: auto; vertical-align: top; } -.openerp .oe_form .oe_form_field_image > img { - min-width: 100px; -} .openerp .oe_form .oe_form_field_image .oe_form_field_image_controls { position: absolute; top: 1px; padding: 3px 0 0 0; margin: 0 1px; - filter: alpha(opacity=70); - opacity: 0.7; + display: none; width: 99%; text-align: center; background: url(/web/static/src/img/form_sheetbg.png); border-bottom: 1px dotted black; - -moz-box-sizing: border-box; -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } .openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls { - filter: alpha(opacity=100); - opacity: 1; -} -.openerp .oe_horizontal_border { - border-bottom: 1px solid black; -} -.openerp .oe_horizontal_separator { - font-weight: bold; - font-size: 20px; - margin: 20px 0px 10px 0px; - color: #aaaabb; -} -.openerp .oe_horizontal_separator:empty { - height: 5px; -} -.openerp .oe_vertical_separator { - border-left: 1px solid #666666; - padding: 0 4px 0 4px; -} -.openerp .oe_form_notebook { - margin: 8px 0; - padding: 0 8px; - list-style: none; - zoom: 1; -} -.openerp .oe_form_notebook:before, .openerp .oe_form_notebook:after { - display: table; - content: ""; - zoom: 1; -} -.openerp .oe_form_notebook:after { - clear: both; -} -.openerp .oe_form_notebook > li { - float: left; -} -.openerp .oe_form_notebook > li > a { display: block; - color: #4c4c4c; -} -.openerp .oe_form_notebook { - border-color: #dddddd; - border-style: solid; - border-width: 0 0 1px; } -.openerp .oe_form_notebook > li { +.openerp .oe_form_field_many2one td:first-child { position: relative; - margin-bottom: -1px; -} -.openerp .oe_form_notebook > li > a { - padding: 0 12px; - margin-right: 2px; - line-height: 30px; - border: 1px solid transparent; - -moz-border-radius: 4px 4px 0 0; - -webkit-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; } -.openerp .oe_form_notebook > li > a:hover { - text-decoration: none; - background-color: #eeeeee; - border-color: #eeeeee #eeeeee #dddddd; -} -.openerp .oe_form_notebook > li.ui-state-active > a, .openerp .oe_form_notebook > li.ui-state-active > a:hover { - background-color: white; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} -.openerp .oe_form_notebook_page { - padding: 0; -} -.openerp div.ui-tabs { - padding: 3px 0px 3px 0px; +.openerp .oe_form_field_many2one span.oe-m2o-drop-down-button { + position: absolute; + top: 3px; + right: 2px; } -.openerp .ui-tabs-hide { +.openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page { display: none; } -.openerp .oe_form .oe_form_field_progressbar { - display: inline-block; - min-width: 70px; -} -.openerp .oe_form .oe_form_field_progressbar.ui-progressbar { - height: 22px; - font-size: 10px; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #999999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: white; - min-width: 50px; -} -.openerp .oe_form .oe_form_field_progressbar.ui-progressbar span { - position: absolute; - margin-left: 10px; - font-weight: bold; -} -.openerp .oe_form .oe_form_field_progressbar.ui-progressbar .ui-widget-header { - background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; +.openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top { + display: none; } -.openerp .oe_form .oe_view_manager_header2 td { +.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td { padding: 0px 8px; line-height: 16px; } -.openerp .oe_form .oe_view_manager_header2 td .oe_i { +.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i { font-size: 13px; } -.openerp .oe_form .oe_view_manager_header2 td .oe_pager_group { +.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group { height: auto; line-height: 16px; } -.openerp .oe_form .oe_view_manager_header2 td .oe_pager_group li { +.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li { height: auto; line-height: 16px; } -.openerp .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager { +.openerp .oe_form .oe_form_field_many2many > .oe-listview .oe_list_pager_single_page { display: none; } -.openerp .oe_form td.oe_form_group_cell_label { - border-right: 1px solid #dddddd; - padding: 2px 0px 2px 0px; -} -.openerp .oe_form td.oe_form_group_cell_label label { - line-height: 18px; - display: block; - min-width: 120px; -} -.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell { - padding-left: 8px; -} -.openerp .oe_form .oe_form_subtotal_footer { - width: auto; - float: right; -} -.openerp .oe_form .oe_form_subtotal_footer td.oe_form_group_cell { - text-align: right; - padding: 0; -} -.openerp .oe_form .oe_form_subtotal_footer td.oe_form_group_cell_label { - border: none; -} -.openerp .oe_form .oe_form_subtotal_footer .oe_form_field { - width: auto !important; -} -.openerp .oe_form .oe_form_subtotal_footer .oe_form_subtotal_footer_separator { - border-top: 1px solid #cacaca; - font-size: 120%; - font-weight: bold; -} -.openerp .oe_form .oe_form_subtotal_footer label.oe_form_subtotal_footer_separator { - font-weight: bold !important; - padding: 2px 8px 2px 0px !important; -} .openerp .oe-listview-content { width: 100%; } +.openerp .oe-listview-content td:first-child:after, .openerp .oe-listview-content th:first-child:after { + border-width: 0; +} .openerp .oe-listview-content > thead { border-bottom: 2px solid #cacaca; background: #eeeeee; vertical-align: top; } -.openerp .oe-listview-content > thead td, .openerp .oe-listview-content > thead th { +.openerp .oe-listview-content > thead th { + position: relative; +} +.openerp .oe-listview-content td, .openerp .oe-listview-content th { padding: 3px 6px; line-height: 18px; } -.openerp .oe-listview-content > thead th:after { +.openerp .oe-listview-content th:after { + position: absolute; + right: 6px; content: ""; - float: right; margin-top: 7px; border-width: 0 4px 4px; border-style: solid; border-color: black transparent; visibility: hidden; } -.openerp .oe-listview-content > thead th.sortup:after { +.openerp .oe-listview-content th.sortup:after { visibility: visible; filter: alpha(opacity=60); opacity: 0.6; } -.openerp .oe-listview-content > thead th.sortdown:after { +.openerp .oe-listview-content th.sortdown:after { border-bottom: none; border-left: 4px solid transparent; border-right: 4px solid transparent; @@ -2152,7 +1995,7 @@ visibility: visible; -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; filter: alpha(opacity=60); opacity: 0.6; } @@ -2175,7 +2018,7 @@ padding: 0; -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; + box-shadow: none; } .openerp .oe-listview-content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe-listview-content > tbody > tr th.oe_list_checkbox:first-child { width: 17px; @@ -2221,26 +2064,26 @@ .openerp .oe_trad_field.touched { border: 1px solid green !important; } -.openerp.oe_tooltip { - font-size: 12px; -} -.openerp.oe_tooltip .oe_tooltip_string { - color: #ffdd55; - font-weight: bold; - font-size: 13px; -} -.openerp.oe_tooltip .oe_tooltip_help { - white-space: pre-wrap; +.openerp .oe_view_editor { + width: 100%; + border-collapse: collapse; + margin-left: -12px; + width: 100%; + background-color: white; + border-spacing: 0; } -.openerp.oe_tooltip .oe_tooltip_technical { - padding: 0 0 4px 0; - margin: 5px 0 0 15px; +.openerp .oe_view_editor td { + text-align: center; + white-space: nowrap; + border: 1px solid #d8d8d8; + cursor: pointer; + font-size: 90%; } -.openerp.oe_tooltip .oe_tooltip_technical li { - list-style: circle; +.openerp .oe_view_editor_field td { + border: 0px !important; } -.openerp.oe_tooltip .oe_tooltip_technical_title { - font-weight: bold; +.openerp .oe_view_editor tr:hover { + background-color: #ecebf2; } .openerp .oe_layout_debugging .oe_form_group { outline: 2px dashed green; @@ -2283,28 +2126,6 @@ color: #333333; } -.openerp .oe_view_editor { - width: 100%; - border-collapse: collapse; - margin-left: -12px; - width: 100%; - background-color: white; - border-spacing: 0; -} -.openerp .oe_view_editor td { - text-align: center; - white-space: nowrap; - border: 1px solid #d8d8d8; - cursor: pointer; - font-size: 90%; -} -.openerp .oe_view_editor_field td { - border: 0px !important; -} -.openerp .oe_view_editor tr:hover { - background-color: #ecebf2; -} - .kitten-mode-activated { background-image: url(http://placekitten.com/g/1365/769); background-size: cover; @@ -2313,12 +2134,3 @@ .kitten-mode-activated > * { opacity: 0.7; } - -.openerp .oe_form_field_many2one td:first-child { - position: relative; -} -.openerp .oe_form_field_many2one span.oe-m2o-drop-down-button { - position: absolute; - top: 3px; - right: 2px; -} diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index c4d9d565b8b..0b1d22e5345 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -36,7 +36,6 @@ $colour4: #8a89ba background-image: -o-linear-gradient(top, $startColor, $endColor) /* Opera 11.10+ */ background-image: linear-gradient(to bottom, $startColor, $endColor) - @mixin radial-gradient($gradient) background-position: center center background-image: -webkit-radial-gradient(circle, $gradient) @@ -52,7 +51,7 @@ $colour4: #8a89ba @mixin box-shadow($bsval: 0px 1px 4px #777) -moz-box-shadow: $bsval -webkit-box-shadow: $bsval - -box-shadow: $bsval + box-shadow: $bsval @mixin transition($transval: (border linear 0.2s, box-shadow linear 0.2s)) -webkit-transition: $transval @@ -70,10 +69,12 @@ $colour4: #8a89ba -moz-background-clip: $clip background-clip: $clip -@mixin unscrew-box - -moz-box-sizing: border-box - -webkit-box-sizing: border-box - box-sizing: border-box +@mixin box-sizing($type: content) + // type = border || content || padding + -webkit-box-sizing: #{$type}-box + -moz-box-sizing: #{$type}-box + -ms-box-sizing: #{$type}-box + box-sizing: #{$type}-box // Transforms the (readable) text of an inline element into an mmlicons icon, // allows for actual readable text in-code (and in readers?) with iconic looks @@ -107,7 +108,6 @@ $colour4: #8a89ba text-decoration: none table padding: 0 - font-size: 13px border-collapse: collapse thead font-weight: bold @@ -129,47 +129,19 @@ $colour4: #8a89ba @include vertical-gradient(#f0f0fa, #eeeef6) .zebra tbody tr:hover td @include vertical-gradient(#eee, #dedede) - .numeric - text-align: right - width: 82px - input - text-align: right ul, li, ol margin: 0 padding: 0 li list-style-type: none - input, textarea + input, textarea, select + padding: 4px border: 1px solid #ccc @include radius(3px) - - // }}} - // Generic classes {{{ - .oe_i - font-family: "mnmliconsRegular" !important - font-size: 21px - font-weight: 300 !important - .oe_e - font-family: "entypoRegular" !important - font-size: 34px - font-weight: 300 !important - .oe_left - float: left - margin-right: 8px - .oe_right - float: right - margin-left: 8px - .oe_text_right - text-align: right - .oe_clear - clear: both - .oe_wait - cursor: wait - .oe_fade - color: #888 - //font-size: 12px - .oe_bold - font-weight: bold + img + vertical-align: middle + h4 + margin: 4px 0 // }}} // Button style {{{ a.button:link, a.button:visited, button, input[type='submit'] @@ -210,31 +182,227 @@ $colour4: #8a89ba color: #aaa !important cursor: default text-shadow: 0 1px 1px #fff !important - - button.primary + // }}} + // Jquery ui Overrides {{{ + .ui-widget + font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif + font-size: 13px + .ui-menu + .ui-menu-item + margin: 0 8px 0 0 + padding: 0 0 0 12px + width: auto + a.ui-state-active + background: #f0f0fa + // }}} + // Generic classes {{{ + .oe_i + font-family: "mnmliconsRegular" !important + font-size: 21px + font-weight: 300 !important + .oe_e + font-family: "entypoRegular" !important + font-size: 34px + font-weight: 300 !important + .oe_left + float: left + margin-right: 8px + .oe_right + float: right + margin-left: 8px + .oe_text_right + text-align: right + .oe_clear + clear: both + .oe_wait + cursor: wait + .oe_fade + color: #888 + .oe_bold + font-weight: bold + .oe_inline + width: auto + .oe_highlight color: white + background: #DC5F59 + button.oe_highlight @include vertical-gradient(#dc5f59, #b33630) @include box-shadow(none) - - button.primary:hover - @include vertical-gradient(lighten(#dc5f59, 3%), lighten(#b33630, 3%)) - @include box-shadow(0 0 1px rgba(0,0,0,0.2)) - - button.primary:active + button.oe_highlight:active @include vertical-gradient(#b33630, #dc5f59) @include box-shadow(none) - - button.following - color: white - width: 120px - @include vertical-gradient($colour4, darken($colour4, 3%)) - - button.unfollow + button.oe_highlight:hover + @include vertical-gradient(#DF6B66, #BF3A33) + //@include vertical-gradient(lighten(#dc5f59, 3%), lighten(#b33630, 3%)) + @include box-shadow(0 0 1px rgba(0, 0, 0, 0.2)) + .oe_title + width: 55% + .oe_title:after + content: "." + display: block + height: 0 + clear: both + visibility: hidden + .oe_button_box + width: 200px + text-align: center + .oe_avatar + margin: 0 16px 0 0 + img + height: 50px + @include radius(3px) + @include box-shadow(0 1px 3px rgba(0, 0, 0, 0.3)) + border: none + //.oe_edit_only + // }}} + // Tooltips {{{ + &.oe_tooltip + font-size: 12px + .oe_tooltip_string + color: #FD5 + font-weight: bold + font-size: 13px + .oe_tooltip_help + white-space: pre-wrap + .oe_tooltip_technical + padding: 0 0 4px 0 + margin: 5px 0 0 15px + li + list-style: circle + .oe_tooltip_technical_title + font-weight: bold + // }}} + // Notebook {{{ + .oe_notebook + margin: 8px 0 + padding: 0 16px + list-style: none + zoom: 1 + .oe_notebook:before, .oe_notebook:after + display: table + content: "" + zoom: 1 + .oe_notebook:after + clear: both + .oe_notebook > li + float: left + .oe_notebook > li > a + display: block + color: #4c4c4c + .oe_notebook + border-color: #ddd + border-style: solid + border-width: 0 0 1px + .oe_notebook > li + position: relative + .oe_notebook > li > a + padding: 0 12px + margin-right: 2px + line-height: 30px + border: 1px solid transparent + @include radius(4px 4px 0 0) + .oe_notebook > li > a:hover + text-decoration: none + background-color: #eee + border-color: #eee #eee #ddd + .oe_notebook > li.ui-state-active > a, .oe_notebook > li.ui-state-active > a:hover + background-color: #ffffff + border: 1px solid #ddd + border-bottom-color: transparent + cursor: default + .oe_notebook_page + padding: 0 + div.ui-tabs + padding: 3px 0px 3px 0px + .ui-tabs-hide display: none - color: white - width: 120px - @include vertical-gradient(#dc5f59, #b33630) + // }}} + // Dropdown {{{ + .oe_dropdown, .oe_dropdown_hover, .oe_dropdown_toggle + position: relative + cursor: pointer + .oe_dropdown_hover:hover .oe_dropdown_menu, .oe_dropdown_menu.oe_opened + display: block + .oe_dropdown_menu + display: none + position: absolute + top: 28px + z-index: 1 + border: 1px solid #afafb6 + background: white + padding: 8px + min-width: 120px + text-align: left + @include radius(3px) + @include box-shadow(0 1px 4px rgba(0,0,0,0.3)) + > li + &:hover + @include vertical-gradient(#f0f0fa, #eeeef6) + @include box-shadow(none) + list-style-type: none + float: none + display: block + position: relative + > a + white-space: nowrap + display: block + padding: 3px 6px + color: #4c4c4c + text-decoration: none + &:hover + text-decoration: none + .oe_dropdown_arrow:after + width: 0 + height: 0 + display: inline-block + content: "&darr" + text-indent: -99999px + vertical-align: top + margin-top: 8px + margin-left: 4px + border-left: 4px solid transparent + border-right: 4px solid transparent + border-top: 4px solid#404040 + @include opacity(0.5) + .oe_sidebar + white-space: nowrap + .oe_dropdown_menu + .oe_sidebar_add_attachment + height: 20px + cursor: pointer + padding-left: 6px + margin-top: 6px + span + font-weight: bold + .oe_hidden_input_file + width: 200px + &:hover + @include vertical-gradient(#f0f0fa, #eeeef6) + @include box-shadow(none) + li + .oe_sidebar_delete_item + position: absolute + top: 4px + right: 4px + display: none + width: 12px + height: 12px + padding: 1px + color: #8786b7 + line-height: 8px + text-align: center + font-weight: bold + text-shadow: 0 1px 1px white + &:hover + text-decoration: none + color: white + background: #8786b7 + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4) + @include radius(2px) + &:hover + .oe_sidebar_delete_item + display: inline-block // }}} // Loading {{{ .oe_loading @@ -389,22 +557,18 @@ $colour4: #8a89ba height: 31px border-top: solid 1px #d3d3d3 @include vertical-gradient(#646060, #262626) - .oe_topbar_item - li - float: left - a - display: block - padding: 5px 10px 7px - line-height: 20px - height: 20px - color: #eee - vertical-align: top - text-shadow: 0 1px 1px rgba(0,0,0,0.2) - &:hover - background: #303030 - color: white - @include box-shadow(0 1px 2px rgba(255,255,255,0.3) inset) + display: block + padding: 5px 10px 7px + line-height: 20px + height: 20px + color: #eee + vertical-align: top + text-shadow: 0 1px 1px rgba(0,0,0,0.2) + &:hover + background: #303030 + color: white + @include box-shadow(0 1px 2px rgba(255,255,255,0.3) inset) .oe_active background: #303030 font-weight: bold @@ -415,22 +579,27 @@ $colour4: #8a89ba width: 24px height: 24px margin: -2px 2px 0 0 - @include radius(4px) + @include radius(3px) .oe_topbar_avatar vertical-align: top - .oe_dropdown_toggle:after - width: 0 - height: 0 - display: inline-block - content: "&darr" - text-indent: -99999px - vertical-align: top - margin-top: 8px - margin-left: 4px - border-left: 4px solid transparent - border-right: 4px solid transparent + .oe_dropdown_arrow:after border-top: 4px solid white - @include opacity(0.5) + .oe_dropdown_menu + background: #333 + background: rgba(37,37,37,0.9) + border-color: #999 + border-color: rgba(0, 0, 0, 0.2) + border-style: solid + border-width: 0 1px 1px + @include radius(0 0 6px 6px) + @include background-clip() + li + float: none + a + color: #eee + &:hover + @include vertical-gradient(#292929, #191919) + @include box-shadow(none) // }}} // Webclient.leftbar {{{ .oe_leftbar @@ -440,7 +609,6 @@ $colour4: #8a89ba border-right: 1px solid #afafb6 text-shadow: 0 1px 1px white padding-bottom: 16px - line-height: 18px a.oe_logo width: 220px display: block @@ -475,48 +643,8 @@ $colour4: #8a89ba li list-style-type: none float: left - .oe_dropdown - position: relative - - .oe_dropdown_options - float: left - background: #333 - background: rgba(37,37,37,0.9) - display: none - position: absolute - top: 32px + .oe_dropdown_menu right: -1px - border: 0 - z-index: 900 - margin-left: 0 - margin-right: 0 - padding: 6px 0 - zoom: 1 - border-color: #999 - border-color: rgba(0, 0, 0, 0.2) - border-style: solid - border-width: 0 1px 1px - @include radius(0 0 6px 6px) - @include box-shadow(0 1px 4px rgba(0,0,0,0.3)) - @include background-clip() - li - float: none - display: block - background-color: none - a - white-space: nowrap - display: block - padding: 4px 15px - clear: both - font-weight: normal - line-height: 18px - color: #eee - &:hover - @include vertical-gradient(#292929, #191919) - @include box-shadow(none) - hr - border-top: 1px solid #999 - border-bottom: 0 // }}} // Systray {{{ .oe_systray > div @@ -524,42 +652,6 @@ $colour4: #8a89ba padding: 0 4px 0 4px .oe_systray float: right - - .oe_systray_dropdown - position: relative - .oe_systray_dropdown:hover .oe_systray_dropdown_options - display: block - .oe_systray_dropdown_options - background: #333 - background: rgba(37,37,37,0.9) - display: none - position: absolute - z-index: 900 - border: 0 - margin-left: 0 - margin-right: 0 - padding: 6px 0 - border-color: #999 - border-color: rgba(0, 0, 0, 0.2) - border-style: solid - border-width: 0 1px 1px - @include radius(0 0 6px 6px) - @include box-shadow(0 1px 4px rgba(0,0,0,0.3)) - @include background-clip() - li - float: none - display: block - background-color: none - a - display: block - padding: 4px 15px - clear: both - font-weight: normal - line-height: 18px - color: #eee - &:hover - @include vertical-gradient(#292929, #191919) - @include box-shadow(none) // }}} // Menu {{{ .oe_menu @@ -585,20 +677,6 @@ $colour4: #8a89ba font-weight: bold color: white @include box-shadow(0 1px 2px rgba(255,255,255,0.3) inset) - .oe_menu_more_container - position: relative - .oe_menu_more - position: absolute - padding: 0 - background-color: #646060 - z-index: 1 - border: 1px solid black - border-bottom-left-radius: 5px - border-bottom-right-radius: 5px - li - float: none - a - white-space: nowrap .oe_secondary_menu_section font-weight: bold margin-left: 8px @@ -632,9 +710,9 @@ $colour4: #8a89ba float: right background: #8a89ba color: #eee - font-size: 12px + font-size: 10px border: 1px solid lightgray - padding: 0px 4px 0px 4px + padding: 2px 4px text-shadow: 0 1px 1px rgba(0,0,0,0.2) margin: 0px @include radius(4px) @@ -683,115 +761,85 @@ $colour4: #8a89ba color: $colour4 &:hover text-decoration: underline + > div + height: 100% // }}} - // Content Header MIT {{{ - .oe-view-manager-header - border-top: 1px solid #cacaca - border-bottom: 1px solid #cacaca - @include vertical-gradient(#fcfcfc, #dedede) - @include box-shadow((0 1px 0 rgba(255,255,255,0.4), 0 0 9px rgba(0,0,0,0.1))) - h2 - float: left - font-size: 18px - margin: 1px 0 - a - color: $colour4 - .buttons - padding-right: 8px - li - float: left - margin-right: 12px - .filter - vertical-align: top - li - height: 24px - line-height: 24px - padding: 0 8px - .header-row - height: 26px - line-height: 26px - margin: 8px - clear: both - text-shadow: 0 1px 1px white - .dropdown-toggle:after - margin-top: 7px - margin-left: 6px - border-top-color: #404040 - .oe_vm_switch - li - padding-left: 1px + // ViewManager common {{{ + .oe_view_manager + .oe_view_manager_body + height: inherit + .oe_view_manager_view_kanban + height: inherit + + .oe_view_manager_header + width: 100% + .oe_header_row + //min-height: 26px + //line-height: 26px + clear: both + text-shadow: 0 1px 1px white + .oe_header_row:last-child + td + padding-top: 0 + .oe_view_manager_sidebar + margin: 0px auto + width: 400px text-align: center - width: 24px - height: 24px - line-height: 24px - .pagination - li - height: 24px - line-height: 24px - padding: 0 8px - .button-group - display: inline-block - border: 1px solid #ababab - @include radius(5px) - li - float: left - border-right: 1px solid #ababab - &:last-child - border: none - a - color: #4c4c4c - &:hover - text-decoration: none - .active - width: 100% - background: #999 - @include box-shadow(0 1px 4px rgba(0,0,0,0.3) inset) - color: #fff - text-shadow: 0 1px 2px rgba(0,0,0,0.4) - // }}} - // ViewManager.header {{{ - .oe_view_manager_header - width: 100% - border-top: 1px solid #cacaca - border-bottom: 1px solid #cacaca - @include vertical-gradient(#fcfcfc, #dedede) - @include box-shadow((0 1px 0 rgba(255,255,255,0.4), 0 0 9px rgba(0,0,0,0.1))) - .oe_header_row - //min-height: 26px - //line-height: 26px - clear: both - text-shadow: 0 1px 1px white - td - padding: 8px - .oe_header_row:last-child - td - padding-top: 0 - .oe_header_row:first-child td - padding-top: 8px - .oe_view_manager_sidebar - margin: 0px auto - width: 400px - text-align: center - td + line-height: 26px + h2 + font-size: 18px + margin: 0 + float: left + a + color: $colour4 + .oe_button_group + display: inline-block + border: 1px solid #ababab + @include radius(5px) + li + float: left + border-right: 1px solid #ababab + &:last-child + border: none + a + color: #4c4c4c + &:hover + text-decoration: none + .active + background: #999 + @include box-shadow(0 1px 4px rgba(0,0,0,0.3) inset) + a + color: #fff + text-shadow: 0 1px 2px rgba(0,0,0,0.4) + .oe_view_manager_buttons + white-space: nowrap + // }}} + // ViewManager.pager {{{ + .oe_view_manager_pager line-height: 26px - h2 - font-size: 18px - margin: 0 + .oe_pager_value float: left - a - color: $colour4 - .oe_button_group + margin-right: 8px + .oe_pager_group + float: left + height: 24px + line-height: 24px display: inline-block border: 1px solid #ababab + cursor: pointer @include radius(5px) li + height: 24px + line-height: 24px + padding: 0 float: left border-right: 1px solid #ababab &:last-child border: none a color: #4c4c4c + padding: 0 8px &:hover text-decoration: none .active @@ -800,128 +848,60 @@ $colour4: #8a89ba a color: #fff text-shadow: 0 1px 2px rgba(0,0,0,0.4) - .oe_view_manager_buttons - white-space: nowrap - // }}} - // ViewManager.pager {{{ - .oe_view_manager_pager - line-height: 26px - .oe_pager_value - float: left - margin-right: 8px - .oe_pager_group - float: left - height: 24px - line-height: 24px - display: inline-block - border: 1px solid #ababab - cursor: pointer - @include radius(5px) - li - height: 24px - line-height: 24px - padding: 0 - float: left - border-right: 1px solid #ababab - &:last-child - border: none - a - color: #4c4c4c - padding: 0 8px - &:hover - text-decoration: none - .active - background: #999 - @include box-shadow(0 1px 4px rgba(0,0,0,0.3) inset) - a - color: #fff - text-shadow: 0 1px 2px rgba(0,0,0,0.4) - // }}} - // ViewManager.switches {{{ - .oe_view_manager_switch - li - text-align: center - width: 24px - height: 24px - line-height: 16px - a + // }}} + // ViewManager.switches {{{ + .oe_view_manager_switch + li + text-align: center + width: 24px + height: 24px + line-height: 16px + a + position: relative + .oe_vm_switch_list:after, .oe_vm_switch_tree:after + padding: 2px + content: "i" + .oe_vm_switch_form:after + content: "m" + .oe_vm_switch_graph:after + font-family: "mnmliconsRegular" !important + font-size: 21px + font-weight: 300 !important + content: "}" + top: -2px position: relative - .oe_vm_switch_list:after, .oe_vm_switch_tree:after - padding: 2px - content: "i" - .oe_vm_switch_graph:after - font-family: "mnmliconsRegular" !important - font-size: 21px - font-weight: 300 !important - content: "}" - top: -2px - position: relative - .oe_vm_switch_gantt:after - font-family: "mnmliconsRegular" !important - font-size: 21px - font-weight: 300 !important - content: "y" - top: -2px - position: relative - .oe_vm_switch_calendar:after - content: "P" - .oe_vm_switch_kanban:after - content: "k" - .oe_vm_switch_diagram:after - content: "f" + .oe_vm_switch_gantt:after + font-family: "mnmliconsRegular" !important + font-size: 21px + font-weight: 300 !important + content: "y" + top: -2px + position: relative + .oe_vm_switch_calendar:after + content: "P" + .oe_vm_switch_kanban:after + content: "k" + .oe_vm_switch_diagram:after + content: "f" + // }}} + // ViewManager application {{{ + .oe_view_manager_global + height: 100% + > .oe_view_manager_header + border-top: 1px solid #cacaca + border-bottom: 1px solid #cacaca + @include vertical-gradient(#fcfcfc, #dedede) + @include box-shadow((0 1px 0 rgba(255,255,255,0.4), 0 0 9px rgba(0,0,0,0.1))) + .oe_header_row + td + padding: 8px + .oe_header_row:first-child + td + padding-top: 8px // }}} - // ViewManager.sidebar {{{ - .oe_form_dropdown_section - position: relative - display: inline-block - .oe_dropdown_toggle:after - width: 0 - height: 0 - display: inline-block - content: "&darr" - text-indent: -99999px - vertical-align: top - border-left: 4px solid transparent - border-right: 4px solid transparent - border-top: 4px solid white - @include opacity(0.5) - margin-top: 7px - margin-left: 6px - border-top-color: #404040 - .oe_dropdown_menu - display: none - position: absolute - top: 28px - left: 0px - padding: 8px - border: 1px solid #afafb6 - min-width: 120px - overflow-x: hidden - z-index: 900 - text-align: left - background: white - @include radius(3px) - @include box-shadow(0 1px 4px rgba(0,0,0,0.3)) - li - list-style-type: none - float: none - display: block - background-color: none - a - display: block - padding: 3px 6px - clear: both - font-weight: normal - line-height: 14px - color: #4c4c4c - text-decoration: none - cursor: pointer - &:hover - text-decoration: none - @include vertical-gradient(#f0f0fa, #eeeef6) - @include box-shadow(none) - .oe_sidebar - white-space: nowrap + // Viewmanager popup {{{ + .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager + display: none !important // }}} // SearchView {{{ .oe_searchview @@ -940,8 +920,6 @@ $colour4: #8a89ba height: 14px font-size: 11px line-height: 18px - border: 1px solid #ccc - @include radius(3px) &.oe_focused border-color: $facets-border-selected @include box-shadow(0 1px 2px $facets-border-selected inset) @@ -1052,7 +1030,7 @@ $colour4: #8a89ba .oe_searchview_drawer position: absolute - z-index: 1 + z-index: 100 // detach drawer from field slightly margin-top: 4px top: 100% @@ -1097,7 +1075,7 @@ $colour4: #8a89ba display: table width: 100% > div - @include unscrew-box + @include box-sizing(border) display: table-cell width: 50% ul @@ -1172,13 +1150,12 @@ $colour4: #8a89ba display: block // delete buttons - .oe_searchview_custom_delete - position: absolute - left: 4px - top: 3px .oe_searchview_custom_delete, .searchview_extended_delete_prop + display: inline-block width: 12px height: 12px + line-height: 12px + padding: 1px color: #8786b7 line-height: 8px text-align: center @@ -1190,6 +1167,24 @@ $colour4: #8a89ba background: #8786b7 text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4) @include radius(2px) + .oe_searchview_custom_delete + display: none + position: absolute + bottom: 1px + right: 4px + .oe_searchview_custom_private, .oe_searchview_custom_public + &:hover + .oe_searchview_custom_delete + display: inline-block + .oe_searchview_custom_public:after + content: "," + font-family: "entypoRegular" !important + font-size: 22px + font-weight: 300 !important + margin: 0 0 0 4px + padding: 0 + + // }}} // Views Common {{{ .oe_view_nocontent @@ -1202,17 +1197,13 @@ $colour4: #8a89ba padding: 35px 0px 0px 0px max-width: 700px font-size: 125% - .oe_view_topbar - border-bottom: 1px solid #cacaca - @include vertical-gradient(#fcfcfc, #dedede) - padding: 0 8px - line-height: 30px // }}} - // FormView.body {{{ + // FormView.base and dynamic tags {{{ .oe_formview background: white - .oe_form_header - padding: 8px + .oe_form_dropdown_section + position: relative + display: inline-block .oe_form_invalid input, select, textarea background-color: #F66 !important @@ -1220,142 +1211,118 @@ $colour4: #8a89ba .oe_form_button_save_dirty color: white background: #dc5f59 - background: -moz-linear-gradient(#dc5f59, #b33630) - background: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)) - background: -webkit-linear-gradient(#dc5f59, #b33630) - -moz-box-shadow: none - -webkit-box-shadow: none - -box-shadow: none + @include vertical-gradient(#dc5f59, #b33630) + @include box-shadow(none) font-weight: bold &:hover background: #ED6F6A + .oe_form_invisible + display: none !important + .oe_form_editable .oe_edit_only + display: none !important + .oe_form_readonly + .oe_edit_only, .oe_form_field:empty + display: none !important + .oe_form_nosheet > *:not(header) + margin-left: 10px !important + margin-right: 10px !important // }}} - // FormView.customdivs {{{ - .oe_form header - position: relative - border-bottom: 1px solid #cacaca - @include vertical-gradient(#fcfcfc, #dedede) - padding: 0 8px - line-height: 30px - button - font-size: 12px - float: left - height: 24px !important - line-height: 24px + // FormView.custom tags and classes {{{ + .oe_form + header + position: relative + border-bottom: 1px solid #cacaca + @include vertical-gradient(#fcfcfc, #dedede) + padding: 0 8px + line-height: 30px + ul + display: inline-block + float: right + footer + min-width: 650px + max-width: 960px + margin: 0 auto + ul.oe_form_steps + height: 30px + padding: 0 + margin: 0 + text-shadow: 0 1px 1px white + img vertical-align: top - padding: 0 10px - margin: 3px 4px 3px 0 - span.i - line-height: 20px - height: 24px - ul - height: 30px + margin-left: 8px + li + border-right: none padding: 0 margin: 0 - text-shadow: 0 1px 1px white - border-left: 1px solid #cacaca - border-right: 1px solid #cacaca - li - padding: 0 - margin: 0 - float: left - vertical-align: top + float: left + vertical-align: top + height: 30px + padding: 0 0 0 12px + &:first-child + border-left: 1px solid #cacaca + &:last-child + margin-right: 12px + padding-right: 12px border-right: 1px solid #cacaca - height: 30px - padding: 0 12px - &:first-child - border-left: 1px solid #cacaca - a - color: #4c4c4c - &:hover - color: black - .oe_form_steps - display: inline-block - float: right - img - margin: 0 8px - vertical-align: top - li - border-right: none - padding: 0 - &:first-child - margin-left: 12px - border-left: none - &:last-child - margin-right: 12px + a + color: #4c4c4c + &:hover + color: black .oe_form_steps_active - font-weight: bold + font-weight: bold color: #b33630 - .oe_form_readonly - button.oe_form_button_hi - color: white - background: #DC5F59 - background: -moz-linear-gradient(#DC5F59, #B33630) - background: -webkit-gradient(linear, left top, left bottom, from(#DC5F59), to(#B33630)) - background: -webkit-linear-gradient(#DC5F59, #B33630) - -moz-box-shadow: none - -webkit-box-shadow: none - -box-shadow: none - button.oe_form_button_hi:hover - background: #DF6B66 - background: -moz-linear-gradient( #DF6B66, #BF3A33) - background: -webkit-gradient(linear, left top, left bottom, from( #DF6B66), to( #BF3A33)) - background: -webkit-linear-gradient( #DF6B66, #BF3A33) - -moz-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2) - -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.2) - -box-shadow: 0 0 1px rgba(0, 0, 0, 0.2) + .oe_form_subtotal_footer + width: auto + float: right + td.oe_form_group_cell + text-align: right + padding: 0 + td.oe_form_group_cell_label + border: none + .oe_form_field + width: auto !important + .oe_form_subtotal_footer_separator + border-top: 1px solid #cacaca + font-size: 120% + font-weight: bold + label.oe_form_subtotal_footer_separator + font-weight: bold !important + padding: 2px 8px 2px 0px !important + // no sheet in popups .oe_application .oe_form_sheetbg background: url(/web/static/src/img/form_sheetbg.png) padding: 8px 0 border-bottom: 1px solid #ddd - .oe_form_sheet_width, footer + .oe_form_sheet_width min-width: 650px max-width: 960px margin: 0 auto .oe_form_sheet - padding: 18px background: white min-height: 330px + padding: 16px border: 1px solid #afafb6 @include box-shadow(0 0 10px rgba(0,0,0,0.3)) + .ui-tabs + margin: 0 -16px + .oe_notebook_page + padding: 0 16px // }}} - // FormView.layout {{{ - .oe_form_invisible - display: none - .oe_form_editable .oe_form_editable_hidden - display: none - .oe_form_readonly - .oe_form_readonly_hidden, .oe_form_field:empty - display: none + // FormView.group {{{ .oe_form - .oe_form_field_text + td.oe_form_group_cell_label + border-right: 1px solid #ddd + padding: 2px 0px 2px 0px + label + line-height: 18px + display: block + min-width: 120px + td.oe_form_group_cell + .oe_form_group_cell + padding-left: 8px + .oe_form_group width: 100% - - .oe_form_field_char input, - .oe_form_field_text textarea, - .oe_form_field_url input, - .oe_form_field_selection select - width: inherit - - .oe_form_field_float input - width: 100px - - h1 .oe_form_field_float input - width: 140px - - h2 .oe_form_field_float input - width: 120px - - h1, h2, h3, h4, h5, h6 - margin: 0 0 4px 0 - input - height: inherit !important - font-size: inherit - .oe_form_nosheet > *:not(.oe_form_topbar) - margin-left: 10px !important - margin-right: 10px !important - + margin: 4px 0 4px 0 // }}} // FormView.label {{{ .oe_form @@ -1371,10 +1338,61 @@ $colour4: #8a89ba top: -4px padding: 0 2px // }}} + // FormView.separator {{{ + .oe_horizontal_border + border-bottom: 1px solid black + .oe_horizontal_separator + font-weight: bold + font-size: 20px + margin: 8px 0px 8px 0px + color: #aab + .oe_horizontal_separator:empty + height: 5px + .oe_vertical_separator + border-left: 1px solid #666 + padding: 0 4px 0 4px + // }}} + // FormView.progressbar {{{ + .oe_form_field_progressbar + display: inline-block + min-width: 70px + .oe_form_field_progressbar.ui-progressbar + height: 22px + font-size: 10px + @include box-sizing(border) + border: 1px solid #999 + @include radius(3px) + background: white + min-width: 50px + span + position: absolute + margin-left: 10px + font-weight: bold + .ui-widget-header + background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x + // }}} // FormView.fields {{{ .oe_form - .oe_form_field_text textarea - resize: vertical + .oe_form_field_text + width: 100% + .oe_form_field_char input, + .oe_form_field_url input, + .oe_form_field_text textarea, + .oe_form_field_selection select + width: inherit + .oe_form_sheet textarea + width: 500px + .oe_form_field_float input + width: 100px + h1 .oe_form_field_float input + width: 140px + h2 .oe_form_field_float input + width: 120px + h1, h2, h3, h4, h5, h6 + margin: 0 0 4px 0 + input + height: inherit !important + font-size: inherit .oe_form_field width: 100% display: inline-block @@ -1382,7 +1400,6 @@ $colour4: #8a89ba line-height: 18px input margin: 0px - .oe_form_field_integer width: 180px .oe_form_field_float @@ -1391,37 +1408,15 @@ $colour4: #8a89ba width: 7em .oe_form_field_datetime width: 11em - .oe_form_inline - width: auto - - input[type="text"], - input[type="password"], - input[type="file"], - select + input[type="text"], input[type="password"], input[type="file"], select height: 22px padding-top: 2px - input[type="text"], - input[type="password"], - input[type="file"], - select, - textarea - -moz-box-sizing: border-box - -webkit-box-sizing: border-box - -ms-box-sizing: border-box - box-sizing: border-box - padding: 0 2px - border: 1px solid #999 - -moz-border-radius: 3px - -webkit-border-radius: 3px - border-radius: 3px + input[type="text"], input[type="password"], input[type="file"], select, textarea + @include box-sizing(border) background: white min-width: 70px color: #1f1f1f - input[readonly], - select[readonly], - textarea[readonly], - input[disabled], - select[disabled] + input[readonly], select[readonly], textarea[readonly], input[disabled], select[disabled] background: #E5E5E5 !important color: #666 textarea[disabled] @@ -1430,11 +1425,7 @@ $colour4: #8a89ba padding-left: 8px @include box-shadow(none) @include radius(0px) - .oe_form_field_many2one input, - .oe_form_field_binary input, - .oe_form_field_binary input, - .oe_form_field_email input, - .oe_form_field_url input + .oe_form_field_many2one input, .oe_form_field_binary input, .oe_form_field_binary input, .oe_form_field_url input border-right: none -webkit-border-top-right-radius: 0px -webkit-border-bottom-right-radius: 0px @@ -1442,7 +1433,6 @@ $colour4: #8a89ba -moz-border-radius-bottomright: 0px border-top-right-radius: 0px border-bottom-right-radius: 0px - .oe_form_field_email button img, .oe_form_field_url button img vertical-align: top .oe_form_field_date, @@ -1457,7 +1447,7 @@ $colour4: #8a89ba width: 100% !important .oe_form_field_many2manytags_box border-radius: 2px - box-sizing: border-box + @include box-sizing(border) position: relative float: left border: 1px solid #9DACCC @@ -1492,74 +1482,28 @@ $colour4: #8a89ba filter: alpha(opacity=50) right: 5px top: 3px - .oe_form_group_cell .oe_kanban_view - // Hack due to absolute positioning of kanban view messing with o2m - position: static .oe_form_field_with_button input width: 100% > .oe_button float: right - -webkit-border-top-left-radius: 0px - -webkit-border-bottom-left-radius: 0px - -moz-border-radius-topleft: 0px - -moz-border-radius-bottomleft: 0px - border-top-left-radius: 0px + @include radius(0) border-bottom-left-radius: 0px height: 22px > div position: relative overflow: hidden - - .oe_form_title - width: 55% - .oe_form_title:after - content: "." - display: block - height: 0 - clear: both - visibility: hidden - .oe_form_button_box - width: 200px - text-align: center - - .oe_form_group - margin: 5px 0px 5px 0px - - .oe_form_group_cell .oe_kanban_view - // Hack due to absolute positioning of kanban view messing with o2m - position: static - - // }}} - // FormView.buttons {{{ - .oe_form - .oe_form_button.oe_button - height: 22px - white-space: nowrap - span - position: relative - vertical-align: top - .oe_form_button > img - vertical-align: -3px - padding: 0 2px - // From FP: .oe_form_group_cell > .oe_form_button.oe_button - // From FP: display: block - // From FP: white-space: nowrap - // From FP: min-width: 100% - // From FP: width: 100% - // }}} - // FormView.binaryfile {{{ + // FormView.fields_binary {{{ /* http://www.quirksmode.org/dom/inputfile.html * http://stackoverflow.com/questions/2855589/replace-input-type-file-by-an-image */ - .oe_form - .oe-binary-file-set - overflow: hidden - position: relative - display: inline-block - width: 45px - height: 30px + .oe_hidden_input_file + overflow: hidden + position: relative + display: inline-block + width: 45px + height: 30px input.oe-binary-file z-index: 0 line-height: 0 @@ -1573,9 +1517,8 @@ $colour4: #8a89ba -ms-filter: "alpha(opacity=0)" margin: 0 padding: 0 + .oe_form .oe_form_field_image - > img - min-width: 100px padding: 0 position: relative display: inline-block @@ -1586,108 +1529,31 @@ $colour4: #8a89ba top: 1px padding: 3px 0 0 0 margin: 0 1px - @include opacity(0.7) + display: none width: 99% text-align: center background: url(/web/static/src/img/form_sheetbg.png) border-bottom: 1px dotted black - -moz-box-sizing: border-box - -webkit-box-sizing: border-box - -ms-box-sizing: border-box - box-sizing: border-box + @include box-sizing(border) &:hover .oe_form_field_image_controls - @include opacity(1) - // }}} - // FormView.separator {{{ - .oe_horizontal_border - border-bottom: 1px solid black - .oe_horizontal_separator - font-weight: bold - font-size: 20px - margin: 20px 0px 10px 0px - color: #aab - .oe_horizontal_separator:empty - height: 5px - .oe_vertical_separator - border-left: 1px solid #666 - padding: 0 4px 0 4px - // }}} - // FormView.notebook {{{ - .oe_form_notebook - margin: 8px 0 - padding: 0 8px - list-style: none - zoom: 1 - .oe_form_notebook:before, .oe_form_notebook:after - display: table - content: "" - zoom: 1 - .oe_form_notebook:after - clear: both - .oe_form_notebook > li - float: left - .oe_form_notebook > li > a - display: block - color: #4c4c4c - .oe_form_notebook - border-color: #ddd - border-style: solid - border-width: 0 0 1px - .oe_form_notebook > li - position: relative - margin-bottom: -1px - .oe_form_notebook > li > a - padding: 0 12px - margin-right: 2px - line-height: 30px - border: 1px solid transparent - @include radius(4px 4px 0 0) - .oe_form_notebook > li > a:hover - text-decoration: none - background-color: #eee - border-color: #eee #eee #ddd - .oe_form_notebook > li.ui-state-active > a, .oe_form_notebook > li.ui-state-active > a:hover - background-color: #ffffff - border: 1px solid #ddd - border-bottom-color: transparent - cursor: default - .oe_form_notebook_page - padding: 0 - div.ui-tabs - padding: 3px 0px 3px 0px - .ui-tabs-hide - display: none - + display: block // }}} - // FormView.progressbar {{{ - .oe_form - .oe_form_field_progressbar - display: inline-block - min-width: 70px - .oe_form_field_progressbar.ui-progressbar - height: 22px - font-size: 10px - -moz-box-sizing: border-box - -webkit-box-sizing: border-box - -ms-box-sizing: border-box - box-sizing: border-box - border: 1px solid #999 - -moz-border-radius: 3px - -webkit-border-radius: 3px - border-radius: 3px - background: white - min-width: 50px - - span - position: absolute - margin-left: 10px - font-weight: bold - - .ui-widget-header - background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x + // FormView.many2one {{{ + .oe_form_field_many2one + td:first-child + position: relative + span.oe-m2o-drop-down-button + position: absolute + top: 3px + right: 2px // }}} - // FormView.viewmanager {{{ - .oe_form + // FormView.one2many {{{ + .oe_form .oe_form_field_one2many > .oe_view_manager + .oe_list_pager_single_page + display: none + .oe_form_field_one2many > .oe_view_manager + .oe_header_row_top + display: none .oe_view_manager_header2 td padding: 0px 8px @@ -1700,77 +1566,47 @@ $colour4: #8a89ba li height: auto line-height: 16px - .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager - display: none - // }}} - // FormView.classes for openerp views {{{ - .oe_form - td.oe_form_group_cell_label - border-right: 1px solid #ddd - padding: 2px 0px 2px 0px - label - line-height: 18px - display: block - min-width: 120px - td.oe_form_group_cell + .oe_form_group_cell - padding-left: 8px - .oe_form_subtotal_footer - width: auto - float: right - td.oe_form_group_cell - text-align: right - padding: 0 - td.oe_form_group_cell_label - border: none - .oe_form_field - width: auto !important - .oe_form_subtotal_footer_separator - border-top: 1px solid #cacaca - font-size: 120% - font-weight: bold - label.oe_form_subtotal_footer_separator - font-weight: bold !important - padding: 2px 8px 2px 0px !important + // FormView.many2many {{{ + .oe_form .oe_form_field_many2many > .oe-listview + .oe_list_pager_single_page + display: none // }}} // ListView {{{ .oe-listview-content width: 100% + td:first-child, th:first-child + &:after + border-width: 0 > thead border-bottom: 2px solid #cacaca background: #eee vertical-align: top - td, th - padding: 3px 6px - line-height: 18px - th:after - content: "" - float: right - margin-top: 7px - border-width: 0 4px 4px - border-style: solid - border-color: #000 transparent - visibility: hidden - th.sortup:after - visibility: visible - @include opacity(0.6) - th.sortdown:after - border-bottom: none - border-left: 4px solid transparent - border-right: 4px solid transparent - border-top: 4px solid #000 - visibility: visible - @include box-shadow(none) - @include opacity(0.6) - // TODO mit - //th:hover:after - // border-bottom: none - // border-left: 4px solid transparent - // border-right: 4px solid transparent - // border-top: 4px solid #000 - // visibility: visible - // @include box-shadow(none) - // @include opacity(0.6) + th + position: relative + td, th + padding: 3px 6px + line-height: 18px + th:after + position: absolute + right: 6px + content: "" + margin-top: 7px + border-width: 0 4px 4px + border-style: solid + border-color: #000 transparent + visibility: hidden + th.sortup:after + visibility: visible + @include opacity(0.6) + th.sortdown:after + border-bottom: none + border-left: 4px solid transparent + border-right: 4px solid transparent + border-top: 4px solid #000 + visibility: visible + @include box-shadow(none) + @include opacity(0.6) > tbody cursor: pointer background: white @@ -1813,22 +1649,24 @@ $colour4: #8a89ba .oe_trad_field.touched border: 1px solid green !important // }}} - // Tooltips {{{ - &.oe_tooltip - font-size: 12px - .oe_tooltip_string - color: #FD5 - font-weight: bold - font-size: 13px - .oe_tooltip_help - white-space: pre-wrap - .oe_tooltip_technical - padding: 0 0 4px 0 - margin: 5px 0 0 15px - li - list-style: circle - .oe_tooltip_technical_title - font-weight: bold + // View Editor {{{ + .oe_view_editor + width: 100% + border-collapse: collapse + margin-left: -12px + width: 100% + background-color: white + border-spacing: 0 + td + text-align: center + white-space: nowrap + border: 1px solid #D8D8D8 + cursor: pointer + font-size: 90% + .oe_view_editor_field td + border: 0px !important + .oe_view_editor tr:hover + background-color: #ecebf2 // }}} // Debugging stuff {{{ .oe_layout_debugging @@ -1847,7 +1685,6 @@ $colour4: #8a89ba float: right .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after content: "[newline]" - .oe_debug_view float: left .oe_debug_view_log @@ -1865,42 +1702,13 @@ $colour4: #8a89ba float: right color: #333 // }}} -//view editor -.openerp - .oe_view_editor - width: 100% - border-collapse: collapse - margin-left: -12px - width: 100% - background-color: white - border-spacing: 0 - td - text-align: center - white-space: nowrap - border: 1px solid #D8D8D8 - cursor: pointer - font-size: 90% - .oe_view_editor_field td - border: 0px !important - .oe_view_editor tr:hover - background-color: #ecebf2 - +// Kitten Mode {{{ .kitten-mode-activated background-image: url(http://placekitten.com/g/1365/769) background-size: cover background-attachment: fixed >* opacity: 0.70 - -// Transitional overrides for old styles {{{ -.openerp - .oe_form_field_many2one - td:first-child - position: relative - span.oe-m2o-drop-down-button - position: absolute - top: 3px - right: 2px // }}} // au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css" diff --git a/addons/web/static/src/js/boot.js b/addons/web/static/src/js/boot.js index f83dbc97095..86f8077b151 100644 --- a/addons/web/static/src/js/boot.js +++ b/addons/web/static/src/js/boot.js @@ -54,11 +54,6 @@ openerp.web = function(session) { openerp.web[files[i]](session); } } - session.log = function() { - if (session.connection.debug && window.console) { - console.log.apply(console, arguments); - } - } }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 2b0f755f75f..88074525d08 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -9,8 +9,7 @@ instance.web.Notification = instance.web.Widget.extend({ template: 'Notification', init: function() { this._super.apply(this, arguments); - // move to instance.web.notification - instance.notification = this; + instance.web.notification = this; }, start: function() { this._super.apply(this, arguments); @@ -141,7 +140,6 @@ instance.web.Dialog = instance.web.Widget.extend({ } }, on_resized: function() { - //openerp.log("Dialog resized to %d x %d", this.$element.width(), this.$element.height()); }, destroy: function () { this.close(); @@ -208,7 +206,14 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({ buttons: buttons }).open(); dialog.$element.html(QWeb.render('CrashManager.error', {session: instance.connection, error: error})); - } + }, + on_javascript_exception: function(exception) { + this.on_traceback({ + type: _t("Client Error"), + message: exception, + data: {debug: ""} + }); + }, }); instance.web.Loading = instance.web.Widget.extend({ @@ -577,10 +582,6 @@ instance.web.Menu = instance.web.Widget.extend({ this.renderElement(); this.limit_entries(); this.$secondary_menus.html(QWeb.render("Menu.secondary", { widget : this })); - this.$element.on('click', 'a.oe_menu_more_link', function() { - self.$element.find('.oe_menu_more').toggle(); - return false; - }); this.$element.on('click', 'a[data-menu]', this.on_menu_click); this.$secondary_menus.on('click', 'a[data-menu]', this.on_menu_click); // Hide second level submenus @@ -601,16 +602,12 @@ instance.web.Menu = instance.web.Widget.extend({ $index.after($more); $more.find('.oe_menu_more').append($index.next().nextAll()); } - this.do_hide_more(); }, auto_limit_entries: function() { // TODO: auto detect overflow and bind window on resize var width = $(window).width(); return Math.floor(width / 125); }, - do_hide_more: function() { - this.$element.find('.oe_menu_more').hide(); - }, /** * Opens a given menu by id, as if a user had browsed to that menu by hand * except does not trigger any event on the way @@ -708,9 +705,8 @@ instance.web.Menu = instance.web.Widget.extend({ */ on_menu_click: function(ev) { var needaction = !!$(ev.target).filter('div.oe_menu_counter').length; + ev.preventDefault(); this.menu_click($(ev.currentTarget).data('menu'), needaction); - ev.stopPropagation(); - return false; }, }); @@ -723,20 +719,12 @@ instance.web.UserMenu = instance.web.Widget.extend({ start: function() { var self = this; this._super.apply(this, arguments); - $('html').bind('click', function() { - self.$element.find('.oe_dropdown_options').hide(); - }); - this.$element.find('.oe_dropdown_toggle').click(function() { - self.$element.find('.oe_dropdown_options').toggle(); - return false; - }); - this.$element.on('click', '.oe_dropdown_options li a[data-menu]', function() { + this.$element.on('click', '.oe_dropdown_menu li a[data-menu]', function(ev) { + ev.preventDefault(); var f = self['on_menu_' + $(this).data('menu')]; if (f) { f($(this)); } - self.$element.find('.oe_dropdown_options').hide(); - return false; }); }, change_password :function() { @@ -880,6 +868,27 @@ instance.web.WebClient = instance.web.Widget.extend({ this.$element.on('mouseenter', '.oe_systray > div:not([data-tipsy=true])', function() { $(this).attr('data-tipsy', 'true').tipsy().trigger('mouseenter'); }); + this.$element.on('click', '.oe_dropdown_toggle', function(ev) { + var $menu = $(this).find('.oe_dropdown_menu'); + var state = $menu.is('.oe_opened'); + setTimeout(function() { + // Do not alter propagation + $menu.toggleClass('oe_opened', !state); + if (!state) { + // Move $menu if outside window's edge + var doc_width = $(document).width(); + var offset = $menu.offset(); + var menu_width = $menu.width(); + var x = doc_width - offset.left - menu_width - 15; + if (x < 0) { + $menu.offset({ left: offset.left + x }).width(menu_width); + } + } + }, 0); + }); + instance.web.bus.on('click', this, function() { + self.$element.find('.oe_dropdown_menu.oe_opened').removeClass('oe_opened'); + }); }, show_common: function() { var self = this; diff --git a/addons/web/static/src/js/coresetup.js b/addons/web/static/src/js/coresetup.js index 4defde54a3c..9b40b62e825 100644 --- a/addons/web/static/src/js/coresetup.js +++ b/addons/web/static/src/js/coresetup.js @@ -400,6 +400,29 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess } }); +/** + * Event Bus used to bind events scoped in the current instance + */ +instance.web.bus = new (instance.web.Class.extend(instance.web.EventDispatcherMixin, { + init: function() { + instance.web.EventDispatcherMixin.init.call(this, parent); + var self = this; + // TODO fme: allow user to bind keys for some global actions. + // check gtk bindings + // http://unixpapa.com/js/key.html + _.each('click,dblclick,keydown,keypress,keyup'.split(','), function(evtype) { + $('html').on(evtype, self, function(ev) { + self.trigger(evtype, ev); + }); + }); + _.each('resize,scroll'.split(','), function(evtype) { + $(window).on(evtype, self, function(ev) { + self.trigger(evtype, ev); + }); + }); + } +}))(); + /** OpenERP Translations */ instance.web.TranslationDataBase = instance.web.Class.extend(/** @lends instance.web.TranslationDataBase# */{ /** @@ -597,13 +620,18 @@ instance.web.Reload = instance.web.Widget.extend({ this.menu_id = (params && params.menu_id) || false; }, start: function() { + var l = window.location; + var timestamp = new Date().getTime(); + var search = "?ts=" + timestamp; + if (l.search) { + search = l.search + "&ts=" + timestamp; + } + var hash = l.hash; if (this.menu_id) { - // open the given menu id - var url_without_fragment = window.location.toString().split("#", 1)[0]; - window.location = url_without_fragment + "#menu_id=" + this.menu_id; - } else { - window.location.reload(); + hash = "#menu_id=" + this.menu_id; } + var url = l.protocol + "//" + l.host + l.pathname + search + hash; + window.location = url; } }); diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index f9e737471ae..85521a14651 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1571,7 +1571,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({ $filter.remove(); }); }) - .prependTo($filter); + .appendTo($filter); } $filter.unbind('click').click(function () { diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 64381a66218..12651148a0c 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -472,7 +472,7 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form. return self.on_processed_onchange(response, processed); } catch(e) { - console.error(e); + instance.webclient.crashmanager.on_javascript_exception(e); return $.Deferred().reject(); } }); @@ -728,7 +728,6 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form. if (this.sidebar) { this.sidebar.do_attachement_update(this.dataset, this.datarecord.id); } - //instance.log("The record has been created with id #" + this.datarecord.id); this.reload(); return $.when(_.extend(r, {created: true})).then(success); } @@ -914,6 +913,10 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt }, set_fields_view: function(fvg) { this.fvg = fvg; + this.version = parseFloat(this.fvg.arch.attrs.version); + if (isNaN(this.version)) { + this.version = 6.1; + } }, set_tags_registry: function(tags_registry) { this.tags_registry = tags_registry; @@ -921,6 +924,18 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt set_fields_registry: function(fields_registry) { this.fields_registry = fields_registry; }, + // Backward compatibility tools, current default version: v6.1 + process_version: function() { + if (this.version < 7.0) { + this.$form.find('form:first').wrapInner('<group col="4"/>'); + this.$form.find('page').each(function() { + if (!$(this).parents('field').length) { + $(this).wrapInner('<group col="4"/>'); + } + }); + } + selector = 'form[version!="7.0"] page,form[version!="7.0"]'; + }, render_to: function($target) { var self = this; this.$target = $target; @@ -930,6 +945,8 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt var xml = instance.web.json_node_to_xml(this.fvg.arch); this.$form = $('<div class="oe_form">' + xml + '</div>'); + this.process_version(); + this.fields_to_init = []; this.tags_to_init = []; this.labels = {}; @@ -2526,6 +2543,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(_.exten var tip_delay = 200; var tip_duration = 3000; var anyoneLoosesFocus = function() { + var used = false; if (self.floating) { if (self.last_search.length > 0) { if (self.last_search[0][0] != self.get("value")) { @@ -2533,13 +2551,17 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(_.exten self.display_value["" + self.last_search[0][0]] = self.last_search[0][1]; self.set({value: self.last_search[0][0]}); } else { + used = true; self.render_value(); } } else { + used = true; self.set({value: false}); + self.render_value(); } + self.floating = false; } - if (! self.get("value")) { + if (used) { tip_def.reject(); untip_def.reject(); tip_def = $.Deferred(); @@ -2586,7 +2608,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(_.exten e.preventDefault(); }, html: true, - close: anyoneLoosesFocus, + // disabled to solve a bug, but may cause others + //close: anyoneLoosesFocus, minLength: 0, delay: 0 }); @@ -2724,6 +2747,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ }, start: function() { this._super.apply(this, arguments); + this.$element.addClass('oe_form_field_one2many'); var self = this; @@ -2731,7 +2755,6 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this.dataset.o2m = this; this.dataset.parent_view = this.view; this.dataset.child_name = this.name; - //this.dataset.child_name = this.dataset.on_change.add_last(function() { self.trigger_on_change(); }); @@ -2763,6 +2786,13 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ modes = !!modes ? modes.split(",") : ["tree"]; var views = []; _.each(modes, function(mode) { + if (! _.include(["list", "tree", "graph", "kanban"], mode)) { + try { + throw new Error(_.str.sprintf("View type '%s' is not supported in One2Many.", mode)); + } catch(e) { + instance.webclient.crashmanager.on_javascript_exception(e) + } + } var view = { view_id: false, view_type: mode == "tree" ? "list" : mode, @@ -2773,9 +2803,11 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ } if(view.view_type === "list") { view.options.selectable = self.multi_selection; + view.options.sortable = false; if (self.get("effective_readonly")) { view.options.addable = null; view.options.deletable = null; + view.options.reorderable = false; } } else if (view.view_type === "form") { if (self.get("effective_readonly")) { @@ -2796,6 +2828,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ this.views = views; this.viewmanager = new instance.web.form.One2ManyViewManager(this, this.dataset, views, {}); + this.viewmanager.$element.addClass("oe_view_manager_one2many"); this.viewmanager.o2m = self; var once = $.Deferred().then(function() { self.init_form_last_update.resolve(); @@ -3260,6 +3293,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ }, start: function() { this._super.apply(this, arguments); + this.$element.addClass('oe_form_field_many2many'); var self = this; @@ -3268,7 +3302,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ this.dataset.on_unlink.add_last(function(ids) { self.dataset_changed(); }); - + this.is_setted.then(function() { self.load_view(); }); @@ -3281,7 +3315,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ }); }); }); - }) + }); }, set_value: function(value_) { value_ = value_ || []; @@ -3303,6 +3337,8 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({ 'addable': self.get("effective_readonly") ? null : _t("Add"), 'deletable': self.get("effective_readonly") ? false : true, 'selectable': self.multi_selection, + 'sortable': false, + 'reorderable': false, }); var embedded = (this.field.views || {}).tree; if (embedded) { @@ -3948,13 +3984,22 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(_.exte instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend({}, instance.web.form.ReinitializeFieldMixin, { init: function(field_manager, node) { + var self = this; this._super(field_manager, node); - this.iframe = this.element_id + '_iframe'; this.binary_value = false; + this.fileupload_id = _.uniqueId('oe_fileupload'); + $(window).on(this.fileupload_id, function() { + var args = [].slice.call(arguments).slice(1); + self.on_file_uploaded.apply(self, args); + }); + }, + stop: function() { + $(window).off(this.fileupload_id); + this._super.apply(this, arguments); }, initialize_content: function() { this.$element.find('input.oe-binary-file').change(this.on_file_change); - this.$element.find('button.oe-binary-file-save').click(this.on_save_as); + this.$element.find('button.oe_binary_file_save').click(this.on_save_as); this.$element.find('.oe-binary-file-clear').click(this.on_clear); }, human_filesize : function(size) { @@ -3970,8 +4015,8 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend( // TODO: on modern browsers, we could directly read the file locally on client ready to be used on image cropper // http://www.html5rocks.com/tutorials/file/dndfiles/ // http://deepliquid.com/projects/Jcrop/demos.php?demo=handler - window[this.iframe] = this.on_file_uploaded; - if ($(e.target).val() != '') { + + if ($(e.target).val() !== '') { this.$element.find('form.oe-binary-form input[name=session_id]').val(this.session.session_id); this.$element.find('form.oe-binary-form').submit(); this.$element.find('.oe-binary-progress').show(); @@ -3979,12 +4024,12 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend( } }, on_file_uploaded: function(size, name, content_type, file_base64) { - delete(window[this.iframe]); if (size === false) { this.do_warn("File Upload", "There was a problem while uploading your file"); // TODO: use openerp web crashmanager console.warn("Error while uploading file : ", name); } else { + this.filename = name; this.on_file_uploaded_and_valid.apply(this, arguments); } this.$element.find('.oe-binary-progress').hide(); @@ -3992,20 +4037,33 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend( }, on_file_uploaded_and_valid: function(size, name, content_type, file_base64) { }, - on_save_as: function() { - $.blockUI(); - this.session.get_file({ - url: '/web/binary/saveas_ajax', - data: {data: JSON.stringify({ - model: this.view.dataset.model, - id: (this.view.datarecord.id || ''), - field: this.name, - filename_field: (this.node.attrs.filename || ''), - context: this.view.dataset.get_context() - })}, - complete: $.unblockUI, - error: instance.webclient.crashmanager.on_rpc_error - }); + on_save_as: function(ev) { + var value = this.get('value'); + if (!value) { + this.do_warn(_t("Save As..."), _t("The field is empty, there's nothing to save !")); + ev.stopPropagation(); + } else if (this._dirty_flag) { + var link = this.$('.oe_binary_file_save_data')[0]; + link.download = this.filename || "download.bin"; // Works on only on Google Chrome + //link.target = '_blank'; + link.href = "data:application/octet-stream;base64," + value; + } else { + $.blockUI(); + this.session.get_file({ + url: '/web/binary/saveas_ajax', + data: {data: JSON.stringify({ + model: this.view.dataset.model, + id: (this.view.datarecord.id || ''), + field: this.name, + filename_field: (this.node.attrs.filename || ''), + context: this.view.dataset.get_context() + })}, + complete: $.unblockUI, + error: instance.webclient.crashmanager.on_rpc_error + }); + ev.stopPropagation(); + return false; + } }, on_clear: function() { if (this.get('value') !== false) { @@ -4073,14 +4131,6 @@ instance.web.form.FieldBinaryFile = instance.web.form.FieldBinary.extend({ instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({ template: 'FieldBinaryImage', - initialize_content: function() { - this._super(); - if (!this.get("effective_readonly")) { - this.$element.find('.oe_form_field_image_controls').show(); - } else { - this.$element.find('.oe_form_field_image_controls').hide(); - } - }, set_value: function(value_) { this._super.apply(this, arguments); this.render_value(); diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index de73ec21884..a90dabe1b4c 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -364,6 +364,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi } var total = dataset.size(); + this.$pager.toggleClass('oe_list_pager_single_page', (total <= this.limit())); var spager = '-'; if (total) { var range_start = this.page * this.limit() + 1; diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 753e14fa251..95b87e3cd86 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -77,7 +77,14 @@ instance.web.ActionManager = instance.web.Widget.extend({ }); } else if (state.client_action) { this.null_action(); - this.ir_actions_client(state.client_action); + var action = state.client_action; + if(_.isString(action)) { + action = { + tag: action, + params: state, + }; + } + this.ir_actions_client(action); } $.when(action_loaded || null).then(function() { @@ -150,6 +157,7 @@ instance.web.ActionManager = instance.web.Widget.extend({ this.inner_action = action; this.inner_viewmanager = new instance.web.ViewManagerAction(this, action); this.inner_viewmanager.appendTo(this.$element); + this.inner_viewmanager.$element.addClass("oe_view_manager_global"); } }, ir_actions_act_window_close: function (action, on_closed) { @@ -320,7 +328,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ } this.$element - .find('.oe_view_manager_switch a').parent().removeClass('active') + .find('.oe_view_manager_switch a').parent().removeClass('active'); this.$element .find('.oe_view_manager_switch a').filter('[data-view-type="' + view_type + '"]') .parent().addClass('active'); @@ -329,9 +337,12 @@ instance.web.ViewManager = instance.web.Widget.extend({ _.each(_.keys(self.views), function(view_name) { var controller = self.views[view_name].controller; if (controller) { + var container = self.$element.find(".oe_view_manager_view_" + view_name + ":first"); if (view_name === view_type) { + container.show(); controller.do_show(view_options || {}); } else { + container.hide(); controller.do_hide(); } } @@ -696,6 +707,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ instance.web.Sidebar = instance.web.Widget.extend({ init: function(parent) { + var self = this; this._super(parent); var view = this.getParent(); this.sections = [ @@ -712,19 +724,24 @@ instance.web.Sidebar = instance.web.Widget.extend({ var item = { label: _t("Translate"), callback: view.on_sidebar_translate, title: _t("Technical translation") }; this.items.other.push(item); } + this.fileupload_id = _.uniqueId('oe_fileupload'); + $(window).on(this.fileupload_id, function() { + var args = [].slice.call(arguments).slice(1); + if (args[0] && args[0].error) { + alert(args[0].error); + } else { + self.do_attachement_update(self.dataset, self.model_id); + } + $.unblockUI(); + }); }, start: function() { var self = this; this._super(this); this.redraw(); - this.$element.on('click','.oe_dropdown_toggle',function(event) { - $(this).parent().find('ul').toggle(); - return false; - }); this.$element.on('click','.oe_dropdown_menu li a', function(event) { var section = $(this).data('section'); var index = $(this).data('index'); - $(this).closest('ul').hide(); var item = self.items[section][index]; if (item.callback) { item.callback.apply(self, [item]); @@ -733,16 +750,12 @@ instance.web.Sidebar = instance.web.Widget.extend({ } else if (item.url) { return true; } - return false; + event.preventDefault(); }); - //this.$div.html(QWeb.render('FormView.sidebar.attachments', this)); - //this.$element.find('.oe-binary-file').change(this.on_attachment_changed); - //this.$element.find('.oe-sidebar-attachment-delete').click(this.on_attachment_delete); }, redraw: function() { var self = this; self.$element.html(QWeb.render('Sidebar', {widget: self})); - this.$element.find('ul').hide(); // Hides Sidebar sections when item list is empty this.$('.oe_form_dropdown_section').each(function() { @@ -826,6 +839,8 @@ instance.web.Sidebar = instance.web.Widget.extend({ }); }, do_attachement_update: function(dataset, model_id) { + this.dataset = dataset; + this.model_id = model_id; if (!model_id) { this.on_attachments_loaded([]); } else { @@ -837,42 +852,37 @@ instance.web.Sidebar = instance.web.Widget.extend({ on_attachments_loaded: function(attachments) { var self = this; var items = []; - // TODO: preprend: _s + - var prefix = '/web/binary/saveas?session_id=' + self.session.session_id + '&model=ir.attachment&field=datas&filename_field=name&id='; + var prefix = this.session.origin + '/web/binary/saveas?session_id=' + self.session.session_id + '&model=ir.attachment&field=datas&filename_field=name&id='; _.each(attachments,function(a) { a.label = a.name; if(a.type === "binary") { a.url = prefix + a.id + '&t=' + (new Date().getTime()); } }); - attachments.push( { label: _t("Add..."), callback: self.on_attachment_add } ); self.items['files'] = attachments; self.redraw(); - }, - on_attachment_add: function(e) { - this.$element.find('.oe_sidebar_add').show(); + this.$('.oe_sidebar_add_attachment .oe-binary-file').change(this.on_attachment_changed); + this.$element.find('.oe_sidebar_delete_item').click(this.on_attachment_delete); }, on_attachment_changed: function(e) { - return; - window[this.element_id + '_iframe'] = this.do_update; var $e = $(e.target); - if ($e.val() != '') { + if ($e.val() !== '') { this.$element.find('form.oe-binary-form').submit(); $e.parent().find('input[type=file]').prop('disabled', true); $e.parent().find('button').prop('disabled', true).find('img, span').toggle(); + this.$('.oe_sidebar_add_attachment span').text(_t('Uploading...')); + $.blockUI(); } }, on_attachment_delete: function(e) { - return; - var self = this, $e = $(e.currentTarget); - var name = _.str.trim($e.parent().find('a.oe-sidebar-attachments-link').text()); - if (confirm(_.str.sprintf(_t("Do you really want to delete the attachment %s?"), name))) { - this.rpc('/web/dataset/unlink', { - model: 'ir.attachment', - ids: [parseInt($e.attr('data-id'))] - }, function(r) { - $e.parent().remove(); - self.do_notify("Delete an attachment", "The attachment '" + name + "' has been deleted"); + var self = this; + e.preventDefault(); + e.stopPropagation(); + var self = this; + var $e = $(e.currentTarget); + if (confirm(_t("Do you really want to delete this attachment ?"))) { + (new instance.web.DataSet(this, 'ir.attachment')).unlink([parseInt($e.attr('data-id'), 10)]).then(function() { + self.do_attachement_update(self.dataset, self.model_id); }); } } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 3764395dc13..e293ffc7adb 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -117,7 +117,7 @@ <t t-name="DatabaseManager"> <div class="oe_database_manager"> <div class="oe_database_manager_menu"> - <ul class="oe_form_notebook"> + <ul class="oe_notebook"> <li><a href="#db_create">Create</a></li> <li><a href="#db_drop">Drop</a></li> <li><a href="#db_backup">Backup</a></li> @@ -273,8 +273,10 @@ </t> <t t-name="Menu.more"> <li class="oe_menu_more_container"> - <a href="#" class="oe_menu_more_link oe_dropdown_toggle">More</a> - <ul class="oe_menu_more" style="display: none;"/> + <span class="oe_topbar_item oe_menu_more_link oe_dropdown_toggle oe_dropdown_arrow"> + More + <ul class="oe_menu_more oe_dropdown_menu"/> + </span> </li> </t> <t t-name="Menu.secondary"> @@ -316,19 +318,15 @@ </t> <t t-name="UserMenu"> - <ul class="oe_user_menu oe_topbar_item"> - <li class="oe_dropdown"> - <a href="#" class="oe_dropdown_toggle"> - <img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/> - <span class="oe_topbar_name"/> - </a> - <ul class="oe_dropdown_options"> - <li><a href="#" data-menu="about">About OpenERP</a></li> - <li><a href="#" data-menu="settings">Preferences</a></li> - <li><a href="#" data-menu="logout">Log out</a></li> - </ul> - </li> - </ul> + <span class="oe_user_menu oe_topbar_item oe_dropdown_toggle oe_dropdown_arrow"> + <img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/> + <span class="oe_topbar_name"/> + <ul class="oe_dropdown_menu"> + <li><a href="#" data-menu="about">About OpenERP</a></li> + <li><a href="#" data-menu="settings">Preferences</a></li> + <li><a href="#" data-menu="logout">Log out</a></li> + </ul> + </span> </t> <t t-name="UserMenu.about"> <div> @@ -404,7 +402,7 @@ <col width="33%"/> <col width="33%"/> <col width="34%"/> - <tr class="oe_header_row"> + <tr class="oe_header_row oe_header_row_top"> <td colspan="2"> <h2 class="oe_view_title" t-if="widget.flags.display_title !== false"> <span class="oe_view_title_text"><t t-esc="widget.display_title()"/></span> @@ -423,8 +421,8 @@ </td> <td> <ul class="oe_view_manager_switch oe_button_group oe_right"> - <t t-if="widget.views_src.length > 2" t-foreach="widget.views_src" t-as="view"> - <li t-if="view.view_type != 'form'" class="oe_e"><a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type" t-att-title="_t('Switch to ') + (view.label || view.view_type)"> + <t t-if="widget.views_src.length > 1" t-foreach="widget.views_src" t-as="view"> + <li class="oe_e"><a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type" t-att-title="_t('Switch to ') + (view.label || view.view_type)"> </a></li> </t> </ul> @@ -433,7 +431,6 @@ </tr> </table> - <div class="oe_view_manager_body"> <t t-foreach="widget.views_src" t-as="view"> <div t-attf-class="oe_view_manager_view_#{view.view_type}"/> @@ -511,55 +508,31 @@ <div class="oe_sidebar"> <t t-foreach="widget.sections" t-as="section"> <div class="oe_form_dropdown_section"> - <button class="oe_dropdown_toggle"><t t-esc="section.label"/></button> - <ul class="oe_dropdown_menu"> - <li t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname"> - <a class="oe_sidebar_action_a" t-att-title="item.title" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank"> - <t t-raw="item.label"/> - </a> - </li> - <li t-if="section.name == 'files'" class="oe_sidebar_add" style="display:none;"> - Input type file stuff - </li> - </ul> + <button class="oe_dropdown_toggle oe_dropdown_arrow"> + <t t-esc="section.label"/> + <ul class="oe_dropdown_menu"> + <li t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname"> + <a class="oe_sidebar_action_a" t-att-title="item.title" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank"> + <t t-raw="item.label"/> + </a> + <a t-if="section.name == 'files'" class="oe_sidebar_delete_item" t-att-data-id="item.id" title="Delete this attachment">x</a> + </li> + <li t-if="section.name == 'files'" class="oe_sidebar_add_attachment"> + <t t-call="HiddenInputFile"> + <t t-set="fileupload_id" t-value="widget.fileupload_id"/> + <t t-set="fileupload_action">/web/binary/upload_attachment</t> + <input type="hidden" name="model" t-att-value="widget.dataset and widget.dataset.model"/> + <input type="hidden" name="id" t-att-value="widget.model_id"/> + <input type="hidden" name="session_id" t-att-value="widget.session.session_id"/> + <span>Add...</span> + </t> + </li> + </ul> + </button> </div> </t> </div> </t> -<t t-name="Sidebar.attachments"> - <div class="oe-sidebar-attachments-toolbar"> - <div class="oe-binary-file-set" style="float: right"> - <form class="oe-binary-form" t-attf-target="#{element_id}_iframe" - method="post" enctype="multipart/form-data" action="/web/binary/upload_attachment"> - <input type="hidden" name="session_id" t-att-value="session.session_id"/> - <input type="hidden" name="callback" t-attf-value="#{element_id}_iframe"/> - <input type="hidden" name="model" t-att-value="view.dataset.model"/> - <input type="hidden" name="id" t-att-value="view.datarecord.id"/> - <button class="oe_button" type="button"> - <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16" style="display: none"/> - <span>Add</span> - </button> - <input type="file" class="oe-binary-file" name="ufile" title="Add attachment" - t-att-onclick="view.datarecord.id ? null : 'alert(\'No record selected ! You can only attach to existing record.\'); return false;'"/> - </form> - <iframe t-attf-id="#{element_id}_iframe" t-attf-name="#{element_id}_iframe" style="display: none"/> - </div> - </div> - <br style="clear: both"/> - <ul class="oe-sidebar-attachments-items"> - <li t-foreach="attachments" t-as="attachment"> - <t t-if="attachment.type == 'binary'" t-set="attachment.url" t-value="_s + '/web/binary/saveas?session_id=' - + session.session_id + '&model=ir.attachment&id=' + attachment.id - + '&field=datas&filename_field=name&t=' + (new Date().getTime())"/> - <a class="oe-sidebar-attachments-link" t-att-href="attachment.url" target="_blank"> - <t t-esc="attachment.name"/> - </a> - <a href="#" class="oe-sidebar-attachment-delete" t-att-data-id="attachment.id" t-attf-title="Delete the attachment #{attachment.name}"> - <img t-att-src='_s + "/web/static/src/img/attachments-close.png"' width="15" height="15" border="0"/> - </a> - </li> - </ul> -</t> <t t-name="TreeView"> <select t-if="toolbar" style="width: 30%"> @@ -642,8 +615,8 @@ </tfoot> </table> <div t-name="ListView.buttons" class="oe_list_buttons"> - <t t-if="!widget.no_leaf and widget.options.action_buttons !== false"> - <button type="button" class="oe_button oe_list_add oe_form_button_hi" t-if="widget.options.addable"> + <t t-if="!widget.no_leaf and widget.options.action_buttons !== false and widget.options.addable"> + <button type="button" class="oe_button oe_list_add oe_highlight"> <t t-esc="widget.options.addable"/> </button> <span class="oe_fade">or</span> <a href="#" class="oe_bold oe_list_button_import">Import</a> @@ -791,11 +764,11 @@ </t> <t t-name="FormRenderingGroup"> <t t-if="string" t-call="FormRenderingSeparator"/> - <table border="0" cellpadding="0" cellspacing="0" width="100%" t-attf-class="oe_form_group #{classnames}"/> + <table border="0" cellpadding="0" cellspacing="0" t-attf-class="oe_form_group #{classnames}"/> </t> <t t-name="FormRenderingNotebook"> <div> - <ul t-attf-class="oe_form_notebook #{classnames}"> + <ul t-attf-class="oe_notebook #{classnames}"> <li t-foreach="pages" t-as="page" t-att-modifiers="page.modifiers"> <a t-attf-href="##{page.id}"> <t t-esc="page.string"/> @@ -805,7 +778,7 @@ </div> </t> <t t-name="FormRenderingNotebookPage"> - <div t-attf-class="oe_form_notebook_page #{classnames}" t-att-id="id"> + <div t-attf-class="oe_notebook_page #{classnames}" t-att-id="id"> </div> </t> <t t-name="FormRenderingSeparator"> @@ -903,9 +876,6 @@ <span class="oe_form_field oe_form_field_email oe_form_field_with_button"> <a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri"/> <t t-if="!widget.get('effective_readonly')"> - <button class="oe_button" tabindex="-1" type="button" title="Send an e-mail with your default e-mail client"> - <img t-att-src='_s + "/web/static/src/img/icons/terp-mail-message-new.png"'/> - </button> <div> <input type="text" t-att-id="widget.id_for_label" @@ -1009,7 +979,7 @@ </t> </t> <t t-name="FieldReference"> - <table class="oe_form_field oe_form_field_reference oe_form" border="0" cellpadding="0" cellspacing="0"> + <table class="oe_form_field oe_form_field_reference" border="0" cellpadding="0" cellspacing="0"> <tr> <td t-attf-class="oe_form_frame_cell oe_form_selection"> <span t-attf-class="oe_form_view_reference_selection"/> @@ -1049,21 +1019,13 @@ </t> <t t-name="FieldBinaryImage"> <span class="oe_form_field oe_form_field_image"> - <div class="oe_form_field_image_controls"> - <div class="oe-binary-file-set"> - <form class="oe-binary-form" t-att-target="widget.iframe" - method="post" enctype="multipart/form-data" action="/web/binary/upload"> - <input type="hidden" name="session_id" value=""/> - <input type="hidden" name="callback" t-att-value="widget.iframe"/> - <button class="oe_button" type="button" title="Set Image"> - <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/> - </button> - <input type="file" class="oe-binary-file" name="ufile" - t-att-tabindex="widget.node.attrs.tabindex" - t-att-autofocus="widget.node.attrs.autofocus" - /> - </form> - </div> + <div class="oe_form_field_image_controls oe_edit_only"> + <t t-call="HiddenInputFile"> + <t t-set="fileupload_id" t-value="widget.fileupload_id"/> + <button class="oe_button" type="button" title="Set Image"> + <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/> + </button> + </t> <button class="oe_button oe-binary-file-clear" type="button" title="Clear"> <img t-att-src='_s + "/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"'/> </button> @@ -1071,7 +1033,6 @@ <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/> <b>Uploading ...</b> </div> - <iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"/> </div> </span> </t> @@ -1099,24 +1060,22 @@ <table cellspacing="0" cellpadding="0" border="0"> <tr> <td> - <div class="oe-binary-file-set" style="width: 80px; height:22px;"> - <form class="oe-binary-form" t-att-target="widget.iframe" - method="post" enctype="multipart/form-data" action="/web/binary/upload"> - <input type="hidden" name="session_id" value=""/> - <input type="hidden" name="callback" t-att-value="widget.iframe"/> - <button class="oe_button oe_field_button" type="button" title="Set Image"> - <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/> - <span>Select</span> - </button> - <input type="file" class="oe-binary-file" name="ufile"/> - </form> - </div> + <t t-call="HiddenInputFile"> + <t t-set="fileupload_id" t-value="widget.fileupload_id"/> + <t t-set="fileupload_style">width: 83px;</t> + <button class="oe_button oe_field_button" type="button" title="Set Image"> + <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/> + <span>Select</span> + </button> + </t> </td> <td> - <button class="oe_button oe-binary-file-save" type="button" title="Save As"> - <img t-att-src='_s + "/web/static/src/img/icons/gtk-save.png"'/> - <span>Save As</span> - </button> + <a class="oe_binary_file_save_data"> + <button class="oe_button oe_binary_file_save" type="button" title="Save As"> + <img t-att-src='_s + "/web/static/src/img/icons/gtk-save.png"'/> + <span>Save As</span> + </button> + </a> </td> <td> <button class="oe_button oe-binary-file-clear" type="button" title="Clear"> @@ -1130,7 +1089,6 @@ <td class="oe-binary-progress" style="display: none" nowrap="true"> <img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/> <b>Uploading ...</b> - <iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"/> </td> </tr> </table> @@ -1141,6 +1099,18 @@ </span> </t> </t> +<t t-name="HiddenInputFile"> + <div t-attf-class="oe_hidden_input_file #{fileupload_class or ''}" t-att-style="fileupload_style"> + <form class="oe-binary-form" t-att-target="fileupload_id" + method="post" enctype="multipart/form-data" t-att-action="fileupload_action || '/web/binary/upload'"> + <input type="hidden" name="session_id" value=""/> + <input type="hidden" name="callback" t-att-value="fileupload_id"/> + <t t-raw="__content__"/> + <input type="file" class="oe-binary-file" name="ufile"/> + </form> + <iframe t-att-id="fileupload_id" t-att-name="fileupload_id" style="display: none"/> + </div> +</t> <t t-name="WidgetButton"> <button type="button" class="oe_button oe_form_button" t-att-tabindex="widget.node.attrs.tabindex" @@ -1204,8 +1174,6 @@ </t> <t t-name="One2Many.viewmanager" t-extend="ViewManager"> - <t t-jquery="span.oe_view_title_text" t-operation="replace"/> - <t t-jquery=".oe-view-manager-header"> this.attr('t-if', 'views.length != 1'); </t> @@ -1282,7 +1250,7 @@ </div> </t> <t t-name="SearchView.add_to_dashboard"> - <div class="oe_form"> + <div> <p><b>Select Dashboard to add this filter to:</b></p> <select style="width: 100%; margin-right: 1em;"> <option t-foreach="dashboards" t-as="menu" t-att-value="menu.id" t-att-selected="(menu.id == selected_menu_id) || undefined"><t t-esc="menu.name"/></option> @@ -1409,10 +1377,10 @@ </t> </t> </t> -<div t-name="SearchView.Filters" class="oe_searchview_section"> +<div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section"> </div> -<div t-name="SearchView.CustomFilters" class="oe_searchview_section"> +<div t-name="SearchView.CustomFilters" class="oe_searchview_custom oe_searchview_section"> <div> <h3><span class="oe_i">M</span> Custom Filters</h3> <ul class="oe_searchview_custom_list"/> |
