diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index 9969296a84cf8aae3413b4da17f09983139e15df..ec66cec0dce596a84b84d50cc14b489c3a005fa4 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -10372,8 +10372,7 @@
     },
     "stringstream": {
       "version": "0.0.5",
-      "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
-      "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
+      "resolved": "",
       "optional": true
     },
     "strip-ansi": {
@@ -10489,16 +10488,18 @@
           "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-1.3.4.tgz",
           "integrity": "sha1-j0uu3Rj1wkYPAQdijHiYxgarKW8=",
           "requires": {
-            "cf-blob.js": "0.0.1"
+            "adler32cs": "github:chick307/adler32cs.js#7fd00ffa24bf173a1eeb987ce7a21ae214eff658",
+            "cf-blob.js": "0.0.1",
+            "filesaver.js": "github:andyinabox/FileSaver.js#973b433b8fbaee9a11d53b9ae423b046742cfe32"
           },
           "dependencies": {
             "adler32cs": {
               "version": "github:chick307/adler32cs.js#7fd00ffa24bf173a1eeb987ce7a21ae214eff658",
-              "from": "github:chick307/adler32cs.js#7fd00ffa24bf173a1eeb987ce7a21ae214eff658"
+              "from": "github:chick307/adler32cs.js"
             },
             "filesaver.js": {
               "version": "github:andyinabox/FileSaver.js#973b433b8fbaee9a11d53b9ae423b046742cfe32",
-              "from": "github:andyinabox/FileSaver.js#973b433b8fbaee9a11d53b9ae423b046742cfe32"
+              "from": "github:andyinabox/FileSaver.js"
             }
           }
         },
