You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by am...@apache.org on 2018/01/03 17:12:20 UTC

[couchdb-fauxton] 02/06: Fix lint issues

This is an automated email from the ASF dual-hosted git repository.

amaranhao pushed a commit to branch upgrade-to-eslint-v4
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git

commit 1c8bf8c6a1c4d21a223666c7c6569ed8601fbcad
Author: Antonio Maranhao <an...@Antonios-MacBook-Pro.local>
AuthorDate: Tue Jan 2 14:36:54 2018 -0500

    Fix lint issues
---
 Gruntfile.js                                             |  2 +-
 app/addons/components/components/codeeditor.js           |  2 +-
 app/addons/cors/reducers.js                              |  5 ++---
 .../documents/__tests__/queryoptions-actions.test.js     | 12 ++++++------
 app/addons/documents/__tests__/reducers.test.js          |  8 ++++----
 app/addons/documents/__tests__/resources.test.js         | 12 ++++++------
 app/addons/documents/header/header.js                    |  2 +-
 .../documents/index-results/actions/queryoptions.js      |  4 ++--
 .../components/pagination/PaginationFooter.js            |  2 +-
 .../components/queryoptions/AdditionalParams.js          |  2 +-
 .../components/queryoptions/KeySearchFields.js           |  2 +-
 .../index-results/components/results/ResultsScreen.js    |  2 +-
 .../index-results/components/results/TableRow.js         |  4 ++--
 .../index-results/components/results/TableView.js        |  2 +-
 .../components/results/WrappedAutocomplete.js            |  2 +-
 app/addons/documents/index-results/reducers.js           |  2 +-
 app/addons/documents/mango/components/ExecutionStats.js  |  8 ++++----
 app/addons/documents/mango/components/ExplainPage.js     |  6 +++---
 app/addons/documents/mango/mango.reducers.js             |  2 +-
 app/addons/documents/mangolayout.js                      |  4 ++--
 app/addons/documents/resources.js                        |  2 +-
 app/addons/documents/sidebar/reducers.js                 |  2 +-
 .../documents/tests/nightwatch/selectDocViaTypeahead.js  |  2 +-
 app/addons/fauxton/appwrapper.js                         |  2 +-
 app/addons/fauxton/navigation/components/NavLink.js      |  2 +-
 app/addons/permissions/components/PermissionsItem.js     |  2 +-
 app/addons/permissions/reducers.js                       |  2 +-
 app/addons/replication/api.js                            |  1 -
 app/addons/replication/components/common-table.js        |  1 -
 app/addons/replication/controller.js                     |  3 ---
 app/addons/replication/stores.js                         | 11 +----------
 app/addons/replication/tests/nightwatch/replication.js   |  1 -
 app/helpers.js                                           |  2 +-
 bin/remove-test-dbs.js                                   |  4 ++--
 devserver.js                                             | 16 ++++++++--------
 index.js                                                 |  9 +++++----
 tasks/fauxton.js                                         |  2 +-
 webpack.config.dev.js                                    |  4 ++--
 webpack.config.release.js                                | 16 ++++++----------
 39 files changed, 75 insertions(+), 94 deletions(-)

