diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 4a426e13e39..72b264428fd 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -1,4 +1,4 @@ -@charset "utf-8"; +@charset "UTF-8"; @font-face { font-family: "mnmliconsRegular"; src: url("/web/static/src/font/mnmliconsv21-webfont.eot") format("eot"); @@ -1969,59 +1969,6 @@ .openerp .oe-listview-content .numeric input { text-align: right; } -.openerp .oe_kanban_group_title { - margin: 1px 1px 4px; - font-size: 15px; - font-weight: bold; - text-shadow: 0 1px 0 white; -} -.openerp .oe_kanban_column, .openerp .oe_kanban_group_header { - width: 240px; - vertical-align: top; - padding: 6px 7px 6px 6px; - background: #f0eeee; - border-left: 1px solid #f0f8f8; - border-right: 1px solid #b9b9b9; -} -.openerp .oe_kanban_record { - position: relative; - display: block; - min-height: 50px; - margin: 6px 0; - display: block; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; -} -.openerp .oe_kanban_record:last-child { - margin-bottom: 0; -} -.openerp .oe_kanban_record .oe_kanban_title { - font-weight: bold; - margin: 2px 4px; -} -.openerp .oe_kanban_gravatar { - width: 20px; - height: 20px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -} -.openerp .oe_kanban_avatar_toto { - height: 40px; - width: 40px; - border: 1px solid; - border-color: #e5e5e5 #dbdbdb #d2d2d2; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -} .openerp .oe_trad_field.touched { border: 1px solid green !important; } diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index f128d93c4c1..c345ca9235b 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -850,18 +850,6 @@ $colour4: #8a89ba content: "k" .oe_vm_switch_diagram:after content: "f" - //.oe_vm_switch_list:after, .oe_vm_switch_tree:after - //content: "ö" - //.oe_vm_switch_graph:after - //content: "ó" - //.oe_vm_switch_gantt:after - //content: "y" - //.oe_vm_switch_calendar:after - //content: "b" - //.oe_vm_switch_kanban:after - //content: "ó" - //.oe_vm_switch_diagram:after - //content: "}" // }}} // ViewManager.sidebar {{{ .oe_form_dropdown_section @@ -1631,44 +1619,6 @@ $colour4: #8a89ba input text-align: right // }}} - // KanbanView {{{ - .oe_kanban_group_title - margin: 1px 1px 4px - font-size: 15px - font-weight: bold - text-shadow: 0 1px 0 white - .oe_kanban_column, .oe_kanban_group_header - width: 240px - vertical-align: top - padding: 6px 7px 6px 6px - background: #f0eeee - border-left: 1px solid #f0f8f8 - border-right: 1px solid #b9b9b9 - .oe_kanban_record - position: relative - display: block - min-height: 50px - margin: 6px 0 - display: block - @include radius(4px) - &:last-child - margin-bottom: 0 - .oe_kanban_title - font-weight: bold - margin: 2px 4px - .oe_kanban_gravatar - width: 20px - height: 20px - @include radius(3px) - @include box-shadow(0 1px 2px rgba(0,0,0,0.2)) - .oe_kanban_avatar_toto - height: 40px - width: 40px - border: 1px solid - border-color: #e5e5e5 #dbdbdb #d2d2d2 - @include radius(3px) - @include box-shadow(0 1px 2px rgba(0,0,0,0.2)) - // }}} // Translation {{{ .oe_trad_field.touched border: 1px solid green !important diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index a875b3ffc16..ee0517807e6 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -1,500 +1,607 @@ +@charset "utf-8"; +.openerp .oe_kanban_view { + position: absolute; + top: 111px; + bottom: 0; +} .openerp .oe_kanban_view .ui-sortable-placeholder { - border: 1px dotted black; - visibility: visible !important; - height: 60px !important; -} -.openerp .oe_kanban_groups { - width: 100%; -} -.openerp .oe_kanban_group_header { - position: relative; -} -.openerp .oe_kanban_group_folded { - padding: 0 5px 0 5px; -} -.openerp .oe_kanban_group_folded .oe_kanban_group_title, -.openerp .oe_kanban_group_folded.oe_kanban_column > *, -.openerp .oe_kanban_group_folded .oe_kanban_aggregates { - display: none; -} -.openerp .oe_kanban_group_folded .oe_kanban_group_title_vertical { - display: block; -} - -.openerp .oe_kanban_group_title { - font-size: 100%; - font-weight: bold; - padding-left: 2px; - color: #333333; -} -.openerp .oe_kanban_group_title_undefined { - color: #666666; -} -.openerp .oe_kanban_group_title_vertical { - writing-mode: tb-rl; - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -o-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); - width: 30px; - height: 20px; - font-size: 24px; - white-space: nowrap; - display: none; - position: absolute; - top: 10px; -} -.openerp .oe_kanban_show_more { - clear: both; - text-align: center; -} -.openerp .oe_kanban_grouped .oe_kanban_show_more .oe_button { - width: 100%; -} -.openerp .oe_kanban_ungrouped .oe_kanban_record { - float: left; - padding: 2px; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -.openerp .oe_kanban_fold_icon { - cursor: pointer; - float: left; - padding: 2px; - width: 16px; - height: 16px; - background: url(/web_kanban/static/src/img/minus-icon.png) no-repeat; -} -.openerp .oe_kanban_group_folded .oe_kanban_fold_icon { - background: url(/web_kanban/static/src/img/plus-icon.png) no-repeat; -} - -.openerp ul.oe_kanban_aggregates { - padding: 0; - margin: 0 0 0 22px; -} -.openerp ul.oe_kanban_aggregates li { - list-style: circle; - font-style: italic; -} -.openerp ul.oe_kanban_aggregates span { - text-decoration: underline; - font-size: 90%; -} - -.openerp .oe_kanban_action_button { - height: 22px; - margin: 0; -} -.openerp .oe_kanban_action_a { - text-decoration: none; -} - -.openerp .oe_kanban_box { - background: #FFF; - border: 2px solid #CCC; - border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - margin-bottom: 5px; -} -.openerp .oe_kanban_box_header { - background: #EEE; - border-bottom: 1px solid #CCC; -} -.openerp .oe_kanban_title { - font-size: 95%; - font-weight: bold; - padding: 0 4px 0 4px; -} -.openerp .oe_kanban_small { - font-size: 80%; - font-weight: normal; -} -.openerp .oe_kanban_table { - width: 100%; - border: none; - border-collapse: collapse; - margin: 0; - padding: 0; -} -.openerp .oe_kanban_table tr td { - padding: 0; -} -.openerp .oe_kanban_table tr td.oe_kanban_title { - padding: 2px; -} -.openerp .oe_kanban_gravatar { - display: block; -} -.openerp .oe_kanban_box_content { - padding: 4px; - font-size: 90%; -} -.openerp .oe_kanban_button { - border: 1px solid #8ec1da; - background-color: #ddeef6; - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - color: #000000; - text-shadow: 0 1px #fff; - padding: 0 4px; - font-size: 85%; - margin: 1px; -} -.openerp a.oe_kanban_button:hover, -.openerp button.oe_kanban_button:hover { - background-color: #eeddf6; -} -.openerp .oe_kanban_buttons_set { - border-top: 1px dotted; - white-space: nowrap; - padding-top: 2px; - position: relative; - clear: both; -} -.openerp .oe_kanban_buttons_set a { - padding: 2px; -} -.oe_kanban_color_picker { - position: absolute; - top: -10px; - border: 1px solid black; - -moz-box-shadow: 2px 2px 5px #666; - -webkit-box-shadow: 2px 2px 5px #666; - box-shadow: 2px 2px 5px #666; - z-index: 2; -} -.oe_kanban_color_picker a { - display: block; - width: 30px; - height: 30px; - border: 1px solid black; - text-align: center; - text-decoration: none; -} -.oe_kanban_color_picker a:hover { - border-color: white; -} -.oe_kanban_color_picker span { - border: none; - font-size: 120%; - font-weight: bold; - color: black; - line-height: 30px; -} -.openerp .oe_kanban_left { - float: left; -} -.openerp .oe_kanban_right { - float: right; -} -.openerp .oe_kanban_clear { - clear: both; -} -.openerp .oe_kanban_box_show_onclick { - display: none; -} -.openerp .oe_kanban_draghandle { - cursor: move; -} -.openerp .oe_kanban_color_border { - border-color: #CCCCCC; -} -.openerp .oe_kanban_color_border { - border-color: #CCCCCC; -} -.openerp .oe_kanban_tooltip ul, -.openerp ul.oe_kanban_tooltip { - padding: 0 0 4px 0; - margin: 5px 0 0 15px; - list-style: circle; -} -.openerp .oe_kanban_highlight { - border-radius: 2px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - padding: 1px 5px; - margin: 1px 4px; - white-space: nowrap; - display: inline-block; - line-height: 1em; -} - -.openerp .oe_kanban_add { - cursor: pointer; - position: absolute; - top: 6px; - right: 6px; - width: 16px; - height: 16px; - background: url(/web_kanban/static/src/img/plus-icon.png) no-repeat; -} - -.openerp .oe_kanban_quick_create { - /* apply block formatting context */ - overflow: hidden; -} -.openerp .oe_kanban_no_group .oe_kanban_quick_create { - width: 200px; - padding: 10px; -} -.openerp .oe_kanban_quick_create input { - display: block; - /* margins within width */ - box-sizing: border-box; - width: 100%; -} -.openerp .oe_kanban_quick_create button { - float: right; -} - -/* Custom colors are also present in kanban.js */ -/* Custom color#0 */ -.openerp .oe_kanban_color_0 .oe_kanban_color_bglight { - background: #FFFFFF; -} -.openerp .oe_kanban_color_0 .oe_kanban_color_bgdark { - background: #EEEEEE; -} -.openerp .oe_kanban_color_0 .oe_kanban_color_border { - border-color: #CCCCCC; -} -.openerp .oe_kanban_color_0 .oe_kanban_button { - background-color: #EEEEEE; - border-color: #CCCCCC; - text-shadow: 0 1px #FFFFFF; -} -.openerp .oe_kanban_color_0 .oe_kanban_button_active, -.openerp .oe_kanban_color_0 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_0 button.oe_kanban_button:hover { - background-color: #999999; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#1 */ -.openerp .oe_kanban_color_1 .oe_kanban_color_bglight { - background: #CCCCCC; -} -.openerp .oe_kanban_color_1 .oe_kanban_color_bgdark { - background: #999999; -} -.openerp .oe_kanban_color_1 .oe_kanban_color_border { - border-color: #666666; -} -.openerp .oe_kanban_color_1 .oe_kanban_button { - background-color: #999999; - border-color: #666666; - text-shadow: 0 1px #CCCCCC; -} -.openerp .oe_kanban_color_1 .oe_kanban_button_active, -.openerp .oe_kanban_color_1 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_1 button.oe_kanban_button:hover { - background-color: #666666; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#2 */ -.openerp .oe_kanban_color_2 .oe_kanban_color_bglight { - background: #FFC7C7; -} -.openerp .oe_kanban_color_2 .oe_kanban_color_bgdark { - background: #FF8F8F; -} -.openerp .oe_kanban_color_2 .oe_kanban_color_border { - border-color: #D97979; -} -.openerp .oe_kanban_color_2 .oe_kanban_button { - background-color: #FF8F8F; - border-color: #D97979; - text-shadow: 0 1px #FFC7C7; -} -.openerp .oe_kanban_color_2 .oe_kanban_button_active, -.openerp .oe_kanban_color_2 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_2 button.oe_kanban_button:hover { - background-color: #CC5C5C; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#3 */ -.openerp .oe_kanban_color_3 .oe_kanban_color_bglight { - background: #FFF1C7; -} -.openerp .oe_kanban_color_3 .oe_kanban_color_bgdark { - background: #FFE38F; -} -.openerp .oe_kanban_color_3 .oe_kanban_color_border { - border-color: #D9C179; -} -.openerp .oe_kanban_color_3 .oe_kanban_button { - background-color: #FFE38F; - border-color: #D9C179; - text-shadow: 0 1px #FFF1C7; -} -.openerp .oe_kanban_color_3 .oe_kanban_button_active, -.openerp .oe_kanban_color_3 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_3 button.oe_kanban_button:hover { - background-color: #CCB05C; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#4 */ -.openerp .oe_kanban_color_4 .oe_kanban_color_bglight { - background: #E3FFC7; -} -.openerp .oe_kanban_color_4 .oe_kanban_color_bgdark { - background: #C7FF8F; -} -.openerp .oe_kanban_color_4 .oe_kanban_color_border { - border-color: #A9D979; -} -.openerp .oe_kanban_color_4 .oe_kanban_button { - background-color: #C7FF8F; - border-color: #A9D979; - text-shadow: 0 1px #E3FFC7; -} -.openerp .oe_kanban_color_4 .oe_kanban_button_active, -.openerp .oe_kanban_color_4 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_4 button.oe_kanban_button:hover { - background-color: #94CC5C; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#5 */ -.openerp .oe_kanban_color_5 .oe_kanban_color_bglight { - background: #C7FFD5; -} -.openerp .oe_kanban_color_5 .oe_kanban_color_bgdark { - background: #8FFFAB; -} -.openerp .oe_kanban_color_5 .oe_kanban_color_border { - border-color: #79D991; -} -.openerp .oe_kanban_color_5 .oe_kanban_button { - background-color: #8FFFAB; - border-color: #79D991; - text-shadow: 0 1px #C7FFD5; -} -.openerp .oe_kanban_color_5 .oe_kanban_button_active, -.openerp .oe_kanban_color_5 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_5 button.oe_kanban_button:hover { - background-color: #5CCC78; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#6 */ -.openerp .oe_kanban_color_6 .oe_kanban_color_bglight { - background: #C7FFFF; -} -.openerp .oe_kanban_color_6 .oe_kanban_color_bgdark { - background: #8FFFFF; -} -.openerp .oe_kanban_color_6 .oe_kanban_color_border { - border-color: #79D9D9; -} -.openerp .oe_kanban_color_6 .oe_kanban_button { - background-color: #8FFFFF; - border-color: #79D9D9; - text-shadow: 0 1px #C7FFFF; -} -.openerp .oe_kanban_color_6 .oe_kanban_button_active, -.openerp .oe_kanban_color_6 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_6 button.oe_kanban_button:hover { - background-color: #5CCCCC; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#7 */ -.openerp .oe_kanban_color_7 .oe_kanban_color_bglight { - background: #C7D5FF; -} -.openerp .oe_kanban_color_7 .oe_kanban_color_bgdark { - background: #8FABFF; -} -.openerp .oe_kanban_color_7 .oe_kanban_color_border { - border-color: #8FABFF; -} -.openerp .oe_kanban_color_7 .oe_kanban_button { - background-color: #8FABFF; - border-color: #7995E9; - text-shadow: 0 1px #C7D5FF; -} -.openerp .oe_kanban_color_7 .oe_kanban_button_active, -.openerp .oe_kanban_color_7 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_7 button.oe_kanban_button:hover { - background-color: #5C78CC; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#8 */ -.openerp .oe_kanban_color_8 .oe_kanban_color_bglight { - background: #E3C7FF; -} -.openerp .oe_kanban_color_8 .oe_kanban_color_bgdark { - background: #C78FFF; -} -.openerp .oe_kanban_color_8 .oe_kanban_color_border { - border-color: #A979D9; -} -.openerp .oe_kanban_color_8 .oe_kanban_button { - background-color: #C78FFF; - border-color: #A979D9; - text-shadow: 0 1px #E3C7FF; -} -.openerp .oe_kanban_color_8 .oe_kanban_button_active, -.openerp .oe_kanban_color_8 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_8 button.oe_kanban_button:hover { - background-color: #945CCC; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Custom color#9 */ -.openerp .oe_kanban_color_9 .oe_kanban_color_bglight { - background: #FFC7F1; -} -.openerp .oe_kanban_color_9 .oe_kanban_color_bgdark { - background: #FF8FE3; -} -.openerp .oe_kanban_color_9 .oe_kanban_color_border { - border-color: #D979C1; -} -.openerp .oe_kanban_color_9 .oe_kanban_button { - background-color: #FF8FE3; - border-color: #D979C1; - text-shadow: 0 1px #FFC7F1; -} -.openerp .oe_kanban_color_9 .oe_kanban_button_active, -.openerp .oe_kanban_color_9 a.oe_kanban_button:hover, -.openerp .oe_kanban_color_9 button.oe_kanban_button:hover { - background-color: #CC5CB0; - color: #fff; - text-shadow: 0 1px #000; -} - -/* Red border */ -.openerp .oe_kanban_color_alert .oe_kanban_color_border, -.openerp .oe_kanban_color_red .oe_kanban_color_border { - border-color: #c00 !important; -} - -/* Green border */ -.openerp .oe_kanban_color_green .oe_kanban_color_border { - border-color: #0c0 !important; -} - -/* Blue border */ -.openerp .oe_kanban_color_blue .oe_kanban_color_border { - border-color: #00c !important; + border: 1px dotted black; + visibility: visible !important; + height: 60px !important; +} +.openerp .oe_kanban_view .oe_kanban_left { + float: left; +} +.openerp .oe_kanban_view .oe_kanban_right { + float: right; +} +.openerp .oe_kanban_view .oe_kanban_clear { + clear: both; +} +.openerp .oe_kanban_view .oe_kanban_groups { + height: 100%; +} +.openerp .oe_kanban_view .oe_kanban_group_title { + margin: 1px 1px 4px; + padding-left: 2px; + font-size: 100%; + font-weight: bold; + color: #333333; + text-shadow: 0 1px 0 white; +} +.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_group_header { + vertical-align: top; + padding: 6px 7px 6px 6px; + background: #f0eeee; + border-left: 1px solid #f0f8f8; + border-right: 1px solid #b9b9b9; +} +.openerp .oe_kanban_view .oe_kanban_column { + height: 100%; +} +.openerp .oe_kanban_view .oe_kanban_aggregates { + padding: 0; +} +.openerp .oe_kanban_view .oe_kanban_group_header { + position: relative; +} +.openerp .oe_kanban_view .oe_kanban_group_folded { + padding: 0 5px 0 5px; +} +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column > *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates { + display: none; +} +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical { + display: block; +} +.openerp .oe_kanban_view .oe_kanban_group_title_undefined { + color: #666666; +} +.openerp .oe_kanban_view .oe_kanban_group_title_vertical { + writing-mode: tb-rl; + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -o-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); + width: 30px; + height: 20px; + font-size: 24px; + white-space: nowrap; + display: none; + position: absolute; + top: 10px; +} +.openerp .oe_kanban_view .oe_kanban_fold_icon { + cursor: pointer; + float: left; + padding: 2px; + width: 16px; + height: 16px; + background: url(/web_kanban/static/src/img/minus-icon.png) no-repeat; +} +.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_fold_icon { + background: url(/web_kanban/static/src/img/plus-icon.png) no-repeat; +} +.openerp .oe_kanban_view .oe_kanban_add { + cursor: pointer; + position: absolute; + top: 6px; + right: 6px; + width: 16px; + height: 16px; + background: url(/web_kanban/static/src/img/plus-icon.png) no-repeat; +} +.openerp .oe_kanban_view .oe_kanban_quick_create { + overflow: hidden; +} +.openerp .oe_kanban_view .oe_kanban_no_group .oe_kanban_quick_create { + width: 200px; + padding: 10px; +} +.openerp .oe_kanban_view .oe_kanban_quick_create input { + display: block; + box-sizing: border-box; + width: 100%; +} +.openerp .oe_kanban_view .oe_kanban_quick_create button { + float: right; +} +.openerp .oe_kanban_view .oe_kanban_record { + position: relative; + display: block; + min-height: 50px; + margin: 6px 0; + display: block; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; +} +.openerp .oe_kanban_view .oe_kanban_record:last-child { + margin-bottom: 0; +} +.openerp .oe_kanban_view .oe_kanban_record .oe_kanban_title { + font-weight: bold; + margin: 2px 4px; +} +.openerp .oe_kanban_view .oe_kanban_gravatar { + display: block; + width: 20px; + height: 20px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); +} +.openerp .oe_kanban_view .oe_kanban_avatar_toto { + height: 40px; + width: 40px; + border: 1px solid; + border-color: #e5e5e5 #dbdbdb #d2d2d2; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); +} +.openerp .oe_kanban_view .oe_kanban_box { + background: white; + border: 2px solid #cccccc; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + margin-bottom: 5px; +} +.openerp .oe_kanban_view .oe_kanban_box_header { + background: #eeeeee; + border-bottom: 1px solid #cccccc; +} +.openerp .oe_kanban_view .oe_kanban_title { + font-size: 95%; + font-weight: bold; + padding: 0 4px 0 4px; +} +.openerp .oe_kanban_view .oe_kanban_small { + font-size: 80%; + font-weight: normal; +} +.openerp .oe_kanban_view .oe_kanban_show_more { + clear: both; + text-align: center; +} +.openerp .oe_kanban_view .oe_kanban_grouped .oe_kanban_show_more .oe_button { + width: 100%; +} +.openerp .oe_kanban_view .oe_kanban_ungrouped .oe_kanban_record { + float: left; + padding: 2px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; +} +.openerp .oe_kanban_view .oe_kanban_action_button { + height: 22px; + margin: 0; +} +.openerp .oe_kanban_view .oe_kanban_action_a { + text-decoration: none; +} +.openerp .oe_kanban_view .oe_kanban_table { + width: 100%; + border: none; + border-collapse: collapse; + margin: 0; + padding: 0; +} +.openerp .oe_kanban_view .oe_kanban_table tr td { + padding: 0; +} +.openerp .oe_kanban_view .oe_kanban_table tr td.oe_kanban_title { + padding: 2px; +} +.openerp .oe_kanban_view .oe_kanban_box_content { + padding: 4px; + font-size: 90%; +} +.openerp .oe_kanban_view .oe_kanban_button { + border: 1px solid #8ec1da; + background-color: #ddeef6; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color: black; + text-shadow: 0 1px white; + padding: 0 4px; + font-size: 85%; + margin: 1px; +} +.openerp .oe_kanban_view a.oe_kanban_button:hover, .openerp .oe_kanban_view .openerp button.oe_kanban_button:hover { + background-color: #eeddf6; +} +.openerp .oe_kanban_view .oe_kanban_buttons_set { + border-top: 1px dotted; + white-space: nowrap; + padding-top: 2px; + position: relative; + clear: both; +} +.openerp .oe_kanban_view .oe_kanban_buttons_set a { + padding: 2px; +} +.openerp .oe_kanban_view .oe_kanban_box_show_onclick { + display: none; +} +.openerp .oe_kanban_view .oe_kanban_draghandle { + cursor: move; +} +.openerp .oe_kanban_view .oe_kanban_color_border { + border-color: #cccccc; +} +.openerp .oe_kanban_view .oe_kanban_color_border { + border-color: #cccccc; +} +.openerp .oe_kanban_view .oe_kanban_tooltip ul, .openerp .oe_kanban_view ul.oe_kanban_tooltip { + padding: 0 0 4px 0; + margin: 5px 0 0 15px; + list-style: circle; +} +.openerp .oe_kanban_view .oe_kanban_highlight { + border-radius: 2px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + padding: 1px 5px; + margin: 1px 4px; + white-space: nowrap; + display: inline-block; + line-height: 1em; +} +.openerp .oe_kanban_view .oe_kanban_card { + position: relative; + display: block; + min-height: 50px; + background: white; + border: 1px solid #d8d8d8; + border-bottom-color: #b9b9b9; + padding: 6px; + margin: 6px 0; + display: block; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; +} +.openerp .oe_kanban_view .oe_kanban_card:last-child { + margin-bottom: 0; +} +.openerp .oe_kanban_view .oe_kanban_card:hover { + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); + -box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); +} +.openerp .oe_kanban_view .oe_kanban_card:hover .oe_kanban_menuaction { + display: block; +} +.openerp .oe_kanban_view .oe_kanban_card h3 { + margin: 0 16px 0 0; +} +.openerp .oe_kanban_view .oe_kanban_star { + float: left; + position: inline-block; + margin: 0 4px 0 0; +} +.openerp .oe_kanban_view .oe_kanban_avatar { + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); +} +.openerp .oe_kanban_view .oe_kanban_status { + display: inline-block; + height: 12px; + width: 12px; + margin: 4px auto; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); + -box-shadow: 0 1px 3px rgba(0, 0, 0, 0.6); +} +.openerp .oe_kanban_view .oe_kanban_status_green { + background: green; + background-position: center center; + background-image: -webkit-radial-gradient(circle, #55dd55 0%, #44aa44 40%, #339933 100%); + background-image: -moz-radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); + background-image: -ms-radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); + background-image: radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); +} +.openerp .oe_kanban_view .oe_kanban_status_red { + background: red; + background-position: center center; + background-image: -webkit-radial-gradient(circle, #ee7777 0%, #cc3333 40%, #bb0808 100%); + background-image: -moz-radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); + background-image: -ms-radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); + background-image: radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); +} +.openerp .oe_kanban_view .oe_kanban_text_red { + background: red; + color: black; +} +.openerp .oe_kanban_view a.oe_kanban_menuaction { + position: absolute; + top: 0px; + right: 3px; + display: none; + color: #4c4c4c; + cursor: pointer; +} +.openerp .oe_kanban_view a.oe_kanban_menuaction:hover { + text-decoration: none; +} +.openerp .oe_kanban_view .oe_kanban_menu { + display: none; + position: absolute; + top: 30px; + right: -140px; + padding: 4px; + border: 1px solid #afafb6; + width: 160px; + overflow-x: hidden; + z-index: 900; + 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_kanban_view .oe_kanban_menu p { + margin-left: 12px; +} +.openerp .oe_kanban_view .oe_kanban_menu li a { + display: block; + padding: 3px 6px; + line-height: 14px; + color: #4c4c4c; + text-decoration: none; +} +.openerp .oe_kanban_view .oe_kanban_menu li a:hover { + background: #f0f0fa; + background: -moz-linear-gradient(#f0f0fa, #eeeef6); + background: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background: -webkit-linear-gradient(#f0f0fa, #eeeef6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + -box-shadow: none; +} +.openerp .oe_kanban_view .oe_kanban_color_picker { + position: absolute; + top: -10px; + border: 1px solid black; + -moz-box-shadow: 2px 2px 5px #666666; + -webkit-box-shadow: 2px 2px 5px #666666; + box-shadow: 2px 2px 5px #666666; + z-index: 2; +} +.openerp .oe_kanban_view .oe_kanban_color_picker a { + display: block; + width: 30px; + height: 30px; + border: 1px solid black; + text-align: center; + text-decoration: none; +} +.openerp .oe_kanban_view .oe_kanban_color_picker a:hover { + border-color: white; +} +.openerp .oe_kanban_view .oe_kanban_color_picker span { + border: none; + font-size: 120%; + font-weight: bold; + color: black; + line-height: 30px; +} +.openerp .oe_kanban_view .oe_kanban_color_0 .oe_kanban_color_bglight { + background: white; +} +.openerp .oe_kanban_view .oe_kanban_color_0 .oe_kanban_color_bgdark { + background: #eeeeee; +} +.openerp .oe_kanban_view .oe_kanban_color_0 .oe_kanban_color_border { + border-color: #cccccc; +} +.openerp .oe_kanban_view .oe_kanban_color_0 .oe_kanban_button { + background-color: #eeeeee; + border-color: #cccccc; + text-shadow: 0 1px white; +} +.openerp .oe_kanban_view .oe_kanban_color_0 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_0 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_0 button.oe_kanban_button:hover { + background-color: #999999; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_1 .oe_kanban_color_bglight { + background: #cccccc; +} +.openerp .oe_kanban_view .oe_kanban_color_1 .oe_kanban_color_bgdark { + background: #999999; +} +.openerp .oe_kanban_view .oe_kanban_color_1 .oe_kanban_color_border { + border-color: #666666; +} +.openerp .oe_kanban_view .oe_kanban_color_1 .oe_kanban_button { + background-color: #999999; + border-color: #666666; + text-shadow: 0 1px #cccccc; +} +.openerp .oe_kanban_view .oe_kanban_color_1 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_1 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_1 button.oe_kanban_button:hover { + background-color: #666666; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_2 .oe_kanban_color_bglight { + background: #ffc7c7; +} +.openerp .oe_kanban_view .oe_kanban_color_2 .oe_kanban_color_bgdark { + background: #ff8f8f; +} +.openerp .oe_kanban_view .oe_kanban_color_2 .oe_kanban_color_border { + border-color: #d97979; +} +.openerp .oe_kanban_view .oe_kanban_color_2 .oe_kanban_button { + background-color: #ff8f8f; + border-color: #d97979; + text-shadow: 0 1px #ffc7c7; +} +.openerp .oe_kanban_view .oe_kanban_color_2 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_2 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_2 button.oe_kanban_button:hover { + background-color: #cc5c5c; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_3 .oe_kanban_color_bglight { + background: #fff1c7; +} +.openerp .oe_kanban_view .oe_kanban_color_3 .oe_kanban_color_bgdark { + background: #ffe38f; +} +.openerp .oe_kanban_view .oe_kanban_color_3 .oe_kanban_color_border { + border-color: #d9c179; +} +.openerp .oe_kanban_view .oe_kanban_color_3 .oe_kanban_button { + background-color: #ffe38f; + border-color: #d9c179; + text-shadow: 0 1px #fff1c7; +} +.openerp .oe_kanban_view .oe_kanban_color_3 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_3 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_3 button.oe_kanban_button:hover { + background-color: #ccb05c; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_4 .oe_kanban_color_bglight { + background: #e3ffc7; +} +.openerp .oe_kanban_view .oe_kanban_color_4 .oe_kanban_color_bgdark { + background: #c7ff8f; +} +.openerp .oe_kanban_view .oe_kanban_color_4 .oe_kanban_color_border { + border-color: #a9d979; +} +.openerp .oe_kanban_view .oe_kanban_color_4 .oe_kanban_button { + background-color: #c7ff8f; + border-color: #a9d979; + text-shadow: 0 1px #e3ffc7; +} +.openerp .oe_kanban_view .oe_kanban_color_4 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_4 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_4 button.oe_kanban_button:hover { + background-color: #94cc5c; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_5 .oe_kanban_color_bglight { + background: #c7ffd5; +} +.openerp .oe_kanban_view .oe_kanban_color_5 .oe_kanban_color_bgdark { + background: #8fffab; +} +.openerp .oe_kanban_view .oe_kanban_color_5 .oe_kanban_color_border { + border-color: #79d991; +} +.openerp .oe_kanban_view .oe_kanban_color_5 .oe_kanban_button { + background-color: #8fffab; + border-color: #79d991; + text-shadow: 0 1px #c7ffd5; +} +.openerp .oe_kanban_view .oe_kanban_color_5 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_5 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_5 button.oe_kanban_button:hover { + background-color: #5ccc78; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_6 .oe_kanban_color_bglight { + background: #c7ffff; +} +.openerp .oe_kanban_view .oe_kanban_color_6 .oe_kanban_color_bgdark { + background: #8fffff; +} +.openerp .oe_kanban_view .oe_kanban_color_6 .oe_kanban_color_border { + border-color: #79d9d9; +} +.openerp .oe_kanban_view .oe_kanban_color_6 .oe_kanban_button { + background-color: #8fffff; + border-color: #79d9d9; + text-shadow: 0 1px #c7ffff; +} +.openerp .oe_kanban_view .oe_kanban_color_6 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_6 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_6 button.oe_kanban_button:hover { + background-color: #5ccccc; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_7 .oe_kanban_color_bglight { + background: #c7d5ff; +} +.openerp .oe_kanban_view .oe_kanban_color_7 .oe_kanban_color_bgdark { + background: #8fabff; +} +.openerp .oe_kanban_view .oe_kanban_color_7 .oe_kanban_color_border { + border-color: #8fabff; +} +.openerp .oe_kanban_view .oe_kanban_color_7 .oe_kanban_button { + background-color: #8fabff; + border-color: #7995e9; + text-shadow: 0 1px #c7d5ff; +} +.openerp .oe_kanban_view .oe_kanban_color_7 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_7 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_7 button.oe_kanban_button:hover { + background-color: #5c78cc; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_8 .oe_kanban_color_bglight { + background: #e3c7ff; +} +.openerp .oe_kanban_view .oe_kanban_color_8 .oe_kanban_color_bgdark { + background: #c78fff; +} +.openerp .oe_kanban_view .oe_kanban_color_8 .oe_kanban_color_border { + border-color: #a979d9; +} +.openerp .oe_kanban_view .oe_kanban_color_8 .oe_kanban_button { + background-color: #c78fff; + border-color: #a979d9; + text-shadow: 0 1px #e3c7ff; +} +.openerp .oe_kanban_view .oe_kanban_color_8 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_8 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_8 button.oe_kanban_button:hover { + background-color: #945ccc; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_9 .oe_kanban_color_bglight { + background: #ffc7f1; +} +.openerp .oe_kanban_view .oe_kanban_color_9 .oe_kanban_color_bgdark { + background: #ff8fe3; +} +.openerp .oe_kanban_view .oe_kanban_color_9 .oe_kanban_color_border { + border-color: #d979c1; +} +.openerp .oe_kanban_view .oe_kanban_color_9 .oe_kanban_button { + background-color: #ff8fe3; + border-color: #d979c1; + text-shadow: 0 1px #ffc7f1; +} +.openerp .oe_kanban_view .oe_kanban_color_9 .oe_kanban_button_active, .openerp .oe_kanban_view .oe_kanban_color_9 a.oe_kanban_button:hover, .openerp .oe_kanban_view .oe_kanban_color_9 button.oe_kanban_button:hover { + background-color: #cc5cb0; + color: white; + text-shadow: 0 1px black; +} +.openerp .oe_kanban_view .oe_kanban_color_alert .oe_kanban_color_border, .openerp .oe_kanban_view .oe_kanban_color_red .oe_kanban_color_border { + border-color: #cc0000 !important; +} +.openerp .oe_kanban_view .oe_kanban_color_green .oe_kanban_color_border { + border-color: #00cc00 !important; +} +.openerp .oe_kanban_view .oe_kanban_color_blue .oe_kanban_color_border { + border-color: #0000cc !important; } diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass new file mode 100644 index 00000000000..59db3fc8743 --- /dev/null +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -0,0 +1,545 @@ +@charset "utf-8" + +// Mixins {{{ +@mixin radial-gradient($gradient) + background-position: center center + background-image: -webkit-radial-gradient(circle, $gradient) + background-image: -moz-radial-gradient($gradient) + background-image: -ms-radial-gradient($gradient) + background-image: radial-gradient($gradient) + +@mixin radius($radius: 5px) + -moz-border-radius: $radius + -webkit-border-radius: $radius + border-radius: $radius + +@mixin box-shadow($bsval: 0px 1px 4px #777) + -moz-box-shadow: $bsval + -webkit-box-shadow: $bsval + -box-shadow: $bsval +// }}} + +.openerp .oe_kanban_view + // KanbanView {{{ + position: absolute + top: 111px + bottom: 0 + .ui-sortable-placeholder + border: 1px dotted black + visibility: visible !important + height: 60px !important + .oe_kanban_left + float: left + .oe_kanban_right + float: right + .oe_kanban_clear + clear: both + // }}} + // KanbanGroups {{{ + .oe_kanban_groups + height: 100% + .oe_kanban_group_title + margin: 1px 1px 4px + padding-left: 2px + font-size: 100% + font-weight: bold + color: #333333 + text-shadow: 0 1px 0 white + .oe_kanban_column, .oe_kanban_group_header + vertical-align: top + padding: 6px 7px 6px 6px + background: #f0eeee + border-left: 1px solid #f0f8f8 + border-right: 1px solid #b9b9b9 + .oe_kanban_column + height: 100% + .oe_kanban_aggregates + padding: 0 + .oe_kanban_group_header + position: relative + .oe_kanban_group_folded + padding: 0 5px 0 5px + .oe_kanban_group_title, &.oe_kanban_column > *, .oe_kanban_aggregates + display: none + .oe_kanban_group_title_vertical + display: block + .oe_kanban_group_title_undefined + color: #666666 + .oe_kanban_group_title_vertical + writing-mode: tb-rl + -webkit-transform: rotate(90deg) + -moz-transform: rotate(90deg) + -o-transform: rotate(90deg) + -ms-transform: rotate(90deg) + transform: rotate(90deg) + width: 30px + height: 20px + font-size: 24px + white-space: nowrap + display: none + position: absolute + top: 10px + .oe_kanban_fold_icon + cursor: pointer + float: left + padding: 2px + width: 16px + height: 16px + background: url(/web_kanban/static/src/img/minus-icon.png) no-repeat + .oe_kanban_group_folded .oe_kanban_fold_icon + background: url(/web_kanban/static/src/img/plus-icon.png) no-repeat + // }}} + // KanbanQuickCreate {{{ + .oe_kanban_add + cursor: pointer + position: absolute + top: 6px + right: 6px + width: 16px + height: 16px + background: url(/web_kanban/static/src/img/plus-icon.png) no-repeat + .oe_kanban_quick_create + // apply block formatting context + overflow: hidden + .oe_kanban_no_group .oe_kanban_quick_create + width: 200px + padding: 10px + .oe_kanban_quick_create input + display: block + // margins within width + box-sizing: border-box + width: 100% + .oe_kanban_quick_create button + float: right + // }}} + // KanbanRecords {{{ + .oe_kanban_vignette + padding: 8px + min-height: 100px + .oe_kanban_image + display: inline-block + vertical-align: top + width: 64px + height: 64px + text-align: center + overflow: hidden + @include radius(3px) + @include box-shadow(0 1px 4px rgba(0, 0, 0, 0.4)) + .oe_kanban_details + display: inline-block + vertical-align: top + width: 240px + font-size: 13px + padding: 0 5px + color: #4c4c4c + min-height: 120px + h4 + margin: 0 0 4px 0 + .oe_kanban_record + position: relative + display: block + min-height: 50px + margin: 6px 0 + display: block + @include radius(4px) + &:last-child + margin-bottom: 0 + .oe_kanban_title + font-weight: bold + margin: 2px 4px + .oe_kanban_gravatar + display: block + width: 20px + height: 20px + @include radius(3px) + @include box-shadow(0 1px 2px rgba(0,0,0,0.2)) + .oe_kanban_avatar_toto + height: 40px + width: 40px + border: 1px solid + border-color: #e5e5e5 #dbdbdb #d2d2d2 + @include radius(3px) + @include box-shadow(0 1px 2px rgba(0,0,0,0.2)) + .oe_kanban_box + background: #FFF + border: 2px solid #CCC + border-radius: 4px + -moz-border-radius: 4px + -webkit-border-radius: 4px + margin-bottom: 5px + .oe_kanban_box_header + background: #EEE + border-bottom: 1px solid #CCC + .oe_kanban_title + font-size: 95% + font-weight: bold + padding: 0 4px 0 4px + .oe_kanban_small + font-size: 80% + font-weight: normal + .oe_kanban_show_more + clear: both + text-align: center + .oe_kanban_grouped .oe_kanban_show_more .oe_button + width: 100% + .oe_kanban_ungrouped .oe_kanban_record + float: left + padding: 2px + box-sizing: border-box + -moz-box-sizing: border-box + -webkit-box-sizing: border-box + .oe_kanban_action_button + height: 22px + margin: 0 + .oe_kanban_action_a + text-decoration: none + .oe_kanban_table + width: 100% + border: none + border-collapse: collapse + margin: 0 + padding: 0 + .oe_kanban_table tr td + padding: 0 + .oe_kanban_table tr td.oe_kanban_title + padding: 2px + .oe_kanban_box_content + padding: 4px + font-size: 90% + .oe_kanban_button + border: 1px solid #8ec1da + background-color: #ddeef6 + border-radius: 3px + -moz-border-radius: 3px + -webkit-border-radius: 3px + color: #000000 + text-shadow: 0 1px #fff + padding: 0 4px + font-size: 85% + margin: 1px + a.oe_kanban_button:hover, .openerp button.oe_kanban_button:hover + background-color: #eeddf6 + .oe_kanban_buttons_set + border-top: 1px dotted + white-space: nowrap + padding-top: 2px + position: relative + clear: both + a + padding: 2px + .oe_kanban_box_show_onclick + display: none + .oe_kanban_draghandle + cursor: move + .oe_kanban_color_border + border-color: #CCCCCC + .oe_kanban_color_border + border-color: #CCCCCC + .oe_kanban_tooltip ul, ul.oe_kanban_tooltip + padding: 0 0 4px 0 + margin: 5px 0 0 15px + list-style: circle + .oe_kanban_highlight + border-radius: 2px + -moz-border-radius: 2px + -webkit-border-radius: 2px + padding: 1px 5px + margin: 1px 4px + white-space: nowrap + display: inline-block + line-height: 1em + .oe_kanban_card + position: relative + display: block + min-height: 50px + background: white + border: 1px solid #d8d8d8 + border-bottom-color: #b9b9b9 + padding: 6px + margin: 6px 0 + display: block + @include radius(4px) + &:last-child + margin-bottom: 0 + &:hover + @include box-shadow(0 0 3px rgba(0,0,0,0.6)) + .oe_kanban_menuaction + display: block + h3 + margin: 0 16px 0 0 + .oe_kanban_star + float: left + position: inline-block + margin: 0 4px 0 0 + .oe_kanban_avatar + @include radius(4px) + @include box-shadow(0 1px 2px rgba(0,0,0,0.2)) + //.oe_kanban_footer_left + // float: left + .oe_kanban_status + display: inline-block + height: 12px + width: 12px + margin: 4px auto + @include radius(6px) + @include box-shadow(0 1px 3px rgba(0,0,0,0.6)) + .oe_kanban_status_green + background: green + @include radial-gradient((#55dd55 0%, #44aa44 40%, #339933 100%)) + .oe_kanban_status_red + background: red + @include radial-gradient((#ee7777 0%, #cc3333 40%, #bb0808 100%)) + .oe_kanban_text_red + background: red + color: #000 + // }}} + // KanbanDropDown {{{ + a.oe_kanban_menuaction + position: absolute + top: 0px + right: 3px + display: none + color: #4c4c4c + cursor: pointer + &:hover + text-decoration: none + .oe_kanban_menu + display: none + position: absolute + top: 30px + right: -140px + padding: 4px + border: 1px solid #afafb6 + width: 160px + overflow-x: hidden + z-index: 900 + background: white + @include radius(3px) + @include box-shadow(0 1px 4px rgba(0,0,0,0.3)) + p + margin-left: 12px + li a + display: block + padding: 3px 6px + line-height: 14px + color: #4c4c4c + text-decoration: none + li a:hover + background: #f0f0fa + background: -moz-linear-gradient(#f0f0fa, #eeeef6) + background: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)) + background: -webkit-linear-gradient(#f0f0fa, #eeeef6) + @include box-shadow(none) + // }}} + // KanbanColorPicker {{{ + .oe_kanban_color_picker + position: absolute + top: -10px + border: 1px solid black + -moz-box-shadow: 2px 2px 5px #666 + -webkit-box-shadow: 2px 2px 5px #666 + box-shadow: 2px 2px 5px #666 + z-index: 2 + a + display: block + width: 30px + height: 30px + border: 1px solid black + text-align: center + text-decoration: none + &:hover + border-color: white + span + border: none + font-size: 120% + font-weight: bold + color: black + line-height: 30px + // }}} + // KanbanColors {{{ + // Custom colors are also present in kanban.js + // Custom color#0 + .oe_kanban_color_0 + .oe_kanban_color_bglight + background: #FFFFFF + .oe_kanban_color_bgdark + background: #EEEEEE + .oe_kanban_color_border + border-color: #CCCCCC + .oe_kanban_button + background-color: #EEEEEE + border-color: #CCCCCC + text-shadow: 0 1px #FFFFFF + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #999999 + color: #fff + text-shadow: 0 1px #000 + + // Custom color#1 + .oe_kanban_color_1 + .oe_kanban_color_bglight + background: #CCCCCC + .oe_kanban_color_bgdark + background: #999999 + .oe_kanban_color_border + border-color: #666666 + .oe_kanban_button + background-color: #999999 + border-color: #666666 + text-shadow: 0 1px #CCCCCC + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #666666 + color: #fff + text-shadow: 0 1px #000 + + // Custom color#2 + .oe_kanban_color_2 + .oe_kanban_color_bglight + background: #FFC7C7 + .oe_kanban_color_bgdark + background: #FF8F8F + .oe_kanban_color_border + border-color: #D97979 + .oe_kanban_button + background-color: #FF8F8F + border-color: #D97979 + text-shadow: 0 1px #FFC7C7 + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #CC5C5C + color: #fff + text-shadow: 0 1px #000 + + // Custom color#3 + .oe_kanban_color_3 + .oe_kanban_color_bglight + background: #FFF1C7 + .oe_kanban_color_bgdark + background: #FFE38F + .oe_kanban_color_border + border-color: #D9C179 + .oe_kanban_button + background-color: #FFE38F + border-color: #D9C179 + text-shadow: 0 1px #FFF1C7 + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #CCB05C + color: #fff + text-shadow: 0 1px #000 + + // Custom color#4 + .oe_kanban_color_4 + .oe_kanban_color_bglight + background: #E3FFC7 + .oe_kanban_color_bgdark + background: #C7FF8F + .oe_kanban_color_border + border-color: #A9D979 + .oe_kanban_button + background-color: #C7FF8F + border-color: #A9D979 + text-shadow: 0 1px #E3FFC7 + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #94CC5C + color: #fff + text-shadow: 0 1px #000 + + // Custom color#5 + .oe_kanban_color_5 + .oe_kanban_color_bglight + background: #C7FFD5 + .oe_kanban_color_bgdark + background: #8FFFAB + .oe_kanban_color_border + border-color: #79D991 + .oe_kanban_button + background-color: #8FFFAB + border-color: #79D991 + text-shadow: 0 1px #C7FFD5 + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #5CCC78 + color: #fff + text-shadow: 0 1px #000 + + // Custom color#6 + .oe_kanban_color_6 + .oe_kanban_color_bglight + background: #C7FFFF + .oe_kanban_color_bgdark + background: #8FFFFF + .oe_kanban_color_border + border-color: #79D9D9 + .oe_kanban_button + background-color: #8FFFFF + border-color: #79D9D9 + text-shadow: 0 1px #C7FFFF + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #5CCCCC + color: #fff + text-shadow: 0 1px #000 + + // Custom color#7 + .oe_kanban_color_7 + .oe_kanban_color_bglight + background: #C7D5FF + .oe_kanban_color_bgdark + background: #8FABFF + .oe_kanban_color_border + border-color: #8FABFF + .oe_kanban_button + background-color: #8FABFF + border-color: #7995E9 + text-shadow: 0 1px #C7D5FF + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #5C78CC + color: #fff + text-shadow: 0 1px #000 + + // Custom color#8 + .oe_kanban_color_8 + .oe_kanban_color_bglight + background: #E3C7FF + .oe_kanban_color_bgdark + background: #C78FFF + .oe_kanban_color_border + border-color: #A979D9 + .oe_kanban_button + background-color: #C78FFF + border-color: #A979D9 + text-shadow: 0 1px #E3C7FF + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #945CCC + color: #fff + text-shadow: 0 1px #000 + + // Custom color#9 + .oe_kanban_color_9 + .oe_kanban_color_bglight + background: #FFC7F1 + .oe_kanban_color_bgdark + background: #FF8FE3 + .oe_kanban_color_border + border-color: #D979C1 + .oe_kanban_button + background-color: #FF8FE3 + border-color: #D979C1 + text-shadow: 0 1px #FFC7F1 + .oe_kanban_button_active, a.oe_kanban_button:hover, button.oe_kanban_button:hover + background-color: #CC5CB0 + color: #fff + text-shadow: 0 1px #000 + + // Red border + .oe_kanban_color_alert .oe_kanban_color_border, .oe_kanban_color_red .oe_kanban_color_border + border-color: #c00 !important + + // Green border + .oe_kanban_color_green .oe_kanban_color_border + border-color: #0c0 !important + + // Blue border + .oe_kanban_color_blue .oe_kanban_color_border + border-color: #00c !important + // }}} + +// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers > "%:p:r.css" +// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker: diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 1b06fd91ce1..e6f9b23258f 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -34,6 +34,25 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ this.limit = options.limit || 80; this.add_group_mutex = new $.Mutex(); }, + start: function() { + var self = this; + this._super.apply(this, arguments); + // Bind kanban cards dropdown menus + this.$element.on('click', '.oe_kanban_menuaction', function() { + var $menu = $(this).next('.oe_kanban_menu'); + var toggle = $menu.is(':visible'); + self.$element.find('.oe_kanban_menu').hide(); + $menu.toggle(!toggle); + return false; + }); + $('html').on('click', function() { + self.$element.find('.oe_kanban_menu').hide(); + }); + }, + destroy: function() { + this._super.apply(this, arguments); + $('html').off('click'); + }, on_loaded: function(data) { this.fields_view = data; this.$buttons = $(QWeb.render("KanbanView.buttons", {'widget': this})); @@ -359,7 +378,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({ if (!this.view.state.groups[key]) { this.view.state.groups[key] = { folded: false - } + }; } this.state = this.view.state.groups[key]; this.$records = null; @@ -405,18 +424,23 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({ this.$element.data('widget', this); this.$records.data('widget', this); this.$has_been_started.resolve(); - this.compute_cards_height(); + this.compute_cards_auto_height(); return def; }, - compute_cards_height: function() { + compute_cards_auto_height: function() { + // oe_kanban_auto_height is an empty class used by the kanban view in order + // to normalize height amongst kanban cards. (by group) var self = this; var min_height = 0; + var els = []; _.each(this.records, function(r) { - min_height = Math.max(min_height, r.$element.outerHeight()); - }); - _.each(this.records, function(r) { - r.$element.css('min-height', min_height); + var $e = r.$element.find('.oe_kanban_auto_height').first(); + if ($e.length) { + els.push($e[0]); + min_height = Math.max(min_height, $e.outerHeight()); + } }); + $(els).css('min-height', min_height); }, destroy: function() { this._super(); @@ -534,8 +558,8 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({ }); }, bind_events: function() { - var self = this, - $show_on_click = self.$element.find('.oe_kanban_box_show_onclick'); + var self = this; + var $show_on_click = self.$element.find('.oe_kanban_box_show_onclick'); $show_on_click.toggle(this.state.folded); this.$element.find('.oe_kanban_box_show_onclick_trigger').click(function() { $show_on_click.toggle(); @@ -559,7 +583,13 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({ trigger: 'hover' }); - this.$element.find('.oe_kanban_action').click(function() { + // If no draghandle is found, make the whole card as draghandle + if (!this.$element.find('.oe_kanban_draghandle').length) { + this.$element.children(':first').addClass('oe_kanban_draghandle'); + } + + this.$element.find('.oe_kanban_action').click(function(ev) { + ev.preventDefault(); var $action = $(this), type = $action.data('type') || 'button', method = 'do_action_' + (type === 'action' ? 'object' : type); @@ -570,7 +600,6 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({ } else { self.do_warn("Kanban: no action for type : " + type); } - return false; }); }, do_action_delete: function($action) { @@ -600,7 +629,7 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({ $cpicker.mouseenter(function() { clearTimeout($cpicker.data('timeoutId')); }).mouseleave(function(evt) { - var timeoutId = setTimeout(function() { $cpicker.remove() }, 500); + var timeoutId = setTimeout(function() { $cpicker.remove(); }, 500); $cpicker.data('timeoutId', timeoutId); }); $cpicker.find('a').click(function() { diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index 4a193323ce5..953189683eb 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -18,9 +18,9 @@ - + -
+