lint: src/node/utils/toolbar.js

This commit is contained in:
John McLear 2021-01-21 21:06:52 +00:00 committed by Richard Hansen
parent 89aa8cf55e
commit 7421730b44

View file

@ -1,16 +1,10 @@
'use strict';
/** /**
* The Toolbar Module creates and renders the toolbars and buttons * The Toolbar Module creates and renders the toolbars and buttons
*/ */
const _ = require('underscore'); const _ = require('underscore');
let tagAttributes;
let tag;
let Button;
let ButtonsGroup;
let Separator;
let defaultButtonAttributes;
let removeItem;
removeItem = function (array, what) { const removeItem = (array, what) => {
let ax; let ax;
while ((ax = array.indexOf(what)) !== -1) { while ((ax = array.indexOf(what)) !== -1) {
array.splice(ax, 1); array.splice(ax, 1);
@ -18,15 +12,13 @@ removeItem = function (array, what) {
return array; return array;
}; };
defaultButtonAttributes = function (name, overrides) { const defaultButtonAttributes = (name, overrides) => ({
return {
command: name, command: name,
localizationId: `pad.toolbar.${name}.title`, localizationId: `pad.toolbar.${name}.title`,
class: `buttonicon buttonicon-${name}`, class: `buttonicon buttonicon-${name}`,
}; });
};
tag = function (name, attributes, contents) { const tag = (name, attributes, contents) => {
const aStr = tagAttributes(attributes); const aStr = tagAttributes(attributes);
if (_.isString(contents) && contents.length > 0) { if (_.isString(contents) && contents.length > 0) {
@ -36,7 +28,7 @@ tag = function (name, attributes, contents) {
} }
}; };
tagAttributes = function (attributes) { const tagAttributes = (attributes) => {
attributes = _.reduce(attributes || {}, (o, val, name) => { attributes = _.reduce(attributes || {}, (o, val, name) => {
if (!_.isUndefined(val)) { if (!_.isUndefined(val)) {
o[name] = val; o[name] = val;
@ -47,7 +39,7 @@ tagAttributes = function (attributes) {
return ` ${_.map(attributes, (val, name) => `${name}="${_.escape(val)}"`).join(' ')}`; return ` ${_.map(attributes, (val, name) => `${name}="${_.escape(val)}"`).join(' ')}`;
}; };
ButtonsGroup = function () { const ButtonsGroup = function () {
this.buttons = []; this.buttons = [];
}; };
@ -65,7 +57,7 @@ ButtonsGroup.prototype.addButton = function (button) {
}; };
ButtonsGroup.prototype.render = function () { ButtonsGroup.prototype.render = function () {
if (this.buttons && this.buttons.length == 1) { if (this.buttons && this.buttons.length === 1) {
this.buttons[0].grouping = ''; this.buttons[0].grouping = '';
} else { } else {
_.first(this.buttons).grouping = 'grouped-left'; _.first(this.buttons).grouping = 'grouped-left';
@ -80,11 +72,11 @@ ButtonsGroup.prototype.render = function () {
}).join('\n'); }).join('\n');
}; };
Button = function (attributes) { const Button = function (attributes) {
this.attributes = attributes; this.attributes = attributes;
}; };
Button.load = function (btnName) { Button.load = (btnName) => {
const button = module.exports.availableButtons[btnName]; const button = module.exports.availableButtons[btnName];
try { try {
if (button.constructor === Button || button.constructor === SelectButton) { if (button.constructor === Button || button.constructor === SelectButton) {
@ -108,14 +100,17 @@ _.extend(Button.prototype, {
}; };
return tag('li', liAttributes, return tag('li', liAttributes,
tag('a', {'class': this.grouping, 'data-l10n-id': this.attributes.localizationId}, tag('a', {'class': this.grouping, 'data-l10n-id': this.attributes.localizationId},
tag('button', {'class': ` ${this.attributes.class}`, 'data-l10n-id': this.attributes.localizationId}) tag('button', {
'class': ` ${this.attributes.class}`,
'data-l10n-id': this.attributes.localizationId,
})
) )
); );
}, },
}); });
var SelectButton = function (attributes) { const SelectButton = function (attributes) {
this.attributes = attributes; this.attributes = attributes;
this.options = []; this.options = [];
}; };
@ -155,7 +150,7 @@ _.extend(SelectButton.prototype, Button.prototype, {
}, },
}); });
Separator = function () {}; const Separator = function () {};
Separator.prototype.render = function () { Separator.prototype.render = function () {
return tag('li', {class: 'separator'}); return tag('li', {class: 'separator'});
}; };
@ -235,15 +230,11 @@ module.exports = {
this.availableButtons[buttonName] = buttonInfo; this.availableButtons[buttonName] = buttonInfo;
}, },
button(attributes) { button: (attributes) => new Button(attributes),
return new Button(attributes);
}, separator: () => (new Separator()).render(),
separator() {
return (new Separator()).render(); selectButton: (attributes) => new SelectButton(attributes),
},
selectButton(attributes) {
return new SelectButton(attributes);
},
/* /*
* Valid values for whichMenu: 'left' | 'right' | 'timeslider-right' * Valid values for whichMenu: 'left' | 'right' | 'timeslider-right'
@ -271,7 +262,8 @@ module.exports = {
* sufficient to visit a single read only pad to cause the disappearence * sufficient to visit a single read only pad to cause the disappearence
* of the star button from all the pads. * of the star button from all the pads.
*/ */
if ((buttons[0].indexOf('savedrevision') === -1) && (whichMenu === 'right') && (page === 'pad')) { if ((buttons[0].indexOf('savedrevision') === -1) &&
(whichMenu === 'right') && (page === 'pad')) {
buttons[0].push('savedrevision'); buttons[0].push('savedrevision');
} }
} }