Use template literals instead of string concatenation (#1003)
* use template literals instead of string concatenation * extract function call out of template literals * add contributing hint to don't put function calls in template-literals
This commit is contained in:
parent
d4a9861751
commit
2b5ffca1b0
|
@ -5,6 +5,7 @@
|
||||||
"rules": {
|
"rules": {
|
||||||
"function-paren-newline": "error",
|
"function-paren-newline": "error",
|
||||||
"prefer-arrow-callback": "error",
|
"prefer-arrow-callback": "error",
|
||||||
|
"prefer-template": "error",
|
||||||
"no-var": "error",
|
"no-var": "error",
|
||||||
"quotes": [
|
"quotes": [
|
||||||
"error",
|
"error",
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
The `default.po` files contain translations that can be auto-detected using Poedit, `additional.po` contains generated messages like validations.
|
The `default.po` files contain translations that can be auto-detected using Poedit, `additional.po` contains generated messages like validations.
|
||||||
* JavaScript code must pass the ESLint check `yarn lint`.
|
* JavaScript code must pass the ESLint check `yarn lint`.
|
||||||
Auto-fixing is supported via `yarn lint:fix`.
|
Auto-fixing is supported via `yarn lint:fix`.
|
||||||
|
* Don't put function calls in a template-literal (template-strings).
|
||||||
|
|
||||||
## Pull requests
|
## Pull requests
|
||||||
* The PR should contain a short overview of the changes.
|
* The PR should contain a short overview of the changes.
|
||||||
|
|
|
@ -7,8 +7,10 @@
|
||||||
export const formatTime = (date) => {
|
export const formatTime = (date) => {
|
||||||
if (!date instanceof Date) return;
|
if (!date instanceof Date) return;
|
||||||
|
|
||||||
return String(date.getHours()).padStart(2, '0') + ':'
|
const hours = String(date.getHours()).padStart(2, '0');
|
||||||
+ String(date.getMinutes()).padStart(2, '0');
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
|
||||||
|
return `${hours}:${minutes}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -20,7 +22,9 @@ export const formatTime = (date) => {
|
||||||
export const formatDay = (date) => {
|
export const formatDay = (date) => {
|
||||||
if (!date instanceof Date) return;
|
if (!date instanceof Date) return;
|
||||||
|
|
||||||
return String(date.getFullYear()) + '-'
|
const year = String(date.getFullYear());
|
||||||
+ String(date.getMonth() + 1).padStart(2, '0') + '-'
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||||
+ String(date.getDate()).padStart(2, '0');
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
|
|
||||||
|
return `${year}-${month}-${day}`;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ const triggerChange = (element) => {
|
||||||
* @param {boolean} checked True if the checkboxes should be checked
|
* @param {boolean} checked True if the checkboxes should be checked
|
||||||
*/
|
*/
|
||||||
global.checkAll = (id, checked) => {
|
global.checkAll = (id, checked) => {
|
||||||
document.querySelectorAll('#' + id + ' input[type="checkbox"]').forEach((element) => {
|
document.querySelectorAll(`#${id} input[type="checkbox"]`).forEach((element) => {
|
||||||
element.checked = checked;
|
element.checked = checked;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -29,7 +29,7 @@ global.checkAll = (id, checked) => {
|
||||||
* @param {int[]} shiftsList A list of numbers
|
* @param {int[]} shiftsList A list of numbers
|
||||||
*/
|
*/
|
||||||
global.checkOwnTypes = (id, shiftsList) => {
|
global.checkOwnTypes = (id, shiftsList) => {
|
||||||
document.querySelectorAll('#' + id + ' input[type="checkbox"]').forEach((element) => {
|
document.querySelectorAll(`#${id} input[type="checkbox"]`).forEach((element) => {
|
||||||
const value = parseInt(element.value, 10);
|
const value = parseInt(element.value, 10);
|
||||||
element.checked = shiftsList.includes(value);
|
element.checked = shiftsList.includes(value);
|
||||||
});
|
});
|
||||||
|
|
|
@ -31,14 +31,14 @@ ready(() => {
|
||||||
|
|
||||||
window.addEventListener('scroll', () => {
|
window.addEventListener('scroll', () => {
|
||||||
const top = headers.item(0).parentNode.getBoundingClientRect().top;
|
const top = headers.item(0).parentNode.getBoundingClientRect().top;
|
||||||
const left = 15;
|
const left = Math.max(0, window.scrollX - 15);
|
||||||
|
|
||||||
timeLane.style.left = Math.max(0, window.scrollX - left) + 'px';
|
timeLane.style.left = `${left}px`;
|
||||||
|
|
||||||
const headersTop = Math.max(
|
const headersTop = Math.max(
|
||||||
0,
|
0,
|
||||||
window.scrollY - top - 13 + topReference.getBoundingClientRect().top
|
window.scrollY - top - 13 + topReference.getBoundingClientRect().top
|
||||||
) + 'px';
|
);
|
||||||
applyStyle(headers, 'top', headersTop);
|
applyStyle(headers, 'top', `${headersTop}px`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -28,7 +28,8 @@ const plugins = [
|
||||||
let themeFileNameRegex = /theme\d+/;
|
let themeFileNameRegex = /theme\d+/;
|
||||||
|
|
||||||
if (process.env.THEMES) {
|
if (process.env.THEMES) {
|
||||||
themeFileNameRegex = new RegExp(`theme(${process.env.THEMES.replace(/,/g, '|')})\\.`);
|
const themes = process.env.THEMES.replace(/,/g, '|');
|
||||||
|
themeFileNameRegex = new RegExp(`theme(${themes})\\.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const themePath = path.resolve('resources/assets/themes');
|
const themePath = path.resolve('resources/assets/themes');
|
||||||
|
|
Loading…
Reference in New Issue