[REF] web: list renderers: lint code

This commit is contained in:
Aaron Bohy
2019-08-23 06:28:34 +00:00
parent 192a230d8e
commit 43ad74798f
2 changed files with 50 additions and 44 deletions
@@ -217,7 +217,10 @@ ListRenderer.include({
// store the selection range to restore it once the table will
// be re-rendered, and the current cell re-selected
var currentRowID, currentWidget, focusedElement, selectionRange;
var currentRowID;
var currentWidget;
var focusedElement;
var selectionRange;
if (self.currentRow !== null) {
currentRowID = self._getRecordID(self.currentRow);
currentWidget = self.allFieldWidgets[currentRowID][self.currentFieldIndex];
@@ -436,8 +439,14 @@ ListRenderer.include({
}
var recordID = this._getRecordID(this.currentRow);
var recordWidgets = this.allFieldWidgets[recordID];
toggleWidgets(true);
function toggleWidgets(disabled) {
_.each(recordWidgets, function (widget) {
var $el = widget.getFocusableElement();
$el.prop('disabled', disabled);
});
}
toggleWidgets(true);
return new Promise((resolve, reject) => {
this.trigger_up('save_line', {
recordID: recordID,
@@ -452,13 +461,6 @@ ListRenderer.include({
}).guardedCatch(() => {
toggleWidgets(false);
});
function toggleWidgets(disabled) {
_.each(recordWidgets, function (widget) {
var $el = widget.getFocusableElement();
$el.prop('disabled', disabled);
});
}
},
/**
* @override
@@ -876,8 +878,8 @@ ListRenderer.include({
var $row = this._super.apply(this, arguments);
if (this.addTrashIcon) {
var $icon = this.isMany2Many ?
$('<button>', {class: 'fa fa-times', name: 'unlink', 'aria-label': _t('Unlink row ') + (index+1)}) :
$('<button>', {class: 'fa fa-trash-o', name: 'delete', 'aria-label': _t('Delete row ') + (index+1)});
$('<button>', {'class': 'fa fa-times', 'name': 'unlink', 'aria-label': _t('Unlink row ') + (index + 1)}) :
$('<button>', {'class': 'fa fa-trash-o', 'name': 'delete', 'aria-label': _t('Delete row ') + (index + 1)});
var $td = $('<td>', {class: 'o_list_record_remove'}).append($icon);
$row.append($td);
}
@@ -1030,15 +1032,6 @@ ListRenderer.include({
// Handlers
//--------------------------------------------------------------------------
/**
* Unselect the row before adding the optional column to the listview
*
* @override
* @private
*/
_onToggleOptionalColumnDropdown: function (ev) {
this.unselectRow().then(this._super.bind(this, ev));
},
/**
* This method is called when we click on the 'Add a line' button in a groupby
* list view.
@@ -1150,7 +1143,7 @@ ListRenderer.include({
* @param {KeyDownEvent} e
*/
_onKeyDownAddRecord: function (e) {
switch(e.keyCode) {
switch (e.keyCode) {
case $.ui.keyCode.ENTER:
e.stopPropagation();
e.preventDefault();
@@ -1266,6 +1259,15 @@ ListRenderer.include({
this._super.apply(this, arguments);
}
},
/**
* Unselect the row before adding the optional column to the listview
*
* @override
* @private
*/
_onToggleOptionalColumnDropdown: function (ev) {
this.unselectRow().then(this._super.bind(this, ev));
},
/**
* When a click happens outside the list view, or outside a currently
* selected row, we want to unselect it.
@@ -77,7 +77,7 @@ var ListRenderer = BasicRenderer.extend({
*
* @override
*/
willStart: function() {
willStart: function () {
this._processColumns(this.columnInvisibleFields || {});
return this._super.apply(this, arguments);
},
@@ -158,7 +158,12 @@ var ListRenderer = BasicRenderer.extend({
(attrs.max && 'max') || (attrs.min && 'min');
if (func) {
var count = 0;
var aggregateValue = (func === 'max') ? -Infinity : (func === 'min') ? Infinity : 0;
var aggregateValue = 0;
if (func === 'max') {
aggregateValue = -Infinity;
} else if (func === 'min') {
aggregateValue = Infinity;
}
_.each(data, function (d) {
count += 1;
var value = (d.type === 'record') ? d.data[attrs.name] : d.aggregateValues[attrs.name];
@@ -256,7 +261,7 @@ var ListRenderer = BasicRenderer.extend({
fields: _.map(this.state.fieldsInfo[this.viewType], function (_, fieldName) {
return {name: fieldName, type: self.state.fields[fieldName].type};
}),
}
};
},
/**
* Removes the columns which should be invisible.
@@ -272,7 +277,7 @@ var ListRenderer = BasicRenderer.extend({
var storedOptionalColumns;
this.trigger_up('load_optional_fields', {
keyParts: this._getOptionalColumnsStorageKeyParts(),
callback: function(res) {
callback: function (res) {
storedOptionalColumns = res;
},
});
@@ -296,7 +301,7 @@ var ListRenderer = BasicRenderer.extend({
self.optionalColumns.push(c);
var enabled;
if (storedOptionalColumns === undefined) {
enabled = c.attrs.optional === 'show'
enabled = c.attrs.optional === 'show';
} else {
enabled = _.contains(storedOptionalColumns, c.attrs.name);
}
@@ -591,7 +596,7 @@ var ListRenderer = BasicRenderer.extend({
var $th = $('<th>')
.addClass('o_group_name')
.attr('tabindex', -1)
.text(name + ' (' + group.count + ')')
.text(name + ' (' + group.count + ')');
var $arrow = $('<span>')
.css('padding-left', (groupLevel * 20) + 'px')
.css('padding-right', '5px')
@@ -813,20 +818,20 @@ var ListRenderer = BasicRenderer.extend({
return this.state.data.map(this._renderRow.bind(this));
},
/**
* Render a single <th> with dropdown menu to display optional columns of view.
*
* @private
* @returns {jQueryElement} a <th> element
*/
* Render a single <th> with dropdown menu to display optional columns of view.
*
* @private
* @returns {jQueryElement} a <th> element
*/
_renderOptionalColumnsDropdown: function () {
var self = this;
var $optionalColumnsDropdown = $('<div>', {
class: 'o_optional_columns text-center dropdown',
});
var $a = $("<a>", {
class: "dropdown-toggle text-dark o-no-caret",
href: "#",
role: "button",
'class': "dropdown-toggle text-dark o-no-caret",
'href': "#",
'role': "button",
'data-toggle': "dropdown",
'aria-expanded': false,
});
@@ -844,7 +849,7 @@ var ListRenderer = BasicRenderer.extend({
name: col.attrs.name,
checked: _.contains(self.optionalColumnsEnabled, col.attrs.name),
}
})
});
$dropdown.append($("<div>", {
class: "dropdown-item",
}).append($checkbox));
@@ -930,7 +935,7 @@ var ListRenderer = BasicRenderer.extend({
}));
if (self.optionalColumns.length) {
self.$el.addClass('o_list_optional_columns')
self.$el.addClass('o_list_optional_columns');
self.$('table').append($('<i class="o_optional_columns_dropdown_toggle fa fa-ellipsis-v"/>'));
self.$el.append(self._renderOptionalColumnsDropdown());
}
@@ -1049,10 +1054,10 @@ var ListRenderer = BasicRenderer.extend({
keyParts: this._getOptionalColumnsStorageKeyParts(),
optionalColumnsEnabled: this.optionalColumnsEnabled,
});
this._processColumns(this.columnInvisibleFields || {});
this._renderView().then(function() {
this._processColumns(this.columnInvisibleFields || {});
this._renderView().then(function () {
self._onToggleOptionalColumnDropdown(ev);
})
});
},
/**
* When the user clicks on the three dots (ellipsis), toggle the optional
@@ -1145,10 +1150,9 @@ var ListRenderer = BasicRenderer.extend({
}
},
/**
*
* @param {MouseEvent} ev
* @private
*/
_onMouseDown: function(ev) {
_onMouseDown: function () {
$('.o_keyboard_navigation').removeClass('o_keyboard_navigation');
},
/**
@@ -1195,7 +1199,7 @@ var ListRenderer = BasicRenderer.extend({
if (group.count) {
this.trigger_up('toggle_group', {
group: group,
onSuccess: function() {
onSuccess: function () {
// Refocus the header after re-render unless the user
// already focused something else by now
if (document.activeElement.tagName === 'BODY') {