소스 검색

Use 'ngInject' technique

jmacura 5 년 전
부모
커밋
c56ae51ad6

+ 2 - 2
src/adjuster/adjuster-sidebar-btn.directive.html

@@ -1,5 +1,5 @@
-<a href="#" class="sidebar-item list-group-item" ng-if="Core.exists('pra.adjuster')" ng-click="setMainPanel('adjuster')"
-  title="{{'Adjust factors'|translate}}" ng-class="{active: Core.mainpanel == 'adjuster'}">
+<a href="#" class="sidebar-item list-group-item" ng-if="HsCore.exists('pra.adjuster')" ng-click="setMainPanel('adjuster')"
+  title="{{'Adjust factors'|translate}}" ng-class="{active: HsCore.mainpanel == 'adjuster'}">
   <span class="menu-icon icon-alertpay"></span>
   <span class="sidebar-item-title" translate>Adjust factors</span>
 </a>

+ 16 - 17
src/adjuster/adjuster.component.js

@@ -1,22 +1,21 @@
 export default {
   template: require('./adjuster.directive.html'),
-  controller: [
-    '$scope',
-    'HsMapService',
-    'HsCore',
-    'HsConfig',
-    'pra.adjuster.service',
-    'HsUtilsService',
-    function ($scope, OlMap, Core, config, adjusterService, utils) {
-      $scope.loading = false;
-      $scope.utils = utils;
+  controller: function (
+    $scope,
+    HsCore,
+    HsConfig,
+    PraAdjusterService,
+    HsUtilsService
+  ) {
+    'ngInject';
+    $scope.loading = false;
+    $scope.HsUtilsService = HsUtilsService;
 
-      angular.extend($scope, {
-        Core,
-        adjusterService,
-      });
+    angular.extend($scope, {
+      HsCore,
+      PraAdjusterService,
+    });
 
-      $scope.$emit('scope_loaded', 'adjuster');
-    },
-  ],
+    $scope.$emit('scope_loaded', 'adjuster');
+  },
 };

+ 3 - 3
src/adjuster/adjuster.directive.html

@@ -12,21 +12,21 @@
   </style>
   <div class="card-body">
     <div class="card-body">
-      <div ng-repeat="factor in adjusterService.factors">
+      <div ng-repeat="factor in PraAdjusterService.factors">
         <div class="d-flex flex-row">
           <div class="p-2 flex-grow-1">
             <label>{{factor.factor}}</label>
           </div>
           <div class="p-2">{{(factor.weight * 100).toFixed(0)}}&nbsp;%</div>
         </div>
-        <input type="range" class="custom-range" ng-change="adjusterService.apply()" ng-model="factor.weight" min="0"
+        <input type="range" class="custom-range" ng-change="PraAdjusterService.apply()" ng-model="factor.weight" min="0"
           max="1.0" step="0.05">
         <span class="glyphicon" ng-class="datasetlistVisible ? 'icon-chevron-down' : 'icon-chevron-right'"
           ng-click="datasetlistVisible = !datasetlistVisible"></span>
         <div ng-init="datasetlistVisible = false" ng-show="datasetlistVisible">
           <div ng-repeat="dataset in factor.datasets">
             <button type="button" class="btn btn-sm btn-light hs-lm-item-visibility"
-              ng-click="dataset.included = !dataset.included;adjusterService.apply();$event.stopPropagation()"
+              ng-click="dataset.included = !dataset.included;PraAdjusterService.apply();$event.stopPropagation()"
               ng-class="dataset.included ? 'hs-checkmark' : 'hs-uncheckmark'"></button>
             <label>{{dataset.name}}</label>
           </div>

+ 2 - 2
src/adjuster/adjuster.module.js

@@ -3,12 +3,12 @@ import adjusterService from './adjuster.service.js';
 
 angular
   .module('pra.adjuster', ['hs.core', 'hs.map'])
