Bläddra i källkod

lit all files with eslint

jmacura 5 år sedan
förälder
incheckning
2c72ecf134

+ 13 - 13
src/adjuster/adjuster.component.js

@@ -1,16 +1,16 @@
 export default {
-    template: require('./adjuster.directive.html'),
-    controller: ['$scope', 'hs.map.service', 'Core', 'config', 'pra.adjuster.service', 'hs.utils.service',
-        function ($scope, OlMap, Core, config, adjusterService, utils) {
-            $scope.loading = false;
-            $scope.utils = utils;
+  template: require('./adjuster.directive.html'),
+  controller: ['$scope', 'hs.map.service', 'Core', 'config', 'pra.adjuster.service', 'hs.utils.service',
+    function ($scope, OlMap, Core, config, adjusterService, utils) {
+      $scope.loading = false;
+      $scope.utils = utils;
 
-            angular.extend($scope, {
-                Core,
-                adjusterService,
-            })
+      angular.extend($scope, {
+        Core,
+        adjusterService
+      });
 
-            $scope.$emit('scope_loaded', "adjuster");
-        }
-    ]
-}
+      $scope.$emit('scope_loaded', 'adjuster');
+    }
+  ]
+};

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

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

+ 93 - 98
src/adjuster/adjuster.service.js

@@ -1,106 +1,101 @@
-//import attractivity from '../Attractivity.json';
+// import attractivity from '../Attractivity.json';
 import nuts from 'nuts';
 
 export default ['Core', 'hs.utils.service', '$rootScope', '$http',
-    function (Core, utils, $rootScope, $http) {
-        var 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;
-                        });
-                        let 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(factor.factor, (me.nutsCodeRecordRelations[feature.get('NUTS_ID')][factor.factor] * 100).toFixed(2))
-                            })
-                        })
-                    })
-
-                /*
-               
-            */}, 300)()
+  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)
+                };
+              })
             }
-        };
-        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');
+          })
+            .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 => {
-                    factor.datasets = response.data
-                        .filter(ds => ds.Factor == factor.factor)
-                        .map(ds => {
-                            return {
-                                name: ds.Name,
-                                included: true
-                            }
-                        })
-
-                })
-                me.apply();
-            })
+                  feature.set(factor.factor, (me.nutsCodeRecordRelations[feature.get('NUTS_ID')][factor.factor] * 100).toFixed(2));
+                });
+              });
+            });
+          /*
 
+            */ }, 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();
+      });
 
-        return me;
-    }
-]
+    return me;
+  }
+];

+ 131 - 134
src/app.js

@@ -11,167 +11,164 @@ import 'datasource-selector.module';
 import 'sidebar.module';
 import 'draw.module';
 import View from 'ol/View';
-import { transform, transformExtent } from 'ol/proj';
-import { Tile, Group, Image as ImageLayer } from 'ol/layer';
-import { TileWMS, WMTS, OSM, XYZ, TileArcGISRest } from 'ol/source';
-import { Style, Icon, Stroke, Fill, Circle, Text } from 'ol/style';
+import { Tile } from 'ol/layer';
+import { OSM } from 'ol/source';
+import { Style, Stroke, Fill } from 'ol/style';
 import VectorLayer from 'ol/layer/Vector';
 import './adjuster/adjuster.module';
 import nuts from 'nuts';
 
