From 14a0f84c1bcd56886d7c9e4e6afa8f7d292734e5 Mon Sep 17 00:00:00 2001 From: David Tsay <3614296+davetsay@users.noreply.github.com> Date: Wed, 4 Dec 2019 12:39:09 -0800 Subject: [PATCH] Feature/eslint plugin vue (#2548) * Use eslint-plugin-vue to lint vue files --- .eslintrc.js | 44 +- package.json | 5 +- src/api/contextMenu/ContextMenu.vue | 36 +- .../overlays/components/DialogComponent.vue | 52 +- .../overlays/components/OverlayComponent.vue | 155 +-- .../components/ProgressDialogComponent.vue | 15 +- .../LADTable/LADTableSetViewProvider.js | 2 +- src/plugins/LADTable/LADTableViewProvider.js | 2 +- src/plugins/LADTable/components/LADRow.vue | 89 +- src/plugins/LADTable/components/LADTable.vue | 31 +- .../LADTable/components/LadTableSet.vue | 93 +- .../components/globalClearIndicator.vue | 10 +- .../AlphanumericFormatViewProvider.js | 4 +- .../components/AlphanumericFormatView.vue | 122 +-- .../displayLayout/components/BoxView.vue | 131 +-- .../components/DisplayLayout.vue | 918 +++++++++--------- .../displayLayout/components/EditMarquee.vue | 278 +++--- .../displayLayout/components/ImageView.vue | 134 +-- .../displayLayout/components/LayoutFrame.vue | 160 +-- .../displayLayout/components/LineView.vue | 443 ++++----- .../components/SubobjectView.vue | 190 ++-- .../components/TelemetryView.vue | 409 ++++---- .../displayLayout/components/TextView.vue | 146 +-- src/plugins/displayLayout/plugin.js | 6 +- .../filters/FiltersInspectorViewProvider.js | 4 +- .../filters/components/FilterField.vue | 127 +-- .../filters/components/FilterObject.vue | 142 +-- .../filters/components/FiltersView.vue | 399 ++++---- .../filters/components/GlobalFilters.vue | 194 ++-- .../flexibleLayout/components/container.vue | 149 +-- .../flexibleLayout/components/dropHint.vue | 44 +- .../components/flexibleLayout.vue | 166 ++-- .../flexibleLayout/components/frame.vue | 107 +- .../components/resizeHandle.vue | 48 +- .../flexibleLayoutViewProvider.js | 16 +- src/plugins/folderView/FolderGridView.js | 2 +- src/plugins/folderView/FolderListView.js | 2 +- .../folderView/components/GridItem.vue | 60 +- .../folderView/components/GridView.vue | 15 +- .../folderView/components/ListItem.vue | 47 +- .../folderView/components/ListView.vue | 115 +-- src/plugins/licenses/Licenses.vue | 36 +- .../src/controllers/EmbedController.js | 4 +- .../src/controllers/NotebookController.js | 4 +- src/plugins/tabs/components/tabs.vue | 130 +-- src/plugins/tabs/tabs.js | 2 +- .../TableConfigurationViewProvider.js | 4 +- .../TelemetryTableViewProvider.js | 8 +- .../components/TelemetryFilterIndicator.vue | 209 ++-- .../telemetryTable/components/table-cell.vue | 29 +- .../components/table-column-header.vue | 79 +- .../components/table-configuration.vue | 92 +- .../telemetryTable/components/table-row.vue | 103 +- .../telemetryTable/components/table.vue | 309 +++--- src/plugins/timeConductor/Conductor.vue | 236 +++-- src/plugins/timeConductor/ConductorAxis.vue | 209 ++-- src/plugins/timeConductor/ConductorMode.vue | 78 +- .../timeConductor/ConductorModeIcon.vue | 8 +- .../timeConductor/ConductorTimeSystem.vue | 61 +- src/plugins/timeConductor/DatePicker.vue | 125 ++- src/plugins/webPage/WebPageViewProvider.js | 2 +- src/plugins/webPage/components/WebPage.vue | 6 +- src/ui/components/ObjectFrame.vue | 156 +-- src/ui/components/ObjectLabel.vue | 52 +- src/ui/components/ObjectView.vue | 34 +- src/ui/components/ProgressBar.vue | 39 +- src/ui/components/ToggleSwitch.vue | 39 +- src/ui/components/contextMenuDropDown.vue | 13 +- src/ui/components/search.vue | 91 +- src/ui/components/viewControl.vue | 30 +- src/ui/inspector/Elements.vue | 86 +- src/ui/inspector/Inspector.vue | 105 +- src/ui/inspector/InspectorViews.vue | 61 +- src/ui/inspector/Location.vue | 50 +- src/ui/inspector/Properties.vue | 85 +- src/ui/layout/AboutDialog.vue | 28 +- src/ui/layout/AppLogo.vue | 12 +- src/ui/layout/BrowseBar.vue | 467 ++++----- src/ui/layout/CreateButton.vue | 225 ++--- src/ui/layout/Layout.vue | 358 +++---- src/ui/layout/MCTSearch.vue | 13 +- src/ui/layout/ViewSwitcher.vue | 77 +- src/ui/layout/mct-tree.vue | 230 ++--- src/ui/layout/multipane.vue | 17 +- src/ui/layout/pane.vue | 67 +- src/ui/layout/status-bar/Indicators.vue | 15 +- .../layout/status-bar/NotificationBanner.vue | 238 ++--- src/ui/layout/tree-item.vue | 253 ++--- src/ui/legacy/mct-template.vue | 7 +- src/ui/preview/Preview.vue | 191 ++-- src/ui/toolbar/Toolbar.vue | 497 +++++----- src/ui/toolbar/components/toolbar-button.vue | 43 +- .../toolbar/components/toolbar-checkbox.vue | 35 +- .../components/toolbar-color-picker.vue | 82 +- src/ui/toolbar/components/toolbar-input.vue | 25 +- src/ui/toolbar/components/toolbar-menu.vue | 47 +- .../components/toolbar-select-menu.vue | 56 +- .../toolbar/components/toolbar-separator.vue | 7 +- .../components/toolbar-toggle-button.vue | 18 +- 99 files changed, 5818 insertions(+), 4877 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 497d70218f..3cf7ec2e20 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -5,9 +5,16 @@ module.exports = { "jasmine": true, "amd": true }, - "extends": "eslint:recommended", - "parser": "babel-eslint", + "globals": { + "_": "readonly" + }, + "extends": [ + "eslint:recommended", + "plugin:vue/recommended" + ], + "parser": "vue-eslint-parser", "parserOptions": { + "parser": "babel-eslint", "allowImportExportEverywhere": true, "ecmaVersion": 2015, "ecmaFeatures": { @@ -58,7 +65,38 @@ module.exports = { } ], "dot-notation": "error", - "indent": ["error", 4] + "indent": ["error", 4], + "vue/html-indent": [ + "error", + 4, + { + "attribute": 1, + "baseIndent": 0, + "closeBracket": 0, + "alignAttributesVertically": true, + "ignores": [] + } + ], + "vue/html-self-closing": ["error", + { + "html": { + "void": "never", + "normal": "never", + "component": "always" + }, + "svg": "always", + "math": "always" + } + ], + "vue/max-attributes-per-line": ["error", { + "singleline": 1, + "multiline": { + "max": 1, + "allowFirstLine": true + } + }], + "vue/multiline-html-element-content-newline": "off", + "vue/singleline-html-element-content-newline": "off" }, "overrides": [ { diff --git a/package.json b/package.json index bfa7141129..2c50d0dafa 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "d3-time": "1.0.x", "d3-time-format": "2.1.x", "eslint": "5.2.0", + "eslint-plugin-vue": "^6.0.0", "eventemitter3": "^1.2.0", "exports-loader": "^0.7.0", "express": "^4.13.1", @@ -74,8 +75,8 @@ }, "scripts": { "start": "node app.js", - "lint": "eslint platform example src openmct.js", - "lint:fix": "eslint platform example src openmct.js --fix", + "lint": "eslint platform example src/**/*.{js,vue} openmct.js", + "lint:fix": "eslint platform example src/**/*.{js,vue} openmct.js --fix", "build:prod": "NODE_ENV=production webpack", "build:dev": "webpack", "build:watch": "webpack --watch", diff --git a/src/api/contextMenu/ContextMenu.vue b/src/api/contextMenu/ContextMenu.vue index 93ecb9ead3..9b62d0f62c 100644 --- a/src/api/contextMenu/ContextMenu.vue +++ b/src/api/contextMenu/ContextMenu.vue @@ -1,20 +1,24 @@ \ No newline at end of file +export default { + inject: ['actions', 'objectPath'] +} + diff --git a/src/api/overlays/components/DialogComponent.vue b/src/api/overlays/components/DialogComponent.vue index c63f6d7525..23991c0bf6 100644 --- a/src/api/overlays/components/DialogComponent.vue +++ b/src/api/overlays/components/DialogComponent.vue @@ -1,28 +1,36 @@ diff --git a/src/api/overlays/components/ProgressDialogComponent.vue b/src/api/overlays/components/ProgressDialogComponent.vue index aa07e4141d..03461b1caa 100644 --- a/src/api/overlays/components/ProgressDialogComponent.vue +++ b/src/api/overlays/components/ProgressDialogComponent.vue @@ -1,7 +1,7 @@ - \ No newline at end of file diff --git a/src/plugins/clearData/components/globalClearIndicator.vue b/src/plugins/clearData/components/globalClearIndicator.vue index 0984075e4c..d56e72209e 100644 --- a/src/plugins/clearData/components/globalClearIndicator.vue +++ b/src/plugins/clearData/components/globalClearIndicator.vue @@ -1,9 +1,9 @@ \ No newline at end of file + diff --git a/src/plugins/displayLayout/components/BoxView.vue b/src/plugins/displayLayout/components/BoxView.vue index cee299511f..6701ea802d 100644 --- a/src/plugins/displayLayout/components/BoxView.vue +++ b/src/plugins/displayLayout/components/BoxView.vue @@ -21,15 +21,18 @@ *****************************************************************************/ + +
+
+ - - \ No newline at end of file +} + diff --git a/src/plugins/displayLayout/components/DisplayLayout.vue b/src/plugins/displayLayout/components/DisplayLayout.vue index 323c2b28a0..5d7ed16f3e 100644 --- a/src/plugins/displayLayout/components/DisplayLayout.vue +++ b/src/plugins/displayLayout/components/DisplayLayout.vue @@ -21,42 +21,49 @@ *****************************************************************************/ diff --git a/src/plugins/displayLayout/components/EditMarquee.vue b/src/plugins/displayLayout/components/EditMarquee.vue index 3f8e84ce37..063df49c27 100644 --- a/src/plugins/displayLayout/components/EditMarquee.vue +++ b/src/plugins/displayLayout/components/EditMarquee.vue @@ -21,17 +21,28 @@ *****************************************************************************/ - \ No newline at end of file +} + diff --git a/src/plugins/displayLayout/components/LayoutFrame.vue b/src/plugins/displayLayout/components/LayoutFrame.vue index a916720b34..2deccbd4af 100644 --- a/src/plugins/displayLayout/components/LayoutFrame.vue +++ b/src/plugins/displayLayout/components/LayoutFrame.vue @@ -21,19 +21,21 @@ *****************************************************************************/ diff --git a/src/plugins/displayLayout/components/LineView.vue b/src/plugins/displayLayout/components/LineView.vue index 6bc3c01304..feba219f60 100644 --- a/src/plugins/displayLayout/components/LineView.vue +++ b/src/plugins/displayLayout/components/LineView.vue @@ -21,244 +21,253 @@ *****************************************************************************/ - +} + diff --git a/src/plugins/displayLayout/components/SubobjectView.vue b/src/plugins/displayLayout/components/SubobjectView.vue index 1c74e66101..3fb724bbd6 100644 --- a/src/plugins/displayLayout/components/SubobjectView.vue +++ b/src/plugins/displayLayout/components/SubobjectView.vue @@ -20,106 +20,120 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ diff --git a/src/plugins/displayLayout/components/TelemetryView.vue b/src/plugins/displayLayout/components/TelemetryView.vue index 6a7eea3338..d53ed62d18 100644 --- a/src/plugins/displayLayout/components/TelemetryView.vue +++ b/src/plugins/displayLayout/components/TelemetryView.vue @@ -20,29 +20,41 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ - - + diff --git a/src/plugins/displayLayout/components/TextView.vue b/src/plugins/displayLayout/components/TextView.vue index 0598f9c0ec..9ad2f156bd 100644 --- a/src/plugins/displayLayout/components/TextView.vue +++ b/src/plugins/displayLayout/components/TextView.vue @@ -20,17 +20,21 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ - + - - \ No newline at end of file +} + diff --git a/src/plugins/displayLayout/plugin.js b/src/plugins/displayLayout/plugin.js index 7f1c9a79ca..65d231c7bd 100644 --- a/src/plugins/displayLayout/plugin.js +++ b/src/plugins/displayLayout/plugin.js @@ -42,22 +42,22 @@ export default function DisplayLayoutPlugin(options) { return { show(container) { component = new Vue({ + el: container, components: { Layout }, - template: '', provide: { openmct, objectUtils, options, objectPath }, - el: container, data() { return { domainObject: domainObject }; - } + }, + template: '' }); }, getSelectionContext() { diff --git a/src/plugins/filters/FiltersInspectorViewProvider.js b/src/plugins/filters/FiltersInspectorViewProvider.js index 69d1d639ce..adfe81839c 100644 --- a/src/plugins/filters/FiltersInspectorViewProvider.js +++ b/src/plugins/filters/FiltersInspectorViewProvider.js @@ -48,11 +48,11 @@ define([ provide: { openmct }, + el: element, components: { FiltersView: FiltersView.default }, - template: '', - el: element + template: '' }); }, destroy: function () { diff --git a/src/plugins/filters/components/FilterField.vue b/src/plugins/filters/components/FilterField.vue index 86f2bd258d..03bf053e33 100644 --- a/src/plugins/filters/components/FilterField.vue +++ b/src/plugins/filters/components/FilterField.vue @@ -1,56 +1,66 @@ diff --git a/src/plugins/filters/components/FilterObject.vue b/src/plugins/filters/components/FilterObject.vue index 7936773377..1a1c75b180 100644 --- a/src/plugins/filters/components/FilterObject.vue +++ b/src/plugins/filters/components/FilterObject.vue @@ -1,50 +1,62 @@ diff --git a/src/plugins/filters/components/FiltersView.vue b/src/plugins/filters/components/FiltersView.vue index f3b56c6677..b65d36eb40 100644 --- a/src/plugins/filters/components/FiltersView.vue +++ b/src/plugins/filters/components/FiltersView.vue @@ -1,22 +1,28 @@ diff --git a/src/plugins/filters/components/GlobalFilters.vue b/src/plugins/filters/components/GlobalFilters.vue index 08a0418cfc..b4e02aded4 100644 --- a/src/plugins/filters/components/GlobalFilters.vue +++ b/src/plugins/filters/components/GlobalFilters.vue @@ -1,29 +1,40 @@ diff --git a/src/plugins/flexibleLayout/components/container.vue b/src/plugins/flexibleLayout/components/container.vue index 3bde1b235b..054652cb85 100644 --- a/src/plugins/flexibleLayout/components/container.vue +++ b/src/plugins/flexibleLayout/components/container.vue @@ -21,62 +21,65 @@ *****************************************************************************/ diff --git a/src/plugins/flexibleLayout/components/dropHint.vue b/src/plugins/flexibleLayout/components/dropHint.vue index 49315d2223..c8b1a73326 100644 --- a/src/plugins/flexibleLayout/components/dropHint.vue +++ b/src/plugins/flexibleLayout/components/dropHint.vue @@ -21,15 +21,16 @@ *****************************************************************************/ - \ No newline at end of file diff --git a/src/plugins/notebook/src/controllers/EmbedController.js b/src/plugins/notebook/src/controllers/EmbedController.js index 80ade26b6c..63ac92673a 100644 --- a/src/plugins/notebook/src/controllers/EmbedController.js +++ b/src/plugins/notebook/src/controllers/EmbedController.js @@ -141,7 +141,6 @@ function ( var self = this, snapshot = new Vue({ - template: SnapshotTemplate, data: function () { return { embed: self.embed @@ -151,7 +150,8 @@ function ( formatTime: self.formatTime, annotateSnapshot: annotateSnapshot(self.openmct), findInArray: self.findInArray - } + }, + template: SnapshotTemplate }); var snapshotOverlay = this.openmct.overlays.overlay({ diff --git a/src/plugins/notebook/src/controllers/NotebookController.js b/src/plugins/notebook/src/controllers/NotebookController.js index 89123bbf12..b63dfae6a2 100644 --- a/src/plugins/notebook/src/controllers/NotebookController.js +++ b/src/plugins/notebook/src/controllers/NotebookController.js @@ -84,7 +84,6 @@ function ( }; var NotebookVue = Vue.extend({ - template: NotebookTemplate, provide: {openmct: self.openmct, domainObject: self.domainObject}, components: { 'notebook-entry': entryComponent, @@ -111,7 +110,8 @@ function ( newEntry: self.newEntry, filterBySearch: self.filterBySearch, sort: self.sort - } + }, + template: NotebookTemplate }); this.NotebookVue = new NotebookVue(); diff --git a/src/plugins/tabs/components/tabs.vue b/src/plugins/tabs/components/tabs.vue index 6151deecaf..3db1607b3e 100644 --- a/src/plugins/tabs/components/tabs.vue +++ b/src/plugins/tabs/components/tabs.vue @@ -1,44 +1,58 @@ diff --git a/src/plugins/telemetryTable/components/table-cell.vue b/src/plugins/telemetryTable/components/table-cell.vue index a908bc68c2..387e923d55 100644 --- a/src/plugins/telemetryTable/components/table-cell.vue +++ b/src/plugins/telemetryTable/components/table-cell.vue @@ -20,7 +20,12 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ \ No newline at end of file + diff --git a/src/plugins/telemetryTable/components/table-configuration.vue b/src/plugins/telemetryTable/components/table-configuration.vue index 7c6c0b35f4..b92c18473e 100644 --- a/src/plugins/telemetryTable/components/table-configuration.vue +++ b/src/plugins/telemetryTable/components/table-configuration.vue @@ -1,18 +1,50 @@