text: (function (angular) {
  
      const SECTION_NAME = "overview";
  
      angular
          .module("BrowserSync")
          .controller("OverviewController", [
              "options",
              "pagesConfig",
              OverviewController
          ]);
  
      /**
       * @param options
       * @param pagesConfig
       */
      function OverviewController (options, pagesConfig) {
          var ctrl     = this;
          ctrl.section = pagesConfig[SECTION_NAME];
          ctrl.options = options.bs;
          ctrl.ui = {
              snippet: !ctrl.options.server && !ctrl.options.proxy
          };
      }
  
      /**
       * Url Info - this handles rendering of each server
       * info item
       */
      angular
          .module("BrowserSync")
          .directive("urlInfo", function () {
              return {
                  restrict: "E",
                  replace: true,
                  scope: {
                      "options": "="
                  },
                  templateUrl: "url-info.html",
                  controller: [
                      "$scope",
                      "$rootScope",
                      "Clients",
                      urlInfoController
                  ]
              };
          });
  
      /**
       * @param $scope
       * @param $rootScope
       * @param Clients
       */
      function urlInfoController($scope, $rootScope, Clients) {
  
          var options = $scope.options;
          var urls    = options.urls;
  
          $scope.ui = {
              server: false,
              proxy: false
          };
  
          if ($scope.options.mode === "server") {
              $scope.ui.server = true;
              if (!Array.isArray($scope.options.server.baseDir)) {
                  $scope.options.server.baseDir = [$scope.options.server.baseDir];
              }
          }
  
          if ($scope.options.mode === "proxy") {
              $scope.ui.proxy = true;
          }
  
          $scope.urls = [];
  
          $scope.urls.push({
              title: "Local",
              tagline: "URL for the machine you are running BrowserSync on",
              url: urls.local,
              icon: "imac"
          });
  
          if (urls.external) {
              $scope.urls.push({
                  title: "External",
                  tagline: "Other devices on the same wifi network",
                  url: urls.external,
                  icon: "wifi"
              });
          }
  
          if (urls.tunnel) {
              $scope.urls.push({
                  title: "Tunnel",
                  tagline: "Secure HTTPS public url",
                  url: urls.tunnel,
                  icon: "globe"
              });
          }
  
          /**
           *
           */
          $scope.sendAllTo = function (path) {
              Clients.sendAllTo(path);
              $rootScope.$emit("notify:flash", {
                  heading: "Instruction sent:",
                  message: "Sync all Browsers to: " + path
              });
          };
      }
  
      /**
       * Display the snippet when in snippet mode
       */
      angular
          .module("BrowserSync")
          .directive("snippetInfo", function () {
              return {
                  restrict: "E",
                  replace: true,
                  scope: {
                      "options": "="
                  },
                  templateUrl: "snippet-info.html",
                  controller: ["$scope", function snippetInfoController() {/*noop*/}]
              };
          });
  
  })(angular);