diff --git a/public/css/AdminLTE.css b/public/css/AdminLTE.css
deleted file mode 100755
index 1acf4d9479e4d2a3a2aed246c1c9e6b8c2f4ead9..0000000000000000000000000000000000000000
Binary files a/public/css/AdminLTE.css and /dev/null differ
diff --git a/public/css/all.css b/public/css/all.css
index e39eb34d6e2b6467f96ee57b06ffbe100c218329..018ef6c4e6f0439d77d5bc62aef9ab7fb7d8157f 100644
Binary files a/public/css/all.css and b/public/css/all.css differ
diff --git a/public/css/blue.png b/public/css/blue.png
deleted file mode 100644
index af04cee596d5d2f884b03f9d8f0dd25c1cd5a0fa..0000000000000000000000000000000000000000
Binary files a/public/css/blue.png and /dev/null differ
diff --git a/public/css/blue@2x.png b/public/css/blue@2x.png
deleted file mode 100644
index f19210a9e570edb8acbb6d425809d8835854f190..0000000000000000000000000000000000000000
Binary files a/public/css/blue@2x.png and /dev/null differ
diff --git a/public/css/build/AdminLTE.css b/public/css/build/AdminLTE.css
index 0a8ec8e15fb712eeffd40abe924083a73cc4d00f..76f1e42edf942915af4c511c9100ef14c2ba5ec7 100644
Binary files a/public/css/build/AdminLTE.css and b/public/css/build/AdminLTE.css differ
diff --git a/public/css/build/AdminLTE.css.map b/public/css/build/AdminLTE.css.map
deleted file mode 100644
index c8e85101cd62db9011fe28b703852d1debc80daa..0000000000000000000000000000000000000000
Binary files a/public/css/build/AdminLTE.css.map and /dev/null differ
diff --git a/public/css/build/all.css b/public/css/build/all.css
deleted file mode 100644
index f175d1103b8a7a30cbfc84a1ceb9f72db8bd35d8..0000000000000000000000000000000000000000
Binary files a/public/css/build/all.css and /dev/null differ
diff --git a/public/css/build/app.css b/public/css/build/app.css
index 65086ae8014af6f09e3c79398f5b9aee9b2853d2..5f2161d952046b1b8241e06c1e01f53f5967f121 100644
Binary files a/public/css/build/app.css and b/public/css/build/app.css differ
diff --git a/public/css/build/app.css.map b/public/css/build/app.css.map
deleted file mode 100644
index 57f6c645a7fd2c21711ff5a0f708051df2abe26b..0000000000000000000000000000000000000000
Binary files a/public/css/build/app.css.map and /dev/null differ
diff --git a/public/css/app.css b/public/css/build/bootstrap.css
similarity index 88%
rename from public/css/app.css
rename to public/css/build/bootstrap.css
index 9c49411b797b6331981604335fd0c879250e6dc4..d654e4815923a2b8eac7a307dd56d314b9132264 100644
Binary files a/public/css/app.css and b/public/css/build/bootstrap.css differ
diff --git a/public/css/dist/all.css b/public/css/dist/all.css
deleted file mode 100644
index f175d1103b8a7a30cbfc84a1ceb9f72db8bd35d8..0000000000000000000000000000000000000000
Binary files a/public/css/dist/all.css and /dev/null differ
diff --git a/public/css/overrides.css b/public/css/overrides.css
deleted file mode 100644
index 642f85d2b11008a8cf5e5f6018af79b0843483bf..0000000000000000000000000000000000000000
Binary files a/public/css/overrides.css and /dev/null differ
diff --git a/public/js/app.js b/public/js/app.js
index 7f52e74c0d6e828eb20537e43a79c0503d4f05a5..9a564fcb189fceda18c1a13603f0bb1ebb8618e7 100644
Binary files a/public/js/app.js and b/public/js/app.js differ
diff --git a/public/js/build/app.js b/public/js/build/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..c465642a00e08d536ce33aac5c998f51ac845071
Binary files /dev/null and b/public/js/build/app.js differ
diff --git a/public/js/snipeit.js b/public/js/snipeit.js
new file mode 100644
index 0000000000000000000000000000000000000000..2be814575842a266b5804e250813aa94615f2aa6
Binary files /dev/null and b/public/js/snipeit.js differ
diff --git a/public/js/vendor.js b/public/js/vendor.js
index 8aa68859d82426b20b0dedc5105b1feccb0bc627..d3b9a536b87fe6518be6ad06837853ad4bf70b10 100644
Binary files a/public/js/vendor.js and b/public/js/vendor.js differ
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index f29ebdebae6b79772fc9c1b25f0b2972b1df244d..6ce0d93f884b8991906e6485ac7ce319448ccd38 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -1,14 +1,14 @@
 {
-    "/js/app.js": "/js/app.js?id=496b2158637db1de24ee",
-    "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=dad91a899cd02dd115e1",
-    "/css/build/app.css": "/css/build/app.css?id=0218d2aa64219ffbb011",
-    "/css/all.css": "/css/all.css?id=f1e562babc5a1962b7f2",
+    "/js/app.js": "/js/app.js?id=818d31d3716495504611",
+    "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=f7a5d783fef321018f4c",
+    "/css/build/app.css": "/css/build/app.css?id=0dfc05b0fe1dcc9b6e3d",
+    "/css/all.css": "/css/all.css?id=c6ec5749d68d87512346",
     "/css/skins/skin-green-dark.min.css": "/css/skins/skin-green-dark.min.css?id=1039ae0e198a7f3d8da7",
     "/css/skins/skin-orange-dark.min.css": "/css/skins/skin-orange-dark.min.css?id=9a461970f7ab07f40847",
     "/css/skins/skin-red-dark.min.css": "/css/skins/skin-red-dark.min.css?id=99f90bbd653d7db10795",
     "/css/signature-pad.css": "/css/signature-pad.css?id=6a89d3cd901305e66ced",
     "/css/signature-pad.min.css": "/css/signature-pad.min.css?id=6a89d3cd901305e66ced",
-    "/js/vendor.js": "/js/vendor.js?id=346e7071aeba37b24fe5",
+    "/js/vendor.js": "/js/vendor.js?id=c8bc37fd1a8b2d7aea69",
     "/js/html5shiv.min.js": "/js/html5shiv.min.js?id=ba846cb704dbfbc5f1b3",
     "/js/respond.min.js": "/js/respond.min.js?id=afc1984a3d17110449dc",
     "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=7223478ba9bf2c6dfb4f",
diff --git a/resources/assets/js/admin-lte-options.js b/resources/assets/js/admin-lte-options.js
deleted file mode 100644
index 885a9cec92de77fe24f734469c56b1ce16c2a846..0000000000000000000000000000000000000000
--- a/resources/assets/js/admin-lte-options.js
+++ /dev/null
@@ -1,696 +0,0 @@
-/*! AdminLTE app.js
- * ================
- * Main JS application file for AdminLTE v2. This file
- * should be included in all pages. It controls some layout
- * options and implements exclusive AdminLTE plugins.
- *
- * @Author  Almsaeed Studio
- * @Support <http://www.almsaeedstudio.com>
- * @Email   <support@almsaeedstudio.com>
- * @version 2.3.0
- * @license MIT <http://opensource.org/licenses/MIT>
- */
-
-//Make sure jQuery has been loaded before app.js
-if (typeof jQuery === "undefined") {
-    throw new Error("AdminLTE requires jQuery");
-  }
-  
-  
-  /* AdminLTE
-   *
-   * @type Object
-   * @description $.AdminLTE is the main object for the template's app.
-   *              It's used for implementing functions and options related
-   *              to the template. Keeping everything wrapped in an object
-   *              prevents conflict with other plugins and is a better
-   *              way to organize our code.
-   */
-  $.AdminLTE = {};
-  
-  /* --------------------
-   * - AdminLTE Options -
-   * --------------------
-   * Modify these options to suit your implementation
-   */
-  $.AdminLTE.options = {
-    //Add slimscroll to navbar menus
-    //This requires you to load the slimscroll plugin
-    //in every page before app.js
-    navbarMenuSlimscroll: true,
-    navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar
-    navbarMenuHeight: "200px", //The height of the inner menu
-    //General animation speed for JS animated elements such as box collapse/expand and
-    //sidebar treeview slide up/down. This options accepts an integer as milliseconds,
-    //'fast', 'normal', or 'slow'
-    animationSpeed: 500,
-    //Sidebar push menu toggle button selector
-    sidebarToggleSelector: "[data-toggle='offcanvas']",
-    //Activate sidebar push menu
-    sidebarPushMenu: true,
-    //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)
-    sidebarSlimScroll: true,
-    //Enable sidebar expand on hover effect for sidebar mini
-    //This option is forced to true if both the fixed layout and sidebar mini
-    //are used together
-    sidebarExpandOnHover: false,
-    //BoxRefresh Plugin
-    enableBoxRefresh: true,
-    //Bootstrap.js tooltip
-    enableBSToppltip: true,
-    BSTooltipSelector: "[data-toggle='tooltip']",
-    //Enable Fast Click. Fastclick.js creates a more
-    //native touch experience with touch devices. If you
-    //choose to enable the plugin, make sure you load the script
-    //before AdminLTE's app.js
-    enableFastclick: false,
-    //Control Sidebar Options
-    enableControlSidebar: true,
-    controlSidebarOptions: {
-      //Which button should trigger the open/close event
-      toggleBtnSelector: "[data-toggle='control-sidebar']",
-      //The sidebar selector
-      selector: ".control-sidebar",
-      //Enable slide over content
-      slide: true
-    },
-    //Box Widget Plugin. Enable this plugin
-    //to allow boxes to be collapsed and/or removed
-    enableBoxWidget: true,
-    //Box Widget plugin options
-    boxWidgetOptions: {
-      boxWidgetIcons: {
-        //Collapse icon
-        collapse: 'fa-minus',
-        //Open icon
-        open: 'fa-plus',
-        //Remove icon
-        remove: 'fa-times'
-      },
-      boxWidgetSelectors: {
-        //Remove button selector
-        remove: '[data-widget="remove"]',
-        //Collapse button selector
-        collapse: '[data-widget="collapse"]'
-      }
-    },
-    //Direct Chat plugin options
-    directChat: {
-      //Enable direct chat by default
-      enable: true,
-      //The button to open and close the chat contacts pane
-      contactToggleSelector: '[data-widget="chat-pane-toggle"]'
-    },
-    //Define the set of colors to use globally around the website
-    colors: {
-      lightBlue: "#3c8dbc",
-      red: "#f56954",
-      green: "#00a65a",
-      aqua: "#00c0ef",
-      yellow: "#f39c12",
-      blue: "#0073b7",
-      navy: "#001F3F",
-      teal: "#39CCCC",
-      olive: "#3D9970",
-      lime: "#01FF70",
-      orange: "#FF851B",
-      fuchsia: "#F012BE",
-      purple: "#8E24AA",
-      maroon: "#D81B60",
-      black: "#222222",
-      gray: "#d2d6de"
-    },
-    //The standard screen sizes that bootstrap uses.
-    //If you change these in the variables.less file, change
-    //them here too.
-    screenSizes: {
-      xs: 480,
-      sm: 768,
-      md: 992,
-      lg: 1200
-    }
-  };
-  
-  /* ------------------
-   * - Implementation -
-   * ------------------
-   * The next block of code implements AdminLTE's
-   * functions and plugins as specified by the
-   * options above.
-   */
-  $(function () {
-    "use strict";
-  
-    //Fix for IE page transitions
-    $("body").removeClass("hold-transition");
-  
-    //Extend options if external options exist
-    if (typeof AdminLTEOptions !== "undefined") {
-      $.extend(true,
-              $.AdminLTE.options,
-              AdminLTEOptions);
-    }
-  
-    //Easy access to options
-    var o = $.AdminLTE.options;
-  
-    //Set up the object
-    _init();
-  
-    //Activate the layout maker
-    $.AdminLTE.layout.activate();
-  
-    //Enable sidebar tree view controls
-    $.AdminLTE.tree('.sidebar');
-  
-    //Enable control sidebar
-    if (o.enableControlSidebar) {
-      $.AdminLTE.controlSidebar.activate();
-    }
-  
-    //Add slimscroll to navbar dropdown
-    if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {
-      $(".navbar .menu").slimscroll({
-        height: o.navbarMenuHeight,
-        alwaysVisible: false,
-        size: o.navbarMenuSlimscrollWidth
-      }).css("width", "100%");
-    }
-  
-    //Activate sidebar push menu
-    if (o.sidebarPushMenu) {
-      $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);
-    }
-  
-    //Activate Bootstrap tooltip
-    if (o.enableBSToppltip) {
-        $.widget.bridge('uitooltip', $.ui.tooltip);
-      $('body').tooltip({
-        selector: o.BSTooltipSelector
-      });
-  
-    }
-  
-    //Activate box widget
-    if (o.enableBoxWidget) {
-      $.AdminLTE.boxWidget.activate();
-    }
-  
-    //Activate fast click
-    if (o.enableFastclick && typeof FastClick != 'undefined') {
-      FastClick.attach(document.body);
-    }
-  
-    //Activate direct chat widget
-    if (o.directChat.enable) {
-      $(document).on('click', o.directChat.contactToggleSelector, function () {
-        var box = $(this).parents('.direct-chat').first();
-        box.toggleClass('direct-chat-contacts-open');
-      });
-    }
-  
-    /*
-     * INITIALIZE BUTTON TOGGLE
-     * ------------------------
-     */
-    $('.btn-group[data-toggle="btn-toggle"]').each(function () {
-      var group = $(this);
-      $(this).find(".btn").on('click', function (e) {
-        group.find(".btn.active").removeClass("active");
-        $(this).addClass("active");
-        e.preventDefault();
-      });
-  
-    });
-  });
-  
-  /* ----------------------------------
-   * - Initialize the AdminLTE Object -
-   * ----------------------------------
-   * All AdminLTE functions are implemented below.
-   */
-  function _init() {
-    'use strict';
-    /* Layout
-     * ======
-     * Fixes the layout height in case min-height fails.
-     *
-     * @type Object
-     * @usage $.AdminLTE.layout.activate()
-     *        $.AdminLTE.layout.fix()
-     *        $.AdminLTE.layout.fixSidebar()
-     */
-    $.AdminLTE.layout = {
-      activate: function () {
-        var _this = this;
-        _this.fix();
-        _this.fixSidebar();
-        $(window, ".wrapper").resize(function () {
-          _this.fix();
-          _this.fixSidebar();
-        });
-      },
-      fix: function () {
-        //Get window height and the wrapper height
-        var neg = $('.main-header').outerHeight() + $('.main-footer').outerHeight();
-        var window_height = $(window).height();
-        var sidebar_height = $(".sidebar").height();
-        //Set the min-height of the content and sidebar based on the
-        //the height of the document.
-        if ($("body").hasClass("fixed")) {
-          $(".content-wrapper, .right-side").css('min-height', window_height - $('.main-footer').outerHeight());
-        } else {
-          var postSetWidth;
-          if (window_height >= sidebar_height) {
-            $(".content-wrapper, .right-side").css('min-height', window_height - neg);
-            postSetWidth = window_height - neg;
-          } else {
-            $(".content-wrapper, .right-side").css('min-height', sidebar_height);
-            postSetWidth = sidebar_height;
-          }
-  
-          //Fix for the control sidebar height
-          var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);
-          if (typeof controlSidebar !== "undefined") {
-            if (controlSidebar.height() > postSetWidth)
-              $(".content-wrapper, .right-side").css('min-height', controlSidebar.height());
-          }
-  
-        }
-      },
-      fixSidebar: function () {
-        //Make sure the body tag has the .fixed class
-        if (!$("body").hasClass("fixed")) {
-          if (typeof $.fn.slimScroll != 'undefined') {
-            $(".sidebar").slimScroll({destroy: true}).height("auto");
-          }
-          return;
-        } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {
-          window.console.error("Error: the fixed layout requires the slimscroll plugin!");
-        }
-        //Enable slimscroll for fixed layout
-        if ($.AdminLTE.options.sidebarSlimScroll) {
-          if (typeof $.fn.slimScroll != 'undefined') {
-            //Destroy if it exists
-            $(".sidebar").slimScroll({destroy: true}).height("auto");
-            //Add slimscroll
-            $(".sidebar").slimscroll({
-              height: ($(window).height() - $(".main-header").height()) + "px",
-              color: "rgba(0,0,0,0.2)",
-              size: "3px"
-            });
-          }
-        }
-      }
-    };
-  
-    /* PushMenu()
-     * ==========
-     * Adds the push menu functionality to the sidebar.
-     *
-     * @type Function
-     * @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']")
-     */
-    $.AdminLTE.pushMenu = {
-      activate: function (toggleBtn) {
-        //Get the screen sizes
-        var screenSizes = $.AdminLTE.options.screenSizes;
-  
-        //Enable sidebar toggle
-        $(toggleBtn).on('click', function (e) {
-          e.preventDefault();
-  
-          //Enable sidebar push menu
-          if ($(window).width() > (screenSizes.sm - 1)) {
-            if ($("body").hasClass('sidebar-collapse')) {
-              $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu');
-            } else {
-              $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu');
-            }
-          }
-          //Handle sidebar push menu for small screens
-          else {
-            if ($("body").hasClass('sidebar-open')) {
-              $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');
-            } else {
-              $("body").addClass('sidebar-open').trigger('expanded.pushMenu');
-            }
-          }
-        });
-  
-        $(".content-wrapper").click(function () {
-          //Enable hide menu when clicking on the content-wrapper on small screens
-          if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) {
-            $("body").removeClass('sidebar-open');
-          }
-        });
-  
-        //Enable expand on hover for sidebar mini
-        if ($.AdminLTE.options.sidebarExpandOnHover
-                || ($('body').hasClass('fixed')
-                        && $('body').hasClass('sidebar-mini'))) {
-          this.expandOnHover();
-        }
-      },
-      expandOnHover: function () {
-        var _this = this;
-        var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;
-        //Expand sidebar on hover
-        $('.main-sidebar').hover(function () {
-          if ($('body').hasClass('sidebar-mini')
-                  && $("body").hasClass('sidebar-collapse')
-                  && $(window).width() > screenWidth) {
-            _this.expand();
-          }
-        }, function () {
-          if ($('body').hasClass('sidebar-mini')
-                  && $('body').hasClass('sidebar-expanded-on-hover')
-                  && $(window).width() > screenWidth) {
-            _this.collapse();
-          }
-        });
-      },
-      expand: function () {
-        $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');
-      },
-      collapse: function () {
-        if ($('body').hasClass('sidebar-expanded-on-hover')) {
-          $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');
-        }
-      }
-    };
-  
-    /* Tree()
-     * ======
-     * Converts the sidebar into a multilevel
-     * tree view menu.
-     *
-     * @type Function
-     * @Usage: $.AdminLTE.tree('.sidebar')
-     */
-    $.AdminLTE.tree = function (menu) {
-      var _this = this;
-      var animationSpeed = $.AdminLTE.options.animationSpeed;
-      $(document).on('click', menu + ' li a', function (e) {
-        //Get the clicked link and the next element
-        var $this = $(this);
-        var checkElement = $this.next();
-  
-        //Check if the next element is a menu and is visible
-        if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible'))) {
-          //Close the menu
-          checkElement.slideUp(animationSpeed, function () {
-            checkElement.removeClass('menu-open');
-            //Fix the layout in case the sidebar stretches over the height of the window
-            //_this.layout.fix();
-          });
-          checkElement.parent("li").removeClass("active");
-        }
-        //If the menu is not visible
-        else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {
-          //Get the parent menu
-          var parent = $this.parents('ul').first();
-          //Close all open menus within the parent
-          var ul = parent.find('ul:visible').slideUp(animationSpeed);
-          //Remove the menu-open class from the parent
-          ul.removeClass('menu-open');
-          //Get the parent li
-          var parent_li = $this.parent("li");
-  
-          //Open the target menu and add the menu-open class
-          checkElement.slideDown(animationSpeed, function () {
-            //Add the class active to the parent li
-            checkElement.addClass('menu-open');
-            parent.find('li.active').removeClass('active');
-            parent_li.addClass('active');
-            //Fix the layout in case the sidebar stretches over the height of the window
-            _this.layout.fix();
-          });
-        }
-        //if this isn't a link, prevent the page from being redirected
-        if (checkElement.is('.treeview-menu')) {
-          e.preventDefault();
-        }
-      });
-    };
-  
-    /* ControlSidebar
-     * ==============
-     * Adds functionality to the right sidebar
-     *
-     * @type Object
-     * @usage $.AdminLTE.controlSidebar.activate(options)
-     */
-    $.AdminLTE.controlSidebar = {
-      //instantiate the object
-      activate: function () {
-        //Get the object
-        var _this = this;
-        //Update options
-        var o = $.AdminLTE.options.controlSidebarOptions;
-        //Get the sidebar
-        var sidebar = $(o.selector);
-        //The toggle button
-        var btn = $(o.toggleBtnSelector);
-  
-        //Listen to the click event
-        btn.on('click', function (e) {
-          e.preventDefault();
-          //If the sidebar is not open
-          if (!sidebar.hasClass('control-sidebar-open')
-                  && !$('body').hasClass('control-sidebar-open')) {
-            //Open the sidebar
-            _this.open(sidebar, o.slide);
-          } else {
-            _this.close(sidebar, o.slide);
-          }
-        });
-  
-        //If the body has a boxed layout, fix the sidebar bg position
-        var bg = $(".control-sidebar-bg");
-        _this._fix(bg);
-  
-        //If the body has a fixed layout, make the control sidebar fixed
-        if ($('body').hasClass('fixed')) {
-          _this._fixForFixed(sidebar);
-        } else {
-          //If the content height is less than the sidebar's height, force max height
-          if ($('.content-wrapper, .right-side').height() < sidebar.height()) {
-            _this._fixForContent(sidebar);
-          }
-        }
-      },
-      //Open the control sidebar
-      open: function (sidebar, slide) {
-        //Slide over content
-        if (slide) {
-          sidebar.addClass('control-sidebar-open');
-        } else {
-          //Push the content by adding the open class to the body instead
-          //of the sidebar itself
-          $('body').addClass('control-sidebar-open');
-        }
-      },
-      //Close the control sidebar
-      close: function (sidebar, slide) {
-        if (slide) {
-          sidebar.removeClass('control-sidebar-open');
-        } else {
-          $('body').removeClass('control-sidebar-open');
-        }
-      },
-      _fix: function (sidebar) {
-        var _this = this;
-        if ($("body").hasClass('layout-boxed')) {
-          sidebar.css('position', 'absolute');
-          sidebar.height($(".wrapper").height());
-          $(window).resize(function () {
-            _this._fix(sidebar);
-          });
-        } else {
-          sidebar.css({
-            'position': 'fixed',
-            'height': 'auto'
-          });
-        }
-      },
-      _fixForFixed: function (sidebar) {
-        sidebar.css({
-          'position': 'fixed',
-          'max-height': '100%',
-          'overflow': 'auto',
-          'padding-bottom': '50px'
-        });
-      },
-      _fixForContent: function (sidebar) {
-        $(".content-wrapper, .right-side").css('min-height', sidebar.height());
-      }
-    };
-  
-    /* BoxWidget
-     * =========
-     * BoxWidget is a plugin to handle collapsing and
-     * removing boxes from the screen.
-     *
-     * @type Object
-     * @usage $.AdminLTE.boxWidget.activate()
-     *        Set all your options in the main $.AdminLTE.options object
-     */
-    $.AdminLTE.boxWidget = {
-      selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,
-      icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,
-      animationSpeed: $.AdminLTE.options.animationSpeed,
-      activate: function (_box) {
-        var _this = this;
-        if (!_box) {
-          _box = document; // activate all boxes per default
-        }
-        //Listen for collapse event triggers
-        $(_box).on('click', _this.selectors.collapse, function (e) {
-          e.preventDefault();
-          _this.collapse($(this));
-        });
-  
-        //Listen for remove event triggers
-        $(_box).on('click', _this.selectors.remove, function (e) {
-          e.preventDefault();
-          _this.remove($(this));
-        });
-      },
-      collapse: function (element) {
-        var _this = this;
-        //Find the box parent
-        var box = element.parents(".box").first();
-        //Find the body and the footer
-        var box_content = box.find("> .box-body, > .box-footer, > form  >.box-body, > form > .box-footer");
-        if (!box.hasClass("collapsed-box")) {
-          //Convert minus into plus
-          element.children(":first")
-                  .removeClass(_this.icons.collapse)
-                  .addClass(_this.icons.open);
-          //Hide the content
-          box_content.slideUp(_this.animationSpeed, function () {
-            box.addClass("collapsed-box");
-          });
-        } else {
-          //Convert plus into minus
-          element.children(":first")
-                  .removeClass(_this.icons.open)
-                  .addClass(_this.icons.collapse);
-          //Show the content
-          box_content.slideDown(_this.animationSpeed, function () {
-            box.removeClass("collapsed-box");
-          });
-        }
-      },
-      remove: function (element) {
-        //Find the box parent
-        var box = element.parents(".box").first();
-        box.slideUp(this.animationSpeed);
-      }
-    };
-  }
-  
-  /* ------------------
-   * - Custom Plugins -
-   * ------------------
-   * All custom plugins are defined below.
-   */
-  
-  /*
-   * BOX REFRESH BUTTON
-   * ------------------
-   * This is a custom plugin to use with the component BOX. It allows you to add
-   * a refresh button to the box. It converts the box's state to a loading state.
-   *
-   * @type plugin
-   * @usage $("#box-widget").boxRefresh( options );
-   */
-  (function ($) {
-  
-    "use strict";
-  
-    $.fn.boxRefresh = function (options) {
-  
-      // Render options
-      var settings = $.extend({
-        //Refresh button selector
-        trigger: ".refresh-btn",
-        //File source to be loaded (e.g: ajax/src.php)
-        source: "",
-        //Callbacks
-        onLoadStart: function (box) {
-          return box;
-        }, //Right after the button has been clicked
-        onLoadDone: function (box) {
-          return box;
-        } //When the source has been loaded
-  
-      }, options);
-  
-      //The overlay
-      var overlay = $('<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>');
-  
-      return this.each(function () {
-        //if a source is specified
-        if (settings.source === "") {
-          if (window.console) {
-            window.console.log("Please specify a source first - boxRefresh()");
-          }
-          return;
-        }
-        //the box
-        var box = $(this);
-        //the button
-        var rBtn = box.find(settings.trigger).first();
-  
-        //On trigger click
-        rBtn.on('click', function (e) {
-          e.preventDefault();
-          //Add loading overlay
-          start(box);
-  
-          //Perform ajax call
-          box.find(".box-body").load(settings.source, function () {
-            done(box);
-          });
-        });
-      });
-  
-      function start(box) {
-        //Add overlay and loading img
-        box.append(overlay);
-  
-        settings.onLoadStart.call(box);
-      }
-  
-      function done(box) {
-        //Remove overlay and loading img
-        box.find(overlay).remove();
-  
-        settings.onLoadDone.call(box);
-      }
-  
-    };
-  
-  })(jQuery);
-  
-  /*
-   * EXPLICIT BOX ACTIVATION
-   * -----------------------
-   * This is a custom plugin to use with the component BOX. It allows you to activate
-   * a box inserted in the DOM after the app.js was loaded.
-   *
-   * @type plugin
-   * @usage $("#box-widget").activateBox();
-   */
-  (function ($) {
-  
-    'use strict';
-  
-    $.fn.activateBox = function () {
-      $.AdminLTE.boxWidget.activate(this);
-    };
-  
-  })(jQuery);
-  
\ No newline at end of file
diff --git a/resources/assets/less/AdminLTE.less b/resources/assets/less/AdminLTE.less
index cfd1d9233ca206f0fda592cd1ea5e9d8a5491b50..b8078dd66da50d9c459399a19204f967509ec3d5 100755
--- a/resources/assets/less/AdminLTE.less
+++ b/resources/assets/less/AdminLTE.less
@@ -70,3 +70,7 @@
 // Theme
 //--------------------------------------------------------
 @import "../../../node_modules/admin-lte/build/less/skins/skin-blue.less";