diff --git a/Gruntfile.js b/Gruntfile.js
index 62cc59d..6ca330e 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -211,7 +211,7 @@ module.exports = function (grunt) {
    */
   // dev server
   grunt.registerTask('dev', function () {
-    console.log('This is deprecated. Please run npm run dev instead');
+    console.warn('This is deprecated. Please run npm run dev instead');
   });
 
   // build a debug release
diff --git a/app/addons/components/components/codeeditor.js b/app/addons/components/components/codeeditor.js
index b8862e7..602de08 100644
--- a/app/addons/components/components/codeeditor.js
+++ b/app/addons/components/components/codeeditor.js
@@ -251,7 +251,7 @@ export class CodeEditor extends React.Component {
     // one JS(ON) string can't span more than one line - we edit one string, so ensure we don't select several lines
     if (selStart >= 0 && selEnd >= 0 && selStart === selEnd && this.isRowExpanded(selStart)) {
       var editLine = this.getLine(selStart),
-          editMatch = editLine.match(/^([ \t]*)("[a-zA-Z0-9_\-]*["|']: )?(["|'].*",?[ \t]*)$/);
+          editMatch = editLine.match(/^([ \t]*)("[a-zA-Z0-9_-]*["|']: )?(["|'].*",?[ \t]*)$/);
 
       if (editMatch) {
         return editMatch;
diff --git a/app/addons/cors/reducers.js b/app/addons/cors/reducers.js
index 9b8d3f2..3e85cbb 100644
--- a/app/addons/cors/reducers.js
+++ b/app/addons/cors/reducers.js
@@ -28,7 +28,7 @@ export default function cors (state = initialState, action) {
   switch (action.type) {
 
     case ActionTypes.EDIT_CORS:
-      const corsOptions = action.options;
+    const corsOptions = action.options;
       return {
         ...state,
         isLoading: false,
@@ -63,5 +63,4 @@ export default function cors (state = initialState, action) {
     default:
       return state;
   }
-};
-
+}
diff --git a/app/addons/documents/__tests__/queryoptions-actions.test.js b/app/addons/documents/__tests__/queryoptions-actions.test.js
index 0fa54f3..7072617 100644
--- a/app/addons/documents/__tests__/queryoptions-actions.test.js
+++ b/app/addons/documents/__tests__/queryoptions-actions.test.js
@@ -77,16 +77,16 @@ describe('Docs Query Options API', () => {
   it('queryOptionsUpdateBetweenKeys returns the proper event to dispatch', () => {
     const newBetweenKeys = {
       include: true,
-      startkey: '\"_design\"',
-      endkey: '\"_design\"'
+      startkey: '"_design"',
+      endkey: '"_design"'
     };
     expect(Actions.queryOptionsUpdateBetweenKeys(newBetweenKeys)).toEqual({
       type: ActionTypes.INDEX_RESULTS_REDUX_NEW_QUERY_OPTIONS,
       options: {
         betweenKeys: {
           include: true,
-          startkey: '\"_design\"',
-          endkey: '\"_design\"'
+          startkey: '"_design"',
+          endkey: '"_design"'
         }
       }
     });
@@ -148,8 +148,8 @@ describe('Docs Query Options API', () => {
       options: {
         betweenKeys: {
           include: false,
-          startkey: '\"_design\"',
-          endkey: '\"_design0\"'
+          startkey: '"_design"',
+          endkey: '"_design0"'
         },
         showBetweenKeys: true,
         showByKeys: false
diff --git a/app/addons/documents/__tests__/reducers.test.js b/app/addons/documents/__tests__/reducers.test.js
index 1257300..f9a08d9 100644
--- a/app/addons/documents/__tests__/reducers.test.js
+++ b/app/addons/documents/__tests__/reducers.test.js
@@ -381,8 +381,8 @@ describe('Docs Reducers', () => {
           showBetweenKeys: true,
           betweenKeys: {
             include: true,
-            startkey: '\"_design\"',
-            endkey: '\"_design0\"'
+            startkey: '"_design"',
+            endkey: '"_design0"'
           }
         }
       };
@@ -390,8 +390,8 @@ describe('Docs Reducers', () => {
       const newState = Reducers.default(initialState, action);
       expect(Reducers.getQueryOptionsParams(newState)).toEqual({
         inclusive_end: true,
-        start_key: '\"_design\"',
-        end_key: '\"_design0\"'
+        start_key: '"_design"',
+        end_key: '"_design0"'
       });
     });
 
diff --git a/app/addons/documents/__tests__/resources.test.js b/app/addons/documents/__tests__/resources.test.js
index cbcf28d..c6951ea 100644
--- a/app/addons/documents/__tests__/resources.test.js
+++ b/app/addons/documents/__tests__/resources.test.js
@@ -93,8 +93,8 @@ describe('QueryParams', () => {
 
     it('parses startkey, endkey', () => {
       const params = {
-        'startkey':'[\"a\",\"b\"]',
-        'endkey':'[\"c\",\"d\"]'
+        'startkey':'["a","b"]',
+        'endkey':'["c","d"]'
       };
       const result = Models.QueryParams.parse(params);
 
@@ -115,7 +115,7 @@ describe('QueryParams', () => {
 
     it('does not modify input', () => {
       const params = {
-        key:'[\"a\",\"b\"]'
+        key:'["a","b"]'
       };
       const clone = _.clone(params);
       Models.QueryParams.parse(params);
@@ -140,8 +140,8 @@ describe('QueryParams', () => {
       const result = Models.QueryParams.stringify(params);
 
       assert.deepEqual(result, {
-        'startkey':'[\"a\",\"b\"]',
-        'endkey':'[\"c\",\"d\"]'
+        'startkey':'["a","b"]',
+        'endkey':'["c","d"]'
       });
     });
 
@@ -149,7 +149,7 @@ describe('QueryParams', () => {
       const params = {'key':['a', 'b']};
       const result = Models.QueryParams.stringify(params);
 
-      assert.deepEqual(result, { 'key': '[\"a\",\"b\"]' });
+      assert.deepEqual(result, { 'key': '["a","b"]' });
     });
 
     it('does not modify input', () => {
diff --git a/app/addons/documents/header/header.js b/app/addons/documents/header/header.js
index 2a0382a..ba54213 100644
--- a/app/addons/documents/header/header.js
+++ b/app/addons/documents/header/header.js
@@ -95,4 +95,4 @@ export default class BulkDocumentHeaderController extends React.Component {
       return;
     }
   }
-};
+}
diff --git a/app/addons/documents/index-results/actions/queryoptions.js b/app/addons/documents/index-results/actions/queryoptions.js
index efba5fa..33c277d 100644
--- a/app/addons/documents/index-results/actions/queryoptions.js
+++ b/app/addons/documents/index-results/actions/queryoptions.js
@@ -112,8 +112,8 @@ export const queryOptionsFilterOnlyDdocs = () => {
   return updateQueryOptions({
     betweenKeys: {
       include: false,
-      startkey: '\"_design\"',
-      endkey: '\"_design0\"'
+      startkey: '"_design"',
+      endkey: '"_design0"'
     },
     showBetweenKeys: true,
     showByKeys: false
diff --git a/app/addons/documents/index-results/components/pagination/PaginationFooter.js b/app/addons/documents/index-results/components/pagination/PaginationFooter.js
index 9d00674..5f1c663 100644
--- a/app/addons/documents/index-results/components/pagination/PaginationFooter.js
+++ b/app/addons/documents/index-results/components/pagination/PaginationFooter.js
@@ -89,4 +89,4 @@ export default class PaginationFooter extends React.Component {
       </footer>
     );
   }
-};
+}
diff --git a/app/addons/documents/index-results/components/queryoptions/AdditionalParams.js b/app/addons/documents/index-results/components/queryoptions/AdditionalParams.js
index f3be5f0..48f09b9 100644
--- a/app/addons/documents/index-results/components/queryoptions/AdditionalParams.js
+++ b/app/addons/documents/index-results/components/queryoptions/AdditionalParams.js
@@ -75,4 +75,4 @@ export default class AdditionalParams extends React.Component {
       </div>
     );
   }
-};
+}
diff --git a/app/addons/documents/index-results/components/queryoptions/KeySearchFields.js b/app/addons/documents/index-results/components/queryoptions/KeySearchFields.js
index dddb63e..76d192a 100644
--- a/app/addons/documents/index-results/components/queryoptions/KeySearchFields.js
+++ b/app/addons/documents/index-results/components/queryoptions/KeySearchFields.js
@@ -108,4 +108,4 @@ export default class KeySearchFields extends React.Component {
       </div>
     );
   }
-};
+}
diff --git a/app/addons/documents/index-results/components/results/ResultsScreen.js b/app/addons/documents/index-results/components/results/ResultsScreen.js
index 4cdb0f6..8420c61 100644
--- a/app/addons/documents/index-results/components/results/ResultsScreen.js
+++ b/app/addons/documents/index-results/components/results/ResultsScreen.js
@@ -130,4 +130,4 @@ export default class ResultsScreen extends React.Component {
     );
   }
 
-};
+}
diff --git a/app/addons/documents/index-results/components/results/TableRow.js b/app/addons/documents/index-results/components/results/TableRow.js
index c9da4ac..5fe2daf 100644
--- a/app/addons/documents/index-results/components/results/TableRow.js
+++ b/app/addons/documents/index-results/components/results/TableRow.js
@@ -63,11 +63,11 @@ export default class TableRow extends React.Component {
   }
 
   getAdditionalInfoRow (el) {
-    const attachmentCount = Object.keys(el._attachments || {}).length;
+    const attachmentCount = Object.keys(el._attachments || {}).length;
     let attachmentIndicator = null;
     let textAttachments = null;
 
-    const conflictCount = Object.keys(el._conflicts || {}).length;
+    const conflictCount = Object.keys(el._conflicts || {}).length;
     let conflictIndicator = null;
     let textConflicts = null;
 
diff --git a/app/addons/documents/index-results/components/results/TableView.js b/app/addons/documents/index-results/components/results/TableView.js
index 580f2a0..550a088 100644
--- a/app/addons/documents/index-results/components/results/TableView.js
+++ b/app/addons/documents/index-results/components/results/TableView.js
@@ -101,4 +101,4 @@ export default class TableView extends React.Component {
       </div>
     );
   }
-};
+}
diff --git a/app/addons/documents/index-results/components/results/WrappedAutocomplete.js b/app/addons/documents/index-results/components/results/WrappedAutocomplete.js
index 5b1c52a..17c9814 100644
--- a/app/addons/documents/index-results/components/results/WrappedAutocomplete.js
+++ b/app/addons/documents/index-results/components/results/WrappedAutocomplete.js
@@ -38,4 +38,4 @@ export default function WrappedAutocomplete ({
       </div>
     </div>
   );
-};
+}
diff --git a/app/addons/documents/index-results/reducers.js b/app/addons/documents/index-results/reducers.js
index cfa73d5..3263ea3 100644
--- a/app/addons/documents/index-results/reducers.js
+++ b/app/addons/documents/index-results/reducers.js
@@ -173,7 +173,7 @@ export default function resultsState(state = initialState, action) {
     default:
       return state;
   }
-};
+}
 
 // we don't want to muddy the waters with autogenerated mango docs
 export const removeGeneratedMangoDocs = (doc) => {
diff --git a/app/addons/documents/mango/components/ExecutionStats.js b/app/addons/documents/mango/components/ExecutionStats.js
index 3b070d7..9198796 100644
--- a/app/addons/documents/mango/components/ExecutionStats.js
+++ b/app/addons/documents/mango/components/ExecutionStats.js
@@ -49,7 +49,7 @@ export default class ExecutionStats extends React.Component {
   }
 
   warningPopupComponent(warningText) {
-    if (!!warningText) {
+    if (warningText) {
       return (<div className="warning">
         <i className="fonticon-attention-circled"></i> {warningText}
       </div>);
@@ -95,7 +95,7 @@ export default class ExecutionStats extends React.Component {
     const warningText = this.getWarning(executionStats, warning);
 
     let warningComponent = null;
-    if (!!warningText) {
+    if (warningText) {
       warningComponent = <i className="fonticon-attention-circled"></i>;
     }
 
@@ -104,7 +104,7 @@ export default class ExecutionStats extends React.Component {
       executionStatsComponent = (
         <span className="execution-stats-component">Executed in {this.humanizeDuration(executionStats.execution_time_ms)}</span>
       );
-    } else if (!!warningText) {
+    } else if (warningText) {
       executionStatsComponent = (
         <span className="execution-stats-component">Warning</span>
       );
@@ -120,7 +120,7 @@ export default class ExecutionStats extends React.Component {
         </OverlayTrigger>
     );
   }
-};
+}
 
 ExecutionStats.propTypes = {
   executionStats: PropTypes.object,
diff --git a/app/addons/documents/mango/components/ExplainPage.js b/app/addons/documents/mango/components/ExplainPage.js
index db7eef3..cf44918 100644
--- a/app/addons/documents/mango/components/ExplainPage.js
+++ b/app/addons/documents/mango/components/ExplainPage.js
@@ -17,11 +17,11 @@ import React, { Component } from "react";
 export default class ExplainPage extends Component {
   componentDidMount () {
     prettyPrint();
-  };
+  }
 
   componentDidUpdate () {
     prettyPrint();
-  };
+  }
 
   render () {
     return (
@@ -29,7 +29,7 @@ export default class ExplainPage extends Component {
         <pre className="prettyprint">{JSON.stringify(this.props.explainPlan, null, ' ')}</pre>
       </div>
     );
-  };
+  }
 }
 
 ExplainPage.propTypes = {
diff --git a/app/addons/documents/mango/mango.reducers.js b/app/addons/documents/mango/mango.reducers.js
index 06fd8be..8e4cd80 100644
--- a/app/addons/documents/mango/mango.reducers.js
+++ b/app/addons/documents/mango/mango.reducers.js
@@ -202,4 +202,4 @@ export default function mangoquery(state = initialState, action) {
     default:
       return state;
   }
-};
+}
diff --git a/app/addons/documents/mangolayout.js b/app/addons/documents/mangolayout.js
index ef9d917..c375800 100644
--- a/app/addons/documents/mangolayout.js
+++ b/app/addons/documents/mangolayout.js
@@ -116,7 +116,7 @@ export const MangoContent = ({ edit, designDocs, explainPlan, databaseName, fetc
 class MangoLayout extends Component {
   constructor(props) {
     super(props);
-  };
+  }
 
   render() {
     const { database, edit, docURL, crumbs, designDocs, fetchUrl, databaseName, queryFindCode } = this.props;
@@ -150,7 +150,7 @@ class MangoLayout extends Component {
       </div>
     );
   }
-};
+}
 
 const mapStateToProps = ({ mangoQuery }) => {
   return {
diff --git a/app/addons/documents/resources.js b/app/addons/documents/resources.js
index 15a394a..93bc0c0 100644
--- a/app/addons/documents/resources.js
+++ b/app/addons/documents/resources.js
@@ -107,7 +107,7 @@ Documents.BulkDeleteDocCollection = FauxtonAPI.Collection.extend({
 
   model: Documents.BulkDeleteDoc,
 
-  sync: function () {
+  sync: function () {
 
   },
 
diff --git a/app/addons/documents/sidebar/reducers.js b/app/addons/documents/sidebar/reducers.js
index ef295f4..6359823 100644
--- a/app/addons/documents/sidebar/reducers.js
+++ b/app/addons/documents/sidebar/reducers.js
@@ -27,4 +27,4 @@ export default function resultsState(state = initialState, action) {
     default:
       return state;
   }
-};
+}
diff --git a/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js b/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
index 87e9bee..67c2a52 100644
--- a/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
+++ b/app/addons/documents/tests/nightwatch/selectDocViaTypeahead.js
@@ -41,7 +41,7 @@ module.exports = {
         baseUrl = client.globals.test_settings.launch_url;
 
     client
-      .createDocument('MY_CAP_DOC_ID', newDatabaseName, {value: 1, value: 2})
+      .createDocument('MY_CAP_DOC_ID', newDatabaseName, {value: 2})
       .loginToGUI()
       .url(baseUrl + '/#/database/' + newDatabaseName + '/_all_docs')
       .clickWhenVisible('.fonticon-json')
diff --git a/app/addons/fauxton/appwrapper.js b/app/addons/fauxton/appwrapper.js
index 2074c77..8510433 100644
--- a/app/addons/fauxton/appwrapper.js
+++ b/app/addons/fauxton/appwrapper.js
@@ -99,4 +99,4 @@ export default class App extends React.Component {
       </div>
     );
   }
-};
+}
diff --git a/app/addons/fauxton/navigation/components/NavLink.js b/app/addons/fauxton/navigation/components/NavLink.js
index 14a9841..6ba591c 100644
--- a/app/addons/fauxton/navigation/components/NavLink.js
+++ b/app/addons/fauxton/navigation/components/NavLink.js
@@ -31,7 +31,7 @@ const NavLink = ({link, active, isMinimized}) => {
     <span className="faux-navbar__text">{link.title}</span>;
 
   let linkIcon = null;
-  if (!!link.icon) {
+  if (link.icon) {
     linkIcon = (
       <i className={classNames(
         link.icon,
diff --git a/app/addons/permissions/components/PermissionsItem.js b/app/addons/permissions/components/PermissionsItem.js
index 1097b52..069b77a 100644
--- a/app/addons/permissions/components/PermissionsItem.js
+++ b/app/addons/permissions/components/PermissionsItem.js
@@ -14,7 +14,7 @@ import PropTypes from 'prop-types';
 
 import React from 'react';
 
-const PermissionsItem = ({removeItem, section, type, value}) => {
+const PermissionsItem = ({removeItem, section, type, value}) => {
 
   return (
     <li className="permissions__entry">
diff --git a/app/addons/permissions/reducers.js b/app/addons/permissions/reducers.js
index 3bf70b7..20bb27d 100644
--- a/app/addons/permissions/reducers.js
+++ b/app/addons/permissions/reducers.js
@@ -41,7 +41,7 @@ export default function permissions (state = initialState, action) {
     default:
       return state;
   }
-};
+}
 
 function getRoles (type, permissions) {
   if (!permissions[type]) {
diff --git a/app/addons/replication/api.js b/app/addons/replication/api.js
index 8db1204..c017fbd 100644
--- a/app/addons/replication/api.js
+++ b/app/addons/replication/api.js
@@ -120,7 +120,6 @@ export const getTarget = ({
   replicationTarget,
   localTarget,
   remoteTarget,
-  replicationSource,
   username,
   password
 },
diff --git a/app/addons/replication/components/common-table.js b/app/addons/replication/components/common-table.js
index 3912261..457b689 100644
--- a/app/addons/replication/components/common-table.js
+++ b/app/addons/replication/components/common-table.js
@@ -24,7 +24,6 @@ export const formatUrl = (url) => {
     urlObj = new URL(removeCredentialsFromUrl(url));
     encoded = encodeURIComponent(urlObj.pathname.slice(1));
   } catch (error) {
-    console.log('error with url', url);
     return '';
   }
 
diff --git a/app/addons/replication/controller.js b/app/addons/replication/controller.js
index 8de28db..3d312b1 100644
--- a/app/addons/replication/controller.js
+++ b/app/addons/replication/controller.js
@@ -38,7 +38,6 @@ export default class ReplicationController extends React.Component {
       activityLoading: store.isActivityLoading(),
       databases: store.getDatabases(),
       authenticated: store.isAuthenticated(),
-      password: store.getPassword(),
 
       // source fields
       replicationSource: store.getReplicationSource(),
@@ -257,8 +256,6 @@ export default class ReplicationController extends React.Component {
     } else {
       return [{'name': 'Replication'}];
     }
-
-    return [];
   }
 
   getTabs () {
diff --git a/app/addons/replication/stores.js b/app/addons/replication/stores.js
index 19badc7..b726636 100644
--- a/app/addons/replication/stores.js
+++ b/app/addons/replication/stores.js
@@ -26,8 +26,7 @@ const validFieldMap = {
   replicationDocName: '_replicationDocName',
   replicationSource: '_replicationSource',
   replicationTarget: '_replicationTarget',
-  localSource: '_localSource',
-  replicationDocName: '_replicationDocName'
+  localSource: '_localSource'
 };
 
 const ReplicationStore = FauxtonAPI.Store.extend({
@@ -303,10 +302,6 @@ const ReplicationStore = FauxtonAPI.Store.extend({
     return this._isConflictModalVisible;
   },
 
-  getPassword () {
-    return this._password;
-  },
-
   setStateFromDoc (doc) {
     Object.keys(doc).forEach(key => {
       this.updateFormField(key, doc[key]);
@@ -413,10 +408,6 @@ const ReplicationStore = FauxtonAPI.Store.extend({
         this._tabSection = options;
       break;
 
-      case ActionTypes.REPLICATION_CLEAR_SELECTED_DOCS:
-        this._allDocsSelected = false;
-      break;
-
       case ActionTypes.REPLICATION_SUPPORT_NEW_API:
         this._checkingAPI = false;
         this._supportNewApi = options;
diff --git a/app/addons/replication/tests/nightwatch/replication.js b/app/addons/replication/tests/nightwatch/replication.js
index c523c8f..bd0c4a4 100644
--- a/app/addons/replication/tests/nightwatch/replication.js
+++ b/app/addons/replication/tests/nightwatch/replication.js
@@ -39,7 +39,6 @@ module.exports = {
     const waitTime = client.globals.maxWaitTime;
     const baseUrl = client.globals.test_settings.launch_url;
     const password = client.globals.test_settings.password;
-    console.log('PASSWORD', password);
 
     client
       .createDatabase(newDatabaseName1)
diff --git a/app/helpers.js b/app/helpers.js
index 93c750c..1a73538 100644
--- a/app/helpers.js
+++ b/app/helpers.js
@@ -58,7 +58,7 @@ Helpers.getDateFromNow = function (timestamp) {
 };
 
 Helpers.escapeJQuerySelector = function (selector) {
-  return selector && selector.replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\$&");
+  return selector && selector.replace(/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g, "\\$&");
 };
 
 /**
diff --git a/bin/remove-test-dbs.js b/bin/remove-test-dbs.js
index ac7a8dc..0307560 100755
--- a/bin/remove-test-dbs.js
+++ b/bin/remove-test-dbs.js
@@ -23,14 +23,14 @@ const nano = require('nano')(dbUrl);
 
 nano.db.list((err, body) => {
   if (err) {
-    console.log('ERR', err);
+    console.error('ERR', err);
     return;
   }
   const list = body.filter(db => {
     return /fauxton-selenium-tests/.test(db);
   }).map(db => {
     return (cb) => {
-      console.log('removing', db);
+      console.info('Removing db', db);
       nano.db.destroy(db, (err) => {
         if (err) {
           cb(err);
diff --git a/devserver.js b/devserver.js
index 691d6ee..d3aadcb 100644
--- a/devserver.js
+++ b/devserver.js
@@ -26,7 +26,7 @@ const loadSettings = function () {
 const settings = loadSettings();
 
 const devSetup = function (cb) {
-  console.log('setup dev environment');
+  console.info('setup dev environment');
   let cmd = 'devSetupWithClean';
   if (settings.noClean) {
     cmd = 'devSetup';
@@ -36,15 +36,15 @@ const devSetup = function (cb) {
   const grunt = spawn(gruntCmd, [cmd]);
 
   grunt.stdout.on('data', (data) => {
-    console.log(data.toString());
+    console.info(data.toString());
   });
 
   grunt.stderr.on('error', (data) => {
-    console.log('Setup error:', data.toString());
+    console.info('Setup error:', data.toString());
   });
 
   grunt.on('close', (code) => {
-    console.log('dev setup finished with code', code);
+    console.info('dev setup finished with code', code);
     if (code === 0) {
       cb();
     }
@@ -63,7 +63,7 @@ function getCspHeaders () {
   return {
     'Content-Security-Policy': cspHeader
   };
-};
+}
 
 const runWebpackServer = function () {
   const proxy = httpProxy.createServer({
@@ -113,11 +113,11 @@ const runWebpackServer = function () {
 
   server.listen(options.port, '0.0.0.0', function (err) {
     if (err) {
-      console.log(err);
+      console.error(err);
       return;
     }
-    console.log('listening on', options.host, options.port);
-    console.log('Starting first compile. This will take about 10 seconds...');
+    console.info('listening on', options.host, options.port);
+    console.info('Starting first compile. This will take about 10 seconds...');
   });
 };
 
diff --git a/index.js b/index.js
index a17d629..9c8d022 100644
--- a/index.js
+++ b/index.js
@@ -16,9 +16,9 @@ module.exports = function (options) {
     return send(req, filePath)
     .on('error', function (err) {
       if (err.status === 404) {
-        console.log('Could not locate', filePath);
+        console.error('Could not locate', filePath);
       } else {
-        console.log('ERROR', filePath, err);
+        console.error('ERROR', filePath, err);
       }
 
       res.setHeader("Content-Type", "text/javascript");
@@ -46,7 +46,7 @@ module.exports = function (options) {
     var url = req.url.split(/\?v=|\?noCache/)[0].replace('_utils', '');
     var accept = [];
     if (req.headers.accept) {
-      var accept = req.headers.accept.split(',');
+      accept = req.headers.accept.split(',');
     }
     if (setContentSecurityPolicy) {
       var headerValue = "default-src 'self'; child-src 'self' data: blob:; img-src 'self' data:; font-src 'self'; " +
@@ -93,9 +93,10 @@ module.exports = function (options) {
   ];
 
   _.each(logo, function (line) {
+    // eslint-disable-next-line no-console
     console.log(line.toString());
   });
-
+  // eslint-disable-next-line no-console
   console.log('Listening on ' + port);
 
   this.close = () => {
diff --git a/tasks/fauxton.js b/tasks/fauxton.js
index b93f838..77f3fd5 100644
--- a/tasks/fauxton.js
+++ b/tasks/fauxton.js
@@ -84,7 +84,7 @@ module.exports = function (grunt) {
     var result = _getNightwatchTests(this.data.settings);
     var addonsWithTests = result.addonFolders;
     var excludeTests = result.excludeTests;
-    console.log('addons and excluded', addonsWithTests, excludeTests);
+    console.info('addons and excluded', addonsWithTests, excludeTests);
 
     // if the user passed a --file="X" on the command line, filter out
     var singleTestToRun = grunt.option('file');
diff --git a/webpack.config.dev.js b/webpack.config.dev.js
index 2ba72f9..c4aab29 100644
--- a/webpack.config.dev.js
+++ b/webpack.config.dev.js
@@ -78,8 +78,8 @@ module.exports = {
           loader: "less-loader",
           options: {
             modifyVars: {
-              largeLogoPath: "\'" + settings.variables.largeLogoPath + "\'",
-              smallLogoPath: "\'" + settings.variables.smallLogoPath + "\'"
+              largeLogoPath: "'" + settings.variables.largeLogoPath + "'",
+              smallLogoPath: "'" + settings.variables.smallLogoPath + "'"
             }
           }
         }
diff --git a/webpack.config.release.js b/webpack.config.release.js
index 4490598..ca18e16 100644
--- a/webpack.config.release.js
+++ b/webpack.config.release.js
@@ -68,8 +68,10 @@ module.exports = {
   ],
 
   resolve: {
-    // Allow to omit extensions when requiring these files
-    extensions: ['', '.js', '.jsx']
+    extensions: ['*', '.js', '.jsx'],
+    alias: {
+      "underscore": "lodash"
+    }
   },
 
   module: {
@@ -113,8 +115,8 @@ module.exports = {
             loader: "less-loader",
             options: {
               modifyVars: {
-                largeLogoPath: "\'" + settings.variables.largeLogoPath + "\'",
-                smallLogoPath: "\'" + settings.variables.smallLogoPath + "\'"
+                largeLogoPath: "'" + settings.variables.largeLogoPath + "'",
+                smallLogoPath: "'" + settings.variables.smallLogoPath + "'"
               }
             }
           }
@@ -143,11 +145,5 @@ module.exports = {
     { test: /\.gif(\?v=\d+\.\d+\.\d+)?$/,    loader: 'file-loader?name=dashboard.assets/img/[name].[ext]' },
     { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,    loader: 'url-loader?limit=10000&mimetype=image/svg+xml&name=dashboard.assets/img/[name].[ext]' }
     ]
-  },
-  resolve: {
-    extensions: ['*', '.js', '.jsx'],
-    alias: {
-      "underscore": "lodash"
-    }
   }
 };

-- 
To stop receiving notification emails like this one, please contact
"commits@couchdb.apache.org" <co...@couchdb.apache.org>.