diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js
index f27dc141dba65d06b278013fc771cabe3a768e26..8022c732351758b864ab5f45708f07d4acd698be 100644
--- a/app/assets/javascripts/dispatcher.js
+++ b/app/assets/javascripts/dispatcher.js
@@ -72,19 +72,18 @@ import RepoBundle from './repo/repo_bundle';
     }
 
     Dispatcher.prototype.initPageScripts = function() {
-      var page, path, shortcut_handler, fileBlobPermalinkUrlElement, fileBlobPermalinkUrl, os;
+      var page, path, shortcut_handler, fileBlobPermalinkUrlElement, fileBlobPermalinkUrl;
       page = $('body').attr('data-page');
       if (!page) {
         return false;
       }
 
-
       function getScrollBarWidth () {
-        var $outer = $('<div>').css({visibility: 'hidden', width: 100, overflow: 'scroll'}).appendTo('body'),
-              widthWithScroll = $('<div>').css({width: '100%'}).appendTo($outer).outerWidth();
+        var $outer = $('<div>').css({ visibility: 'hidden', width: 100, overflow: 'scroll' }).appendTo('body'),
+          widthWithScroll = $('<div>').css({ width: '100%' }).appendTo($outer).outerWidth();
         $outer.remove();
         return 100 - widthWithScroll;
-      };
+      }
 
       $('body').attr('data-scroll-width', getScrollBarWidth());
 
@@ -353,7 +352,7 @@ import RepoBundle from './repo/repo_bundle';
           shortcut_handler = true;
           break;
         case 'projects:blob:show':
-          new RepoBundle();  
+          new RepoBundle();
           break;
         case 'projects:blame:show':
           initBlob();
diff --git a/app/assets/javascripts/repo/repo_binary_viewer.js b/app/assets/javascripts/repo/repo_binary_viewer.js
index 3b4024d8574855d39a44bd2a57ca546f20b7fe90..cc27f6060418f4aa3a2b9994ba7741ef1286a1d2 100644
--- a/app/assets/javascripts/repo/repo_binary_viewer.js
+++ b/app/assets/javascripts/repo/repo_binary_viewer.js
@@ -1,8 +1,9 @@
-import Vue from 'vue'
-import Store from './repo_store'
+import Vue from 'vue';
+import Store from './repo_store';
+import Flash from '../flash';
 
 export default class RepoBinaryViewer {
-  constructor(url) {
+  constructor() {
     this.initVue();
   }
 
@@ -15,19 +16,23 @@ export default class RepoBinaryViewer {
       computed: {
         pngBlobWithDataURI() {
           return `data:image/png;base64,${this.blobRaw}`;
-        }
+        },
       },
 
       watch: {
         blobRaw() {
-          if(!this.binary) return;
-          switch(this.binaryMimeType) {
+          if (!this.binary) return;
+
+          switch (this.binaryMimeType) {
             case 'image/png':
               this.binaryTypes.png = true;
-            break;
-          }          
-        }
-      }
+              break;
+            default:
+              new Flash('Blob could not be loaded'); // eslint-disable-line no-new
+              break;
+          }
+        },
+      },
     });
   }