-  .directive('pra.adjuster.sidebarBtn', function () {
+  .directive('praAdjusterSidebarBtn', function () {
     return {
       template: require('./adjuster-sidebar-btn.directive.html'),
     };
   })
 
-  .service('pra.adjuster.service', adjusterService)
+  .service('PraAdjusterService', adjusterService)
 
   .component('pra.adjuster', adjusterComponent);

+ 110 - 115
src/adjuster/adjuster.service.js

@@ -1,128 +1,123 @@
 // import attractivity from '../Attractivity.json';
 import nuts from '../nuts.js';
 
-export default [
-  'HsCore',
-  'HsUtilsService',
-  '$rootScope',
-  '$http',
-  function (Core, utils, $rootScope, $http) {
-    const me = {
-      factors: [
-        {
-          name: 'Natural',
-          column: 'N_index',
-          weight: 1,
-        },
-        {
-          name: 'Social & Human',
-          column: 'S_index',
-          weight: 1,
-        },
-        {
-          name: 'Anthropic',
-          column: 'A_index',
-          weight: 1,
-        },
-        {
-          name: 'Economical',
-          column: 'E_index',
-          weight: 1,
-        },
-        {
-          name: 'Cultural',
-          column: 'C_index',
-          weight: 1,
-        },
-        {
-          name: 'Institutional',
-          column: 'I_index',
-          weight: 1,
-        },
-      ],
-      apply() {
-        utils.debounce(function () {
-          $http({
-            method: 'post',
-            url: 'https://publish.lesprojekt.cz/nodejs/scores',
-            data: {
-              factors: me.factors.map((f) => {
-                return {
-                  factor: f.factor,
-                  weight: f.weight,
-                  datasets: f.datasets
-                    .filter((ds) => ds.included)
-                    .map((ds) => ds.name),
-                };
-              }),
-            },
-          }).then((response) => {
-            me.attractivity = response.data;
-            let max = 0;
-            me.attractivity.forEach((a) => {
-              if (a.aggregate > max) {
-                max = a.aggregate;
-              }
-            });
-            const normalizer = 1 / max;
-            me.attractivity.forEach((a) => {
-              a.aggregate *= normalizer;
-            });
-            me.attractivity.forEach((a) => {
-              me.nutsCodeRecordRelations[a.code] = a;
-            });
-            nuts.nuts3Source.forEachFeature((feature) => {
-              feature.set(
-                'total',
-                me.nutsCodeRecordRelations[feature.get('NUTS_ID')].aggregate
-              );
+export default function (HsCore, HsUtilsService, $rootScope, $http) {
+  'ngInject';
+  const me = {
+    factors: [
+      {
+        name: 'Natural',
+        column: 'N_index',
+        weight: 1,
+      },
+      {
+        name: 'Social & Human',
+        column: 'S_index',
+        weight: 1,
+      },
+      {
+        name: 'Anthropic',
+        column: 'A_index',
+        weight: 1,
+      },
+      {
+        name: 'Economical',
+        column: 'E_index',
+        weight: 1,
+      },
+      {
+        name: 'Cultural',
+        column: 'C_index',
+        weight: 1,
+      },
+      {
+        name: 'Institutional',
+        column: 'I_index',
+        weight: 1,
+      },
+    ],
+    apply() {
+      HsUtilsService.debounce(function () {
+        $http({
+          method: 'post',
+          url: 'https://publish.lesprojekt.cz/nodejs/scores',
+          data: {
+            factors: me.factors.map((f) => {
+              return {
+                factor: f.factor,
+                weight: f.weight,
+                datasets: f.datasets
+                  .filter((ds) => ds.included)
+                  .map((ds) => ds.name),
+              };
+            }),
+          },
+        }).then((response) => {
+          me.attractivity = response.data;
+          let max = 0;
+          me.attractivity.forEach((a) => {
+            if (a.aggregate > max) {
+              max = a.aggregate;
+            }
+          });
+          const normalizer = 1 / max;
+          me.attractivity.forEach((a) => {
+            a.aggregate *= normalizer;
+          });
+          me.attractivity.forEach((a) => {
+            me.nutsCodeRecordRelations[a.code] = a;
+          });
+          nuts.nuts3Source.forEachFeature((feature) => {
+            feature.set(
+              'total',
+              me.nutsCodeRecordRelations[feature.get('NUTS_ID')].aggregate
+            );
+            feature.set(
+              'totalForHumans',
+              (
+                me.nutsCodeRecordRelations[feature.get('NUTS_ID')].aggregate *
+                100
+              ).toFixed(2)
+            );
+            me.factors.forEach((factor) => {
               feature.set(
-                'totalForHumans',
+                factor.factor,
                 (
-                  me.nutsCodeRecordRelations[feature.get('NUTS_ID')].aggregate *
-                  100
+                  me.nutsCodeRecordRelations[feature.get('NUTS_ID')][
+                    factor.factor
+                  ] * 100
                 ).toFixed(2)
               );
-              me.factors.forEach((factor) => {
-                feature.set(
-                  factor.factor,
-                  (
-                    me.nutsCodeRecordRelations[feature.get('NUTS_ID')][
-                      factor.factor
-                    ] * 100
-                  ).toFixed(2)
-                );
-              });
             });
           });
-          /*
+        });
+        /*
 
             */
-        }, 300)();
-      },
-    };
-    me.nutsCodeRecordRelations = {};
+      }, 300)();
+    },
+  };
+  me.nutsCodeRecordRelations = {};
 
-    $http({url: 'https://publish.lesprojekt.cz/nodejs/datasets'}).then(
-      (response) => {
-        me.factors = response.data.map((dataset) => {
-          return {factor: dataset.Factor, weight: 1, datasets: []};
-        });
-        me.factors = utils.removeDuplicates(me.factors, 'factor');
-        me.factors.forEach((factor) => {
-          factor.datasets = response.data
-            .filter((ds) => ds.Factor === factor.factor)
-            .map((ds) => {
-              return {
-                name: ds.Name,
-                included: true,
-              };
-            });
-        });
-        me.apply();
-      }
-    );
+  $http({url: 'https://publish.lesprojekt.cz/nodejs/datasets'}).then(
+    (response) => {
+      me.factors = response.data.map((dataset) => {
+        return {factor: dataset.Factor, weight: 1, datasets: []};
+      });
+      me.factors = HsUtilsService.removeDuplicates(me.factors, 'factor');
+      me.factors.forEach((factor) => {
+        factor.datasets = response.data
+          .filter((ds) => ds.Factor === factor.factor)
+          .map((ds) => {
+            return {
+              name: ds.Name,
+              included: true,
+            };
+          });
+      });
+      me.apply();
+    }
+  );
 
-    return me;
-  },
-];
+  return me;
+}

+ 39 - 42
src/app.js

@@ -118,18 +118,15 @@ angular
     'hs.addLayers',
     'pra.adjuster',
   ])
-  .directive('hs', [
-    'HsConfig',
-    'HsCore',
-    function (config, Core) {
-      return {
-        template: Core.hslayersNgTemplate,
-        /* link: function (scope, element) {
-      Core.fullScreenMap(element);
+  .directive('hs', function (HsConfig, HsCore) {
+    'ngInject';
+    return {
+      template: HsCore.hslayersNgTemplate,
+      /* link: function (scope, element) {
+      HsCore.fullScreenMap(element);
      } */
-      };
-    },
-  ])
+    };
+  })
   .value('HsConfig', {
     proxyPrefix: '../8085/',
     default_layers: [
@@ -174,35 +171,35 @@ angular
     },
     sizeMode: 'fullscreen',
   })
-  .controller('MainController', [
-    '$scope',
-    'HsCore',
-    '$compile',
-    'HsLayoutService',
-    'pra.adjuster.service',
-    function ($scope, Core, $compile, layoutService, adjusterService) {
-      $scope.Core = Core;
-      $scope.panelVisible = layoutService.panelVisible;
-      layoutService.sidebarRight = false;
-      // layoutService.sidebarToggleable = false;
-      // Core.singleDatasources = true;
-      layoutService.sidebarButtons = true;
-      layoutService.setDefaultPanel('adjuster');
-      $scope.$on('scope_loaded', function (event, args) {
-        // eslint-disable-next-line eqeqeq
-        if (args == 'Sidebar') {
-          const el = angular.element(
-            '<pra.adjuster hs.draggable ng-if="Core.exists(\'pra.adjuster\')" ng-show="panelVisible(\'adjuster\', this)"></pra.adjuster>'
-          )[0];
-          layoutService.panelListElement.appendChild(el);
-          $compile(el)($scope);
+  .controller('MainController', function (
+    $scope,
+    HsCore,
+    $compile,
+    HsLayoutService,
+    PraAdjusterService
+  ) {
+    'ngInject';
+    $scope.HsCore = HsCore;
+    $scope.panelVisible = HsLayoutService.panelVisible;
+    HsLayoutService.sidebarRight = false;
+    // HsLayoutService.sidebarToggleable = false;
+    // HsCore.singleDatasources = true;
+    HsLayoutService.sidebarButtons = true;
+    HsLayoutService.setDefaultPanel('adjuster');
+    $scope.$on('scope_loaded', function (event, args) {
+      // eslint-disable-next-line eqeqeq
+      if (args == 'Sidebar') {
+        const el = angular.element(
+          '<pra.adjuster hs.draggable ng-if="HsCore.exists(\'pra.adjuster\')" ng-show="panelVisible(\'adjuster\', this)"></pra.adjuster>'
+        )[0];
+        HsLayoutService.panelListElement.appendChild(el);
+        $compile(el)($scope);
 
-          const toolbarButton = angular.element(
-            '<div pra.adjuster.sidebar-btn></div>'
-          )[0];
-          layoutService.sidebarListElement.appendChild(toolbarButton);
-          $compile(toolbarButton)(event.targetScope);
-        }
-      });
-    },
-  ]);
+        const toolbarButton = angular.element(
+          '<div pra-adjuster-sidebar-btn></div>'
+        )[0];
+        HsLayoutService.sidebarListElement.appendChild(toolbarButton);
+        $compile(toolbarButton)(event.targetScope);
+      }
+    });
+  });