summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-08-27 16:44:17 +0200
committerChristophe Simonis <chs@odoo.com>2018-08-27 16:44:17 +0200
commit9947133361f4d6fc4c9cbb68e2e2230728fcdafd (patch)
tree4fc266cd52f55d94f86d7df2ab75323e35fde99c /addons/web/static/src/js
parentf7ead5fd50f4b6db2a1d4c947fc4e15dceedbbd7 (diff)
parent40430699dfbba715b143c109ebae415074da9f40 (diff)
[MERGE] forward port branch saas-11.5 up to 40430699dfb
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/chrome/keyboard_navigation_mixin.js8
-rw-r--r--addons/web/static/src/js/core/dom.js2
-rw-r--r--addons/web/static/src/js/core/domain.js2
-rw-r--r--addons/web/static/src/js/core/misc.js25
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js5
-rw-r--r--addons/web/static/src/js/views/basic/basic_model.js8
-rw-r--r--addons/web/static/src/js/views/graph/graph_renderer.js2
-rw-r--r--addons/web/static/src/js/views/search/filters_menu.js4
8 files changed, 49 insertions, 7 deletions
diff --git a/addons/web/static/src/js/chrome/keyboard_navigation_mixin.js b/addons/web/static/src/js/chrome/keyboard_navigation_mixin.js
index d0eed176d9c..6fec5795bee 100644
--- a/addons/web/static/src/js/chrome/keyboard_navigation_mixin.js
+++ b/addons/web/static/src/js/chrome/keyboard_navigation_mixin.js
@@ -103,6 +103,14 @@ odoo.define('web.KeyboardNavigationMixin', function (require) {
* return {undefined|false}
*/
_onKeyDown: function (keyDownEvent) {
+ if ($('body.o_ui_blocked').length &&
+ (keyDownEvent.altKey || keyDownEvent.key === 'Alt') &&
+ !keyDownEvent.ctrlKey) {
+ if (keyDownEvent.preventDefault) keyDownEvent.preventDefault(); else keyDownEvent.returnValue = false;
+ if (keyDownEvent.stopPropagation) keyDownEvent.stopPropagation();
+ if (keyDownEvent.cancelBubble) keyDownEvent.cancelBubble = true;
+ return false;
+ }
if (!this._areAccessKeyVisible &&
(keyDownEvent.altKey || keyDownEvent.key === 'Alt') &&
!keyDownEvent.ctrlKey) {
diff --git a/addons/web/static/src/js/core/dom.js b/addons/web/static/src/js/core/dom.js
index 115cc5fcf0c..9280b9a0884 100644
--- a/addons/web/static/src/js/core/dom.js
+++ b/addons/web/static/src/js/core/dom.js
@@ -438,7 +438,7 @@ return {
}
},
/**
- * Cleans what has been done by `initAutoMoreMenu'.
+ * Cleans what has been done by ``initAutoMoreMenu``.
*
* @param {jQuery} $el
*/
diff --git a/addons/web/static/src/js/core/domain.js b/addons/web/static/src/js/core/domain.js
index 5ebc6bd22c9..01d9aaee8ff 100644
--- a/addons/web/static/src/js/core/domain.js
+++ b/addons/web/static/src/js/core/domain.js
@@ -458,7 +458,7 @@ var Domain = collections.Tree.extend({
* Converts python condition to a JS prefix-array representation of a domain
*
* @static
- * @param {string} domain
+ * @param {string} condition
* @returns {Array}
*/
conditionToDomain: function (condition) {
diff --git a/addons/web/static/src/js/core/misc.js b/addons/web/static/src/js/core/misc.js
index be0f012752c..cd9a73ef22b 100644
--- a/addons/web/static/src/js/core/misc.js
+++ b/addons/web/static/src/js/core/misc.js
@@ -52,6 +52,29 @@ if ($.blockUI) {
}
+/**
+ * Remove the "accesskey" attributes to avoid the use of the access keys
+ * while the blockUI is enable.
+ */
+
+function blockAccessKeys() {
+ var elementWithAccessKey = [];
+ elementWithAccessKey = document.querySelectorAll('[accesskey]');
+ _.each(elementWithAccessKey, function (elem) {
+ elem.setAttribute("data-accesskey",elem.getAttribute('accesskey'));
+ elem.removeAttribute('accesskey');
+ });
+}
+
+function unblockAccessKeys() {
+ var elementWithDataAccessKey = [];
+ elementWithDataAccessKey = document.querySelectorAll('[data-accesskey]');
+ _.each(elementWithDataAccessKey, function (elem) {
+ elem.setAttribute('accesskey', elem.getAttribute('data-accesskey'));
+ elem.removeAttribute('data-accesskey');
+ });
+}
+
var throbbers = [];
function blockUI() {
@@ -60,6 +83,7 @@ function blockUI() {
throbbers.push(throbber);
throbber.appendTo($(".oe_blockui_spin_container"));
$(document.body).addClass('o_ui_blocked');
+ blockAccessKeys();
return tmp;
}
@@ -67,6 +91,7 @@ function unblockUI() {
_.invoke(throbbers, 'destroy');
throbbers = [];
$(document.body).removeClass('o_ui_blocked');
+ unblockAccessKeys();
return $.unblockUI.apply($, arguments);
}
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index d56aa02c03d..ed393d667b7 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -896,6 +896,11 @@ var FieldFloatTime = FieldFloat.extend({
// 'float_time', but for the sake of clarity, we explicitely define a
// FieldFloatTime widget with formatType = 'float_time'.
formatType: 'float_time',
+
+ init: function () {
+ this._super.apply(this, arguments);
+ this.formatType = 'float_time';
+ }
});
var FieldFloatFactor = FieldFloat.extend({
diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js
index 186d0798e8f..c095871b75d 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -1006,8 +1006,14 @@ var BasicModel = AbstractModel.extend({
params: params,
})
.then(function () {
+ var offset = options.offset ? options.offset : 0;
+ var old_data = data.data.slice();
data.data = _.sortBy(data.data, function (d) {
- return _.indexOf(resIDs, self.localData[d].res_id);
+ if (_.contains(resIDs, self.localData[d].res_id)) {
+ return _.indexOf(resIDs, self.localData[d].res_id) + offset;
+ } else {
+ return _.indexOf(old_data, d);
+ }
});
data.res_ids = [];
_.each(data.data, function (d) {
diff --git a/addons/web/static/src/js/views/graph/graph_renderer.js b/addons/web/static/src/js/views/graph/graph_renderer.js
index e801fcc5323..80edb8047ba 100644
--- a/addons/web/static/src/js/views/graph/graph_renderer.js
+++ b/addons/web/static/src/js/views/graph/graph_renderer.js
@@ -389,7 +389,7 @@ return AbstractRenderer.extend({
};
}
data_dict[serie].values.push({
- x: tick, y: graphData[i].value,
+ x: tick - 1, y: graphData[i].value,
});
data = _.map(data_dict, identity);
}
diff --git a/addons/web/static/src/js/views/search/filters_menu.js b/addons/web/static/src/js/views/search/filters_menu.js
index e15d9bf282a..8f58316e092 100644
--- a/addons/web/static/src/js/views/search/filters_menu.js
+++ b/addons/web/static/src/js/views/search/filters_menu.js
@@ -47,9 +47,7 @@ var FiltersMenu = DropdownMenu.extend({
* defaultOptionId: string refers to an optionId (optional)
* currentOptionId: string refers to an optionId that is activated if item is active (optional)
* }
- * @param {Object[]} periodOptions determines the options available for filter with date attribute
- * @param {Object} fields 'field_get' of a model: mapping from field name
- * to an object with its properties
+ * @param {Object} fields
*/
init: function (parent, filters, fields) {
// determines where the filter menu is displayed and its style