-var module = angular.module('hs', [
-    'hs.sidebar',
-    'hs.draw',
-    'hs.info',
-    'hs.toolbar',
-    'hs.layermanager',
-    'hs.query',
-    'hs.search', 'hs.print', 'hs.permalink',
-    'hs.geolocation',
-    'hs.datasource_selector',
-    'hs.save-map',
-    'hs.measure',
-    'hs.addLayers',
-    'pra.adjuster'
+const module = angular.module('hs', [
+  'hs.sidebar',
+  'hs.draw',
+  'hs.info',
+  'hs.toolbar',
+  'hs.layermanager',
+  'hs.query',
+  'hs.search', 'hs.print', 'hs.permalink',
+  'hs.geolocation',
+  'hs.datasource_selector',
+  'hs.save-map',
+  'hs.measure',
+  'hs.addLayers',
+  'pra.adjuster'
 ]);
 
 module.directive('hs', ['config', 'Core', function (config, Core) {
-    return {
-        template: Core.hslayersNgTemplate,
-        link: function (scope, element) {
-            Core.fullScreenMap(element);
-        }
-    };
+  return {
+    template: Core.hslayersNgTemplate,
+    link: function (scope, element) {
+      Core.fullScreenMap(element);
+    }
+  };
 }]);
 
-function getHostname() {
-    var url = window.location.href
-    var urlArr = url.split("/");
-    var domain = urlArr[2];
-    return urlArr[0] + "//" + domain;
+function getHostname () {
+  const url = window.location.href;
+  const urlArr = url.split('/');
+  const domain = urlArr[2];
+  return urlArr[0] + '//' + domain;
 };
 
-
-var stroke = new Stroke({
-    color: '#3399CC',
-    width: 0.25
+const stroke = new Stroke({
+  color: '#3399CC',
+  width: 0.25
 });
 
-function perc2color(perc) {
-    perc = perc * 100;
-	var r, g, b = 0;
-	if(perc < 50) {
-		r = 255;
-		g = Math.round(5.1 * perc);
-	}
-	else {
-		g = 255;
-		r = Math.round(510 - 5.10 * perc);
-	}
-	var h = r * 0x10000 + g * 0x100 + b * 0x1;
-	return `rgba(${r}, ${g}, ${b}, 0.7)`;
+function perc2color (perc) {
+  perc = perc * 100;
+  let r; let g; const b = 0;
+  if (perc < 50) {
+    r = 255;
+    g = Math.round(5.1 * perc);
+  } else {
+    g = 255;
+    r = Math.round(510 - 5.10 * perc);
+  }
+  // eslint-disable-next-line no-unused-vars
+  const h = r * 0x10000 + g * 0x100 + b * 0x1;
+  return `rgba(${r}, ${g}, ${b}, 0.7)`;
 }
 
-var styles = function(feature){
-    if(isNaN(feature.get('total'))){
-        return [new Style({
-            fill:  new Fill({
-                color: '#FFF'
-            }),
-            stroke: stroke
-        })]
-    } else
+const styles = function (feature) {
+  if (isNaN(feature.get('total'))) {
     return [new Style({
-        fill:  new Fill({
-            color: perc2color(feature.get('total'))
-        }),
-        stroke: stroke
-    })]
+      fill: new Fill({
+        color: '#FFF'
+      }),
+      stroke: stroke
+    })];
+  } else {
+    return [new Style({
+      fill: new Fill({
+        color: perc2color(feature.get('total'))
+      }),
+      stroke: stroke
+    })];
+  }
 };
 
-var nuts2Layer = new VectorLayer({
-    source: nuts.nuts2Source,
-    visible: false,
-    style: styles,
-    title: 'NUTS2 regions'
+const nuts2Layer = new VectorLayer({
+  source: nuts.nuts2Source,
+  visible: false,
+  style: styles,
+  title: 'NUTS2 regions'
 });
 
-
-var nuts3Layer = new VectorLayer({
-    source: nuts.nuts3Source,
-    visible: true,
-    style: styles,
-    title: 'NUTS3 regions',
+const nuts3Layer = new VectorLayer({
+  source: nuts.nuts3Source,
+  visible: true,
+  style: styles,
+  title: 'NUTS3 regions'
 });
-nuts3Layer.set('hoveredKeys', ['NUTS_NAME', 'totalForHumans', "Social & Human", "Anthropic", "Institutional", "Economical", "Natural", "Cultural"]);
-nuts3Layer.set('hoveredKeysTranslations', {'NUTS_NAME': 'Name', 'totalForHumans': 'Calculated score'});
-
+nuts3Layer.set('hoveredKeys', ['NUTS_NAME', 'totalForHumans', 'Social & Human', 'Anthropic', 'Institutional', 'Economical', 'Natural', 'Cultural']);
+nuts3Layer.set('hoveredKeysTranslations', { NUTS_NAME: 'Name', totalForHumans: 'Calculated score' });
 
 module.value('config', {
-    proxyPrefix: "../8085/",
-    default_layers: [
-        new Tile({
-            source: new OSM(),
-            title: "Open street map",
-            base: true,
-            editor: { editable: false },
-            removable: false
-        }),
-        nuts2Layer,
-        nuts3Layer
-    ],
-    project_name: 'erra/map',
-    default_view: new View({
-        center: [2433348.3022471312, 7744501.813885343],
-        zoom: 3.6,
-        units: "m"
+  proxyPrefix: '../8085/',
+  default_layers: [
+    new Tile({
+      source: new OSM(),
+      title: 'Open street map',
+      base: true,
+      editor: { editable: false },
+      removable: false
     }),
-    advanced_form: true,
-    datasources: [],
-    hostname: {
-        "default": {
-            "title": "Default",
-            "type": "default",
-            "editable": false,
-            "url": getHostname()
-        }
-    },
-    panelWidths: {
-    },
-    panelsEnabled: {
-        language: false,
-        composition_browser: false,
-        legend: false,
-        ows: false,
-        info: false,
-        saveMap: false,
-        draw: false
-    }, 
-    searchProvider: (q) => {
-        return `/app/jupyter-test/8085/search/?q=${q}`
+    nuts2Layer,
+    nuts3Layer
+  ],
+  project_name: 'erra/map',
+  default_view: new View({
+    center: [2433348.3022471312, 7744501.813885343],
+    zoom: 3.6,
+    units: 'm'
+  }),
+  advanced_form: true,
+  datasources: [],
+  hostname: {
+    default: {
+      title: 'Default',
+      type: 'default',
+      editable: false,
+      url: getHostname()
     }
+  },
+  panelWidths: {
+  },
+  panelsEnabled: {
+    language: false,
+    composition_browser: false,
+    legend: false,
+    ows: false,
+    info: false,
+    saveMap: false,
+    draw: false
+  },
+  searchProvider: (q) => {
+    return `/app/jupyter-test/8085/search/?q=${q}`;
+  }
 });
 
 module.controller('Main', ['$scope', 'Core', '$compile', 'hs.layout.service', '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) {
-            if (args == 'Sidebar') {
-                var 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);
+  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);
 
-                var toolbar_button = angular.element('<div pra.adjuster.sidebar-btn></div>')[0];
-                layoutService.sidebarListElement.appendChild(toolbar_button);
-                $compile(toolbar_button)(event.targetScope);
-            }
-        })
-    }
+        const toolbarButton = angular.element('<div pra.adjuster.sidebar-btn></div>')[0];
+        layoutService.sidebarListElement.appendChild(toolbarButton);
+        $compile(toolbarButton)(event.targetScope);
+      }
+    });
+  }
 ]);
-

+ 32 - 32
src/datasource-list.js

@@ -1,34 +1,34 @@
 export default [
-    /*{
-        title: "Datatank",
-        url: "http://ewi.mmlab.be/otn/api/info",
-        type: "datatank"
-    },
-    {
-        title: "Datasets",
-        url: "http://otn-dev.intrasoft-intl.com/otnServices-1.0/platform/ckanservices/datasets",
-        language: 'eng',
-        type: "ckan",
-        download: true
+  /* {
+    title: "Datatank",
+    url: "http://ewi.mmlab.be/otn/api/info",
+    type: "datatank"
+  },
+  {
+    title: "Datasets",
+    url: "http://otn-dev.intrasoft-intl.com/otnServices-1.0/platform/ckanservices/datasets",
+    language: 'eng',
+    type: "ckan",
+    download: true
     }, */
-    {
-        title: "Layman",
-        url: `${window.location.protocol}//${window.location.hostname}/layman`,
-        user: 'browser',
-        type: "layman"
-    },
-    {
-        title: "OTN Hub",
-        url: "http://opentnet.eu/php/metadata/csw/",
-        language: 'eng',
-        type: "micka",
-        code_list_url: 'http://opentnet.eu/php/metadata/util/codelists.php?_dc=1440156028103&language=eng&page=1&start=0&limit=25&filter=%5B%7B%22property%22%3A%22label%22%7D%5D'
-    }, 
-    {
-        title: "SuperCAT",
-        url: "http://cat.ccss.cz/csw/",
-        language: 'eng',
-        type: "micka",
-        code_list_url: 'http://www.whatstheplan.eu/php/metadata/util/codelists.php?_dc=1440156028103&language=eng&page=1&start=0&limit=25&filter=%5B%7B%22property%22%3A%22label%22%7D%5D'
-    }
-]
+  {
+    title: 'Layman',
+    url: `${window.location.protocol}//${window.location.hostname}/layman`,
+    user: 'browser',
+    type: 'layman'
+  },
+  {
+    title: 'OTN Hub',
+    url: 'http://opentnet.eu/php/metadata/csw/',
+    language: 'eng',
+    type: 'micka',
+    code_list_url: 'http://opentnet.eu/php/metadata/util/codelists.php?_dc=1440156028103&language=eng&page=1&start=0&limit=25&filter=%5B%7B%22property%22%3A%22label%22%7D%5D'
+  },
+  {
+    title: 'SuperCAT',
+    url: 'http://cat.ccss.cz/csw/',
+    language: 'eng',
+    type: 'micka',
+    code_list_url: 'http://www.whatstheplan.eu/php/metadata/util/codelists.php?_dc=1440156028103&language=eng&page=1&start=0&limit=25&filter=%5B%7B%22property%22%3A%22label%22%7D%5D'
+  }
+];

+ 7 - 7
src/nuts.js

@@ -4,11 +4,11 @@ import nuts2 from 'NUTS_RG_20M_2016_3857_LEVL_2.json';
 import nuts3 from 'NUTS_RG_20M_2016_3857_LEVL_3.json';
 
 export default {
-    nuts2Source: new VectorSource({
-        features: (new GeoJSON()).readFeatures(nuts2)
-    }),
+  nuts2Source: new VectorSource({
+    features: (new GeoJSON()).readFeatures(nuts2)
+  }),
 
-    nuts3Source: new VectorSource({
-        features: (new GeoJSON()).readFeatures(nuts3)
-    })
-}
+  nuts3Source: new VectorSource({
+    features: (new GeoJSON()).readFeatures(nuts3)
+  })
+};

