diff --git a/addons/web/static/lib/jquery.textext/jquery.textext.css b/addons/web/static/lib/jquery.textext/jquery.textext.css
index 3887c97d56a..fe144e48af6 100644
--- a/addons/web/static/lib/jquery.textext/jquery.textext.css
+++ b/addons/web/static/lib/jquery.textext/jquery.textext.css
@@ -1,7 +1,152 @@
-.text-core { position: relative;}.text-core .text-wrap { background: #fff; position: absolute;}.text-core .text-wrap textarea, .text-core .text-wrap input { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; outline: none; resize: none; position: absolute; z-index: 1; background: none; overflow: hidden; margin: 0; padding: 3px 5px 4px 5px; white-space: nowrap; font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; line-height: 13px; height: auto;}
-.text-core .text-wrap .text-arrow { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; position: absolute; top: 0; right: 0; width: 22px; height: 22px; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOAQMAAADHWqTrAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///8yXJnt8Ns4AAAACXBIWXMAAAsSAAALEgHS3X78AAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1MzmNZGAwAAABpJREFUCJljYEAF/xsY6hkY7BgYZBgYOFBkADkdAmFDagYFAAAAAElFTkSuQmCC") 50% 50% no-repeat; cursor: pointer; z-index: 2;}
-.text-core .text-wrap .text-dropdown { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; position: absolute; z-index: 3; background: #fff; border: 1px solid #9daccc; width: 100%; max-height: 100px; padding: 1px; font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; display: none; overflow-x: hidden; overflow-y: auto;}.text-core .text-wrap .text-dropdown.text-position-below { margin-top: 1px;}.text-core .text-wrap .text-dropdown.text-position-above { margin-bottom: 1px;}.text-core .text-wrap .text-dropdown .text-list .text-suggestion { padding: 3px 5px; cursor: pointer;}.text-core .text-wrap .text-dropdown .text-list .text-suggestion em { font-style: normal; text-decoration: underline;}.text-core .text-wrap .text-dropdown .text-list .text-suggestion.text-selected { color: #fff; background: #6d84b4;}
-.text-core .text-wrap .text-focus { -webkit-box-shadow: 0px 0px 6px #6d84b4; -moz-box-shadow: 0px 0px 6px #6d84b4; box-shadow: 0px 0px 6px #6d84b4; position: absolute; width: 100%; height: 100%; display: none;}.text-core .text-wrap .text-focus.text-show-focus { display: block;}
-.text-core .text-wrap .text-prompt { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; position: absolute; width: 100%; height: 100%; margin: 1px 0 0 2px; font: 11px "lucida grande", tahoma, verdana, arial, sans-serif; color: #c0c0c0; overflow: hidden; white-space: pre;}.text-core .text-wrap .text-prompt.text-hide-prompt { display: none;}
-.text-core .text-wrap .text-tags { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; position: absolute; width: 100%; height: 100%; padding: 3px 35px 3px 3px; cursor: text;}.text-core .text-wrap .text-tags.text-tags-on-top { z-index: 2;}.text-core .text-wrap .text-tags .text-tag { float: left;}.text-core .text-wrap .text-tags .text-tag .text-button { -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; position: relative; float: left; border: 1px solid #9daccc; background: #e2e6f0; color: #000; padding: 0px 17px 0px 3px; margin: 0 2px 2px 0; cursor: pointer; height: 16px; font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;}.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove { position: absolute; right: 3px; top: 2px; display: block; width: 11px; height: 11px; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAhCAYAAAAPm1F2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB50RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNS4xqx9I6wAAAQ5JREFUOI2dlD0WwiAQhCc8L6HHgAPoASwtSYvX8BrQxtIyveYA8RppLO1jE+LwE8lzms2yH8MCj1QoaBzH+VuUYNYMS213UlvDRamtUbXb5ZyPHuDoxwGgip3ipfvGuGzPz+vZ/coDONdzFuYCO6ramQQG0DJIE1oPBBvM6e9LqaS2FwD7FWwnVoIAsOc2Xn1jDlyd8pfPBRVOBHA8cc/3yCmQqt0jcY4LuTyAF3pOYS6wI48LAm4MUrx5JthgSQJAt5LtNgAUgEMBBIC3AL2xgo58dEPfhE9wygef89FtCeC49UwltR1pQrK2qr9vNr7uRTCBF3pOYS6wI4/zdQ8MUpxPI9hgSQL0Xyio/QBt54DzsHQx6gAAAABJRU5ErkJggg==") 0 0 no-repeat;}.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:hover { background-position: 0 -11px;}.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:active { background-position: 0 -22px;}
\ No newline at end of file
+.text-core {
+ position: relative;
+}
+.text-core .text-wrap {
+ background: #fff;
+ position: absolute;
+}
+.text-core .text-wrap textarea, .text-core .text-wrap input {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ outline: none;
+ resize: none;
+ position: absolute;
+ background: none;
+ overflow: hidden;
+ margin: 0;
+ padding: 3px 5px 4px 5px;
+ white-space: nowrap;
+ font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;
+ line-height: 13px;
+ height: auto;
+}
+.text-core .text-wrap .text-arrow {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 22px;
+ height: 22px;
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOAQMAAADHWqTrAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///8yXJnt8Ns4AAAACXBIWXMAAAsSAAALEgHS3X78AAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1MzmNZGAwAAABpJREFUCJljYEAF/xsY6hkY7BgYZBgYOFBkADkdAmFDagYFAAAAAElFTkSuQmCC") 50% 50% no-repeat;
+ cursor: pointer;
+ z-index: 2;
+}
+.text-core .text-wrap .text-dropdown {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+ position: absolute;
+ z-index: 3;
+ background: #fff;
+ border: 1px solid #9daccc;
+ width: 100%;
+ max-height: 100px;
+ padding: 1px;
+ font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;
+ display: none;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.text-core .text-wrap .text-dropdown.text-position-below {
+ margin-top: 1px;
+}
+.text-core .text-wrap .text-dropdown.text-position-above {
+ margin-bottom: 1px;
+}
+.text-core .text-wrap .text-dropdown .text-list .text-suggestion {
+ padding: 3px 5px;
+ cursor: pointer;
+}
+.text-core .text-wrap .text-dropdown .text-list .text-suggestion em {
+ font-style: normal;
+ text-decoration: underline;
+}
+.text-core .text-wrap .text-dropdown .text-list .text-suggestion.text-selected {
+ color: #fff;
+ background: #6d84b4;
+}
+.text-core .text-wrap .text-focus {
+ -webkit-box-shadow: 0px 0px 6px #6d84b4;
+ -moz-box-shadow: 0px 0px 6px #6d84b4;
+ box-shadow: 0px 0px 6px #6d84b4;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ display: none;
+}
+.text-core .text-wrap .text-focus.text-show-focus {
+ display: block;
+}
+.text-core .text-wrap .text-prompt {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ margin: 1px 0 0 2px;
+ font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;
+ color: #c0c0c0;
+ overflow: hidden;
+ white-space: pre;
+}
+.text-core .text-wrap .text-prompt.text-hide-prompt {
+ display: none;
+}
+.text-core .text-wrap .text-tags {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding: 3px 35px 3px 3px;
+ cursor: text;
+}
+.text-core .text-wrap .text-tags.text-tags-on-top {
+ z-index: 2;
+}
+.text-core .text-wrap .text-tags .text-tag {
+ float: left;
+}
+.text-core .text-wrap .text-tags .text-tag .text-button {
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ position: relative;
+ float: left;
+ border: 1px solid #9daccc;
+ background: #e2e6f0;
+ color: #000;
+ padding: 0px 17px 0px 3px;
+ margin: 0 2px 2px 0;
+ cursor: pointer;
+ height: 16px;
+ font: 11px "lucida grande", tahoma, verdana, arial, sans-serif;
+}
+.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove {
+ position: absolute;
+ right: 3px;
+ top: 2px;
+ display: block;
+ width: 11px;
+ height: 11px;
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAhCAYAAAAPm1F2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAB50RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNS4xqx9I6wAAAQ5JREFUOI2dlD0WwiAQhCc8L6HHgAPoASwtSYvX8BrQxtIyveYA8RppLO1jE+LwE8lzms2yH8MCj1QoaBzH+VuUYNYMS213UlvDRamtUbXb5ZyPHuDoxwGgip3ipfvGuGzPz+vZ/coDONdzFuYCO6ramQQG0DJIE1oPBBvM6e9LqaS2FwD7FWwnVoIAsOc2Xn1jDlyd8pfPBRVOBHA8cc/3yCmQqt0jcY4LuTyAF3pOYS6wI48LAm4MUrx5JthgSQJAt5LtNgAUgEMBBIC3AL2xgo58dEPfhE9wygef89FtCeC49UwltR1pQrK2qr9vNr7uRTCBF3pOYS6wI4/zdQ8MUpxPI9hgSQL0Xyio/QBt54DzsHQx6gAAAABJRU5ErkJggg==") 0 0 no-repeat;
+}
+.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:hover {
+ background-position: 0 -11px;
+}
+.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:active {
+ background-position: 0 -22px;
+}
diff --git a/addons/web/static/lib/jquery.textext/jquery.textext.js b/addons/web/static/lib/jquery.textext/jquery.textext.js
index bb82ac22a17..94a78b6bb7a 100644
--- a/addons/web/static/lib/jquery.textext/jquery.textext.js
+++ b/addons/web/static/lib/jquery.textext/jquery.textext.js
@@ -2465,7 +2465,7 @@
target = $(e.target)
;
- if(target.is(CSS_DOT_SUGGESTION) || target.is(CSS_DOT_LABEL))
+ if($(CSS_DOT_SUGGESTION).has(target[0]) || $(CSS_DOT_LABEL).has(target[0]))
self.trigger('enterKeyPress');
if (self.core().hasPlugin('tags'))
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 20d7e46dd11..543e701b5d9 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -20,7 +20,7 @@
font-style: normal;
}
-.openerp.openerp-web-client-container {
+.openerp.openerp_webclient_container {
height: 100%;
position: relative;
}
@@ -779,6 +779,7 @@
border-top: 4px solid white;
}
.openerp .oe_topbar .oe_dropdown_menu {
+ top: 32px;
background: #333333;
background: rgba(37, 37, 37, 0.9);
border-color: #999999;
@@ -1184,7 +1185,7 @@
.openerp .oe_view_manager_global > .oe_view_manager_header .oe_header_row:first-child td {
padding-top: 8px;
}
-.openerp .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager {
+.openerp .oe_popup_form > .oe_formview > .oe_form_pager {
display: none !important;
}
.openerp .oe_searchview {
@@ -1963,7 +1964,7 @@
width: 45px;
height: 30px;
}
-.openerp .oe_hidden_input_file input.oe-binary-file {
+.openerp .oe_hidden_input_file input.oe_form_binary_file {
z-index: 0;
line-height: 0;
font-size: 12px;
@@ -2004,7 +2005,7 @@
.openerp .oe_form_field_many2one td:first-child {
position: relative;
}
-.openerp .oe_form_field_many2one span.oe-m2o-drop-down-button {
+.openerp .oe_form_field_many2one span.oe_m2o_drop_down_button {
position: absolute;
top: 3px;
right: 2px;
@@ -2012,7 +2013,7 @@
.openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page {
display: none;
}
-.openerp .oe_form_field_one2many .oe-listview .oe-edit-row-save {
+.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save {
background-image: url(/web/static/src/img/iconset-b-remove.png);
}
.openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top {
@@ -2033,28 +2034,28 @@
height: auto;
line-height: 16px;
}
-.openerp .oe_form .oe_form_field_many2many > .oe-listview .oe_list_pager_single_page {
+.openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page {
display: none;
}
-.openerp .oe-listview-content {
+.openerp .oe_list_content {
width: 100%;
}
-.openerp .oe-listview-content td:first-child:after, .openerp .oe-listview-content th:first-child:after {
+.openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after {
border-width: 0;
}
-.openerp .oe-listview-content > thead {
+.openerp .oe_list_content > thead {
border-bottom: 2px solid #cacaca;
background: #eeeeee;
vertical-align: top;
}
-.openerp .oe-listview-content > thead th {
+.openerp .oe_list_content > thead th {
position: relative;
}
-.openerp .oe-listview-content td, .openerp .oe-listview-content th {
+.openerp .oe_list_content td, .openerp .oe_list_content th {
padding: 3px 6px;
line-height: 18px;
}
-.openerp .oe-listview-content th:after {
+.openerp .oe_list_content th:after {
position: absolute;
right: 6px;
content: "";
@@ -2064,12 +2065,12 @@
border-color: black transparent;
visibility: hidden;
}
-.openerp .oe-listview-content th.sortup:after {
+.openerp .oe_list_content th.sortup:after {
visibility: visible;
filter: alpha(opacity=60);
opacity: 0.6;
}
-.openerp .oe-listview-content th.sortdown:after {
+.openerp .oe_list_content th.sortdown:after {
border-bottom: none;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
@@ -2081,20 +2082,20 @@
filter: alpha(opacity=60);
opacity: 0.6;
}
-.openerp .oe-listview-content > tbody {
+.openerp .oe_list_content > tbody {
cursor: pointer;
background: white;
}
-.openerp .oe-listview-content > tbody > tr {
+.openerp .oe_list_content > tbody > tr {
border-top: 1px solid #dddddd;
}
-.openerp .oe-listview-content > tbody > tr > td.oe-field-cell {
+.openerp .oe_list_content > tbody > tr > td.oe_list_field_cell {
padding: 3px 6px;
}
-.openerp .oe-listview-content > tbody > tr > td, .openerp .oe-listview-content > tbody > tr > th {
+.openerp .oe_list_content > tbody > tr > td, .openerp .oe_list_content > tbody > tr > th {
line-height: 18px;
}
-.openerp .oe-listview-content > tbody > tr > td > button, .openerp .oe-listview-content > tbody > tr > th > button {
+.openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button {
border: none;
background: transparent;
padding: 0;
@@ -2102,16 +2103,16 @@
-webkit-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 {
+.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child {
width: 17px;
}
-.openerp .oe-listview-content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe-listview-content > tbody > tr th.oe_list_checkbox:first-child:after {
+.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after {
border-width: 0;
}
-.openerp .oe-listview-content > tbody > tr > td.oe_number {
+.openerp .oe_list_content > tbody > tr > td.oe_number {
text-align: right !important;
}
-.openerp .oe-listview-content > tbody > tr:nth-child(odd) {
+.openerp .oe_list_content > tbody > tr:nth-child(odd) {
background-color: #f0f0fa;
background-color: #f0f0fa;
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6));
@@ -2121,13 +2122,13 @@
background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6);
background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6);
}
-.openerp .oe-listview-content > tfoot {
+.openerp .oe_list_content > tfoot {
border-top: 2px solid #cacaca;
border-bottom: 1px solid #cacaca;
background: #eeeeee;
font-weight: bold;
}
-.openerp .oe-listview-content > tbody tr:hover td, .openerp .oe-listview-content tbody tr:hover th {
+.openerp .oe_list_content > tbody tr:hover td, .openerp .oe_list_content tbody tr:hover th {
background-color: #eeeeee;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede));
background-image: -webkit-linear-gradient(top, #eeeeee, #dedede);
@@ -2136,11 +2137,11 @@
background-image: -o-linear-gradient(top, #eeeeee, #dedede);
background-image: linear-gradient(to bottom, #eeeeee, #dedede);
}
-.openerp .oe-listview-content .numeric {
+.openerp .oe_list_content .numeric {
text-align: right;
width: 82px;
}
-.openerp .oe-listview-content .numeric input {
+.openerp .oe_list_content .numeric input {
text-align: right;
}
.openerp .oe_trad_field.touched {
diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass
index f42b527a500..018b4088ee0 100644
--- a/addons/web/static/src/css/base.sass
+++ b/addons/web/static/src/css/base.sass
@@ -98,7 +98,7 @@ $colour4: #8a89ba
// }}}
-.openerp.openerp-web-client-container
+.openerp.openerp_webclient_container
height: 100%
position: relative
@@ -612,6 +612,7 @@ $colour4: #8a89ba
.oe_dropdown_arrow:after
border-top: 4px solid white
.oe_dropdown_menu
+ top: 32px
background: #333
background: rgba(37,37,37,0.9)
border-color: #999
@@ -927,7 +928,7 @@ $colour4: #8a89ba
padding-top: 8px
// }}}
// Viewmanager popup {{{
- .oe-select-create-popup-view-form > .oe_formview > .oe_form_pager
+ .oe_popup_form > .oe_formview > .oe_form_pager
display: none !important
// }}}
// SearchView {{{
@@ -1539,7 +1540,7 @@ $colour4: #8a89ba
display: inline-block
width: 45px
height: 30px
- input.oe-binary-file
+ input.oe_form_binary_file
z-index: 0
line-height: 0
font-size: 12px
@@ -1577,7 +1578,7 @@ $colour4: #8a89ba
.oe_form_field_many2one
td:first-child
position: relative
- span.oe-m2o-drop-down-button
+ span.oe_m2o_drop_down_button
position: absolute
top: 3px
right: 2px
@@ -1588,7 +1589,7 @@ $colour4: #8a89ba
display: none
.oe_form_field_one2many
// TODO: oe_form_field_one2many_list?
- .oe-listview .oe-edit-row-save
+ .oe_list .oe_list_edit_row_save
background-image: url(/web/static/src/img/iconset-b-remove.png)
&> .oe_view_manager
@@ -1608,12 +1609,12 @@ $colour4: #8a89ba
line-height: 16px
// }}}
// FormView.many2many {{{
- .oe_form .oe_form_field_many2many > .oe-listview
+ .oe_form .oe_form_field_many2many > .oe_list
.oe_list_pager_single_page
display: none
// }}}
// ListView {{{
- .oe-listview-content
+ .oe_list_content
width: 100%
td:first-child, th:first-child
&:after
@@ -1652,7 +1653,7 @@ $colour4: #8a89ba
background: white
> tr
border-top: 1px solid #ddd
- > td.oe-field-cell
+ > td.oe_list_field_cell
padding: 3px 6px
> td, > th
line-height: 18px
diff --git a/addons/web/static/src/css/data_export.css b/addons/web/static/src/css/data_export.css
index 149fcea81e6..3fa24265b45 100644
--- a/addons/web/static/src/css/data_export.css
+++ b/addons/web/static/src/css/data_export.css
@@ -1,4 +1,4 @@
-.openerp .oe-export {
+.openerp .oe_export {
width: 100%;
}
.openerp .oe_export_row tr{
diff --git a/addons/web/static/src/css/data_import.css b/addons/web/static/src/css/data_import.css
index a63a52802f0..47cd52aa081 100644
--- a/addons/web/static/src/css/data_import.css
+++ b/addons/web/static/src/css/data_import.css
@@ -12,22 +12,22 @@
border-bottom: 1px solid #E3E3E3;
}
-.openerp .oe-import-no-result .oe-import-result {
+.openerp .oe_import_no_result .oe_import_result {
display: none;
}
-.openerp .oe-import fieldset {
+.openerp .oe_import fieldset {
cursor: pointer;
}
-.openerp .oe-import fieldset legend:before {
+.openerp .oe_import fieldset legend:before {
content: '\25BC ';
}
-.openerp .oe-import fieldset.oe-closed legend:before {
+.openerp .oe_import fieldset.oe_closed legend:before {
content: '\25B6 ';
}
-.openerp .oe-import fieldset.oe-closed table {
+.openerp .oe_import fieldset.oe_closed table {
display: none;
}
-.openerp .oe-import .separator.horizontal {
+.openerp .oe_import .separator.horizontal {
font-weight: bold;
border-bottom-width: 1px;
margin: 6px 4px 6px 1px;
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 4ad4d4b700a..9d84cd787ef 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -860,12 +860,12 @@ instance.web.WebClient = instance.web.Widget.extend({
},
start: function() {
var self = this;
- this.$element.addClass("openerp openerp-web-client-container");
+ this.$element.addClass("openerp openerp_webclient_container");
if (jQuery.param !== undefined && jQuery.deparam(jQuery.param.querystring()).kitten !== undefined) {
$("body").addClass("kitten-mode-activated");
- self.$element.delegate('img.oe-record-edit-link-img', 'hover', function(e) {
- self.$element.toggleClass('clark-gable');
- });
+ if ($.blockUI) {
+ $.blockUI.defaults.message = '
';
+ }
}
this.session.session_bind().then(function() {
self.destroy_content();
diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js
index bc98d8a1c10..6059f292df9 100644
--- a/addons/web/static/src/js/data_import.js
+++ b/addons/web/static/src/js/data_import.js
@@ -68,7 +68,7 @@ instance.web.DataImport = instance.web.Dialog.extend({
this.open({
buttons: [
{text: _t("Close"), click: function() { self.destroy(); }},
- {text: _t("Import File"), click: function() { self.do_import(); }, 'class': 'oe-dialog-import-button'}
+ {text: _t("Import File"), click: function() { self.do_import(); }, 'class': 'oe_import_dialog_button'}
],
close: function(event, ui) {
self.destroy();
@@ -78,7 +78,7 @@ instance.web.DataImport = instance.web.Dialog.extend({
this.$element.find('#csvfile').change(this.on_autodetect_data);
this.$element.find('fieldset').change(this.on_autodetect_data);
this.$element.delegate('fieldset legend', 'click', function() {
- $(this).parent().toggleClass('oe-closed');
+ $(this).parent().toggleClass('oe_closed');
});
this.ready.push(new instance.web.DataSet(this, this.model).call(
'fields_get', [], function (fields) {
@@ -157,7 +157,7 @@ instance.web.DataImport = instance.web.Dialog.extend({
},
toggle_import_button: function (newstate) {
instance.web.dialog(this.$element, 'widget')
- .find('.oe-dialog-import-button')
+ .find('.oe_import_dialog_button')
.button('option', 'disabled', !newstate);
},
do_import: function() {
@@ -202,7 +202,7 @@ instance.web.DataImport = instance.web.Dialog.extend({
if (results['error']) {
result_node.append(QWeb.render('ImportView.error', {
'error': results['error']}));
- this.$element.find('fieldset').removeClass('oe-closed');
+ this.$element.find('fieldset').removeClass('oe_closed');
return;
}
if (results['success']) {
@@ -224,11 +224,11 @@ instance.web.DataImport = instance.web.Dialog.extend({
: with_headers ? results.records.slice(1)
: results.records
}));
- this.$element.find('fieldset').addClass('oe-closed');
+ this.$element.find('fieldset').addClass('oe_closed');
}
- this.$element.find('form').removeClass('oe-import-no-result');
+ this.$element.find('form').removeClass('oe_import_no_result');
- this.$element.delegate('.oe-m2o-drop-down-button', 'click', function () {
+ this.$element.delegate('.oe_m2o_drop_down_button', 'click', function () {
$(this).prev('input').focus();
});
diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js
index e0ee3359091..6ceb7090e44 100644
--- a/addons/web/static/src/js/formats.js
+++ b/addons/web/static/src/js/formats.js
@@ -309,7 +309,7 @@ instance.web.format_cell = function (row_data, column, options) {
'', {
title: column.string || '',
additional_attributes: isNaN(row_data["id"].value) && instance.web.BufferedDataSet.virtual_id_regex.test(row_data["id"].value) ?
- 'disabled="disabled" class="oe-listview-button-disabled"' : '',
+ 'disabled="disabled" class="oe_list_button_disabled"' : '',
prefix: instance.connection.prefix,
icon: column.icon,
alt: column.string || ''
diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js
index 169c7053575..3dc8866b6b7 100644
--- a/addons/web/static/src/js/search.js
+++ b/addons/web/static/src/js/search.js
@@ -635,12 +635,13 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
(new instance.web.search.CustomFilters(this));
// add Advanced to this.inputs
(new instance.web.search.Advanced(this));
- (new instance.web.search.AddToDashboard(this));
// build drawer
var drawer_started = $.when.apply(
null, _(this.select_for_drawer()).invoke(
'appendTo', this.$element.find('.oe_searchview_drawer')));
+
+ new instance.web.search.AddToDashboard(this).appendTo($('.oe_searchview_drawer', this.$element));
// load defaults
var defaults_fetched = $.when.apply(null, _(this.inputs).invoke(
@@ -1638,7 +1639,7 @@ instance.web.search.Filters = instance.web.search.Input.extend({
}));
}
});
-instance.web.search.AddToDashboard = instance.web.search.Input.extend({
+instance.web.search.AddToDashboard = instance.web.Widget.extend({
template: 'SearchView.addtodashboard',
_in_drawer: true,
start: function () {
@@ -1646,44 +1647,18 @@ instance.web.search.AddToDashboard = instance.web.search.Input.extend({
this.data_loaded = $.Deferred();
this.dashboard_data =[];
this.$element
- .on('click', 'h4', this.proxy('show_option'))
- .on('submit', 'form', function (e) {e.preventDefault(); self.add_dashboard();});
+ .on('click', 'h4', this.proxy('show_option'))
+ .on('submit', 'form', function (e) {
+ e.preventDefault();
+ self.add_dashboard();
+ });
return $.when(this.load_data(),this.data_loaded).pipe(this.proxy("render_data"));
},
load_data:function(){
- // get from database if dashboard position change than also works(from Reporting to else).
- /*var self = this,
- ir_actions_act_window = new instance.web.Model('ir.actions.act_window',{},[['res_model','=',"board.board"],['view_id','!=',false]])
- .query(['name','id']),
- map_data = function(){
- var ir_actions_values = arguments[0],ir_values = arguments[1];
- _(ir_values).each(function(res){
- var get_name = _.detect(ir_actions_values,function(name){ return name.id == parseInt((res.value).split(",")[1]);});
- self.dashboard_data.push({"res_id":res.res_id,"name":get_name.name})
- });
- self.data_loaded.resolve();
- },
- make_domain = function(result){
- var domain = [];
- _(result).map(function(value,key){
- domain.push(["value","=","ir.actions.act_window,"+value.id]);
- ((result.length)- 1 !== key)?domain.unshift("|"):false;
- })
- return domain;
- };
- return ir_actions_act_window._execute().then(function(ir_actions_values){
- if(!ir_actions_values.length) {self.data_loaded.resolve();return;}
- var ir_value = new instance.web.Model('ir.values',{},make_domain(ir_actions_values)).query(['res_id','value']);
- ir_value._execute().done(function(ir_values){
- map_data(ir_actions_values,ir_values);
- })
- });*/
-
- //===============================get from instance.webclient.menu (with less rpc call)
- var self = this,dashbaord_menu = instance.webclient.menu.data.data.children,
- ir_model_data = new instance.web.Model('ir.model.data',{},[['name','=','menu_reporting_dashboard']]).query(['res_id']),
- map_data = function(result){
- _.detect(dashbaord_menu,function(dash){
+ var self = this,dashboard_menu = instance.webclient.menu.data.data.children;
+ var ir_model_data = new instance.web.Model('ir.model.data',{},[['name','=','menu_reporting_dashboard']]).query(['res_id']);
+ var map_data = function(result){
+ _.detect(dashboard_menu, function(dash){
var id = _.pluck(dash.children, "id"),indexof = _.indexOf(id, result.res_id);
if(indexof !== -1){
self.dashboard_data = dash.children[indexof].children
@@ -1701,8 +1676,10 @@ instance.web.search.AddToDashboard = instance.web.search.Input.extend({
this.$element.find("input").before(selection)
},
add_dashboard:function(){
- var self = this,getParent = this.getParent(),view_parent = this.view.getParent();
- if(!view_parent.action || !this.$element.find("select").val())
+ var self = this;
+ var getParent = this.getParent();
+ var view_parent = this.getParent().getParent();
+ if (! view_parent.action || ! this.$element.find("select").val())
return this.do_warn("Can't find dashboard action");
data = getParent.build_search_data(),
context = new instance.web.CompoundContext(getParent.dataset.get_context() || []),
@@ -1732,6 +1709,7 @@ instance.web.search.AddToDashboard = instance.web.search.Input.extend({
this.$element.find("input").val(this.getParent().fields_view.name || "" );
}
});
+
instance.web.search.Advanced = instance.web.search.Input.extend({
template: 'SearchView.advanced',
_in_drawer: true,
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 652ad74c012..9315e08871a 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1513,7 +1513,9 @@ instance.web.form.FormWidget = instance.web.Widget.extend(instance.web.form.Invi
this._super.apply(this, arguments);
},
/**
- * Sets up blur/focus forwarding from DOM elements to a widget (`this`)
+ * Sets up blur/focus forwarding from DOM elements to a widget (`this`).
+ *
+ * This method is an utility method that is meant to be called by child classes.
*
* @param {jQuery} $e jQuery object of elements to bind focus/blur on
*/
@@ -1790,8 +1792,9 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w
this._super(field_manager, node);
this.field_manager = field_manager;
this.name = this.node.attrs.name;
- this.set({'value': false});
this.field = this.field_manager.get_field(this.name);
+ this.widget = this.node.attrs.widget;
+ this.set({'value': false});
this.set({required: this.modifiers['required'] === true});
// some events to make the property "effective_readonly" sync automatically with "readonly" and
@@ -2002,7 +2005,7 @@ instance.web.form.FieldEmail = instance.web.form.FieldChar.extend({
} else {
this.$element.find('a')
.attr('href', 'mailto:' + this.get('value'))
- .text(this.get('value'));
+ .text(this.get('value') || '');
}
},
on_button_clicked: function() {
@@ -2031,7 +2034,7 @@ instance.web.form.FieldUrl = instance.web.form.FieldChar.extend({
if (!s) {
tmp = "http://" + this.get('value');
}
- this.$element.find('a').attr('href', tmp).text(tmp);
+ this.$element.find('a').attr('href', tmp).text(this.get('value') ? tmp : '');
}
},
on_button_clicked: function() {
@@ -2564,8 +2567,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
fade: true,
});
- this.$drop_down = this.$element.find(".oe-m2o-drop-down-button");
- this.$follow_button = $(".oe-m2o-cm-button", this.$element);
+ this.$drop_down = this.$element.find(".oe_m2o_drop_down_button");
+ this.$follow_button = $(".oe_m2o_cm_button", this.$element);
this.$follow_button.click(function() {
if (!self.get('value')) {
@@ -2719,9 +2722,10 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
if (!this.get("effective_readonly")) {
this.$input.val(str);
} else {
+ str = _.escape(str).replace("\n", "
");
this.$element.find('a')
.unbind('click')
- .text(str)
+ .html(str)
.click(function () {
self.do_action({
type: 'ir.actions.act_window',
@@ -3251,8 +3255,8 @@ instance.web.form.One2ManyList = instance.web.ListView.List.extend({
return this._super.apply(this, arguments).then(function () {
// Replace the "Save Row" button with "Cancel Edition"
self.edition_form.$element
- .undelegate('button.oe-edit-row-save', 'click')
- .delegate('button.oe-edit-row-save', 'click', function () {
+ .undelegate('button.oe_list_edit_row_save', 'click')
+ .delegate('button.oe_list_edit_row_save', 'click', function () {
self.cancel_pending_edition();
});
@@ -3852,7 +3856,7 @@ instance.web.form.AbstractFormPopup = instance.web.OldWidget.extend({
if (this.options.alternative_form_view) {
this.view_form.set_embedded_view(this.options.alternative_form_view);
}
- this.view_form.appendTo(this.$element.find(".oe-form-view-popup-form-placeholder"));
+ this.view_form.appendTo(this.$element.find(".oe_popup_form"));
this.view_form.on_loaded.add_last(function() {
var $buttons = self.view_form.$element.find(".oe_form_buttons");
var multi_select = self.row_id === null && ! self.options.disable_multiple_selection;
@@ -3983,7 +3987,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
'read_only': true,
}, self.options.list_view_options || {}));
self.view_list.popup = self;
- self.view_list.appendTo($(".oe-select-create-popup-view-list", self.$element)).pipe(function() {
+ self.view_list.appendTo($(".oe_popup_list", self.$element)).pipe(function() {
self.view_list.do_show();
}).pipe(function() {
self.searchview.do_search();
@@ -4005,7 +4009,7 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
});
});
});
- this.searchview.appendTo($(".oe-select-create-popup-view-list", self.$element));
+ this.searchview.appendTo($(".oe_popup_list", self.$element));
},
do_search: function(domains, contexts, groupbys) {
var self = this;
@@ -4167,9 +4171,9 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.
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('.oe-binary-file-clear').click(this.on_clear);
+ this.$element.find('input.oe_form_binary_file').change(this.on_file_change);
+ this.$element.find('button.oe_form_binary_file_save').click(this.on_save_as);
+ this.$element.find('.oe_form_binary_file_clear').click(this.on_clear);
},
human_filesize : function(size) {
var units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
@@ -4186,10 +4190,10 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.
// http://deepliquid.com/projects/Jcrop/demos.php?demo=handler
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();
- this.$element.find('.oe-binary').hide();
+ this.$element.find('form.oe_form_binary_form input[name=session_id]').val(this.session.session_id);
+ this.$element.find('form.oe_form_binary_form').submit();
+ this.$element.find('.oe_form_binary_progress').show();
+ this.$element.find('.oe_form_binary').hide();
}
},
on_file_uploaded: function(size, name, content_type, file_base64) {
@@ -4201,8 +4205,8 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.
this.filename = name;
this.on_file_uploaded_and_valid.apply(this, arguments);
}
- this.$element.find('.oe-binary-progress').hide();
- this.$element.find('.oe-binary').show();
+ this.$element.find('.oe_form_binary_progress').hide();
+ this.$element.find('.oe_form_binary').show();
},
on_file_uploaded_and_valid: function(size, name, content_type, file_base64) {
},
@@ -4212,7 +4216,7 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(instance.
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];
+ var link = this.$('.oe_form_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;
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 95c425a0e1d..a55a3decf1e 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -140,13 +140,13 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
});
},
/**
- * View startup method, the default behavior is to set the ``oe-listview``
+ * View startup method, the default behavior is to set the ``oe_listw``
* class on its root element and to perform an RPC load call.
*
* @returns {$.Deferred} loading promise
*/
start: function() {
- this.$element.addClass('oe-listview');
+ this.$element.addClass('oe_list');
return this.reload_view(null, null, true);
},
/**
@@ -250,18 +250,19 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
this.setup_columns(this.fields_view.fields, grouped);
this.$element.html(QWeb.render(this._template, this));
+ this.$element.addClass(this.fields_view.arch.attrs['class']);
// Head hook
// Selecting records
- this.$element.find('.all-record-selector').click(function(){
- self.$element.find('.oe-record-selector input').prop('checked',
- self.$element.find('.all-record-selector').prop('checked') || false);
+ this.$element.find('.oe_list_record_selector').click(function(){
+ self.$element.find('.oe_list_record_selector input').prop('checked',
+ self.$element.find('.oe_list_record_selector').prop('checked') || false);
var selection = self.groups.get_selection();
$(self.groups).trigger(
'selected', [selection.ids, selection.records]);
});
// Sorting columns
- this.$element.find('thead').delegate('th.oe-sortable[data-id]', 'click', function (e) {
+ this.$element.find('thead').delegate('th.oe_sortable[data-id]', 'click', function (e) {
e.stopPropagation();
var $this = $(this);
self.dataset.sort($this.data('id'));
@@ -270,7 +271,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
} else {
$this.toggleClass("sortdown");
}
- $this.siblings('.oe-sortable').removeClass("sortup sortdown");
+ $this.siblings('.oe_sortable').removeClass("sortup sortdown");
self.reload_content();
});
@@ -322,7 +323,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
self.page = 0;
}
self.reload_content();
- }).find('.oe-pager-state')
+ }).find('.oe_list_pager_state')
.click(function (e) {
e.stopPropagation();
var $this = $(this);
@@ -372,18 +373,19 @@ 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 limit = this.limit() || total;
+ this.$pager.toggleClass('oe_list_pager_single_page', (total <= limit));
var spager = '-';
if (total) {
- var range_start = this.page * this.limit() + 1;
- var range_stop = range_start - 1 + this.limit();
+ var range_start = this.page * limit + 1;
+ var range_stop = range_start - 1 + limit;
if (range_stop > total) {
range_stop = total;
}
spager = _.str.sprintf('%d-%d of %d', range_start, range_stop, total);
}
- this.$pager.find('.oe-pager-state').text(spager);
+ this.$pager.find('.oe_list_pager_state').text(spager);
},
/**
* Sets up the listview's columns: merges view and fields data, move
@@ -533,10 +535,10 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
*/
reload_content: function () {
var self = this;
- self.$element.find('.all-record-selector').prop('checked', false);
+ self.$element.find('.oe_list_record_selector').prop('checked', false);
this.records.reset();
var reloaded = $.Deferred();
- this.$element.find('.oe-listview-content').append(
+ this.$element.find('.oe_list_content').append(
this.groups.render(function () {
if (self.dataset.index == null) {
var has_one = false;
@@ -788,7 +790,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
},
display_aggregates: function (aggregation) {
var self = this;
- var $footer_cells = this.$element.find('.oe-list-footer');
+ var $footer_cells = this.$element.find('.oe_list_footer');
_(this.aggregate_columns).each(function (column) {
if (!column['function']) {
return;
@@ -826,9 +828,9 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
}
// Padding for column titles, footer and data rows
var $rows = this.$element
- .find('.oe-listview-header-columns, tr:not(thead tr)')
+ .find('.oe_list_header_columns, tr:not(thead tr)')
.not(options['except']);
- var newcols = new Array(count+1).join('
|
|