# HG changeset patch # User Chloe Laisne # Date 1474551250 -7200 # Node ID f2c2c80a49f78417afe962e99486656d03e987b4 # Parent 53a6985443f869a47f67af62506d3b8b487713b4 Disable click on map areas w/o geoname + development/production disabled color + geostat endpoint diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/app/components/discourses-component.js --- a/cms/app-client/app/components/discourses-component.js Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/app/components/discourses-component.js Thu Sep 22 15:34:10 2016 +0200 @@ -1,6 +1,6 @@ import Ember from 'ember'; import d3 from 'd3'; -import env from 'app-client/config/environment'; +import ENV from 'app-client/config/environment'; @@ -13,7 +13,7 @@ didRender: function() { var self = this; - var baseURL = env.rootURL.replace(/\/$/,"")+'/api/v1'; + var baseURL = ENV.rootURL.replace(/\/$/,"")+'/api/v1'; d3.json(baseURL + "/discourses", function(discourses) { var array = Object.keys(discourses).map(function (key) { return discourses[key].count; }); diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/app/components/notice-component.js --- a/cms/app-client/app/components/notice-component.js Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/app/components/notice-component.js Thu Sep 22 15:34:10 2016 +0200 @@ -17,7 +17,7 @@ if(contributor.name) { var participant = participants.find(participant => participant.name === contributor.name); if(participant) { - participant['role'].push(contributor.role.split('/').pop()) + participant['role'].push(contributor.role.split('/').pop()); } else { participants.push({ name: contributor.name, role: [ contributor.role.split('/').pop() ] }); } diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/app/components/visu-carto.js --- a/cms/app-client/app/components/visu-carto.js Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/app/components/visu-carto.js Thu Sep 22 15:34:10 2016 +0200 @@ -1,11 +1,21 @@ import Ember from 'ember'; import AmCharts from 'ammaps'; +import ENV from 'app-client/config/environment'; export default Ember.Component.extend({ + map: null, + continentsMapVar: AmCharts.maps.continentsLow, + continentsAreas: [], countriesMapVar: AmCharts.maps.worldLow, + countriesAreas: [], franceMapVar: AmCharts.maps.france2016Low, + franceAreas: [], + + color: 'rgba(113,132,141,.2)', + + locationId: 'world', filter: Ember.inject.service(), locationObserver: Ember.observer('filter.location', function() { @@ -16,53 +26,117 @@ geostats: [], observerGeostats: Ember.observer('geostats', function() { - //console.log(this.get('geostats')); + if(this.get('map')) { + if(this.get('map').selectedObject.id) { + if(this.get('map').selectedObject.parentObject.mapVar === this.get('countriesMapVar')) { + if(this.get('map').selectedObject.id === 'FR') { + this.setFranceAreas(); + this.get('map')['dataProvider'] = { + 'mapVar': this.get('franceMapVar'), + 'getAreasFromMap': true, + 'areas': this.get('franceAreas') + }; + this.get('map').validateData(); + } + } else if(this.get('map').selectedObject.parentObject.mapVar === this.get('continentsMapVar')) { + this.setCountriesAreas(); + this.get('map')['dataProvider'] = { + 'mapVar': this.get('countriesMapVar'), + 'getAreasFromMap': true, + 'areas': this.get('countriesAreas'), + 'zoomLevel': this.get('map').zoomLevel(), + 'zoomLatitude': this.get('map').zoomLatitude(), + 'zoomLongitude': this.get('map').zoomLongitude() + }; + this.get('map').validateData(); + } + } else { + this.createAmMap(); + } + } }), + init: function() { + this._super(...arguments); + if (ENV.environment === 'development') { + this.set('color', 'rgba(141,113,113,.2)'); + } + }, + + setFranceAreas: function() { + var self = this; + var france2016LowAreas = []; + this.get('franceMapVar')['svg']['g']['path'].forEach(function(area) { + var object = { + 'id': area.id, + 'passZoomValuesToTarget': false, + 'autoZoom': false + }; + if(self.get('geostats').findIndex(geostat => geostat.id === area.id) === -1) { + object['mouseEnabled'] = false, + object['color'] = self.get('color'); + } + france2016LowAreas.push(object); + }); + this.set('franceAreas', france2016LowAreas); + }, + + setCountriesAreas: function() { + var self = this; + var worldLowAreas = []; + this.get('countriesMapVar')['svg']['g']['path'].forEach(function(area) { + if(self.get('geostats').findIndex(geostat => geostat.id === area.id) === -1) { + worldLowAreas.push({ + 'id': area.id, + 'mouseEnabled': false, + 'color': self.get('color') + }); + } else { + if(typeof worldLowAreas.find(country => country.id === area.id) === 'undefined') { + var object = { + 'id': area.id, + 'selectable': true + }; + if(area.id === 'FR') { + object['autoZoom'] = true; + } + worldLowAreas.push(object); + } + } + }); + this.set('countriesAreas', worldLowAreas); + }, + + setContinentsAreas: function() { + var self = this; + var continentsLowAreas = []; + this.get('continentsMapVar')['svg']['g']['path'].forEach(function(area) { + var object = { + 'id': area.id, + 'passZoomValuesToTarget': true, + 'selectable': true, + 'mouseEnabled': true, + 'autoZoom': true + }; + if(self.get('geostats').findIndex(geostat => geostat.id === area.id) === -1) { + object['mouseEnabled'] = false, + object['color'] = self.get('color'); + } + continentsLowAreas.push(object); + }); + this.set('continentsAreas', continentsLowAreas); + }, + didInsertElement: function(){ this.$('#mapdiv').height(Ember.$('.corpus-app-container').height()); this.createAmMap(); }, createAmMap: function() { + console.log('createAmMap'); var self = this; - var france2016LowAreas = []; - this.get('franceMapVar')['svg']['g']['path'].forEach(function(area) { - france2016LowAreas.push({ - 'id': area.id, - 'passZoomValuesToTarget': false, - 'autoZoom': false, - 'selectable': true - }) - }); - - var continentsLowAreas = []; - this.get('continentsMapVar')['svg']['g']['path'].forEach(function(area) { - var object = { - 'id': area.id, - 'linkToObject': { - 'mapVar': self.get('countriesMapVar'), - 'getAreasFromMap': true - }, - 'passZoomValuesToTarget': true, - 'autoZoom': true - }; - if(area.id === 'europe') { - object['linkToObject']['areas'] = [{ - 'id': 'FR', - 'linkToObject': { - 'mapVar': self.get('franceMapVar'), - 'getAreasFromMap': true, - 'areas': france2016LowAreas - }, - 'autoZoom': true, - 'selectable': true - }]; - } - continentsLowAreas.push(object); - }); - + this.setContinentsAreas(); this.set('map', AmCharts.makeChart('mapdiv', { 'type': 'map', 'fontFamily': 'sans-serif', @@ -86,7 +160,7 @@ 'dataProvider': { 'mapVar': this.get('continentsMapVar'), - 'areas': continentsLowAreas + 'areas': this.get('continentsAreas') }, listeners: [{ @@ -101,16 +175,14 @@ }, clickMapObject: function(event) { + this.set('locationId', event.mapObject.id); + this.sendAction('area', event.mapObject.id); this.get('filter').set('location', event.mapObject.title); - - /*this.get('geostats').forEach( function (geostat) { - console.log('geostat', geostat.get('id'), geostat.get('count')); - });*/ }, homeButtonClicked: function(event) { if(event.chart.dataProvider.map !== 'continentsLow') { - this.createAmMap(); + this.sendAction('area', 'world'); } } diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/app/routes/tabs/carto.js --- a/cms/app-client/app/routes/tabs/carto.js Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/app/routes/tabs/carto.js Thu Sep 22 15:34:10 2016 +0200 @@ -2,8 +2,23 @@ export default Ember.Route.extend({ - model: function() { - return this.store.query('geostat', { 'areas': 'FR-A,FR-B,FR-C,FR-D,FR-E' }); + area: 'world', + + model: Ember.observer('area', function() { + var self = this; + var promise = this.store.query('geostat', { + 'areas': self.get('area') + }); + promise.then(function(value) { + self.controllerFor('tabs/carto').set('areas', value.get('content')); + }); + return promise; + }), + + actions: { + setAreaParameter: function(id) { + this.set('area', id); + } } }); diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/app/templates/tabs/carto.hbs --- a/cms/app-client/app/templates/tabs/carto.hbs Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/app/templates/tabs/carto.hbs Thu Sep 22 15:34:10 2016 +0200 @@ -1,3 +1,3 @@
- {{ visu-carto geostats=model }} + {{ visu-carto geostats=areas area='setAreaParameter' }}
\ No newline at end of file diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/config/environment.js --- a/cms/app-client/config/environment.js Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/config/environment.js Thu Sep 22 15:34:10 2016 +0200 @@ -1,63 +1,45 @@ /* jshint node: true */ module.exports = function(environment) { - var ENV = { - rootElement: '#corpus-app', - modulePrefix: 'app-client', - environment: environment, - rootURL: '/corpus/', - locationType: 'hash', - // contentSecurityPolicy: { - // 'default-src': "'none'", - // 'style-src': "'self' 'http://localhost:4200'" - // }, - EmberENV: { - FEATURES: { - // Here you can enable experimental features on an ember canary build - // e.g. 'with-controller': true - } - }, - - APP: { - baseStatic: '', - // Here you can pass flags/options to your application instance - // when it is created + var ENV = { + rootElement: '#corpus-app', + modulePrefix: 'app-client', + environment: environment, + rootURL: '/corpus/', + locationType: 'hash', + EmberENV: { + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. 'with-controller': true + } + }, + APP: { + baseStatic: '' + // Here you can pass flags/options to your application instance + // when it is created + } + }; + if (environment === 'development') { + ENV.APP.baseStatic = ''; + ENV.contentSecurityPolicy = { + 'default-src': "'none'", + 'script-src': "'self' *", + 'font-src': "'self'", + 'connect-src': "'self' *", + 'img-src': "'self'", + 'style-src': "'self' *", + 'media-src': "'self'" + }; } - }; - - if (environment === 'development') { - ENV.APP.baseStatic = ''; - // ENV.APP.LOG_RESOLVER = true; - // ENV.APP.LOG_ACTIVE_GENERATION = true; - // ENV.APP.LOG_TRANSITIONS = true; - // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; - // ENV.APP.LOG_VIEW_LOOKUPS = true; - ENV.contentSecurityPolicy = { - 'default-src': "'none'", - 'script-src': "'self' *", - 'font-src': "'self'", - 'connect-src': "'self' *", - 'img-src': "'self'", - 'style-src': "'self' *", - 'media-src': "'self'" - }; - } - - if (environment === 'test') { - // Testem prefers this... - ENV.rootURL = '/'; - ENV.locationType = 'none'; - - // keep test console output quieter - ENV.APP.LOG_ACTIVE_GENERATION = false; - ENV.APP.LOG_VIEW_LOOKUPS = false; - - ENV.APP.rootElement = '#ember-testing'; - } - - if (environment === 'production') { - ENV.APP.baseStatic = '/modules/corpus/app-client/'; - } - - return ENV; -}; + if (environment === 'test') { + ENV.rootURL = '/'; + ENV.locationType = 'none'; + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + ENV.APP.rootElement = '#ember-testing'; + } + if (environment === 'production') { + ENV.APP.baseStatic = '/modules/corpus/app-client/'; + } + return ENV; +}; \ No newline at end of file diff -r 53a6985443f8 -r f2c2c80a49f7 cms/app-client/mirage/config.js --- a/cms/app-client/mirage/config.js Mon Sep 05 18:45:47 2016 +0200 +++ b/cms/app-client/mirage/config.js Thu Sep 22 15:34:10 2016 +0200 @@ -32,13 +32,7 @@ this.get('/languages'); - this.get('/geostats', function(db, request) { - if(request.queryParams.areas) { - return db.areas.find(request.queryParams.areas.split(',')); - } else { - return []; - } - }); + this.get('/geostats'); this.get('/themes');