+ 8 - 8
src/proxy.js

@@ -4,11 +4,11 @@ const host = process.env.HOST || '0.0.0.0';
 // Listen on a specific port via the PORT environment variable
 const port = process.env.PROXY_PORT || 8085;
 
-const cors_proxy = require('cors-anywhere');
-cors_proxy.createServer({
-    originWhitelist: [], // Allow all origins
-    //requireHeader: ['origin', 'x-requested-with'],
-    removeHeaders: ['cookie', 'cookie2']
-}).listen(port, host, function() {
-    console.log('Running CORS Anywhere on ' + host + ':' + port);
-});
+const corsProxy = require('cors-anywhere');
+corsProxy.createServer({
+  originWhitelist: [], // Allow all origins
+  // requireHeader: ['origin', 'x-requested-with'],
+  removeHeaders: ['cookie', 'cookie2']
+}).listen(port, host, function () {
+  console.log('Running CORS Anywhere on ' + host + ':' + port);
+});

+ 6 - 5
src/webpack.common.js

@@ -14,7 +14,6 @@ const CleanWebpackPlugin = require('clean-webpack-plugin');
 const HtmlWebpackPlugin = require('html-webpack-plugin');
 const hslPaths = require(path.join(__dirname, '../node_modules/hslayers-ng/common_paths'));
 