-}
\ No newline at end of file
+}
diff --git a/app/assets/javascripts/repo/repo_bundle.js b/app/assets/javascripts/repo/repo_bundle.js
index 8ed53203c11e582cd5bbc8fa7b9b264f77be9274..c407a30418643a0ffafbb6e43efd0b2ace8baf49 100644
--- a/app/assets/javascripts/repo/repo_bundle.js
+++ b/app/assets/javascripts/repo/repo_bundle.js
@@ -1,11 +1,11 @@
-import Tabs from './repo_tabs'
-import Sidebar from './repo_sidebar'
-import Editor from './repo_editor'
-import BinaryViewer from './repo_binary_viewer'
-import ViewToggler from './repo_view_toggler'
-import Service from './repo_service'
-import Store from './repo_store'
-import Helper from './repo_helper'
+import Tabs from './repo_tabs';
+import Sidebar from './repo_sidebar';
+import Editor from './repo_editor';
+import BinaryViewer from './repo_binary_viewer';
+import ViewToggler from './repo_view_toggler';
+import Service from './repo_service';
+import Store from './repo_store';
+import Helper from './repo_helper';
 
 export default class RepoBundle {
   constructor() {
diff --git a/app/assets/javascripts/repo/repo_editor.js b/app/assets/javascripts/repo/repo_editor.js
index 05c0926effa498c2b425bff450de08648a5a12e6..997acb90dfe74bb2f93d1f15807789704a34ff27 100644
--- a/app/assets/javascripts/repo/repo_editor.js
+++ b/app/assets/javascripts/repo/repo_editor.js
@@ -1,7 +1,7 @@
 /* global monaco */
 import Vue from 'vue';
-import Store from './repo_store'
-import Helper from './repo_helper'
+import Store from './repo_store';
+import Helper from './repo_helper';
 
 export default class RepoEditor {
   constructor() {
@@ -15,9 +15,9 @@ export default class RepoEditor {
       this.monacoEditor = monaco.editor
       .create(
         document.getElementById('ide'), {
-          model: null
-        }
-      )
+          model: null,
+        },
+      );
       Helper.monacoInstance = monaco;
       this.initVue();
       monaco.languages.getLanguages();
@@ -29,20 +29,20 @@ export default class RepoEditor {
     const monacoEditor = this.monacoEditor;
     this.vue = new Vue({
       data: () => Store,
-      created () {
-        if(this.blobRaw !== ''){
+      created() {
+        if (this.blobRaw !== '') {
           monacoEditor.setModel(
             monaco.editor.createModel(
               this.blobRaw,
-              'plain'
-            )
+              'plain',
+            ),
           );
         }
       },
 
       watch: {
         isTree() {
-          if(this.isTree || !this.openedFiles.length) {
+          if (this.isTree || !this.openedFiles.length) {
             self.el.style.display = 'none';
           } else {
             self.el.style.display = 'inline-block';
@@ -50,7 +50,7 @@ export default class RepoEditor {
         },
 
         openedFiles() {
-          if((this.isTree || !this.openedFiles.length) || this.binary) {
+          if ((this.isTree || !this.openedFiles.length) || this.binary) {
             self.el.style.display = 'none';
           } else {
             self.el.style.display = 'inline-block';
@@ -58,21 +58,21 @@ export default class RepoEditor {
         },
 
         blobRaw() {
-          if(this.binary) {
+          if (this.binary) {
             self.el.style.display = 'none';
           } else {
-            self.el.style.display = 'inline-block'; 
+            self.el.style.display = 'inline-block';
           }
-          if(!this.isTree) {
+          if (!this.isTree) {
             self.monacoEditor.setModel(
               monaco.editor.createModel(
                 this.blobRaw,
-                this.activeFile.mime_type
-              )
+                this.activeFile.mime_type,
+              ),
             );
           }
-        }
-      }
+        },
+      },
     });
   }
-}
\ No newline at end of file
+}
diff --git a/app/assets/javascripts/repo/repo_file.js b/app/assets/javascripts/repo/repo_file.js
index b1f8e3bb0e55c8a5d503c79d3855dd8b6d2a340b..55e8c176eeb89e0fc3c760f595d0d6187048d65b 100644
--- a/app/assets/javascripts/repo/repo_file.js
+++ b/app/assets/javascripts/repo/repo_file.js
@@ -1,4 +1,4 @@
-let RepoFile = {
+const RepoFile = {
   template: `
   <tr v-if='!loading.tree || hasFiles'>
     <td>
@@ -19,13 +19,13 @@ let RepoFile = {
     isTree: Boolean,
     isMini: Boolean,
     loading: Object,
-    hasFiles: Boolean
+    hasFiles: Boolean,
   },
 
   methods: {
     linkClicked(file) {
       this.$emit('linkclicked', file);
-    }
-  }
+    },
+  },
 };
 export default RepoFile;
diff --git a/app/assets/javascripts/repo/repo_helper.js b/app/assets/javascripts/repo/repo_helper.js
index 4f823f9cdc22a413a90a83b8214b9099af37e7d9..257f6241f4312d6bc087d994a64ed732e0248af3 100644
--- a/app/assets/javascripts/repo/repo_helper.js
+++ b/app/assets/javascripts/repo/repo_helper.js
@@ -1,9 +1,10 @@
-import Service from './repo_service'
-import Store from './repo_store'
+import Service from './repo_service';
+import Store from './repo_store';
+import Flash from '../flash';
 
-let RepoHelper = {
+const RepoHelper = {
   isTree(data) {
-    return data.hasOwnProperty('blobs');
+    return Object.hasOwnProperty.call(data, 'blobs');
   },
 
   monacoInstance: undefined,
@@ -14,17 +15,11 @@ let RepoHelper = {
   : Date,
 
   getLanguagesForMimeType(mimetypeNeedle) {
-    const langs = monaco.languages.getLanguages();
-    let lang = '';
-    langs.every((lang) => {
-      const hasLang = lang.mimetypes.some((mimetype) => {
-        return mimetypeNeedle === mimetype
-      });
-      if(hasLang) {
-        lang = lang.id;
-        return true;
-      }
-      return false;
+    const langs = window.monaco.languages.getLanguages();
+    langs.map((lang) => {
+      const hasLang = lang.mimetypes.some(mimetype => mimetypeNeedle === mimetype);
+      if (hasLang) return lang.id;
+      return lang;
     });
   },
 
@@ -32,7 +27,7 @@ let RepoHelper = {
     const split = url.split('/');
     split.pop();
     const blobIndex = split.indexOf('blob');
-    if(blobIndex > -1) {
+    if (blobIndex > -1) {
       split[blobIndex] = 'tree';
     }
     return split.join('/');
@@ -40,21 +35,22 @@ let RepoHelper = {
 
   insertNewFilesIntoParentDir(inDirectory, oldList, newList) {
     let indexOfFile;
-    if(!inDirectory) {
+    if (!inDirectory) {
       return newList;
     }
     oldList.find((file, i) => {
-      if(file.url === inDirectory.url){
-        indexOfFile = i+1;
+      if (file.url === inDirectory.url) {
+        indexOfFile = i + 1;
         return true;
       }
       return false;
     });
-    if(indexOfFile){
+    if (indexOfFile) {
       // insert new list into old list
       newList.forEach((newFile) => {
-        newFile.level = inDirectory.level + 1;
-        oldList.splice(indexOfFile, 0, newFile);
+        const file = newFile;
+        file.level = inDirectory.level + 1;
+        oldList.splice(indexOfFile, 0, file);
       });
       return oldList;
     }
@@ -63,47 +59,45 @@ let RepoHelper = {
 
   setActiveFile(file) {
     Store.openedFiles = Store.openedFiles.map((openedFile) => {
-      openedFile.active = file.url === openedFile.url;
-      if(openedFile.active) {
-        Store.activeFile = openedFile;
+      const activeFile = openedFile;
+      activeFile.active = file.url === activeFile.url; // eslint-disable-line no-param-reassign
+      if (activeFile.active) {
+        Store.activeFile = activeFile;
       }
-      return openedFile;
+      return activeFile;
     });
-    if(file.binary) {
+    if (file.binary) {
       Store.blobRaw = file.base64;
-      console.log('binary', file)
     } else {
       Store.blobRaw = file.plain;
     }
-    if(!file.loading){
-      this.toURL(file.url);  
+    if (!file.loading) {
+      this.toURL(file.url);
     }
     Store.binary = file.binary;
   },
 
   removeFromOpenedFiles(file) {
-    console.log('file remove', file)
-    if(file.type === 'tree') return;
-    Store.openedFiles = Store.openedFiles.filter((openedFile) => {
-      return openedFile.url !== file.url;
-    });
+    if (file.type === 'tree') return;
+    Store.openedFiles = Store.openedFiles.filter(openedFile => openedFile.url !== file.url);
   },
 
   addToOpenedFiles(file) {
-    const openedFilesAlreadyExists = Store.openedFiles.some((openedFile) => {
-      return openedFile.url === file.url
-    });
-    if(!openedFilesAlreadyExists) {
+    const openedFilesAlreadyExists = Store.openedFiles
+      .some(openedFile => openedFile.url === file.url);
+    if (!openedFilesAlreadyExists) {
       Store.openedFiles.push(file);
     }
   },
 
+  /* eslint-disable no-param-reassign */
   setDirectoryOpen(tree) {
-    if(tree) {
+    if (tree) {
       tree.opened = true;
       tree.icon = 'fa-folder-open';
     }
   },
+  /* eslint-enable no-param-reassign */
 
   getRawURLFromBlobURL(url) {
     return url.replace('blob', 'raw');
@@ -113,58 +107,57 @@ let RepoHelper = {
     Service.getBase64Content(url)
     .then((response) => {
       Store.blobRaw = response;
-      file.base64 = response
-      console.log('file',file);
-    });
+      file.base64 = response; // eslint-disable-line no-param-reassign
+    })
+    .catch(this.loadingError);
   },
 
   toggleFakeTab(loading, file) {
-    if(loading) {
+    if (loading) {
       const randomURL = this.Time.now();
       const newFakeFile = {
         active: false,
         binary: true,
         type: 'blob',
         loading: true,
-        mime_type:'loading',
+        mime_type: 'loading',
         name: 'loading',
-        url: randomURL
+        url: randomURL,
       };
       Store.openedFiles.push(newFakeFile);
       return newFakeFile;
-    } else {
-      this.removeFromOpenedFiles(file);
-      return null;
     }
+    this.removeFromOpenedFiles(file);
+    return null;
   },
 
   setLoading(loading, file) {
-    if(Service.url.indexOf('tree') > -1) {
+    if (Service.url.indexOf('tree') > -1) {
       Store.loading.tree = loading;
-    } else if(Service.url.indexOf('blob') > -1) {
+    } else if (Service.url.indexOf('blob') > -1) {
       Store.loading.blob = loading;
       return this.toggleFakeTab(loading, file);
     }
+
+    return undefined;
   },
 
     // may be tree or file.
   getContent(file) {
     const loadingData = this.setLoading(true);
-    console.log('loading data', loadingData)
     Service.getContent()
     .then((response) => {
-      console.log('loadddd')
-      let data = response.data;
+      const data = response.data;
       this.setLoading(false, loadingData);
       Store.isTree = this.isTree(data);
-      if(!Store.isTree) {
+      if (!Store.isTree) {
         // it's a blob
         Store.binary = data.binary;
-        if(data.binary) {
+        if (data.binary) {
           Store.binaryMimeType = data.mime_type;
           this.setBinaryDataAsBase64(
             this.getRawURLFromBlobURL(file.url),
-            data
+            data,
           );
           data.binary = true;
           data.url = file.url;
@@ -177,20 +170,19 @@ let RepoHelper = {
           data.url = file.url;
           data.binary = false;
           this.addToOpenedFiles(data);
-          this.setActiveFile(data);  
+          this.setActiveFile(data);
         }
       } else {
         // it's a tree
         this.setDirectoryOpen(file);
-        let newDirectory = this.dataToListOfFiles(data);
+        const newDirectory = this.dataToListOfFiles(data);
         Store.files = this.insertNewFilesIntoParentDir(file, Store.files, newDirectory);
         Store.prevURL = this.blobURLtoParent(Service.url);
-        console.log('Store.prevURL',Store.prevURL);
       }
     })
-    .catch((response)=> {
+    .catch(() => {
       this.setLoading(false, loadingData);
-      new Flash('Unable to load the file at this time.')
+      this.loadingError();
     });
   },
 
@@ -198,28 +190,28 @@ let RepoHelper = {
     return `fa-${icon}`;
   },
 
+  /* eslint-disable no-param-reassign */
   removeChildFilesOfTree(tree) {
     let foundTree = false;
     Store.files = Store.files.filter((file) => {
-      if(file.url === tree.url) {
+      if (file.url === tree.url) {
         foundTree = true;
       }
-      if(foundTree) {
-        return file.level <= tree.level
-      } else {
-        return true;
+      if (foundTree) {
+        return file.level <= tree.level;
       }
+      return true;
     });
 
     tree.opened = false;
     tree.icon = 'fa-folder';
-
   },
+  /* eslint-enable no-param-reassign */
 
   dataToListOfFiles(data) {
-    let a = [];
+    const a = [];
 
-    //push in blobs
+    // push in blobs
     data.blobs.forEach((blob) => {
       a.push({
         type: 'blob',
@@ -228,8 +220,8 @@ let RepoHelper = {
         icon: this.toFA(blob.icon),
         lastCommitMessage: blob.last_commit.message,
         lastCommitUpdate: blob.last_commit.committed_date,
-        level: 0
-      })
+        level: 0,
+      });
     });
 
     data.trees.forEach((tree) => {
@@ -238,8 +230,8 @@ let RepoHelper = {
         name: tree.name,
         url: tree.url,
         icon: this.toFA(tree.icon),
-        level: 0
-      })
+        level: 0,
+      });
     });
 
     data.submodules.forEach((submodule) => {
@@ -248,32 +240,36 @@ let RepoHelper = {
         name: submodule.name,
         url: submodule.url,
         icon: this.toFA(submodule.icon),
-        level: 0
-      })
+        level: 0,
+      });
     });
 
     return a;
   },
 
-  genKey () {
-    return this.Time.now().toFixed(3)
+  genKey() {
+    return this.Time.now().toFixed(3);
   },
 
-  _key: '',
+  key: '',
 
-  getStateKey () {
-    return this._key
+  getStateKey() {
+    return this.key;
   },
 
-  setStateKey (key) {
-    this._key = key;
+  setStateKey(key) {
+    this.key = key;
   },
 
   toURL(url) {
-    var history = window.history;
-    this._key = this.genKey();
-    history.pushState({ key: this._key }, '', url);
-  }
+    const history = window.history;
+    this.key = this.genKey();
+    history.pushState({ key: this.key }, '', url);
+  },
+
+  loadingError() {
+    new Flash('Unable to load the file at this time.'); // eslint-disable-line no-new
+  },
 };
 
-export default RepoHelper;
\ No newline at end of file
+export default RepoHelper;
diff --git a/app/assets/javascripts/repo/repo_loading_file.js b/app/assets/javascripts/repo/repo_loading_file.js
index 39d0cc39fe4a500ae6d3f280eff0c17866148fed..66344b789984c19fbbcba6d5f4c13ac57fee0620 100644
--- a/app/assets/javascripts/repo/repo_loading_file.js
+++ b/app/assets/javascripts/repo/repo_loading_file.js
@@ -1,4 +1,4 @@
-let RepoLoadingFile = {
+const RepoLoadingFile = {
   template: `
   <tr v-if='loading.tree && !hasFiles'>
     <td>
@@ -36,7 +36,7 @@ let RepoLoadingFile = {
   props: {
     loading: Object,
     hasFiles: Boolean,
-    isMini: Boolean
-  }
+    isMini: Boolean,
+  },
 };
-export default RepoLoadingFile;
\ No newline at end of file
+export default RepoLoadingFile;
diff --git a/app/assets/javascripts/repo/repo_mini_mixin.js b/app/assets/javascripts/repo/repo_mini_mixin.js
index 81978177fd733dfcdd728c1d0e981b647221adf3..e33956b6d156a9db3c006c997ee6c20ceac389fd 100644
--- a/app/assets/javascripts/repo/repo_mini_mixin.js
+++ b/app/assets/javascripts/repo/repo_mini_mixin.js
@@ -1,11 +1,11 @@
-import Store from './repo_store'
+import Store from './repo_store';
 
-let RepoMiniMixin = {
+const RepoMiniMixin = {
   computed: {
     isMini() {
       return !!Store.openedFiles.length;
-    }
+    },
   },
 };
 
-export default RepoMiniMixin;
\ No newline at end of file
+export default RepoMiniMixin;
diff --git a/app/assets/javascripts/repo/repo_prev_directory.js b/app/assets/javascripts/repo/repo_prev_directory.js
index febd08e152e064e6ae45d3ac21df083d0e287036..59310bbf5e6989ecbf1e4ca1c3f8e04e2a68cc40 100644
--- a/app/assets/javascripts/repo/repo_prev_directory.js
+++ b/app/assets/javascripts/repo/repo_prev_directory.js
@@ -1,4 +1,4 @@
-let RepoPreviousDirectory = {
+const RepoPreviousDirectory = {
   template: `
   <tr>
     <td colspan='3'>
@@ -8,13 +8,13 @@ let RepoPreviousDirectory = {
   `,
   props: {
     name: 'repo-previous-directory',
-    prevurl: String
+    prevurl: String,
   },
 
   methods: {
     linkClicked(file) {
       this.$emit('linkclicked', file);
-    }
-  }
+    },
+  },
 };
-export default RepoPreviousDirectory;
\ No newline at end of file
+export default RepoPreviousDirectory;
diff --git a/app/assets/javascripts/repo/repo_service.js b/app/assets/javascripts/repo/repo_service.js
index 137c468478de8710f8f509d6153c94e60ca2e324..f303a1270cac362e705de78202fb60620da14be0 100644
--- a/app/assets/javascripts/repo/repo_service.js
+++ b/app/assets/javascripts/repo/repo_service.js
@@ -1,11 +1,11 @@
 import axios from 'axios';
 
-let RepoService = {
+const RepoService = {
   url: '',
   params: {
     params: {
-      format: 'json'
-    }
+      format: 'json',
+    },
   },
 
   setUrl(url) {
@@ -13,8 +13,8 @@ let RepoService = {
   },
 
   getContent(url) {
-    if(url){
-      return axios.get(url, this.params);  
+    if (url) {
+      return axios.get(url, this.params);
     }
     return axios.get(this.url, this.params);
   },
@@ -22,10 +22,10 @@ let RepoService = {
   getBase64Content(url) {
     return axios
       .get(url, {
-        responseType: 'arraybuffer'
+        responseType: 'arraybuffer',
       })
-      .then(response => new Buffer(response.data, 'binary').toString('base64'))
-  }
+      .then(response => new Buffer(response.data, 'binary').toString('base64'));
+  },
 };
 
-export default RepoService;
\ No newline at end of file
+export default RepoService;
diff --git a/app/assets/javascripts/repo/repo_sidebar.js b/app/assets/javascripts/repo/repo_sidebar.js
index 979b687acbaa0880c83f78b38e8b36cb85d394ae..5825a60d79a66af70008e08606b3e1034225d36e 100644
--- a/app/assets/javascripts/repo/repo_sidebar.js
+++ b/app/assets/javascripts/repo/repo_sidebar.js
@@ -1,11 +1,11 @@
-import Service from './repo_service'
-import Helper from './repo_helper'
-import Vue from 'vue'
-import Store from './repo_store'
-import RepoPreviousDirectory from './repo_prev_directory'
-import RepoFile from './repo_file'
-import RepoLoadingFile from './repo_loading_file'
-import RepoMiniMixin from './repo_mini_mixin'
+import Vue from 'vue';
+import Service from './repo_service';
+import Helper from './repo_helper';
+import Store from './repo_store';
+import RepoPreviousDirectory from './repo_prev_directory';
+import RepoFile from './repo_file';
+import RepoLoadingFile from './repo_loading_file';
+import RepoMiniMixin from './repo_mini_mixin';
 
 export default class RepoSidebar {
   constructor(url) {
@@ -34,29 +34,29 @@ export default class RepoSidebar {
         addPopEventListener() {
           window.addEventListener('popstate', () => {
             this.linkClicked({
-              url: location.href
+              url: location.href,
             });
           });
         },
 
         linkClicked(file) {
           let url = '';
-          if(typeof file === 'string'){
+          if (typeof file === 'string') {
             // go back
             url = file;
           } else {
             url = file.url;
           }
           Service.url = url;
-          if(typeof file === 'object') {
-            if(file.type === 'tree' && file.opened) {
+          if (typeof file === 'object') {
+            if (file.type === 'tree' && file.opened) {
               Helper.removeChildFilesOfTree(file);
               return;
             }
             Helper.getContent(file);
           }
-        }
+        },
       },
     });
   }
-}
\ No newline at end of file
+}
diff --git a/app/assets/javascripts/repo/repo_store.js b/app/assets/javascripts/repo/repo_store.js
index 50f96e1a39551eeabe3646877692754acc9c7814..8d2dbbfd54038fea73f661463969a1f020237f77 100644
--- a/app/assets/javascripts/repo/repo_store.js
+++ b/app/assets/javascripts/repo/repo_store.js
@@ -1,4 +1,4 @@
-let RepoStore = {
+const RepoStore = {
   service: '',
   editor: '',
   sidebar: '',
@@ -14,14 +14,14 @@ let RepoStore = {
   files: [],
   binary: false,
   binaryMimeType: '',
-  //scroll bar space for windows
+  // scroll bar space for windows
   scrollWidth: 0,
   binaryTypes: {
-    png: false
+    png: false,
   },
   loading: {
     tree: false,
-    blob: false
-  }
+    blob: false,
+  },
 };
 export default RepoStore;
diff --git a/app/assets/javascripts/repo/repo_tab.js b/app/assets/javascripts/repo/repo_tab.js
index ec6d31682d6607376ad65ae5db93848dad8476ee..7c4ed25c06bf451e6a38812c12d8497158a2bc2d 100644
--- a/app/assets/javascripts/repo/repo_tab.js
+++ b/app/assets/javascripts/repo/repo_tab.js
@@ -1,6 +1,6 @@
-import RepoHelper from './repo_helper'
+import RepoHelper from './repo_helper';
 
-let RepoTab = {
+const RepoTab = {
   template: `
   <li>
     <a href='#' @click.prevent='xClicked(tab)' v-if='!tab.loading'>
@@ -23,7 +23,7 @@ let RepoTab = {
 
     xClicked(file) {
       RepoHelper.removeFromOpenedFiles(file);
-    }
-  }
+    },
+  },
 };
-export default RepoTab;
\ No newline at end of file
+export default RepoTab;
diff --git a/app/assets/javascripts/repo/repo_tabs.js b/app/assets/javascripts/repo/repo_tabs.js
index b89976c345827b5684d535081835ddd9f2c16cf2..50f953a5a4baaa0d848c9c2ec16803a06127ac18 100644
--- a/app/assets/javascripts/repo/repo_tabs.js
+++ b/app/assets/javascripts/repo/repo_tabs.js
@@ -1,11 +1,11 @@
 import Vue from 'vue';
-import Store from './repo_store'
-import RepoTab from './repo_tab'
-import RepoMiniMixin from './repo_mini_mixin'
+import Store from './repo_store';
+import RepoTab from './repo_tab';
+import RepoMiniMixin from './repo_mini_mixin';
 
 export default class RepoTabs {
   constructor() {
-    this.styleTabsForWindows();
+    RepoTabs.styleTabsForWindows();
     this.initVue();
   }
 
@@ -20,8 +20,8 @@ export default class RepoTabs {
     });
   }
 
-  styleTabsForWindows() {
+  static styleTabsForWindows() {
     const scrollWidth = Number(document.body.dataset.scrollWidth);
     Store.scrollWidth = scrollWidth;
   }
-}
\ No newline at end of file
+}
diff --git a/app/assets/javascripts/repo/repo_view_toggler.js b/app/assets/javascripts/repo/repo_view_toggler.js
index 577937d2c72d78b5bfe4b54a3b97e298fa8a2491..55c9c9208c5dd92f54fa7d62cb453c62bc4f56aa 100644
--- a/app/assets/javascripts/repo/repo_view_toggler.js
+++ b/app/assets/javascripts/repo/repo_view_toggler.js
@@ -1,6 +1,5 @@
-import Service from './repo_service'
-import Vue from 'vue'
-import Store from './repo_store'
+import Vue from 'vue';
+import Store from './repo_store';
 
 export default class RepoViewToggler {
   constructor() {
@@ -14,4 +13,4 @@ export default class RepoViewToggler {
       data: () => Store,
     });
   }
-}
\ No newline at end of file
+}