From 3c6d153c4959b50a670335fdc1bebc0af5a1bc3a Mon Sep 17 00:00:00 2001 From: mz Date: Thu, 12 Oct 2017 12:35:31 +0200 Subject: [PATCH] Fix bug with pictogram displaying in the box allowing to choose them + prepare for 0.5.5 --- CHANGES.rst | 5 + magrit_app/__init__.py | 2 +- ...9af.min.css => style.3e43df99730a.min.css} | 0 ...pp.a54f919159af.js => app.3e43df99730a.js} | 2012 ++++++++--------- magrit_app/static/js/interface.js | 2 +- magrit_app/static/json/list_symbols.json | 2 +- ...9af.json => translation.3e43df99730a.json} | 0 ...9af.json => translation.3e43df99730a.json} | 0 ...9af.json => translation.3e43df99730a.json} | 0 magrit_app/templates/modules.html | 4 +- 10 files changed, 970 insertions(+), 1057 deletions(-) rename magrit_app/static/css/{style.a54f919159af.min.css => style.3e43df99730a.min.css} (100%) rename magrit_app/static/js/{app.a54f919159af.js => app.3e43df99730a.js} (95%) rename magrit_app/static/locales/en/{translation.a54f919159af.json => translation.3e43df99730a.json} (100%) rename magrit_app/static/locales/es/{translation.a54f919159af.json => translation.3e43df99730a.json} (100%) rename magrit_app/static/locales/fr/{translation.a54f919159af.json => translation.3e43df99730a.json} (100%) diff --git a/CHANGES.rst b/CHANGES.rst index 01481a1ce..5d48e8fb5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,11 @@ Changes ======= +0.5.5 (2017-10-12) +------------------ + +- Fix bug with pictogram displaying in the appropriate box. + 0.5.4 (2017-10-01) ------------------ diff --git a/magrit_app/__init__.py b/magrit_app/__init__.py index 2ce91a8f5..0ab4ed522 100755 --- a/magrit_app/__init__.py +++ b/magrit_app/__init__.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -__version__ = '0.5.4' +__version__ = '0.5.5' diff --git a/magrit_app/static/css/style.a54f919159af.min.css b/magrit_app/static/css/style.3e43df99730a.min.css similarity index 100% rename from magrit_app/static/css/style.a54f919159af.min.css rename to magrit_app/static/css/style.3e43df99730a.min.css diff --git a/magrit_app/static/js/app.a54f919159af.js b/magrit_app/static/js/app.3e43df99730a.js similarity index 95% rename from magrit_app/static/js/app.a54f919159af.js rename to magrit_app/static/js/app.3e43df99730a.js index e1d0c7a7c..2fcb87c93 100644 --- a/magrit_app/static/js/app.a54f919159af.js +++ b/magrit_app/static/js/app.3e43df99730a.js @@ -60,13 +60,11 @@ function setUpInterface(reload_project) { return 1; }); if (layer_names.length) { - (function () { - var formToSend = new FormData(); - layer_names.forEach(function (name) { - formToSend.append('layer_name', current_layers[name].key_name); - }); - navigator.sendBeacon('/layers/delete', formToSend); - })(); + var formToSend = new FormData(); + layer_names.forEach(function (name) { + formToSend.append('layer_name', current_layers[name].key_name); + }); + navigator.sendBeacon('/layers/delete', formToSend); } }, false); var bg = document.createElement('div'); @@ -853,33 +851,31 @@ function setUpInterface(reload_project) { apply_user_preferences(data); }); } else { - (function () { - // Check if there is a project to reload in the localStorage : - var last_project = window.localStorage.getItem('magrit_project'); - if (last_project && last_project.length && last_project.length > 0) { - swal({ title: '', - // text: i18next.t('app_page.common.resume_last_project'), - allowOutsideClick: false, - allowEscapeKey: false, - type: 'question', - showConfirmButton: true, - showCancelButton: true, - confirmButtonText: i18next.t('app_page.common.new_project'), - cancelButtonText: i18next.t('app_page.common.resume_last') - }).then(function () { - // If we don't want to resume from the last project, we can - // remove it : - window.localStorage.removeItem('magrit_project'); - // Indicate that that no layer have been added for now :* - _app.first_layer = true; - }, function (dismiss) { - apply_user_preferences(last_project); - }); - } else { + // Check if there is a project to reload in the localStorage : + var last_project = window.localStorage.getItem('magrit_project'); + if (last_project && last_project.length && last_project.length > 0) { + swal({ title: '', + // text: i18next.t('app_page.common.resume_last_project'), + allowOutsideClick: false, + allowEscapeKey: false, + type: 'question', + showConfirmButton: true, + showCancelButton: true, + confirmButtonText: i18next.t('app_page.common.new_project'), + cancelButtonText: i18next.t('app_page.common.resume_last') + }).then(function () { + // If we don't want to resume from the last project, we can + // remove it : + window.localStorage.removeItem('magrit_project'); // Indicate that that no layer have been added for now :* _app.first_layer = true; - } - })(); + }, function (dismiss) { + apply_user_preferences(last_project); + }); + } else { + // Indicate that that no layer have been added for now :* + _app.first_layer = true; + } } // Set the properties for the notification zone : alertify.set('notifier', 'position', 'bottom-left'); @@ -1135,7 +1131,7 @@ function parseQuery(search) { lng: lang, fallbackLng: _app.existing_lang[0], backend: { - loadPath: 'static/locales/{{lng}}/translation.a54f919159af.json' + loadPath: 'static/locales/{{lng}}/translation.3e43df99730a.json' } }, function (err, tr) { if (err) { @@ -1205,48 +1201,42 @@ function displayInfoOnMove() { info_features.style('display', 'none').html(''); svg_map.style.cursor = ''; } else { - var _ret6 = function () { - map.select('.brush').remove(); - var layers = svg_map.querySelectorAll('.layer'), - nb_layer = layers.length; - var top_visible_layer = null; - - for (var i = nb_layer - 1; i > -1; i--) { - if (layers[i].style.visibility !== 'hidden') { - top_visible_layer = _app.id_to_layer.get(layers[i].id); - break; - } - } + map.select('.brush').remove(); + var layers = svg_map.querySelectorAll('.layer'), + nb_layer = layers.length; + var top_visible_layer = null; - if (!top_visible_layer) { - swal('', i18next.t('app_page.common.error_no_visible'), 'error'); - return { - v: void 0 - }; + for (var i = nb_layer - 1; i > -1; i--) { + if (layers[i].style.visibility !== 'hidden') { + top_visible_layer = _app.id_to_layer.get(layers[i].id); + break; } + } - var id_top_layer = '#' + _app.layer_to_id.get(top_visible_layer); - var symbol = current_layers[top_visible_layer].symbol || 'path'; + if (!top_visible_layer) { + swal('', i18next.t('app_page.common.error_no_visible'), 'error'); + return; + } - map.select(id_top_layer).selectAll(symbol).on('mouseover', function (d, i) { - var txt_info = ['

', top_visible_layer, '

Feature ', i + 1, '/', current_layers[top_visible_layer].n_features, '

']; - var properties = result_data[top_visible_layer] ? result_data[top_visible_layer][i] : d.properties; - Object.getOwnPropertyNames(properties).forEach(function (el) { - txt_info.push('
' + el + ' : ' + properties[el]); - }); - txt_info.push('

'); - info_features.style('display', null).html(txt_info.join('')); - }); + var id_top_layer = '#' + _app.layer_to_id.get(top_visible_layer); + var symbol = current_layers[top_visible_layer].symbol || 'path'; - map.select(id_top_layer).selectAll(symbol).on('mouseout', function () { - info_features.style('display', 'none').html(''); + map.select(id_top_layer).selectAll(symbol).on('mouseover', function (d, i) { + var txt_info = ['

', top_visible_layer, '

Feature ', i + 1, '/', current_layers[top_visible_layer].n_features, '

']; + var properties = result_data[top_visible_layer] ? result_data[top_visible_layer][i] : d.properties; + Object.getOwnPropertyNames(properties).forEach(function (el) { + txt_info.push('
' + el + ' : ' + properties[el]); }); + txt_info.push('

'); + info_features.style('display', null).html(txt_info.join('')); + }); - info_features.classed('active', true); - svg_map.style.cursor = 'help'; - }(); + map.select(id_top_layer).selectAll(symbol).on('mouseout', function () { + info_features.style('display', 'none').html(''); + }); - if ((typeof _ret6 === 'undefined' ? 'undefined' : _typeof(_ret6)) === "object") return _ret6.v; + info_features.classed('active', true); + svg_map.style.cursor = 'help'; } } @@ -3541,29 +3531,27 @@ var display_discretization = function display_discretization(layer_name, field_n height: window.innerHeight - 60 + 'px' }); if (values.length < 500) { - (function () { - // Only allow for beeswarm plot if there isn't too many values - // as it seems to be costly due to the "simulation" + the voronoi - var current_histo = 'histogram'; - var choice_histo = ref_histo_box.append('p').style('text-align', 'center'); - choice_histo.insert('button').attrs({ id: 'button_switch_plot', class: 'i18n button_st4', 'data-i18n': '[text]disc_box.switch_ref_histo' }).styles({ padding: '3px', 'font-size': '10px' }).html(i18next.t('disc_box.switch_ref_histo')).on('click', function () { - var str_tr = void 0; - if (current_histo === 'histogram') { - refDisplay('box_plot'); - current_histo = 'box_plot'; - str_tr = '_boxplot'; - } else if (current_histo === 'box_plot') { - refDisplay('beeswarm'); - current_histo = 'beeswarm'; - str_tr = '_beeswarm'; - } else if (current_histo === 'beeswarm') { - refDisplay('histogram'); - current_histo = 'histogram'; - str_tr = ''; - } - document.getElementById('ref_histo_title').innerHTML = '' + i18next.t('disc_box.hist_ref_title' + str_tr) + ''; - }); - })(); + // Only allow for beeswarm plot if there isn't too many values + // as it seems to be costly due to the "simulation" + the voronoi + var current_histo = 'histogram'; + var choice_histo = ref_histo_box.append('p').style('text-align', 'center'); + choice_histo.insert('button').attrs({ id: 'button_switch_plot', class: 'i18n button_st4', 'data-i18n': '[text]disc_box.switch_ref_histo' }).styles({ padding: '3px', 'font-size': '10px' }).html(i18next.t('disc_box.switch_ref_histo')).on('click', function () { + var str_tr = void 0; + if (current_histo === 'histogram') { + refDisplay('box_plot'); + current_histo = 'box_plot'; + str_tr = '_boxplot'; + } else if (current_histo === 'box_plot') { + refDisplay('beeswarm'); + current_histo = 'beeswarm'; + str_tr = '_beeswarm'; + } else if (current_histo === 'beeswarm') { + refDisplay('histogram'); + current_histo = 'histogram'; + str_tr = ''; + } + document.getElementById('ref_histo_title').innerHTML = '' + i18next.t('disc_box.hist_ref_title' + str_tr) + ''; + }); } var div_svg = newBox.append('div').append('svg').attr('id', 'svg_discretization').attr('width', svg_w + margin.left + margin.right).attr('height', svg_h + margin.top + margin.bottom); @@ -3844,28 +3832,26 @@ function display_categorical_box(data_layer, layer_name, field, cats) { }).html(i18next.t('app_page.categorical_box.copy_style')).on('click', function () { make_box_copy_style_categorical(existing_typo_layer).then(function (result) { if (result) { - (function () { - // Apply the selected style: - var ref_map = current_layers[result].color_map; - var selection = newbox.select('#sortable_typo_name').selectAll('li'); - // Change the displayed name of the elements: - selection.selectAll('input.typo_name').each(function (d) { - var r = ref_map.get(d.name); - if (r) { - d.display_name = r[1]; - this.value = r[1]; - } - }); - // Change the selected colors: - selection.selectAll('p').each(function (d) { - var r = ref_map.get(d.name); - if (r) { - d.color = r[0]; - this.style.backgroundColor = r[0]; - this.nextSibling.value = r[0]; - } - }); - })(); + // Apply the selected style: + var ref_map = current_layers[result].color_map; + var selection = newbox.select('#sortable_typo_name').selectAll('li'); + // Change the displayed name of the elements: + selection.selectAll('input.typo_name').each(function (d) { + var r = ref_map.get(d.name); + if (r) { + d.display_name = r[1]; + this.value = r[1]; + } + }); + // Change the selected colors: + selection.selectAll('p').each(function (d) { + var r = ref_map.get(d.name); + if (r) { + d.color = r[0]; + this.style.backgroundColor = r[0]; + this.nextSibling.value = r[0]; + } + }); } }); }); @@ -3947,26 +3933,24 @@ var prepare_ref_histo = function prepare_ref_histo(parent_node, serie, formatCou svg_ref_histo.remove(); svg_ref_histo = c.append('g').attr('transform', 'translate(' + (m_margin.left + m_margin.right) + ',' + m_margin.top + ')'); if (type === 'histogram') { - (function () { - var data = d3.histogram().domain(x.domain()).thresholds(x.ticks(nb_bins))(values); + var data = d3.histogram().domain(x.domain()).thresholds(x.ticks(nb_bins))(values); - var y = d3.scaleLinear().domain([0, d3.max(data, function (d) { - return d.length; - })]).range([m_height, 0]); + var y = d3.scaleLinear().domain([0, d3.max(data, function (d) { + return d.length; + })]).range([m_height, 0]); - var bar = svg_ref_histo.selectAll('.bar').data(data).enter().append('rect').attrs(function (d) { - return { - class: 'bar', - width: Math.abs(x(d.x1)) - Math.abs(x(d.x0)), - height: m_height - y(d.length), - x: 0, - transform: 'translate(' + x(d.x0) + ',' + y(d.length) + ')' }; - }).styles({ fill: 'beige', stroke: 'black', 'stroke-width': '0.4px' }); + var bar = svg_ref_histo.selectAll('.bar').data(data).enter().append('rect').attrs(function (d) { + return { + class: 'bar', + width: Math.abs(x(d.x1)) - Math.abs(x(d.x0)), + height: m_height - y(d.length), + x: 0, + transform: 'translate(' + x(d.x0) + ',' + y(d.length) + ')' }; + }).styles({ fill: 'beige', stroke: 'black', 'stroke-width': '0.4px' }); - svg_ref_histo.append('g').style('font-size', '10px').attrs({ class: 'x_axis', transform: 'translate(0,' + m_height + ')' }).call(d3.axisBottom().scale(x).ticks(4).tickFormat(formatCount)).selectAll('text').attr('y', 4).attr('x', -4).attr('dy', '.45em').attr('transform', 'rotate(-40)').style('text-anchor', 'end'); + svg_ref_histo.append('g').style('font-size', '10px').attrs({ class: 'x_axis', transform: 'translate(0,' + m_height + ')' }).call(d3.axisBottom().scale(x).ticks(4).tickFormat(formatCount)).selectAll('text').attr('y', 4).attr('x', -4).attr('dy', '.45em').attr('transform', 'rotate(-40)').style('text-anchor', 'end'); - svg_ref_histo.append('g').attr('class', 'y_axis').style('font-size', '10px').call(d3.axisLeft().scale(y).ticks(5).tickFormat(d3.format('.0f'))); - })(); + svg_ref_histo.append('g').attr('class', 'y_axis').style('font-size', '10px').call(d3.axisLeft().scale(y).ticks(5).tickFormat(d3.format('.0f'))); } else if (type === 'box_plot') { svg_ref_histo.append('g').style('font-size', '10px').attrs({ class: 'x_axis', transform: 'translate(0,' + m_height + ')' }).call(d3.axisBottom().scale(x).ticks(4).tickFormat(formatCount)).selectAll('text').attr('y', 4).attr('x', -4).attr('dy', '.45em').attr('transform', 'rotate(-40)').style('text-anchor', 'end'); @@ -3986,40 +3970,38 @@ var prepare_ref_histo = function prepare_ref_histo(parent_node, serie, formatCou svg_ref_histo.append('g').insert('line').attrs({ x1: x(q5[3]), y1: y_mid, x2: x(q5[4]), y2: y_mid }).styles({ 'stroke-width': 1, stroke: 'black', fill: 'none', 'stroke-dasharray': '3,3' }); } else if (type === 'beeswarm') { - (function () { - var data = values.map(function (v) { - return { value: +v }; - }); + var _data = values.map(function (v) { + return { value: +v }; + }); - var simulation = d3.forceSimulation(data).force('x', d3.forceX(function (d) { - return x(d.value); - }).strength(1)).force('y', d3.forceY(m_height / 2).strength(2)).force('collide', d3.forceCollide(4)).stop(); + var simulation = d3.forceSimulation(_data).force('x', d3.forceX(function (d) { + return x(d.value); + }).strength(1)).force('y', d3.forceY(m_height / 2).strength(2)).force('collide', d3.forceCollide(4)).stop(); - for (var i = 0; i < 75; ++i) { - simulation.tick(); - } - svg_ref_histo.append('g').style('font-size', '10px').attrs({ class: 'x_axis', transform: 'translate(0,' + m_height + ')' }).call(d3.axisBottom().scale(x).ticks(4).tickFormat(formatCount)).selectAll('text').attr('y', 4).attr('x', -4).attr('dy', '.45em').attr('transform', 'rotate(-40)').style('text-anchor', 'end'); + for (var i = 0; i < 75; ++i) { + simulation.tick(); + } + svg_ref_histo.append('g').style('font-size', '10px').attrs({ class: 'x_axis', transform: 'translate(0,' + m_height + ')' }).call(d3.axisBottom().scale(x).ticks(4).tickFormat(formatCount)).selectAll('text').attr('y', 4).attr('x', -4).attr('dy', '.45em').attr('transform', 'rotate(-40)').style('text-anchor', 'end'); - var cell = svg_ref_histo.append('g').attr('class', 'cells').selectAll('g').data(d3.voronoi().extent([[0, 0], [m_width, m_height]]).x(function (d) { - return d.x; - }).y(function (d) { - return d.y; - }).polygons(data)).enter().append('g'); + var cell = svg_ref_histo.append('g').attr('class', 'cells').selectAll('g').data(d3.voronoi().extent([[0, 0], [m_width, m_height]]).x(function (d) { + return d.x; + }).y(function (d) { + return d.y; + }).polygons(_data)).enter().append('g'); - cell.append('circle').attrs(function (d) { - if (d) { - return { - r: data.lenght < 250 ? 2.5 : data.lenght < 500 ? 1.5 : 1, - transform: 'translate(' + d.data.x + ',' + d.data.y + ')' }; - } - return undefined; - }); + cell.append('circle').attrs(function (d) { + if (d) { + return { + r: _data.lenght < 250 ? 2.5 : _data.lenght < 500 ? 1.5 : 1, + transform: 'translate(' + d.data.x + ',' + d.data.y + ')' }; + } + return undefined; + }); - cell.append('path').attr('d', function (d) { - if (d) return 'M' + d.join('L') + 'Z'; - return undefined; - }); - })(); + cell.append('path').attr('d', function (d) { + if (d) return 'M' + d.join('L') + 'Z'; + return undefined; + }); } }; }; @@ -4409,24 +4391,22 @@ var display_discretization_links_discont = function display_discretization_links refDisplay('histogram'); if (values.length < 750) { - (function () { - // Only allow for beeswarm plot if there isn't too many values - // as it seems to be costly due to the "simulation" + the voronoi - var choiceHisto = ref_histo_box.append('p').style('text-align', 'center'); - var currentHisto = 'histogram'; - choiceHisto.insert('button').attrs({ id: 'button_switch_plot', class: 'i18n button_st4', 'data-i18n': '[text]disc_box.switch_ref_histo' }).styles({ padding: '3px', 'font-size': '10px' }).html(i18next.t('disc_box.switch_ref_histo')).on('click', function () { - if (currentHisto === 'histogram') { - refDisplay('box_plot'); - currentHisto = 'box_plot'; - } else if (currentHisto === 'box_plot') { - refDisplay('beeswarm'); - currentHisto = 'beeswarm'; - } else if (currentHisto === 'beeswarm') { - refDisplay('histogram'); - currentHisto = 'histogram'; - } - }); - })(); + // Only allow for beeswarm plot if there isn't too many values + // as it seems to be costly due to the "simulation" + the voronoi + var choiceHisto = ref_histo_box.append('p').style('text-align', 'center'); + var currentHisto = 'histogram'; + choiceHisto.insert('button').attrs({ id: 'button_switch_plot', class: 'i18n button_st4', 'data-i18n': '[text]disc_box.switch_ref_histo' }).styles({ padding: '3px', 'font-size': '10px' }).html(i18next.t('disc_box.switch_ref_histo')).on('click', function () { + if (currentHisto === 'histogram') { + refDisplay('box_plot'); + currentHisto = 'box_plot'; + } else if (currentHisto === 'box_plot') { + refDisplay('beeswarm'); + currentHisto = 'beeswarm'; + } else if (currentHisto === 'beeswarm') { + refDisplay('histogram'); + currentHisto = 'histogram'; + } + }); } var txt_nb_class = d3.select('#discretization_panel').append('input').attrs({ type: 'number', class: 'without_spinner', min: 2, max: max_nb_class, value: nb_class, step: 1 }).styles({ width: '30px', margin: '0 10px', 'vertical-align': 'calc(20%)' }).on('change', function () { @@ -4537,8 +4517,6 @@ var display_discretization_links_discont = function display_discretization_links }; 'use strict'; -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var get_menu_option = function () { @@ -5144,29 +5122,27 @@ function render_twostocks_waffle(layer, rendering_params) { _app.id_to_layer.set(layer_id, layer_to_add); if (!rendering_params.result_data) { - (function () { - ref_colors = get_colors(nbVar); - result_data[layer_to_add] = []; - var ref_layer_selection = map.select('#' + _app.layer_to_id.get(layer)).selectAll('path'); - var centroids = getCentroids(ref_layer_selection._groups[0]); - var empty_geoms = []; - - ref_layer_selection.each(function (d, i) { - if (!centroids[i]) { - empty_geoms.push(d); - } else { - var r = { id: d.id, centroid: centroids[i] }; - for (var j = 0; j < nbVar; j++) { - var _field = fields[j]; - r[_field] = +user_data[layer][i][_field]; - } - result_data[layer_to_add].push(r); + ref_colors = get_colors(nbVar); + result_data[layer_to_add] = []; + var ref_layer_selection = map.select('#' + _app.layer_to_id.get(layer)).selectAll('path'); + var centroids = getCentroids(ref_layer_selection._groups[0]); + var empty_geoms = []; + + ref_layer_selection.each(function (d, i) { + if (!centroids[i]) { + empty_geoms.push(d); + } else { + var r = { id: d.id, centroid: centroids[i] }; + for (var j = 0; j < nbVar; j++) { + var _field = fields[j]; + r[_field] = +user_data[layer][i][_field]; } - }); - if (empty_geoms.length > 0) { - display_warning_empty_geom(empty_geoms); + result_data[layer_to_add].push(r); } - })(); + }); + if (empty_geoms.length > 0) { + display_warning_empty_geom(empty_geoms); + } } else { ref_colors = rendering_params.ref_colors; result_data[layer_to_add] = JSON.parse(rendering_params.result_data); @@ -6174,33 +6150,27 @@ var fields_Stewart = { setSelected(mask_selec.node(), default_selected_mask); } if (layer) { - var _ret5 = function () { - var fields = getFieldsType('stock', layer), - field_selec = section2.select('#stewart_field'), - field_selec2 = section2.select('#stewart_field2'); - - if (fields.length === 0) { - display_error_num_field(); - return { - v: void 0 - }; - } + var fields = getFieldsType('stock', layer), + field_selec = section2.select('#stewart_field'), + field_selec2 = section2.select('#stewart_field2'); - field_selec2.append('option').text(' ').attr('value', 'None'); - fields.forEach(function (field) { - field_selec.append('option').text(field).attr('value', field); - field_selec2.append('option').text(field).attr('value', field); - }); - document.getElementById('stewart_span').value = get_first_guess_span('stewart'); + if (fields.length === 0) { + display_error_num_field(); + return; + } - field_selec.on('change', function () { - document.getElementById('stewart_output_name').value = ['Smoothed', this.value, layer].join('_'); - }); - document.getElementById('stewart_output_name').value = ['Smoothed', fields[0], layer].join('_'); - section2.select('#stewart_yes').on('click', render_stewart); - }(); + field_selec2.append('option').text(' ').attr('value', 'None'); + fields.forEach(function (field) { + field_selec.append('option').text(field).attr('value', field); + field_selec2.append('option').text(field).attr('value', field); + }); + document.getElementById('stewart_span').value = get_first_guess_span('stewart'); - if ((typeof _ret5 === 'undefined' ? 'undefined' : _typeof(_ret5)) === "object") return _ret5.v; + field_selec.on('change', function () { + document.getElementById('stewart_output_name').value = ['Smoothed', this.value, layer].join('_'); + }); + document.getElementById('stewart_output_name').value = ['Smoothed', fields[0], layer].join('_'); + section2.select('#stewart_yes').on('click', render_stewart); } section2.selectAll('.params').attr('disabled', null); }, @@ -6415,69 +6385,67 @@ var fields_Anamorphose = { new_user_layer_name = document.getElementById('Anamorph_output_name').value; if (algo === 'olson') { - (function () { - var nb_ft = current_layers[layer].n_features; - var dataset = user_data[layer]; + var nb_ft = current_layers[layer].n_features; + var dataset = user_data[layer]; - // if (contains_empty_val(dataset.map(a => a[field_name]))) { - // discard_rendering_empty_val(); - // return; - // } + // if (contains_empty_val(dataset.map(a => a[field_name]))) { + // discard_rendering_empty_val(); + // return; + // } - var layer_select = document.getElementById(_app.layer_to_id.get(layer)).getElementsByTagName('path'), - sqrt = Math.sqrt, - abs = Math.abs, - d_val = [], - transform = []; - - for (var i = 0; i < nb_ft; ++i) { - var val = +dataset[i][field_name]; - // We deliberatly use 0 if this is a missing value : - if (isNaN(val) || !isFinite(val)) val = 0; - d_val.push([i, val, +path.area(layer_select[i].__data__.geometry)]); - } - d_val.sort(function (a, b) { - return b[1] - a[1]; - }); - var ref = d_val[0][1] / d_val[0][2]; - d_val[0].push(1); + var layer_select = document.getElementById(_app.layer_to_id.get(layer)).getElementsByTagName('path'), + sqrt = Math.sqrt, + abs = Math.abs, + d_val = [], + transform = []; + + for (var i = 0; i < nb_ft; ++i) { + var val = +dataset[i][field_name]; + // We deliberatly use 0 if this is a missing value : + if (isNaN(val) || !isFinite(val)) val = 0; + d_val.push([i, val, +path.area(layer_select[i].__data__.geometry)]); + } + d_val.sort(function (a, b) { + return b[1] - a[1]; + }); + var ref = d_val[0][1] / d_val[0][2]; + d_val[0].push(1); - for (var _i5 = 0; _i5 < nb_ft; ++_i5) { - var _val = d_val[_i5][1] / d_val[_i5][2]; - var scale = sqrt(_val / ref); - d_val[_i5].push(scale); + for (var _i5 = 0; _i5 < nb_ft; ++_i5) { + var _val = d_val[_i5][1] / d_val[_i5][2]; + var scale = sqrt(_val / ref); + d_val[_i5].push(scale); + } + d_val.sort(function (a, b) { + return a[0] - b[0]; + }); + var formToSend = new FormData(); + formToSend.append('json', JSON.stringify({ + topojson: current_layers[layer].key_name, + scale_values: d_val.map(function (ft) { + return ft[3]; + }), + field_name: field_name + })); + xhrequest('POST', 'compute/olson', formToSend, true).then(function (result) { + var options = { result_layer_on_add: true, func_name: 'cartogram' }; + if (new_user_layer_name.length > 0 && /^\w+$/.test(new_user_layer_name)) { + options.choosed_name = new_user_layer_name; } - d_val.sort(function (a, b) { - return a[0] - b[0]; - }); - var formToSend = new FormData(); - formToSend.append('json', JSON.stringify({ - topojson: current_layers[layer].key_name, - scale_values: d_val.map(function (ft) { - return ft[3]; - }), - field_name: field_name - })); - xhrequest('POST', 'compute/olson', formToSend, true).then(function (result) { - var options = { result_layer_on_add: true, func_name: 'cartogram' }; - if (new_user_layer_name.length > 0 && /^\w+$/.test(new_user_layer_name)) { - options.choosed_name = new_user_layer_name; - } - var n_layer_name = add_layer_topojson(result, options); - current_layers[n_layer_name].renderer = 'OlsonCarto'; - current_layers[n_layer_name].rendered_field = field_name; - current_layers[n_layer_name].scale_max = 1; - current_layers[n_layer_name].ref_layer_name = layer; - current_layers[n_layer_name].scale_byFeature = transform; - map.select('#' + _app.layer_to_id.get(n_layer_name)).selectAll('path').style('fill-opacity', 0.8).style('stroke', 'black').style('stroke-opacity', 0.8); - switch_accordion_section(); - }, function (err) { - display_error_during_computation(); - console.log(err); - }); - })(); + var n_layer_name = add_layer_topojson(result, options); + current_layers[n_layer_name].renderer = 'OlsonCarto'; + current_layers[n_layer_name].rendered_field = field_name; + current_layers[n_layer_name].scale_max = 1; + current_layers[n_layer_name].ref_layer_name = layer; + current_layers[n_layer_name].scale_byFeature = transform; + map.select('#' + _app.layer_to_id.get(n_layer_name)).selectAll('path').style('fill-opacity', 0.8).style('stroke', 'black').style('stroke-opacity', 0.8); + switch_accordion_section(); + }, function (err) { + display_error_during_computation(); + console.log(err); + }); } else if (algo === 'dougenik') { - var formToSend = new FormData(), + var _formToSend = new FormData(), var_to_send = {}, nb_iter = document.getElementById('Anamorph_dougenik_iterations').value; @@ -6485,17 +6453,17 @@ var fields_Anamorphose = { if (!current_layers[layer].original_fields.has(field_name)) { var table = user_data[layer], to_send = var_to_send[field_name]; - for (var i = 0, i_len = table.length; i < i_len; ++i) { - to_send.push(+table[i][field_name]); + for (var _i6 = 0, i_len = table.length; _i6 < i_len; ++_i6) { + to_send.push(+table[_i6][field_name]); } } - formToSend.append('json', JSON.stringify({ + _formToSend.append('json', JSON.stringify({ topojson: current_layers[layer].key_name, var_name: var_to_send, iterations: nb_iter })); - xhrequest('POST', 'compute/carto_doug', formToSend, true).then(function (data) { + xhrequest('POST', 'compute/carto_doug', _formToSend, true).then(function (data) { var options = { result_layer_on_add: true, func_name: 'cartogram' }; if (new_user_layer_name.length > 0 && /^\w+$/.test(new_user_layer_name)) { options.choosed_name = new_user_layer_name; @@ -6596,65 +6564,63 @@ function make_prop_line(rendering_params, geojson_line_layer) { propSize = new PropSizer(ref_value, ref_size, symbol_type); if (!geojson_line_layer) { - (function () { - var make_geojson_line_layer = function make_geojson_line_layer() { - var ref_layer_selection = document.getElementById(_app.layer_to_id.get(layer)).getElementsByTagName('path'); - var result = []; - - for (var i = 0, n_features = ref_layer_selection.length; i < n_features; ++i) { - var ft = ref_layer_selection[i].__data__, - value = +ft.properties[field]; - var new_obj = { - id: i, - type: 'Feature', - properties: {}, - geometry: cloneObj(ft.geometry) - }; - if (f_ix_len) { - for (var f_ix = 0; f_ix < f_ix_len; f_ix++) { - new_obj.properties[fields_id[f_ix]] = ft.properties[fields_id[f_ix]]; - } + var make_geojson_line_layer = function make_geojson_line_layer() { + var ref_layer_selection = document.getElementById(_app.layer_to_id.get(layer)).getElementsByTagName('path'); + var result = []; + + for (var i = 0, n_features = ref_layer_selection.length; i < n_features; ++i) { + var ft = ref_layer_selection[i].__data__, + value = +ft.properties[field]; + var new_obj = { + id: i, + type: 'Feature', + properties: {}, + geometry: cloneObj(ft.geometry) + }; + if (f_ix_len) { + for (var f_ix = 0; f_ix < f_ix_len; f_ix++) { + new_obj.properties[fields_id[f_ix]] = ft.properties[fields_id[f_ix]]; } - new_obj.properties[field] = value; - new_obj.properties[t_field_name] = propSize.scale(value); - new_obj.properties.color = get_color(value, i); - if (color_field) new_obj.properties[color_field] = ft.properties[color_field]; - result.push([value, new_obj]); } - result.sort(function (a, b) { - return abs(b[0]) - abs(a[0]); - }); - return { - type: 'FeatureCollection', - features: result.map(function (d) { - return d[1]; - }) - }; + new_obj.properties[field] = value; + new_obj.properties[t_field_name] = propSize.scale(value); + new_obj.properties.color = get_color(value, i); + if (color_field) new_obj.properties[color_field] = ft.properties[color_field]; + result.push([value, new_obj]); + } + result.sort(function (a, b) { + return abs(b[0]) - abs(a[0]); + }); + return { + type: 'FeatureCollection', + features: result.map(function (d) { + return d[1]; + }) }; + }; - var fields_id = getFieldsType('id', layer).concat(getFieldsType('category', layer)); - var f_ix_len = fields_id ? fields_id.length : 0; - var get_color = void 0, - col1 = void 0, - col2 = void 0; - if (rendering_params.break_val !== undefined && rendering_params.fill_color.two) { - col1 = rendering_params.fill_color.two[0]; - col2 = rendering_params.fill_color.two[1]; - get_color = function get_color(val, ix) { - return val > rendering_params.break_val ? col2 : col1; - }; - } else if (rendering_params.fill_color instanceof Array && rendering_params.fill_color.length === nb_features) { - get_color = function get_color(val, ix) { - return rendering_params.fill_color[ix]; - }; - } else { - get_color = function get_color() { - return rendering_params.fill_color; - }; - } + var fields_id = getFieldsType('id', layer).concat(getFieldsType('category', layer)); + var f_ix_len = fields_id ? fields_id.length : 0; + var get_color = void 0, + col1 = void 0, + col2 = void 0; + if (rendering_params.break_val !== undefined && rendering_params.fill_color.two) { + col1 = rendering_params.fill_color.two[0]; + col2 = rendering_params.fill_color.two[1]; + get_color = function get_color(val, ix) { + return val > rendering_params.break_val ? col2 : col1; + }; + } else if (rendering_params.fill_color instanceof Array && rendering_params.fill_color.length === nb_features) { + get_color = function get_color(val, ix) { + return rendering_params.fill_color[ix]; + }; + } else { + get_color = function get_color() { + return rendering_params.fill_color; + }; + } - geojson_line_layer = make_geojson_line_layer(); - })(); + geojson_line_layer = make_geojson_line_layer(); } var require_clip_path = isInterrupted(current_proj_name.toLowerCase()) || current_proj_name.toLowerCase().indexOf('conicconformal') > -1 ? 'url(#clip)' : null; var layer_id = encodeId(layer_to_add); @@ -6713,90 +6679,88 @@ function make_prop_symbols(rendering_params, _pt_layer) { var geojson_pt_layer = void 0; if (!_pt_layer) { - (function () { - var make_geojson_pt_layer = function make_geojson_pt_layer() { - var ref_layer_selection = document.getElementById(_app.layer_to_id.get(layer)).getElementsByTagName('path'); - var result = []; - for (var i = 0, n_features = ref_layer_selection.length; i < n_features; ++i) { - var ft = ref_layer_selection[i].__data__; - var value = +ft.properties[field]; - var new_obj = { - id: i, - type: 'Feature', - properties: {}, - geometry: { type: 'Point' } - }; - if (!ft.geometry) { - warn_empty_features.push([i, ft]); - } else if (ft.geometry.type.indexOf('Multi') < 0) { - if (f_ix_len) { - for (var f_ix = 0; f_ix < f_ix_len; f_ix++) { - new_obj.properties[fields_id[f_ix]] = ft.properties[fields_id[f_ix]]; - } - } - new_obj.properties[field] = value; - new_obj.properties[t_field_name] = propSize.scale(value); - new_obj.geometry.coordinates = d3.geoCentroid(ft.geometry); - new_obj.properties.color = get_color(value, i); - if (color_field) new_obj.properties[color_field] = ft.properties[color_field]; - result.push([value, new_obj]); - } else { - var areas = []; - for (var j = 0; j < ft.geometry.coordinates.length; j++) { - areas.push(path.area({ - type: ft.geometry.type, - coordinates: [ft.geometry.coordinates[j]] - })); + var make_geojson_pt_layer = function make_geojson_pt_layer() { + var ref_layer_selection = document.getElementById(_app.layer_to_id.get(layer)).getElementsByTagName('path'); + var result = []; + for (var i = 0, n_features = ref_layer_selection.length; i < n_features; ++i) { + var ft = ref_layer_selection[i].__data__; + var value = +ft.properties[field]; + var new_obj = { + id: i, + type: 'Feature', + properties: {}, + geometry: { type: 'Point' } + }; + if (!ft.geometry) { + warn_empty_features.push([i, ft]); + } else if (ft.geometry.type.indexOf('Multi') < 0) { + if (f_ix_len) { + for (var f_ix = 0; f_ix < f_ix_len; f_ix++) { + new_obj.properties[fields_id[f_ix]] = ft.properties[fields_id[f_ix]]; } - var ix_max = areas.indexOf(max_fast(areas)); - if (f_ix_len) { - for (var _f_ix = 0; _f_ix < f_ix_len; _f_ix++) { - new_obj.properties[fields_id[_f_ix]] = ft.properties[fields_id[_f_ix]]; - } + } + new_obj.properties[field] = value; + new_obj.properties[t_field_name] = propSize.scale(value); + new_obj.geometry.coordinates = d3.geoCentroid(ft.geometry); + new_obj.properties.color = get_color(value, i); + if (color_field) new_obj.properties[color_field] = ft.properties[color_field]; + result.push([value, new_obj]); + } else { + var areas = []; + for (var j = 0; j < ft.geometry.coordinates.length; j++) { + areas.push(path.area({ + type: ft.geometry.type, + coordinates: [ft.geometry.coordinates[j]] + })); + } + var ix_max = areas.indexOf(max_fast(areas)); + if (f_ix_len) { + for (var _f_ix = 0; _f_ix < f_ix_len; _f_ix++) { + new_obj.properties[fields_id[_f_ix]] = ft.properties[fields_id[_f_ix]]; } - new_obj.properties[field] = value; - new_obj.properties[t_field_name] = propSize.scale(value); - new_obj.geometry.coordinates = d3.geoCentroid({ - type: ft.geometry.type, coordinates: [ft.geometry.coordinates[ix_max]] }); - new_obj.properties.color = get_color(value, i); - if (color_field) new_obj.properties[color_field] = ft.properties[color_field]; - result.push([value, new_obj]); } + new_obj.properties[field] = value; + new_obj.properties[t_field_name] = propSize.scale(value); + new_obj.geometry.coordinates = d3.geoCentroid({ + type: ft.geometry.type, coordinates: [ft.geometry.coordinates[ix_max]] }); + new_obj.properties.color = get_color(value, i); + if (color_field) new_obj.properties[color_field] = ft.properties[color_field]; + result.push([value, new_obj]); } - result.sort(function (a, b) { - return abs(b[0]) - abs(a[0]); - }); - return { - type: 'FeatureCollection', - features: result.map(function (d) { - return d[1]; - }) - }; + } + result.sort(function (a, b) { + return abs(b[0]) - abs(a[0]); + }); + return { + type: 'FeatureCollection', + features: result.map(function (d) { + return d[1]; + }) }; + }; - var fields_id = getFieldsType('id', layer).concat(getFieldsType('category', layer)); - var f_ix_len = fields_id ? fields_id.length : 0; - var get_color = void 0, - col1 = void 0, - col2 = void 0; - - if (rendering_params.break_val !== undefined && rendering_params.fill_color.two) { - col1 = rendering_params.fill_color.two[0]; - col2 = rendering_params.fill_color.two[1]; - get_color = function get_color(val, ix) { - return val > rendering_params.break_val ? col2 : col1; - }; - } else if (rendering_params.fill_color instanceof Array && rendering_params.fill_color.length === nb_features) { - get_color = function get_color(val, ix) { - return rendering_params.fill_color[ix]; - }; - } else { - get_color = function get_color() { - return rendering_params.fill_color; - }; - } - geojson_pt_layer = make_geojson_pt_layer(); - })(); + var fields_id = getFieldsType('id', layer).concat(getFieldsType('category', layer)); + var f_ix_len = fields_id ? fields_id.length : 0; + var get_color = void 0, + col1 = void 0, + col2 = void 0; + + if (rendering_params.break_val !== undefined && rendering_params.fill_color.two) { + col1 = rendering_params.fill_color.two[0]; + col2 = rendering_params.fill_color.two[1]; + get_color = function get_color(val, ix) { + return val > rendering_params.break_val ? col2 : col1; + }; + } else if (rendering_params.fill_color instanceof Array && rendering_params.fill_color.length === nb_features) { + get_color = function get_color(val, ix) { + return rendering_params.fill_color[ix]; + }; + } else { + get_color = function get_color() { + return rendering_params.fill_color; + }; + } + geojson_pt_layer = make_geojson_pt_layer(); } else { geojson_pt_layer = _pt_layer; } @@ -7059,8 +7023,8 @@ function prepare_categories_array(layer_name, selected_field, col_map) { cats.push({ name: k, display_name: k, nb_elem: v[0], color: randomColor() }); }); _col_map = new Map(); - for (var _i6 = 0; _i6 < cats.length; _i6++) { - _col_map.set(cats[_i6].name, [cats[_i6].color, cats[_i6].name, cats[_i6].nb_elem]); + for (var _i7 = 0; _i7 < cats.length; _i7++) { + _col_map.set(cats[_i7].name, [cats[_i7].color, cats[_i7].name, cats[_i7].nb_elem]); } return [cats, _col_map]; } @@ -7482,15 +7446,13 @@ var render_discont = function render_discont() { create_li_layer_elem(new_layer_name, nb_ft, ['Line', 'discont'], 'result'); { - (function () { - // Only display the 50% most important values : - // TODO : reintegrate this upstream in the layer creation : - var lim = 0.5 * current_layers[new_layer_name].n_features; - result_layer.selectAll('path').style('display', function (_, i) { - return i <= lim ? null : 'none'; - }); - current_layers[new_layer_name].min_display = 0.5; - })(); + // Only display the 50% most important values : + // TODO : reintegrate this upstream in the layer creation : + var lim = 0.5 * current_layers[new_layer_name].n_features; + result_layer.selectAll('path').style('display', function (_, i) { + return i <= lim ? null : 'none'; + }); + current_layers[new_layer_name].min_display = 0.5; } d3.select('#layer_to_export').append('option').attr('value', new_layer_name).text(new_layer_name); @@ -8162,8 +8124,8 @@ function render_FlowMap(field_i, field_j, field_fij, name_join_field, disc_type, var val = +fij_values[i]; links_byId.push([i, val, sizes[serie.getClass(val)]]); } - for (var _i7 = 0; _i7 < nb_class; ++_i7) { - current_layers[new_layer_name].breaks.push([[user_breaks[_i7], user_breaks[_i7 + 1]], sizes[_i7]]); + for (var _i8 = 0; _i8 < nb_class; ++_i8) { + current_layers[new_layer_name].breaks.push([[user_breaks[_i8], user_breaks[_i8 + 1]], sizes[_i8]]); } layer_to_render.style('fill-opacity', 0).style('stroke-opacity', 0.8).style('stroke-width', function (d, i) { return links_byId[i][2]; @@ -8754,19 +8716,13 @@ var type_col = function type_col(layerName, target) { } } if (target) { - var _ret = function () { - var res = []; - Object.keys(result).forEach(function (k) { - if (result[k] === target && k !== '_uid') { - res.push(k); - } - }); - return { - v: res - }; - }(); - - if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; + var res = []; + Object.keys(result).forEach(function (k) { + if (result[k] === target && k !== '_uid') { + res.push(k); + } + }); + return res; } return result; }; @@ -9897,41 +9853,35 @@ function handle_upload_files(files, target_layer_on_add, elem) { allowOutsideClick: false }); } if (!(files.length === 1)) { - var _ret = function () { - var files_to_send = []; - Array.prototype.forEach.call(files, function (f) { - return f.name.indexOf('.shp') > -1 || f.name.indexOf('.dbf') > -1 || f.name.indexOf('.shx') > -1 || f.name.indexOf('.prj') > -1 || f.name.indexOf('.cpg') > -1 ? files_to_send.push(f) : null; + var files_to_send = []; + Array.prototype.forEach.call(files, function (f) { + return f.name.indexOf('.shp') > -1 || f.name.indexOf('.dbf') > -1 || f.name.indexOf('.shx') > -1 || f.name.indexOf('.prj') > -1 || f.name.indexOf('.cpg') > -1 ? files_to_send.push(f) : null; + }); + elem.style.border = ''; + if (target_layer_on_add && _app.targeted_layer_added) { + swal({ + title: i18next.t('app_page.common.error') + '!', + text: i18next.t('app_page.common.error_only_one'), + customClass: 'swal2_custom', + type: 'error', + allowEscapeKey: false, + allowOutsideClick: false }); + } else if (files_to_send.length >= 4 && files_to_send.length <= 6) { + handle_shapefile(files_to_send, target_layer_on_add); elem.style.border = ''; - if (target_layer_on_add && _app.targeted_layer_added) { - swal({ - title: i18next.t('app_page.common.error') + '!', - text: i18next.t('app_page.common.error_only_one'), - customClass: 'swal2_custom', - type: 'error', - allowEscapeKey: false, - allowOutsideClick: false - }); - } else if (files_to_send.length >= 4 && files_to_send.length <= 6) { - handle_shapefile(files_to_send, target_layer_on_add); - elem.style.border = ''; - } else { - // elem.style.border = '3px dashed red'; - elem.style.border = ''; - return { - v: swal({ - title: i18next.t('app_page.common.error') + '!', - text: i18next.t('app_page.common.alert_upload1'), - customClass: 'swal2_custom', - type: 'error', - allowEscapeKey: false, - allowOutsideClick: false - }) - }; - } - }(); - - if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v; + } else { + // elem.style.border = '3px dashed red'; + elem.style.border = ''; + return swal({ + title: i18next.t('app_page.common.error') + '!', + text: i18next.t('app_page.common.alert_upload1'), + customClass: 'swal2_custom', + type: 'error', + allowEscapeKey: false, + allowOutsideClick: false + }); + } } else if (files[0].name.toLowerCase().indexOf('json') > -1 || files[0].name.toLowerCase().indexOf('zip') > -1 || files[0].name.toLowerCase().indexOf('gml') > -1 || files[0].name.toLowerCase().indexOf('kml') > -1) { elem.style.border = ''; if (target_layer_on_add && _app.targeted_layer_added) { @@ -9948,42 +9898,40 @@ function handle_upload_files(files, target_layer_on_add, elem) { if (files[0].name.toLowerCase().indexOf('json') < 0) { handle_single_file(files[0], target_layer_on_add); } else { - (function () { - var rd = new FileReader(); - rd.onloadend = function () { - var tmp = void 0; - try { - tmp = JSON.parse(rd.result); - } catch (e) { - console.log(e); - return swal({ - title: i18next.t('app_page.common.error') + '!', - text: i18next.t('app_page.common.alert_upload_invalid'), - type: 'error', - customClass: 'swal2_custom', - allowOutsideClick: false, - allowEscapeKey: false - }); - } - if (tmp.type && tmp.type === 'FeatureCollection') { - handle_single_file(files[0], target_layer_on_add); - } else if (tmp.type && tmp.type === 'Topology') { - handle_TopoJSON_files(files, target_layer_on_add); - } else if (tmp.map_config && tmp.layers) { - apply_user_preferences(rd.result); - } else { - return swal({ - title: i18next.t('app_page.common.error') + '!', - text: i18next.t('app_page.common.alert_upload_invalid'), - type: 'error', - customClass: 'swal2_custom', - allowOutsideClick: false, - allowEscapeKey: false - }); - } - }; - rd.readAsText(files[0]); - })(); + var rd = new FileReader(); + rd.onloadend = function () { + var tmp = void 0; + try { + tmp = JSON.parse(rd.result); + } catch (e) { + console.log(e); + return swal({ + title: i18next.t('app_page.common.error') + '!', + text: i18next.t('app_page.common.alert_upload_invalid'), + type: 'error', + customClass: 'swal2_custom', + allowOutsideClick: false, + allowEscapeKey: false + }); + } + if (tmp.type && tmp.type === 'FeatureCollection') { + handle_single_file(files[0], target_layer_on_add); + } else if (tmp.type && tmp.type === 'Topology') { + handle_TopoJSON_files(files, target_layer_on_add); + } else if (tmp.map_config && tmp.layers) { + apply_user_preferences(rd.result); + } else { + return swal({ + title: i18next.t('app_page.common.error') + '!', + text: i18next.t('app_page.common.alert_upload_invalid'), + type: 'error', + customClass: 'swal2_custom', + allowOutsideClick: false, + allowEscapeKey: false + }); + } + }; + rd.readAsText(files[0]); } } } else if (files[0].name.toLowerCase().indexOf('.csv') > -1 || files[0].name.toLowerCase().indexOf('.tsv') > -1) { @@ -11820,7 +11768,7 @@ function prepare_available_symbols() { return xhrequest('GET', 'static/json/list_symbols.json', null).then(function (result) { var list_res = JSON.parse(result); return Promise.all(list_res.map(function (name) { - return getImgDataUrl('stiatelab/magritatic/img/svg_symbols/' + name); + return getImgDataUrl('static/img/svg_symbols/' + name); })).then(function (symbols) { for (var i = 0; i < list_res.length; i++) { default_symbols.push([list_res[i], symbols[i]]); @@ -12733,17 +12681,15 @@ function createStyleBox_Line(layer_name) { return current_layers[layer_name].linksbyId[i][2]; }); } else if (current_layers[layer_name].renderer === 'DiscLayer' && prev_min_display !== undefined) { - (function () { - current_layers[layer_name].min_display = prev_min_display; - current_layers[layer_name].size = prev_size; - current_layers[layer_name].breaks = prev_breaks; - var lim = prev_min_display !== 0 ? prev_min_display * current_layers[layer_name].n_features : -1; - selection.style('fill-opacity', 0).style('stroke', fill_prev.single).style('stroke-opacity', border_opacity).style('display', function (d, i) { - return +i <= lim ? null : 'none'; - }).style('stroke-width', function (d) { - return d.properties.prop_val; - }); - })(); + current_layers[layer_name].min_display = prev_min_display; + current_layers[layer_name].size = prev_size; + current_layers[layer_name].breaks = prev_breaks; + var lim = prev_min_display !== 0 ? prev_min_display * current_layers[layer_name].n_features : -1; + selection.style('fill-opacity', 0).style('stroke', fill_prev.single).style('stroke-opacity', border_opacity).style('display', function (d, i) { + return +i <= lim ? null : 'none'; + }).style('stroke-width', function (d) { + return d.properties.prop_val; + }); } else { if (fill_meth === 'single') { selection.style('stroke', fill_prev.single).style('stroke-opacity', border_opacity); @@ -12775,34 +12721,32 @@ function createStyleBox_Line(layer_name) { }); if (renderer === 'Categorical' || renderer === 'PropSymbolsTypo') { - (function () { - var color_field = renderer === 'Categorical' ? current_layers[layer_name].rendered_field : current_layers[layer_name].rendered_field2; - - popup.insert('p').styles({ margin: 'auto', 'text-align': 'center' }).append('button').attr('class', 'button_disc').styles({ 'font-size': '0.8em', 'text-align': 'center' }).html(i18next.t('app_page.layer_style_popup.choose_colors')).on('click', function () { - var _prepare_categories_a = prepare_categories_array(layer_name, color_field, current_layers[layer_name].color_map), - _prepare_categories_a2 = _slicedToArray(_prepare_categories_a, 2), - cats = _prepare_categories_a2[0], - _ = _prepare_categories_a2[1]; - - container.modal.hide(); - display_categorical_box(result_data[layer_name], layer_name, color_field, cats).then(function (confirmed) { - container.modal.show(); - if (confirmed) { - rendering_params = { - nb_class: confirmed[0], - color_map: confirmed[1], - colorsByFeature: confirmed[2], - renderer: 'Categorical', - rendered_field: color_field, - field: color_field - }; - selection.transition().style('stroke', function (d, i) { - return rendering_params.colorsByFeature[i]; - }); - } - }); + var color_field = renderer === 'Categorical' ? current_layers[layer_name].rendered_field : current_layers[layer_name].rendered_field2; + + popup.insert('p').styles({ margin: 'auto', 'text-align': 'center' }).append('button').attr('class', 'button_disc').styles({ 'font-size': '0.8em', 'text-align': 'center' }).html(i18next.t('app_page.layer_style_popup.choose_colors')).on('click', function () { + var _prepare_categories_a = prepare_categories_array(layer_name, color_field, current_layers[layer_name].color_map), + _prepare_categories_a2 = _slicedToArray(_prepare_categories_a, 2), + cats = _prepare_categories_a2[0], + _ = _prepare_categories_a2[1]; + + container.modal.hide(); + display_categorical_box(result_data[layer_name], layer_name, color_field, cats).then(function (confirmed) { + container.modal.show(); + if (confirmed) { + rendering_params = { + nb_class: confirmed[0], + color_map: confirmed[1], + colorsByFeature: confirmed[2], + renderer: 'Categorical', + rendered_field: color_field, + field: color_field + }; + selection.transition().style('stroke', function (d, i) { + return rendering_params.colorsByFeature[i]; + }); + } }); - })(); + }); } else if (renderer === 'Choropleth' || renderer === 'PropSymbolsChoro') { popup.append('p').styles({ margin: 'auto', 'text-align': 'center' }).append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_discretization')).on('click', function () { container.modal.hide(); @@ -12838,53 +12782,49 @@ function createStyleBox_Line(layer_name) { } if (renderer === 'Links') { - (function () { - prev_min_display = current_layers[layer_name].min_display || 0; - prev_breaks = current_layers[layer_name].breaks.slice(); - var fij_field = current_layers[layer_name].rendered_field; - var max_val = 0; - selection.each(function (d) { - if (+d.properties[fij_field] > max_val) max_val = +d.properties[fij_field]; - }); - var threshold_section = popup.append('p').attr('class', 'line_elem'); - threshold_section.append('span').html(i18next.t('app_page.layer_style_popup.display_flow_larger')); - // The legend will be updated in order to start on the minimum value displayed instead of - // using the minimum value of the serie (skipping unused class if necessary) - threshold_section.insert('input').attrs({ type: 'range', min: 0, max: max_val, step: 0.5, value: prev_min_display }).styles({ width: '58px', 'vertical-align': 'middle', display: 'inline', float: 'right', 'margin-right': '0px' }).on('change', function () { - var val = +this.value; - popup.select('#larger_than').html([' ', val, ' '].join('')); - selection.style('display', function (d) { - return +d.properties[fij_field] > val ? null : 'none'; - }); - current_layers[layer_name].min_display = val; + prev_min_display = current_layers[layer_name].min_display || 0; + prev_breaks = current_layers[layer_name].breaks.slice(); + var fij_field = current_layers[layer_name].rendered_field; + var max_val = 0; + selection.each(function (d) { + if (+d.properties[fij_field] > max_val) max_val = +d.properties[fij_field]; + }); + var threshold_section = popup.append('p').attr('class', 'line_elem'); + threshold_section.append('span').html(i18next.t('app_page.layer_style_popup.display_flow_larger')); + // The legend will be updated in order to start on the minimum value displayed instead of + // using the minimum value of the serie (skipping unused class if necessary) + threshold_section.insert('input').attrs({ type: 'range', min: 0, max: max_val, step: 0.5, value: prev_min_display }).styles({ width: '58px', 'vertical-align': 'middle', display: 'inline', float: 'right', 'margin-right': '0px' }).on('change', function () { + var val = +this.value; + popup.select('#larger_than').html([' ', val, ' '].join('')); + selection.style('display', function (d) { + return +d.properties[fij_field] > val ? null : 'none'; }); - threshold_section.insert('label').attr('id', 'larger_than').style('float', 'right').html(' ' + prev_min_display + ' '); - popup.append('p').style('text-align', 'center').append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.modify_size_class')).on('click', function () { - container.modal.hide(); - display_discretization_links_discont(layer_name, current_layers[layer_name].rendered_field, current_layers[layer_name].breaks.length, 'user_defined').then(function (result) { - container.modal.show(); - if (result) { - (function () { - var serie = result[0], - sizes = result[1].map(function (ft) { - return ft[1]; - }), - links_byId = current_layers[layer_name].linksbyId; - serie.setClassManually(result[2]); - current_layers[layer_name].breaks = result[1]; - selection.style('fill-opacity', 0).style('stroke-width', function (d, i) { - return sizes[serie.getClass(+links_byId[i][1])]; - }); - })(); - } - }); + current_layers[layer_name].min_display = val; + }); + threshold_section.insert('label').attr('id', 'larger_than').style('float', 'right').html(' ' + prev_min_display + ' '); + popup.append('p').style('text-align', 'center').append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.modify_size_class')).on('click', function () { + container.modal.hide(); + display_discretization_links_discont(layer_name, current_layers[layer_name].rendered_field, current_layers[layer_name].breaks.length, 'user_defined').then(function (result) { + container.modal.show(); + if (result) { + var serie = result[0], + sizes = result[1].map(function (ft) { + return ft[1]; + }), + links_byId = current_layers[layer_name].linksbyId; + serie.setClassManually(result[2]); + current_layers[layer_name].breaks = result[1]; + selection.style('fill-opacity', 0).style('stroke-width', function (d, i) { + return sizes[serie.getClass(+links_byId[i][1])]; + }); + } }); - })(); + }); } else if (renderer === 'DiscLayer') { prev_min_display = current_layers[layer_name].min_display || 0; prev_size = current_layers[layer_name].size.slice(); prev_breaks = current_layers[layer_name].breaks.slice(); - var max_val = Math.max.apply(null, result_data[layer_name].map(function (i) { + var _max_val = Math.max.apply(null, result_data[layer_name].map(function (i) { return i.disc_value; })); var disc_part = popup.append('p').attr('class', 'line_elem'); @@ -12904,19 +12844,17 @@ function createStyleBox_Line(layer_name) { display_discretization_links_discont(layer_name, 'disc_value', current_layers[layer_name].breaks.length, 'user_defined').then(function (result) { container.modal.show(); if (result) { - (function () { - var serie = result[0], - sizes = result[1].map(function (ft) { - return ft[1]; - }); + var serie = result[0], + sizes = result[1].map(function (ft) { + return ft[1]; + }); - serie.setClassManually(result[2]); - current_layers[layer_name].breaks = result[1]; - current_layers[layer_name].size = [sizes[0], sizes[sizes.length - 1]]; - selection.style('fill-opacity', 0).style('stroke-width', function (d, i) { - return sizes[serie.getClass(+d.properties.disc_value)]; - }); - })(); + serie.setClassManually(result[2]); + current_layers[layer_name].breaks = result[1]; + current_layers[layer_name].size = [sizes[0], sizes[sizes.length - 1]]; + selection.style('fill-opacity', 0).style('stroke-width', function (d, i) { + return sizes[serie.getClass(+d.properties.disc_value)]; + }); } }); }); @@ -12941,31 +12879,29 @@ function createStyleBox_Line(layer_name) { current_layers[layer_name]['stroke-width-const'] = val; }); } else if (renderer.startsWith('PropSymbols')) { - (function () { - var field_used = current_layers[layer_name].rendered_field; - var d_values = result_data[layer_name].map(function (f) { - return +f[field_used]; - }); - var prop_val_content = popup.append('p'); - prop_val_content.append('span').html(i18next.t('app_page.layer_style_popup.field_symbol_size', { field: current_layers[layer_name].rendered_field })); - prop_val_content.append('span').html(i18next.t('app_page.layer_style_popup.symbol_fixed_size')); - prop_val_content.insert('input').styles({ width: '60px', float: 'right' }).attrs({ type: 'number', id: 'max_size_range', min: 0.1, step: 'any', value: current_layers[layer_name].size[1] }).on('change', function () { - var f_size = +this.value; - var prop_values = prop_sizer3_e(d_values, current_layers[layer_name].size[0], f_size, 'line'); - current_layers[layer_name].size[1] = f_size; - redraw_prop_val(prop_values); - }); - prop_val_content.append('span').style('float', 'right').html('(px)'); - - var prop_val_content2 = popup.append('p').attr('class', 'line_elem'); - prop_val_content2.append('span').html(i18next.t('app_page.layer_style_popup.on_value')); - prop_val_content2.insert('input').styles({ width: '100px', float: 'right' }).attrs({ type: 'number', min: 0.1, step: 0.1, value: +current_layers[layer_name].size[0] }).on('change', function () { - var f_val = +this.value; - var prop_values = prop_sizer3_e(d_values, f_val, current_layers[layer_name].size[1], 'line'); - redraw_prop_val(prop_values); - current_layers[layer_name].size[0] = f_val; - }); - })(); + var field_used = current_layers[layer_name].rendered_field; + var d_values = result_data[layer_name].map(function (f) { + return +f[field_used]; + }); + var prop_val_content = popup.append('p'); + prop_val_content.append('span').html(i18next.t('app_page.layer_style_popup.field_symbol_size', { field: current_layers[layer_name].rendered_field })); + prop_val_content.append('span').html(i18next.t('app_page.layer_style_popup.symbol_fixed_size')); + prop_val_content.insert('input').styles({ width: '60px', float: 'right' }).attrs({ type: 'number', id: 'max_size_range', min: 0.1, step: 'any', value: current_layers[layer_name].size[1] }).on('change', function () { + var f_size = +this.value; + var prop_values = prop_sizer3_e(d_values, current_layers[layer_name].size[0], f_size, 'line'); + current_layers[layer_name].size[1] = f_size; + redraw_prop_val(prop_values); + }); + prop_val_content.append('span').style('float', 'right').html('(px)'); + + var prop_val_content2 = popup.append('p').attr('class', 'line_elem'); + prop_val_content2.append('span').html(i18next.t('app_page.layer_style_popup.on_value')); + prop_val_content2.insert('input').styles({ width: '100px', float: 'right' }).attrs({ type: 'number', min: 0.1, step: 0.1, value: +current_layers[layer_name].size[0] }).on('change', function () { + var f_val = +this.value; + var prop_values = prop_sizer3_e(d_values, f_val, current_layers[layer_name].size[1], 'line'); + redraw_prop_val(prop_values); + current_layers[layer_name].size[0] = f_val; + }); } make_generate_labels_section(popup, layer_name); @@ -13107,59 +13043,55 @@ function createStyleBox(layer_name) { if (current_layers[layer_name].colors_breaks === undefined && renderer !== 'Categorical') { if (current_layers[layer_name].targeted || current_layers[layer_name].is_result) { - (function () { - var fields = getFieldsType('category', null, fields_layer); - var fill_method = popup.append('p').html(i18next.t('app_page.layer_style_popup.fill_color')).insert('select'); - [[i18next.t('app_page.layer_style_popup.single_color'), 'single'], [i18next.t('app_page.layer_style_popup.categorical_color'), 'categorical'], [i18next.t('app_page.layer_style_popup.random_color'), 'random']].forEach(function (d, i) { - fill_method.append('option').text(d[0]).attr('value', d[1]); - }); - popup.append('div').attrs({ id: 'fill_color_section' }); - fill_method.on('change', function () { - d3.select('#fill_color_section').html('').on('click', null); - if (this.value === 'single') { - make_single_color_menu(layer_name, fill_prev); - } else if (this.value === 'categorical') { - make_categorical_color_menu(fields, layer_name, fill_prev); - } else if (this.value === 'random') { - make_random_color(layer_name); - } - }); - setSelected(fill_method.node(), Object.getOwnPropertyNames(fill_prev)[0]); - })(); + var fields = getFieldsType('category', null, fields_layer); + var fill_method = popup.append('p').html(i18next.t('app_page.layer_style_popup.fill_color')).insert('select'); + [[i18next.t('app_page.layer_style_popup.single_color'), 'single'], [i18next.t('app_page.layer_style_popup.categorical_color'), 'categorical'], [i18next.t('app_page.layer_style_popup.random_color'), 'random']].forEach(function (d, i) { + fill_method.append('option').text(d[0]).attr('value', d[1]); + }); + popup.append('div').attrs({ id: 'fill_color_section' }); + fill_method.on('change', function () { + d3.select('#fill_color_section').html('').on('click', null); + if (this.value === 'single') { + make_single_color_menu(layer_name, fill_prev); + } else if (this.value === 'categorical') { + make_categorical_color_menu(fields, layer_name, fill_prev); + } else if (this.value === 'random') { + make_random_color(layer_name); + } + }); + setSelected(fill_method.node(), Object.getOwnPropertyNames(fill_prev)[0]); } else { popup.append('div').attrs({ id: 'fill_color_section' }); make_single_color_menu(layer_name, fill_prev); } } else if (renderer === 'Categorical') { - (function () { - var rendered_field = current_layers[layer_name].rendered_field; + var rendered_field = current_layers[layer_name].rendered_field; - popup.insert('p').styles({ margin: 'auto', 'text-align': 'center' }).append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_colors')).on('click', function () { - container.modal.hide(); + popup.insert('p').styles({ margin: 'auto', 'text-align': 'center' }).append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_colors')).on('click', function () { + container.modal.hide(); - var _prepare_categories_a3 = prepare_categories_array(layer_name, rendered_field, current_layers[layer_name].color_map), - _prepare_categories_a4 = _slicedToArray(_prepare_categories_a3, 2), - cats = _prepare_categories_a4[0], - _ = _prepare_categories_a4[1]; + var _prepare_categories_a3 = prepare_categories_array(layer_name, rendered_field, current_layers[layer_name].color_map), + _prepare_categories_a4 = _slicedToArray(_prepare_categories_a3, 2), + cats = _prepare_categories_a4[0], + _ = _prepare_categories_a4[1]; - display_categorical_box(result_data[layer_name], layer_name, rendered_field, cats).then(function (confirmed) { - container.modal.show(); - if (confirmed) { - rendering_params = { - nb_class: confirmed[0], - color_map: confirmed[1], - colorsByFeature: confirmed[2], - renderer: 'Categorical', - rendered_field: rendered_field, - field: rendered_field - }; - selection.transition().style('fill', function (d, i) { - return rendering_params.colorsByFeature[i]; - }); - } - }); + display_categorical_box(result_data[layer_name], layer_name, rendered_field, cats).then(function (confirmed) { + container.modal.show(); + if (confirmed) { + rendering_params = { + nb_class: confirmed[0], + color_map: confirmed[1], + colorsByFeature: confirmed[2], + renderer: 'Categorical', + rendered_field: rendered_field, + field: rendered_field + }; + selection.transition().style('fill', function (d, i) { + return rendering_params.colorsByFeature[i]; + }); + } }); - })(); + }); } else if (renderer === 'Choropleth') { popup.append('p').styles({ margin: 'auto', 'text-align': 'center' }).append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_discretization')).on('click', function () { container.modal.hide(); @@ -13188,35 +13120,33 @@ function createStyleBox(layer_name) { }); }); } else if (renderer === 'Gridded') { - (function () { - var field_to_discretize = current_layers[layer_name].rendered_field; - popup.append('p').style('margin', 'auto').style('text-align', 'center').append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_discretization')).on('click', function () { - container.modal.hide(); - display_discretization(layer_name, field_to_discretize, current_layers[layer_name].colors_breaks.length, - // "quantiles", - current_layers[layer_name].options_disc).then(function (confirmed) { - container.modal.show(); - if (confirmed) { - rendering_params = { - nb_class: confirmed[0], - type: confirmed[1], - breaks: confirmed[2], - colors: confirmed[3], - colorsByFeature: confirmed[4], - schema: confirmed[5], - no_data: confirmed[6], - renderer: 'Choropleth', - field: field_to_discretize, - extra_options: confirmed[7] - }; - // let opacity_val = fill_opacity_section ? +fill_opacity_section.node().value : 0.9 - selection.transition().style('fill', function (d, i) { - return rendering_params.colorsByFeature[i]; - }); - } - }); + var field_to_discretize = current_layers[layer_name].rendered_field; + popup.append('p').style('margin', 'auto').style('text-align', 'center').append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_discretization')).on('click', function () { + container.modal.hide(); + display_discretization(layer_name, field_to_discretize, current_layers[layer_name].colors_breaks.length, + // "quantiles", + current_layers[layer_name].options_disc).then(function (confirmed) { + container.modal.show(); + if (confirmed) { + rendering_params = { + nb_class: confirmed[0], + type: confirmed[1], + breaks: confirmed[2], + colors: confirmed[3], + colorsByFeature: confirmed[4], + schema: confirmed[5], + no_data: confirmed[6], + renderer: 'Choropleth', + field: field_to_discretize, + extra_options: confirmed[7] + }; + // let opacity_val = fill_opacity_section ? +fill_opacity_section.node().value : 0.9 + selection.transition().style('fill', function (d, i) { + return rendering_params.colorsByFeature[i]; + }); + } }); - })(); + }); } var fill_opacity_section = popup.append('p').attr('class', 'line_elem'); @@ -13430,54 +13360,52 @@ function make_generate_labels_graticule_section(parent_node) { function make_generate_labels_section(parent_node, layer_name) { var _fields = get_fields_name(layer_name) || []; if (_fields && _fields.length > 0) { - (function () { - var labels_section = parent_node.append('p'); - var input_fields = {}; - for (var i = 0; i < _fields.length; i++) { - input_fields[_fields[i]] = _fields[i]; - } - labels_section.append('span').attr('id', 'generate_labels').styles({ cursor: 'pointer', 'margin-top': '15px' }).html(i18next.t('app_page.layer_style_popup.generate_labels')).on('mouseover', function () { - this.style.fontWeight = 'bold'; - }).on('mouseout', function () { - this.style.fontWeight = ''; - }).on('click', function () { - swal({ - title: '', - text: i18next.t('app_page.layer_style_popup.field_label'), - type: 'question', - customClass: 'swal2_custom', - showCancelButton: true, - showCloseButton: false, - allowEscapeKey: false, - allowOutsideClick: false, - confirmButtonColor: '#DD6B55', - confirmButtonText: i18next.t('app_page.common.confirm'), - input: 'select', - inputPlaceholder: i18next.t('app_page.common.field'), - inputOptions: input_fields, - inputValidator: function inputValidator(value) { - return new Promise(function (resolve, reject) { - if (_fields.indexOf(value) < 0) { - reject(i18next.t('app_page.common.no_value')); - } else { - render_label(layer_name, { - label_field: value, - color: '#000', - font: 'Arial,Helvetica,sans-serif', - ref_font_size: 12, - uo_layer_name: ['Labels', value, layer_name].join('_') - }); - resolve(); - } - }); - } - }).then(function (value) { - console.log(value); - }, function (dismiss) { - console.log(dismiss); - }); + var labels_section = parent_node.append('p'); + var input_fields = {}; + for (var i = 0; i < _fields.length; i++) { + input_fields[_fields[i]] = _fields[i]; + } + labels_section.append('span').attr('id', 'generate_labels').styles({ cursor: 'pointer', 'margin-top': '15px' }).html(i18next.t('app_page.layer_style_popup.generate_labels')).on('mouseover', function () { + this.style.fontWeight = 'bold'; + }).on('mouseout', function () { + this.style.fontWeight = ''; + }).on('click', function () { + swal({ + title: '', + text: i18next.t('app_page.layer_style_popup.field_label'), + type: 'question', + customClass: 'swal2_custom', + showCancelButton: true, + showCloseButton: false, + allowEscapeKey: false, + allowOutsideClick: false, + confirmButtonColor: '#DD6B55', + confirmButtonText: i18next.t('app_page.common.confirm'), + input: 'select', + inputPlaceholder: i18next.t('app_page.common.field'), + inputOptions: input_fields, + inputValidator: function inputValidator(value) { + return new Promise(function (resolve, reject) { + if (_fields.indexOf(value) < 0) { + reject(i18next.t('app_page.common.no_value')); + } else { + render_label(layer_name, { + label_field: value, + color: '#000', + font: 'Arial,Helvetica,sans-serif', + ref_font_size: 12, + uo_layer_name: ['Labels', value, layer_name].join('_') + }); + resolve(); + } + }); + } + }).then(function (value) { + console.log(value); + }, function (dismiss) { + console.log(dismiss); }); - })(); + }); } } @@ -13788,117 +13716,109 @@ function createStyleBox_ProbSymbol(layer_name) { }); if (type_method === 'PropSymbolsChoro') { - (function () { - var field_color = current_layers[layer_name].rendered_field2; - popup.append('p').styles({ margin: 'auto', 'text-align': 'center' }).html(i18next.t('app_page.layer_style_popup.field_symbol_color', { field: field_color })).append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_discretization')).on('click', function () { - container.modal.hide(); - display_discretization(layer_name, field_color, current_layers[layer_name].colors_breaks.length, - // "quantiles", - current_layers[layer_name].options_disc).then(function (confirmed) { - container.modal.show(); - if (confirmed) { - rendering_params = { - nb_class: confirmed[0], - type: confirmed[1], - breaks: confirmed[2], - colors: confirmed[3], - colorsByFeature: confirmed[4], - schema: confirmed[5], - no_data: confirmed[6], - renderer: 'PropSymbolsChoro', - field: field_color, - extra_options: confirmed[7] - }; - selection.style('fill', function (d, i) { - return rendering_params.colorsByFeature[i]; - }); - } - }); + var field_color = current_layers[layer_name].rendered_field2; + popup.append('p').styles({ margin: 'auto', 'text-align': 'center' }).html(i18next.t('app_page.layer_style_popup.field_symbol_color', { field: field_color })).append('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_discretization')).on('click', function () { + container.modal.hide(); + display_discretization(layer_name, field_color, current_layers[layer_name].colors_breaks.length, + // "quantiles", + current_layers[layer_name].options_disc).then(function (confirmed) { + container.modal.show(); + if (confirmed) { + rendering_params = { + nb_class: confirmed[0], + type: confirmed[1], + breaks: confirmed[2], + colors: confirmed[3], + colorsByFeature: confirmed[4], + schema: confirmed[5], + no_data: confirmed[6], + renderer: 'PropSymbolsChoro', + field: field_color, + extra_options: confirmed[7] + }; + selection.style('fill', function (d, i) { + return rendering_params.colorsByFeature[i]; + }); + } }); - })(); + }); } else if (current_layers[layer_name].break_val !== undefined) { - (function () { - var fill_color_section = popup.append('div').attr('id', 'fill_color_section'); - fill_color_section.append('p').style('text-align', 'center').html(i18next.t('app_page.layer_style_popup.color_break')); - var p2 = fill_color_section.append('p').style('display', 'inline'); - var col1 = p2.insert('input').attr('type', 'color').attr('id', 'col1').attr('value', current_layers[layer_name].fill_color.two[0]).on('change', function () { - var _this = this; - - var new_break_val = +b_val.node().value; - current_layers[layer_name].fill_color.two[0] = this.value; - selection.transition().style('fill', function (d, i) { - return d_values[i] > new_break_val ? col2.node().value : _this.value; - }); + var fill_color_section = popup.append('div').attr('id', 'fill_color_section'); + fill_color_section.append('p').style('text-align', 'center').html(i18next.t('app_page.layer_style_popup.color_break')); + var p2 = fill_color_section.append('p').style('display', 'inline'); + var col1 = p2.insert('input').attr('type', 'color').attr('id', 'col1').attr('value', current_layers[layer_name].fill_color.two[0]).on('change', function () { + var _this = this; + + var new_break_val = +b_val.node().value; + current_layers[layer_name].fill_color.two[0] = this.value; + selection.transition().style('fill', function (d, i) { + return d_values[i] > new_break_val ? col2.node().value : _this.value; }); - var col2 = p2.insert('input').attr('type', 'color').attr('id', 'col2').attr('value', current_layers[layer_name].fill_color.two[1]).on('change', function () { - var _this2 = this; + }); + var col2 = p2.insert('input').attr('type', 'color').attr('id', 'col2').attr('value', current_layers[layer_name].fill_color.two[1]).on('change', function () { + var _this2 = this; - var new_break_val = +b_val.node().value; - current_layers[layer_name].fill_color.two[1] = this.value; - selection.transition().style('fill', function (d, i) { - return d_values[i] > new_break_val ? _this2.value : col1.node().value; - }); + var new_break_val = +b_val.node().value; + current_layers[layer_name].fill_color.two[1] = this.value; + selection.transition().style('fill', function (d, i) { + return d_values[i] > new_break_val ? _this2.value : col1.node().value; }); - fill_color_section.insert('span').html(i18next.t('app_page.layer_style_popup.break_value')); - var b_val = fill_color_section.insert('input').attrs({ type: 'number', value: current_layers[layer_name].break_val }).style('width', '75px').on('change', function () { - var new_break_val = +this.value; - current_layers[layer_name].break_val = new_break_val; - selection.transition().style('fill', function (d, i) { - return d_values[i] > new_break_val ? col2.node().value : col1.node().value; - }); + }); + fill_color_section.insert('span').html(i18next.t('app_page.layer_style_popup.break_value')); + var b_val = fill_color_section.insert('input').attrs({ type: 'number', value: current_layers[layer_name].break_val }).style('width', '75px').on('change', function () { + var new_break_val = +this.value; + current_layers[layer_name].break_val = new_break_val; + selection.transition().style('fill', function (d, i) { + return d_values[i] > new_break_val ? col2.node().value : col1.node().value; }); - })(); + }); } else if (type_method === 'PropSymbolsTypo') { - (function () { - var field_color = current_layers[layer_name].rendered_field2; - popup.append('p').style('margin', 'auto').html(i18next.t('app_page.layer_style_popup.field_symbol_color', { field: field_color })); - popup.append('p').style('text-align', 'center').insert('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_colors')).on('click', function () { - var _prepare_categories_a5 = prepare_categories_array(layer_name, field_color, current_layers[layer_name].color_map), - _prepare_categories_a6 = _slicedToArray(_prepare_categories_a5, 2), - cats = _prepare_categories_a6[0], - _ = _prepare_categories_a6[1]; - - container.modal.hide(); - display_categorical_box(result_data[layer_name], layer_name, field_color, cats).then(function (confirmed) { - container.modal.show(); - if (confirmed) { - rendering_params = { - nb_class: confirmed[0], - color_map: confirmed[1], - colorsByFeature: confirmed[2], - renderer: 'Categorical', - rendered_field: field_color, - field: field_color - }; - selection.style('fill', function (d, i) { - return rendering_params.colorsByFeature[i]; - }); - } - }); - }); - })(); - } else { - (function () { - var fields_all = type_col2(result_data[layer_name]), - fields = getFieldsType('category', null, fields_all), - fill_method = popup.append('p').html(i18next.t('app_page.layer_style_popup.fill_color')).insert('select'); + var _field_color = current_layers[layer_name].rendered_field2; + popup.append('p').style('margin', 'auto').html(i18next.t('app_page.layer_style_popup.field_symbol_color', { field: _field_color })); + popup.append('p').style('text-align', 'center').insert('button').attr('class', 'button_disc').html(i18next.t('app_page.layer_style_popup.choose_colors')).on('click', function () { + var _prepare_categories_a5 = prepare_categories_array(layer_name, _field_color, current_layers[layer_name].color_map), + _prepare_categories_a6 = _slicedToArray(_prepare_categories_a5, 2), + cats = _prepare_categories_a6[0], + _ = _prepare_categories_a6[1]; - [[i18next.t('app_page.layer_style_popup.single_color'), 'single'], [i18next.t('app_page.layer_style_popup.random_color'), 'random']].forEach(function (d) { - fill_method.append('option').text(d[0]).attr('value', d[1]); - }); - popup.append('div').attr('id', 'fill_color_section'); - fill_method.on('change', function () { - popup.select('#fill_color_section').html('').on('click', null); - if (this.value === 'single') { - make_single_color_menu(layer_name, fill_prev, type_symbol); - map.select(g_lyr_name).selectAll(type_symbol).transition().style('fill', fill_prev.single); - current_layers[layer_name].fill_color = cloneObj(fill_prev); - } else if (this.value === 'random') { - make_random_color(layer_name, type_symbol); + container.modal.hide(); + display_categorical_box(result_data[layer_name], layer_name, _field_color, cats).then(function (confirmed) { + container.modal.show(); + if (confirmed) { + rendering_params = { + nb_class: confirmed[0], + color_map: confirmed[1], + colorsByFeature: confirmed[2], + renderer: 'Categorical', + rendered_field: _field_color, + field: _field_color + }; + selection.style('fill', function (d, i) { + return rendering_params.colorsByFeature[i]; + }); } }); - setSelected(fill_method.node(), Object.getOwnPropertyNames(fill_prev)[0]); - })(); + }); + } else { + var fields_all = type_col2(result_data[layer_name]), + fields = getFieldsType('category', null, fields_all), + fill_method = popup.append('p').html(i18next.t('app_page.layer_style_popup.fill_color')).insert('select'); + + [[i18next.t('app_page.layer_style_popup.single_color'), 'single'], [i18next.t('app_page.layer_style_popup.random_color'), 'random']].forEach(function (d) { + fill_method.append('option').text(d[0]).attr('value', d[1]); + }); + popup.append('div').attr('id', 'fill_color_section'); + fill_method.on('change', function () { + popup.select('#fill_color_section').html('').on('click', null); + if (this.value === 'single') { + make_single_color_menu(layer_name, fill_prev, type_symbol); + map.select(g_lyr_name).selectAll(type_symbol).transition().style('fill', fill_prev.single); + current_layers[layer_name].fill_color = cloneObj(fill_prev); + } else if (this.value === 'random') { + make_random_color(layer_name, type_symbol); + } + }); + setSelected(fill_method.node(), Object.getOwnPropertyNames(fill_prev)[0]); } var fill_opct_section = popup.append('p').attr('class', 'line_elem'); @@ -16859,19 +16779,17 @@ function createLegend_choro(layer, field, title, subtitle) { } if (current_layers[layer].renderer.indexOf('Choropleth') > -1 || current_layers[layer].renderer.indexOf('PropSymbolsChoro') > -1 || current_layers[layer].renderer.indexOf('Gridded') > -1 || current_layers[layer].renderer.indexOf('Stewart') > -1) { - (function () { - var tmp_pos = void 0; - legend_elems.append('text').attr('x', xpos + boxwidth * 2 + 10).attr('y', function (d, i) { - tmp_pos = y_pos2 + i * boxheight + i * boxgap; - return tmp_pos; - }).styles({ 'alignment-baseline': 'middle', 'font-size': '10px' }).text(function (d) { - return round_value(+d.value.split(' - ')[1], rounding_precision).toLocaleString(); - }); + var tmp_pos = void 0; + legend_elems.append('text').attr('x', xpos + boxwidth * 2 + 10).attr('y', function (d, i) { + tmp_pos = y_pos2 + i * boxheight + i * boxgap; + return tmp_pos; + }).styles({ 'alignment-baseline': 'middle', 'font-size': '10px' }).text(function (d) { + return round_value(+d.value.split(' - ')[1], rounding_precision).toLocaleString(); + }); - legend_root.insert('text').attr('id', 'lgd_choro_min_val').attr('x', xpos + boxwidth * 2 + 10).attr('y', tmp_pos + boxheight + boxgap).styles({ 'alignment-baseline': 'middle', 'font-size': '10px' }).text(function (d) { - return round_value(data_colors_label[data_colors_label.length - 1].value.split(' - ')[0], rounding_precision).toLocaleString(); - }); - })(); + legend_root.insert('text').attr('id', 'lgd_choro_min_val').attr('x', xpos + boxwidth * 2 + 10).attr('y', tmp_pos + boxheight + boxgap).styles({ 'alignment-baseline': 'middle', 'font-size': '10px' }).text(function (d) { + return round_value(data_colors_label[data_colors_label.length - 1].value.split(' - ')[0], rounding_precision).toLocaleString(); + }); } else { legend_elems.append('text').attr('x', xpos + boxwidth * 2 + 10).attr('y', function (d, i) { return y_pos2 + i * boxheight + i * boxgap + boxheight * 2 / 3; @@ -17143,33 +17061,29 @@ function createlegendEditBox(legend_id, layer_name) { max_nb_decimals = get_max_nb_dec(layer_name); max_nb_left = get_max_nb_left_sep(layer_name); } else { - (function () { - var nb_dec = [], - nb_left = []; - legend_boxes.each(function (d) { - nb_dec.push(get_nb_decimals(d.value)); - nb_left.push(get_nb_left_separator(d.value)); - }); - max_nb_decimals = max_fast(nb_dec); - max_nb_left = min_fast(nb_left); - })(); + var nb_dec = [], + nb_left = []; + legend_boxes.each(function (d) { + nb_dec.push(get_nb_decimals(d.value)); + nb_left.push(get_nb_left_separator(d.value)); + }); + max_nb_decimals = max_fast(nb_dec); + max_nb_left = min_fast(nb_left); } max_nb_left = max_nb_left > 2 ? max_nb_left : 2; if (max_nb_decimals > 0 || max_nb_left >= 2) { if (legend_node.getAttribute('rounding_precision')) { current_nb_dec = legend_node.getAttribute('rounding_precision'); } else { - (function () { - var nbs = [], - nb_dec = []; - legend_boxes.each(function () { - nbs.push(this.textContent); - }); - for (var i = 0; i < nbs.length; i++) { - nb_dec.push(get_nb_decimals(nbs[i])); - } - current_nb_dec = max_fast(nb_dec); - })(); + var nbs = [], + _nb_dec = []; + legend_boxes.each(function () { + nbs.push(this.textContent); + }); + for (var i = 0; i < nbs.length; i++) { + _nb_dec.push(get_nb_decimals(nbs[i])); + } + current_nb_dec = max_fast(_nb_dec); } if (max_nb_decimals > +current_nb_dec && max_nb_decimals > 18) { max_nb_decimals = 18; @@ -17182,21 +17096,21 @@ function createlegendEditBox(legend_id, layer_name) { d3.select('#precision_change_txt').html(nb_float); legend_node.setAttribute('rounding_precision', nb_float); if (legend_id === 'legend_root') { - for (var i = 0; i < legend_boxes._groups[0].length; i++) { - var values = legend_boxes._groups[0][i].__data__.value.split(' - '); - legend_boxes._groups[0][i].innerHTML = round_value(+values[1], nb_float).toLocaleString(); + for (var _i = 0; _i < legend_boxes._groups[0].length; _i++) { + var values = legend_boxes._groups[0][_i].__data__.value.split(' - '); + legend_boxes._groups[0][_i].innerHTML = round_value(+values[1], nb_float).toLocaleString(); } var min_val = +legend_boxes._groups[0][legend_boxes._groups[0].length - 1].__data__.value.split(' - ')[0]; legend_node.querySelector('#lgd_choro_min_val').innerHTML = round_value(min_val, nb_float).toLocaleString(); } else if (legend_id === 'legend_root_symbol') { - for (var _i = 0; _i < legend_boxes._groups[0].length; _i++) { - var value = legend_boxes._groups[0][_i].__data__.value; - legend_boxes._groups[0][_i].innerHTML = round_value(+value, nb_float).toLocaleString(); + for (var _i2 = 0; _i2 < legend_boxes._groups[0].length; _i2++) { + var value = legend_boxes._groups[0][_i2].__data__.value; + legend_boxes._groups[0][_i2].innerHTML = round_value(+value, nb_float).toLocaleString(); } } else if (legend_id === 'legend_root_lines_class') { - for (var _i2 = 0; _i2 < legend_boxes._groups[0].length; _i2++) { - var _value = legend_boxes._groups[0][_i2].__data__.value[1]; - legend_boxes._groups[0][_i2].innerHTML = round_value(+_value, nb_float).toLocaleString(); + for (var _i3 = 0; _i3 < legend_boxes._groups[0].length; _i3++) { + var _value = legend_boxes._groups[0][_i3].__data__.value[1]; + legend_boxes._groups[0][_i3].innerHTML = round_value(+_value, nb_float).toLocaleString(); } var _min_val = +legend_boxes._groups[0][legend_boxes._groups[0].length - 1].__data__.value[0]; legend_node.querySelector('#lgd_choro_min_val').innerHTML = round_value(_min_val, nb_float).toLocaleString(); @@ -18169,113 +18083,109 @@ function apply_user_preferences(json_pref) { // This is a layer for which a geometries have been stocked as TopoJSON : if (_layer.topo_geom) { - (function () { - var tmp = { - skip_alert: true, - choosed_name: layer_name, - skip_rescale: true - }; - if (_layer.targeted) { - tmp.target_layer_on_add = true; - } else if (_layer.renderer) { - tmp.func_name = func_name_corresp.get(_layer.renderer); - tmp.result_layer_on_add = true; - } - if (_layer.pointRadius !== undefined) { - tmp.pointRadius = _layer.pointRadius; - } - // handle_reload_TopoJSON(_layer.topo_geom, tmp).then(function(n_layer_name){ - layer_name = handle_reload_TopoJSON(_layer.topo_geom, tmp); - var current_layer_prop = current_layers[layer_name]; - if (_layer.renderer) { - current_layer_prop.renderer = _layer.renderer; - } - if (_layer.targeted && _layer.fields_type) { - current_layer_prop.fields_type = _layer.fields_type; - document.getElementById('btn_type_fields').removeAttribute('disabled'); - } - layer_id = _app.layer_to_id.get(layer_name); - var layer_selec = map.select('#' + layer_id); - - current_layer_prop.rendered_field = _layer.rendered_field; - - if (_layer.ref_layer_name) current_layer_prop.ref_layer_name = _layer.ref_layer_name; - if (_layer.size) current_layer_prop.size = _layer.size; - if (_layer.colors_breaks) current_layer_prop.colors_breaks = _layer.colors_breaks; - if (_layer.options_disc) current_layer_prop.options_disc = _layer.options_disc; - if (_layer.fill_color) current_layer_prop.fill_color = _layer.fill_color; - if (_layer.color_palette) current_layer_prop.color_palette = _layer.color_palette; - if (_layer.renderer) { - if (['Choropleth', 'Stewart', 'Gridded'].indexOf(_layer.renderer) > -1) { - layer_selec.selectAll('path').style(current_layer_prop.type === 'Line' ? 'stroke' : 'fill', function (d, j) { - return _layer.color_by_id[j]; - }); - } else if (_layer.renderer === 'Links') { - current_layer_prop.linksbyId = _layer.linksbyId; - current_layer_prop.min_display = _layer.min_display; - current_layer_prop.breaks = _layer.breaks; - layer_selec.selectAll('path').styles(function (d, j) { - return { - display: +d.properties.fij > _layer.min_display ? null : 'none', - stroke: _layer.fill_color.single, - 'stroke-width': current_layer_prop.linksbyId[j][2] - }; - }); - } else if (_layer.renderer === 'DiscLayer') { - (function () { - current_layer_prop.min_display = _layer.min_display || 0; - current_layer_prop.breaks = _layer.breaks; - var lim = current_layer_prop.min_display !== 0 ? current_layer_prop.min_display * current_layers[layer_name].n_features : -1; - layer_selec.selectAll('path').styles(function (d, j) { - return { - fill: 'none', - stroke: _layer.fill_color.single, - display: j <= lim ? null : 'none', - 'stroke-width': d.properties.prop_val - }; - }); - })(); - } else if (_layer.renderer.startsWith('Categorical')) { - render_categorical(layer_name, { - colorByFeature: _layer.color_by_id, - color_map: new Map(_layer.color_map), - rendered_field: _layer.rendered_field, - renderer: 'Categorical' - }); - } - if (_layer.legend) { - rehandle_legend(layer_name, _layer.legend); - } - } - if (_layer.stroke_color) { - layer_selec.selectAll('path').style('stroke', _layer.stroke_color); - } - if (_layer['stroke-width-const']) { - current_layer_prop['stroke-width-const'] = _layer['stroke-width-const']; - layer_selec.style('stroke-width', _layer['stroke-width-const']); - } - if (_layer.fixed_stroke) { - current_layer_prop.fixed_stroke = _layer.fixed_stroke; - } - if (_layer.fill_color && _layer.fill_color.single && _layer.renderer !== 'DiscLayer') { - layer_selec.selectAll('path').style(current_layer_prop.type !== 'Line' ? 'fill' : 'stroke', _layer.fill_color.single); - } else if (_layer.fill_color && _layer.fill_color.random) { - layer_selec.selectAll('path').style(current_layer_prop.type !== 'Line' ? 'fill' : 'stroke', function () { - return Colors.names[Colors.random()]; + var tmp = { + skip_alert: true, + choosed_name: layer_name, + skip_rescale: true + }; + if (_layer.targeted) { + tmp.target_layer_on_add = true; + } else if (_layer.renderer) { + tmp.func_name = func_name_corresp.get(_layer.renderer); + tmp.result_layer_on_add = true; + } + if (_layer.pointRadius !== undefined) { + tmp.pointRadius = _layer.pointRadius; + } + // handle_reload_TopoJSON(_layer.topo_geom, tmp).then(function(n_layer_name){ + layer_name = handle_reload_TopoJSON(_layer.topo_geom, tmp); + var current_layer_prop = current_layers[layer_name]; + if (_layer.renderer) { + current_layer_prop.renderer = _layer.renderer; + } + if (_layer.targeted && _layer.fields_type) { + current_layer_prop.fields_type = _layer.fields_type; + document.getElementById('btn_type_fields').removeAttribute('disabled'); + } + layer_id = _app.layer_to_id.get(layer_name); + var layer_selec = map.select('#' + layer_id); + + current_layer_prop.rendered_field = _layer.rendered_field; + + if (_layer.ref_layer_name) current_layer_prop.ref_layer_name = _layer.ref_layer_name; + if (_layer.size) current_layer_prop.size = _layer.size; + if (_layer.colors_breaks) current_layer_prop.colors_breaks = _layer.colors_breaks; + if (_layer.options_disc) current_layer_prop.options_disc = _layer.options_disc; + if (_layer.fill_color) current_layer_prop.fill_color = _layer.fill_color; + if (_layer.color_palette) current_layer_prop.color_palette = _layer.color_palette; + if (_layer.renderer) { + if (['Choropleth', 'Stewart', 'Gridded'].indexOf(_layer.renderer) > -1) { + layer_selec.selectAll('path').style(current_layer_prop.type === 'Line' ? 'stroke' : 'fill', function (d, j) { + return _layer.color_by_id[j]; + }); + } else if (_layer.renderer === 'Links') { + current_layer_prop.linksbyId = _layer.linksbyId; + current_layer_prop.min_display = _layer.min_display; + current_layer_prop.breaks = _layer.breaks; + layer_selec.selectAll('path').styles(function (d, j) { + return { + display: +d.properties.fij > _layer.min_display ? null : 'none', + stroke: _layer.fill_color.single, + 'stroke-width': current_layer_prop.linksbyId[j][2] + }; + }); + } else if (_layer.renderer === 'DiscLayer') { + current_layer_prop.min_display = _layer.min_display || 0; + current_layer_prop.breaks = _layer.breaks; + var lim = current_layer_prop.min_display !== 0 ? current_layer_prop.min_display * current_layers[layer_name].n_features : -1; + layer_selec.selectAll('path').styles(function (d, j) { + return { + fill: 'none', + stroke: _layer.fill_color.single, + display: j <= lim ? null : 'none', + 'stroke-width': d.properties.prop_val + }; + }); + } else if (_layer.renderer.startsWith('Categorical')) { + render_categorical(layer_name, { + colorByFeature: _layer.color_by_id, + color_map: new Map(_layer.color_map), + rendered_field: _layer.rendered_field, + renderer: 'Categorical' }); } - - layer_selec.selectAll('path').styles({ 'fill-opacity': fill_opacity, 'stroke-opacity': stroke_opacity }); - if (_layer.visible === 'hidden') { - handle_active_layer(layer_name); - } - if (_layer.filter_shadow) { - createDropShadow(layer_id); + if (_layer.legend) { + rehandle_legend(layer_name, _layer.legend); } - done += 1; - if (done === map_config.n_layers) set_final_param(); - // }); - })(); + } + if (_layer.stroke_color) { + layer_selec.selectAll('path').style('stroke', _layer.stroke_color); + } + if (_layer['stroke-width-const']) { + current_layer_prop['stroke-width-const'] = _layer['stroke-width-const']; + layer_selec.style('stroke-width', _layer['stroke-width-const']); + } + if (_layer.fixed_stroke) { + current_layer_prop.fixed_stroke = _layer.fixed_stroke; + } + if (_layer.fill_color && _layer.fill_color.single && _layer.renderer !== 'DiscLayer') { + layer_selec.selectAll('path').style(current_layer_prop.type !== 'Line' ? 'fill' : 'stroke', _layer.fill_color.single); + } else if (_layer.fill_color && _layer.fill_color.random) { + layer_selec.selectAll('path').style(current_layer_prop.type !== 'Line' ? 'fill' : 'stroke', function () { + return Colors.names[Colors.random()]; + }); + } + + layer_selec.selectAll('path').styles({ 'fill-opacity': fill_opacity, 'stroke-opacity': stroke_opacity }); + if (_layer.visible === 'hidden') { + handle_active_layer(layer_name); + } + if (_layer.filter_shadow) { + createDropShadow(layer_id); + } + done += 1; + if (done === map_config.n_layers) set_final_param(); + // }); } else if (layer_name === 'World') { add_simplified_land_layer({ skip_rescale: true, @@ -18360,14 +18270,14 @@ function apply_user_preferences(json_pref) { } current_layers[layer_name]['stroke-width-const'] = _layer['stroke-width-const']; layer_id = _app.layer_to_id.get(layer_name); - var layer_selec = map.select('#' + layer_id).selectAll(_layer.symbol); - layer_selec.styles({ + var _layer_selec = map.select('#' + layer_id).selectAll(_layer.symbol); + _layer_selec.styles({ 'stroke-width': _layer['stroke-width-const'] + 'px', 'fill-opacity': fill_opacity, 'stroke-opacity': stroke_opacity }); if (_layer.fill_color.random) { - layer_selec.style('fill', function (_) { + _layer_selec.style('fill', function (_) { return Colors.names[Colors.random()]; }); } @@ -18410,63 +18320,61 @@ function apply_user_preferences(json_pref) { at_end.push([restorePreviousPosWaffle, layer_id, _layer.current_position, _layer.symbol]); } } else if (_layer.renderer && _layer.renderer.startsWith('TypoSymbol')) { - (function () { - var symbols_map = new Map(_layer.symbols_map); - var new_layer_data = { - type: 'FeatureCollection', - features: _layer.current_state.map(function (d) { - return d.data; - }) - }; + var symbols_map = new Map(_layer.symbols_map); + var new_layer_data = { + type: 'FeatureCollection', + features: _layer.current_state.map(function (d) { + return d.data; + }) + }; - var nb_features = new_layer_data.features.length; - var context_menu = new ContextMenu(); - var getItems = function getItems(self_parent) { - return [{ name: i18next.t('app_page.common.edit_style'), action: function action() { - make_style_box_indiv_symbol(self_parent); - } }, { name: i18next.t('app_page.common.delete'), action: function action() { - self_parent.style.display = 'none'; - } }]; - }; - layer_id = encodeId(layer_name); - _app.layer_to_id.set(layer_name, layer_id); - _app.id_to_layer.set(layer_id, layer_name); - // Add the features at there original positions : - map.append('g').attrs({ id: layer_id, class: 'layer' }).selectAll('image').data(new_layer_data.features).enter().insert('image').attrs(function (d, j) { - var symb = symbols_map.get(d.properties.symbol_field), - prop = _layer.current_state[j], - coords = prop.pos; - return { - x: coords[0] - symb[1] / 2, - y: coords[1] - symb[1] / 2, - width: prop.size, - height: prop.size, - 'xlink:href': symb[0] - }; - }).style('display', function (d, j) { - return _layer.current_state[j].display; - }).on('mouseover', function () { - this.style.cursor = 'pointer'; - }).on('mouseout', function () { - this.style.cursor = 'initial'; - }).on('contextmenu dblclick', function () { - context_menu.showMenu(d3.event, document.querySelector('body'), getItems(this)); - }).call(drag_elem_geo); - - create_li_layer_elem(layer_name, nb_features, ['Point', 'symbol'], 'result'); - current_layers[layer_name] = { - n_features: nb_features, - renderer: 'TypoSymbols', - symbols_map: symbols_map, - rendered_field: _layer.rendered_field, - is_result: true, - symbol: 'image', - ref_layer_name: _layer.ref_layer_name + var nb_features = new_layer_data.features.length; + var context_menu = new ContextMenu(); + var getItems = function getItems(self_parent) { + return [{ name: i18next.t('app_page.common.edit_style'), action: function action() { + make_style_box_indiv_symbol(self_parent); + } }, { name: i18next.t('app_page.common.delete'), action: function action() { + self_parent.style.display = 'none'; + } }]; + }; + layer_id = encodeId(layer_name); + _app.layer_to_id.set(layer_name, layer_id); + _app.id_to_layer.set(layer_id, layer_name); + // Add the features at there original positions : + map.append('g').attrs({ id: layer_id, class: 'layer' }).selectAll('image').data(new_layer_data.features).enter().insert('image').attrs(function (d, j) { + var symb = symbols_map.get(d.properties.symbol_field), + prop = _layer.current_state[j], + coords = prop.pos; + return { + x: coords[0] - symb[1] / 2, + y: coords[1] - symb[1] / 2, + width: prop.size, + height: prop.size, + 'xlink:href': symb[0] }; - if (_layer.legend) { - rehandle_legend(layer_name, _layer.legend); - } - })(); + }).style('display', function (d, j) { + return _layer.current_state[j].display; + }).on('mouseover', function () { + this.style.cursor = 'pointer'; + }).on('mouseout', function () { + this.style.cursor = 'initial'; + }).on('contextmenu dblclick', function () { + context_menu.showMenu(d3.event, document.querySelector('body'), getItems(this)); + }).call(drag_elem_geo); + + create_li_layer_elem(layer_name, nb_features, ['Point', 'symbol'], 'result'); + current_layers[layer_name] = { + n_features: nb_features, + renderer: 'TypoSymbols', + symbols_map: symbols_map, + rendered_field: _layer.rendered_field, + is_result: true, + symbol: 'image', + ref_layer_name: _layer.ref_layer_name + }; + if (_layer.legend) { + rehandle_legend(layer_name, _layer.legend); + } } else { null; } diff --git a/magrit_app/static/js/interface.js b/magrit_app/static/js/interface.js index 766dbaa80..645970b25 100755 --- a/magrit_app/static/js/interface.js +++ b/magrit_app/static/js/interface.js @@ -2104,7 +2104,7 @@ function prepare_available_symbols() { return xhrequest('GET', 'static/json/list_symbols.json', null) .then((result) => { const list_res = JSON.parse(result); - return Promise.all(list_res.map(name => getImgDataUrl(`stiatelab/magritatic/img/svg_symbols/${name}`))) + return Promise.all(list_res.map(name => getImgDataUrl(`static/img/svg_symbols/${name}`))) .then((symbols) => { for (let i = 0; i < list_res.length; i++) { default_symbols.push([list_res[i], symbols[i]]); diff --git a/magrit_app/static/json/list_symbols.json b/magrit_app/static/json/list_symbols.json index 6f8289e34..215fdb3ba 100755 --- a/magrit_app/static/json/list_symbols.json +++ b/magrit_app/static/json/list_symbols.json @@ -1 +1 @@ -["city_large.png","city_small.png","parking.png","fountain.png","gas.png","tourist_view_point.png","phone.png","amenity=restaurant.png","car.png","tourist_museum.png","education_university.png","food_fastfood.png","city_building.png","landuse_coniferous.png","skull.png","landuse_grass.png","parachute.png","food_drinkingtap.png","tourist_cinema.png","boat.png","disability_accessibility.png","question.png","tourist_steam_train.png","deer.png","landuse_swamp.png","disability_lowvision.png","poi_place_city.png","poi_place_town.png","tourist_memorial.png","tourist_fountain.png","tourist_casino.png","amenity=bar.png","education_school.png","poi_tower_communications.png","house.png","tourist_ruin.png","plane.png","amenity=fire_station.png","poi_embassy2.png","golf.png","tourist_zoo.png","bank.png","amenity=hospital.png","tourist_theatre.png","tourist_castle.png","food_pub.png","cross.png","amenity=pub.png","landuse_coniferous_and_deciduous.png","couple.png","fish.png","tourisum_fountain.png","poi_embassy.png","landuse_quary.png","tourist_windmill.png","tourist_archaeological.png","poi_tower_power.png","poi_peak.png","tourist_waterwheel.png","teepee.png","food_cafe.png","tourist_monument.png","city_medium.png","poi_cave.png","shipwreck.png","poi_mine.png","amenity=fast_food.png","tourist_picnic.png","amenity=theatre.png","poi_point_of_interest.png","swimmer.png","landuse_deciduous.png","tourist_battlefield.png","education_nursery.png","tourist_wreck.png","skier.png","amenity=police.png","poi_tower_water.png","poi_military_bunker.png","camera.png","poi_boundary_administrative.png","tourist_beach.png","landuse_hills.png","poi_place_village.png","tourist_art_gallery2.png","food_bar.png","anchor.png","waypoint.png","walker.png","landuse_scrub.png","h.png","flag.png"] \ No newline at end of file +["amenity=pub.png","anchor.png","phone.png","tourist_picnic.png","education_nursery.png","tourist_cinema.png","fountain.png","tourist_archaeological.png","disability_accessibility.png","golf.png","gas.png","tourisum_fountain.png","landuse_swamp.png","amenity=hospital.png","food_cafe.png","car.png","landuse_grass.png","poi_place_town.png","fish.png","tourist_memorial.png","landuse_scrub.png","tourist_art_gallery2.png","house.png","poi_military_bunker.png","amenity=police.png","amenity=restaurant.png","tourist_zoo.png","skull.png","poi_tower_water.png","poi_cave.png","amenity=fire_station.png","tourist_windmill.png","tourist_museum.png","poi_boundary_administrative.png","landuse_coniferous.png","education_university.png","tourist_wreck.png","poi_embassy.png","plane.png","food_bar.png","h.png","swimmer.png","poi_mine.png","tourist_monument.png","poi_place_city.png","tourist_view_point.png","poi_place_village.png","city_small.png","city_building.png","flag.png","tourist_casino.png","education_school.png","tourist_theatre.png","poi_embassy2.png","tourist_castle.png","skier.png","landuse_hills.png","tourist_ruin.png","city_large.png","amenity=bar.png","poi_tower_communications.png","tourist_fountain.png","teepee.png","waypoint.png","parachute.png","couple.png","poi_tower_power.png","food_drinkingtap.png","camera.png","city_medium.png","question.png","landuse_deciduous.png","tourist_beach.png","amenity=theatre.png","food_pub.png","tourist_battlefield.png","shipwreck.png","disability_lowvision.png","walker.png","boat.png","poi_point_of_interest.png","amenity=fast_food.png","poi_peak.png","cross.png","landuse_coniferous_and_deciduous.png","tourist_waterwheel.png","landuse_quary.png","parking.png","tourist_steam_train.png","bank.png","deer.png","food_fastfood.png"] \ No newline at end of file diff --git a/magrit_app/static/locales/en/translation.a54f919159af.json b/magrit_app/static/locales/en/translation.3e43df99730a.json similarity index 100% rename from magrit_app/static/locales/en/translation.a54f919159af.json rename to magrit_app/static/locales/en/translation.3e43df99730a.json diff --git a/magrit_app/static/locales/es/translation.a54f919159af.json b/magrit_app/static/locales/es/translation.3e43df99730a.json similarity index 100% rename from magrit_app/static/locales/es/translation.a54f919159af.json rename to magrit_app/static/locales/es/translation.3e43df99730a.json diff --git a/magrit_app/static/locales/fr/translation.a54f919159af.json b/magrit_app/static/locales/fr/translation.3e43df99730a.json similarity index 100% rename from magrit_app/static/locales/fr/translation.a54f919159af.json rename to magrit_app/static/locales/fr/translation.3e43df99730a.json diff --git a/magrit_app/templates/modules.html b/magrit_app/templates/modules.html index dd86de760..52ec69dec 100755 --- a/magrit_app/templates/modules.html +++ b/magrit_app/templates/modules.html @@ -7,7 +7,7 @@ {{ app_name }} - + @@ -51,6 +51,6 @@ - +