-
 module.exports = {
   entry: { main: 'app.js' },
   output: {
@@ -24,12 +23,14 @@ module.exports = {
     publicPath: ''
   },
   // Just for build speed improvement
-  resolve: { symlinks: true,
+  resolve: {
+    symlinks: true,
     modules: [
       path.join(__dirname),
-      path.join(__dirname, "../node_modules"),
-      path.resolve(path.join(__dirname, "../node_modules", "hslayers-ng"))
-    ].concat(hslPaths.paths)},
+      path.join(__dirname, '../node_modules'),
+      path.resolve(path.join(__dirname, '../node_modules', 'hslayers-ng'))
+    ].concat(hslPaths.paths)
+  },
   plugins: [
     // Clean before build
     new CleanWebpackPlugin(),

+ 1 - 2
src/webpack.dev.js

@@ -10,7 +10,6 @@
 const merge = require('webpack-merge');
 const common = require('./webpack.common');
 const path = require('path');
-const webpack = require('webpack');
 const env = process.env;
 
 module.exports = merge(common, {
@@ -96,4 +95,4 @@ module.exports = merge(common, {
       }
     ]
   }
-})
+});

+ 1 - 1
src/webpack.prod.js

@@ -84,7 +84,7 @@ module.exports = merge(common, {
             options: { publicPath: '' }
           },
           'css-loader'
-        ],
+        ]
       },
       {
         test: /\.(woff(2)?|ttf|eot)(\?v=\d+\.\d+\.\d+)?$/,