+
+// Custom
+//--------------------------------------------------------
+@import "spacing.less";
\ No newline at end of file
diff --git a/resources/assets/less/app.less b/resources/assets/less/app.less
index 4d6b707bb09cb86b1b2dc75a4517663fd8933d84..f98d31979828e3d1e9cf62d3657f8723c2f3c309 100644
--- a/resources/assets/less/app.less
+++ b/resources/assets/less/app.less
@@ -1,10 +1,3 @@
-@icon-font-path: "../fonts";
-
-@import "../../../node_modules/bootstrap-less/bootstrap/bootstrap";
-@import "../../../node_modules/ekko-lightbox/ekko-lightbox";
-@import "../../../node_modules/bootstrap-colorpicker/src/less/colorpicker";
-
-@import "spacing.less";
 
 body {
   font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
diff --git a/webpack.mix.js b/webpack.mix.js
index 441b4d9f21a2cb01dc01812325f711d7723f6844..c252e333794813739f07bd97d9d5bf272c733825 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -12,16 +12,18 @@ mix
   .less("./resources/assets/less/app.less", "css/build")
   .styles(
     [
+      "./node_modules/bootstrap/dist/css/bootstrap.css",
+      "./node_modules/font-awesome/css/font-awesome.css",
       "./node_modules/select2/dist/css/select2.css",
       "./public/css/build/AdminLTE.css",
       "./node_modules/admin-lte/plugins/iCheck/minimal/blue.css",
-      "./node_modules/font-awesome/css/font-awesome.css",
       "./node_modules/icheck/skins/minimal/minimal.css",
       "./node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css",
       "./node_modules/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.css",
       "./node_modules/blueimp-file-upload/css/jquery.fileupload.css",
-      "./node_modules/blueimp-file-upload/css/jquery.fileupload-ui.css",      
-      "./public/css/build/app.css",
+      "./node_modules/blueimp-file-upload/css/jquery.fileupload-ui.css",
+      "./node_modules/ekko-lightbox/dist/ekko-lightbox.css",
+      "./public/css/build/app.css"
     ],
     "./public/css/all.css"
   );
@@ -30,11 +32,13 @@ mix
  * Copy, minify and version skins
  */
 mix.copyDirectory("./resources/assets/css/skins", "./public/css/skins");
-mix.minify([
-  "./public/css/skins/skin-green-dark.css",
-  "./public/css/skins/skin-orange-dark.css",
-  "./public/css/skins/skin-red-dark.css"
-]).version();
+mix
+  .minify([
+    "./public/css/skins/skin-green-dark.css",
+    "./public/css/skins/skin-orange-dark.css",
+    "./public/css/skins/skin-red-dark.css"
+  ])
+  .version();
 /**
  * Copy, minify and version signature-pad.css
  */
@@ -44,37 +48,46 @@ mix
   .version();
 
 // Combine main SnipeIT JS files
-mix.js([
-    './resources/assets/js/vue.js',
-    './resources/assets/js/snipeit.js', //this is the actual Snipe-IT JS
-    './resources/assets/js/snipeit_modals.js'
-], './public/js/app.js')
+mix.js(
+  [
+    "./resources/assets/js/vue.js",
+    "./resources/assets/js/snipeit.js", //this is the actual Snipe-IT JS
+    "./resources/assets/js/snipeit_modals.js"
+  ],
+  "./public/js/app.js"
+);
 
 /**
  * Combine JS
  */
-mix.combine([
-    './node_modules/admin-lte/dist/js/adminlte.min.js',
-    './resources/assets/js/admin-lte-options.js',
-    './node_modules/jquery-ui-dist/jquery-ui.js',
-    './node_modules/tether/dist/js/tether.min.js',
-    './node_modules/jquery-slimscroll/jquery.slimscroll.js',
-    './node_modules/jquery.iframe-transport/jquery.iframe-transport.js',
-    './node_modules/blueimp-file-upload/js/jquery.fileupload.js',
-    './node_modules/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js',
-    './node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js',
-    './node_modules/ekko-lightbox/dist/ekko-lightbox.js',
-    './node_modules/icheck/icheck.js',
-    './resources/assets/js/extensions/pGenerator.jquery.js',
-    './node_modules/chart.js/dist/Chart.js',
-    './resources/assets/js/signature_pad.js',
-], 'public/js/vendor.js')
-.version();
+mix
+  .combine(
+    [
+      "./node_modules/admin-lte/dist/js/adminlte.min.js",
+      "./node_modules/jquery-ui-dist/jquery-ui.js",
+      "./node_modules/tether/dist/js/tether.min.js",
+      "./node_modules/jquery-slimscroll/jquery.slimscroll.js",
+      "./node_modules/jquery.iframe-transport/jquery.iframe-transport.js",
+      "./node_modules/blueimp-file-upload/js/jquery.fileupload.js",
+      "./node_modules/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js",
+      "./node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js",
+      "./node_modules/ekko-lightbox/dist/ekko-lightbox.js",
+      "./node_modules/icheck/icheck.js",
+      "./resources/assets/js/extensions/pGenerator.jquery.js",
+      "./node_modules/chart.js/dist/Chart.js",
+      "./resources/assets/js/signature_pad.js"
+    ],
+    "public/js/vendor.js"
+  )
+  .version();
 
-mix.copy([
-    './resources/assets/js/html5shiv.min.js',
-    './resources/assets/js/respond.min.js',
-], './public/js');
+mix.copy(
+  [
+    "./resources/assets/js/html5shiv.min.js",
+    "./resources/assets/js/respond.min.js"
+  ],
+  "./public/js"
+);
 
 /**
  * Combine bootstrap table js