From e24c945a37c374c1623b610f1c0e352e4b37739b Mon Sep 17 00:00:00 2001 From: isubas Date: Tue, 19 Nov 2019 17:06:54 +0300 Subject: [PATCH 001/100] =?UTF-8?q?Manager=20dashbor=20i=C3=A7in=20control?= =?UTF-8?q?ler=20ve=20viewleri=20olu=C5=9Ftur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/dashboard_controller.rb | 7 +++ app/views/manager/dashboard/index.html.erb | 59 +++++++++++++++++++ config/routes.rb | 3 +- config/routes/manager.rb | 5 ++ 4 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 app/controllers/manager/dashboard_controller.rb create mode 100644 app/views/manager/dashboard/index.html.erb create mode 100644 config/routes/manager.rb diff --git a/app/controllers/manager/dashboard_controller.rb b/app/controllers/manager/dashboard_controller.rb new file mode 100644 index 000000000..5b3187bd8 --- /dev/null +++ b/app/controllers/manager/dashboard_controller.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module Manager + class DashboardController < ApplicationController + def index; end + end +end diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb new file mode 100644 index 000000000..d2e12e168 --- /dev/null +++ b/app/views/manager/dashboard/index.html.erb @@ -0,0 +1,59 @@ +<%= javascript_include_tag 'chart' %> +
+

+
+
+
+
+
+
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
+ Öğrenci +
+
+
+
+
+
+ +
+
+
+ + diff --git a/config/routes.rb b/config/routes.rb index dc8860938..9ffba644a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -17,10 +17,11 @@ draw :course_management draw :first_registration draw :location + draw :manager + draw :meksis draw :patron draw :reference draw :yoksis - draw :meksis resources :units do member do diff --git a/config/routes/manager.rb b/config/routes/manager.rb new file mode 100644 index 000000000..dc9798188 --- /dev/null +++ b/config/routes/manager.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +namespace :manager do + get '/', to: 'dashboard#index' +end From 3516203637cf2d06124c29eaf9544d990626f120 Mon Sep 17 00:00:00 2001 From: isubas Date: Tue, 19 Nov 2019 17:08:22 +0300 Subject: [PATCH 002/100] =?UTF-8?q?Stimulus=20ve=20echarts=20js=20k=C3=BCt?= =?UTF-8?q?=C3=BCphanlerini=20ekle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/config/manifest.js | 1 + app/assets/javascripts/application.js | 2 - app/assets/javascripts/chart.js | 1 + .../controllers/dashboard_controller.js | 18 ++++++++ app/javascript/controllers/index.js | 9 ++++ app/javascript/packs/application.js | 18 +++----- app/views/layouts/application.html.erb | 1 + package.json | 2 + yarn.lock | 44 +++++++++++++++++++ 9 files changed, 82 insertions(+), 14 deletions(-) create mode 100644 app/assets/javascripts/chart.js create mode 100644 app/javascript/controllers/dashboard_controller.js create mode 100644 app/javascript/controllers/index.js diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index 55c6085f2..cfddc2966 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -2,3 +2,4 @@ //= link_directory ../stylesheets .css //= link application.js +//= link chart.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index b70fe4df9..8b150a265 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,7 +1,5 @@ // Manifest file for common assets being used in panel -//= require rails-ujs -//= require activestorage //= require coreui //= require helpers/dynamic_select //= require toastr/build/toastr.min diff --git a/app/assets/javascripts/chart.js b/app/assets/javascripts/chart.js new file mode 100644 index 000000000..9617feffd --- /dev/null +++ b/app/assets/javascripts/chart.js @@ -0,0 +1 @@ +//= require echarts/dist/echarts.min diff --git a/app/javascript/controllers/dashboard_controller.js b/app/javascript/controllers/dashboard_controller.js new file mode 100644 index 000000000..0f126dac2 --- /dev/null +++ b/app/javascript/controllers/dashboard_controller.js @@ -0,0 +1,18 @@ +// Visit The Stimulus Handbook for more details +// https://stimulusjs.org/handbook/introduction +// +// This example controller works with specially annotated HTML like: +// +//
+//

+//
+ +import { Controller } from 'stimulus' + +export default class extends Controller { + static targets = [ 'output' ] + + connect() { + this.outputTarget.textContent = 'Hello, Stimulus!' + } +} diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js new file mode 100644 index 000000000..5b50a70b7 --- /dev/null +++ b/app/javascript/controllers/index.js @@ -0,0 +1,9 @@ +// Load all the controllers within this directory and all subdirectories. +// Controller files must be named *_controller.js. + +import { Application } from 'stimulus' +import { definitionsFromContext } from 'stimulus/webpack-helpers' + +const application = Application.start() +const context = require.context('controllers', true, /_controller\.js$/) +application.load(definitionsFromContext(context)) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index fab885eb6..7c1c9fd90 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -3,16 +3,10 @@ // a relevant structure within app/javascript and only use these pack files to reference // that code so it'll be compiled. -require("@rails/ujs").start() -require("@rails/activestorage").start() -require("channels") -require("trix") -require("@rails/actiontext") +require('@rails/ujs').start() +require('@rails/activestorage').start() +require('channels') +require('trix') +require('@rails/actiontext') -if (navigator.serviceWorker) { - navigator.serviceWorker.register('/service-worker.js', { scope: './' }) - .then(function(registration) { - console.log('[Companion]', 'Service worker registered!') - console.log(registration) - }) - } +import 'controllers' diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index a9af83ea1..58e209865 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -4,6 +4,7 @@ <%= render 'layouts/shared/meta' %> <%= stylesheet_link_tag 'application', media: 'all' %> <%= javascript_include_tag 'application' %> + <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload', async: true %> diff --git a/package.json b/package.json index e37e85a54..73bb99979 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,12 @@ "@rails/ujs": "^6.0.1", "@rails/webpacker": "https://github.com/rails/webpacker", "chalk": "^2.4.2", + "echarts": "^4.5.0", "flatpickr": "^4.6.3", "intl-tel-input": "^16.0.7", "jquery.maskedinput": "^1.4.1", "select2": "^4.0.12", + "stimulus": "^1.1.1", "toastr": "^2.1.4", "trix": "^1.0.0", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 910245163..8e424bd19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -793,6 +793,30 @@ webpack-cli "^3.3.2" webpack-sources "^1.3.0" +"@stimulus/core@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@stimulus/core/-/core-1.1.1.tgz#42b0cfe5b73ca492f41de64b77a03980bae92c82" + integrity sha512-PVJv7IpuQx0MVPCBblXc6O2zbCmU8dlxXNH4bC9KK6LsvGaE+PCXXrXQfXUwAsse1/CmRu/iQG7Ov58himjiGg== + dependencies: + "@stimulus/mutation-observers" "^1.1.1" + +"@stimulus/multimap@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@stimulus/multimap/-/multimap-1.1.1.tgz#b95e3fd607345ab36e5d5b55486ee1a12d56b331" + integrity sha512-26R1fI3a8uUj0WlMmta4qcfIQGlagegdP4PTz6lz852q/dXlG6r+uPS/bx+H8GtfyS+OOXVr3SkZ0Zg0iRqRfQ== + +"@stimulus/mutation-observers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@stimulus/mutation-observers/-/mutation-observers-1.1.1.tgz#0f6c6f081308427fed2a26360dda0c173b79cfc0" + integrity sha512-/zCnnw1KJlWO2mrx0yxYaRFZWMGnDMdOgSnI4hxDLxdWVuL2HMROU8FpHWVBLjKY3T9A+lGkcrmPGDHF3pfS9w== + dependencies: + "@stimulus/multimap" "^1.1.1" + +"@stimulus/webpack-helpers@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@stimulus/webpack-helpers/-/webpack-helpers-1.1.1.tgz#eff60cd4e58b921d1a2764dc5215f5141510f2c2" + integrity sha512-XOkqSw53N9072FLHvpLM25PIwy+ndkSSbnTtjKuyzsv8K5yfkFB2rv68jU1pzqYa9FZLcvZWP4yazC0V38dx9A== + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -2605,6 +2629,13 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +echarts@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/echarts/-/echarts-4.5.0.tgz#2111960645a345eb819ddac4792a2c065bdff162" + integrity sha512-q9M0errodeX/786uPifro76x0elbrUQkbSHh235QzbkaASuvP9AQoMErhGBno4iC/yq6kFDLqgmm3XCPWQGLzA== + dependencies: + zrender "4.1.2" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -7335,6 +7366,14 @@ stdout-stream@^1.4.0: dependencies: readable-stream "^2.0.1" +stimulus@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stimulus/-/stimulus-1.1.1.tgz#53c2fded6849e7b85eed3ed8dd76e33abd74bec5" + integrity sha512-R0mBqKp48YnRDZOxZ8hiOH4Ilph3Yj78CIFTBkCwyHs4iGCpe7xlEdQ7cjIxb+7qVCSxFKgxO+mAQbsNgt/5XQ== + dependencies: + "@stimulus/core" "^1.1.1" + "@stimulus/webpack-helpers" "^1.1.1" + stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" @@ -8310,3 +8349,8 @@ yargs@^7.0.0: which-module "^1.0.0" y18n "^3.2.1" yargs-parser "^5.0.0" + +zrender@4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/zrender/-/zrender-4.1.2.tgz#8368deff24c7e237cbcbd3a2ff93017905ae43f7" + integrity sha512-MJYEo1ZOVesjxYsfcGtPXnUREmh4ACMV08QZLGZ3S7D1xOd96iz3O6nf6pv5PHb5NSHkbizr7ChSIgtAGwncvA== From c1258087d9d408f81d7b41b0cf17865ab82d2922 Mon Sep 17 00:00:00 2001 From: isubas Date: Tue, 19 Nov 2019 17:08:43 +0300 Subject: [PATCH 003/100] Xokul ubs servislerini ekle --- app/services/xokul/ubs/statistic/student.rb | 37 +++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 app/services/xokul/ubs/statistic/student.rb diff --git a/app/services/xokul/ubs/statistic/student.rb b/app/services/xokul/ubs/statistic/student.rb new file mode 100644 index 000000000..274924225 --- /dev/null +++ b/app/services/xokul/ubs/statistic/student.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +module Xokul + module Ubs + module Statistic + module Student + NAMESPACE = '/ubs/api/students/statistics' + + module_function + + def by_genders_and_degree + Connection.request("#{NAMESPACE}/genders_and_degree") + end + + def by_genders + Connection.request("#{NAMESPACE}/genders") + end + + def by_cities + Connection.request("#{NAMESPACE}/cities") + end + + def by_units + Connection.request("#{NAMESPACE}/units") + end + + def non_graduates + Connection.request("#{NAMESPACE}/non_graduates") + end + + def double_major_and_minor + Connection.request("#{NAMESPACE}/double_major_and_minor") + end + end + end + end +end From b0529bb37e9d7199dc5956d62baebc4ef045a91a Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 20 Nov 2019 17:05:16 +0300 Subject: [PATCH 004/100] Add highcharts --- app/assets/javascripts/chart.js | 1 + package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/app/assets/javascripts/chart.js b/app/assets/javascripts/chart.js index 9617feffd..c973c9627 100644 --- a/app/assets/javascripts/chart.js +++ b/app/assets/javascripts/chart.js @@ -1 +1,2 @@ //= require echarts/dist/echarts.min +//= require highcharts/highcharts diff --git a/package.json b/package.json index 73bb99979..b8e5dd0af 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "chalk": "^2.4.2", "echarts": "^4.5.0", "flatpickr": "^4.6.3", + "highcharts": "^7.2.1", "intl-tel-input": "^16.0.7", "jquery.maskedinput": "^1.4.1", "select2": "^4.0.12", diff --git a/yarn.lock b/yarn.lock index 8e424bd19..f70f60fcf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3658,6 +3658,11 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +highcharts@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/highcharts/-/highcharts-7.2.1.tgz#313c434bbfd4525a72b76c6bfbd9c39dfe2d1993" + integrity sha512-/fSUZiONmM+x49IQJNf8XwZGiNGOPRmxEOcd0xdJP9Xc3OlG46ZiUWgSLfhYQ9Oyhmzc3V3SKYCLud8+rKLi+w== + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" From 7e9cd241fc84e16630a1c30f32c26ff5b1831fcf Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 20 Nov 2019 17:05:56 +0300 Subject: [PATCH 005/100] =?UTF-8?q?WIP:=20Dashboard=20i=C3=A7in=20grafikle?= =?UTF-8?q?r=20olu=C5=9Ftur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._chart_for_double_major_and_minor.html.erb | 44 ++++++++++++ .../dashboard/_chart_for_genders.html.erb | 48 +++++++++++++ .../_chart_for_genders_and_degrees.html.erb | 41 +++++++++++ app/views/manager/dashboard/index.html.erb | 70 ++++++------------- 4 files changed, 153 insertions(+), 50 deletions(-) create mode 100644 app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb create mode 100644 app/views/manager/dashboard/_chart_for_genders.html.erb create mode 100644 app/views/manager/dashboard/_chart_for_genders_and_degrees.html.erb diff --git a/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb b/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb new file mode 100644 index 000000000..98f21ca9e --- /dev/null +++ b/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb @@ -0,0 +1,44 @@ +
+ +<% + series = data.reject { |item| item[:category] == 'other' }.map do |item| + { + name: case item[:category] + when 'minor' then 'Yandal' + when 'double major' then 'Çift Anadal' + end, + y: item[:number_of_students] + } + end +%> + + diff --git a/app/views/manager/dashboard/_chart_for_genders.html.erb b/app/views/manager/dashboard/_chart_for_genders.html.erb new file mode 100644 index 000000000..33b5f2e15 --- /dev/null +++ b/app/views/manager/dashboard/_chart_for_genders.html.erb @@ -0,0 +1,48 @@ +
+ +<% + series = data.map do |item| + { + name: item[:gender], + color: ( + case item[:gender] + when 'Erkek' then '#96d1c7' + when 'Kadın' then '#fc7978' + else '#ffafb0' + end + ), + y: item[:number_of_students] + } + end +%> + + diff --git a/app/views/manager/dashboard/_chart_for_genders_and_degrees.html.erb b/app/views/manager/dashboard/_chart_for_genders_and_degrees.html.erb new file mode 100644 index 000000000..b1bbe3918 --- /dev/null +++ b/app/views/manager/dashboard/_chart_for_genders_and_degrees.html.erb @@ -0,0 +1,41 @@ +
+ +<% categories = data.map { |item| item[:degree] }.uniq %> +<% genders = data.map { |item| item[:gender] }.uniq.sort %> +<% + series = genders.map do |gender, hash| + { + name: gender, + color: ( + case gender + when 'Erkek' then '#96d1c7' + when 'Kadın' then '#fc7978' + else '#ffafb0' + end + ), + data: categories.map do |category| + row = data.find { |item| item[:degree] == category && item[:gender] == gender } || {} + row[:number_of_students] + end + } + end +%> + + diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb index d2e12e168..6236a2a57 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/index.html.erb @@ -1,59 +1,29 @@ <%= javascript_include_tag 'chart' %> -
-

-
-
-
-
-
-
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
- Öğrenci -
-
+ +
+
+
+
+
+
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
+ Öğrenci +
+
+
-
-
+
+ <%= render 'chart_for_genders', data: Xokul::Ubs::Statistic::Student.by_genders %> +
+
+ <%= render 'chart_for_genders_and_degrees', data: Xokul::Ubs::Statistic::Student.by_genders_and_degree %> +
+
+ <%= render 'chart_for_double_major_and_minor', data: Xokul::Ubs::Statistic::Student.double_major_and_minor %> +
- From 46d12685374eef81602e7211aa59000d1c99b3b6 Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 26 Dec 2019 14:32:27 +0300 Subject: [PATCH 006/100] Fix erb linter offences --- ..._chart_for_double_major_and_minor.html.erb | 22 +++++------ .../dashboard/_chart_for_genders.html.erb | 30 +++++++-------- .../_chart_for_genders_and_degrees.html.erb | 38 +++++++++---------- app/views/manager/dashboard/index.html.erb | 2 - 4 files changed, 42 insertions(+), 50 deletions(-) diff --git a/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb b/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb index 98f21ca9e..a98fd2f6a 100644 --- a/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb +++ b/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb @@ -1,18 +1,16 @@
-<% - series = data.reject { |item| item[:category] == 'other' }.map do |item| - { - name: case item[:category] - when 'minor' then 'Yandal' - when 'double major' then 'Çift Anadal' - end, - y: item[:number_of_students] - } - end -%> +<% series = data.reject { |item| item[:category] == 'other' }.map do |item| + { + name: case item[:category] + when 'minor' then 'Yandal' + when 'double major' then 'Çift Anadal' + end, + y: item[:number_of_students] + } + end %> - diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb index e78d8fe02..f3bea601d 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/index.html.erb @@ -24,4 +24,7 @@
<%= render 'chart_for_double_major_and_minor', data: Xokul::Ubs::Statistic::Student.double_major_and_minor %>
+
+ <%= render 'chart_for_map', data: Xokul::Ubs::Statistic::Student.by_cities %> +
diff --git a/package.json b/package.json index fbe4bb26e..5b04ca3ea 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "private": true, "dependencies": { "@coreui/coreui-free-bootstrap-admin-template": "https://github.com/coreui/coreui-free-bootstrap-admin-template.git#master", + "@highcharts/map-collection": "^1.1.2", "@rails/actioncable": "^6.0.0-alpha", "@rails/actiontext": "^6.0.2", "@rails/activestorage": "^6.0.0-alpha", diff --git a/yarn.lock b/yarn.lock index 35593b395..fad8fdbc5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -738,6 +738,11 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== +"@highcharts/map-collection@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@highcharts/map-collection/-/map-collection-1.1.2.tgz#a4a9ba0ae9384a9256fe9f2e3a91474d663570e5" + integrity sha512-lI/sUc1BkwfetYpyEsKafYdkiEsGXDpYTWmwSikD/L+C7RMHkc/6rZAjVjxp0Ph/B3Q3dEHeyOmCruG6WoSNAQ== + "@rails/actioncable@^6.0.0-alpha": version "6.0.2" resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.0.2.tgz#bcba9bcd6ee09a47c6628336e07399a68ca87814" From e90cbcb662861853f775d96af5822bc46ead8739 Mon Sep 17 00:00:00 2001 From: isubas Date: Tue, 31 Dec 2019 15:44:37 +0300 Subject: [PATCH 009/100] =?UTF-8?q?Uzatma=20durumuna=20g=C3=B6re=20=C3=B6?= =?UTF-8?q?=C4=9Frenci=20say=C4=B1lar=C4=B1n=C4=B1n=20grafi=C4=9Fini=20olu?= =?UTF-8?q?=C5=9Ftur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_cities.erb} | 0 .../_double_major_and_minor.html.erb} | 0 .../_genders.html.erb} | 0 .../_genders_and_degrees.html.erb} | 0 .../dashboard/charts/_non_graduates.html.erb | 38 +++++++++++++++++++ app/views/manager/dashboard/index.html.erb | 11 ++++-- 6 files changed, 45 insertions(+), 4 deletions(-) rename app/views/manager/dashboard/{_chart_for_map.erb => charts/_cities.erb} (100%) rename app/views/manager/dashboard/{_chart_for_double_major_and_minor.html.erb => charts/_double_major_and_minor.html.erb} (100%) rename app/views/manager/dashboard/{_chart_for_genders.html.erb => charts/_genders.html.erb} (100%) rename app/views/manager/dashboard/{_chart_for_genders_and_degrees.html.erb => charts/_genders_and_degrees.html.erb} (100%) create mode 100644 app/views/manager/dashboard/charts/_non_graduates.html.erb diff --git a/app/views/manager/dashboard/_chart_for_map.erb b/app/views/manager/dashboard/charts/_cities.erb similarity index 100% rename from app/views/manager/dashboard/_chart_for_map.erb rename to app/views/manager/dashboard/charts/_cities.erb diff --git a/app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb b/app/views/manager/dashboard/charts/_double_major_and_minor.html.erb similarity index 100% rename from app/views/manager/dashboard/_chart_for_double_major_and_minor.html.erb rename to app/views/manager/dashboard/charts/_double_major_and_minor.html.erb diff --git a/app/views/manager/dashboard/_chart_for_genders.html.erb b/app/views/manager/dashboard/charts/_genders.html.erb similarity index 100% rename from app/views/manager/dashboard/_chart_for_genders.html.erb rename to app/views/manager/dashboard/charts/_genders.html.erb diff --git a/app/views/manager/dashboard/_chart_for_genders_and_degrees.html.erb b/app/views/manager/dashboard/charts/_genders_and_degrees.html.erb similarity index 100% rename from app/views/manager/dashboard/_chart_for_genders_and_degrees.html.erb rename to app/views/manager/dashboard/charts/_genders_and_degrees.html.erb diff --git a/app/views/manager/dashboard/charts/_non_graduates.html.erb b/app/views/manager/dashboard/charts/_non_graduates.html.erb new file mode 100644 index 000000000..0abf5992a --- /dev/null +++ b/app/views/manager/dashboard/charts/_non_graduates.html.erb @@ -0,0 +1,38 @@ +
+ +<% categories = data.map { |item| item[:educational_level] }.uniq %> +<% statuses = data.map { |item| item[:status] }.uniq.sort %> +<% series = statuses.map do |status, _hash| + { + name: status, + color: ( + case status + when 'Uzatan' then '#8E2C3E' + when 'Normal' then '#B27D32' + end + ), + data: categories.map do |category| + row = data.find { |item| item[:educational_level] == category && item[:status] == status } || {} + row[:number_of_students] + end + } + end %> + + diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb index f3bea601d..d34abfa62 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/index.html.erb @@ -16,15 +16,18 @@
- <%= render 'chart_for_genders', data: Xokul::Ubs::Statistic::Student.by_genders %> + <%= render 'manager/dashboard/charts/genders', data: Xokul::Ubs::Statistic::Student.by_genders %>
- <%= render 'chart_for_genders_and_degrees', data: Xokul::Ubs::Statistic::Student.by_genders_and_degree %> + <%= render 'manager/dashboard/charts/genders_and_degrees', data: Xokul::Ubs::Statistic::Student.by_genders_and_degree %>
- <%= render 'chart_for_double_major_and_minor', data: Xokul::Ubs::Statistic::Student.double_major_and_minor %> + <%= render 'manager/dashboard/charts/double_major_and_minor', data: Xokul::Ubs::Statistic::Student.double_major_and_minor %> +
+
+ <%= render 'manager/dashboard/charts/non_graduates', data: Xokul::Ubs::Statistic::Student.non_graduates %>
- <%= render 'chart_for_map', data: Xokul::Ubs::Statistic::Student.by_cities %> + <%= render 'manager/dashboard/charts/cities', data: Xokul::Ubs::Statistic::Student.by_cities %>
From 377debb534c88f18ef9d5a26b74815f104b62788 Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 9 Jan 2020 16:43:12 +0300 Subject: [PATCH 010/100] =?UTF-8?q?Highchart=20i=C3=A7in=20TR=20haritas?= =?UTF-8?q?=C4=B1n=C4=B1n=20meta=20datalar=C4=B1n=C4=B1=20ekle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/javascripts/chart.js | 2 +- app/assets/javascripts/highcharts-maps/tr.js | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/highcharts-maps/tr.js diff --git a/app/assets/javascripts/chart.js b/app/assets/javascripts/chart.js index a54470668..93467ef8d 100644 --- a/app/assets/javascripts/chart.js +++ b/app/assets/javascripts/chart.js @@ -1,4 +1,4 @@ //= require echarts/dist/echarts.min //= require highcharts/highcharts //= require highcharts/modules/map -//= require @highcharts/map-collection/countries/tr/tr-all +//= require highcharts-maps/tr diff --git a/app/assets/javascripts/highcharts-maps/tr.js b/app/assets/javascripts/highcharts-maps/tr.js new file mode 100644 index 000000000..4f5ac78a8 --- /dev/null +++ b/app/assets/javascripts/highcharts-maps/tr.js @@ -0,0 +1,4 @@ +Highcharts.maps["countries/tr/tr-all"] = { + "title": "Turkey", "version": "1.1.2", "type": "FeatureCollection", "copyright": "Copyright (c) 2015 Highsoft AS, Based on data from Natural Earth", "copyrightShort": "Natural Earth", "copyrightUrl": "http://www.naturalearthdata.com", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG:32636" } }, "hc-transform": { "default": { "crs": "+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs", "scale": 0.000418317446042, "jsonres": 15.5, "jsonmarginX": -999, "jsonmarginY": 9851.0, "xoffset": -125397.473102, "yoffset": 4675858.14012 } }, + "features": [{ "type": "Feature", "id": "TR.OR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.68, "hc-middle-y": 0.42, "hc-key": "tr-or", "hc-a2": "OR", "labelrank": "7", "hasc": "TR.OR", "alt-name": "Ordu", "woe-id": "2347304", "subregion": null, "fips": "TU52", "postal-code": "OR", "name": "Ordu", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.4229", "woe-name": "Ordu", "latitude": "40.8376", "woe-label": "Ordu, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5081, 8906], [5147, 8927], [5238, 8997], [5315, 9122], [5376, 9125], [5449, 9101], [5511, 9056], [5553, 9054], [5608, 9132], [5660, 9122], [5663, 9077], [5727, 9024], [5773, 9033], [5847, 9014], [5824, 8931], [5840, 8865], [5834, 8758], [5890, 8702], [5809, 8667], [5808, 8617], [5751, 8608], [5701, 8556], [5638, 8584], [5604, 8641], [5572, 8718], [5498, 8719], [5368, 8800], [5255, 8796], [5079, 8866], [5081, 8906]]] } }, { "type": "Feature", "id": "TR.SS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.58, "hc-key": "tr-ss", "hc-a2": "SS", "labelrank": "7", "hasc": "TR.SS", "alt-name": "Samsun", "woe-id": "2347307", "subregion": null, "fips": "TU55", "postal-code": "SS", "name": "Samsun", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.0198", "woe-name": "Samsun", "latitude": "41.2761", "woe-label": "Samsun, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5315, 9122], [5238, 8997], [5147, 8927], [5081, 8906], [5051, 8936], [4937, 8906], [4877, 8946], [4824, 9000], [4803, 8985], [4779, 8922], [4713, 8881], [4670, 8900], [4534, 8898], [4497, 8934], [4398, 9002], [4364, 8995], [4194, 9038], [4132, 9037], [4110, 9118], [4081, 9167], [4106, 9203], [4196, 9253], [4217, 9222], [4303, 9164], [4416, 9186], [4395, 9281], [4386, 9394], [4406, 9443], [4471, 9439], [4617, 9498], [4650, 9519], [4699, 9496], [4741, 9444], [4753, 9325], [4812, 9253], [4867, 9226], [4872, 9205], [4931, 9172], [4995, 9216], [5019, 9273], [5137, 9261], [5220, 9224], [5247, 9188], [5253, 9144], [5315, 9122]]] } }, { "type": "Feature", "id": "TR.GA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.68, "hc-middle-y": 0.57, "hc-key": "tr-ga", "hc-a2": "GA", "labelrank": "7", "hasc": "TR.GA", "alt-name": "Gaziantep", "woe-id": "2347284", "subregion": null, "fips": "TU83", "postal-code": "GA", "name": "Gaziantep", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.2462", "woe-name": "Gaziantep", "latitude": "36.9988", "woe-label": "Gaziantep, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5963, 6042], [5846, 5982], [5751, 5957], [5677, 5911], [5626, 5953], [5527, 6000], [5510, 5988], [5435, 6063], [5350, 6097], [5330, 6137], [5292, 6132], [5288, 6083], [5203, 6032], [5172, 6000], [5135, 6037], [5049, 6092], [5121, 6192], [5150, 6256], [5196, 6321], [5264, 6356], [5290, 6394], [5318, 6377], [5337, 6314], [5382, 6301], [5432, 6359], [5610, 6422], [5682, 6430], [5706, 6447], [5707, 6522], [5832, 6541], [5900, 6519], [5948, 6482], [5910, 6473], [5862, 6409], [5840, 6348], [5863, 6212], [5895, 6188], [5927, 6195], [5923, 6152], [5948, 6129], [5963, 6042]]] } }, { "type": "Feature", "id": "TR.4409", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.43, "hc-key": "tr-4409", "hc-a2": "NU", "labelrank": "20", "hasc": "-99", "alt-name": null, "woe-id": "-99", "subregion": null, "fips": null, "postal-code": null, "name": null, "country": "Turkey", "type-en": null, "region": null, "longitude": "29.658", "woe-name": null, "latitude": "36.1327", "woe-label": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [[[3515, 5497], [3510, 5491], [3512, 5495], [3515, 5497]]] } }, { "type": "Feature", "id": "TR.KC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.66, "hc-middle-y": 0.37, "hc-key": "tr-kc", "hc-a2": "KC", "labelrank": "7", "hasc": "TR.KC", "alt-name": "Kocaeli", "woe-id": "2347296", "subregion": null, "fips": "TU41", "postal-code": "KC", "name": "Kocaeli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.9396", "woe-name": "Kocaeli", "latitude": "40.9008", "woe-label": "Kocaeli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1349, 9102], [1498, 9091], [1573, 9137], [1658, 9105], [1636, 9051], [1644, 9014], [1684, 9006], [1669, 8936], [1590, 8949], [1597, 8920], [1561, 8883], [1535, 8776], [1512, 8732], [1407, 8689], [1369, 8687], [1295, 8717], [1154, 8677], [1091, 8688], [1097, 8715], [1099, 8779], [1140, 8805], [1171, 8777], [1278, 8797], [1371, 8787], [1375, 8817], [1285, 8817], [1232, 8841], [1102, 8841], [1062, 8832], [1009, 8916], [1121, 9008], [1149, 9004], [1190, 8945], [1225, 8932], [1240, 8966], [1339, 9014], [1355, 9050], [1349, 9102]]] } }, { "type": "Feature", "id": "TR.BK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.63, "hc-middle-y": 0.67, "hc-key": "tr-bk", "hc-a2": "BK", "labelrank": "7", "hasc": "TR.BK", "alt-name": "Balıkesir", "woe-id": "2347267", "subregion": null, "fips": "TU10", "postal-code": "BK", "name": "Balıkesir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.8355", "woe-name": "Balıkesir", "latitude": "39.7193", "woe-label": "Balıkesir, TR, Turkey", "type": "Il" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[113, 8810], [165, 8792], [156, 8772], [95, 8748], [58, 8769], [54, 8796], [113, 8810]]], [[[-430, 7765], [-459, 7834], [-520, 7847], [-398, 7929], [-404, 7954], [-332, 7987], [-321, 8050], [-345, 8059], [-473, 8044], [-471, 8102], [-449, 8157], [-376, 8150], [-264, 8204], [-205, 8207], [-124, 8181], [-30, 8227], [0, 8311], [-17, 8335], [17, 8424], [-25, 8464], [59, 8523], [65, 8561], [185, 8558], [240, 8602], [189, 8610], [135, 8692], [178, 8715], [292, 8683], [326, 8661], [251, 8611], [272, 8585], [366, 8602], [419, 8601], [355, 8531], [380, 8478], [357, 8427], [386, 8351], [424, 8310], [440, 8236], [581, 8121], [625, 8113], [653, 8131], [670, 8057], [707, 8023], [781, 8021], [810, 7997], [774, 7913], [764, 7862], [714, 7786], [631, 7752], [624, 7694], [575, 7704], [522, 7680], [433, 7674], [395, 7643], [321, 7642], [295, 7708], [240, 7776], [176, 7775], [202, 7829], [190, 7852], [70, 7864], [-17, 7913], [-61, 7893], [-98, 7950], [-129, 7958], [-269, 7885], [-304, 7844], [-430, 7765]]]] } }, { "type": "Feature", "id": "TR.CK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.58, "hc-middle-y": 0.59, "hc-key": "tr-ck", "hc-a2": "CK", "labelrank": "7", "hasc": "TR.CK", "alt-name": "Çanakkale", "woe-id": "2347274", "subregion": null, "fips": "TU17", "postal-code": "CK", "name": "Çanakkale", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "26.8233", "woe-name": "Çanakkale", "latitude": "40.0553", "woe-label": "Çanakkale, TR, Turkey", "type": "Il" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-806, 8282], [-783, 8272], [-790, 8237], [-839, 8267], [-806, 8282]]], [[[-347, 8883], [-347, 8885], [-268, 8872], [-272, 8815], [-258, 8760], [-418, 8695], [-459, 8628], [-561, 8550], [-618, 8524], [-603, 8490], [-689, 8432], [-730, 8428], [-665, 8524], [-658, 8569], [-686, 8618], [-622, 8644], [-557, 8693], [-463, 8738], [-422, 8735], [-385, 8771], [-330, 8795], [-354, 8838], [-347, 8883]]], [[[-941, 8555], [-854, 8573], [-823, 8556], [-831, 8510], [-805, 8500], [-944, 8475], [-999, 8501], [-941, 8555]]], [[[-473, 8044], [-592, 8031], [-647, 8006], [-683, 8014], [-765, 7999], [-808, 8013], [-781, 8100], [-759, 8119], [-746, 8175], [-756, 8203], [-739, 8347], [-710, 8393], [-646, 8396], [-596, 8456], [-583, 8517], [-531, 8527], [-392, 8655], [-239, 8637], [-191, 8677], [-76, 8673], [-62, 8609], [-1, 8570], [65, 8561], [59, 8523], [-25, 8464], [17, 8424], [-17, 8335], [0, 8311], [-30, 8227], [-124, 8181], [-205, 8207], [-264, 8204], [-376, 8150], [-449, 8157], [-471, 8102], [-473, 8044]]]] } }, { "type": "Feature", "id": "TR.TT", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.5, "hc-key": "tr-tt", "hc-a2": "TT", "labelrank": "7", "hasc": "TR.TT", "alt-name": "Tokat", "woe-id": "2347311", "subregion": null, "fips": "TU60", "postal-code": "TT", "name": "Tokat", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.5724", "woe-name": "Tokat", "latitude": "40.4442", "woe-label": "Tokat, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4937, 8906], [5051, 8936], [5081, 8906], [5079, 8866], [5255, 8796], [5368, 8800], [5498, 8719], [5572, 8718], [5604, 8641], [5549, 8534], [5455, 8488], [5312, 8470], [5221, 8438], [5157, 8443], [5117, 8423], [5085, 8309], [4987, 8256], [4896, 8248], [4768, 8217], [4739, 8262], [4741, 8331], [4717, 8353], [4620, 8325], [4525, 8327], [4441, 8398], [4477, 8463], [4536, 8488], [4618, 8631], [4708, 8626], [4780, 8592], [4874, 8654], [4876, 8690], [4920, 8702], [4969, 8817], [4927, 8865], [4937, 8906]]] } }, { "type": "Feature", "id": "TR.GI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.57, "hc-key": "tr-gi", "hc-a2": "GI", "labelrank": "7", "hasc": "TR.GI", "alt-name": "Giresun", "woe-id": "2347285", "subregion": null, "fips": "TU28", "postal-code": "GI", "name": "Giresun", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "38.6055", "woe-name": "Giresun", "latitude": "40.5379", "woe-label": "Giresun, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6337, 8403], [6316, 8392], [6243, 8385], [6127, 8424], [6071, 8407], [5968, 8463], [5890, 8702], [5834, 8758], [5840, 8865], [5824, 8931], [5847, 9014], [5942, 9011], [5967, 8992], [6081, 9005], [6138, 9044], [6177, 9032], [6211, 9068], [6287, 9103], [6349, 9108], [6406, 9133], [6397, 9044], [6407, 8942], [6419, 8915], [6354, 8903], [6294, 8846], [6297, 8805], [6267, 8758], [6268, 8694], [6284, 8677], [6350, 8665], [6395, 8637], [6394, 8610], [6313, 8545], [6318, 8471], [6337, 8403]]] } }, { "type": "Feature", "id": "TR.EN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.18, "hc-middle-y": 0.45, "hc-key": "tr-en", "hc-a2": "EN", "labelrank": "7", "hasc": "TR.EN", "alt-name": "Erzincan", "woe-id": "2347281", "subregion": null, "fips": "TU24", "postal-code": "EN", "name": "Erzincan", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.5121", "woe-name": "Erzincan", "latitude": "39.6874", "woe-label": "Erzincan, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6243, 8385], [6316, 8392], [6337, 8403], [6403, 8384], [6509, 8335], [6529, 8314], [6597, 8292], [6728, 8302], [6818, 8339], [6859, 8400], [6947, 8418], [6993, 8453], [7085, 8441], [7070, 8360], [7101, 8347], [7196, 8354], [7237, 8308], [7262, 8242], [7328, 8201], [7302, 8131], [7304, 8086], [7267, 8095], [7092, 8092], [7059, 8103], [6952, 8057], [6876, 8080], [6795, 8023], [6667, 8000], [6580, 8007], [6506, 7989], [6423, 7957], [6400, 7923], [6319, 7872], [6328, 7814], [6286, 7791], [6262, 7738], [6281, 7652], [6264, 7648], [6250, 7639], [6211, 7680], [6160, 7701], [6107, 7700], [6061, 7720], [6076, 7765], [6053, 7892], [6095, 7946], [6041, 7991], [6047, 8119], [6084, 8182], [6126, 8197], [6118, 8230], [6040, 8214], [6051, 8298], [6075, 8314], [6129, 8293], [6183, 8321], [6234, 8320], [6243, 8385]]] } }, { "type": "Feature", "id": "TR.BG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.59, "hc-middle-y": 0.44, "hc-key": "tr-bg", "hc-a2": "BG", "labelrank": "7", "hasc": "TR.BG", "alt-name": "Bingöl", "woe-id": "2347269", "subregion": null, "fips": "TU12", "postal-code": "BG", "name": "Bingöl", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.646", "woe-name": "Bingöl", "latitude": "39.0743", "woe-label": "Bingöl, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7267, 8095], [7304, 8086], [7354, 8083], [7433, 8133], [7509, 8078], [7587, 8061], [7642, 7995], [7628, 7949], [7651, 7877], [7695, 7818], [7698, 7758], [7663, 7706], [7650, 7648], [7714, 7546], [7520, 7428], [7374, 7429], [7289, 7398], [7288, 7356], [7254, 7319], [7188, 7311], [7174, 7376], [7141, 7418], [7161, 7497], [7198, 7490], [7213, 7565], [7164, 7627], [7146, 7682], [7153, 7733], [7198, 7823], [7178, 7856], [7115, 7824], [6991, 7745], [7002, 7793], [6986, 7846], [6993, 7920], [7026, 7946], [7074, 7951], [7082, 7978], [7133, 7991], [7179, 8054], [7220, 8052], [7267, 8095]]] } }, { "type": "Feature", "id": "TR.HT", "properties": { "hc-group": "admin1", "hc-middle-x": 0.52, "hc-middle-y": 0.51, "hc-key": "tr-ht", "hc-a2": "HT", "labelrank": "7", "hasc": "TR.HT", "alt-name": "Hatay", "woe-id": "2347286", "subregion": null, "fips": "TU31", "postal-code": "HT", "name": "Hatay", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.2284", "woe-name": "Hatay", "latitude": "36.4876", "woe-label": "Hatay, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5049, 6092], [5135, 6037], [5172, 6000], [5142, 5941], [5126, 5849], [5126, 5786], [5110, 5758], [5144, 5637], [5173, 5632], [5192, 5570], [5095, 5565], [5068, 5544], [5022, 5563], [5015, 5519], [5019, 5394], [4972, 5393], [4968, 5367], [4926, 5361], [4895, 5265], [4808, 5303], [4799, 5339], [4759, 5331], [4795, 5405], [4777, 5454], [4686, 5591], [4679, 5618], [4721, 5658], [4752, 5713], [4819, 5772], [4906, 5830], [4920, 5869], [4901, 5972], [4823, 6054], [4780, 6050], [4751, 6019], [4741, 6063], [4797, 6126], [4822, 6119], [4949, 6120], [4991, 6087], [5049, 6092]]] } }, { "type": "Feature", "id": "TR.AA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.67, "hc-key": "tr-aa", "hc-a2": "AA", "labelrank": "7", "hasc": "TR.AA", "alt-name": "Adana", "woe-id": "2347258", "subregion": null, "fips": "TU81", "postal-code": "AA", "name": "Adana", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.7555", "woe-name": "Adana", "latitude": "37.4006", "woe-label": "Adana, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4822, 6119], [4797, 6126], [4741, 6063], [4751, 6019], [4679, 5946], [4609, 5936], [4546, 5889], [4599, 5899], [4582, 5822], [4532, 5808], [4513, 5825], [4419, 5773], [4239, 5877], [4175, 5899], [4252, 5950], [4241, 6070], [4257, 6116], [4234, 6138], [4171, 6155], [4154, 6270], [4126, 6291], [4084, 6373], [4085, 6423], [4124, 6492], [4101, 6583], [4119, 6610], [4177, 6600], [4233, 6610], [4306, 6687], [4405, 6682], [4528, 6644], [4558, 6659], [4542, 6791], [4749, 6942], [4815, 7057], [4837, 7118], [4904, 7165], [4950, 7179], [4980, 7167], [5043, 7073], [4996, 6997], [4952, 6774], [4976, 6645], [4932, 6598], [4835, 6591], [4810, 6546], [4744, 6376], [4746, 6321], [4765, 6269], [4814, 6264], [4845, 6201], [4822, 6119]]] } }, { "type": "Feature", "id": "TR.CM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.48, "hc-middle-y": 0.47, "hc-key": "tr-cm", "hc-a2": "CM", "labelrank": "7", "hasc": "TR.CM", "alt-name": "Çorum", "woe-id": "2347276", "subregion": null, "fips": "TU19", "postal-code": "CM", "name": "Çorum", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.711", "woe-name": "Çorum", "latitude": "40.6149", "woe-label": "Çorum, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3639, 8179], [3638, 8216], [3663, 8264], [3655, 8325], [3617, 8351], [3588, 8436], [3652, 8469], [3689, 8551], [3655, 8628], [3628, 8763], [3645, 8820], [3617, 8865], [3742, 8909], [3754, 8945], [3714, 8995], [3756, 9080], [3794, 9119], [3827, 9186], [3855, 9193], [3870, 9175], [3963, 9162], [3993, 9136], [4055, 9118], [4081, 9167], [4110, 9118], [4132, 9037], [4194, 9038], [4174, 8963], [4167, 8844], [4211, 8752], [4320, 8728], [4390, 8698], [4405, 8666], [4395, 8587], [4349, 8513], [4340, 8428], [4265, 8414], [4260, 8331], [4203, 8284], [4130, 8293], [4048, 8251], [3948, 8236], [3863, 8249], [3757, 8206], [3670, 8195], [3639, 8179]]] } }, { "type": "Feature", "id": "TR.KK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.49, "hc-key": "tr-kk", "hc-a2": "KK", "labelrank": "7", "hasc": "TR.KK", "alt-name": "Kırıkkale", "woe-id": "2347329", "subregion": null, "fips": "TU79", "postal-code": "KK", "name": "Kırıkkale", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.778", "woe-name": "Kırıkkale", "latitude": "39.9011", "woe-label": "Kırıkkale, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3588, 8436], [3617, 8351], [3655, 8325], [3663, 8264], [3638, 8216], [3639, 8179], [3647, 8150], [3652, 8120], [3563, 8034], [3539, 7960], [3501, 7899], [3411, 7825], [3349, 7716], [3304, 7802], [3282, 7904], [3222, 7986], [3208, 8046], [3238, 8168], [3262, 8230], [3367, 8255], [3370, 8388], [3384, 8488], [3536, 8441], [3588, 8436]]] } }, { "type": "Feature", "id": "TR.NG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.39, "hc-key": "tr-ng", "hc-a2": "NG", "labelrank": "7", "hasc": "TR.NG", "alt-name": "Niğde", "woe-id": "2347323", "subregion": null, "fips": "TU73", "postal-code": "NG", "name": "Niğde", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.7093", "woe-name": "Niğde", "latitude": "37.8966", "woe-label": "Niğde, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3716, 6809], [3900, 7090], [4013, 7103], [4082, 7064], [4141, 7087], [4183, 6979], [4217, 6944], [4309, 6945], [4325, 6898], [4324, 6836], [4343, 6786], [4317, 6768], [4306, 6687], [4233, 6610], [4177, 6600], [4119, 6610], [4101, 6583], [4124, 6492], [4085, 6423], [4084, 6373], [4044, 6382], [3968, 6346], [3924, 6344], [3852, 6440], [3854, 6493], [3889, 6565], [3882, 6606], [3798, 6719], [3744, 6743], [3716, 6809]]] } }, { "type": "Feature", "id": "TR.AK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.48, "hc-middle-y": 0.62, "hc-key": "tr-ak", "hc-a2": "AK", "labelrank": "6", "hasc": "TR.AK", "alt-name": "Aksaray", "woe-id": "2347325", "subregion": null, "fips": "TU75", "postal-code": "AK", "name": "Aksaray", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.8772", "woe-name": "Aksaray", "latitude": "38.3566", "woe-label": "Aksaray, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3900, 7090], [3716, 6809], [3674, 6815], [3542, 6775], [3409, 6770], [3316, 6756], [3254, 6825], [3241, 6882], [3206, 6951], [3210, 7009], [3264, 7186], [3319, 7267], [3463, 7321], [3514, 7320], [3582, 7376], [3583, 7418], [3560, 7478], [3578, 7526], [3644, 7502], [3674, 7454], [3751, 7475], [3745, 7446], [3764, 7382], [3736, 7312], [3745, 7276], [3799, 7252], [3835, 7253], [3825, 7149], [3900, 7090]]] } }, { "type": "Feature", "id": "TR.KH", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.48, "hc-key": "tr-kh", "hc-a2": "KH", "labelrank": "7", "hasc": "TR.KH", "alt-name": "Kırşehir", "woe-id": "2347295", "subregion": null, "fips": "TU40", "postal-code": "KH", "name": "Kırşehir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.1308", "woe-name": "Kırşehir", "latitude": "39.3548", "woe-label": "Kırşehir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3751, 7475], [3674, 7454], [3644, 7502], [3578, 7526], [3582, 7550], [3470, 7603], [3361, 7675], [3349, 7716], [3411, 7825], [3501, 7899], [3539, 7960], [3563, 8034], [3652, 8120], [3704, 8099], [3762, 8041], [3832, 8033], [3855, 7987], [3933, 7894], [3986, 7874], [4026, 7820], [3947, 7814], [3969, 7714], [3963, 7668], [3993, 7611], [3970, 7581], [3838, 7516], [3826, 7477], [3836, 7429], [3813, 7423], [3751, 7475]]] } }, { "type": "Feature", "id": "TR.YZ", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.5, "hc-key": "tr-yz", "hc-a2": "YZ", "labelrank": "7", "hasc": "TR.YZ", "alt-name": "Yozgat", "woe-id": "2347317", "subregion": null, "fips": "TU66", "postal-code": "YZ", "name": "Yozgat", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.1328", "woe-name": "Yozgat", "latitude": "39.5476", "woe-label": "Yozgat, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3652, 8120], [3647, 8150], [3639, 8179], [3670, 8195], [3757, 8206], [3863, 8249], [3948, 8236], [4048, 8251], [4130, 8293], [4203, 8284], [4260, 8331], [4265, 8414], [4340, 8428], [4360, 8404], [4441, 8398], [4525, 8327], [4620, 8325], [4717, 8353], [4741, 8331], [4739, 8262], [4768, 8217], [4785, 8165], [4842, 8076], [4827, 8017], [4741, 7936], [4677, 7833], [4632, 7788], [4587, 7721], [4409, 7599], [4322, 7548], [4194, 7565], [4161, 7670], [4116, 7697], [4096, 7747], [4026, 7820], [3986, 7874], [3933, 7894], [3855, 7987], [3832, 8033], [3762, 8041], [3704, 8099], [3652, 8120]]] } }, { "type": "Feature", "id": "TR.AM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.53, "hc-middle-y": 0.47, "hc-key": "tr-am", "hc-a2": "AM", "labelrank": "7", "hasc": "TR.AM", "alt-name": "Amasya", "woe-id": "2347262", "subregion": null, "fips": "TU05", "postal-code": "AM", "name": "Amasya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.7627", "woe-name": "Amasya", "latitude": "40.6379", "woe-label": "Amasya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4441, 8398], [4360, 8404], [4340, 8428], [4349, 8513], [4395, 8587], [4405, 8666], [4390, 8698], [4320, 8728], [4211, 8752], [4167, 8844], [4174, 8963], [4194, 9038], [4364, 8995], [4398, 9002], [4497, 8934], [4534, 8898], [4670, 8900], [4713, 8881], [4779, 8922], [4803, 8985], [4824, 9000], [4877, 8946], [4937, 8906], [4927, 8865], [4969, 8817], [4920, 8702], [4876, 8690], [4874, 8654], [4780, 8592], [4708, 8626], [4618, 8631], [4536, 8488], [4477, 8463], [4441, 8398]]] } }, { "type": "Feature", "id": "TR.MS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.36, "hc-middle-y": 0.62, "hc-key": "tr-ms", "hc-a2": "MS", "labelrank": "7", "hasc": "TR.MS", "alt-name": "Muş", "woe-id": "2347302", "subregion": null, "fips": "TU49", "postal-code": "MS", "name": "Muş", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.9034", "woe-name": "Muş", "latitude": "38.9124", "woe-label": "Muş, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7880, 7427], [7849, 7419], [7818, 7407], [7792, 7429], [7787, 7487], [7714, 7546], [7650, 7648], [7663, 7706], [7698, 7758], [7695, 7818], [7651, 7877], [7628, 7949], [7642, 7995], [7730, 8018], [7776, 8012], [7858, 7952], [7910, 7899], [8008, 7886], [8050, 7921], [8118, 7940], [8179, 7998], [8194, 8093], [8266, 8139], [8319, 8153], [8367, 8072], [8456, 7981], [8467, 7812], [8385, 7752], [8292, 7752], [8200, 7703], [8186, 7657], [8136, 7653], [8128, 7626], [8155, 7569], [8104, 7506], [8066, 7480], [7969, 7478], [7880, 7427]]] } }, { "type": "Feature", "id": "TR.BM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.35, "hc-key": "tr-bm", "hc-a2": "BM", "labelrank": "7", "hasc": "TR.BM", "alt-name": "Batman", "woe-id": "2347326", "subregion": null, "fips": "TU76", "postal-code": "BM", "name": "Batman", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.4262", "woe-name": "Batman", "latitude": "37.7343", "woe-label": "Batman, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7818, 7407], [7849, 7419], [7880, 7427], [7930, 7413], [7975, 7279], [7985, 7194], [7929, 7087], [7865, 7063], [7849, 7028], [7858, 6981], [7925, 6930], [8032, 6898], [8100, 6836], [7941, 6697], [7855, 6671], [7790, 6704], [7742, 6784], [7697, 6831], [7671, 6834], [7643, 6902], [7693, 6970], [7729, 7094], [7715, 7212], [7728, 7321], [7739, 7340], [7824, 7383], [7818, 7407]]] } }, { "type": "Feature", "id": "TR.KA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.6, "hc-middle-y": 0.53, "hc-key": "tr-ka", "hc-a2": "KA", "labelrank": "7", "hasc": "TR.KA", "alt-name": "Kars", "woe-id": "2347291", "subregion": null, "fips": "TU84", "postal-code": "KA", "name": "Kars", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "43.074", "woe-name": "Kars", "latitude": "40.3671", "woe-label": "Kars, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8955, 8678], [8790, 8607], [8775, 8553], [8744, 8562], [8632, 8551], [8467, 8484], [8357, 8493], [8305, 8566], [8241, 8607], [8157, 8624], [8106, 8677], [8119, 8718], [8197, 8753], [8306, 8837], [8284, 8908], [8292, 8959], [8419, 8992], [8428, 9189], [8490, 9231], [8744, 9382], [8763, 9322], [8847, 9289], [8921, 9165], [8940, 9091], [8911, 8979], [8868, 8927], [8906, 8899], [8895, 8843], [8947, 8791], [8981, 8724], [8946, 8698], [8955, 8678]]] } }, { "type": "Feature", "id": "TR.IG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.51, "hc-key": "tr-ig", "hc-a2": "IG", "labelrank": "7", "hasc": "TR.IG", "alt-name": "Iğdır", "woe-id": "20070183", "subregion": null, "fips": "TU88", "postal-code": "IG", "name": "Iğdır", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "44.0317", "woe-name": "Iğdır", "latitude": "39.811", "woe-label": "Iğdır, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8775, 8553], [8790, 8607], [8955, 8678], [9100, 8632], [9168, 8629], [9288, 8670], [9328, 8669], [9411, 8634], [9478, 8570], [9549, 8523], [9599, 8475], [9633, 8419], [9487, 8492], [9434, 8436], [9439, 8395], [9406, 8404], [9309, 8368], [9222, 8376], [9115, 8364], [9105, 8384], [9016, 8405], [8982, 8450], [8904, 8473], [8836, 8424], [8806, 8436], [8775, 8553]]] } }, { "type": "Feature", "id": "TR.DU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.4, "hc-middle-y": 0.48, "hc-key": "tr-du", "hc-a2": "DU", "labelrank": "7", "hasc": "TR.DU", "alt-name": "Düzce", "woe-id": "29390030", "subregion": null, "fips": "TU93", "postal-code": "DU", "name": "Düzce", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.3231", "woe-name": null, "latitude": "40.8631", "woe-label": "Düzce, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1943, 9034], [2093, 9038], [2156, 9079], [2177, 9059], [2269, 9011], [2402, 8997], [2391, 8934], [2364, 8903], [2243, 8881], [2216, 8861], [2192, 8772], [2149, 8740], [2096, 8736], [2035, 8763], [1946, 8762], [1901, 8779], [1905, 8879], [1893, 8920], [1945, 8991], [1943, 9034]]] } }, { "type": "Feature", "id": "TR.ZO", "properties": { "hc-group": "admin1", "hc-middle-x": 0.58, "hc-middle-y": 0.57, "hc-key": "tr-zo", "hc-a2": "ZO", "labelrank": "7", "hasc": "TR.ZO", "alt-name": "Zonguldak", "woe-id": "20070185", "subregion": null, "fips": "TU85", "postal-code": "ZO", "name": "Zonguldak", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.8206", "woe-name": "Zonguldak", "latitude": "41.2481", "woe-label": "Zonguldak, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2669, 9202], [2620, 9138], [2593, 9042], [2592, 8978], [2475, 8983], [2402, 8997], [2269, 9011], [2177, 9059], [2156, 9079], [2187, 9116], [2190, 9198], [2329, 9254], [2445, 9329], [2537, 9379], [2588, 9396], [2651, 9350], [2681, 9263], [2669, 9202]]] } }, { "type": "Feature", "id": "TR.KB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.48, "hc-middle-y": 0.54, "hc-key": "tr-kb", "hc-a2": "KB", "labelrank": "7", "hasc": "TR.KB", "alt-name": "Karabük", "woe-id": "20070186", "subregion": null, "fips": "TU89", "postal-code": "KB", "name": "Karabük", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.5067", "woe-name": "Karabük", "latitude": "41.2347", "woe-label": "Karabük, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2592, 8978], [2593, 9042], [2620, 9138], [2669, 9202], [2728, 9198], [2785, 9213], [2851, 9267], [2876, 9320], [2906, 9328], [2958, 9377], [2976, 9356], [3049, 9375], [3088, 9346], [3119, 9247], [3065, 9236], [3012, 9174], [3018, 9072], [3077, 9055], [3094, 9029], [3070, 8970], [3018, 8941], [2965, 8947], [2919, 8888], [2854, 8837], [2797, 8811], [2779, 8868], [2662, 8927], [2666, 8966], [2592, 8978]]] } }, { "type": "Feature", "id": "TR.YL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.27, "hc-key": "tr-yl", "hc-a2": "YL", "labelrank": "7", "hasc": "TR.YL", "alt-name": "Yalova", "woe-id": "20070182", "subregion": null, "fips": "TU92", "postal-code": "YL", "name": "Yalova", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.2036", "woe-name": "Yalova", "latitude": "40.6154", "woe-label": "Yalova, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1097, 8715], [1091, 8688], [1057, 8696], [1020, 8661], [985, 8655], [903, 8696], [848, 8705], [846, 8627], [811, 8633], [735, 8674], [746, 8696], [855, 8757], [1018, 8765], [1080, 8792], [1099, 8779], [1097, 8715]]] } }, { "type": "Feature", "id": "TR.SK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.59, "hc-middle-y": 0.53, "hc-key": "tr-sk", "hc-a2": "SK", "labelrank": "7", "hasc": "TR.SK", "alt-name": "Sakarya", "woe-id": "2347306", "subregion": null, "fips": "TU54", "postal-code": "SK", "name": "Sakarya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.4439", "woe-name": "Sakarya", "latitude": "40.6596", "woe-label": "Sakarya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1943, 9034], [1945, 8991], [1893, 8920], [1905, 8879], [1901, 8779], [1866, 8753], [1863, 8686], [1789, 8672], [1734, 8583], [1759, 8524], [1748, 8498], [1678, 8506], [1640, 8547], [1574, 8552], [1498, 8534], [1450, 8551], [1409, 8593], [1376, 8655], [1371, 8671], [1369, 8687], [1407, 8689], [1512, 8732], [1535, 8776], [1561, 8883], [1597, 8920], [1590, 8949], [1669, 8936], [1684, 9006], [1644, 9014], [1636, 9051], [1658, 9105], [1804, 9066], [1830, 9044], [1943, 9034]]] } }, { "type": "Feature", "id": "TR.CI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.6, "hc-middle-y": 0.55, "hc-key": "tr-ci", "hc-a2": "CI", "labelrank": "7", "hasc": "TR.CI", "alt-name": "Çankırı", "woe-id": "2347275", "subregion": null, "fips": "TU82", "postal-code": "CI", "name": "Çankırı", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.2142", "woe-name": "Çankırı", "latitude": "40.7087", "woe-label": "Çankırı, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2786, 8751], [2795, 8790], [2797, 8811], [2854, 8837], [2919, 8888], [2965, 8947], [3018, 8941], [3070, 8970], [3094, 9029], [3114, 9006], [3184, 8998], [3279, 8934], [3357, 8976], [3399, 8984], [3487, 9032], [3520, 9006], [3483, 8945], [3504, 8910], [3572, 8870], [3617, 8865], [3645, 8820], [3628, 8763], [3655, 8628], [3689, 8551], [3652, 8469], [3588, 8436], [3536, 8441], [3384, 8488], [3275, 8528], [3246, 8486], [3206, 8481], [3169, 8509], [3151, 8552], [3080, 8603], [3033, 8670], [2873, 8745], [2786, 8751]]] } }, { "type": "Feature", "id": "TR.BL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.47, "hc-key": "tr-bl", "hc-a2": "BL", "labelrank": "7", "hasc": "TR.BL", "alt-name": "Bolu", "woe-id": "2347271", "subregion": null, "fips": "TU14", "postal-code": "BL", "name": "Bolu", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.6806", "woe-name": "Bolu", "latitude": "40.5854", "woe-label": "Bolu, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2797, 8811], [2795, 8790], [2786, 8751], [2751, 8728], [2748, 8689], [2769, 8631], [2724, 8566], [2679, 8543], [2603, 8555], [2557, 8532], [2407, 8490], [2317, 8490], [2267, 8471], [2204, 8489], [2186, 8509], [2093, 8501], [1994, 8550], [1957, 8429], [1911, 8404], [1876, 8359], [1840, 8366], [1807, 8379], [1755, 8466], [1748, 8498], [1759, 8524], [1734, 8583], [1789, 8672], [1863, 8686], [1866, 8753], [1901, 8779], [1946, 8762], [2035, 8763], [2096, 8736], [2149, 8740], [2192, 8772], [2216, 8861], [2243, 8881], [2364, 8903], [2391, 8934], [2402, 8997], [2475, 8983], [2592, 8978], [2666, 8966], [2662, 8927], [2779, 8868], [2797, 8811]]] } }, { "type": "Feature", "id": "TR.ED", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.74, "hc-key": "tr-ed", "hc-a2": "ED", "labelrank": "7", "hasc": "TR.ED", "alt-name": "Edirne", "woe-id": "2347279", "subregion": null, "fips": "TU22", "postal-code": "ED", "name": "Edirne", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "26.4697", "woe-name": "Edirne", "latitude": "40.9579", "woe-label": "Edirne, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[-347, 8885], [-347, 8883], [-354, 8838], [-449, 8830], [-508, 8805], [-540, 8822], [-619, 8815], [-743, 8832], [-760, 8923], [-702, 8942], [-655, 8996], [-645, 9033], [-568, 9075], [-582, 9190], [-567, 9284], [-533, 9285], [-449, 9346], [-422, 9328], [-395, 9361], [-405, 9532], [-416, 9517], [-474, 9563], [-466, 9582], [-541, 9615], [-536, 9670], [-512, 9688], [-431, 9687], [-414, 9760], [-370, 9787], [-310, 9776], [-255, 9783], [-235, 9629], [-234, 9559], [-251, 9490], [-317, 9354], [-303, 9320], [-301, 9206], [-342, 9131], [-375, 9039], [-375, 8980], [-347, 8885]]] } }, { "type": "Feature", "id": "TR.ES", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.55, "hc-key": "tr-es", "hc-a2": "ES", "labelrank": "7", "hasc": "TR.ES", "alt-name": "Eskişehir", "woe-id": "2347283", "subregion": null, "fips": "TU26", "postal-code": "ES", "name": "Eskişehir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.0894", "woe-name": "Eskişehir", "latitude": "39.6297", "woe-label": "Eskişehir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1807, 8379], [1840, 8366], [1876, 8359], [1899, 8328], [1906, 8270], [1942, 8267], [1995, 8288], [2055, 8270], [2087, 8293], [2165, 8291], [2188, 8267], [2352, 8264], [2381, 8168], [2416, 8157], [2435, 8111], [2412, 8085], [2442, 7973], [2470, 7948], [2494, 7883], [2488, 7777], [2521, 7724], [2496, 7693], [2418, 7650], [2403, 7597], [2326, 7595], [2261, 7602], [2188, 7596], [2147, 7629], [2120, 7692], [2082, 7735], [1914, 7647], [1863, 7689], [1806, 7640], [1722, 7603], [1679, 7631], [1659, 7670], [1624, 7691], [1615, 7737], [1561, 7813], [1542, 7912], [1462, 8008], [1520, 8084], [1528, 8158], [1579, 8207], [1637, 8217], [1686, 8270], [1705, 8343], [1751, 8378], [1807, 8379]]] } }, { "type": "Feature", "id": "TR.KO", "properties": { "hc-group": "admin1", "hc-middle-x": 0.35, "hc-middle-y": 0.42, "hc-key": "tr-ko", "hc-a2": "KO", "labelrank": "7", "hasc": "TR.KO", "alt-name": "Konya", "woe-id": "2347321", "subregion": null, "fips": "TU71", "postal-code": "KO", "name": "Konya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.469", "woe-name": "Konya", "latitude": "38.04", "woe-label": "Konya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2326, 7595], [2403, 7597], [2418, 7650], [2467, 7624], [2566, 7550], [2653, 7570], [2763, 7522], [2832, 7565], [2874, 7547], [2978, 7636], [3061, 7598], [3091, 7683], [3115, 7683], [3236, 7609], [3266, 7539], [3262, 7378], [3319, 7267], [3264, 7186], [3210, 7009], [3206, 6951], [3241, 6882], [3254, 6825], [3316, 6756], [3409, 6770], [3542, 6775], [3674, 6815], [3716, 6809], [3744, 6743], [3798, 6719], [3882, 6606], [3889, 6565], [3854, 6493], [3852, 6440], [3924, 6344], [3918, 6321], [3835, 6268], [3753, 6233], [3718, 6199], [3664, 6292], [3517, 6448], [3501, 6540], [3421, 6551], [3351, 6474], [3292, 6452], [3118, 6436], [3064, 6414], [2966, 6305], [2842, 6140], [2831, 6067], [2900, 6048], [2907, 6007], [2806, 5899], [2741, 5850], [2745, 5899], [2724, 5964], [2655, 5981], [2666, 6055], [2625, 6076], [2553, 6141], [2499, 6208], [2375, 6303], [2228, 6335], [2146, 6347], [2099, 6396], [2121, 6479], [2100, 6552], [2144, 6582], [2171, 6653], [2159, 6766], [2172, 6813], [2268, 6861], [2272, 6884], [2161, 6982], [2083, 7064], [2068, 7117], [2169, 7181], [2263, 7289], [2272, 7372], [2334, 7476], [2312, 7529], [2326, 7595]]] } }, { "type": "Feature", "id": "TR.BU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.5, "hc-key": "tr-bu", "hc-a2": "BU", "labelrank": "7", "hasc": "TR.BU", "alt-name": "Bursa", "woe-id": "2347273", "subregion": null, "fips": "TU16", "postal-code": "BU", "name": "Bursa", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.0593", "woe-name": "Bursa", "latitude": "40.1314", "woe-label": "Bursa, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1369, 8687], [1371, 8671], [1376, 8655], [1323, 8620], [1294, 8542], [1310, 8483], [1244, 8409], [1226, 8302], [1267, 8247], [1274, 8211], [1215, 8209], [1146, 8201], [1089, 8226], [1060, 8208], [1011, 8081], [984, 8063], [965, 7983], [934, 7965], [831, 7980], [810, 7997], [781, 8021], [707, 8023], [670, 8057], [653, 8131], [625, 8113], [581, 8121], [440, 8236], [424, 8310], [386, 8351], [357, 8427], [380, 8478], [355, 8531], [419, 8601], [572, 8594], [654, 8564], [729, 8588], [830, 8555], [890, 8561], [905, 8597], [939, 8601], [894, 8637], [846, 8627], [848, 8705], [903, 8696], [985, 8655], [1020, 8661], [1057, 8696], [1091, 8688], [1154, 8677], [1295, 8717], [1369, 8687]]] } }, { "type": "Feature", "id": "TR.KL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.49, "hc-key": "tr-kl", "hc-a2": "KL", "labelrank": "7", "hasc": "TR.KL", "alt-name": "Kırklareli", "woe-id": "2347294", "subregion": null, "fips": "TU39", "postal-code": "KL", "name": "Kırklareli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.4916", "woe-name": "Kırklareli", "latitude": "41.6201", "woe-label": "Kırklareli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[461, 9423], [435, 9390], [434, 9390], [244, 9379], [130, 9355], [80, 9280], [12, 9251], [-68, 9329], [-220, 9332], [-303, 9320], [-317, 9354], [-251, 9490], [-234, 9559], [-235, 9629], [-255, 9783], [-200, 9795], [-151, 9847], [-70, 9830], [-15, 9851], [58, 9761], [123, 9704], [159, 9740], [221, 9746], [255, 9726], [267, 9762], [379, 9740], [390, 9680], [354, 9680], [348, 9633], [405, 9525], [401, 9502], [461, 9423]]] } }, { "type": "Feature", "id": "TR.IB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.27, "hc-middle-y": 0.55, "hc-key": "tr-ib", "hc-a2": "IB", "labelrank": "7", "hasc": "TR.IB", "alt-name": "İstanbul", "woe-id": "2347289", "subregion": null, "fips": "TU34", "postal-code": "IB", "name": "İstanbul", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "28.8463", "woe-name": "İstanbul", "latitude": "41.1285", "woe-label": "İstanbul, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[434, 9390], [435, 9390], [461, 9423], [556, 9351], [671, 9294], [834, 9206], [942, 9179], [926, 9131], [952, 9161], [1008, 9180], [1217, 9127], [1349, 9102], [1355, 9050], [1339, 9014], [1240, 8966], [1225, 8932], [1190, 8945], [1149, 9004], [1121, 9008], [1009, 8916], [951, 8947], [889, 8998], [880, 9034], [911, 9065], [915, 9100], [865, 9014], [842, 9018], [776, 8989], [735, 9004], [653, 9007], [644, 9071], [624, 9017], [582, 9050], [461, 9094], [428, 9093], [419, 9189], [448, 9290], [434, 9390]]] } }, { "type": "Feature", "id": "TR.KR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.39, "hc-key": "tr-kr", "hc-a2": "KR", "labelrank": "7", "hasc": "TR.KR", "alt-name": "Karaman", "woe-id": "2347328", "subregion": null, "fips": "TU78", "postal-code": "KR", "name": "Karaman", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.3026", "woe-name": "Karaman", "latitude": "37.2262", "woe-label": "Karaman, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2854, 5680], [2784, 5749], [2741, 5850], [2806, 5899], [2907, 6007], [2900, 6048], [2831, 6067], [2842, 6140], [2966, 6305], [3064, 6414], [3118, 6436], [3292, 6452], [3351, 6474], [3421, 6551], [3501, 6540], [3517, 6448], [3664, 6292], [3718, 6199], [3613, 6170], [3558, 6128], [3481, 6106], [3413, 6108], [3368, 6090], [3271, 6076], [3172, 6003], [3153, 5950], [3118, 5973], [3044, 5943], [3081, 5849], [3149, 5810], [3190, 5768], [3175, 5749], [3115, 5763], [3086, 5700], [3032, 5699], [2964, 5676], [2854, 5680]]] } }, { "type": "Feature", "id": "TR.AL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.26, "hc-middle-y": 0.48, "hc-key": "tr-al", "hc-a2": "AL", "labelrank": "7", "hasc": "TR.AL", "alt-name": "Antalya", "woe-id": "2347264", "subregion": null, "fips": "TU07", "postal-code": "AL", "name": "Antalya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.9564", "woe-name": "Antalya", "latitude": "37.1141", "woe-label": "Antalya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2741, 5850], [2784, 5749], [2854, 5680], [2851, 5559], [2806, 5433], [2772, 5440], [2686, 5494], [2638, 5547], [2635, 5573], [2586, 5624], [2535, 5717], [2491, 5758], [2370, 5793], [2324, 5831], [2134, 5921], [2096, 5955], [1865, 5994], [1770, 5991], [1719, 6022], [1669, 5985], [1650, 5945], [1640, 5828], [1645, 5762], [1616, 5735], [1588, 5673], [1613, 5629], [1540, 5533], [1541, 5563], [1458, 5609], [1402, 5604], [1393, 5572], [1301, 5549], [1256, 5549], [1153, 5485], [1175, 5510], [1135, 5511], [1114, 5487], [1075, 5548], [1013, 5553], [966, 5596], [933, 5574], [879, 5618], [906, 5640], [942, 5738], [1010, 5749], [1013, 5788], [1070, 5831], [1075, 5915], [1143, 6056], [1176, 6066], [1231, 6141], [1242, 6195], [1275, 6237], [1380, 6287], [1502, 6326], [1536, 6320], [1584, 6270], [1782, 6268], [1829, 6336], [1871, 6370], [1921, 6349], [2012, 6372], [2068, 6401], [2099, 6396], [2146, 6347], [2228, 6335], [2375, 6303], [2499, 6208], [2553, 6141], [2625, 6076], [2666, 6055], [2655, 5981], [2724, 5964], [2745, 5899], [2741, 5850]]] } }, { "type": "Feature", "id": "TR.AF", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.33, "hc-key": "tr-af", "hc-a2": "AF", "labelrank": "7", "hasc": "TR.AF", "alt-name": "Afyon", "woe-id": "2347260", "subregion": null, "fips": "TU03", "postal-code": "AF", "name": "Afyonkarahisar", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.6938", "woe-name": "Afyon", "latitude": "38.6784", "woe-label": "Afyonkarahisar, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1352, 6670], [1301, 6675], [1254, 6661], [1230, 6706], [1153, 6732], [1156, 6805], [1359, 6950], [1368, 7016], [1297, 7139], [1219, 7160], [1253, 7253], [1288, 7285], [1301, 7342], [1421, 7408], [1462, 7465], [1516, 7604], [1583, 7632], [1624, 7691], [1659, 7670], [1679, 7631], [1722, 7603], [1806, 7640], [1863, 7689], [1914, 7647], [2082, 7735], [2120, 7692], [2147, 7629], [2188, 7596], [2261, 7602], [2326, 7595], [2312, 7529], [2334, 7476], [2272, 7372], [2263, 7289], [2169, 7181], [2068, 7117], [1982, 7185], [1870, 7090], [1798, 7018], [1730, 7000], [1654, 6961], [1595, 6904], [1467, 6800], [1458, 6725], [1438, 6691], [1352, 6670]]] } }, { "type": "Feature", "id": "TR.BD", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.4, "hc-key": "tr-bd", "hc-a2": "BD", "labelrank": "7", "hasc": "TR.BD", "alt-name": "Burdur", "woe-id": "2347272", "subregion": null, "fips": "TU15", "postal-code": "BD", "name": "Burdur", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.1627", "woe-name": "Burdur", "latitude": "37.5001", "woe-label": "Burdur, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1254, 6661], [1301, 6675], [1352, 6670], [1369, 6624], [1412, 6625], [1537, 6714], [1635, 6613], [1711, 6604], [1744, 6582], [1777, 6489], [1825, 6410], [1851, 6408], [1871, 6370], [1829, 6336], [1782, 6268], [1584, 6270], [1536, 6320], [1502, 6326], [1380, 6287], [1275, 6237], [1242, 6195], [1231, 6141], [1176, 6066], [1143, 6056], [1097, 6125], [1027, 6118], [998, 6085], [976, 6094], [975, 6173], [992, 6249], [1096, 6414], [1076, 6467], [1074, 6535], [1148, 6571], [1163, 6603], [1254, 6661]]] } }, { "type": "Feature", "id": "TR.IP", "properties": { "hc-group": "admin1", "hc-middle-x": 0.57, "hc-middle-y": 0.54, "hc-key": "tr-ip", "hc-a2": "IP", "labelrank": "7", "hasc": "TR.IP", "alt-name": "Isparta", "woe-id": "2347288", "subregion": null, "fips": "TU33", "postal-code": "IP", "name": "Isparta", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.818", "woe-name": "Isparta", "latitude": "37.8923", "woe-label": "Isparta, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2099, 6396], [2068, 6401], [2012, 6372], [1921, 6349], [1871, 6370], [1851, 6408], [1825, 6410], [1777, 6489], [1744, 6582], [1711, 6604], [1635, 6613], [1537, 6714], [1412, 6625], [1369, 6624], [1352, 6670], [1438, 6691], [1458, 6725], [1467, 6800], [1595, 6904], [1654, 6961], [1730, 7000], [1798, 7018], [1870, 7090], [1982, 7185], [2068, 7117], [2083, 7064], [2161, 6982], [2272, 6884], [2268, 6861], [2172, 6813], [2159, 6766], [2171, 6653], [2144, 6582], [2100, 6552], [2121, 6479], [2099, 6396]]] } }, { "type": "Feature", "id": "TR.AY", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.49, "hc-key": "tr-ay", "hc-a2": "AY", "labelrank": "7", "hasc": "TR.AY", "alt-name": "Aydın", "woe-id": "2347266", "subregion": null, "fips": "TU09", "postal-code": "AY", "name": "Aydın", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.9573", "woe-name": "Aydın", "latitude": "37.7292", "woe-label": "Aydın, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[533, 6940], [610, 6935], [653, 6879], [664, 6789], [643, 6747], [674, 6691], [710, 6682], [712, 6646], [672, 6634], [612, 6570], [527, 6568], [514, 6542], [538, 6486], [464, 6500], [388, 6557], [347, 6568], [269, 6492], [159, 6494], [136, 6508], [57, 6510], [18, 6540], [-69, 6574], [-107, 6565], [-157, 6476], [-201, 6435], [-250, 6427], [-269, 6443], [-258, 6529], [-284, 6523], [-260, 6616], [-370, 6672], [-303, 6685], [-230, 6720], [-217, 6824], [-131, 6837], [-59, 6879], [-29, 6882], [110, 6863], [244, 6891], [354, 6887], [533, 6940]]] } }, { "type": "Feature", "id": "TR.MN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.55, "hc-middle-y": 0.53, "hc-key": "tr-mn", "hc-a2": "MN", "labelrank": "7", "hasc": "TR.MN", "alt-name": "Manisa", "woe-id": "2347299", "subregion": null, "fips": "TU45", "postal-code": "MN", "name": "Manisa", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "28.1324", "woe-name": "Manisa", "latitude": "38.7115", "woe-label": "Manisa, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[610, 6935], [533, 6940], [474, 7075], [406, 7106], [313, 7097], [278, 7161], [190, 7175], [165, 7129], [136, 7124], [99, 7193], [19, 7246], [-5, 7304], [-119, 7315], [-151, 7346], [-163, 7396], [-198, 7435], [-147, 7515], [-133, 7568], [-65, 7600], [-10, 7645], [-3, 7682], [-30, 7749], [-61, 7893], [-17, 7913], [70, 7864], [190, 7852], [202, 7829], [176, 7775], [240, 7776], [295, 7708], [321, 7642], [395, 7643], [433, 7674], [522, 7680], [575, 7704], [624, 7694], [662, 7652], [761, 7617], [803, 7535], [796, 7491], [824, 7422], [819, 7377], [712, 7288], [740, 7240], [744, 7172], [730, 7116], [696, 7075], [747, 7038], [694, 7028], [660, 6944], [610, 6935]]] } }, { "type": "Feature", "id": "TR.DY", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.47, "hc-key": "tr-dy", "hc-a2": "DY", "labelrank": "7", "hasc": "TR.DY", "alt-name": "Diyarbakır", "woe-id": "2347278", "subregion": null, "fips": "TU21", "postal-code": "DY", "name": "Diyarbakır", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.2706", "woe-name": "Diyarbakır", "latitude": "38.0261", "woe-label": "Diyarbakır, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6579, 6952], [6612, 7034], [6590, 7070], [6529, 7057], [6544, 7124], [6522, 7165], [6599, 7184], [6696, 7175], [6777, 7207], [6864, 7214], [6899, 7235], [6930, 7306], [6998, 7291], [7188, 7311], [7254, 7319], [7288, 7356], [7289, 7398], [7374, 7429], [7520, 7428], [7714, 7546], [7787, 7487], [7792, 7429], [7818, 7407], [7824, 7383], [7739, 7340], [7728, 7321], [7715, 7212], [7729, 7094], [7693, 6970], [7643, 6902], [7671, 6834], [7637, 6814], [7436, 6802], [7374, 6784], [7344, 6728], [7298, 6721], [7128, 6580], [7077, 6504], [7048, 6532], [7001, 6624], [6979, 6709], [6977, 6788], [6914, 6830], [6904, 6811], [6815, 6852], [6738, 6915], [6625, 6930], [6579, 6952]]] } }, { "type": "Feature", "id": "TR.AD", "properties": { "hc-group": "admin1", "hc-middle-x": 0.55, "hc-middle-y": 0.48, "hc-key": "tr-ad", "hc-a2": "AD", "labelrank": "7", "hasc": "TR.AD", "alt-name": "Adıyaman", "woe-id": "2347259", "subregion": null, "fips": "TU02", "postal-code": "AD", "name": "Adıyaman", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "38.339", "woe-name": "Adıyaman", "latitude": "37.8102", "woe-label": "Adıyaman, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6529, 7057], [6590, 7070], [6612, 7034], [6579, 6952], [6508, 6907], [6505, 6872], [6465, 6845], [6464, 6740], [6422, 6723], [6442, 6704], [6373, 6688], [6414, 6658], [6288, 6630], [6218, 6544], [6080, 6511], [6033, 6463], [5979, 6489], [5948, 6482], [5900, 6519], [5832, 6541], [5707, 6522], [5608, 6569], [5585, 6643], [5662, 6738], [5844, 6791], [5893, 6782], [5980, 6815], [6013, 6849], [6025, 6916], [6068, 6942], [6140, 7048], [6213, 7063], [6250, 7035], [6223, 6989], [6277, 6972], [6357, 6972], [6429, 6988], [6506, 7025], [6529, 7057]]] } }, { "type": "Feature", "id": "TR.KM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.54, "hc-key": "tr-km", "hc-a2": "KM", "labelrank": "7", "hasc": "TR.KM", "alt-name": "Kahramanmaraş", "woe-id": "2347300", "subregion": null, "fips": "TU46", "postal-code": "KM", "name": "Kahramanmaraş", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.0013", "woe-name": "Kahramanmaraş", "latitude": "37.9278", "woe-label": "Kahramanmaraş, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5662, 6738], [5585, 6643], [5608, 6569], [5707, 6522], [5706, 6447], [5682, 6430], [5610, 6422], [5432, 6359], [5382, 6301], [5337, 6314], [5318, 6377], [5290, 6394], [5264, 6356], [5196, 6321], [5169, 6357], [5094, 6403], [4953, 6368], [4929, 6396], [4902, 6480], [4934, 6542], [4932, 6598], [4976, 6645], [4952, 6774], [4996, 6997], [5043, 7073], [5121, 7175], [5154, 7265], [5172, 7278], [5246, 7299], [5349, 7277], [5475, 7294], [5445, 7237], [5453, 7195], [5495, 7202], [5580, 7188], [5654, 7149], [5739, 7121], [5769, 7074], [5738, 6938], [5708, 6889], [5684, 6782], [5662, 6738]]] } }, { "type": "Feature", "id": "TR.KY", "properties": { "hc-group": "admin1", "hc-middle-x": 0.45, "hc-middle-y": 0.38, "hc-key": "tr-ky", "hc-a2": "KY", "labelrank": "7", "hasc": "TR.KY", "alt-name": "Kayseri", "woe-id": "2347293", "subregion": null, "fips": "TU38", "postal-code": "KY", "name": "Kayseri", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.9256", "woe-name": "Kayseri", "latitude": "38.7168", "woe-label": "Kayseri, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5172, 7278], [5154, 7265], [5121, 7175], [5043, 7073], [4980, 7167], [4950, 7179], [4904, 7165], [4837, 7118], [4815, 7057], [4749, 6942], [4542, 6791], [4558, 6659], [4528, 6644], [4405, 6682], [4306, 6687], [4317, 6768], [4343, 6786], [4324, 6836], [4325, 6898], [4309, 6945], [4217, 6944], [4183, 6979], [4141, 7087], [4226, 7224], [4223, 7324], [4155, 7425], [4194, 7565], [4322, 7548], [4409, 7599], [4587, 7721], [4632, 7788], [4689, 7774], [4798, 7701], [4854, 7695], [4896, 7712], [4989, 7702], [5046, 7673], [5096, 7692], [5196, 7688], [5242, 7666], [5265, 7602], [5223, 7479], [5172, 7278]]] } }, { "type": "Feature", "id": "TR.EG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.7, "hc-key": "tr-eg", "hc-a2": "EG", "labelrank": "7", "hasc": "TR.EG", "alt-name": "Elazığ", "woe-id": "2347280", "subregion": null, "fips": "TU23", "postal-code": "EG", "name": "Elazığ", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.3702", "woe-name": "Elazığ", "latitude": "38.5718", "woe-label": "Elazığ, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6250, 7639], [6264, 7648], [6281, 7652], [6305, 7621], [6301, 7561], [6327, 7539], [6430, 7560], [6560, 7540], [6706, 7482], [6735, 7515], [6829, 7528], [6880, 7553], [6912, 7593], [6930, 7659], [6917, 7712], [6934, 7732], [6991, 7745], [7115, 7824], [7178, 7856], [7198, 7823], [7153, 7733], [7146, 7682], [7164, 7627], [7213, 7565], [7198, 7490], [7161, 7497], [7141, 7418], [7174, 7376], [7188, 7311], [6998, 7291], [6930, 7306], [6899, 7235], [6864, 7214], [6777, 7207], [6696, 7175], [6599, 7184], [6522, 7165], [6453, 7148], [6391, 7172], [6345, 7224], [6277, 7206], [6206, 7233], [6157, 7238], [6094, 7278], [6077, 7320], [6104, 7378], [6136, 7393], [6161, 7441], [6223, 7439], [6231, 7464], [6217, 7545], [6198, 7584], [6210, 7635], [6250, 7639]]] } }, { "type": "Feature", "id": "TR.IC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.47, "hc-middle-y": 0.54, "hc-key": "tr-ic", "hc-a2": "IC", "labelrank": "6", "hasc": "TR.IC", "alt-name": "Mersin", "woe-id": "2347287", "subregion": null, "fips": "TU32", "postal-code": "IC", "name": "Mersin", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.8268", "woe-name": "Mersin", "latitude": "36.6614", "woe-label": "Mersin, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4175, 5899], [4080, 5961], [4035, 5959], [3956, 5924], [3876, 5848], [3796, 5792], [3740, 5709], [3682, 5666], [3683, 5605], [3638, 5586], [3615, 5521], [3598, 5576], [3563, 5593], [3522, 5533], [3489, 5520], [3456, 5469], [3433, 5504], [3378, 5457], [3323, 5479], [3281, 5464], [3134, 5460], [3107, 5424], [3022, 5439], [2941, 5384], [2864, 5399], [2806, 5433], [2851, 5559], [2854, 5680], [2964, 5676], [3032, 5699], [3086, 5700], [3115, 5763], [3175, 5749], [3190, 5768], [3149, 5810], [3081, 5849], [3044, 5943], [3118, 5973], [3153, 5950], [3172, 6003], [3271, 6076], [3368, 6090], [3413, 6108], [3481, 6106], [3558, 6128], [3613, 6170], [3718, 6199], [3753, 6233], [3835, 6268], [3918, 6321], [3924, 6344], [3968, 6346], [4044, 6382], [4084, 6373], [4126, 6291], [4154, 6270], [4171, 6155], [4234, 6138], [4257, 6116], [4241, 6070], [4252, 5950], [4175, 5899]]] } }, { "type": "Feature", "id": "TR.SP", "properties": { "hc-group": "admin1", "hc-middle-x": 0.54, "hc-middle-y": 0.55, "hc-key": "tr-sp", "hc-a2": "SP", "labelrank": "7", "hasc": "TR.SP", "alt-name": "Sinop", "woe-id": "2347308", "subregion": null, "fips": "TU57", "postal-code": "SP", "name": "Sinop", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.8226", "woe-name": "Sinop", "latitude": "41.5894", "woe-label": "Sinop, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3709, 9658], [3772, 9650], [3853, 9671], [3895, 9655], [3967, 9652], [4022, 9665], [4070, 9699], [4101, 9765], [4141, 9761], [4204, 9710], [4181, 9657], [4255, 9526], [4296, 9493], [4352, 9478], [4406, 9443], [4386, 9394], [4395, 9281], [4416, 9186], [4303, 9164], [4217, 9222], [4196, 9253], [4106, 9203], [4081, 9167], [4055, 9118], [3993, 9136], [3963, 9162], [3870, 9175], [3855, 9193], [3858, 9287], [3848, 9314], [3863, 9367], [3895, 9395], [3913, 9443], [3883, 9483], [3847, 9492], [3706, 9505], [3671, 9518], [3713, 9617], [3709, 9658]]] } }, { "type": "Feature", "id": "TR.AV", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.38, "hc-key": "tr-av", "hc-a2": "AV", "labelrank": "6", "hasc": "TR.AV", "alt-name": "Artvin", "woe-id": "2347265", "subregion": null, "fips": "TU08", "postal-code": "AV", "name": "Artvin", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.8331", "woe-name": "Artvin", "latitude": "41.0175", "woe-label": "Artvin, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7509, 9390], [7552, 9432], [7607, 9456], [7628, 9511], [7668, 9560], [7728, 9542], [7769, 9552], [7833, 9510], [7900, 9578], [7941, 9567], [8015, 9586], [8179, 9553], [8198, 9483], [8246, 9386], [8237, 9335], [8194, 9307], [8152, 9250], [8125, 9178], [7987, 9154], [7953, 9126], [7956, 9066], [7925, 9011], [7920, 8949], [7899, 8909], [7805, 8938], [7763, 8922], [7671, 8863], [7630, 8892], [7637, 9005], [7548, 9014], [7503, 9034], [7508, 9064], [7626, 9237], [7548, 9300], [7509, 9390]]] } }, { "type": "Feature", "id": "TR.RI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.53, "hc-key": "tr-ri", "hc-a2": "RI", "labelrank": "7", "hasc": "TR.RI", "alt-name": "Rize", "woe-id": "2347305", "subregion": null, "fips": "TU53", "postal-code": "RI", "name": "Rize", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.8691", "woe-name": "Rize", "latitude": "40.9466", "woe-label": "Rize, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7067, 9127], [7125, 9173], [7176, 9172], [7249, 9218], [7313, 9297], [7352, 9293], [7417, 9325], [7467, 9375], [7509, 9390], [7548, 9300], [7626, 9237], [7508, 9064], [7503, 9034], [7409, 8950], [7344, 8928], [7331, 8885], [7255, 8860], [7170, 8808], [7161, 8902], [7119, 8987], [7108, 9037], [7067, 9127]]] } }, { "type": "Feature", "id": "TR.TB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.53, "hc-key": "tr-tb", "hc-a2": "TB", "labelrank": "7", "hasc": "TR.TB", "alt-name": "Trabzon", "woe-id": "2347312", "subregion": null, "fips": "TU61", "postal-code": "TB", "name": "Trabzon", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.8034", "woe-name": "Trabzon", "latitude": "40.7988", "woe-label": "Trabzon, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6406, 9133], [6475, 9122], [6557, 9173], [6592, 9167], [6650, 9116], [6694, 9103], [6726, 9116], [6799, 9084], [6875, 9103], [6948, 9064], [7067, 9127], [7108, 9037], [7119, 8987], [7161, 8902], [7170, 8808], [7004, 8771], [6910, 8779], [6850, 8826], [6809, 8792], [6779, 8834], [6739, 8856], [6719, 8812], [6667, 8801], [6535, 8843], [6460, 8932], [6419, 8915], [6407, 8942], [6397, 9044], [6406, 9133]]] } }, { "type": "Feature", "id": "TR.AN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.58, "hc-middle-y": 0.48, "hc-key": "tr-an", "hc-a2": "AN", "labelrank": "7", "hasc": "TR.AN", "alt-name": "Ankara", "woe-id": "2347263", "subregion": null, "fips": "TU68", "postal-code": "AN", "name": "Ankara", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.578", "woe-name": "Ankara", "latitude": "39.829", "woe-label": "Ankara, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3319, 7267], [3262, 7378], [3266, 7539], [3236, 7609], [3115, 7683], [3091, 7683], [3061, 7598], [2978, 7636], [2874, 7547], [2832, 7565], [2763, 7522], [2653, 7570], [2566, 7550], [2467, 7624], [2418, 7650], [2496, 7693], [2521, 7724], [2488, 7777], [2494, 7883], [2470, 7948], [2442, 7973], [2412, 8085], [2435, 8111], [2416, 8157], [2381, 8168], [2352, 8264], [2188, 8267], [2165, 8291], [2087, 8293], [2055, 8270], [1995, 8288], [1942, 8267], [1906, 8270], [1899, 8328], [1876, 8359], [1911, 8404], [1957, 8429], [1994, 8550], [2093, 8501], [2186, 8509], [2204, 8489], [2267, 8471], [2317, 8490], [2407, 8490], [2557, 8532], [2603, 8555], [2679, 8543], [2724, 8566], [2769, 8631], [2748, 8689], [2751, 8728], [2786, 8751], [2873, 8745], [3033, 8670], [3080, 8603], [3151, 8552], [3169, 8509], [3206, 8481], [3246, 8486], [3275, 8528], [3384, 8488], [3370, 8388], [3367, 8255], [3262, 8230], [3238, 8168], [3208, 8046], [3222, 7986], [3282, 7904], [3304, 7802], [3349, 7716], [3361, 7675], [3470, 7603], [3582, 7550], [3578, 7526], [3560, 7478], [3583, 7418], [3582, 7376], [3514, 7320], [3463, 7321], [3319, 7267]]] } }, { "type": "Feature", "id": "TR.SU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.62, "hc-key": "tr-su", "hc-a2": "SU", "labelrank": "7", "hasc": "TR.SU", "alt-name": "Şanlıurfa", "woe-id": "2347314", "subregion": null, "fips": "TU63", "postal-code": "SU", "name": "Şanlıurfa", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.0508", "woe-name": "Şanlıurfa", "latitude": "37.3189", "woe-label": "Şanlıurfa, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7253, 6189], [7096, 6093], [6975, 6037], [6674, 5958], [6643, 5955], [6551, 5979], [6415, 5960], [6337, 5979], [6254, 6057], [6113, 6098], [6055, 6098], [5963, 6042], [5948, 6129], [5923, 6152], [5927, 6195], [5895, 6188], [5863, 6212], [5840, 6348], [5862, 6409], [5910, 6473], [5948, 6482], [5979, 6489], [6033, 6463], [6080, 6511], [6218, 6544], [6288, 6630], [6414, 6658], [6373, 6688], [6442, 6704], [6422, 6723], [6464, 6740], [6465, 6845], [6505, 6872], [6508, 6907], [6579, 6952], [6625, 6930], [6738, 6915], [6815, 6852], [6904, 6811], [6914, 6830], [6977, 6788], [6979, 6709], [7001, 6624], [7048, 6532], [7077, 6504], [7091, 6419], [7160, 6361], [7167, 6288], [7226, 6200], [7253, 6189]]] } }, { "type": "Feature", "id": "TR.BB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.45, "hc-key": "tr-bb", "hc-a2": "BB", "labelrank": "6", "hasc": "TR.BB", "alt-name": "Bayburt", "woe-id": "2347327", "subregion": null, "fips": "TU77", "postal-code": "BB", "name": "Bayburt", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.3056", "woe-name": "Bayburt", "latitude": "40.2859", "woe-label": "Bayburt, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6809, 8792], [6850, 8826], [6910, 8779], [7004, 8771], [7170, 8808], [7191, 8766], [7233, 8626], [7269, 8610], [7359, 8599], [7337, 8537], [7240, 8489], [7196, 8443], [7085, 8441], [6993, 8453], [6947, 8418], [6859, 8400], [6820, 8491], [6839, 8581], [6835, 8687], [6809, 8792]]] } }, { "type": "Feature", "id": "TR.EM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.57, "hc-key": "tr-em", "hc-a2": "EM", "labelrank": "7", "hasc": "TR.EM", "alt-name": "Erzurum", "woe-id": "2347282", "subregion": null, "fips": "TU25", "postal-code": "EM", "name": "Erzurum", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.403", "woe-name": "Erzurum", "latitude": "39.9678", "woe-label": "Erzurum, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8292, 8959], [8284, 8908], [8306, 8837], [8197, 8753], [8119, 8718], [8106, 8677], [8157, 8624], [8241, 8607], [8305, 8566], [8357, 8493], [8262, 8424], [8201, 8416], [8252, 8365], [8335, 8342], [8324, 8316], [8336, 8219], [8319, 8153], [8266, 8139], [8194, 8093], [8179, 7998], [8118, 7940], [8050, 7921], [8008, 7886], [7910, 7899], [7858, 7952], [7776, 8012], [7730, 8018], [7642, 7995], [7587, 8061], [7509, 8078], [7433, 8133], [7354, 8083], [7304, 8086], [7302, 8131], [7328, 8201], [7262, 8242], [7237, 8308], [7196, 8354], [7101, 8347], [7070, 8360], [7085, 8441], [7196, 8443], [7240, 8489], [7337, 8537], [7359, 8599], [7269, 8610], [7233, 8626], [7191, 8766], [7170, 8808], [7255, 8860], [7331, 8885], [7344, 8928], [7409, 8950], [7503, 9034], [7548, 9014], [7637, 9005], [7630, 8892], [7671, 8863], [7763, 8922], [7805, 8938], [7899, 8909], [7920, 8949], [7925, 9011], [7956, 9066], [7953, 9126], [7987, 9154], [8125, 9178], [8142, 9124], [8214, 9055], [8292, 8959]]] } }, { "type": "Feature", "id": "TR.MR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.46, "hc-middle-y": 0.4, "hc-key": "tr-mr", "hc-a2": "MR", "labelrank": "7", "hasc": "TR.MR", "alt-name": "Mardin", "woe-id": "2347322", "subregion": null, "fips": "TU72", "postal-code": "MR", "name": "Mardin", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.9525", "woe-name": "Mardin", "latitude": "37.4282", "woe-label": "Mardin, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8184, 6436], [7948, 6357], [7788, 6336], [7608, 6362], [7501, 6337], [7400, 6275], [7348, 6260], [7253, 6189], [7226, 6200], [7167, 6288], [7160, 6361], [7091, 6419], [7077, 6504], [7128, 6580], [7298, 6721], [7344, 6728], [7374, 6784], [7436, 6802], [7637, 6814], [7671, 6834], [7697, 6831], [7742, 6784], [7790, 6704], [7855, 6671], [7941, 6697], [8100, 6836], [8165, 6688], [8162, 6639], [8069, 6580], [8048, 6551], [8060, 6522], [8129, 6507], [8168, 6480], [8184, 6436]]] } }, { "type": "Feature", "id": "TR.SR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.42, "hc-key": "tr-sr", "hc-a2": "SR", "labelrank": "6", "hasc": "TR.SR", "alt-name": "Şırnak", "woe-id": "2347330", "subregion": null, "fips": "TU80", "postal-code": "SR", "name": "Şırnak", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.5455", "woe-name": "Şırnak", "latitude": "37.4047", "woe-label": "Şırnak, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[9019, 6631], [8961, 6630], [8881, 6663], [8853, 6661], [8772, 6616], [8645, 6631], [8568, 6469], [8453, 6430], [8436, 6473], [8442, 6515], [8403, 6553], [8363, 6551], [8353, 6577], [8271, 6476], [8184, 6436], [8168, 6480], [8129, 6507], [8060, 6522], [8048, 6551], [8069, 6580], [8162, 6639], [8165, 6688], [8100, 6836], [8185, 6804], [8299, 6806], [8340, 6855], [8416, 6860], [8535, 6842], [8756, 6838], [8788, 6878], [8790, 6919], [8833, 6949], [8943, 6933], [8998, 6943], [8995, 6834], [9033, 6751], [9035, 6687], [9019, 6631]]] } }, { "type": "Feature", "id": "TR.SI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.39, "hc-middle-y": 0.53, "hc-key": "tr-si", "hc-a2": "SI", "labelrank": "7", "hasc": "TR.SI", "alt-name": "Siirt", "woe-id": "2347324", "subregion": null, "fips": "TU74", "postal-code": "SI", "name": "Siirt", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.2212", "woe-name": "Siirt", "latitude": "37.9159", "woe-label": "Siirt, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8790, 6919], [8788, 6878], [8756, 6838], [8535, 6842], [8416, 6860], [8340, 6855], [8299, 6806], [8185, 6804], [8100, 6836], [8032, 6898], [7925, 6930], [7858, 6981], [7849, 7028], [7865, 7063], [7929, 7087], [7985, 7194], [8046, 7178], [8108, 7178], [8203, 7220], [8243, 7206], [8319, 7151], [8430, 7124], [8571, 7051], [8607, 7082], [8598, 7160], [8620, 7229], [8664, 7237], [8753, 7222], [8773, 7113], [8771, 7009], [8761, 6970], [8790, 6919]]] } }, { "type": "Feature", "id": "TR.HK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.44, "hc-key": "tr-hk", "hc-a2": "HK", "labelrank": "7", "hasc": "TR.HK", "alt-name": "Hakkari", "woe-id": "2347320", "subregion": null, "fips": "TU70", "postal-code": "HK", "name": "Hakkari", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "44.0804", "woe-name": "Hakkari", "latitude": "37.6097", "woe-label": "Hakkâri, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[9453, 7122], [9464, 7102], [9521, 7110], [9556, 7097], [9606, 7039], [9637, 7052], [9694, 7013], [9670, 6949], [9697, 6929], [9701, 6817], [9851, 6722], [9833, 6676], [9844, 6610], [9823, 6626], [9733, 6614], [9655, 6530], [9608, 6508], [9593, 6458], [9550, 6458], [9510, 6529], [9538, 6584], [9520, 6653], [9437, 6685], [9381, 6679], [9332, 6609], [9286, 6585], [9261, 6602], [9173, 6592], [9091, 6595], [9019, 6631], [9035, 6687], [9033, 6751], [8995, 6834], [8998, 6943], [9075, 6953], [9181, 6993], [9230, 6985], [9303, 7001], [9333, 7024], [9361, 7108], [9453, 7122]]] } }, { "type": "Feature", "id": "TR.VA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.52, "hc-key": "tr-va", "hc-a2": "VA", "labelrank": "7", "hasc": "TR.VA", "alt-name": "Van", "woe-id": "2347316", "subregion": null, "fips": "TU65", "postal-code": "VA", "name": "Van", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "43.5684", "woe-name": "Van", "latitude": "38.5212", "woe-label": "Van, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[9236, 8146], [9266, 8049], [9332, 8017], [9338, 7937], [9319, 7904], [9358, 7833], [9409, 7805], [9408, 7670], [9441, 7647], [9459, 7473], [9536, 7479], [9561, 7442], [9518, 7383], [9520, 7308], [9457, 7169], [9453, 7122], [9361, 7108], [9333, 7024], [9303, 7001], [9230, 6985], [9181, 6993], [9075, 6953], [8998, 6943], [8943, 6933], [8833, 6949], [8790, 6919], [8761, 6970], [8771, 7009], [8773, 7113], [8753, 7222], [8664, 7237], [8620, 7229], [8589, 7236], [8571, 7325], [8541, 7384], [8551, 7427], [8642, 7496], [8702, 7624], [8767, 7697], [8778, 7751], [8751, 7785], [8680, 7817], [8652, 7907], [8727, 7957], [8720, 8029], [8674, 8046], [8676, 8068], [8740, 8094], [8780, 8144], [8864, 8134], [8927, 8091], [8997, 8089], [9045, 8125], [9160, 8115], [9236, 8146]]] } }, { "type": "Feature", "id": "TR.AR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.35, "hc-middle-y": 0.51, "hc-key": "tr-ar", "hc-a2": "AR", "labelrank": "7", "hasc": "TR.AR", "alt-name": "Ardahan", "woe-id": "20070284", "subregion": null, "fips": "TU86", "postal-code": "AR", "name": "Ardahan", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.8342", "woe-name": "Ardahan", "latitude": "41.1809", "woe-label": "Ardahan, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8179, 9553], [8224, 9616], [8230, 9658], [8280, 9679], [8367, 9678], [8344, 9625], [8381, 9606], [8399, 9629], [8482, 9552], [8589, 9500], [8548, 9462], [8586, 9462], [8624, 9415], [8673, 9435], [8738, 9417], [8744, 9382], [8490, 9231], [8428, 9189], [8419, 8992], [8292, 8959], [8214, 9055], [8142, 9124], [8125, 9178], [8152, 9250], [8194, 9307], [8237, 9335], [8246, 9386], [8198, 9483], [8179, 9553]]] } }, { "type": "Feature", "id": "TR.KI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.56, "hc-key": "tr-ki", "hc-a2": "KI", "labelrank": "7", "hasc": "TR.KI", "alt-name": "Kilis", "woe-id": "20070285", "subregion": null, "fips": "TU90", "postal-code": "KI", "name": "Kilis", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.0035", "woe-name": "Kilis", "latitude": "36.8329", "woe-label": "Kilis, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5677, 5911], [5634, 5881], [5515, 5893], [5435, 5884], [5406, 5860], [5383, 5875], [5379, 5931], [5351, 5954], [5172, 6000], [5203, 6032], [5288, 6083], [5292, 6132], [5330, 6137], [5350, 6097], [5435, 6063], [5510, 5988], [5527, 6000], [5626, 5953], [5677, 5911]]] } }, { "type": "Feature", "id": "TR.BR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.51, "hc-key": "tr-br", "hc-a2": "BR", "labelrank": "7", "hasc": "TR.BR", "alt-name": "Bartın", "woe-id": "20070187", "subregion": null, "fips": "TU87", "postal-code": "BR", "name": "Bartın", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.4688", "woe-name": "Bartın", "latitude": "41.5857", "woe-label": "Bartın, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2588, 9396], [2659, 9482], [2732, 9498], [2847, 9567], [2948, 9581], [2953, 9538], [2987, 9453], [2953, 9428], [2958, 9377], [2906, 9328], [2876, 9320], [2851, 9267], [2785, 9213], [2728, 9198], [2669, 9202], [2681, 9263], [2651, 9350], [2588, 9396]]] } }, { "type": "Feature", "id": "TR.TG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.35, "hc-middle-y": 0.47, "hc-key": "tr-tg", "hc-a2": "TG", "labelrank": "7", "hasc": "TR.TG", "alt-name": "Tekirdağ", "woe-id": "2347310", "subregion": null, "fips": "TU59", "postal-code": "TG", "name": "Tekirdağ", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.4547", "woe-name": "Tekirdağ", "latitude": "41.0824", "woe-label": "Tekirdağ, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[428, 9093], [338, 9069], [306, 9024], [252, 9029], [186, 9058], [69, 9048], [38, 9016], [7, 8938], [-47, 8890], [-73, 8851], [-137, 8803], [-210, 8794], [-258, 8760], [-272, 8815], [-268, 8872], [-347, 8885], [-375, 8980], [-375, 9039], [-342, 9131], [-301, 9206], [-303, 9320], [-220, 9332], [-68, 9329], [12, 9251], [80, 9280], [130, 9355], [244, 9379], [434, 9390], [448, 9290], [419, 9189], [428, 9093]]] } }, { "type": "Feature", "id": "TR.IZ", "properties": { "hc-group": "admin1", "hc-middle-x": 0.45, "hc-middle-y": 0.69, "hc-key": "tr-iz", "hc-a2": "IZ", "labelrank": "7", "hasc": "TR.IZ", "alt-name": "İzmir", "woe-id": "2347290", "subregion": null, "fips": "TU35", "postal-code": "IZ", "name": "İzmir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.3977", "woe-name": "İzmir", "latitude": "38.2426", "woe-label": "İzmir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[-217, 6824], [-225, 6896], [-295, 6905], [-322, 6941], [-387, 6964], [-436, 6948], [-454, 7025], [-487, 7079], [-559, 7074], [-590, 7007], [-668, 7088], [-783, 7141], [-734, 7183], [-704, 7166], [-641, 7198], [-652, 7242], [-617, 7244], [-676, 7288], [-700, 7387], [-660, 7426], [-610, 7403], [-546, 7302], [-562, 7228], [-532, 7147], [-530, 7204], [-496, 7236], [-476, 7185], [-386, 7189], [-334, 7210], [-292, 7200], [-252, 7239], [-327, 7246], [-377, 7229], [-399, 7289], [-429, 7315], [-419, 7350], [-472, 7368], [-486, 7444], [-428, 7465], [-390, 7447], [-369, 7466], [-381, 7506], [-284, 7550], [-294, 7589], [-328, 7577], [-359, 7594], [-399, 7580], [-425, 7605], [-421, 7666], [-376, 7690], [-430, 7765], [-304, 7844], [-269, 7885], [-129, 7958], [-98, 7950], [-61, 7893], [-30, 7749], [-3, 7682], [-10, 7645], [-65, 7600], [-133, 7568], [-147, 7515], [-198, 7435], [-163, 7396], [-151, 7346], [-119, 7315], [-5, 7304], [19, 7246], [99, 7193], [136, 7124], [165, 7129], [190, 7175], [278, 7161], [313, 7097], [406, 7106], [474, 7075], [533, 6940], [354, 6887], [244, 6891], [110, 6863], [-29, 6882], [-59, 6879], [-131, 6837], [-217, 6824]]] } }, { "type": "Feature", "id": "TR.KS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.4, "hc-key": "tr-ks", "hc-a2": "KS", "labelrank": "7", "hasc": "TR.KS", "alt-name": "Kastamonu", "woe-id": "2347292", "subregion": null, "fips": "TU37", "postal-code": "KS", "name": "Kastamonu", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.6356", "woe-name": "Kastamonu", "latitude": "41.5114", "woe-label": "Kastamonu, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2948, 9581], [3016, 9597], [3060, 9622], [3145, 9651], [3230, 9696], [3346, 9690], [3385, 9679], [3525, 9666], [3595, 9673], [3709, 9658], [3713, 9617], [3671, 9518], [3706, 9505], [3847, 9492], [3883, 9483], [3913, 9443], [3895, 9395], [3863, 9367], [3848, 9314], [3858, 9287], [3855, 9193], [3827, 9186], [3794, 9119], [3756, 9080], [3714, 8995], [3754, 8945], [3742, 8909], [3617, 8865], [3572, 8870], [3504, 8910], [3483, 8945], [3520, 9006], [3487, 9032], [3399, 8984], [3357, 8976], [3279, 8934], [3184, 8998], [3114, 9006], [3094, 9029], [3077, 9055], [3018, 9072], [3012, 9174], [3065, 9236], [3119, 9247], [3088, 9346], [3049, 9375], [2976, 9356], [2958, 9377], [2953, 9428], [2987, 9453], [2953, 9538], [2948, 9581]]] } }, { "type": "Feature", "id": "TR.MG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.37, "hc-key": "tr-mg", "hc-a2": "MG", "labelrank": "7", "hasc": "TR.MG", "alt-name": "Muğla", "woe-id": "2347301", "subregion": null, "fips": "TU48", "postal-code": "MG", "name": "Muğla", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "28.6482", "woe-name": "Muğla", "latitude": "37.0501", "woe-label": "Muğla, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[879, 5618], [786, 5692], [806, 5706], [788, 5756], [801, 5808], [755, 5804], [761, 5861], [805, 5866], [794, 5889], [705, 5955], [659, 5915], [646, 5876], [566, 5928], [520, 5926], [513, 6010], [432, 6016], [425, 6063], [383, 6044], [410, 6024], [392, 5997], [323, 6045], [300, 6018], [328, 5966], [252, 5919], [220, 5871], [149, 5843], [132, 5875], [175, 5873], [209, 5901], [142, 5939], [227, 5954], [189, 5988], [113, 5975], [8, 5996], [-23, 5973], [-33, 5924], [-100, 5947], [-158, 5934], [-211, 5954], [-152, 6001], [-64, 6003], [-55, 6029], [23, 6010], [47, 6027], [159, 6015], [195, 6020], [169, 6057], [198, 6065], [184, 6106], [275, 6110], [293, 6154], [362, 6172], [348, 6187], [234, 6180], [106, 6182], [43, 6162], [9, 6172], [-84, 6154], [-153, 6198], [-217, 6192], [-231, 6153], [-257, 6158], [-272, 6230], [-216, 6271], [-178, 6273], [-129, 6243], [-81, 6268], [-94, 6314], [-47, 6316], [-40, 6370], [-129, 6359], [-110, 6412], [-164, 6412], [-137, 6459], [-156, 6476], [-107, 6565], [-69, 6574], [18, 6540], [57, 6510], [136, 6508], [159, 6494], [269, 6492], [347, 6568], [388, 6557], [464, 6500], [538, 6486], [545, 6417], [607, 6398], [646, 6305], [689, 6297], [712, 6261], [787, 6205], [799, 6114], [901, 6062], [941, 6105], [947, 6152], [975, 6173], [976, 6094], [998, 6085], [1027, 6118], [1097, 6125], [1143, 6056], [1075, 5915], [1070, 5831], [1013, 5788], [1010, 5749], [942, 5738], [906, 5640], [879, 5618]]] } }, { "type": "Feature", "id": "TR.KU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.59, "hc-key": "tr-ku", "hc-a2": "KU", "labelrank": "7", "hasc": "TR.KU", "alt-name": "Kütahya", "woe-id": "2347297", "subregion": null, "fips": "TU43", "postal-code": "KU", "name": "Kütahya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.5498", "woe-name": "Kütahya", "latitude": "39.3471", "woe-label": "Kütahya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[819, 7377], [824, 7422], [796, 7491], [803, 7535], [761, 7617], [662, 7652], [624, 7694], [631, 7752], [714, 7786], [764, 7862], [774, 7913], [810, 7997], [831, 7980], [934, 7965], [965, 7983], [984, 8063], [1011, 8081], [1060, 8208], [1089, 8226], [1146, 8201], [1215, 8209], [1205, 8118], [1231, 8067], [1332, 7996], [1356, 7989], [1462, 8008], [1542, 7912], [1561, 7813], [1615, 7737], [1624, 7691], [1583, 7632], [1516, 7604], [1462, 7465], [1421, 7408], [1301, 7342], [1304, 7416], [1279, 7447], [1193, 7474], [1127, 7462], [1101, 7389], [996, 7371], [918, 7378], [851, 7402], [819, 7377]]] } }, { "type": "Feature", "id": "TR.NV", "properties": { "hc-group": "admin1", "hc-middle-x": 0.55, "hc-middle-y": 0.67, "hc-key": "tr-nv", "hc-a2": "NV", "labelrank": "7", "hasc": "TR.NV", "alt-name": "Nevşehir", "woe-id": "2347303", "subregion": null, "fips": "TU50", "postal-code": "NV", "name": "Nevşehir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.6408", "woe-name": "Nevşehir", "latitude": "38.7415", "woe-label": "Nevşehir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4194, 7565], [4155, 7425], [4223, 7324], [4226, 7224], [4141, 7087], [4082, 7064], [4013, 7103], [3900, 7090], [3825, 7149], [3835, 7253], [3799, 7252], [3745, 7276], [3736, 7312], [3764, 7382], [3745, 7446], [3751, 7475], [3813, 7423], [3836, 7429], [3826, 7477], [3838, 7516], [3970, 7581], [3993, 7611], [3963, 7668], [3969, 7714], [3947, 7814], [4026, 7820], [4096, 7747], [4116, 7697], [4161, 7670], [4194, 7565]]] } }, { "type": "Feature", "id": "TR.SV", "properties": { "hc-group": "admin1", "hc-middle-x": 0.59, "hc-middle-y": 0.44, "hc-key": "tr-sv", "hc-a2": "SV", "labelrank": "7", "hasc": "TR.SV", "alt-name": "Sivas", "woe-id": "2347309", "subregion": null, "fips": "TU58", "postal-code": "SV", "name": "Sivas", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.2907", "woe-name": "Sivas", "latitude": "39.429", "woe-label": "Sivas, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5604, 8641], [5638, 8584], [5701, 8556], [5751, 8608], [5808, 8617], [5809, 8667], [5890, 8702], [5968, 8463], [6071, 8407], [6127, 8424], [6243, 8385], [6234, 8320], [6183, 8321], [6129, 8293], [6075, 8314], [6051, 8298], [6040, 8214], [6118, 8230], [6126, 8197], [6084, 8182], [6047, 8119], [6041, 7991], [6095, 7946], [6053, 7892], [6076, 7765], [6061, 7720], [5980, 7670], [5823, 7643], [5744, 7592], [5697, 7580], [5649, 7601], [5613, 7565], [5644, 7469], [5598, 7396], [5562, 7374], [5508, 7311], [5475, 7294], [5349, 7277], [5246, 7299], [5172, 7278], [5223, 7479], [5265, 7602], [5242, 7666], [5196, 7688], [5096, 7692], [5046, 7673], [4989, 7702], [4896, 7712], [4854, 7695], [4798, 7701], [4689, 7774], [4632, 7788], [4677, 7833], [4741, 7936], [4827, 8017], [4842, 8076], [4785, 8165], [4768, 8217], [4896, 8248], [4987, 8256], [5085, 8309], [5117, 8423], [5157, 8443], [5221, 8438], [5312, 8470], [5455, 8488], [5549, 8534], [5604, 8641]]] } }, { "type": "Feature", "id": "TR.TC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.58, "hc-key": "tr-tc", "hc-a2": "TC", "labelrank": "7", "hasc": "TR.TC", "alt-name": "Tunceli", "woe-id": "2347313", "subregion": null, "fips": "TU62", "postal-code": "TC", "name": "Tunceli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.6357", "woe-name": "Tunceli", "latitude": "39.1519", "woe-label": "Tunceli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6281, 7652], [6262, 7738], [6286, 7791], [6328, 7814], [6319, 7872], [6400, 7923], [6423, 7957], [6506, 7989], [6580, 8007], [6667, 8000], [6795, 8023], [6876, 8080], [6952, 8057], [7059, 8103], [7092, 8092], [7267, 8095], [7220, 8052], [7179, 8054], [7133, 7991], [7082, 7978], [7074, 7951], [7026, 7946], [6993, 7920], [6986, 7846], [7002, 7793], [6991, 7745], [6934, 7732], [6917, 7712], [6930, 7659], [6912, 7593], [6880, 7553], [6829, 7528], [6735, 7515], [6706, 7482], [6560, 7540], [6430, 7560], [6327, 7539], [6301, 7561], [6305, 7621], [6281, 7652]]] } }, { "type": "Feature", "id": "TR.ML", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.51, "hc-key": "tr-ml", "hc-a2": "ML", "labelrank": "7", "hasc": "TR.ML", "alt-name": "Malatya", "woe-id": "2347298", "subregion": null, "fips": "TU44", "postal-code": "ML", "name": "Malatya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "38.1872", "woe-name": "Malatya", "latitude": "38.5144", "woe-label": "Malatya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6061, 7720], [6107, 7700], [6160, 7701], [6211, 7680], [6250, 7639], [6210, 7635], [6198, 7584], [6217, 7545], [6231, 7464], [6223, 7439], [6161, 7441], [6136, 7393], [6104, 7378], [6077, 7320], [6094, 7278], [6157, 7238], [6206, 7233], [6277, 7206], [6345, 7224], [6391, 7172], [6453, 7148], [6522, 7165], [6544, 7124], [6529, 7057], [6506, 7025], [6429, 6988], [6357, 6972], [6277, 6972], [6223, 6989], [6250, 7035], [6213, 7063], [6140, 7048], [6068, 6942], [6025, 6916], [6013, 6849], [5980, 6815], [5893, 6782], [5844, 6791], [5662, 6738], [5684, 6782], [5708, 6889], [5738, 6938], [5769, 7074], [5739, 7121], [5654, 7149], [5580, 7188], [5495, 7202], [5453, 7195], [5445, 7237], [5475, 7294], [5508, 7311], [5562, 7374], [5598, 7396], [5644, 7469], [5613, 7565], [5649, 7601], [5697, 7580], [5744, 7592], [5823, 7643], [5980, 7670], [6061, 7720]]] } }, { "type": "Feature", "id": "TR.AG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.45, "hc-middle-y": 0.37, "hc-key": "tr-ag", "hc-a2": "AG", "labelrank": "7", "hasc": "TR.AG", "alt-name": "Ağrı", "woe-id": "2347261", "subregion": null, "fips": "TU04", "postal-code": "AG", "name": "Ağrı", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "43.3647", "woe-name": "Ağrı", "latitude": "39.5925", "woe-label": "Ağrı, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8319, 8153], [8336, 8219], [8324, 8316], [8335, 8342], [8252, 8365], [8201, 8416], [8262, 8424], [8357, 8493], [8467, 8484], [8632, 8551], [8744, 8562], [8775, 8553], [8806, 8436], [8836, 8424], [8904, 8473], [8982, 8450], [9016, 8405], [9105, 8384], [9115, 8364], [9222, 8376], [9309, 8368], [9406, 8404], [9439, 8395], [9423, 8343], [9428, 8241], [9411, 8216], [9357, 8194], [9316, 8209], [9239, 8192], [9215, 8170], [9236, 8146], [9160, 8115], [9045, 8125], [8997, 8089], [8927, 8091], [8864, 8134], [8780, 8144], [8740, 8094], [8676, 8068], [8674, 8046], [8720, 8029], [8727, 7957], [8652, 7907], [8551, 7872], [8467, 7812], [8456, 7981], [8367, 8072], [8319, 8153]]] } }, { "type": "Feature", "id": "TR.BT", "properties": { "hc-group": "admin1", "hc-middle-x": 0.52, "hc-middle-y": 0.51, "hc-key": "tr-bt", "hc-a2": "BT", "labelrank": "7", "hasc": "TR.BT", "alt-name": "Bitlis", "woe-id": "2347270", "subregion": null, "fips": "TU13", "postal-code": "BT", "name": "Bitlis", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.3462", "woe-name": "Bitlis", "latitude": "38.5155", "woe-label": "Bitlis, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7880, 7427], [7969, 7478], [8066, 7480], [8104, 7506], [8155, 7569], [8128, 7626], [8136, 7653], [8186, 7657], [8200, 7703], [8292, 7752], [8385, 7752], [8467, 7812], [8551, 7872], [8652, 7907], [8680, 7817], [8751, 7785], [8778, 7751], [8767, 7697], [8702, 7624], [8642, 7496], [8551, 7427], [8541, 7384], [8571, 7325], [8589, 7236], [8620, 7229], [8598, 7160], [8607, 7082], [8571, 7051], [8430, 7124], [8319, 7151], [8243, 7206], [8203, 7220], [8108, 7178], [8046, 7178], [7985, 7194], [7975, 7279], [7930, 7413], [7880, 7427]]] } }, { "type": "Feature", "id": "TR.GU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.53, "hc-middle-y": 0.57, "hc-key": "tr-gu", "hc-a2": "GU", "labelrank": "7", "hasc": "TR.GU", "alt-name": "Gümüşhane", "woe-id": "2347319", "subregion": null, "fips": "TU69", "postal-code": "GU", "name": "Gümüşhane", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.3544", "woe-name": "Gümüşhane", "latitude": "40.2812", "woe-label": "Gümüşhane, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6859, 8400], [6818, 8339], [6728, 8302], [6597, 8292], [6529, 8314], [6509, 8335], [6403, 8384], [6337, 8403], [6318, 8471], [6313, 8545], [6394, 8610], [6395, 8637], [6350, 8665], [6284, 8677], [6268, 8694], [6267, 8758], [6297, 8805], [6294, 8846], [6354, 8903], [6419, 8915], [6460, 8932], [6535, 8843], [6667, 8801], [6719, 8812], [6739, 8856], [6779, 8834], [6809, 8792], [6835, 8687], [6839, 8581], [6820, 8491], [6859, 8400]]] } }, { "type": "Feature", "id": "TR.OS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.64, "hc-key": "tr-os", "hc-a2": "OS", "labelrank": "7", "hasc": "TR.OS", "alt-name": "Osmaniye", "woe-id": "20070184", "subregion": null, "fips": "TU91", "postal-code": "OS", "name": "Osmaniye", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.3011", "woe-name": "Osmaniye", "latitude": "37.1737", "woe-label": "Osmaniye, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5196, 6321], [5150, 6256], [5121, 6192], [5049, 6092], [4991, 6087], [4949, 6120], [4822, 6119], [4845, 6201], [4814, 6264], [4765, 6269], [4746, 6321], [4744, 6376], [4810, 6546], [4835, 6591], [4932, 6598], [4934, 6542], [4902, 6480], [4929, 6396], [4953, 6368], [5094, 6403], [5169, 6357], [5196, 6321]]] } }, { "type": "Feature", "id": "TR.BC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.54, "hc-key": "tr-bc", "hc-a2": "BC", "labelrank": "7", "hasc": "TR.BC", "alt-name": "Bilecik", "woe-id": "2347268", "subregion": null, "fips": "TU11", "postal-code": "BC", "name": "Bilecik", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.2002", "woe-name": "Bilecik", "latitude": "40.0387", "woe-label": "Bilecik, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1376, 8655], [1409, 8593], [1450, 8551], [1498, 8534], [1574, 8552], [1640, 8547], [1678, 8506], [1748, 8498], [1755, 8466], [1807, 8379], [1751, 8378], [1705, 8343], [1686, 8270], [1637, 8217], [1579, 8207], [1528, 8158], [1520, 8084], [1462, 8008], [1356, 7989], [1332, 7996], [1231, 8067], [1205, 8118], [1215, 8209], [1274, 8211], [1267, 8247], [1226, 8302], [1244, 8409], [1310, 8483], [1294, 8542], [1323, 8620], [1376, 8655]]] } }, { "type": "Feature", "id": "TR.DN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.53, "hc-key": "tr-dn", "hc-a2": "DN", "labelrank": "7", "hasc": "TR.DN", "alt-name": "Denizli", "woe-id": "2347277", "subregion": null, "fips": "TU20", "postal-code": "DN", "name": "Denizli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.2821", "woe-name": "Denizli", "latitude": "37.7539", "woe-label": "Denizli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1219, 7160], [1297, 7139], [1368, 7016], [1359, 6950], [1156, 6805], [1153, 6732], [1230, 6706], [1254, 6661], [1163, 6603], [1148, 6571], [1074, 6535], [1076, 6467], [1096, 6414], [992, 6249], [975, 6173], [947, 6152], [941, 6105], [901, 6062], [799, 6114], [787, 6205], [712, 6261], [689, 6297], [646, 6305], [607, 6398], [545, 6417], [538, 6486], [514, 6542], [527, 6568], [612, 6570], [672, 6634], [712, 6646], [710, 6682], [674, 6691], [643, 6747], [664, 6789], [653, 6879], [610, 6935], [660, 6944], [694, 7028], [747, 7038], [811, 7009], [872, 7026], [910, 7001], [983, 7002], [1021, 7046], [1104, 7040], [1144, 7061], [1148, 7147], [1219, 7160]]] } }, { "type": "Feature", "id": "TR.US", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.55, "hc-key": "tr-us", "hc-a2": "US", "labelrank": "7", "hasc": "TR.US", "alt-name": "Uşak", "woe-id": "2347315", "subregion": null, "fips": "TU64", "postal-code": "US", "name": "Uşak", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.3636", "woe-name": "Uşak", "latitude": "38.4942", "woe-label": "Uşak, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1301, 7342], [1288, 7285], [1253, 7253], [1219, 7160], [1148, 7147], [1144, 7061], [1104, 7040], [1021, 7046], [983, 7002], [910, 7001], [872, 7026], [811, 7009], [747, 7038], [696, 7075], [730, 7116], [744, 7172], [740, 7240], [712, 7288], [819, 7377], [851, 7402], [918, 7378], [996, 7371], [1101, 7389], [1127, 7462], [1193, 7474], [1279, 7447], [1304, 7416], [1301, 7342]]] } }] +} From 3259fb51b631ed08e793d1829e492ce9e9d4dc3c Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 9 Jan 2020 16:44:23 +0300 Subject: [PATCH 011/100] =?UTF-8?q?@highcharts/map-collection=20yarn=20pak?= =?UTF-8?q?etini=20kald=C4=B1r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - yarn.lock | 6 ------ 2 files changed, 7 deletions(-) diff --git a/package.json b/package.json index 0120bedf9..861d5c380 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,6 @@ "private": true, "dependencies": { "@coreui/coreui-free-bootstrap-admin-template": "https://github.com/coreui/coreui-free-bootstrap-admin-template.git#master", - "@highcharts/map-collection": "^1.1.2", "@rails/actioncable": "^6.0.0-alpha", "@rails/actiontext": "^6.0.2", "@rails/activestorage": "^6.0.0-alpha", diff --git a/yarn.lock b/yarn.lock index ab8de1347..6ba5f5fc4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -738,11 +738,6 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@highcharts/map-collection@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@highcharts/map-collection/-/map-collection-1.1.2.tgz#a4a9ba0ae9384a9256fe9f2e3a91474d663570e5" - integrity sha512-lI/sUc1BkwfetYpyEsKafYdkiEsGXDpYTWmwSikD/L+C7RMHkc/6rZAjVjxp0Ph/B3Q3dEHeyOmCruG6WoSNAQ== - "@rails/actioncable@^6.0.0-alpha": version "6.0.2" resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.0.2.tgz#bcba9bcd6ee09a47c6628336e07399a68ca87814" @@ -3467,7 +3462,6 @@ fsevents@^1.2.7: dependencies: bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "*" fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" From 8b5664dbd2ad2b441273ff49403c9611d519c4a9 Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 9 Jan 2020 16:46:27 +0300 Subject: [PATCH 012/100] =?UTF-8?q?Ufak=20d=C3=BCzeltme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/manager/dashboard/charts/_cities.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/manager/dashboard/charts/_cities.erb b/app/views/manager/dashboard/charts/_cities.erb index 07c857192..1e033e808 100644 --- a/app/views/manager/dashboard/charts/_cities.erb +++ b/app/views/manager/dashboard/charts/_cities.erb @@ -1,7 +1,7 @@
<% series = data.map do |item| { - name: item[:city].capitalize_turkish.asciified, + name: item[:city].capitalize_turkish, male: item[:male], female: item[:female], value: item[:total] From 076e4d1bffee4b4acdddb1765695adab2af6c18a Mon Sep 17 00:00:00 2001 From: isubas Date: Tue, 14 Jan 2020 16:45:06 +0300 Subject: [PATCH 013/100] =?UTF-8?q?Stimulusjs=20kullanarak=20i=C3=A7erik?= =?UTF-8?q?=20y=C3=BCkleme=20komponent'i=20ekle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/component_helper.rb | 10 ++++ .../controllers/content_loader_controller.js | 58 +++++++++++++++++++ .../components/_content_loader.html.erb | 51 ++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 app/javascript/controllers/content_loader_controller.js create mode 100644 app/views/layouts/components/_content_loader.html.erb diff --git a/app/helpers/component_helper.rb b/app/helpers/component_helper.rb index d29a4b7bc..ad5e9f2e9 100644 --- a/app/helpers/component_helper.rb +++ b/app/helpers/component_helper.rb @@ -24,6 +24,16 @@ def klass_for_status(status) STATUSES.fetch(status.to_sym, 'secondary') end + def content_loader_tag(url, header: nil, refresh: {} ) + render 'layouts/components/content_loader', + url: url, + header: header, + refresh: OpenStruct.new( + auto: refresh.fetch(:auto, false), + interval: refresh.fetch(:interval, 10000) + ) + end + def loading_tag(text = t('loading')) tag.div(class: 'loading', id: 'loading', style: 'display: none;') do tag.div(class: 'loading-content') do diff --git a/app/javascript/controllers/content_loader_controller.js b/app/javascript/controllers/content_loader_controller.js new file mode 100644 index 000000000..00c9b442d --- /dev/null +++ b/app/javascript/controllers/content_loader_controller.js @@ -0,0 +1,58 @@ +/* eslint-disable no-undef */ +import { Controller } from 'stimulus' + +export default class extends Controller { + static targets = [ 'content', 'loadingMessage', 'autoRefresh' ] + + connect () { + this.load() + if (this.data.has('refreshInterval') && this.hasautoRefreshTarget) { + this.startRefreshing() + } + } + + disconnect () { + this.stopRefreshing() + } + + load () { + fetch(this.url) + .then(response => response.text()) + .then(html => { + this.contentTarget.innerHTML = html + this.loadingMessageTarget.classList.add('d-none') + }) + } + + startRefreshing () { + this.refreshTimer = setInterval(() => { + this.load() + }, this.data.get('refreshInterval')) + } + + stopRefreshing () { + if (this.refreshTimer) { + clearInterval(this.refreshTimer) + } + } + + autoRefreshStart () { + if (this.autoRefreshTarget.checked) return this.startRefreshing() + + this.stopRefreshing() + } + + reset () { + this.contentTarget.innerHTML = '' + this.loadingMessageTarget.classList.remove('d-none') + } + + refresh () { + this.reset() + this.load() + } + + get url () { + return this.data.get('url') + } +} diff --git a/app/views/layouts/components/_content_loader.html.erb b/app/views/layouts/components/_content_loader.html.erb new file mode 100644 index 000000000..193d4be1e --- /dev/null +++ b/app/views/layouts/components/_content_loader.html.erb @@ -0,0 +1,51 @@ +
+ data-content-loader-refresh-interval="<%= refresh.interval %>" + <% end %>> +
+
+
+
+

<%= header %>

+
+
+
+
+ +
+ <% if refresh.auto %> +
+ +
+ <% end %> +
+
+
+
+
+
+
+
+ <%= t('loading') %> +
+

<%= t('loading') %>

+
+
+
+
From 098d8421afa436f9850b5e2be3912e5286d2cdc0 Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 15 Jan 2020 16:51:18 +0300 Subject: [PATCH 014/100] =?UTF-8?q?=C4=B0=C3=A7erik=20y=C3=BCkleme=20kompo?= =?UTF-8?q?nent'ini=20iyile=C5=9Ftir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.scss | 2 +- .../{loading.css => content_loader.css} | 21 ++++---- app/helpers/component_helper.rb | 21 +++++--- .../controllers/content_loader_controller.js | 4 +- .../components/_content_loader_basic.erb | 11 ++++ ...tml.erb => _content_loader_panel.html.erb} | 20 +++---- .../manager/dashboard/charts/_cities.erb | 53 ------------------- .../charts/_double_major_and_minor.html.erb | 42 --------------- .../dashboard/charts/_genders.html.erb | 46 ---------------- .../charts/_genders_and_degrees.html.erb | 39 -------------- .../dashboard/charts/_non_graduates.html.erb | 38 ------------- 11 files changed, 49 insertions(+), 248 deletions(-) rename app/assets/stylesheets/custom/{loading.css => content_loader.css} (56%) create mode 100644 app/views/layouts/components/_content_loader_basic.erb rename app/views/layouts/components/{_content_loader.html.erb => _content_loader_panel.html.erb} (73%) delete mode 100644 app/views/manager/dashboard/charts/_cities.erb delete mode 100644 app/views/manager/dashboard/charts/_double_major_and_minor.html.erb delete mode 100644 app/views/manager/dashboard/charts/_genders.html.erb delete mode 100644 app/views/manager/dashboard/charts/_genders_and_degrees.html.erb delete mode 100644 app/views/manager/dashboard/charts/_non_graduates.html.erb diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index f1210d095..7d32270d6 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -5,7 +5,7 @@ *= require toastr/build/toastr.min *= require select2/dist/css/select2.min *= require custom/select2 - *= require custom/loading + *= require custom/content_loader *= require intl-tel-input/build/css/intlTelInput.min *= require custom/intl_tel_input *= require flatpickr/dist/flatpickr.min diff --git a/app/assets/stylesheets/custom/loading.css b/app/assets/stylesheets/custom/content_loader.css similarity index 56% rename from app/assets/stylesheets/custom/loading.css rename to app/assets/stylesheets/custom/content_loader.css index 48a0dee0e..0cfce6c3d 100644 --- a/app/assets/stylesheets/custom/loading.css +++ b/app/assets/stylesheets/custom/content_loader.css @@ -1,23 +1,24 @@ + + .loading { - position: fixed; + position: absolute; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; - background-color: rgb(0, 0, 0); - background-color: rgba(0, 0, 0, 0.4); + background: #d3d3d37a; + display: flex; + justify-content: center; + align-items: center; } .loading>.loading-content { - height: 100%; - display: flex; - align-items: center; - justify-content: center; + color: #707070; + text-align: center; } -.snipper-large { - width: 3em; - height: 3em; +.custom-card-header { + padding: .25rem .75rem !important; } diff --git a/app/helpers/component_helper.rb b/app/helpers/component_helper.rb index ad5e9f2e9..7ecdcaec7 100644 --- a/app/helpers/component_helper.rb +++ b/app/helpers/component_helper.rb @@ -24,14 +24,19 @@ def klass_for_status(status) STATUSES.fetch(status.to_sym, 'secondary') end - def content_loader_tag(url, header: nil, refresh: {} ) - render 'layouts/components/content_loader', - url: url, - header: header, - refresh: OpenStruct.new( - auto: refresh.fetch(:auto, false), - interval: refresh.fetch(:interval, 10000) - ) + def content_loader_panel_tag(url, header: nil, refresh: {}, &block) + render 'layouts/components/content_loader_panel', + url: url, + header: header, + content: (block_given? ? capture(&block) : nil), + refresh: OpenStruct.new( + auto: refresh.fetch(:auto, false), + interval: refresh.fetch(:interval, 10_000) + ) + end + + def content_loader_tag(url) + render 'layouts/components/content_loader_basic', url: url end def loading_tag(text = t('loading')) diff --git a/app/javascript/controllers/content_loader_controller.js b/app/javascript/controllers/content_loader_controller.js index 00c9b442d..5641fab47 100644 --- a/app/javascript/controllers/content_loader_controller.js +++ b/app/javascript/controllers/content_loader_controller.js @@ -19,7 +19,7 @@ export default class extends Controller { fetch(this.url) .then(response => response.text()) .then(html => { - this.contentTarget.innerHTML = html + $(this.contentTarget).html(html) this.loadingMessageTarget.classList.add('d-none') }) } @@ -43,7 +43,7 @@ export default class extends Controller { } reset () { - this.contentTarget.innerHTML = '' + // this.contentTarget.innerHTML = '' this.loadingMessageTarget.classList.remove('d-none') } diff --git a/app/views/layouts/components/_content_loader_basic.erb b/app/views/layouts/components/_content_loader_basic.erb new file mode 100644 index 000000000..9e6753a2d --- /dev/null +++ b/app/views/layouts/components/_content_loader_basic.erb @@ -0,0 +1,11 @@ +
+
+
+
+ <%= t('loading') %> +
+

<%= t('loading') %>

+
+
diff --git a/app/views/layouts/components/_content_loader.html.erb b/app/views/layouts/components/_content_loader_panel.html.erb similarity index 73% rename from app/views/layouts/components/_content_loader.html.erb rename to app/views/layouts/components/_content_loader_panel.html.erb index 193d4be1e..45b2a9f1d 100644 --- a/app/views/layouts/components/_content_loader.html.erb +++ b/app/views/layouts/components/_content_loader_panel.html.erb @@ -4,17 +4,17 @@ data-content-loader-refresh-interval="<%= refresh.interval %>" <% end %>>
-
+

<%= header %>

-
-
+
+
<% if refresh.auto %> @@ -39,12 +39,14 @@
-
-
- <%= t('loading') %> + <%= content %> +
+
+
+ <%= t('loading') %> +
+

<%= t('loading') %>

-

<%= t('loading') %>

diff --git a/app/views/manager/dashboard/charts/_cities.erb b/app/views/manager/dashboard/charts/_cities.erb deleted file mode 100644 index 1e033e808..000000000 --- a/app/views/manager/dashboard/charts/_cities.erb +++ /dev/null @@ -1,53 +0,0 @@ -
-<% series = data.map do |item| - { - name: item[:city].capitalize_turkish, - male: item[:male], - female: item[:female], - value: item[:total] - } - end %> - - diff --git a/app/views/manager/dashboard/charts/_double_major_and_minor.html.erb b/app/views/manager/dashboard/charts/_double_major_and_minor.html.erb deleted file mode 100644 index a98fd2f6a..000000000 --- a/app/views/manager/dashboard/charts/_double_major_and_minor.html.erb +++ /dev/null @@ -1,42 +0,0 @@ -
- -<% series = data.reject { |item| item[:category] == 'other' }.map do |item| - { - name: case item[:category] - when 'minor' then 'Yandal' - when 'double major' then 'Çift Anadal' - end, - y: item[:number_of_students] - } - end %> - - diff --git a/app/views/manager/dashboard/charts/_genders.html.erb b/app/views/manager/dashboard/charts/_genders.html.erb deleted file mode 100644 index 983db6351..000000000 --- a/app/views/manager/dashboard/charts/_genders.html.erb +++ /dev/null @@ -1,46 +0,0 @@ -
- -<% series = data.map do |item| - { - name: item[:gender], - color: ( - case item[:gender] - when 'Erkek' then '#96d1c7' - when 'Kadın' then '#fc7978' - else '#ffafb0' - end - ), - y: item[:number_of_students] - } - end %> - - diff --git a/app/views/manager/dashboard/charts/_genders_and_degrees.html.erb b/app/views/manager/dashboard/charts/_genders_and_degrees.html.erb deleted file mode 100644 index 61f0fb35d..000000000 --- a/app/views/manager/dashboard/charts/_genders_and_degrees.html.erb +++ /dev/null @@ -1,39 +0,0 @@ -
- -<% categories = data.map { |item| item[:degree] }.uniq %> -<% genders = data.map { |item| item[:gender] }.uniq.sort %> -<% series = genders.map do |gender, _hash| - { - name: gender, - color: ( - case gender - when 'Erkek' then '#96d1c7' - when 'Kadın' then '#fc7978' - else '#ffafb0' - end - ), - data: categories.map do |category| - row = data.find { |item| item[:degree] == category && item[:gender] == gender } || {} - row[:number_of_students] - end - } - end %> - - diff --git a/app/views/manager/dashboard/charts/_non_graduates.html.erb b/app/views/manager/dashboard/charts/_non_graduates.html.erb deleted file mode 100644 index 0abf5992a..000000000 --- a/app/views/manager/dashboard/charts/_non_graduates.html.erb +++ /dev/null @@ -1,38 +0,0 @@ -
- -<% categories = data.map { |item| item[:educational_level] }.uniq %> -<% statuses = data.map { |item| item[:status] }.uniq.sort %> -<% series = statuses.map do |status, _hash| - { - name: status, - color: ( - case status - when 'Uzatan' then '#8E2C3E' - when 'Normal' then '#B27D32' - end - ), - data: categories.map do |category| - row = data.find { |item| item[:educational_level] == category && item[:status] == status } || {} - row[:number_of_students] - end - } - end %> - - From c86d5bb07056ba213a0c960f00a6b67f605d6843 Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 15 Jan 2020 16:52:59 +0300 Subject: [PATCH 015/100] =?UTF-8?q?Grafik=20g=C3=B6r=C3=BCn=C3=BCt=C3=BCle?= =?UTF-8?q?nme=20yap=C4=B1s=C4=B1n=C4=B1=20de=C4=9Fi=C5=9Ftir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/manager/charts_controller.rb | 90 +++++++++++++++++++ .../controllers/dashboard_controller.js | 18 ---- app/views/manager/charts/cities.html.erb | 47 ++++++++++ .../charts/double_major_and_minor.html.erb | 33 +++++++ app/views/manager/charts/genders.html.erb | 33 +++++++ .../charts/genders_and_degrees.html.erb | 21 +++++ .../manager/charts/non_graduates.html.erb | 21 +++++ app/views/manager/dashboard/index.html.erb | 10 +-- config/routes/manager.rb | 8 ++ 9 files changed, 258 insertions(+), 23 deletions(-) create mode 100644 app/controllers/manager/charts_controller.rb delete mode 100644 app/javascript/controllers/dashboard_controller.js create mode 100644 app/views/manager/charts/cities.html.erb create mode 100644 app/views/manager/charts/double_major_and_minor.html.erb create mode 100644 app/views/manager/charts/genders.html.erb create mode 100644 app/views/manager/charts/genders_and_degrees.html.erb create mode 100644 app/views/manager/charts/non_graduates.html.erb diff --git a/app/controllers/manager/charts_controller.rb b/app/controllers/manager/charts_controller.rb new file mode 100644 index 000000000..8567a5454 --- /dev/null +++ b/app/controllers/manager/charts_controller.rb @@ -0,0 +1,90 @@ +# frozen_string_literal: true + +module Manager + class ChartsController < ApplicationController + layout false + + def cities + @series = Xokul::Ubs::Statistic::Student.by_cities.map do |item| + { + name: item[:city].capitalize_turkish, + male: item[:male], + female: item[:female], + value: item[:total] + } + end.to_json + end + + def double_major_and_minor + data = Xokul::Ubs::Statistic::Student.double_major_and_minor + @series = data.reject { |item| item[:category] == 'other' }.map do |item| + { + name: case item[:category] + when 'minor' then 'Yandal' + when 'double major' then 'Çift Anadal' + end, + y: item[:number_of_students] + } + end.to_json + end + + def genders + @series = Xokul::Ubs::Statistic::Student.by_genders.map do |item| + { + name: item[:gender], + color: ( + case item[:gender] + when 'Erkek' then '#96d1c7' + when 'Kadın' then '#fc7978' + else '#ffafb0' + end + ), + y: item[:number_of_students] + } + end.to_json + end + + def genders_and_degrees + data = Xokul::Ubs::Statistic::Student.by_genders_and_degree + @categories = data.map { |item| item[:degree] }.uniq + @genders = data.map { |item| item[:gender] }.uniq.sort + @series = @genders.map do |gender, _hash| + { + name: gender, + color: ( + case gender + when 'Erkek' then '#96d1c7' + when 'Kadın' then '#fc7978' + else '#ffafb0' + end + ), + data: @categories.map do |category| + row = data.find { |item| item[:degree] == category && item[:gender] == gender } || {} + row[:number_of_students] + end + } + end.to_json + end + + def non_graduates + data = Xokul::Ubs::Statistic::Student.non_graduates + @categories = data.map { |item| item[:educational_level] }.uniq + @statuses = data.map { |item| item[:status] }.uniq.sort + @series = @statuses.map do |status, _hash| + { + name: status, + color: ( + case status + when 'Uzatan' then '#8E2C3E' + when 'Normal' then '#B27D32' + end + ), + data: @categories.map do |category| + row = data.find { |item| item[:educational_level] == category && item[:status] == status } || {} + row[:number_of_students] + end + } + end.to_json + end + end +end diff --git a/app/javascript/controllers/dashboard_controller.js b/app/javascript/controllers/dashboard_controller.js deleted file mode 100644 index 0f126dac2..000000000 --- a/app/javascript/controllers/dashboard_controller.js +++ /dev/null @@ -1,18 +0,0 @@ -// Visit The Stimulus Handbook for more details -// https://stimulusjs.org/handbook/introduction -// -// This example controller works with specially annotated HTML like: -// -//
-//

-//
- -import { Controller } from 'stimulus' - -export default class extends Controller { - static targets = [ 'output' ] - - connect() { - this.outputTarget.textContent = 'Hello, Stimulus!' - } -} diff --git a/app/views/manager/charts/cities.html.erb b/app/views/manager/charts/cities.html.erb new file mode 100644 index 000000000..6125eeeaf --- /dev/null +++ b/app/views/manager/charts/cities.html.erb @@ -0,0 +1,47 @@ +
+ + diff --git a/app/views/manager/charts/double_major_and_minor.html.erb b/app/views/manager/charts/double_major_and_minor.html.erb new file mode 100644 index 000000000..e343858cf --- /dev/null +++ b/app/views/manager/charts/double_major_and_minor.html.erb @@ -0,0 +1,33 @@ +
+ + diff --git a/app/views/manager/charts/genders.html.erb b/app/views/manager/charts/genders.html.erb new file mode 100644 index 000000000..fde222d67 --- /dev/null +++ b/app/views/manager/charts/genders.html.erb @@ -0,0 +1,33 @@ +
+ + diff --git a/app/views/manager/charts/genders_and_degrees.html.erb b/app/views/manager/charts/genders_and_degrees.html.erb new file mode 100644 index 000000000..98cd0c81f --- /dev/null +++ b/app/views/manager/charts/genders_and_degrees.html.erb @@ -0,0 +1,21 @@ +
+ + diff --git a/app/views/manager/charts/non_graduates.html.erb b/app/views/manager/charts/non_graduates.html.erb new file mode 100644 index 000000000..1cb493aa2 --- /dev/null +++ b/app/views/manager/charts/non_graduates.html.erb @@ -0,0 +1,21 @@ +
+ + diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb index d34abfa62..ee73b7797 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/index.html.erb @@ -16,18 +16,18 @@
- <%= render 'manager/dashboard/charts/genders', data: Xokul::Ubs::Statistic::Student.by_genders %> + <%= content_loader_panel_tag(manager_charts_genders_path, refresh: { auto: true }) %>
- <%= render 'manager/dashboard/charts/genders_and_degrees', data: Xokul::Ubs::Statistic::Student.by_genders_and_degree %> + <%= content_loader_panel_tag(manager_charts_genders_and_degrees_path, refresh: { auto: true }) %>
- <%= render 'manager/dashboard/charts/double_major_and_minor', data: Xokul::Ubs::Statistic::Student.double_major_and_minor %> + <%= content_loader_panel_tag(manager_charts_double_major_and_minor_path, refresh: { auto: true }) %>
- <%= render 'manager/dashboard/charts/non_graduates', data: Xokul::Ubs::Statistic::Student.non_graduates %> + <%= content_loader_panel_tag(manager_charts_non_graduates_path, refresh: { auto: true }) %>
- <%= render 'manager/dashboard/charts/cities', data: Xokul::Ubs::Statistic::Student.by_cities %> + <%= content_loader_panel_tag(manager_charts_cities_path, refresh: { auto: true }) %>
diff --git a/config/routes/manager.rb b/config/routes/manager.rb index dc9798188..0a3c4b367 100644 --- a/config/routes/manager.rb +++ b/config/routes/manager.rb @@ -2,4 +2,12 @@ namespace :manager do get '/', to: 'dashboard#index' + + namespace :charts do + get :cities + get :double_major_and_minor + get :genders + get :genders_and_degrees + get :non_graduates + end end From bef3630994f2c9f1c885eef8d2d55f1773c02c79 Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 16 Jan 2020 16:53:45 +0300 Subject: [PATCH 016/100] =?UTF-8?q?=C4=B0=C3=A7erik=20y=C3=BCkleme=20konpo?= =?UTF-8?q?nent'inin=20=C5=9Fablonlar=C4=B1n=C4=B1=20d=C3=BCzenle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layouts/components/_content_loader_basic.erb | 11 ----------- .../layouts/components/_content_loader_basic.html.erb | 5 +++++ .../layouts/components/_content_loader_panel.html.erb | 9 +-------- app/views/layouts/components/_loading.html.erb | 8 ++++++++ 4 files changed, 14 insertions(+), 19 deletions(-) delete mode 100644 app/views/layouts/components/_content_loader_basic.erb create mode 100644 app/views/layouts/components/_content_loader_basic.html.erb create mode 100644 app/views/layouts/components/_loading.html.erb diff --git a/app/views/layouts/components/_content_loader_basic.erb b/app/views/layouts/components/_content_loader_basic.erb deleted file mode 100644 index 9e6753a2d..000000000 --- a/app/views/layouts/components/_content_loader_basic.erb +++ /dev/null @@ -1,11 +0,0 @@ -
-
-
-
- <%= t('loading') %> -
-

<%= t('loading') %>

-
-
diff --git a/app/views/layouts/components/_content_loader_basic.html.erb b/app/views/layouts/components/_content_loader_basic.html.erb new file mode 100644 index 000000000..72dc351fa --- /dev/null +++ b/app/views/layouts/components/_content_loader_basic.html.erb @@ -0,0 +1,5 @@ +
+
+ <%= render 'layouts/components/loading' %> +
diff --git a/app/views/layouts/components/_content_loader_panel.html.erb b/app/views/layouts/components/_content_loader_panel.html.erb index 45b2a9f1d..06f3a55d0 100644 --- a/app/views/layouts/components/_content_loader_panel.html.erb +++ b/app/views/layouts/components/_content_loader_panel.html.erb @@ -40,14 +40,7 @@
<%= content %> -
-
-
- <%= t('loading') %> -
-

<%= t('loading') %>

-
-
+ <%= render 'layouts/components/loading' %>
diff --git a/app/views/layouts/components/_loading.html.erb b/app/views/layouts/components/_loading.html.erb new file mode 100644 index 000000000..2fb7bf773 --- /dev/null +++ b/app/views/layouts/components/_loading.html.erb @@ -0,0 +1,8 @@ +
+
+
+ <%= t('loading') %> +
+

<%= t('loading') %>

+
+
From 6ed45c80a152b424ef3222300168cce78d504684 Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 16 Jan 2020 16:54:56 +0300 Subject: [PATCH 017/100] =?UTF-8?q?Grafiklerde=20d=C3=BCzenleme=20yap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/manager/charts_controller.rb | 90 ------------------ .../manager/statistics/articles_controller.rb | 11 +++ .../statistics/employees_controller.rb | 11 +++ .../manager/statistics/students_controller.rb | 94 +++++++++++++++++++ .../studies/articles_controller.rb | 7 -- .../manager_dashboard_controller.js | 21 +++++ app/views/manager/dashboard/index.html.erb | 73 +++++++++----- .../statistics}/articles/index.html.erb | 0 .../statistics/employees/index.html.erb | 12 +++ .../students}/cities.html.erb | 0 .../students}/double_major_and_minor.html.erb | 0 .../students}/genders.html.erb | 0 .../students}/genders_and_degrees.html.erb | 0 .../statistics/students/index.html.erb | 19 ++++ .../students}/non_graduates.html.erb | 0 config/locales/models/studies/en.yml | 2 +- config/locales/models/studies/tr.yml | 33 +++---- config/routes/manager.rb | 17 ++-- 18 files changed, 245 insertions(+), 145 deletions(-) delete mode 100644 app/controllers/manager/charts_controller.rb create mode 100644 app/controllers/manager/statistics/articles_controller.rb create mode 100644 app/controllers/manager/statistics/employees_controller.rb create mode 100644 app/controllers/manager/statistics/students_controller.rb delete mode 100644 app/controllers/studies/articles_controller.rb create mode 100644 app/javascript/controllers/manager_dashboard_controller.js rename app/views/{studies => manager/statistics}/articles/index.html.erb (100%) create mode 100644 app/views/manager/statistics/employees/index.html.erb rename app/views/manager/{charts => statistics/students}/cities.html.erb (100%) rename app/views/manager/{charts => statistics/students}/double_major_and_minor.html.erb (100%) rename app/views/manager/{charts => statistics/students}/genders.html.erb (100%) rename app/views/manager/{charts => statistics/students}/genders_and_degrees.html.erb (100%) create mode 100644 app/views/manager/statistics/students/index.html.erb rename app/views/manager/{charts => statistics/students}/non_graduates.html.erb (100%) diff --git a/app/controllers/manager/charts_controller.rb b/app/controllers/manager/charts_controller.rb deleted file mode 100644 index 8567a5454..000000000 --- a/app/controllers/manager/charts_controller.rb +++ /dev/null @@ -1,90 +0,0 @@ -# frozen_string_literal: true - -module Manager - class ChartsController < ApplicationController - layout false - - def cities - @series = Xokul::Ubs::Statistic::Student.by_cities.map do |item| - { - name: item[:city].capitalize_turkish, - male: item[:male], - female: item[:female], - value: item[:total] - } - end.to_json - end - - def double_major_and_minor - data = Xokul::Ubs::Statistic::Student.double_major_and_minor - @series = data.reject { |item| item[:category] == 'other' }.map do |item| - { - name: case item[:category] - when 'minor' then 'Yandal' - when 'double major' then 'Çift Anadal' - end, - y: item[:number_of_students] - } - end.to_json - end - - def genders - @series = Xokul::Ubs::Statistic::Student.by_genders.map do |item| - { - name: item[:gender], - color: ( - case item[:gender] - when 'Erkek' then '#96d1c7' - when 'Kadın' then '#fc7978' - else '#ffafb0' - end - ), - y: item[:number_of_students] - } - end.to_json - end - - def genders_and_degrees - data = Xokul::Ubs::Statistic::Student.by_genders_and_degree - @categories = data.map { |item| item[:degree] }.uniq - @genders = data.map { |item| item[:gender] }.uniq.sort - @series = @genders.map do |gender, _hash| - { - name: gender, - color: ( - case gender - when 'Erkek' then '#96d1c7' - when 'Kadın' then '#fc7978' - else '#ffafb0' - end - ), - data: @categories.map do |category| - row = data.find { |item| item[:degree] == category && item[:gender] == gender } || {} - row[:number_of_students] - end - } - end.to_json - end - - def non_graduates - data = Xokul::Ubs::Statistic::Student.non_graduates - @categories = data.map { |item| item[:educational_level] }.uniq - @statuses = data.map { |item| item[:status] }.uniq.sort - @series = @statuses.map do |status, _hash| - { - name: status, - color: ( - case status - when 'Uzatan' then '#8E2C3E' - when 'Normal' then '#B27D32' - end - ), - data: @categories.map do |category| - row = data.find { |item| item[:educational_level] == category && item[:status] == status } || {} - row[:number_of_students] - end - } - end.to_json - end - end -end diff --git a/app/controllers/manager/statistics/articles_controller.rb b/app/controllers/manager/statistics/articles_controller.rb new file mode 100644 index 000000000..865a85b1d --- /dev/null +++ b/app/controllers/manager/statistics/articles_controller.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Manager + module Statistics + class ArticlesController < ApplicationController + layout false + + def index; end + end + end +end diff --git a/app/controllers/manager/statistics/employees_controller.rb b/app/controllers/manager/statistics/employees_controller.rb new file mode 100644 index 000000000..0b41fa879 --- /dev/null +++ b/app/controllers/manager/statistics/employees_controller.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Manager + module Statistics + class EmployeesController < ApplicationController + layout false + + def index; end + end + end +end diff --git a/app/controllers/manager/statistics/students_controller.rb b/app/controllers/manager/statistics/students_controller.rb new file mode 100644 index 000000000..d036719d4 --- /dev/null +++ b/app/controllers/manager/statistics/students_controller.rb @@ -0,0 +1,94 @@ +# frozen_string_literal: true + +module Manager + module Statistics + class StudentsController < ApplicationController + layout false + + def index; end + + def cities + @series = Xokul::Ubs::Statistic::Student.by_cities.map do |item| + { + name: item[:city].capitalize_turkish, + male: item[:male], + female: item[:female], + value: item[:total] + } + end.to_json + end + + def double_major_and_minor + data = Xokul::Ubs::Statistic::Student.double_major_and_minor + @series = data.reject { |item| item[:category] == 'other' }.map do |item| + { + name: case item[:category] + when 'minor' then 'Yandal' + when 'double major' then 'Çift Anadal' + end, + y: item[:number_of_students] + } + end.to_json + end + + def genders + @series = Xokul::Ubs::Statistic::Student.by_genders.map do |item| + { + name: item[:gender], + color: ( + case item[:gender] + when 'Erkek' then '#96d1c7' + when 'Kadın' then '#fc7978' + else '#ffafb0' + end + ), + y: item[:number_of_students] + } + end.to_json + end + + def genders_and_degrees + data = Xokul::Ubs::Statistic::Student.by_genders_and_degree + @categories = data.map { |item| item[:degree] }.uniq + @genders = data.map { |item| item[:gender] }.uniq.sort + @series = @genders.map do |gender, _hash| + { + name: gender, + color: ( + case gender + when 'Erkek' then '#96d1c7' + when 'Kadın' then '#fc7978' + else '#ffafb0' + end + ), + data: @categories.map do |category| + row = data.find { |item| item[:degree] == category && item[:gender] == gender } || {} + row[:number_of_students] + end + } + end.to_json + end + + def non_graduates + data = Xokul::Ubs::Statistic::Student.non_graduates + @categories = data.map { |item| item[:educational_level] }.uniq + @statuses = data.map { |item| item[:status] }.uniq.sort + @series = @statuses.map do |status, _hash| + { + name: status, + color: ( + case status + when 'Uzatan' then '#8E2C3E' + when 'Normal' then '#B27D32' + end + ), + data: @categories.map do |category| + row = data.find { |item| item[:educational_level] == category && item[:status] == status } || {} + row[:number_of_students] + end + } + end.to_json + end + end + end +end diff --git a/app/controllers/studies/articles_controller.rb b/app/controllers/studies/articles_controller.rb deleted file mode 100644 index 2db2c7e13..000000000 --- a/app/controllers/studies/articles_controller.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -module Studies - class ArticlesController < ApplicationController - def index; end - end -end diff --git a/app/javascript/controllers/manager_dashboard_controller.js b/app/javascript/controllers/manager_dashboard_controller.js new file mode 100644 index 000000000..3170d0202 --- /dev/null +++ b/app/javascript/controllers/manager_dashboard_controller.js @@ -0,0 +1,21 @@ +/* eslint-disable no-undef */ +import { Controller } from 'stimulus' + +export default class extends Controller { + static targets = ['content', 'loadingMessage' ] + + load (event) { + this.reset() + fetch(event.target.dataset.contentUrl) + .then(response => response.text()) + .then(html => { + $(this.contentTarget).html(html) + this.loadingMessageTarget.classList.add('d-none') + }) + } + + + reset () { + this.loadingMessageTarget.classList.remove('d-none') + } +} diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb index ee73b7797..1c403650a 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/index.html.erb @@ -1,33 +1,56 @@ -<%= javascript_include_tag 'chart' %> +
+
+
+
+
+
+
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
+

Öğrenci

+
+ Detaylı Bilgi +
+
+
-
-
-
-
-
-
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
- Öğrenci -
-
+
+
+
+
+
<%= Employee.active.distinct(:user_id).count %>
+

Personel

+
+ Detaylı Bilgi +
+
+
+ +
+
+
+
+
<%= Article.count %>
+

Akademik Yayınlar

+
+ Detaylı Bilgi
-
-
-
- <%= content_loader_panel_tag(manager_charts_genders_path, refresh: { auto: true }) %> -
-
- <%= content_loader_panel_tag(manager_charts_genders_and_degrees_path, refresh: { auto: true }) %> -
-
- <%= content_loader_panel_tag(manager_charts_double_major_and_minor_path, refresh: { auto: true }) %> -
-
- <%= content_loader_panel_tag(manager_charts_non_graduates_path, refresh: { auto: true }) %> + +
+ <%= content_loader_tag(manager_students_path) %>
-
- <%= content_loader_panel_tag(manager_charts_cities_path, refresh: { auto: true }) %> +
+ <%= render 'layouts/components/loading' %>
diff --git a/app/views/studies/articles/index.html.erb b/app/views/manager/statistics/articles/index.html.erb similarity index 100% rename from app/views/studies/articles/index.html.erb rename to app/views/manager/statistics/articles/index.html.erb diff --git a/app/views/manager/statistics/employees/index.html.erb b/app/views/manager/statistics/employees/index.html.erb new file mode 100644 index 000000000..b0d091c13 --- /dev/null +++ b/app/views/manager/statistics/employees/index.html.erb @@ -0,0 +1,12 @@ +
+
+
+
+ <%= 'Akademik Personel Sayıları' %> +
+
+ <%= column_chart Employee.active.academic.group('titles.name').count, refresh: 1, adapter: :highcharts %> +
+
+
+
diff --git a/app/views/manager/charts/cities.html.erb b/app/views/manager/statistics/students/cities.html.erb similarity index 100% rename from app/views/manager/charts/cities.html.erb rename to app/views/manager/statistics/students/cities.html.erb diff --git a/app/views/manager/charts/double_major_and_minor.html.erb b/app/views/manager/statistics/students/double_major_and_minor.html.erb similarity index 100% rename from app/views/manager/charts/double_major_and_minor.html.erb rename to app/views/manager/statistics/students/double_major_and_minor.html.erb diff --git a/app/views/manager/charts/genders.html.erb b/app/views/manager/statistics/students/genders.html.erb similarity index 100% rename from app/views/manager/charts/genders.html.erb rename to app/views/manager/statistics/students/genders.html.erb diff --git a/app/views/manager/charts/genders_and_degrees.html.erb b/app/views/manager/statistics/students/genders_and_degrees.html.erb similarity index 100% rename from app/views/manager/charts/genders_and_degrees.html.erb rename to app/views/manager/statistics/students/genders_and_degrees.html.erb diff --git a/app/views/manager/statistics/students/index.html.erb b/app/views/manager/statistics/students/index.html.erb new file mode 100644 index 000000000..c8020baf0 --- /dev/null +++ b/app/views/manager/statistics/students/index.html.erb @@ -0,0 +1,19 @@ +<%= javascript_include_tag 'chart' %> + +
+
+ <%= content_loader_panel_tag(manager_students_genders_path, refresh: { auto: true }) %> +
+
+ <%= content_loader_panel_tag(manager_students_genders_and_degrees_path, refresh: { auto: true }) %> +
+
+ <%= content_loader_panel_tag(manager_students_double_major_and_minor_path, refresh: { auto: true }) %> +
+
+ <%= content_loader_panel_tag(manager_students_non_graduates_path, refresh: { auto: true }) %> +
+
+ <%= content_loader_panel_tag(manager_students_cities_path, refresh: { auto: true }) %> +
+
diff --git a/app/views/manager/charts/non_graduates.html.erb b/app/views/manager/statistics/students/non_graduates.html.erb similarity index 100% rename from app/views/manager/charts/non_graduates.html.erb rename to app/views/manager/statistics/students/non_graduates.html.erb diff --git a/config/locales/models/studies/en.yml b/config/locales/models/studies/en.yml index 8148c047c..7b2b0a473 100644 --- a/config/locales/models/studies/en.yml +++ b/config/locales/models/studies/en.yml @@ -1,5 +1,5 @@ en: - studies: + manager: articles: index: article: Article diff --git a/config/locales/models/studies/tr.yml b/config/locales/models/studies/tr.yml index bed83b445..ec38c6c83 100644 --- a/config/locales/models/studies/tr.yml +++ b/config/locales/models/studies/tr.yml @@ -1,17 +1,18 @@ tr: - studies: - articles: - index: - article: Makale - number_of_articles_by_years: Yıllara Göre Makale Sayısı - publications_by_index_types: Index Türüne Göre Makaleler - publications_by_language: Yayın Dili Göre Makaleler - publications_by_number_of_authors: Yazar Sayısına Göre Makaleler - publications_by_publication_types: Yayın Türüne Göre Makaleler - recently_added: En Son Eklenen Makaleler - top_publishers: En Çok Makalesi Olanlar - dashboard: - index: - articles: Makaleler - certifications: Sertifikalar - projects: Projeler + manager: + statistics: + articles: + index: + article: Makale + number_of_articles_by_years: Yıllara Göre Makale Sayısı + publications_by_index_types: Index Türüne Göre Makaleler + publications_by_language: Yayın Dili Göre Makaleler + publications_by_number_of_authors: Yazar Sayısına Göre Makaleler + publications_by_publication_types: Yayın Türüne Göre Makaleler + recently_added: En Son Eklenen Makaleler + top_publishers: En Çok Makalesi Olanlar + dashboard: + index: + articles: Makaleler + certifications: Sertifikalar + projects: Projeler diff --git a/config/routes/manager.rb b/config/routes/manager.rb index 0a3c4b367..506643a67 100644 --- a/config/routes/manager.rb +++ b/config/routes/manager.rb @@ -3,11 +3,16 @@ namespace :manager do get '/', to: 'dashboard#index' - namespace :charts do - get :cities - get :double_major_and_minor - get :genders - get :genders_and_degrees - get :non_graduates + scope module: :statistics do + get 'articles', to: 'articles#index' + get 'employees', to: 'employees#index' + namespace :students do + get '/', action: :index + get :cities + get :double_major_and_minor + get :genders + get :genders_and_degrees + get :non_graduates + end end end From f0edf9124bdd30cbf026f290b9240a21e673515d Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 16 Jan 2020 16:55:24 +0300 Subject: [PATCH 018/100] =?UTF-8?q?Grafiklerin=20export=20edilmesini=20sa?= =?UTF-8?q?=C4=9Fla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/javascripts/chart.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/javascripts/chart.js b/app/assets/javascripts/chart.js index 93467ef8d..0fc2d441c 100644 --- a/app/assets/javascripts/chart.js +++ b/app/assets/javascripts/chart.js @@ -1,4 +1,5 @@ //= require echarts/dist/echarts.min //= require highcharts/highcharts //= require highcharts/modules/map +//= require highcharts/modules/exporting //= require highcharts-maps/tr From ce5f910a4c7577ec640364a125e620703c7341b9 Mon Sep 17 00:00:00 2001 From: isubas Date: Thu, 16 Jan 2020 16:55:56 +0300 Subject: [PATCH 019/100] Fix eslint offences --- app/assets/javascripts/highcharts-maps/tr.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/highcharts-maps/tr.js b/app/assets/javascripts/highcharts-maps/tr.js index 4f5ac78a8..7f7a70eac 100644 --- a/app/assets/javascripts/highcharts-maps/tr.js +++ b/app/assets/javascripts/highcharts-maps/tr.js @@ -1,4 +1,14 @@ -Highcharts.maps["countries/tr/tr-all"] = { - "title": "Turkey", "version": "1.1.2", "type": "FeatureCollection", "copyright": "Copyright (c) 2015 Highsoft AS, Based on data from Natural Earth", "copyrightShort": "Natural Earth", "copyrightUrl": "http://www.naturalearthdata.com", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG:32636" } }, "hc-transform": { "default": { "crs": "+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs", "scale": 0.000418317446042, "jsonres": 15.5, "jsonmarginX": -999, "jsonmarginY": 9851.0, "xoffset": -125397.473102, "yoffset": 4675858.14012 } }, - "features": [{ "type": "Feature", "id": "TR.OR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.68, "hc-middle-y": 0.42, "hc-key": "tr-or", "hc-a2": "OR", "labelrank": "7", "hasc": "TR.OR", "alt-name": "Ordu", "woe-id": "2347304", "subregion": null, "fips": "TU52", "postal-code": "OR", "name": "Ordu", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.4229", "woe-name": "Ordu", "latitude": "40.8376", "woe-label": "Ordu, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5081, 8906], [5147, 8927], [5238, 8997], [5315, 9122], [5376, 9125], [5449, 9101], [5511, 9056], [5553, 9054], [5608, 9132], [5660, 9122], [5663, 9077], [5727, 9024], [5773, 9033], [5847, 9014], [5824, 8931], [5840, 8865], [5834, 8758], [5890, 8702], [5809, 8667], [5808, 8617], [5751, 8608], [5701, 8556], [5638, 8584], [5604, 8641], [5572, 8718], [5498, 8719], [5368, 8800], [5255, 8796], [5079, 8866], [5081, 8906]]] } }, { "type": "Feature", "id": "TR.SS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.58, "hc-key": "tr-ss", "hc-a2": "SS", "labelrank": "7", "hasc": "TR.SS", "alt-name": "Samsun", "woe-id": "2347307", "subregion": null, "fips": "TU55", "postal-code": "SS", "name": "Samsun", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.0198", "woe-name": "Samsun", "latitude": "41.2761", "woe-label": "Samsun, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5315, 9122], [5238, 8997], [5147, 8927], [5081, 8906], [5051, 8936], [4937, 8906], [4877, 8946], [4824, 9000], [4803, 8985], [4779, 8922], [4713, 8881], [4670, 8900], [4534, 8898], [4497, 8934], [4398, 9002], [4364, 8995], [4194, 9038], [4132, 9037], [4110, 9118], [4081, 9167], [4106, 9203], [4196, 9253], [4217, 9222], [4303, 9164], [4416, 9186], [4395, 9281], [4386, 9394], [4406, 9443], [4471, 9439], [4617, 9498], [4650, 9519], [4699, 9496], [4741, 9444], [4753, 9325], [4812, 9253], [4867, 9226], [4872, 9205], [4931, 9172], [4995, 9216], [5019, 9273], [5137, 9261], [5220, 9224], [5247, 9188], [5253, 9144], [5315, 9122]]] } }, { "type": "Feature", "id": "TR.GA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.68, "hc-middle-y": 0.57, "hc-key": "tr-ga", "hc-a2": "GA", "labelrank": "7", "hasc": "TR.GA", "alt-name": "Gaziantep", "woe-id": "2347284", "subregion": null, "fips": "TU83", "postal-code": "GA", "name": "Gaziantep", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.2462", "woe-name": "Gaziantep", "latitude": "36.9988", "woe-label": "Gaziantep, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5963, 6042], [5846, 5982], [5751, 5957], [5677, 5911], [5626, 5953], [5527, 6000], [5510, 5988], [5435, 6063], [5350, 6097], [5330, 6137], [5292, 6132], [5288, 6083], [5203, 6032], [5172, 6000], [5135, 6037], [5049, 6092], [5121, 6192], [5150, 6256], [5196, 6321], [5264, 6356], [5290, 6394], [5318, 6377], [5337, 6314], [5382, 6301], [5432, 6359], [5610, 6422], [5682, 6430], [5706, 6447], [5707, 6522], [5832, 6541], [5900, 6519], [5948, 6482], [5910, 6473], [5862, 6409], [5840, 6348], [5863, 6212], [5895, 6188], [5927, 6195], [5923, 6152], [5948, 6129], [5963, 6042]]] } }, { "type": "Feature", "id": "TR.4409", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.43, "hc-key": "tr-4409", "hc-a2": "NU", "labelrank": "20", "hasc": "-99", "alt-name": null, "woe-id": "-99", "subregion": null, "fips": null, "postal-code": null, "name": null, "country": "Turkey", "type-en": null, "region": null, "longitude": "29.658", "woe-name": null, "latitude": "36.1327", "woe-label": null, "type": null }, "geometry": { "type": "Polygon", "coordinates": [[[3515, 5497], [3510, 5491], [3512, 5495], [3515, 5497]]] } }, { "type": "Feature", "id": "TR.KC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.66, "hc-middle-y": 0.37, "hc-key": "tr-kc", "hc-a2": "KC", "labelrank": "7", "hasc": "TR.KC", "alt-name": "Kocaeli", "woe-id": "2347296", "subregion": null, "fips": "TU41", "postal-code": "KC", "name": "Kocaeli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.9396", "woe-name": "Kocaeli", "latitude": "40.9008", "woe-label": "Kocaeli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1349, 9102], [1498, 9091], [1573, 9137], [1658, 9105], [1636, 9051], [1644, 9014], [1684, 9006], [1669, 8936], [1590, 8949], [1597, 8920], [1561, 8883], [1535, 8776], [1512, 8732], [1407, 8689], [1369, 8687], [1295, 8717], [1154, 8677], [1091, 8688], [1097, 8715], [1099, 8779], [1140, 8805], [1171, 8777], [1278, 8797], [1371, 8787], [1375, 8817], [1285, 8817], [1232, 8841], [1102, 8841], [1062, 8832], [1009, 8916], [1121, 9008], [1149, 9004], [1190, 8945], [1225, 8932], [1240, 8966], [1339, 9014], [1355, 9050], [1349, 9102]]] } }, { "type": "Feature", "id": "TR.BK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.63, "hc-middle-y": 0.67, "hc-key": "tr-bk", "hc-a2": "BK", "labelrank": "7", "hasc": "TR.BK", "alt-name": "Balıkesir", "woe-id": "2347267", "subregion": null, "fips": "TU10", "postal-code": "BK", "name": "Balıkesir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.8355", "woe-name": "Balıkesir", "latitude": "39.7193", "woe-label": "Balıkesir, TR, Turkey", "type": "Il" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[113, 8810], [165, 8792], [156, 8772], [95, 8748], [58, 8769], [54, 8796], [113, 8810]]], [[[-430, 7765], [-459, 7834], [-520, 7847], [-398, 7929], [-404, 7954], [-332, 7987], [-321, 8050], [-345, 8059], [-473, 8044], [-471, 8102], [-449, 8157], [-376, 8150], [-264, 8204], [-205, 8207], [-124, 8181], [-30, 8227], [0, 8311], [-17, 8335], [17, 8424], [-25, 8464], [59, 8523], [65, 8561], [185, 8558], [240, 8602], [189, 8610], [135, 8692], [178, 8715], [292, 8683], [326, 8661], [251, 8611], [272, 8585], [366, 8602], [419, 8601], [355, 8531], [380, 8478], [357, 8427], [386, 8351], [424, 8310], [440, 8236], [581, 8121], [625, 8113], [653, 8131], [670, 8057], [707, 8023], [781, 8021], [810, 7997], [774, 7913], [764, 7862], [714, 7786], [631, 7752], [624, 7694], [575, 7704], [522, 7680], [433, 7674], [395, 7643], [321, 7642], [295, 7708], [240, 7776], [176, 7775], [202, 7829], [190, 7852], [70, 7864], [-17, 7913], [-61, 7893], [-98, 7950], [-129, 7958], [-269, 7885], [-304, 7844], [-430, 7765]]]] } }, { "type": "Feature", "id": "TR.CK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.58, "hc-middle-y": 0.59, "hc-key": "tr-ck", "hc-a2": "CK", "labelrank": "7", "hasc": "TR.CK", "alt-name": "Çanakkale", "woe-id": "2347274", "subregion": null, "fips": "TU17", "postal-code": "CK", "name": "Çanakkale", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "26.8233", "woe-name": "Çanakkale", "latitude": "40.0553", "woe-label": "Çanakkale, TR, Turkey", "type": "Il" }, "geometry": { "type": "MultiPolygon", "coordinates": [[[[-806, 8282], [-783, 8272], [-790, 8237], [-839, 8267], [-806, 8282]]], [[[-347, 8883], [-347, 8885], [-268, 8872], [-272, 8815], [-258, 8760], [-418, 8695], [-459, 8628], [-561, 8550], [-618, 8524], [-603, 8490], [-689, 8432], [-730, 8428], [-665, 8524], [-658, 8569], [-686, 8618], [-622, 8644], [-557, 8693], [-463, 8738], [-422, 8735], [-385, 8771], [-330, 8795], [-354, 8838], [-347, 8883]]], [[[-941, 8555], [-854, 8573], [-823, 8556], [-831, 8510], [-805, 8500], [-944, 8475], [-999, 8501], [-941, 8555]]], [[[-473, 8044], [-592, 8031], [-647, 8006], [-683, 8014], [-765, 7999], [-808, 8013], [-781, 8100], [-759, 8119], [-746, 8175], [-756, 8203], [-739, 8347], [-710, 8393], [-646, 8396], [-596, 8456], [-583, 8517], [-531, 8527], [-392, 8655], [-239, 8637], [-191, 8677], [-76, 8673], [-62, 8609], [-1, 8570], [65, 8561], [59, 8523], [-25, 8464], [17, 8424], [-17, 8335], [0, 8311], [-30, 8227], [-124, 8181], [-205, 8207], [-264, 8204], [-376, 8150], [-449, 8157], [-471, 8102], [-473, 8044]]]] } }, { "type": "Feature", "id": "TR.TT", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.5, "hc-key": "tr-tt", "hc-a2": "TT", "labelrank": "7", "hasc": "TR.TT", "alt-name": "Tokat", "woe-id": "2347311", "subregion": null, "fips": "TU60", "postal-code": "TT", "name": "Tokat", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.5724", "woe-name": "Tokat", "latitude": "40.4442", "woe-label": "Tokat, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4937, 8906], [5051, 8936], [5081, 8906], [5079, 8866], [5255, 8796], [5368, 8800], [5498, 8719], [5572, 8718], [5604, 8641], [5549, 8534], [5455, 8488], [5312, 8470], [5221, 8438], [5157, 8443], [5117, 8423], [5085, 8309], [4987, 8256], [4896, 8248], [4768, 8217], [4739, 8262], [4741, 8331], [4717, 8353], [4620, 8325], [4525, 8327], [4441, 8398], [4477, 8463], [4536, 8488], [4618, 8631], [4708, 8626], [4780, 8592], [4874, 8654], [4876, 8690], [4920, 8702], [4969, 8817], [4927, 8865], [4937, 8906]]] } }, { "type": "Feature", "id": "TR.GI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.57, "hc-key": "tr-gi", "hc-a2": "GI", "labelrank": "7", "hasc": "TR.GI", "alt-name": "Giresun", "woe-id": "2347285", "subregion": null, "fips": "TU28", "postal-code": "GI", "name": "Giresun", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "38.6055", "woe-name": "Giresun", "latitude": "40.5379", "woe-label": "Giresun, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6337, 8403], [6316, 8392], [6243, 8385], [6127, 8424], [6071, 8407], [5968, 8463], [5890, 8702], [5834, 8758], [5840, 8865], [5824, 8931], [5847, 9014], [5942, 9011], [5967, 8992], [6081, 9005], [6138, 9044], [6177, 9032], [6211, 9068], [6287, 9103], [6349, 9108], [6406, 9133], [6397, 9044], [6407, 8942], [6419, 8915], [6354, 8903], [6294, 8846], [6297, 8805], [6267, 8758], [6268, 8694], [6284, 8677], [6350, 8665], [6395, 8637], [6394, 8610], [6313, 8545], [6318, 8471], [6337, 8403]]] } }, { "type": "Feature", "id": "TR.EN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.18, "hc-middle-y": 0.45, "hc-key": "tr-en", "hc-a2": "EN", "labelrank": "7", "hasc": "TR.EN", "alt-name": "Erzincan", "woe-id": "2347281", "subregion": null, "fips": "TU24", "postal-code": "EN", "name": "Erzincan", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.5121", "woe-name": "Erzincan", "latitude": "39.6874", "woe-label": "Erzincan, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6243, 8385], [6316, 8392], [6337, 8403], [6403, 8384], [6509, 8335], [6529, 8314], [6597, 8292], [6728, 8302], [6818, 8339], [6859, 8400], [6947, 8418], [6993, 8453], [7085, 8441], [7070, 8360], [7101, 8347], [7196, 8354], [7237, 8308], [7262, 8242], [7328, 8201], [7302, 8131], [7304, 8086], [7267, 8095], [7092, 8092], [7059, 8103], [6952, 8057], [6876, 8080], [6795, 8023], [6667, 8000], [6580, 8007], [6506, 7989], [6423, 7957], [6400, 7923], [6319, 7872], [6328, 7814], [6286, 7791], [6262, 7738], [6281, 7652], [6264, 7648], [6250, 7639], [6211, 7680], [6160, 7701], [6107, 7700], [6061, 7720], [6076, 7765], [6053, 7892], [6095, 7946], [6041, 7991], [6047, 8119], [6084, 8182], [6126, 8197], [6118, 8230], [6040, 8214], [6051, 8298], [6075, 8314], [6129, 8293], [6183, 8321], [6234, 8320], [6243, 8385]]] } }, { "type": "Feature", "id": "TR.BG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.59, "hc-middle-y": 0.44, "hc-key": "tr-bg", "hc-a2": "BG", "labelrank": "7", "hasc": "TR.BG", "alt-name": "Bingöl", "woe-id": "2347269", "subregion": null, "fips": "TU12", "postal-code": "BG", "name": "Bingöl", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.646", "woe-name": "Bingöl", "latitude": "39.0743", "woe-label": "Bingöl, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7267, 8095], [7304, 8086], [7354, 8083], [7433, 8133], [7509, 8078], [7587, 8061], [7642, 7995], [7628, 7949], [7651, 7877], [7695, 7818], [7698, 7758], [7663, 7706], [7650, 7648], [7714, 7546], [7520, 7428], [7374, 7429], [7289, 7398], [7288, 7356], [7254, 7319], [7188, 7311], [7174, 7376], [7141, 7418], [7161, 7497], [7198, 7490], [7213, 7565], [7164, 7627], [7146, 7682], [7153, 7733], [7198, 7823], [7178, 7856], [7115, 7824], [6991, 7745], [7002, 7793], [6986, 7846], [6993, 7920], [7026, 7946], [7074, 7951], [7082, 7978], [7133, 7991], [7179, 8054], [7220, 8052], [7267, 8095]]] } }, { "type": "Feature", "id": "TR.HT", "properties": { "hc-group": "admin1", "hc-middle-x": 0.52, "hc-middle-y": 0.51, "hc-key": "tr-ht", "hc-a2": "HT", "labelrank": "7", "hasc": "TR.HT", "alt-name": "Hatay", "woe-id": "2347286", "subregion": null, "fips": "TU31", "postal-code": "HT", "name": "Hatay", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.2284", "woe-name": "Hatay", "latitude": "36.4876", "woe-label": "Hatay, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5049, 6092], [5135, 6037], [5172, 6000], [5142, 5941], [5126, 5849], [5126, 5786], [5110, 5758], [5144, 5637], [5173, 5632], [5192, 5570], [5095, 5565], [5068, 5544], [5022, 5563], [5015, 5519], [5019, 5394], [4972, 5393], [4968, 5367], [4926, 5361], [4895, 5265], [4808, 5303], [4799, 5339], [4759, 5331], [4795, 5405], [4777, 5454], [4686, 5591], [4679, 5618], [4721, 5658], [4752, 5713], [4819, 5772], [4906, 5830], [4920, 5869], [4901, 5972], [4823, 6054], [4780, 6050], [4751, 6019], [4741, 6063], [4797, 6126], [4822, 6119], [4949, 6120], [4991, 6087], [5049, 6092]]] } }, { "type": "Feature", "id": "TR.AA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.67, "hc-key": "tr-aa", "hc-a2": "AA", "labelrank": "7", "hasc": "TR.AA", "alt-name": "Adana", "woe-id": "2347258", "subregion": null, "fips": "TU81", "postal-code": "AA", "name": "Adana", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.7555", "woe-name": "Adana", "latitude": "37.4006", "woe-label": "Adana, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4822, 6119], [4797, 6126], [4741, 6063], [4751, 6019], [4679, 5946], [4609, 5936], [4546, 5889], [4599, 5899], [4582, 5822], [4532, 5808], [4513, 5825], [4419, 5773], [4239, 5877], [4175, 5899], [4252, 5950], [4241, 6070], [4257, 6116], [4234, 6138], [4171, 6155], [4154, 6270], [4126, 6291], [4084, 6373], [4085, 6423], [4124, 6492], [4101, 6583], [4119, 6610], [4177, 6600], [4233, 6610], [4306, 6687], [4405, 6682], [4528, 6644], [4558, 6659], [4542, 6791], [4749, 6942], [4815, 7057], [4837, 7118], [4904, 7165], [4950, 7179], [4980, 7167], [5043, 7073], [4996, 6997], [4952, 6774], [4976, 6645], [4932, 6598], [4835, 6591], [4810, 6546], [4744, 6376], [4746, 6321], [4765, 6269], [4814, 6264], [4845, 6201], [4822, 6119]]] } }, { "type": "Feature", "id": "TR.CM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.48, "hc-middle-y": 0.47, "hc-key": "tr-cm", "hc-a2": "CM", "labelrank": "7", "hasc": "TR.CM", "alt-name": "Çorum", "woe-id": "2347276", "subregion": null, "fips": "TU19", "postal-code": "CM", "name": "Çorum", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.711", "woe-name": "Çorum", "latitude": "40.6149", "woe-label": "Çorum, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3639, 8179], [3638, 8216], [3663, 8264], [3655, 8325], [3617, 8351], [3588, 8436], [3652, 8469], [3689, 8551], [3655, 8628], [3628, 8763], [3645, 8820], [3617, 8865], [3742, 8909], [3754, 8945], [3714, 8995], [3756, 9080], [3794, 9119], [3827, 9186], [3855, 9193], [3870, 9175], [3963, 9162], [3993, 9136], [4055, 9118], [4081, 9167], [4110, 9118], [4132, 9037], [4194, 9038], [4174, 8963], [4167, 8844], [4211, 8752], [4320, 8728], [4390, 8698], [4405, 8666], [4395, 8587], [4349, 8513], [4340, 8428], [4265, 8414], [4260, 8331], [4203, 8284], [4130, 8293], [4048, 8251], [3948, 8236], [3863, 8249], [3757, 8206], [3670, 8195], [3639, 8179]]] } }, { "type": "Feature", "id": "TR.KK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.49, "hc-key": "tr-kk", "hc-a2": "KK", "labelrank": "7", "hasc": "TR.KK", "alt-name": "Kırıkkale", "woe-id": "2347329", "subregion": null, "fips": "TU79", "postal-code": "KK", "name": "Kırıkkale", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.778", "woe-name": "Kırıkkale", "latitude": "39.9011", "woe-label": "Kırıkkale, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3588, 8436], [3617, 8351], [3655, 8325], [3663, 8264], [3638, 8216], [3639, 8179], [3647, 8150], [3652, 8120], [3563, 8034], [3539, 7960], [3501, 7899], [3411, 7825], [3349, 7716], [3304, 7802], [3282, 7904], [3222, 7986], [3208, 8046], [3238, 8168], [3262, 8230], [3367, 8255], [3370, 8388], [3384, 8488], [3536, 8441], [3588, 8436]]] } }, { "type": "Feature", "id": "TR.NG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.39, "hc-key": "tr-ng", "hc-a2": "NG", "labelrank": "7", "hasc": "TR.NG", "alt-name": "Niğde", "woe-id": "2347323", "subregion": null, "fips": "TU73", "postal-code": "NG", "name": "Niğde", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.7093", "woe-name": "Niğde", "latitude": "37.8966", "woe-label": "Niğde, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3716, 6809], [3900, 7090], [4013, 7103], [4082, 7064], [4141, 7087], [4183, 6979], [4217, 6944], [4309, 6945], [4325, 6898], [4324, 6836], [4343, 6786], [4317, 6768], [4306, 6687], [4233, 6610], [4177, 6600], [4119, 6610], [4101, 6583], [4124, 6492], [4085, 6423], [4084, 6373], [4044, 6382], [3968, 6346], [3924, 6344], [3852, 6440], [3854, 6493], [3889, 6565], [3882, 6606], [3798, 6719], [3744, 6743], [3716, 6809]]] } }, { "type": "Feature", "id": "TR.AK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.48, "hc-middle-y": 0.62, "hc-key": "tr-ak", "hc-a2": "AK", "labelrank": "6", "hasc": "TR.AK", "alt-name": "Aksaray", "woe-id": "2347325", "subregion": null, "fips": "TU75", "postal-code": "AK", "name": "Aksaray", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.8772", "woe-name": "Aksaray", "latitude": "38.3566", "woe-label": "Aksaray, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3900, 7090], [3716, 6809], [3674, 6815], [3542, 6775], [3409, 6770], [3316, 6756], [3254, 6825], [3241, 6882], [3206, 6951], [3210, 7009], [3264, 7186], [3319, 7267], [3463, 7321], [3514, 7320], [3582, 7376], [3583, 7418], [3560, 7478], [3578, 7526], [3644, 7502], [3674, 7454], [3751, 7475], [3745, 7446], [3764, 7382], [3736, 7312], [3745, 7276], [3799, 7252], [3835, 7253], [3825, 7149], [3900, 7090]]] } }, { "type": "Feature", "id": "TR.KH", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.48, "hc-key": "tr-kh", "hc-a2": "KH", "labelrank": "7", "hasc": "TR.KH", "alt-name": "Kırşehir", "woe-id": "2347295", "subregion": null, "fips": "TU40", "postal-code": "KH", "name": "Kırşehir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.1308", "woe-name": "Kırşehir", "latitude": "39.3548", "woe-label": "Kırşehir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3751, 7475], [3674, 7454], [3644, 7502], [3578, 7526], [3582, 7550], [3470, 7603], [3361, 7675], [3349, 7716], [3411, 7825], [3501, 7899], [3539, 7960], [3563, 8034], [3652, 8120], [3704, 8099], [3762, 8041], [3832, 8033], [3855, 7987], [3933, 7894], [3986, 7874], [4026, 7820], [3947, 7814], [3969, 7714], [3963, 7668], [3993, 7611], [3970, 7581], [3838, 7516], [3826, 7477], [3836, 7429], [3813, 7423], [3751, 7475]]] } }, { "type": "Feature", "id": "TR.YZ", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.5, "hc-key": "tr-yz", "hc-a2": "YZ", "labelrank": "7", "hasc": "TR.YZ", "alt-name": "Yozgat", "woe-id": "2347317", "subregion": null, "fips": "TU66", "postal-code": "YZ", "name": "Yozgat", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.1328", "woe-name": "Yozgat", "latitude": "39.5476", "woe-label": "Yozgat, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3652, 8120], [3647, 8150], [3639, 8179], [3670, 8195], [3757, 8206], [3863, 8249], [3948, 8236], [4048, 8251], [4130, 8293], [4203, 8284], [4260, 8331], [4265, 8414], [4340, 8428], [4360, 8404], [4441, 8398], [4525, 8327], [4620, 8325], [4717, 8353], [4741, 8331], [4739, 8262], [4768, 8217], [4785, 8165], [4842, 8076], [4827, 8017], [4741, 7936], [4677, 7833], [4632, 7788], [4587, 7721], [4409, 7599], [4322, 7548], [4194, 7565], [4161, 7670], [4116, 7697], [4096, 7747], [4026, 7820], [3986, 7874], [3933, 7894], [3855, 7987], [3832, 8033], [3762, 8041], [3704, 8099], [3652, 8120]]] } }, { "type": "Feature", "id": "TR.AM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.53, "hc-middle-y": 0.47, "hc-key": "tr-am", "hc-a2": "AM", "labelrank": "7", "hasc": "TR.AM", "alt-name": "Amasya", "woe-id": "2347262", "subregion": null, "fips": "TU05", "postal-code": "AM", "name": "Amasya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.7627", "woe-name": "Amasya", "latitude": "40.6379", "woe-label": "Amasya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4441, 8398], [4360, 8404], [4340, 8428], [4349, 8513], [4395, 8587], [4405, 8666], [4390, 8698], [4320, 8728], [4211, 8752], [4167, 8844], [4174, 8963], [4194, 9038], [4364, 8995], [4398, 9002], [4497, 8934], [4534, 8898], [4670, 8900], [4713, 8881], [4779, 8922], [4803, 8985], [4824, 9000], [4877, 8946], [4937, 8906], [4927, 8865], [4969, 8817], [4920, 8702], [4876, 8690], [4874, 8654], [4780, 8592], [4708, 8626], [4618, 8631], [4536, 8488], [4477, 8463], [4441, 8398]]] } }, { "type": "Feature", "id": "TR.MS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.36, "hc-middle-y": 0.62, "hc-key": "tr-ms", "hc-a2": "MS", "labelrank": "7", "hasc": "TR.MS", "alt-name": "Muş", "woe-id": "2347302", "subregion": null, "fips": "TU49", "postal-code": "MS", "name": "Muş", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.9034", "woe-name": "Muş", "latitude": "38.9124", "woe-label": "Muş, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7880, 7427], [7849, 7419], [7818, 7407], [7792, 7429], [7787, 7487], [7714, 7546], [7650, 7648], [7663, 7706], [7698, 7758], [7695, 7818], [7651, 7877], [7628, 7949], [7642, 7995], [7730, 8018], [7776, 8012], [7858, 7952], [7910, 7899], [8008, 7886], [8050, 7921], [8118, 7940], [8179, 7998], [8194, 8093], [8266, 8139], [8319, 8153], [8367, 8072], [8456, 7981], [8467, 7812], [8385, 7752], [8292, 7752], [8200, 7703], [8186, 7657], [8136, 7653], [8128, 7626], [8155, 7569], [8104, 7506], [8066, 7480], [7969, 7478], [7880, 7427]]] } }, { "type": "Feature", "id": "TR.BM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.35, "hc-key": "tr-bm", "hc-a2": "BM", "labelrank": "7", "hasc": "TR.BM", "alt-name": "Batman", "woe-id": "2347326", "subregion": null, "fips": "TU76", "postal-code": "BM", "name": "Batman", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.4262", "woe-name": "Batman", "latitude": "37.7343", "woe-label": "Batman, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7818, 7407], [7849, 7419], [7880, 7427], [7930, 7413], [7975, 7279], [7985, 7194], [7929, 7087], [7865, 7063], [7849, 7028], [7858, 6981], [7925, 6930], [8032, 6898], [8100, 6836], [7941, 6697], [7855, 6671], [7790, 6704], [7742, 6784], [7697, 6831], [7671, 6834], [7643, 6902], [7693, 6970], [7729, 7094], [7715, 7212], [7728, 7321], [7739, 7340], [7824, 7383], [7818, 7407]]] } }, { "type": "Feature", "id": "TR.KA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.6, "hc-middle-y": 0.53, "hc-key": "tr-ka", "hc-a2": "KA", "labelrank": "7", "hasc": "TR.KA", "alt-name": "Kars", "woe-id": "2347291", "subregion": null, "fips": "TU84", "postal-code": "KA", "name": "Kars", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "43.074", "woe-name": "Kars", "latitude": "40.3671", "woe-label": "Kars, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8955, 8678], [8790, 8607], [8775, 8553], [8744, 8562], [8632, 8551], [8467, 8484], [8357, 8493], [8305, 8566], [8241, 8607], [8157, 8624], [8106, 8677], [8119, 8718], [8197, 8753], [8306, 8837], [8284, 8908], [8292, 8959], [8419, 8992], [8428, 9189], [8490, 9231], [8744, 9382], [8763, 9322], [8847, 9289], [8921, 9165], [8940, 9091], [8911, 8979], [8868, 8927], [8906, 8899], [8895, 8843], [8947, 8791], [8981, 8724], [8946, 8698], [8955, 8678]]] } }, { "type": "Feature", "id": "TR.IG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.51, "hc-key": "tr-ig", "hc-a2": "IG", "labelrank": "7", "hasc": "TR.IG", "alt-name": "Iğdır", "woe-id": "20070183", "subregion": null, "fips": "TU88", "postal-code": "IG", "name": "Iğdır", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "44.0317", "woe-name": "Iğdır", "latitude": "39.811", "woe-label": "Iğdır, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8775, 8553], [8790, 8607], [8955, 8678], [9100, 8632], [9168, 8629], [9288, 8670], [9328, 8669], [9411, 8634], [9478, 8570], [9549, 8523], [9599, 8475], [9633, 8419], [9487, 8492], [9434, 8436], [9439, 8395], [9406, 8404], [9309, 8368], [9222, 8376], [9115, 8364], [9105, 8384], [9016, 8405], [8982, 8450], [8904, 8473], [8836, 8424], [8806, 8436], [8775, 8553]]] } }, { "type": "Feature", "id": "TR.DU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.4, "hc-middle-y": 0.48, "hc-key": "tr-du", "hc-a2": "DU", "labelrank": "7", "hasc": "TR.DU", "alt-name": "Düzce", "woe-id": "29390030", "subregion": null, "fips": "TU93", "postal-code": "DU", "name": "Düzce", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.3231", "woe-name": null, "latitude": "40.8631", "woe-label": "Düzce, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1943, 9034], [2093, 9038], [2156, 9079], [2177, 9059], [2269, 9011], [2402, 8997], [2391, 8934], [2364, 8903], [2243, 8881], [2216, 8861], [2192, 8772], [2149, 8740], [2096, 8736], [2035, 8763], [1946, 8762], [1901, 8779], [1905, 8879], [1893, 8920], [1945, 8991], [1943, 9034]]] } }, { "type": "Feature", "id": "TR.ZO", "properties": { "hc-group": "admin1", "hc-middle-x": 0.58, "hc-middle-y": 0.57, "hc-key": "tr-zo", "hc-a2": "ZO", "labelrank": "7", "hasc": "TR.ZO", "alt-name": "Zonguldak", "woe-id": "20070185", "subregion": null, "fips": "TU85", "postal-code": "ZO", "name": "Zonguldak", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.8206", "woe-name": "Zonguldak", "latitude": "41.2481", "woe-label": "Zonguldak, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2669, 9202], [2620, 9138], [2593, 9042], [2592, 8978], [2475, 8983], [2402, 8997], [2269, 9011], [2177, 9059], [2156, 9079], [2187, 9116], [2190, 9198], [2329, 9254], [2445, 9329], [2537, 9379], [2588, 9396], [2651, 9350], [2681, 9263], [2669, 9202]]] } }, { "type": "Feature", "id": "TR.KB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.48, "hc-middle-y": 0.54, "hc-key": "tr-kb", "hc-a2": "KB", "labelrank": "7", "hasc": "TR.KB", "alt-name": "Karabük", "woe-id": "20070186", "subregion": null, "fips": "TU89", "postal-code": "KB", "name": "Karabük", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.5067", "woe-name": "Karabük", "latitude": "41.2347", "woe-label": "Karabük, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2592, 8978], [2593, 9042], [2620, 9138], [2669, 9202], [2728, 9198], [2785, 9213], [2851, 9267], [2876, 9320], [2906, 9328], [2958, 9377], [2976, 9356], [3049, 9375], [3088, 9346], [3119, 9247], [3065, 9236], [3012, 9174], [3018, 9072], [3077, 9055], [3094, 9029], [3070, 8970], [3018, 8941], [2965, 8947], [2919, 8888], [2854, 8837], [2797, 8811], [2779, 8868], [2662, 8927], [2666, 8966], [2592, 8978]]] } }, { "type": "Feature", "id": "TR.YL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.27, "hc-key": "tr-yl", "hc-a2": "YL", "labelrank": "7", "hasc": "TR.YL", "alt-name": "Yalova", "woe-id": "20070182", "subregion": null, "fips": "TU92", "postal-code": "YL", "name": "Yalova", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.2036", "woe-name": "Yalova", "latitude": "40.6154", "woe-label": "Yalova, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1097, 8715], [1091, 8688], [1057, 8696], [1020, 8661], [985, 8655], [903, 8696], [848, 8705], [846, 8627], [811, 8633], [735, 8674], [746, 8696], [855, 8757], [1018, 8765], [1080, 8792], [1099, 8779], [1097, 8715]]] } }, { "type": "Feature", "id": "TR.SK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.59, "hc-middle-y": 0.53, "hc-key": "tr-sk", "hc-a2": "SK", "labelrank": "7", "hasc": "TR.SK", "alt-name": "Sakarya", "woe-id": "2347306", "subregion": null, "fips": "TU54", "postal-code": "SK", "name": "Sakarya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.4439", "woe-name": "Sakarya", "latitude": "40.6596", "woe-label": "Sakarya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1943, 9034], [1945, 8991], [1893, 8920], [1905, 8879], [1901, 8779], [1866, 8753], [1863, 8686], [1789, 8672], [1734, 8583], [1759, 8524], [1748, 8498], [1678, 8506], [1640, 8547], [1574, 8552], [1498, 8534], [1450, 8551], [1409, 8593], [1376, 8655], [1371, 8671], [1369, 8687], [1407, 8689], [1512, 8732], [1535, 8776], [1561, 8883], [1597, 8920], [1590, 8949], [1669, 8936], [1684, 9006], [1644, 9014], [1636, 9051], [1658, 9105], [1804, 9066], [1830, 9044], [1943, 9034]]] } }, { "type": "Feature", "id": "TR.CI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.6, "hc-middle-y": 0.55, "hc-key": "tr-ci", "hc-a2": "CI", "labelrank": "7", "hasc": "TR.CI", "alt-name": "Çankırı", "woe-id": "2347275", "subregion": null, "fips": "TU82", "postal-code": "CI", "name": "Çankırı", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.2142", "woe-name": "Çankırı", "latitude": "40.7087", "woe-label": "Çankırı, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2786, 8751], [2795, 8790], [2797, 8811], [2854, 8837], [2919, 8888], [2965, 8947], [3018, 8941], [3070, 8970], [3094, 9029], [3114, 9006], [3184, 8998], [3279, 8934], [3357, 8976], [3399, 8984], [3487, 9032], [3520, 9006], [3483, 8945], [3504, 8910], [3572, 8870], [3617, 8865], [3645, 8820], [3628, 8763], [3655, 8628], [3689, 8551], [3652, 8469], [3588, 8436], [3536, 8441], [3384, 8488], [3275, 8528], [3246, 8486], [3206, 8481], [3169, 8509], [3151, 8552], [3080, 8603], [3033, 8670], [2873, 8745], [2786, 8751]]] } }, { "type": "Feature", "id": "TR.BL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.47, "hc-key": "tr-bl", "hc-a2": "BL", "labelrank": "7", "hasc": "TR.BL", "alt-name": "Bolu", "woe-id": "2347271", "subregion": null, "fips": "TU14", "postal-code": "BL", "name": "Bolu", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.6806", "woe-name": "Bolu", "latitude": "40.5854", "woe-label": "Bolu, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2797, 8811], [2795, 8790], [2786, 8751], [2751, 8728], [2748, 8689], [2769, 8631], [2724, 8566], [2679, 8543], [2603, 8555], [2557, 8532], [2407, 8490], [2317, 8490], [2267, 8471], [2204, 8489], [2186, 8509], [2093, 8501], [1994, 8550], [1957, 8429], [1911, 8404], [1876, 8359], [1840, 8366], [1807, 8379], [1755, 8466], [1748, 8498], [1759, 8524], [1734, 8583], [1789, 8672], [1863, 8686], [1866, 8753], [1901, 8779], [1946, 8762], [2035, 8763], [2096, 8736], [2149, 8740], [2192, 8772], [2216, 8861], [2243, 8881], [2364, 8903], [2391, 8934], [2402, 8997], [2475, 8983], [2592, 8978], [2666, 8966], [2662, 8927], [2779, 8868], [2797, 8811]]] } }, { "type": "Feature", "id": "TR.ED", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.74, "hc-key": "tr-ed", "hc-a2": "ED", "labelrank": "7", "hasc": "TR.ED", "alt-name": "Edirne", "woe-id": "2347279", "subregion": null, "fips": "TU22", "postal-code": "ED", "name": "Edirne", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "26.4697", "woe-name": "Edirne", "latitude": "40.9579", "woe-label": "Edirne, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[-347, 8885], [-347, 8883], [-354, 8838], [-449, 8830], [-508, 8805], [-540, 8822], [-619, 8815], [-743, 8832], [-760, 8923], [-702, 8942], [-655, 8996], [-645, 9033], [-568, 9075], [-582, 9190], [-567, 9284], [-533, 9285], [-449, 9346], [-422, 9328], [-395, 9361], [-405, 9532], [-416, 9517], [-474, 9563], [-466, 9582], [-541, 9615], [-536, 9670], [-512, 9688], [-431, 9687], [-414, 9760], [-370, 9787], [-310, 9776], [-255, 9783], [-235, 9629], [-234, 9559], [-251, 9490], [-317, 9354], [-303, 9320], [-301, 9206], [-342, 9131], [-375, 9039], [-375, 8980], [-347, 8885]]] } }, { "type": "Feature", "id": "TR.ES", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.55, "hc-key": "tr-es", "hc-a2": "ES", "labelrank": "7", "hasc": "TR.ES", "alt-name": "Eskişehir", "woe-id": "2347283", "subregion": null, "fips": "TU26", "postal-code": "ES", "name": "Eskişehir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "31.0894", "woe-name": "Eskişehir", "latitude": "39.6297", "woe-label": "Eskişehir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1807, 8379], [1840, 8366], [1876, 8359], [1899, 8328], [1906, 8270], [1942, 8267], [1995, 8288], [2055, 8270], [2087, 8293], [2165, 8291], [2188, 8267], [2352, 8264], [2381, 8168], [2416, 8157], [2435, 8111], [2412, 8085], [2442, 7973], [2470, 7948], [2494, 7883], [2488, 7777], [2521, 7724], [2496, 7693], [2418, 7650], [2403, 7597], [2326, 7595], [2261, 7602], [2188, 7596], [2147, 7629], [2120, 7692], [2082, 7735], [1914, 7647], [1863, 7689], [1806, 7640], [1722, 7603], [1679, 7631], [1659, 7670], [1624, 7691], [1615, 7737], [1561, 7813], [1542, 7912], [1462, 8008], [1520, 8084], [1528, 8158], [1579, 8207], [1637, 8217], [1686, 8270], [1705, 8343], [1751, 8378], [1807, 8379]]] } }, { "type": "Feature", "id": "TR.KO", "properties": { "hc-group": "admin1", "hc-middle-x": 0.35, "hc-middle-y": 0.42, "hc-key": "tr-ko", "hc-a2": "KO", "labelrank": "7", "hasc": "TR.KO", "alt-name": "Konya", "woe-id": "2347321", "subregion": null, "fips": "TU71", "postal-code": "KO", "name": "Konya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.469", "woe-name": "Konya", "latitude": "38.04", "woe-label": "Konya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2326, 7595], [2403, 7597], [2418, 7650], [2467, 7624], [2566, 7550], [2653, 7570], [2763, 7522], [2832, 7565], [2874, 7547], [2978, 7636], [3061, 7598], [3091, 7683], [3115, 7683], [3236, 7609], [3266, 7539], [3262, 7378], [3319, 7267], [3264, 7186], [3210, 7009], [3206, 6951], [3241, 6882], [3254, 6825], [3316, 6756], [3409, 6770], [3542, 6775], [3674, 6815], [3716, 6809], [3744, 6743], [3798, 6719], [3882, 6606], [3889, 6565], [3854, 6493], [3852, 6440], [3924, 6344], [3918, 6321], [3835, 6268], [3753, 6233], [3718, 6199], [3664, 6292], [3517, 6448], [3501, 6540], [3421, 6551], [3351, 6474], [3292, 6452], [3118, 6436], [3064, 6414], [2966, 6305], [2842, 6140], [2831, 6067], [2900, 6048], [2907, 6007], [2806, 5899], [2741, 5850], [2745, 5899], [2724, 5964], [2655, 5981], [2666, 6055], [2625, 6076], [2553, 6141], [2499, 6208], [2375, 6303], [2228, 6335], [2146, 6347], [2099, 6396], [2121, 6479], [2100, 6552], [2144, 6582], [2171, 6653], [2159, 6766], [2172, 6813], [2268, 6861], [2272, 6884], [2161, 6982], [2083, 7064], [2068, 7117], [2169, 7181], [2263, 7289], [2272, 7372], [2334, 7476], [2312, 7529], [2326, 7595]]] } }, { "type": "Feature", "id": "TR.BU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.5, "hc-key": "tr-bu", "hc-a2": "BU", "labelrank": "7", "hasc": "TR.BU", "alt-name": "Bursa", "woe-id": "2347273", "subregion": null, "fips": "TU16", "postal-code": "BU", "name": "Bursa", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.0593", "woe-name": "Bursa", "latitude": "40.1314", "woe-label": "Bursa, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1369, 8687], [1371, 8671], [1376, 8655], [1323, 8620], [1294, 8542], [1310, 8483], [1244, 8409], [1226, 8302], [1267, 8247], [1274, 8211], [1215, 8209], [1146, 8201], [1089, 8226], [1060, 8208], [1011, 8081], [984, 8063], [965, 7983], [934, 7965], [831, 7980], [810, 7997], [781, 8021], [707, 8023], [670, 8057], [653, 8131], [625, 8113], [581, 8121], [440, 8236], [424, 8310], [386, 8351], [357, 8427], [380, 8478], [355, 8531], [419, 8601], [572, 8594], [654, 8564], [729, 8588], [830, 8555], [890, 8561], [905, 8597], [939, 8601], [894, 8637], [846, 8627], [848, 8705], [903, 8696], [985, 8655], [1020, 8661], [1057, 8696], [1091, 8688], [1154, 8677], [1295, 8717], [1369, 8687]]] } }, { "type": "Feature", "id": "TR.KL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.49, "hc-key": "tr-kl", "hc-a2": "KL", "labelrank": "7", "hasc": "TR.KL", "alt-name": "Kırklareli", "woe-id": "2347294", "subregion": null, "fips": "TU39", "postal-code": "KL", "name": "Kırklareli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.4916", "woe-name": "Kırklareli", "latitude": "41.6201", "woe-label": "Kırklareli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[461, 9423], [435, 9390], [434, 9390], [244, 9379], [130, 9355], [80, 9280], [12, 9251], [-68, 9329], [-220, 9332], [-303, 9320], [-317, 9354], [-251, 9490], [-234, 9559], [-235, 9629], [-255, 9783], [-200, 9795], [-151, 9847], [-70, 9830], [-15, 9851], [58, 9761], [123, 9704], [159, 9740], [221, 9746], [255, 9726], [267, 9762], [379, 9740], [390, 9680], [354, 9680], [348, 9633], [405, 9525], [401, 9502], [461, 9423]]] } }, { "type": "Feature", "id": "TR.IB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.27, "hc-middle-y": 0.55, "hc-key": "tr-ib", "hc-a2": "IB", "labelrank": "7", "hasc": "TR.IB", "alt-name": "İstanbul", "woe-id": "2347289", "subregion": null, "fips": "TU34", "postal-code": "IB", "name": "İstanbul", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "28.8463", "woe-name": "İstanbul", "latitude": "41.1285", "woe-label": "İstanbul, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[434, 9390], [435, 9390], [461, 9423], [556, 9351], [671, 9294], [834, 9206], [942, 9179], [926, 9131], [952, 9161], [1008, 9180], [1217, 9127], [1349, 9102], [1355, 9050], [1339, 9014], [1240, 8966], [1225, 8932], [1190, 8945], [1149, 9004], [1121, 9008], [1009, 8916], [951, 8947], [889, 8998], [880, 9034], [911, 9065], [915, 9100], [865, 9014], [842, 9018], [776, 8989], [735, 9004], [653, 9007], [644, 9071], [624, 9017], [582, 9050], [461, 9094], [428, 9093], [419, 9189], [448, 9290], [434, 9390]]] } }, { "type": "Feature", "id": "TR.KR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.39, "hc-key": "tr-kr", "hc-a2": "KR", "labelrank": "7", "hasc": "TR.KR", "alt-name": "Karaman", "woe-id": "2347328", "subregion": null, "fips": "TU78", "postal-code": "KR", "name": "Karaman", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.3026", "woe-name": "Karaman", "latitude": "37.2262", "woe-label": "Karaman, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2854, 5680], [2784, 5749], [2741, 5850], [2806, 5899], [2907, 6007], [2900, 6048], [2831, 6067], [2842, 6140], [2966, 6305], [3064, 6414], [3118, 6436], [3292, 6452], [3351, 6474], [3421, 6551], [3501, 6540], [3517, 6448], [3664, 6292], [3718, 6199], [3613, 6170], [3558, 6128], [3481, 6106], [3413, 6108], [3368, 6090], [3271, 6076], [3172, 6003], [3153, 5950], [3118, 5973], [3044, 5943], [3081, 5849], [3149, 5810], [3190, 5768], [3175, 5749], [3115, 5763], [3086, 5700], [3032, 5699], [2964, 5676], [2854, 5680]]] } }, { "type": "Feature", "id": "TR.AL", "properties": { "hc-group": "admin1", "hc-middle-x": 0.26, "hc-middle-y": 0.48, "hc-key": "tr-al", "hc-a2": "AL", "labelrank": "7", "hasc": "TR.AL", "alt-name": "Antalya", "woe-id": "2347264", "subregion": null, "fips": "TU07", "postal-code": "AL", "name": "Antalya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.9564", "woe-name": "Antalya", "latitude": "37.1141", "woe-label": "Antalya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2741, 5850], [2784, 5749], [2854, 5680], [2851, 5559], [2806, 5433], [2772, 5440], [2686, 5494], [2638, 5547], [2635, 5573], [2586, 5624], [2535, 5717], [2491, 5758], [2370, 5793], [2324, 5831], [2134, 5921], [2096, 5955], [1865, 5994], [1770, 5991], [1719, 6022], [1669, 5985], [1650, 5945], [1640, 5828], [1645, 5762], [1616, 5735], [1588, 5673], [1613, 5629], [1540, 5533], [1541, 5563], [1458, 5609], [1402, 5604], [1393, 5572], [1301, 5549], [1256, 5549], [1153, 5485], [1175, 5510], [1135, 5511], [1114, 5487], [1075, 5548], [1013, 5553], [966, 5596], [933, 5574], [879, 5618], [906, 5640], [942, 5738], [1010, 5749], [1013, 5788], [1070, 5831], [1075, 5915], [1143, 6056], [1176, 6066], [1231, 6141], [1242, 6195], [1275, 6237], [1380, 6287], [1502, 6326], [1536, 6320], [1584, 6270], [1782, 6268], [1829, 6336], [1871, 6370], [1921, 6349], [2012, 6372], [2068, 6401], [2099, 6396], [2146, 6347], [2228, 6335], [2375, 6303], [2499, 6208], [2553, 6141], [2625, 6076], [2666, 6055], [2655, 5981], [2724, 5964], [2745, 5899], [2741, 5850]]] } }, { "type": "Feature", "id": "TR.AF", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.33, "hc-key": "tr-af", "hc-a2": "AF", "labelrank": "7", "hasc": "TR.AF", "alt-name": "Afyon", "woe-id": "2347260", "subregion": null, "fips": "TU03", "postal-code": "AF", "name": "Afyonkarahisar", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.6938", "woe-name": "Afyon", "latitude": "38.6784", "woe-label": "Afyonkarahisar, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1352, 6670], [1301, 6675], [1254, 6661], [1230, 6706], [1153, 6732], [1156, 6805], [1359, 6950], [1368, 7016], [1297, 7139], [1219, 7160], [1253, 7253], [1288, 7285], [1301, 7342], [1421, 7408], [1462, 7465], [1516, 7604], [1583, 7632], [1624, 7691], [1659, 7670], [1679, 7631], [1722, 7603], [1806, 7640], [1863, 7689], [1914, 7647], [2082, 7735], [2120, 7692], [2147, 7629], [2188, 7596], [2261, 7602], [2326, 7595], [2312, 7529], [2334, 7476], [2272, 7372], [2263, 7289], [2169, 7181], [2068, 7117], [1982, 7185], [1870, 7090], [1798, 7018], [1730, 7000], [1654, 6961], [1595, 6904], [1467, 6800], [1458, 6725], [1438, 6691], [1352, 6670]]] } }, { "type": "Feature", "id": "TR.BD", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.4, "hc-key": "tr-bd", "hc-a2": "BD", "labelrank": "7", "hasc": "TR.BD", "alt-name": "Burdur", "woe-id": "2347272", "subregion": null, "fips": "TU15", "postal-code": "BD", "name": "Burdur", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.1627", "woe-name": "Burdur", "latitude": "37.5001", "woe-label": "Burdur, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1254, 6661], [1301, 6675], [1352, 6670], [1369, 6624], [1412, 6625], [1537, 6714], [1635, 6613], [1711, 6604], [1744, 6582], [1777, 6489], [1825, 6410], [1851, 6408], [1871, 6370], [1829, 6336], [1782, 6268], [1584, 6270], [1536, 6320], [1502, 6326], [1380, 6287], [1275, 6237], [1242, 6195], [1231, 6141], [1176, 6066], [1143, 6056], [1097, 6125], [1027, 6118], [998, 6085], [976, 6094], [975, 6173], [992, 6249], [1096, 6414], [1076, 6467], [1074, 6535], [1148, 6571], [1163, 6603], [1254, 6661]]] } }, { "type": "Feature", "id": "TR.IP", "properties": { "hc-group": "admin1", "hc-middle-x": 0.57, "hc-middle-y": 0.54, "hc-key": "tr-ip", "hc-a2": "IP", "labelrank": "7", "hasc": "TR.IP", "alt-name": "Isparta", "woe-id": "2347288", "subregion": null, "fips": "TU33", "postal-code": "IP", "name": "Isparta", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.818", "woe-name": "Isparta", "latitude": "37.8923", "woe-label": "Isparta, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2099, 6396], [2068, 6401], [2012, 6372], [1921, 6349], [1871, 6370], [1851, 6408], [1825, 6410], [1777, 6489], [1744, 6582], [1711, 6604], [1635, 6613], [1537, 6714], [1412, 6625], [1369, 6624], [1352, 6670], [1438, 6691], [1458, 6725], [1467, 6800], [1595, 6904], [1654, 6961], [1730, 7000], [1798, 7018], [1870, 7090], [1982, 7185], [2068, 7117], [2083, 7064], [2161, 6982], [2272, 6884], [2268, 6861], [2172, 6813], [2159, 6766], [2171, 6653], [2144, 6582], [2100, 6552], [2121, 6479], [2099, 6396]]] } }, { "type": "Feature", "id": "TR.AY", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.49, "hc-key": "tr-ay", "hc-a2": "AY", "labelrank": "7", "hasc": "TR.AY", "alt-name": "Aydın", "woe-id": "2347266", "subregion": null, "fips": "TU09", "postal-code": "AY", "name": "Aydın", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.9573", "woe-name": "Aydın", "latitude": "37.7292", "woe-label": "Aydın, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[533, 6940], [610, 6935], [653, 6879], [664, 6789], [643, 6747], [674, 6691], [710, 6682], [712, 6646], [672, 6634], [612, 6570], [527, 6568], [514, 6542], [538, 6486], [464, 6500], [388, 6557], [347, 6568], [269, 6492], [159, 6494], [136, 6508], [57, 6510], [18, 6540], [-69, 6574], [-107, 6565], [-157, 6476], [-201, 6435], [-250, 6427], [-269, 6443], [-258, 6529], [-284, 6523], [-260, 6616], [-370, 6672], [-303, 6685], [-230, 6720], [-217, 6824], [-131, 6837], [-59, 6879], [-29, 6882], [110, 6863], [244, 6891], [354, 6887], [533, 6940]]] } }, { "type": "Feature", "id": "TR.MN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.55, "hc-middle-y": 0.53, "hc-key": "tr-mn", "hc-a2": "MN", "labelrank": "7", "hasc": "TR.MN", "alt-name": "Manisa", "woe-id": "2347299", "subregion": null, "fips": "TU45", "postal-code": "MN", "name": "Manisa", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "28.1324", "woe-name": "Manisa", "latitude": "38.7115", "woe-label": "Manisa, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[610, 6935], [533, 6940], [474, 7075], [406, 7106], [313, 7097], [278, 7161], [190, 7175], [165, 7129], [136, 7124], [99, 7193], [19, 7246], [-5, 7304], [-119, 7315], [-151, 7346], [-163, 7396], [-198, 7435], [-147, 7515], [-133, 7568], [-65, 7600], [-10, 7645], [-3, 7682], [-30, 7749], [-61, 7893], [-17, 7913], [70, 7864], [190, 7852], [202, 7829], [176, 7775], [240, 7776], [295, 7708], [321, 7642], [395, 7643], [433, 7674], [522, 7680], [575, 7704], [624, 7694], [662, 7652], [761, 7617], [803, 7535], [796, 7491], [824, 7422], [819, 7377], [712, 7288], [740, 7240], [744, 7172], [730, 7116], [696, 7075], [747, 7038], [694, 7028], [660, 6944], [610, 6935]]] } }, { "type": "Feature", "id": "TR.DY", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.47, "hc-key": "tr-dy", "hc-a2": "DY", "labelrank": "7", "hasc": "TR.DY", "alt-name": "Diyarbakır", "woe-id": "2347278", "subregion": null, "fips": "TU21", "postal-code": "DY", "name": "Diyarbakır", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.2706", "woe-name": "Diyarbakır", "latitude": "38.0261", "woe-label": "Diyarbakır, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6579, 6952], [6612, 7034], [6590, 7070], [6529, 7057], [6544, 7124], [6522, 7165], [6599, 7184], [6696, 7175], [6777, 7207], [6864, 7214], [6899, 7235], [6930, 7306], [6998, 7291], [7188, 7311], [7254, 7319], [7288, 7356], [7289, 7398], [7374, 7429], [7520, 7428], [7714, 7546], [7787, 7487], [7792, 7429], [7818, 7407], [7824, 7383], [7739, 7340], [7728, 7321], [7715, 7212], [7729, 7094], [7693, 6970], [7643, 6902], [7671, 6834], [7637, 6814], [7436, 6802], [7374, 6784], [7344, 6728], [7298, 6721], [7128, 6580], [7077, 6504], [7048, 6532], [7001, 6624], [6979, 6709], [6977, 6788], [6914, 6830], [6904, 6811], [6815, 6852], [6738, 6915], [6625, 6930], [6579, 6952]]] } }, { "type": "Feature", "id": "TR.AD", "properties": { "hc-group": "admin1", "hc-middle-x": 0.55, "hc-middle-y": 0.48, "hc-key": "tr-ad", "hc-a2": "AD", "labelrank": "7", "hasc": "TR.AD", "alt-name": "Adıyaman", "woe-id": "2347259", "subregion": null, "fips": "TU02", "postal-code": "AD", "name": "Adıyaman", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "38.339", "woe-name": "Adıyaman", "latitude": "37.8102", "woe-label": "Adıyaman, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6529, 7057], [6590, 7070], [6612, 7034], [6579, 6952], [6508, 6907], [6505, 6872], [6465, 6845], [6464, 6740], [6422, 6723], [6442, 6704], [6373, 6688], [6414, 6658], [6288, 6630], [6218, 6544], [6080, 6511], [6033, 6463], [5979, 6489], [5948, 6482], [5900, 6519], [5832, 6541], [5707, 6522], [5608, 6569], [5585, 6643], [5662, 6738], [5844, 6791], [5893, 6782], [5980, 6815], [6013, 6849], [6025, 6916], [6068, 6942], [6140, 7048], [6213, 7063], [6250, 7035], [6223, 6989], [6277, 6972], [6357, 6972], [6429, 6988], [6506, 7025], [6529, 7057]]] } }, { "type": "Feature", "id": "TR.KM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.54, "hc-key": "tr-km", "hc-a2": "KM", "labelrank": "7", "hasc": "TR.KM", "alt-name": "Kahramanmaraş", "woe-id": "2347300", "subregion": null, "fips": "TU46", "postal-code": "KM", "name": "Kahramanmaraş", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.0013", "woe-name": "Kahramanmaraş", "latitude": "37.9278", "woe-label": "Kahramanmaraş, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5662, 6738], [5585, 6643], [5608, 6569], [5707, 6522], [5706, 6447], [5682, 6430], [5610, 6422], [5432, 6359], [5382, 6301], [5337, 6314], [5318, 6377], [5290, 6394], [5264, 6356], [5196, 6321], [5169, 6357], [5094, 6403], [4953, 6368], [4929, 6396], [4902, 6480], [4934, 6542], [4932, 6598], [4976, 6645], [4952, 6774], [4996, 6997], [5043, 7073], [5121, 7175], [5154, 7265], [5172, 7278], [5246, 7299], [5349, 7277], [5475, 7294], [5445, 7237], [5453, 7195], [5495, 7202], [5580, 7188], [5654, 7149], [5739, 7121], [5769, 7074], [5738, 6938], [5708, 6889], [5684, 6782], [5662, 6738]]] } }, { "type": "Feature", "id": "TR.KY", "properties": { "hc-group": "admin1", "hc-middle-x": 0.45, "hc-middle-y": 0.38, "hc-key": "tr-ky", "hc-a2": "KY", "labelrank": "7", "hasc": "TR.KY", "alt-name": "Kayseri", "woe-id": "2347293", "subregion": null, "fips": "TU38", "postal-code": "KY", "name": "Kayseri", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "35.9256", "woe-name": "Kayseri", "latitude": "38.7168", "woe-label": "Kayseri, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5172, 7278], [5154, 7265], [5121, 7175], [5043, 7073], [4980, 7167], [4950, 7179], [4904, 7165], [4837, 7118], [4815, 7057], [4749, 6942], [4542, 6791], [4558, 6659], [4528, 6644], [4405, 6682], [4306, 6687], [4317, 6768], [4343, 6786], [4324, 6836], [4325, 6898], [4309, 6945], [4217, 6944], [4183, 6979], [4141, 7087], [4226, 7224], [4223, 7324], [4155, 7425], [4194, 7565], [4322, 7548], [4409, 7599], [4587, 7721], [4632, 7788], [4689, 7774], [4798, 7701], [4854, 7695], [4896, 7712], [4989, 7702], [5046, 7673], [5096, 7692], [5196, 7688], [5242, 7666], [5265, 7602], [5223, 7479], [5172, 7278]]] } }, { "type": "Feature", "id": "TR.EG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.7, "hc-key": "tr-eg", "hc-a2": "EG", "labelrank": "7", "hasc": "TR.EG", "alt-name": "Elazığ", "woe-id": "2347280", "subregion": null, "fips": "TU23", "postal-code": "EG", "name": "Elazığ", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.3702", "woe-name": "Elazığ", "latitude": "38.5718", "woe-label": "Elazığ, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6250, 7639], [6264, 7648], [6281, 7652], [6305, 7621], [6301, 7561], [6327, 7539], [6430, 7560], [6560, 7540], [6706, 7482], [6735, 7515], [6829, 7528], [6880, 7553], [6912, 7593], [6930, 7659], [6917, 7712], [6934, 7732], [6991, 7745], [7115, 7824], [7178, 7856], [7198, 7823], [7153, 7733], [7146, 7682], [7164, 7627], [7213, 7565], [7198, 7490], [7161, 7497], [7141, 7418], [7174, 7376], [7188, 7311], [6998, 7291], [6930, 7306], [6899, 7235], [6864, 7214], [6777, 7207], [6696, 7175], [6599, 7184], [6522, 7165], [6453, 7148], [6391, 7172], [6345, 7224], [6277, 7206], [6206, 7233], [6157, 7238], [6094, 7278], [6077, 7320], [6104, 7378], [6136, 7393], [6161, 7441], [6223, 7439], [6231, 7464], [6217, 7545], [6198, 7584], [6210, 7635], [6250, 7639]]] } }, { "type": "Feature", "id": "TR.IC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.47, "hc-middle-y": 0.54, "hc-key": "tr-ic", "hc-a2": "IC", "labelrank": "6", "hasc": "TR.IC", "alt-name": "Mersin", "woe-id": "2347287", "subregion": null, "fips": "TU32", "postal-code": "IC", "name": "Mersin", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.8268", "woe-name": "Mersin", "latitude": "36.6614", "woe-label": "Mersin, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4175, 5899], [4080, 5961], [4035, 5959], [3956, 5924], [3876, 5848], [3796, 5792], [3740, 5709], [3682, 5666], [3683, 5605], [3638, 5586], [3615, 5521], [3598, 5576], [3563, 5593], [3522, 5533], [3489, 5520], [3456, 5469], [3433, 5504], [3378, 5457], [3323, 5479], [3281, 5464], [3134, 5460], [3107, 5424], [3022, 5439], [2941, 5384], [2864, 5399], [2806, 5433], [2851, 5559], [2854, 5680], [2964, 5676], [3032, 5699], [3086, 5700], [3115, 5763], [3175, 5749], [3190, 5768], [3149, 5810], [3081, 5849], [3044, 5943], [3118, 5973], [3153, 5950], [3172, 6003], [3271, 6076], [3368, 6090], [3413, 6108], [3481, 6106], [3558, 6128], [3613, 6170], [3718, 6199], [3753, 6233], [3835, 6268], [3918, 6321], [3924, 6344], [3968, 6346], [4044, 6382], [4084, 6373], [4126, 6291], [4154, 6270], [4171, 6155], [4234, 6138], [4257, 6116], [4241, 6070], [4252, 5950], [4175, 5899]]] } }, { "type": "Feature", "id": "TR.SP", "properties": { "hc-group": "admin1", "hc-middle-x": 0.54, "hc-middle-y": 0.55, "hc-key": "tr-sp", "hc-a2": "SP", "labelrank": "7", "hasc": "TR.SP", "alt-name": "Sinop", "woe-id": "2347308", "subregion": null, "fips": "TU57", "postal-code": "SP", "name": "Sinop", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.8226", "woe-name": "Sinop", "latitude": "41.5894", "woe-label": "Sinop, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3709, 9658], [3772, 9650], [3853, 9671], [3895, 9655], [3967, 9652], [4022, 9665], [4070, 9699], [4101, 9765], [4141, 9761], [4204, 9710], [4181, 9657], [4255, 9526], [4296, 9493], [4352, 9478], [4406, 9443], [4386, 9394], [4395, 9281], [4416, 9186], [4303, 9164], [4217, 9222], [4196, 9253], [4106, 9203], [4081, 9167], [4055, 9118], [3993, 9136], [3963, 9162], [3870, 9175], [3855, 9193], [3858, 9287], [3848, 9314], [3863, 9367], [3895, 9395], [3913, 9443], [3883, 9483], [3847, 9492], [3706, 9505], [3671, 9518], [3713, 9617], [3709, 9658]]] } }, { "type": "Feature", "id": "TR.AV", "properties": { "hc-group": "admin1", "hc-middle-x": 0.51, "hc-middle-y": 0.38, "hc-key": "tr-av", "hc-a2": "AV", "labelrank": "6", "hasc": "TR.AV", "alt-name": "Artvin", "woe-id": "2347265", "subregion": null, "fips": "TU08", "postal-code": "AV", "name": "Artvin", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.8331", "woe-name": "Artvin", "latitude": "41.0175", "woe-label": "Artvin, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7509, 9390], [7552, 9432], [7607, 9456], [7628, 9511], [7668, 9560], [7728, 9542], [7769, 9552], [7833, 9510], [7900, 9578], [7941, 9567], [8015, 9586], [8179, 9553], [8198, 9483], [8246, 9386], [8237, 9335], [8194, 9307], [8152, 9250], [8125, 9178], [7987, 9154], [7953, 9126], [7956, 9066], [7925, 9011], [7920, 8949], [7899, 8909], [7805, 8938], [7763, 8922], [7671, 8863], [7630, 8892], [7637, 9005], [7548, 9014], [7503, 9034], [7508, 9064], [7626, 9237], [7548, 9300], [7509, 9390]]] } }, { "type": "Feature", "id": "TR.RI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.53, "hc-key": "tr-ri", "hc-a2": "RI", "labelrank": "7", "hasc": "TR.RI", "alt-name": "Rize", "woe-id": "2347305", "subregion": null, "fips": "TU53", "postal-code": "RI", "name": "Rize", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.8691", "woe-name": "Rize", "latitude": "40.9466", "woe-label": "Rize, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7067, 9127], [7125, 9173], [7176, 9172], [7249, 9218], [7313, 9297], [7352, 9293], [7417, 9325], [7467, 9375], [7509, 9390], [7548, 9300], [7626, 9237], [7508, 9064], [7503, 9034], [7409, 8950], [7344, 8928], [7331, 8885], [7255, 8860], [7170, 8808], [7161, 8902], [7119, 8987], [7108, 9037], [7067, 9127]]] } }, { "type": "Feature", "id": "TR.TB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.53, "hc-key": "tr-tb", "hc-a2": "TB", "labelrank": "7", "hasc": "TR.TB", "alt-name": "Trabzon", "woe-id": "2347312", "subregion": null, "fips": "TU61", "postal-code": "TB", "name": "Trabzon", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.8034", "woe-name": "Trabzon", "latitude": "40.7988", "woe-label": "Trabzon, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6406, 9133], [6475, 9122], [6557, 9173], [6592, 9167], [6650, 9116], [6694, 9103], [6726, 9116], [6799, 9084], [6875, 9103], [6948, 9064], [7067, 9127], [7108, 9037], [7119, 8987], [7161, 8902], [7170, 8808], [7004, 8771], [6910, 8779], [6850, 8826], [6809, 8792], [6779, 8834], [6739, 8856], [6719, 8812], [6667, 8801], [6535, 8843], [6460, 8932], [6419, 8915], [6407, 8942], [6397, 9044], [6406, 9133]]] } }, { "type": "Feature", "id": "TR.AN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.58, "hc-middle-y": 0.48, "hc-key": "tr-an", "hc-a2": "AN", "labelrank": "7", "hasc": "TR.AN", "alt-name": "Ankara", "woe-id": "2347263", "subregion": null, "fips": "TU68", "postal-code": "AN", "name": "Ankara", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.578", "woe-name": "Ankara", "latitude": "39.829", "woe-label": "Ankara, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[3319, 7267], [3262, 7378], [3266, 7539], [3236, 7609], [3115, 7683], [3091, 7683], [3061, 7598], [2978, 7636], [2874, 7547], [2832, 7565], [2763, 7522], [2653, 7570], [2566, 7550], [2467, 7624], [2418, 7650], [2496, 7693], [2521, 7724], [2488, 7777], [2494, 7883], [2470, 7948], [2442, 7973], [2412, 8085], [2435, 8111], [2416, 8157], [2381, 8168], [2352, 8264], [2188, 8267], [2165, 8291], [2087, 8293], [2055, 8270], [1995, 8288], [1942, 8267], [1906, 8270], [1899, 8328], [1876, 8359], [1911, 8404], [1957, 8429], [1994, 8550], [2093, 8501], [2186, 8509], [2204, 8489], [2267, 8471], [2317, 8490], [2407, 8490], [2557, 8532], [2603, 8555], [2679, 8543], [2724, 8566], [2769, 8631], [2748, 8689], [2751, 8728], [2786, 8751], [2873, 8745], [3033, 8670], [3080, 8603], [3151, 8552], [3169, 8509], [3206, 8481], [3246, 8486], [3275, 8528], [3384, 8488], [3370, 8388], [3367, 8255], [3262, 8230], [3238, 8168], [3208, 8046], [3222, 7986], [3282, 7904], [3304, 7802], [3349, 7716], [3361, 7675], [3470, 7603], [3582, 7550], [3578, 7526], [3560, 7478], [3583, 7418], [3582, 7376], [3514, 7320], [3463, 7321], [3319, 7267]]] } }, { "type": "Feature", "id": "TR.SU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.62, "hc-key": "tr-su", "hc-a2": "SU", "labelrank": "7", "hasc": "TR.SU", "alt-name": "Şanlıurfa", "woe-id": "2347314", "subregion": null, "fips": "TU63", "postal-code": "SU", "name": "Şanlıurfa", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.0508", "woe-name": "Şanlıurfa", "latitude": "37.3189", "woe-label": "Şanlıurfa, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7253, 6189], [7096, 6093], [6975, 6037], [6674, 5958], [6643, 5955], [6551, 5979], [6415, 5960], [6337, 5979], [6254, 6057], [6113, 6098], [6055, 6098], [5963, 6042], [5948, 6129], [5923, 6152], [5927, 6195], [5895, 6188], [5863, 6212], [5840, 6348], [5862, 6409], [5910, 6473], [5948, 6482], [5979, 6489], [6033, 6463], [6080, 6511], [6218, 6544], [6288, 6630], [6414, 6658], [6373, 6688], [6442, 6704], [6422, 6723], [6464, 6740], [6465, 6845], [6505, 6872], [6508, 6907], [6579, 6952], [6625, 6930], [6738, 6915], [6815, 6852], [6904, 6811], [6914, 6830], [6977, 6788], [6979, 6709], [7001, 6624], [7048, 6532], [7077, 6504], [7091, 6419], [7160, 6361], [7167, 6288], [7226, 6200], [7253, 6189]]] } }, { "type": "Feature", "id": "TR.BB", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.45, "hc-key": "tr-bb", "hc-a2": "BB", "labelrank": "6", "hasc": "TR.BB", "alt-name": "Bayburt", "woe-id": "2347327", "subregion": null, "fips": "TU77", "postal-code": "BB", "name": "Bayburt", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.3056", "woe-name": "Bayburt", "latitude": "40.2859", "woe-label": "Bayburt, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6809, 8792], [6850, 8826], [6910, 8779], [7004, 8771], [7170, 8808], [7191, 8766], [7233, 8626], [7269, 8610], [7359, 8599], [7337, 8537], [7240, 8489], [7196, 8443], [7085, 8441], [6993, 8453], [6947, 8418], [6859, 8400], [6820, 8491], [6839, 8581], [6835, 8687], [6809, 8792]]] } }, { "type": "Feature", "id": "TR.EM", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.57, "hc-key": "tr-em", "hc-a2": "EM", "labelrank": "7", "hasc": "TR.EM", "alt-name": "Erzurum", "woe-id": "2347282", "subregion": null, "fips": "TU25", "postal-code": "EM", "name": "Erzurum", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "41.403", "woe-name": "Erzurum", "latitude": "39.9678", "woe-label": "Erzurum, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8292, 8959], [8284, 8908], [8306, 8837], [8197, 8753], [8119, 8718], [8106, 8677], [8157, 8624], [8241, 8607], [8305, 8566], [8357, 8493], [8262, 8424], [8201, 8416], [8252, 8365], [8335, 8342], [8324, 8316], [8336, 8219], [8319, 8153], [8266, 8139], [8194, 8093], [8179, 7998], [8118, 7940], [8050, 7921], [8008, 7886], [7910, 7899], [7858, 7952], [7776, 8012], [7730, 8018], [7642, 7995], [7587, 8061], [7509, 8078], [7433, 8133], [7354, 8083], [7304, 8086], [7302, 8131], [7328, 8201], [7262, 8242], [7237, 8308], [7196, 8354], [7101, 8347], [7070, 8360], [7085, 8441], [7196, 8443], [7240, 8489], [7337, 8537], [7359, 8599], [7269, 8610], [7233, 8626], [7191, 8766], [7170, 8808], [7255, 8860], [7331, 8885], [7344, 8928], [7409, 8950], [7503, 9034], [7548, 9014], [7637, 9005], [7630, 8892], [7671, 8863], [7763, 8922], [7805, 8938], [7899, 8909], [7920, 8949], [7925, 9011], [7956, 9066], [7953, 9126], [7987, 9154], [8125, 9178], [8142, 9124], [8214, 9055], [8292, 8959]]] } }, { "type": "Feature", "id": "TR.MR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.46, "hc-middle-y": 0.4, "hc-key": "tr-mr", "hc-a2": "MR", "labelrank": "7", "hasc": "TR.MR", "alt-name": "Mardin", "woe-id": "2347322", "subregion": null, "fips": "TU72", "postal-code": "MR", "name": "Mardin", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "40.9525", "woe-name": "Mardin", "latitude": "37.4282", "woe-label": "Mardin, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8184, 6436], [7948, 6357], [7788, 6336], [7608, 6362], [7501, 6337], [7400, 6275], [7348, 6260], [7253, 6189], [7226, 6200], [7167, 6288], [7160, 6361], [7091, 6419], [7077, 6504], [7128, 6580], [7298, 6721], [7344, 6728], [7374, 6784], [7436, 6802], [7637, 6814], [7671, 6834], [7697, 6831], [7742, 6784], [7790, 6704], [7855, 6671], [7941, 6697], [8100, 6836], [8165, 6688], [8162, 6639], [8069, 6580], [8048, 6551], [8060, 6522], [8129, 6507], [8168, 6480], [8184, 6436]]] } }, { "type": "Feature", "id": "TR.SR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.62, "hc-middle-y": 0.42, "hc-key": "tr-sr", "hc-a2": "SR", "labelrank": "6", "hasc": "TR.SR", "alt-name": "Şırnak", "woe-id": "2347330", "subregion": null, "fips": "TU80", "postal-code": "SR", "name": "Şırnak", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.5455", "woe-name": "Şırnak", "latitude": "37.4047", "woe-label": "Şırnak, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[9019, 6631], [8961, 6630], [8881, 6663], [8853, 6661], [8772, 6616], [8645, 6631], [8568, 6469], [8453, 6430], [8436, 6473], [8442, 6515], [8403, 6553], [8363, 6551], [8353, 6577], [8271, 6476], [8184, 6436], [8168, 6480], [8129, 6507], [8060, 6522], [8048, 6551], [8069, 6580], [8162, 6639], [8165, 6688], [8100, 6836], [8185, 6804], [8299, 6806], [8340, 6855], [8416, 6860], [8535, 6842], [8756, 6838], [8788, 6878], [8790, 6919], [8833, 6949], [8943, 6933], [8998, 6943], [8995, 6834], [9033, 6751], [9035, 6687], [9019, 6631]]] } }, { "type": "Feature", "id": "TR.SI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.39, "hc-middle-y": 0.53, "hc-key": "tr-si", "hc-a2": "SI", "labelrank": "7", "hasc": "TR.SI", "alt-name": "Siirt", "woe-id": "2347324", "subregion": null, "fips": "TU74", "postal-code": "SI", "name": "Siirt", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.2212", "woe-name": "Siirt", "latitude": "37.9159", "woe-label": "Siirt, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8790, 6919], [8788, 6878], [8756, 6838], [8535, 6842], [8416, 6860], [8340, 6855], [8299, 6806], [8185, 6804], [8100, 6836], [8032, 6898], [7925, 6930], [7858, 6981], [7849, 7028], [7865, 7063], [7929, 7087], [7985, 7194], [8046, 7178], [8108, 7178], [8203, 7220], [8243, 7206], [8319, 7151], [8430, 7124], [8571, 7051], [8607, 7082], [8598, 7160], [8620, 7229], [8664, 7237], [8753, 7222], [8773, 7113], [8771, 7009], [8761, 6970], [8790, 6919]]] } }, { "type": "Feature", "id": "TR.HK", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.44, "hc-key": "tr-hk", "hc-a2": "HK", "labelrank": "7", "hasc": "TR.HK", "alt-name": "Hakkari", "woe-id": "2347320", "subregion": null, "fips": "TU70", "postal-code": "HK", "name": "Hakkari", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "44.0804", "woe-name": "Hakkari", "latitude": "37.6097", "woe-label": "Hakkâri, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[9453, 7122], [9464, 7102], [9521, 7110], [9556, 7097], [9606, 7039], [9637, 7052], [9694, 7013], [9670, 6949], [9697, 6929], [9701, 6817], [9851, 6722], [9833, 6676], [9844, 6610], [9823, 6626], [9733, 6614], [9655, 6530], [9608, 6508], [9593, 6458], [9550, 6458], [9510, 6529], [9538, 6584], [9520, 6653], [9437, 6685], [9381, 6679], [9332, 6609], [9286, 6585], [9261, 6602], [9173, 6592], [9091, 6595], [9019, 6631], [9035, 6687], [9033, 6751], [8995, 6834], [8998, 6943], [9075, 6953], [9181, 6993], [9230, 6985], [9303, 7001], [9333, 7024], [9361, 7108], [9453, 7122]]] } }, { "type": "Feature", "id": "TR.VA", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.52, "hc-key": "tr-va", "hc-a2": "VA", "labelrank": "7", "hasc": "TR.VA", "alt-name": "Van", "woe-id": "2347316", "subregion": null, "fips": "TU65", "postal-code": "VA", "name": "Van", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "43.5684", "woe-name": "Van", "latitude": "38.5212", "woe-label": "Van, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[9236, 8146], [9266, 8049], [9332, 8017], [9338, 7937], [9319, 7904], [9358, 7833], [9409, 7805], [9408, 7670], [9441, 7647], [9459, 7473], [9536, 7479], [9561, 7442], [9518, 7383], [9520, 7308], [9457, 7169], [9453, 7122], [9361, 7108], [9333, 7024], [9303, 7001], [9230, 6985], [9181, 6993], [9075, 6953], [8998, 6943], [8943, 6933], [8833, 6949], [8790, 6919], [8761, 6970], [8771, 7009], [8773, 7113], [8753, 7222], [8664, 7237], [8620, 7229], [8589, 7236], [8571, 7325], [8541, 7384], [8551, 7427], [8642, 7496], [8702, 7624], [8767, 7697], [8778, 7751], [8751, 7785], [8680, 7817], [8652, 7907], [8727, 7957], [8720, 8029], [8674, 8046], [8676, 8068], [8740, 8094], [8780, 8144], [8864, 8134], [8927, 8091], [8997, 8089], [9045, 8125], [9160, 8115], [9236, 8146]]] } }, { "type": "Feature", "id": "TR.AR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.35, "hc-middle-y": 0.51, "hc-key": "tr-ar", "hc-a2": "AR", "labelrank": "7", "hasc": "TR.AR", "alt-name": "Ardahan", "woe-id": "20070284", "subregion": null, "fips": "TU86", "postal-code": "AR", "name": "Ardahan", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.8342", "woe-name": "Ardahan", "latitude": "41.1809", "woe-label": "Ardahan, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8179, 9553], [8224, 9616], [8230, 9658], [8280, 9679], [8367, 9678], [8344, 9625], [8381, 9606], [8399, 9629], [8482, 9552], [8589, 9500], [8548, 9462], [8586, 9462], [8624, 9415], [8673, 9435], [8738, 9417], [8744, 9382], [8490, 9231], [8428, 9189], [8419, 8992], [8292, 8959], [8214, 9055], [8142, 9124], [8125, 9178], [8152, 9250], [8194, 9307], [8237, 9335], [8246, 9386], [8198, 9483], [8179, 9553]]] } }, { "type": "Feature", "id": "TR.KI", "properties": { "hc-group": "admin1", "hc-middle-x": 0.43, "hc-middle-y": 0.56, "hc-key": "tr-ki", "hc-a2": "KI", "labelrank": "7", "hasc": "TR.KI", "alt-name": "Kilis", "woe-id": "20070285", "subregion": null, "fips": "TU90", "postal-code": "KI", "name": "Kilis", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.0035", "woe-name": "Kilis", "latitude": "36.8329", "woe-label": "Kilis, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5677, 5911], [5634, 5881], [5515, 5893], [5435, 5884], [5406, 5860], [5383, 5875], [5379, 5931], [5351, 5954], [5172, 6000], [5203, 6032], [5288, 6083], [5292, 6132], [5330, 6137], [5350, 6097], [5435, 6063], [5510, 5988], [5527, 6000], [5626, 5953], [5677, 5911]]] } }, { "type": "Feature", "id": "TR.BR", "properties": { "hc-group": "admin1", "hc-middle-x": 0.56, "hc-middle-y": 0.51, "hc-key": "tr-br", "hc-a2": "BR", "labelrank": "7", "hasc": "TR.BR", "alt-name": "Bartın", "woe-id": "20070187", "subregion": null, "fips": "TU87", "postal-code": "BR", "name": "Bartın", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "32.4688", "woe-name": "Bartın", "latitude": "41.5857", "woe-label": "Bartın, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2588, 9396], [2659, 9482], [2732, 9498], [2847, 9567], [2948, 9581], [2953, 9538], [2987, 9453], [2953, 9428], [2958, 9377], [2906, 9328], [2876, 9320], [2851, 9267], [2785, 9213], [2728, 9198], [2669, 9202], [2681, 9263], [2651, 9350], [2588, 9396]]] } }, { "type": "Feature", "id": "TR.TG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.35, "hc-middle-y": 0.47, "hc-key": "tr-tg", "hc-a2": "TG", "labelrank": "7", "hasc": "TR.TG", "alt-name": "Tekirdağ", "woe-id": "2347310", "subregion": null, "fips": "TU59", "postal-code": "TG", "name": "Tekirdağ", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.4547", "woe-name": "Tekirdağ", "latitude": "41.0824", "woe-label": "Tekirdağ, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[428, 9093], [338, 9069], [306, 9024], [252, 9029], [186, 9058], [69, 9048], [38, 9016], [7, 8938], [-47, 8890], [-73, 8851], [-137, 8803], [-210, 8794], [-258, 8760], [-272, 8815], [-268, 8872], [-347, 8885], [-375, 8980], [-375, 9039], [-342, 9131], [-301, 9206], [-303, 9320], [-220, 9332], [-68, 9329], [12, 9251], [80, 9280], [130, 9355], [244, 9379], [434, 9390], [448, 9290], [419, 9189], [428, 9093]]] } }, { "type": "Feature", "id": "TR.IZ", "properties": { "hc-group": "admin1", "hc-middle-x": 0.45, "hc-middle-y": 0.69, "hc-key": "tr-iz", "hc-a2": "IZ", "labelrank": "7", "hasc": "TR.IZ", "alt-name": "İzmir", "woe-id": "2347290", "subregion": null, "fips": "TU35", "postal-code": "IZ", "name": "İzmir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "27.3977", "woe-name": "İzmir", "latitude": "38.2426", "woe-label": "İzmir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[-217, 6824], [-225, 6896], [-295, 6905], [-322, 6941], [-387, 6964], [-436, 6948], [-454, 7025], [-487, 7079], [-559, 7074], [-590, 7007], [-668, 7088], [-783, 7141], [-734, 7183], [-704, 7166], [-641, 7198], [-652, 7242], [-617, 7244], [-676, 7288], [-700, 7387], [-660, 7426], [-610, 7403], [-546, 7302], [-562, 7228], [-532, 7147], [-530, 7204], [-496, 7236], [-476, 7185], [-386, 7189], [-334, 7210], [-292, 7200], [-252, 7239], [-327, 7246], [-377, 7229], [-399, 7289], [-429, 7315], [-419, 7350], [-472, 7368], [-486, 7444], [-428, 7465], [-390, 7447], [-369, 7466], [-381, 7506], [-284, 7550], [-294, 7589], [-328, 7577], [-359, 7594], [-399, 7580], [-425, 7605], [-421, 7666], [-376, 7690], [-430, 7765], [-304, 7844], [-269, 7885], [-129, 7958], [-98, 7950], [-61, 7893], [-30, 7749], [-3, 7682], [-10, 7645], [-65, 7600], [-133, 7568], [-147, 7515], [-198, 7435], [-163, 7396], [-151, 7346], [-119, 7315], [-5, 7304], [19, 7246], [99, 7193], [136, 7124], [165, 7129], [190, 7175], [278, 7161], [313, 7097], [406, 7106], [474, 7075], [533, 6940], [354, 6887], [244, 6891], [110, 6863], [-29, 6882], [-59, 6879], [-131, 6837], [-217, 6824]]] } }, { "type": "Feature", "id": "TR.KS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.4, "hc-key": "tr-ks", "hc-a2": "KS", "labelrank": "7", "hasc": "TR.KS", "alt-name": "Kastamonu", "woe-id": "2347292", "subregion": null, "fips": "TU37", "postal-code": "KS", "name": "Kastamonu", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "33.6356", "woe-name": "Kastamonu", "latitude": "41.5114", "woe-label": "Kastamonu, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[2948, 9581], [3016, 9597], [3060, 9622], [3145, 9651], [3230, 9696], [3346, 9690], [3385, 9679], [3525, 9666], [3595, 9673], [3709, 9658], [3713, 9617], [3671, 9518], [3706, 9505], [3847, 9492], [3883, 9483], [3913, 9443], [3895, 9395], [3863, 9367], [3848, 9314], [3858, 9287], [3855, 9193], [3827, 9186], [3794, 9119], [3756, 9080], [3714, 8995], [3754, 8945], [3742, 8909], [3617, 8865], [3572, 8870], [3504, 8910], [3483, 8945], [3520, 9006], [3487, 9032], [3399, 8984], [3357, 8976], [3279, 8934], [3184, 8998], [3114, 9006], [3094, 9029], [3077, 9055], [3018, 9072], [3012, 9174], [3065, 9236], [3119, 9247], [3088, 9346], [3049, 9375], [2976, 9356], [2958, 9377], [2953, 9428], [2987, 9453], [2953, 9538], [2948, 9581]]] } }, { "type": "Feature", "id": "TR.MG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.5, "hc-middle-y": 0.37, "hc-key": "tr-mg", "hc-a2": "MG", "labelrank": "7", "hasc": "TR.MG", "alt-name": "Muğla", "woe-id": "2347301", "subregion": null, "fips": "TU48", "postal-code": "MG", "name": "Muğla", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "28.6482", "woe-name": "Muğla", "latitude": "37.0501", "woe-label": "Muğla, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[879, 5618], [786, 5692], [806, 5706], [788, 5756], [801, 5808], [755, 5804], [761, 5861], [805, 5866], [794, 5889], [705, 5955], [659, 5915], [646, 5876], [566, 5928], [520, 5926], [513, 6010], [432, 6016], [425, 6063], [383, 6044], [410, 6024], [392, 5997], [323, 6045], [300, 6018], [328, 5966], [252, 5919], [220, 5871], [149, 5843], [132, 5875], [175, 5873], [209, 5901], [142, 5939], [227, 5954], [189, 5988], [113, 5975], [8, 5996], [-23, 5973], [-33, 5924], [-100, 5947], [-158, 5934], [-211, 5954], [-152, 6001], [-64, 6003], [-55, 6029], [23, 6010], [47, 6027], [159, 6015], [195, 6020], [169, 6057], [198, 6065], [184, 6106], [275, 6110], [293, 6154], [362, 6172], [348, 6187], [234, 6180], [106, 6182], [43, 6162], [9, 6172], [-84, 6154], [-153, 6198], [-217, 6192], [-231, 6153], [-257, 6158], [-272, 6230], [-216, 6271], [-178, 6273], [-129, 6243], [-81, 6268], [-94, 6314], [-47, 6316], [-40, 6370], [-129, 6359], [-110, 6412], [-164, 6412], [-137, 6459], [-156, 6476], [-107, 6565], [-69, 6574], [18, 6540], [57, 6510], [136, 6508], [159, 6494], [269, 6492], [347, 6568], [388, 6557], [464, 6500], [538, 6486], [545, 6417], [607, 6398], [646, 6305], [689, 6297], [712, 6261], [787, 6205], [799, 6114], [901, 6062], [941, 6105], [947, 6152], [975, 6173], [976, 6094], [998, 6085], [1027, 6118], [1097, 6125], [1143, 6056], [1075, 5915], [1070, 5831], [1013, 5788], [1010, 5749], [942, 5738], [906, 5640], [879, 5618]]] } }, { "type": "Feature", "id": "TR.KU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.49, "hc-middle-y": 0.59, "hc-key": "tr-ku", "hc-a2": "KU", "labelrank": "7", "hasc": "TR.KU", "alt-name": "Kütahya", "woe-id": "2347297", "subregion": null, "fips": "TU43", "postal-code": "KU", "name": "Kütahya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.5498", "woe-name": "Kütahya", "latitude": "39.3471", "woe-label": "Kütahya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[819, 7377], [824, 7422], [796, 7491], [803, 7535], [761, 7617], [662, 7652], [624, 7694], [631, 7752], [714, 7786], [764, 7862], [774, 7913], [810, 7997], [831, 7980], [934, 7965], [965, 7983], [984, 8063], [1011, 8081], [1060, 8208], [1089, 8226], [1146, 8201], [1215, 8209], [1205, 8118], [1231, 8067], [1332, 7996], [1356, 7989], [1462, 8008], [1542, 7912], [1561, 7813], [1615, 7737], [1624, 7691], [1583, 7632], [1516, 7604], [1462, 7465], [1421, 7408], [1301, 7342], [1304, 7416], [1279, 7447], [1193, 7474], [1127, 7462], [1101, 7389], [996, 7371], [918, 7378], [851, 7402], [819, 7377]]] } }, { "type": "Feature", "id": "TR.NV", "properties": { "hc-group": "admin1", "hc-middle-x": 0.55, "hc-middle-y": 0.67, "hc-key": "tr-nv", "hc-a2": "NV", "labelrank": "7", "hasc": "TR.NV", "alt-name": "Nevşehir", "woe-id": "2347303", "subregion": null, "fips": "TU50", "postal-code": "NV", "name": "Nevşehir", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "34.6408", "woe-name": "Nevşehir", "latitude": "38.7415", "woe-label": "Nevşehir, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[4194, 7565], [4155, 7425], [4223, 7324], [4226, 7224], [4141, 7087], [4082, 7064], [4013, 7103], [3900, 7090], [3825, 7149], [3835, 7253], [3799, 7252], [3745, 7276], [3736, 7312], [3764, 7382], [3745, 7446], [3751, 7475], [3813, 7423], [3836, 7429], [3826, 7477], [3838, 7516], [3970, 7581], [3993, 7611], [3963, 7668], [3969, 7714], [3947, 7814], [4026, 7820], [4096, 7747], [4116, 7697], [4161, 7670], [4194, 7565]]] } }, { "type": "Feature", "id": "TR.SV", "properties": { "hc-group": "admin1", "hc-middle-x": 0.59, "hc-middle-y": 0.44, "hc-key": "tr-sv", "hc-a2": "SV", "labelrank": "7", "hasc": "TR.SV", "alt-name": "Sivas", "woe-id": "2347309", "subregion": null, "fips": "TU58", "postal-code": "SV", "name": "Sivas", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "37.2907", "woe-name": "Sivas", "latitude": "39.429", "woe-label": "Sivas, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5604, 8641], [5638, 8584], [5701, 8556], [5751, 8608], [5808, 8617], [5809, 8667], [5890, 8702], [5968, 8463], [6071, 8407], [6127, 8424], [6243, 8385], [6234, 8320], [6183, 8321], [6129, 8293], [6075, 8314], [6051, 8298], [6040, 8214], [6118, 8230], [6126, 8197], [6084, 8182], [6047, 8119], [6041, 7991], [6095, 7946], [6053, 7892], [6076, 7765], [6061, 7720], [5980, 7670], [5823, 7643], [5744, 7592], [5697, 7580], [5649, 7601], [5613, 7565], [5644, 7469], [5598, 7396], [5562, 7374], [5508, 7311], [5475, 7294], [5349, 7277], [5246, 7299], [5172, 7278], [5223, 7479], [5265, 7602], [5242, 7666], [5196, 7688], [5096, 7692], [5046, 7673], [4989, 7702], [4896, 7712], [4854, 7695], [4798, 7701], [4689, 7774], [4632, 7788], [4677, 7833], [4741, 7936], [4827, 8017], [4842, 8076], [4785, 8165], [4768, 8217], [4896, 8248], [4987, 8256], [5085, 8309], [5117, 8423], [5157, 8443], [5221, 8438], [5312, 8470], [5455, 8488], [5549, 8534], [5604, 8641]]] } }, { "type": "Feature", "id": "TR.TC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.58, "hc-key": "tr-tc", "hc-a2": "TC", "labelrank": "7", "hasc": "TR.TC", "alt-name": "Tunceli", "woe-id": "2347313", "subregion": null, "fips": "TU62", "postal-code": "TC", "name": "Tunceli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.6357", "woe-name": "Tunceli", "latitude": "39.1519", "woe-label": "Tunceli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6281, 7652], [6262, 7738], [6286, 7791], [6328, 7814], [6319, 7872], [6400, 7923], [6423, 7957], [6506, 7989], [6580, 8007], [6667, 8000], [6795, 8023], [6876, 8080], [6952, 8057], [7059, 8103], [7092, 8092], [7267, 8095], [7220, 8052], [7179, 8054], [7133, 7991], [7082, 7978], [7074, 7951], [7026, 7946], [6993, 7920], [6986, 7846], [7002, 7793], [6991, 7745], [6934, 7732], [6917, 7712], [6930, 7659], [6912, 7593], [6880, 7553], [6829, 7528], [6735, 7515], [6706, 7482], [6560, 7540], [6430, 7560], [6327, 7539], [6301, 7561], [6305, 7621], [6281, 7652]]] } }, { "type": "Feature", "id": "TR.ML", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.51, "hc-key": "tr-ml", "hc-a2": "ML", "labelrank": "7", "hasc": "TR.ML", "alt-name": "Malatya", "woe-id": "2347298", "subregion": null, "fips": "TU44", "postal-code": "ML", "name": "Malatya", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "38.1872", "woe-name": "Malatya", "latitude": "38.5144", "woe-label": "Malatya, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6061, 7720], [6107, 7700], [6160, 7701], [6211, 7680], [6250, 7639], [6210, 7635], [6198, 7584], [6217, 7545], [6231, 7464], [6223, 7439], [6161, 7441], [6136, 7393], [6104, 7378], [6077, 7320], [6094, 7278], [6157, 7238], [6206, 7233], [6277, 7206], [6345, 7224], [6391, 7172], [6453, 7148], [6522, 7165], [6544, 7124], [6529, 7057], [6506, 7025], [6429, 6988], [6357, 6972], [6277, 6972], [6223, 6989], [6250, 7035], [6213, 7063], [6140, 7048], [6068, 6942], [6025, 6916], [6013, 6849], [5980, 6815], [5893, 6782], [5844, 6791], [5662, 6738], [5684, 6782], [5708, 6889], [5738, 6938], [5769, 7074], [5739, 7121], [5654, 7149], [5580, 7188], [5495, 7202], [5453, 7195], [5445, 7237], [5475, 7294], [5508, 7311], [5562, 7374], [5598, 7396], [5644, 7469], [5613, 7565], [5649, 7601], [5697, 7580], [5744, 7592], [5823, 7643], [5980, 7670], [6061, 7720]]] } }, { "type": "Feature", "id": "TR.AG", "properties": { "hc-group": "admin1", "hc-middle-x": 0.45, "hc-middle-y": 0.37, "hc-key": "tr-ag", "hc-a2": "AG", "labelrank": "7", "hasc": "TR.AG", "alt-name": "Ağrı", "woe-id": "2347261", "subregion": null, "fips": "TU04", "postal-code": "AG", "name": "Ağrı", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "43.3647", "woe-name": "Ağrı", "latitude": "39.5925", "woe-label": "Ağrı, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[8319, 8153], [8336, 8219], [8324, 8316], [8335, 8342], [8252, 8365], [8201, 8416], [8262, 8424], [8357, 8493], [8467, 8484], [8632, 8551], [8744, 8562], [8775, 8553], [8806, 8436], [8836, 8424], [8904, 8473], [8982, 8450], [9016, 8405], [9105, 8384], [9115, 8364], [9222, 8376], [9309, 8368], [9406, 8404], [9439, 8395], [9423, 8343], [9428, 8241], [9411, 8216], [9357, 8194], [9316, 8209], [9239, 8192], [9215, 8170], [9236, 8146], [9160, 8115], [9045, 8125], [8997, 8089], [8927, 8091], [8864, 8134], [8780, 8144], [8740, 8094], [8676, 8068], [8674, 8046], [8720, 8029], [8727, 7957], [8652, 7907], [8551, 7872], [8467, 7812], [8456, 7981], [8367, 8072], [8319, 8153]]] } }, { "type": "Feature", "id": "TR.BT", "properties": { "hc-group": "admin1", "hc-middle-x": 0.52, "hc-middle-y": 0.51, "hc-key": "tr-bt", "hc-a2": "BT", "labelrank": "7", "hasc": "TR.BT", "alt-name": "Bitlis", "woe-id": "2347270", "subregion": null, "fips": "TU13", "postal-code": "BT", "name": "Bitlis", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "42.3462", "woe-name": "Bitlis", "latitude": "38.5155", "woe-label": "Bitlis, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[7880, 7427], [7969, 7478], [8066, 7480], [8104, 7506], [8155, 7569], [8128, 7626], [8136, 7653], [8186, 7657], [8200, 7703], [8292, 7752], [8385, 7752], [8467, 7812], [8551, 7872], [8652, 7907], [8680, 7817], [8751, 7785], [8778, 7751], [8767, 7697], [8702, 7624], [8642, 7496], [8551, 7427], [8541, 7384], [8571, 7325], [8589, 7236], [8620, 7229], [8598, 7160], [8607, 7082], [8571, 7051], [8430, 7124], [8319, 7151], [8243, 7206], [8203, 7220], [8108, 7178], [8046, 7178], [7985, 7194], [7975, 7279], [7930, 7413], [7880, 7427]]] } }, { "type": "Feature", "id": "TR.GU", "properties": { "hc-group": "admin1", "hc-middle-x": 0.53, "hc-middle-y": 0.57, "hc-key": "tr-gu", "hc-a2": "GU", "labelrank": "7", "hasc": "TR.GU", "alt-name": "Gümüşhane", "woe-id": "2347319", "subregion": null, "fips": "TU69", "postal-code": "GU", "name": "Gümüşhane", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "39.3544", "woe-name": "Gümüşhane", "latitude": "40.2812", "woe-label": "Gümüşhane, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[6859, 8400], [6818, 8339], [6728, 8302], [6597, 8292], [6529, 8314], [6509, 8335], [6403, 8384], [6337, 8403], [6318, 8471], [6313, 8545], [6394, 8610], [6395, 8637], [6350, 8665], [6284, 8677], [6268, 8694], [6267, 8758], [6297, 8805], [6294, 8846], [6354, 8903], [6419, 8915], [6460, 8932], [6535, 8843], [6667, 8801], [6719, 8812], [6739, 8856], [6779, 8834], [6809, 8792], [6835, 8687], [6839, 8581], [6820, 8491], [6859, 8400]]] } }, { "type": "Feature", "id": "TR.OS", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.64, "hc-key": "tr-os", "hc-a2": "OS", "labelrank": "7", "hasc": "TR.OS", "alt-name": "Osmaniye", "woe-id": "20070184", "subregion": null, "fips": "TU91", "postal-code": "OS", "name": "Osmaniye", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "36.3011", "woe-name": "Osmaniye", "latitude": "37.1737", "woe-label": "Osmaniye, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[5196, 6321], [5150, 6256], [5121, 6192], [5049, 6092], [4991, 6087], [4949, 6120], [4822, 6119], [4845, 6201], [4814, 6264], [4765, 6269], [4746, 6321], [4744, 6376], [4810, 6546], [4835, 6591], [4932, 6598], [4934, 6542], [4902, 6480], [4929, 6396], [4953, 6368], [5094, 6403], [5169, 6357], [5196, 6321]]] } }, { "type": "Feature", "id": "TR.BC", "properties": { "hc-group": "admin1", "hc-middle-x": 0.38, "hc-middle-y": 0.54, "hc-key": "tr-bc", "hc-a2": "BC", "labelrank": "7", "hasc": "TR.BC", "alt-name": "Bilecik", "woe-id": "2347268", "subregion": null, "fips": "TU11", "postal-code": "BC", "name": "Bilecik", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "30.2002", "woe-name": "Bilecik", "latitude": "40.0387", "woe-label": "Bilecik, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1376, 8655], [1409, 8593], [1450, 8551], [1498, 8534], [1574, 8552], [1640, 8547], [1678, 8506], [1748, 8498], [1755, 8466], [1807, 8379], [1751, 8378], [1705, 8343], [1686, 8270], [1637, 8217], [1579, 8207], [1528, 8158], [1520, 8084], [1462, 8008], [1356, 7989], [1332, 7996], [1231, 8067], [1205, 8118], [1215, 8209], [1274, 8211], [1267, 8247], [1226, 8302], [1244, 8409], [1310, 8483], [1294, 8542], [1323, 8620], [1376, 8655]]] } }, { "type": "Feature", "id": "TR.DN", "properties": { "hc-group": "admin1", "hc-middle-x": 0.42, "hc-middle-y": 0.53, "hc-key": "tr-dn", "hc-a2": "DN", "labelrank": "7", "hasc": "TR.DN", "alt-name": "Denizli", "woe-id": "2347277", "subregion": null, "fips": "TU20", "postal-code": "DN", "name": "Denizli", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.2821", "woe-name": "Denizli", "latitude": "37.7539", "woe-label": "Denizli, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1219, 7160], [1297, 7139], [1368, 7016], [1359, 6950], [1156, 6805], [1153, 6732], [1230, 6706], [1254, 6661], [1163, 6603], [1148, 6571], [1074, 6535], [1076, 6467], [1096, 6414], [992, 6249], [975, 6173], [947, 6152], [941, 6105], [901, 6062], [799, 6114], [787, 6205], [712, 6261], [689, 6297], [646, 6305], [607, 6398], [545, 6417], [538, 6486], [514, 6542], [527, 6568], [612, 6570], [672, 6634], [712, 6646], [710, 6682], [674, 6691], [643, 6747], [664, 6789], [653, 6879], [610, 6935], [660, 6944], [694, 7028], [747, 7038], [811, 7009], [872, 7026], [910, 7001], [983, 7002], [1021, 7046], [1104, 7040], [1144, 7061], [1148, 7147], [1219, 7160]]] } }, { "type": "Feature", "id": "TR.US", "properties": { "hc-group": "admin1", "hc-middle-x": 0.44, "hc-middle-y": 0.55, "hc-key": "tr-us", "hc-a2": "US", "labelrank": "7", "hasc": "TR.US", "alt-name": "Uşak", "woe-id": "2347315", "subregion": null, "fips": "TU64", "postal-code": "US", "name": "Uşak", "country": "Turkey", "type-en": "Province", "region": null, "longitude": "29.3636", "woe-name": "Uşak", "latitude": "38.4942", "woe-label": "Uşak, TR, Turkey", "type": "Il" }, "geometry": { "type": "Polygon", "coordinates": [[[1301, 7342], [1288, 7285], [1253, 7253], [1219, 7160], [1148, 7147], [1144, 7061], [1104, 7040], [1021, 7046], [983, 7002], [910, 7001], [872, 7026], [811, 7009], [747, 7038], [696, 7075], [730, 7116], [744, 7172], [740, 7240], [712, 7288], [819, 7377], [851, 7402], [918, 7378], [996, 7371], [1101, 7389], [1127, 7462], [1193, 7474], [1279, 7447], [1304, 7416], [1301, 7342]]] } }] +/* global Highcharts */ +/* eslint no-undef: "error" */ + +Highcharts.maps['countries/tr/tr-all'] = { + title: 'Turkey', + version: '1.1.2', + type: 'FeatureCollection', + copyright: 'Copyright (c) 2015 Highsoft AS, Based on data from Natural Earth', + copyrightShort: 'Natural Earth', + copyrightUrl: 'http://www.naturalearthdata.com', + crs: { type: 'name', properties: { name: 'urn:ogc:def:crs:EPSG:32636' } }, + 'hc-transform': { default: { crs: '+proj=utm +zone=36 +datum=WGS84 +units=m +no_defs', scale: 0.000418317446042, jsonres: 15.5, jsonmarginX: -999, jsonmarginY: 9851.0, xoffset: -125397.473102, yoffset: 4675858.14012 } }, + features: [{ type: 'Feature', id: 'TR.OR', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.68, 'hc-middle-y': 0.42, 'hc-key': 'tr-or', 'hc-a2': 'OR', labelrank: '7', hasc: 'TR.OR', 'alt-name': 'Ordu', 'woe-id': '2347304', subregion: null, fips: 'TU52', 'postal-code': 'OR', name: 'Ordu', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '37.4229', 'woe-name': 'Ordu', latitude: '40.8376', 'woe-label': 'Ordu, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5081, 8906], [5147, 8927], [5238, 8997], [5315, 9122], [5376, 9125], [5449, 9101], [5511, 9056], [5553, 9054], [5608, 9132], [5660, 9122], [5663, 9077], [5727, 9024], [5773, 9033], [5847, 9014], [5824, 8931], [5840, 8865], [5834, 8758], [5890, 8702], [5809, 8667], [5808, 8617], [5751, 8608], [5701, 8556], [5638, 8584], [5604, 8641], [5572, 8718], [5498, 8719], [5368, 8800], [5255, 8796], [5079, 8866], [5081, 8906]]] } }, { type: 'Feature', id: 'TR.SS', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.44, 'hc-middle-y': 0.58, 'hc-key': 'tr-ss', 'hc-a2': 'SS', labelrank: '7', hasc: 'TR.SS', 'alt-name': 'Samsun', 'woe-id': '2347307', subregion: null, fips: 'TU55', 'postal-code': 'SS', name: 'Samsun', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '36.0198', 'woe-name': 'Samsun', latitude: '41.2761', 'woe-label': 'Samsun, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5315, 9122], [5238, 8997], [5147, 8927], [5081, 8906], [5051, 8936], [4937, 8906], [4877, 8946], [4824, 9000], [4803, 8985], [4779, 8922], [4713, 8881], [4670, 8900], [4534, 8898], [4497, 8934], [4398, 9002], [4364, 8995], [4194, 9038], [4132, 9037], [4110, 9118], [4081, 9167], [4106, 9203], [4196, 9253], [4217, 9222], [4303, 9164], [4416, 9186], [4395, 9281], [4386, 9394], [4406, 9443], [4471, 9439], [4617, 9498], [4650, 9519], [4699, 9496], [4741, 9444], [4753, 9325], [4812, 9253], [4867, 9226], [4872, 9205], [4931, 9172], [4995, 9216], [5019, 9273], [5137, 9261], [5220, 9224], [5247, 9188], [5253, 9144], [5315, 9122]]] } }, { type: 'Feature', id: 'TR.GA', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.68, 'hc-middle-y': 0.57, 'hc-key': 'tr-ga', 'hc-a2': 'GA', labelrank: '7', hasc: 'TR.GA', 'alt-name': 'Gaziantep', 'woe-id': '2347284', subregion: null, fips: 'TU83', 'postal-code': 'GA', name: 'Gaziantep', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '37.2462', 'woe-name': 'Gaziantep', latitude: '36.9988', 'woe-label': 'Gaziantep, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5963, 6042], [5846, 5982], [5751, 5957], [5677, 5911], [5626, 5953], [5527, 6000], [5510, 5988], [5435, 6063], [5350, 6097], [5330, 6137], [5292, 6132], [5288, 6083], [5203, 6032], [5172, 6000], [5135, 6037], [5049, 6092], [5121, 6192], [5150, 6256], [5196, 6321], [5264, 6356], [5290, 6394], [5318, 6377], [5337, 6314], [5382, 6301], [5432, 6359], [5610, 6422], [5682, 6430], [5706, 6447], [5707, 6522], [5832, 6541], [5900, 6519], [5948, 6482], [5910, 6473], [5862, 6409], [5840, 6348], [5863, 6212], [5895, 6188], [5927, 6195], [5923, 6152], [5948, 6129], [5963, 6042]]] } }, { type: 'Feature', id: 'TR.4409', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.42, 'hc-middle-y': 0.43, 'hc-key': 'tr-4409', 'hc-a2': 'NU', labelrank: '20', hasc: '-99', 'alt-name': null, 'woe-id': '-99', subregion: null, fips: null, 'postal-code': null, name: null, country: 'Turkey', 'type-en': null, region: null, longitude: '29.658', 'woe-name': null, latitude: '36.1327', 'woe-label': null, type: null }, geometry: { type: 'Polygon', coordinates: [[[3515, 5497], [3510, 5491], [3512, 5495], [3515, 5497]]] } }, { type: 'Feature', id: 'TR.KC', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.66, 'hc-middle-y': 0.37, 'hc-key': 'tr-kc', 'hc-a2': 'KC', labelrank: '7', hasc: 'TR.KC', 'alt-name': 'Kocaeli', 'woe-id': '2347296', subregion: null, fips: 'TU41', 'postal-code': 'KC', name: 'Kocaeli', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '29.9396', 'woe-name': 'Kocaeli', latitude: '40.9008', 'woe-label': 'Kocaeli, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1349, 9102], [1498, 9091], [1573, 9137], [1658, 9105], [1636, 9051], [1644, 9014], [1684, 9006], [1669, 8936], [1590, 8949], [1597, 8920], [1561, 8883], [1535, 8776], [1512, 8732], [1407, 8689], [1369, 8687], [1295, 8717], [1154, 8677], [1091, 8688], [1097, 8715], [1099, 8779], [1140, 8805], [1171, 8777], [1278, 8797], [1371, 8787], [1375, 8817], [1285, 8817], [1232, 8841], [1102, 8841], [1062, 8832], [1009, 8916], [1121, 9008], [1149, 9004], [1190, 8945], [1225, 8932], [1240, 8966], [1339, 9014], [1355, 9050], [1349, 9102]]] } }, { type: 'Feature', id: 'TR.BK', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.63, 'hc-middle-y': 0.67, 'hc-key': 'tr-bk', 'hc-a2': 'BK', labelrank: '7', hasc: 'TR.BK', 'alt-name': 'Balıkesir', 'woe-id': '2347267', subregion: null, fips: 'TU10', 'postal-code': 'BK', name: 'Balıkesir', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '27.8355', 'woe-name': 'Balıkesir', latitude: '39.7193', 'woe-label': 'Balıkesir, TR, Turkey', type: 'Il' }, geometry: { type: 'MultiPolygon', coordinates: [[[[113, 8810], [165, 8792], [156, 8772], [95, 8748], [58, 8769], [54, 8796], [113, 8810]]], [[[-430, 7765], [-459, 7834], [-520, 7847], [-398, 7929], [-404, 7954], [-332, 7987], [-321, 8050], [-345, 8059], [-473, 8044], [-471, 8102], [-449, 8157], [-376, 8150], [-264, 8204], [-205, 8207], [-124, 8181], [-30, 8227], [0, 8311], [-17, 8335], [17, 8424], [-25, 8464], [59, 8523], [65, 8561], [185, 8558], [240, 8602], [189, 8610], [135, 8692], [178, 8715], [292, 8683], [326, 8661], [251, 8611], [272, 8585], [366, 8602], [419, 8601], [355, 8531], [380, 8478], [357, 8427], [386, 8351], [424, 8310], [440, 8236], [581, 8121], [625, 8113], [653, 8131], [670, 8057], [707, 8023], [781, 8021], [810, 7997], [774, 7913], [764, 7862], [714, 7786], [631, 7752], [624, 7694], [575, 7704], [522, 7680], [433, 7674], [395, 7643], [321, 7642], [295, 7708], [240, 7776], [176, 7775], [202, 7829], [190, 7852], [70, 7864], [-17, 7913], [-61, 7893], [-98, 7950], [-129, 7958], [-269, 7885], [-304, 7844], [-430, 7765]]]] } }, { type: 'Feature', id: 'TR.CK', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.58, 'hc-middle-y': 0.59, 'hc-key': 'tr-ck', 'hc-a2': 'CK', labelrank: '7', hasc: 'TR.CK', 'alt-name': 'Çanakkale', 'woe-id': '2347274', subregion: null, fips: 'TU17', 'postal-code': 'CK', name: 'Çanakkale', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '26.8233', 'woe-name': 'Çanakkale', latitude: '40.0553', 'woe-label': 'Çanakkale, TR, Turkey', type: 'Il' }, geometry: { type: 'MultiPolygon', coordinates: [[[[-806, 8282], [-783, 8272], [-790, 8237], [-839, 8267], [-806, 8282]]], [[[-347, 8883], [-347, 8885], [-268, 8872], [-272, 8815], [-258, 8760], [-418, 8695], [-459, 8628], [-561, 8550], [-618, 8524], [-603, 8490], [-689, 8432], [-730, 8428], [-665, 8524], [-658, 8569], [-686, 8618], [-622, 8644], [-557, 8693], [-463, 8738], [-422, 8735], [-385, 8771], [-330, 8795], [-354, 8838], [-347, 8883]]], [[[-941, 8555], [-854, 8573], [-823, 8556], [-831, 8510], [-805, 8500], [-944, 8475], [-999, 8501], [-941, 8555]]], [[[-473, 8044], [-592, 8031], [-647, 8006], [-683, 8014], [-765, 7999], [-808, 8013], [-781, 8100], [-759, 8119], [-746, 8175], [-756, 8203], [-739, 8347], [-710, 8393], [-646, 8396], [-596, 8456], [-583, 8517], [-531, 8527], [-392, 8655], [-239, 8637], [-191, 8677], [-76, 8673], [-62, 8609], [-1, 8570], [65, 8561], [59, 8523], [-25, 8464], [17, 8424], [-17, 8335], [0, 8311], [-30, 8227], [-124, 8181], [-205, 8207], [-264, 8204], [-376, 8150], [-449, 8157], [-471, 8102], [-473, 8044]]]] } }, { type: 'Feature', id: 'TR.TT', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.5, 'hc-key': 'tr-tt', 'hc-a2': 'TT', labelrank: '7', hasc: 'TR.TT', 'alt-name': 'Tokat', 'woe-id': '2347311', subregion: null, fips: 'TU60', 'postal-code': 'TT', name: 'Tokat', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '36.5724', 'woe-name': 'Tokat', latitude: '40.4442', 'woe-label': 'Tokat, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[4937, 8906], [5051, 8936], [5081, 8906], [5079, 8866], [5255, 8796], [5368, 8800], [5498, 8719], [5572, 8718], [5604, 8641], [5549, 8534], [5455, 8488], [5312, 8470], [5221, 8438], [5157, 8443], [5117, 8423], [5085, 8309], [4987, 8256], [4896, 8248], [4768, 8217], [4739, 8262], [4741, 8331], [4717, 8353], [4620, 8325], [4525, 8327], [4441, 8398], [4477, 8463], [4536, 8488], [4618, 8631], [4708, 8626], [4780, 8592], [4874, 8654], [4876, 8690], [4920, 8702], [4969, 8817], [4927, 8865], [4937, 8906]]] } }, { type: 'Feature', id: 'TR.GI', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.44, 'hc-middle-y': 0.57, 'hc-key': 'tr-gi', 'hc-a2': 'GI', labelrank: '7', hasc: 'TR.GI', 'alt-name': 'Giresun', 'woe-id': '2347285', subregion: null, fips: 'TU28', 'postal-code': 'GI', name: 'Giresun', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '38.6055', 'woe-name': 'Giresun', latitude: '40.5379', 'woe-label': 'Giresun, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6337, 8403], [6316, 8392], [6243, 8385], [6127, 8424], [6071, 8407], [5968, 8463], [5890, 8702], [5834, 8758], [5840, 8865], [5824, 8931], [5847, 9014], [5942, 9011], [5967, 8992], [6081, 9005], [6138, 9044], [6177, 9032], [6211, 9068], [6287, 9103], [6349, 9108], [6406, 9133], [6397, 9044], [6407, 8942], [6419, 8915], [6354, 8903], [6294, 8846], [6297, 8805], [6267, 8758], [6268, 8694], [6284, 8677], [6350, 8665], [6395, 8637], [6394, 8610], [6313, 8545], [6318, 8471], [6337, 8403]]] } }, { type: 'Feature', id: 'TR.EN', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.18, 'hc-middle-y': 0.45, 'hc-key': 'tr-en', 'hc-a2': 'EN', labelrank: '7', hasc: 'TR.EN', 'alt-name': 'Erzincan', 'woe-id': '2347281', subregion: null, fips: 'TU24', 'postal-code': 'EN', name: 'Erzincan', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '39.5121', 'woe-name': 'Erzincan', latitude: '39.6874', 'woe-label': 'Erzincan, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6243, 8385], [6316, 8392], [6337, 8403], [6403, 8384], [6509, 8335], [6529, 8314], [6597, 8292], [6728, 8302], [6818, 8339], [6859, 8400], [6947, 8418], [6993, 8453], [7085, 8441], [7070, 8360], [7101, 8347], [7196, 8354], [7237, 8308], [7262, 8242], [7328, 8201], [7302, 8131], [7304, 8086], [7267, 8095], [7092, 8092], [7059, 8103], [6952, 8057], [6876, 8080], [6795, 8023], [6667, 8000], [6580, 8007], [6506, 7989], [6423, 7957], [6400, 7923], [6319, 7872], [6328, 7814], [6286, 7791], [6262, 7738], [6281, 7652], [6264, 7648], [6250, 7639], [6211, 7680], [6160, 7701], [6107, 7700], [6061, 7720], [6076, 7765], [6053, 7892], [6095, 7946], [6041, 7991], [6047, 8119], [6084, 8182], [6126, 8197], [6118, 8230], [6040, 8214], [6051, 8298], [6075, 8314], [6129, 8293], [6183, 8321], [6234, 8320], [6243, 8385]]] } }, { type: 'Feature', id: 'TR.BG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.59, 'hc-middle-y': 0.44, 'hc-key': 'tr-bg', 'hc-a2': 'BG', labelrank: '7', hasc: 'TR.BG', 'alt-name': 'Bingöl', 'woe-id': '2347269', subregion: null, fips: 'TU12', 'postal-code': 'BG', name: 'Bingöl', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '40.646', 'woe-name': 'Bingöl', latitude: '39.0743', 'woe-label': 'Bingöl, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7267, 8095], [7304, 8086], [7354, 8083], [7433, 8133], [7509, 8078], [7587, 8061], [7642, 7995], [7628, 7949], [7651, 7877], [7695, 7818], [7698, 7758], [7663, 7706], [7650, 7648], [7714, 7546], [7520, 7428], [7374, 7429], [7289, 7398], [7288, 7356], [7254, 7319], [7188, 7311], [7174, 7376], [7141, 7418], [7161, 7497], [7198, 7490], [7213, 7565], [7164, 7627], [7146, 7682], [7153, 7733], [7198, 7823], [7178, 7856], [7115, 7824], [6991, 7745], [7002, 7793], [6986, 7846], [6993, 7920], [7026, 7946], [7074, 7951], [7082, 7978], [7133, 7991], [7179, 8054], [7220, 8052], [7267, 8095]]] } }, { type: 'Feature', id: 'TR.HT', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.52, 'hc-middle-y': 0.51, 'hc-key': 'tr-ht', 'hc-a2': 'HT', labelrank: '7', hasc: 'TR.HT', 'alt-name': 'Hatay', 'woe-id': '2347286', subregion: null, fips: 'TU31', 'postal-code': 'HT', name: 'Hatay', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '36.2284', 'woe-name': 'Hatay', latitude: '36.4876', 'woe-label': 'Hatay, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5049, 6092], [5135, 6037], [5172, 6000], [5142, 5941], [5126, 5849], [5126, 5786], [5110, 5758], [5144, 5637], [5173, 5632], [5192, 5570], [5095, 5565], [5068, 5544], [5022, 5563], [5015, 5519], [5019, 5394], [4972, 5393], [4968, 5367], [4926, 5361], [4895, 5265], [4808, 5303], [4799, 5339], [4759, 5331], [4795, 5405], [4777, 5454], [4686, 5591], [4679, 5618], [4721, 5658], [4752, 5713], [4819, 5772], [4906, 5830], [4920, 5869], [4901, 5972], [4823, 6054], [4780, 6050], [4751, 6019], [4741, 6063], [4797, 6126], [4822, 6119], [4949, 6120], [4991, 6087], [5049, 6092]]] } }, { type: 'Feature', id: 'TR.AA', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.44, 'hc-middle-y': 0.67, 'hc-key': 'tr-aa', 'hc-a2': 'AA', labelrank: '7', hasc: 'TR.AA', 'alt-name': 'Adana', 'woe-id': '2347258', subregion: null, fips: 'TU81', 'postal-code': 'AA', name: 'Adana', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '35.7555', 'woe-name': 'Adana', latitude: '37.4006', 'woe-label': 'Adana, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[4822, 6119], [4797, 6126], [4741, 6063], [4751, 6019], [4679, 5946], [4609, 5936], [4546, 5889], [4599, 5899], [4582, 5822], [4532, 5808], [4513, 5825], [4419, 5773], [4239, 5877], [4175, 5899], [4252, 5950], [4241, 6070], [4257, 6116], [4234, 6138], [4171, 6155], [4154, 6270], [4126, 6291], [4084, 6373], [4085, 6423], [4124, 6492], [4101, 6583], [4119, 6610], [4177, 6600], [4233, 6610], [4306, 6687], [4405, 6682], [4528, 6644], [4558, 6659], [4542, 6791], [4749, 6942], [4815, 7057], [4837, 7118], [4904, 7165], [4950, 7179], [4980, 7167], [5043, 7073], [4996, 6997], [4952, 6774], [4976, 6645], [4932, 6598], [4835, 6591], [4810, 6546], [4744, 6376], [4746, 6321], [4765, 6269], [4814, 6264], [4845, 6201], [4822, 6119]]] } }, { type: 'Feature', id: 'TR.CM', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.48, 'hc-middle-y': 0.47, 'hc-key': 'tr-cm', 'hc-a2': 'CM', labelrank: '7', hasc: 'TR.CM', 'alt-name': 'Çorum', 'woe-id': '2347276', subregion: null, fips: 'TU19', 'postal-code': 'CM', name: 'Çorum', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '34.711', 'woe-name': 'Çorum', latitude: '40.6149', 'woe-label': 'Çorum, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3639, 8179], [3638, 8216], [3663, 8264], [3655, 8325], [3617, 8351], [3588, 8436], [3652, 8469], [3689, 8551], [3655, 8628], [3628, 8763], [3645, 8820], [3617, 8865], [3742, 8909], [3754, 8945], [3714, 8995], [3756, 9080], [3794, 9119], [3827, 9186], [3855, 9193], [3870, 9175], [3963, 9162], [3993, 9136], [4055, 9118], [4081, 9167], [4110, 9118], [4132, 9037], [4194, 9038], [4174, 8963], [4167, 8844], [4211, 8752], [4320, 8728], [4390, 8698], [4405, 8666], [4395, 8587], [4349, 8513], [4340, 8428], [4265, 8414], [4260, 8331], [4203, 8284], [4130, 8293], [4048, 8251], [3948, 8236], [3863, 8249], [3757, 8206], [3670, 8195], [3639, 8179]]] } }, { type: 'Feature', id: 'TR.KK', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.49, 'hc-middle-y': 0.49, 'hc-key': 'tr-kk', 'hc-a2': 'KK', labelrank: '7', hasc: 'TR.KK', 'alt-name': 'Kırıkkale', 'woe-id': '2347329', subregion: null, fips: 'TU79', 'postal-code': 'KK', name: 'Kırıkkale', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '33.778', 'woe-name': 'Kırıkkale', latitude: '39.9011', 'woe-label': 'Kırıkkale, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3588, 8436], [3617, 8351], [3655, 8325], [3663, 8264], [3638, 8216], [3639, 8179], [3647, 8150], [3652, 8120], [3563, 8034], [3539, 7960], [3501, 7899], [3411, 7825], [3349, 7716], [3304, 7802], [3282, 7904], [3222, 7986], [3208, 8046], [3238, 8168], [3262, 8230], [3367, 8255], [3370, 8388], [3384, 8488], [3536, 8441], [3588, 8436]]] } }, { type: 'Feature', id: 'TR.NG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.39, 'hc-key': 'tr-ng', 'hc-a2': 'NG', labelrank: '7', hasc: 'TR.NG', 'alt-name': 'Niğde', 'woe-id': '2347323', subregion: null, fips: 'TU73', 'postal-code': 'NG', name: 'Niğde', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '34.7093', 'woe-name': 'Niğde', latitude: '37.8966', 'woe-label': 'Niğde, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3716, 6809], [3900, 7090], [4013, 7103], [4082, 7064], [4141, 7087], [4183, 6979], [4217, 6944], [4309, 6945], [4325, 6898], [4324, 6836], [4343, 6786], [4317, 6768], [4306, 6687], [4233, 6610], [4177, 6600], [4119, 6610], [4101, 6583], [4124, 6492], [4085, 6423], [4084, 6373], [4044, 6382], [3968, 6346], [3924, 6344], [3852, 6440], [3854, 6493], [3889, 6565], [3882, 6606], [3798, 6719], [3744, 6743], [3716, 6809]]] } }, { type: 'Feature', id: 'TR.AK', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.48, 'hc-middle-y': 0.62, 'hc-key': 'tr-ak', 'hc-a2': 'AK', labelrank: '6', hasc: 'TR.AK', 'alt-name': 'Aksaray', 'woe-id': '2347325', subregion: null, fips: 'TU75', 'postal-code': 'AK', name: 'Aksaray', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '33.8772', 'woe-name': 'Aksaray', latitude: '38.3566', 'woe-label': 'Aksaray, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3900, 7090], [3716, 6809], [3674, 6815], [3542, 6775], [3409, 6770], [3316, 6756], [3254, 6825], [3241, 6882], [3206, 6951], [3210, 7009], [3264, 7186], [3319, 7267], [3463, 7321], [3514, 7320], [3582, 7376], [3583, 7418], [3560, 7478], [3578, 7526], [3644, 7502], [3674, 7454], [3751, 7475], [3745, 7446], [3764, 7382], [3736, 7312], [3745, 7276], [3799, 7252], [3835, 7253], [3825, 7149], [3900, 7090]]] } }, { type: 'Feature', id: 'TR.KH', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.48, 'hc-key': 'tr-kh', 'hc-a2': 'KH', labelrank: '7', hasc: 'TR.KH', 'alt-name': 'Kırşehir', 'woe-id': '2347295', subregion: null, fips: 'TU40', 'postal-code': 'KH', name: 'Kırşehir', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '34.1308', 'woe-name': 'Kırşehir', latitude: '39.3548', 'woe-label': 'Kırşehir, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3751, 7475], [3674, 7454], [3644, 7502], [3578, 7526], [3582, 7550], [3470, 7603], [3361, 7675], [3349, 7716], [3411, 7825], [3501, 7899], [3539, 7960], [3563, 8034], [3652, 8120], [3704, 8099], [3762, 8041], [3832, 8033], [3855, 7987], [3933, 7894], [3986, 7874], [4026, 7820], [3947, 7814], [3969, 7714], [3963, 7668], [3993, 7611], [3970, 7581], [3838, 7516], [3826, 7477], [3836, 7429], [3813, 7423], [3751, 7475]]] } }, { type: 'Feature', id: 'TR.YZ', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.56, 'hc-middle-y': 0.5, 'hc-key': 'tr-yz', 'hc-a2': 'YZ', labelrank: '7', hasc: 'TR.YZ', 'alt-name': 'Yozgat', 'woe-id': '2347317', subregion: null, fips: 'TU66', 'postal-code': 'YZ', name: 'Yozgat', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '35.1328', 'woe-name': 'Yozgat', latitude: '39.5476', 'woe-label': 'Yozgat, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3652, 8120], [3647, 8150], [3639, 8179], [3670, 8195], [3757, 8206], [3863, 8249], [3948, 8236], [4048, 8251], [4130, 8293], [4203, 8284], [4260, 8331], [4265, 8414], [4340, 8428], [4360, 8404], [4441, 8398], [4525, 8327], [4620, 8325], [4717, 8353], [4741, 8331], [4739, 8262], [4768, 8217], [4785, 8165], [4842, 8076], [4827, 8017], [4741, 7936], [4677, 7833], [4632, 7788], [4587, 7721], [4409, 7599], [4322, 7548], [4194, 7565], [4161, 7670], [4116, 7697], [4096, 7747], [4026, 7820], [3986, 7874], [3933, 7894], [3855, 7987], [3832, 8033], [3762, 8041], [3704, 8099], [3652, 8120]]] } }, { type: 'Feature', id: 'TR.AM', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.53, 'hc-middle-y': 0.47, 'hc-key': 'tr-am', 'hc-a2': 'AM', labelrank: '7', hasc: 'TR.AM', 'alt-name': 'Amasya', 'woe-id': '2347262', subregion: null, fips: 'TU05', 'postal-code': 'AM', name: 'Amasya', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '35.7627', 'woe-name': 'Amasya', latitude: '40.6379', 'woe-label': 'Amasya, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[4441, 8398], [4360, 8404], [4340, 8428], [4349, 8513], [4395, 8587], [4405, 8666], [4390, 8698], [4320, 8728], [4211, 8752], [4167, 8844], [4174, 8963], [4194, 9038], [4364, 8995], [4398, 9002], [4497, 8934], [4534, 8898], [4670, 8900], [4713, 8881], [4779, 8922], [4803, 8985], [4824, 9000], [4877, 8946], [4937, 8906], [4927, 8865], [4969, 8817], [4920, 8702], [4876, 8690], [4874, 8654], [4780, 8592], [4708, 8626], [4618, 8631], [4536, 8488], [4477, 8463], [4441, 8398]]] } }, { type: 'Feature', id: 'TR.MS', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.36, 'hc-middle-y': 0.62, 'hc-key': 'tr-ms', 'hc-a2': 'MS', labelrank: '7', hasc: 'TR.MS', 'alt-name': 'Muş', 'woe-id': '2347302', subregion: null, fips: 'TU49', 'postal-code': 'MS', name: 'Muş', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '41.9034', 'woe-name': 'Muş', latitude: '38.9124', 'woe-label': 'Muş, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7880, 7427], [7849, 7419], [7818, 7407], [7792, 7429], [7787, 7487], [7714, 7546], [7650, 7648], [7663, 7706], [7698, 7758], [7695, 7818], [7651, 7877], [7628, 7949], [7642, 7995], [7730, 8018], [7776, 8012], [7858, 7952], [7910, 7899], [8008, 7886], [8050, 7921], [8118, 7940], [8179, 7998], [8194, 8093], [8266, 8139], [8319, 8153], [8367, 8072], [8456, 7981], [8467, 7812], [8385, 7752], [8292, 7752], [8200, 7703], [8186, 7657], [8136, 7653], [8128, 7626], [8155, 7569], [8104, 7506], [8066, 7480], [7969, 7478], [7880, 7427]]] } }, { type: 'Feature', id: 'TR.BM', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.44, 'hc-middle-y': 0.35, 'hc-key': 'tr-bm', 'hc-a2': 'BM', labelrank: '7', hasc: 'TR.BM', 'alt-name': 'Batman', 'woe-id': '2347326', subregion: null, fips: 'TU76', 'postal-code': 'BM', name: 'Batman', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '41.4262', 'woe-name': 'Batman', latitude: '37.7343', 'woe-label': 'Batman, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7818, 7407], [7849, 7419], [7880, 7427], [7930, 7413], [7975, 7279], [7985, 7194], [7929, 7087], [7865, 7063], [7849, 7028], [7858, 6981], [7925, 6930], [8032, 6898], [8100, 6836], [7941, 6697], [7855, 6671], [7790, 6704], [7742, 6784], [7697, 6831], [7671, 6834], [7643, 6902], [7693, 6970], [7729, 7094], [7715, 7212], [7728, 7321], [7739, 7340], [7824, 7383], [7818, 7407]]] } }, { type: 'Feature', id: 'TR.KA', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.6, 'hc-middle-y': 0.53, 'hc-key': 'tr-ka', 'hc-a2': 'KA', labelrank: '7', hasc: 'TR.KA', 'alt-name': 'Kars', 'woe-id': '2347291', subregion: null, fips: 'TU84', 'postal-code': 'KA', name: 'Kars', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '43.074', 'woe-name': 'Kars', latitude: '40.3671', 'woe-label': 'Kars, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8955, 8678], [8790, 8607], [8775, 8553], [8744, 8562], [8632, 8551], [8467, 8484], [8357, 8493], [8305, 8566], [8241, 8607], [8157, 8624], [8106, 8677], [8119, 8718], [8197, 8753], [8306, 8837], [8284, 8908], [8292, 8959], [8419, 8992], [8428, 9189], [8490, 9231], [8744, 9382], [8763, 9322], [8847, 9289], [8921, 9165], [8940, 9091], [8911, 8979], [8868, 8927], [8906, 8899], [8895, 8843], [8947, 8791], [8981, 8724], [8946, 8698], [8955, 8678]]] } }, { type: 'Feature', id: 'TR.IG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.43, 'hc-middle-y': 0.51, 'hc-key': 'tr-ig', 'hc-a2': 'IG', labelrank: '7', hasc: 'TR.IG', 'alt-name': 'Iğdır', 'woe-id': '20070183', subregion: null, fips: 'TU88', 'postal-code': 'IG', name: 'Iğdır', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '44.0317', 'woe-name': 'Iğdır', latitude: '39.811', 'woe-label': 'Iğdır, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8775, 8553], [8790, 8607], [8955, 8678], [9100, 8632], [9168, 8629], [9288, 8670], [9328, 8669], [9411, 8634], [9478, 8570], [9549, 8523], [9599, 8475], [9633, 8419], [9487, 8492], [9434, 8436], [9439, 8395], [9406, 8404], [9309, 8368], [9222, 8376], [9115, 8364], [9105, 8384], [9016, 8405], [8982, 8450], [8904, 8473], [8836, 8424], [8806, 8436], [8775, 8553]]] } }, { type: 'Feature', id: 'TR.DU', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.4, 'hc-middle-y': 0.48, 'hc-key': 'tr-du', 'hc-a2': 'DU', labelrank: '7', hasc: 'TR.DU', 'alt-name': 'Düzce', 'woe-id': '29390030', subregion: null, fips: 'TU93', 'postal-code': 'DU', name: 'Düzce', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '31.3231', 'woe-name': null, latitude: '40.8631', 'woe-label': 'Düzce, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1943, 9034], [2093, 9038], [2156, 9079], [2177, 9059], [2269, 9011], [2402, 8997], [2391, 8934], [2364, 8903], [2243, 8881], [2216, 8861], [2192, 8772], [2149, 8740], [2096, 8736], [2035, 8763], [1946, 8762], [1901, 8779], [1905, 8879], [1893, 8920], [1945, 8991], [1943, 9034]]] } }, { type: 'Feature', id: 'TR.ZO', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.58, 'hc-middle-y': 0.57, 'hc-key': 'tr-zo', 'hc-a2': 'ZO', labelrank: '7', hasc: 'TR.ZO', 'alt-name': 'Zonguldak', 'woe-id': '20070185', subregion: null, fips: 'TU85', 'postal-code': 'ZO', name: 'Zonguldak', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '31.8206', 'woe-name': 'Zonguldak', latitude: '41.2481', 'woe-label': 'Zonguldak, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2669, 9202], [2620, 9138], [2593, 9042], [2592, 8978], [2475, 8983], [2402, 8997], [2269, 9011], [2177, 9059], [2156, 9079], [2187, 9116], [2190, 9198], [2329, 9254], [2445, 9329], [2537, 9379], [2588, 9396], [2651, 9350], [2681, 9263], [2669, 9202]]] } }, { type: 'Feature', id: 'TR.KB', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.48, 'hc-middle-y': 0.54, 'hc-key': 'tr-kb', 'hc-a2': 'KB', labelrank: '7', hasc: 'TR.KB', 'alt-name': 'Karabük', 'woe-id': '20070186', subregion: null, fips: 'TU89', 'postal-code': 'KB', name: 'Karabük', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '32.5067', 'woe-name': 'Karabük', latitude: '41.2347', 'woe-label': 'Karabük, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2592, 8978], [2593, 9042], [2620, 9138], [2669, 9202], [2728, 9198], [2785, 9213], [2851, 9267], [2876, 9320], [2906, 9328], [2958, 9377], [2976, 9356], [3049, 9375], [3088, 9346], [3119, 9247], [3065, 9236], [3012, 9174], [3018, 9072], [3077, 9055], [3094, 9029], [3070, 8970], [3018, 8941], [2965, 8947], [2919, 8888], [2854, 8837], [2797, 8811], [2779, 8868], [2662, 8927], [2666, 8966], [2592, 8978]]] } }, { type: 'Feature', id: 'TR.YL', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.49, 'hc-middle-y': 0.27, 'hc-key': 'tr-yl', 'hc-a2': 'YL', labelrank: '7', hasc: 'TR.YL', 'alt-name': 'Yalova', 'woe-id': '20070182', subregion: null, fips: 'TU92', 'postal-code': 'YL', name: 'Yalova', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '29.2036', 'woe-name': 'Yalova', latitude: '40.6154', 'woe-label': 'Yalova, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1097, 8715], [1091, 8688], [1057, 8696], [1020, 8661], [985, 8655], [903, 8696], [848, 8705], [846, 8627], [811, 8633], [735, 8674], [746, 8696], [855, 8757], [1018, 8765], [1080, 8792], [1099, 8779], [1097, 8715]]] } }, { type: 'Feature', id: 'TR.SK', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.59, 'hc-middle-y': 0.53, 'hc-key': 'tr-sk', 'hc-a2': 'SK', labelrank: '7', hasc: 'TR.SK', 'alt-name': 'Sakarya', 'woe-id': '2347306', subregion: null, fips: 'TU54', 'postal-code': 'SK', name: 'Sakarya', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '30.4439', 'woe-name': 'Sakarya', latitude: '40.6596', 'woe-label': 'Sakarya, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1943, 9034], [1945, 8991], [1893, 8920], [1905, 8879], [1901, 8779], [1866, 8753], [1863, 8686], [1789, 8672], [1734, 8583], [1759, 8524], [1748, 8498], [1678, 8506], [1640, 8547], [1574, 8552], [1498, 8534], [1450, 8551], [1409, 8593], [1376, 8655], [1371, 8671], [1369, 8687], [1407, 8689], [1512, 8732], [1535, 8776], [1561, 8883], [1597, 8920], [1590, 8949], [1669, 8936], [1684, 9006], [1644, 9014], [1636, 9051], [1658, 9105], [1804, 9066], [1830, 9044], [1943, 9034]]] } }, { type: 'Feature', id: 'TR.CI', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.6, 'hc-middle-y': 0.55, 'hc-key': 'tr-ci', 'hc-a2': 'CI', labelrank: '7', hasc: 'TR.CI', 'alt-name': 'Çankırı', 'woe-id': '2347275', subregion: null, fips: 'TU82', 'postal-code': 'CI', name: 'Çankırı', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '33.2142', 'woe-name': 'Çankırı', latitude: '40.7087', 'woe-label': 'Çankırı, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2786, 8751], [2795, 8790], [2797, 8811], [2854, 8837], [2919, 8888], [2965, 8947], [3018, 8941], [3070, 8970], [3094, 9029], [3114, 9006], [3184, 8998], [3279, 8934], [3357, 8976], [3399, 8984], [3487, 9032], [3520, 9006], [3483, 8945], [3504, 8910], [3572, 8870], [3617, 8865], [3645, 8820], [3628, 8763], [3655, 8628], [3689, 8551], [3652, 8469], [3588, 8436], [3536, 8441], [3384, 8488], [3275, 8528], [3246, 8486], [3206, 8481], [3169, 8509], [3151, 8552], [3080, 8603], [3033, 8670], [2873, 8745], [2786, 8751]]] } }, { type: 'Feature', id: 'TR.BL', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.62, 'hc-middle-y': 0.47, 'hc-key': 'tr-bl', 'hc-a2': 'BL', labelrank: '7', hasc: 'TR.BL', 'alt-name': 'Bolu', 'woe-id': '2347271', subregion: null, fips: 'TU14', 'postal-code': 'BL', name: 'Bolu', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '31.6806', 'woe-name': 'Bolu', latitude: '40.5854', 'woe-label': 'Bolu, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2797, 8811], [2795, 8790], [2786, 8751], [2751, 8728], [2748, 8689], [2769, 8631], [2724, 8566], [2679, 8543], [2603, 8555], [2557, 8532], [2407, 8490], [2317, 8490], [2267, 8471], [2204, 8489], [2186, 8509], [2093, 8501], [1994, 8550], [1957, 8429], [1911, 8404], [1876, 8359], [1840, 8366], [1807, 8379], [1755, 8466], [1748, 8498], [1759, 8524], [1734, 8583], [1789, 8672], [1863, 8686], [1866, 8753], [1901, 8779], [1946, 8762], [2035, 8763], [2096, 8736], [2149, 8740], [2192, 8772], [2216, 8861], [2243, 8881], [2364, 8903], [2391, 8934], [2402, 8997], [2475, 8983], [2592, 8978], [2666, 8966], [2662, 8927], [2779, 8868], [2797, 8811]]] } }, { type: 'Feature', id: 'TR.ED', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.74, 'hc-key': 'tr-ed', 'hc-a2': 'ED', labelrank: '7', hasc: 'TR.ED', 'alt-name': 'Edirne', 'woe-id': '2347279', subregion: null, fips: 'TU22', 'postal-code': 'ED', name: 'Edirne', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '26.4697', 'woe-name': 'Edirne', latitude: '40.9579', 'woe-label': 'Edirne, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[-347, 8885], [-347, 8883], [-354, 8838], [-449, 8830], [-508, 8805], [-540, 8822], [-619, 8815], [-743, 8832], [-760, 8923], [-702, 8942], [-655, 8996], [-645, 9033], [-568, 9075], [-582, 9190], [-567, 9284], [-533, 9285], [-449, 9346], [-422, 9328], [-395, 9361], [-405, 9532], [-416, 9517], [-474, 9563], [-466, 9582], [-541, 9615], [-536, 9670], [-512, 9688], [-431, 9687], [-414, 9760], [-370, 9787], [-310, 9776], [-255, 9783], [-235, 9629], [-234, 9559], [-251, 9490], [-317, 9354], [-303, 9320], [-301, 9206], [-342, 9131], [-375, 9039], [-375, 8980], [-347, 8885]]] } }, { type: 'Feature', id: 'TR.ES', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.49, 'hc-middle-y': 0.55, 'hc-key': 'tr-es', 'hc-a2': 'ES', labelrank: '7', hasc: 'TR.ES', 'alt-name': 'Eskişehir', 'woe-id': '2347283', subregion: null, fips: 'TU26', 'postal-code': 'ES', name: 'Eskişehir', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '31.0894', 'woe-name': 'Eskişehir', latitude: '39.6297', 'woe-label': 'Eskişehir, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1807, 8379], [1840, 8366], [1876, 8359], [1899, 8328], [1906, 8270], [1942, 8267], [1995, 8288], [2055, 8270], [2087, 8293], [2165, 8291], [2188, 8267], [2352, 8264], [2381, 8168], [2416, 8157], [2435, 8111], [2412, 8085], [2442, 7973], [2470, 7948], [2494, 7883], [2488, 7777], [2521, 7724], [2496, 7693], [2418, 7650], [2403, 7597], [2326, 7595], [2261, 7602], [2188, 7596], [2147, 7629], [2120, 7692], [2082, 7735], [1914, 7647], [1863, 7689], [1806, 7640], [1722, 7603], [1679, 7631], [1659, 7670], [1624, 7691], [1615, 7737], [1561, 7813], [1542, 7912], [1462, 8008], [1520, 8084], [1528, 8158], [1579, 8207], [1637, 8217], [1686, 8270], [1705, 8343], [1751, 8378], [1807, 8379]]] } }, { type: 'Feature', id: 'TR.KO', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.35, 'hc-middle-y': 0.42, 'hc-key': 'tr-ko', 'hc-a2': 'KO', labelrank: '7', hasc: 'TR.KO', 'alt-name': 'Konya', 'woe-id': '2347321', subregion: null, fips: 'TU71', 'postal-code': 'KO', name: 'Konya', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '32.469', 'woe-name': 'Konya', latitude: '38.04', 'woe-label': 'Konya, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2326, 7595], [2403, 7597], [2418, 7650], [2467, 7624], [2566, 7550], [2653, 7570], [2763, 7522], [2832, 7565], [2874, 7547], [2978, 7636], [3061, 7598], [3091, 7683], [3115, 7683], [3236, 7609], [3266, 7539], [3262, 7378], [3319, 7267], [3264, 7186], [3210, 7009], [3206, 6951], [3241, 6882], [3254, 6825], [3316, 6756], [3409, 6770], [3542, 6775], [3674, 6815], [3716, 6809], [3744, 6743], [3798, 6719], [3882, 6606], [3889, 6565], [3854, 6493], [3852, 6440], [3924, 6344], [3918, 6321], [3835, 6268], [3753, 6233], [3718, 6199], [3664, 6292], [3517, 6448], [3501, 6540], [3421, 6551], [3351, 6474], [3292, 6452], [3118, 6436], [3064, 6414], [2966, 6305], [2842, 6140], [2831, 6067], [2900, 6048], [2907, 6007], [2806, 5899], [2741, 5850], [2745, 5899], [2724, 5964], [2655, 5981], [2666, 6055], [2625, 6076], [2553, 6141], [2499, 6208], [2375, 6303], [2228, 6335], [2146, 6347], [2099, 6396], [2121, 6479], [2100, 6552], [2144, 6582], [2171, 6653], [2159, 6766], [2172, 6813], [2268, 6861], [2272, 6884], [2161, 6982], [2083, 7064], [2068, 7117], [2169, 7181], [2263, 7289], [2272, 7372], [2334, 7476], [2312, 7529], [2326, 7595]]] } }, { type: 'Feature', id: 'TR.BU', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.43, 'hc-middle-y': 0.5, 'hc-key': 'tr-bu', 'hc-a2': 'BU', labelrank: '7', hasc: 'TR.BU', 'alt-name': 'Bursa', 'woe-id': '2347273', subregion: null, fips: 'TU16', 'postal-code': 'BU', name: 'Bursa', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '29.0593', 'woe-name': 'Bursa', latitude: '40.1314', 'woe-label': 'Bursa, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1369, 8687], [1371, 8671], [1376, 8655], [1323, 8620], [1294, 8542], [1310, 8483], [1244, 8409], [1226, 8302], [1267, 8247], [1274, 8211], [1215, 8209], [1146, 8201], [1089, 8226], [1060, 8208], [1011, 8081], [984, 8063], [965, 7983], [934, 7965], [831, 7980], [810, 7997], [781, 8021], [707, 8023], [670, 8057], [653, 8131], [625, 8113], [581, 8121], [440, 8236], [424, 8310], [386, 8351], [357, 8427], [380, 8478], [355, 8531], [419, 8601], [572, 8594], [654, 8564], [729, 8588], [830, 8555], [890, 8561], [905, 8597], [939, 8601], [894, 8637], [846, 8627], [848, 8705], [903, 8696], [985, 8655], [1020, 8661], [1057, 8696], [1091, 8688], [1154, 8677], [1295, 8717], [1369, 8687]]] } }, { type: 'Feature', id: 'TR.KL', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.43, 'hc-middle-y': 0.49, 'hc-key': 'tr-kl', 'hc-a2': 'KL', labelrank: '7', hasc: 'TR.KL', 'alt-name': 'Kırklareli', 'woe-id': '2347294', subregion: null, fips: 'TU39', 'postal-code': 'KL', name: 'Kırklareli', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '27.4916', 'woe-name': 'Kırklareli', latitude: '41.6201', 'woe-label': 'Kırklareli, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[461, 9423], [435, 9390], [434, 9390], [244, 9379], [130, 9355], [80, 9280], [12, 9251], [-68, 9329], [-220, 9332], [-303, 9320], [-317, 9354], [-251, 9490], [-234, 9559], [-235, 9629], [-255, 9783], [-200, 9795], [-151, 9847], [-70, 9830], [-15, 9851], [58, 9761], [123, 9704], [159, 9740], [221, 9746], [255, 9726], [267, 9762], [379, 9740], [390, 9680], [354, 9680], [348, 9633], [405, 9525], [401, 9502], [461, 9423]]] } }, { type: 'Feature', id: 'TR.IB', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.27, 'hc-middle-y': 0.55, 'hc-key': 'tr-ib', 'hc-a2': 'IB', labelrank: '7', hasc: 'TR.IB', 'alt-name': 'İstanbul', 'woe-id': '2347289', subregion: null, fips: 'TU34', 'postal-code': 'IB', name: 'İstanbul', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '28.8463', 'woe-name': 'İstanbul', latitude: '41.1285', 'woe-label': 'İstanbul, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[434, 9390], [435, 9390], [461, 9423], [556, 9351], [671, 9294], [834, 9206], [942, 9179], [926, 9131], [952, 9161], [1008, 9180], [1217, 9127], [1349, 9102], [1355, 9050], [1339, 9014], [1240, 8966], [1225, 8932], [1190, 8945], [1149, 9004], [1121, 9008], [1009, 8916], [951, 8947], [889, 8998], [880, 9034], [911, 9065], [915, 9100], [865, 9014], [842, 9018], [776, 8989], [735, 9004], [653, 9007], [644, 9071], [624, 9017], [582, 9050], [461, 9094], [428, 9093], [419, 9189], [448, 9290], [434, 9390]]] } }, { type: 'Feature', id: 'TR.KR', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.43, 'hc-middle-y': 0.39, 'hc-key': 'tr-kr', 'hc-a2': 'KR', labelrank: '7', hasc: 'TR.KR', 'alt-name': 'Karaman', 'woe-id': '2347328', subregion: null, fips: 'TU78', 'postal-code': 'KR', name: 'Karaman', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '33.3026', 'woe-name': 'Karaman', latitude: '37.2262', 'woe-label': 'Karaman, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2854, 5680], [2784, 5749], [2741, 5850], [2806, 5899], [2907, 6007], [2900, 6048], [2831, 6067], [2842, 6140], [2966, 6305], [3064, 6414], [3118, 6436], [3292, 6452], [3351, 6474], [3421, 6551], [3501, 6540], [3517, 6448], [3664, 6292], [3718, 6199], [3613, 6170], [3558, 6128], [3481, 6106], [3413, 6108], [3368, 6090], [3271, 6076], [3172, 6003], [3153, 5950], [3118, 5973], [3044, 5943], [3081, 5849], [3149, 5810], [3190, 5768], [3175, 5749], [3115, 5763], [3086, 5700], [3032, 5699], [2964, 5676], [2854, 5680]]] } }, { type: 'Feature', id: 'TR.AL', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.26, 'hc-middle-y': 0.48, 'hc-key': 'tr-al', 'hc-a2': 'AL', labelrank: '7', hasc: 'TR.AL', 'alt-name': 'Antalya', 'woe-id': '2347264', subregion: null, fips: 'TU07', 'postal-code': 'AL', name: 'Antalya', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '30.9564', 'woe-name': 'Antalya', latitude: '37.1141', 'woe-label': 'Antalya, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2741, 5850], [2784, 5749], [2854, 5680], [2851, 5559], [2806, 5433], [2772, 5440], [2686, 5494], [2638, 5547], [2635, 5573], [2586, 5624], [2535, 5717], [2491, 5758], [2370, 5793], [2324, 5831], [2134, 5921], [2096, 5955], [1865, 5994], [1770, 5991], [1719, 6022], [1669, 5985], [1650, 5945], [1640, 5828], [1645, 5762], [1616, 5735], [1588, 5673], [1613, 5629], [1540, 5533], [1541, 5563], [1458, 5609], [1402, 5604], [1393, 5572], [1301, 5549], [1256, 5549], [1153, 5485], [1175, 5510], [1135, 5511], [1114, 5487], [1075, 5548], [1013, 5553], [966, 5596], [933, 5574], [879, 5618], [906, 5640], [942, 5738], [1010, 5749], [1013, 5788], [1070, 5831], [1075, 5915], [1143, 6056], [1176, 6066], [1231, 6141], [1242, 6195], [1275, 6237], [1380, 6287], [1502, 6326], [1536, 6320], [1584, 6270], [1782, 6268], [1829, 6336], [1871, 6370], [1921, 6349], [2012, 6372], [2068, 6401], [2099, 6396], [2146, 6347], [2228, 6335], [2375, 6303], [2499, 6208], [2553, 6141], [2625, 6076], [2666, 6055], [2655, 5981], [2724, 5964], [2745, 5899], [2741, 5850]]] } }, { type: 'Feature', id: 'TR.AF', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.56, 'hc-middle-y': 0.33, 'hc-key': 'tr-af', 'hc-a2': 'AF', labelrank: '7', hasc: 'TR.AF', 'alt-name': 'Afyon', 'woe-id': '2347260', subregion: null, fips: 'TU03', 'postal-code': 'AF', name: 'Afyonkarahisar', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '30.6938', 'woe-name': 'Afyon', latitude: '38.6784', 'woe-label': 'Afyonkarahisar, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1352, 6670], [1301, 6675], [1254, 6661], [1230, 6706], [1153, 6732], [1156, 6805], [1359, 6950], [1368, 7016], [1297, 7139], [1219, 7160], [1253, 7253], [1288, 7285], [1301, 7342], [1421, 7408], [1462, 7465], [1516, 7604], [1583, 7632], [1624, 7691], [1659, 7670], [1679, 7631], [1722, 7603], [1806, 7640], [1863, 7689], [1914, 7647], [2082, 7735], [2120, 7692], [2147, 7629], [2188, 7596], [2261, 7602], [2326, 7595], [2312, 7529], [2334, 7476], [2272, 7372], [2263, 7289], [2169, 7181], [2068, 7117], [1982, 7185], [1870, 7090], [1798, 7018], [1730, 7000], [1654, 6961], [1595, 6904], [1467, 6800], [1458, 6725], [1438, 6691], [1352, 6670]]] } }, { type: 'Feature', id: 'TR.BD', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.4, 'hc-key': 'tr-bd', 'hc-a2': 'BD', labelrank: '7', hasc: 'TR.BD', 'alt-name': 'Burdur', 'woe-id': '2347272', subregion: null, fips: 'TU15', 'postal-code': 'BD', name: 'Burdur', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '30.1627', 'woe-name': 'Burdur', latitude: '37.5001', 'woe-label': 'Burdur, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1254, 6661], [1301, 6675], [1352, 6670], [1369, 6624], [1412, 6625], [1537, 6714], [1635, 6613], [1711, 6604], [1744, 6582], [1777, 6489], [1825, 6410], [1851, 6408], [1871, 6370], [1829, 6336], [1782, 6268], [1584, 6270], [1536, 6320], [1502, 6326], [1380, 6287], [1275, 6237], [1242, 6195], [1231, 6141], [1176, 6066], [1143, 6056], [1097, 6125], [1027, 6118], [998, 6085], [976, 6094], [975, 6173], [992, 6249], [1096, 6414], [1076, 6467], [1074, 6535], [1148, 6571], [1163, 6603], [1254, 6661]]] } }, { type: 'Feature', id: 'TR.IP', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.57, 'hc-middle-y': 0.54, 'hc-key': 'tr-ip', 'hc-a2': 'IP', labelrank: '7', hasc: 'TR.IP', 'alt-name': 'Isparta', 'woe-id': '2347288', subregion: null, fips: 'TU33', 'postal-code': 'IP', name: 'Isparta', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '30.818', 'woe-name': 'Isparta', latitude: '37.8923', 'woe-label': 'Isparta, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2099, 6396], [2068, 6401], [2012, 6372], [1921, 6349], [1871, 6370], [1851, 6408], [1825, 6410], [1777, 6489], [1744, 6582], [1711, 6604], [1635, 6613], [1537, 6714], [1412, 6625], [1369, 6624], [1352, 6670], [1438, 6691], [1458, 6725], [1467, 6800], [1595, 6904], [1654, 6961], [1730, 7000], [1798, 7018], [1870, 7090], [1982, 7185], [2068, 7117], [2083, 7064], [2161, 6982], [2272, 6884], [2268, 6861], [2172, 6813], [2159, 6766], [2171, 6653], [2144, 6582], [2100, 6552], [2121, 6479], [2099, 6396]]] } }, { type: 'Feature', id: 'TR.AY', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.62, 'hc-middle-y': 0.49, 'hc-key': 'tr-ay', 'hc-a2': 'AY', labelrank: '7', hasc: 'TR.AY', 'alt-name': 'Aydın', 'woe-id': '2347266', subregion: null, fips: 'TU09', 'postal-code': 'AY', name: 'Aydın', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '27.9573', 'woe-name': 'Aydın', latitude: '37.7292', 'woe-label': 'Aydın, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[533, 6940], [610, 6935], [653, 6879], [664, 6789], [643, 6747], [674, 6691], [710, 6682], [712, 6646], [672, 6634], [612, 6570], [527, 6568], [514, 6542], [538, 6486], [464, 6500], [388, 6557], [347, 6568], [269, 6492], [159, 6494], [136, 6508], [57, 6510], [18, 6540], [-69, 6574], [-107, 6565], [-157, 6476], [-201, 6435], [-250, 6427], [-269, 6443], [-258, 6529], [-284, 6523], [-260, 6616], [-370, 6672], [-303, 6685], [-230, 6720], [-217, 6824], [-131, 6837], [-59, 6879], [-29, 6882], [110, 6863], [244, 6891], [354, 6887], [533, 6940]]] } }, { type: 'Feature', id: 'TR.MN', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.55, 'hc-middle-y': 0.53, 'hc-key': 'tr-mn', 'hc-a2': 'MN', labelrank: '7', hasc: 'TR.MN', 'alt-name': 'Manisa', 'woe-id': '2347299', subregion: null, fips: 'TU45', 'postal-code': 'MN', name: 'Manisa', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '28.1324', 'woe-name': 'Manisa', latitude: '38.7115', 'woe-label': 'Manisa, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[610, 6935], [533, 6940], [474, 7075], [406, 7106], [313, 7097], [278, 7161], [190, 7175], [165, 7129], [136, 7124], [99, 7193], [19, 7246], [-5, 7304], [-119, 7315], [-151, 7346], [-163, 7396], [-198, 7435], [-147, 7515], [-133, 7568], [-65, 7600], [-10, 7645], [-3, 7682], [-30, 7749], [-61, 7893], [-17, 7913], [70, 7864], [190, 7852], [202, 7829], [176, 7775], [240, 7776], [295, 7708], [321, 7642], [395, 7643], [433, 7674], [522, 7680], [575, 7704], [624, 7694], [662, 7652], [761, 7617], [803, 7535], [796, 7491], [824, 7422], [819, 7377], [712, 7288], [740, 7240], [744, 7172], [730, 7116], [696, 7075], [747, 7038], [694, 7028], [660, 6944], [610, 6935]]] } }, { type: 'Feature', id: 'TR.DY', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.62, 'hc-middle-y': 0.47, 'hc-key': 'tr-dy', 'hc-a2': 'DY', labelrank: '7', hasc: 'TR.DY', 'alt-name': 'Diyarbakır', 'woe-id': '2347278', subregion: null, fips: 'TU21', 'postal-code': 'DY', name: 'Diyarbakır', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '40.2706', 'woe-name': 'Diyarbakır', latitude: '38.0261', 'woe-label': 'Diyarbakır, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6579, 6952], [6612, 7034], [6590, 7070], [6529, 7057], [6544, 7124], [6522, 7165], [6599, 7184], [6696, 7175], [6777, 7207], [6864, 7214], [6899, 7235], [6930, 7306], [6998, 7291], [7188, 7311], [7254, 7319], [7288, 7356], [7289, 7398], [7374, 7429], [7520, 7428], [7714, 7546], [7787, 7487], [7792, 7429], [7818, 7407], [7824, 7383], [7739, 7340], [7728, 7321], [7715, 7212], [7729, 7094], [7693, 6970], [7643, 6902], [7671, 6834], [7637, 6814], [7436, 6802], [7374, 6784], [7344, 6728], [7298, 6721], [7128, 6580], [7077, 6504], [7048, 6532], [7001, 6624], [6979, 6709], [6977, 6788], [6914, 6830], [6904, 6811], [6815, 6852], [6738, 6915], [6625, 6930], [6579, 6952]]] } }, { type: 'Feature', id: 'TR.AD', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.55, 'hc-middle-y': 0.48, 'hc-key': 'tr-ad', 'hc-a2': 'AD', labelrank: '7', hasc: 'TR.AD', 'alt-name': 'Adıyaman', 'woe-id': '2347259', subregion: null, fips: 'TU02', 'postal-code': 'AD', name: 'Adıyaman', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '38.339', 'woe-name': 'Adıyaman', latitude: '37.8102', 'woe-label': 'Adıyaman, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6529, 7057], [6590, 7070], [6612, 7034], [6579, 6952], [6508, 6907], [6505, 6872], [6465, 6845], [6464, 6740], [6422, 6723], [6442, 6704], [6373, 6688], [6414, 6658], [6288, 6630], [6218, 6544], [6080, 6511], [6033, 6463], [5979, 6489], [5948, 6482], [5900, 6519], [5832, 6541], [5707, 6522], [5608, 6569], [5585, 6643], [5662, 6738], [5844, 6791], [5893, 6782], [5980, 6815], [6013, 6849], [6025, 6916], [6068, 6942], [6140, 7048], [6213, 7063], [6250, 7035], [6223, 6989], [6277, 6972], [6357, 6972], [6429, 6988], [6506, 7025], [6529, 7057]]] } }, { type: 'Feature', id: 'TR.KM', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.54, 'hc-key': 'tr-km', 'hc-a2': 'KM', labelrank: '7', hasc: 'TR.KM', 'alt-name': 'Kahramanmaraş', 'woe-id': '2347300', subregion: null, fips: 'TU46', 'postal-code': 'KM', name: 'Kahramanmaraş', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '37.0013', 'woe-name': 'Kahramanmaraş', latitude: '37.9278', 'woe-label': 'Kahramanmaraş, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5662, 6738], [5585, 6643], [5608, 6569], [5707, 6522], [5706, 6447], [5682, 6430], [5610, 6422], [5432, 6359], [5382, 6301], [5337, 6314], [5318, 6377], [5290, 6394], [5264, 6356], [5196, 6321], [5169, 6357], [5094, 6403], [4953, 6368], [4929, 6396], [4902, 6480], [4934, 6542], [4932, 6598], [4976, 6645], [4952, 6774], [4996, 6997], [5043, 7073], [5121, 7175], [5154, 7265], [5172, 7278], [5246, 7299], [5349, 7277], [5475, 7294], [5445, 7237], [5453, 7195], [5495, 7202], [5580, 7188], [5654, 7149], [5739, 7121], [5769, 7074], [5738, 6938], [5708, 6889], [5684, 6782], [5662, 6738]]] } }, { type: 'Feature', id: 'TR.KY', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.45, 'hc-middle-y': 0.38, 'hc-key': 'tr-ky', 'hc-a2': 'KY', labelrank: '7', hasc: 'TR.KY', 'alt-name': 'Kayseri', 'woe-id': '2347293', subregion: null, fips: 'TU38', 'postal-code': 'KY', name: 'Kayseri', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '35.9256', 'woe-name': 'Kayseri', latitude: '38.7168', 'woe-label': 'Kayseri, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5172, 7278], [5154, 7265], [5121, 7175], [5043, 7073], [4980, 7167], [4950, 7179], [4904, 7165], [4837, 7118], [4815, 7057], [4749, 6942], [4542, 6791], [4558, 6659], [4528, 6644], [4405, 6682], [4306, 6687], [4317, 6768], [4343, 6786], [4324, 6836], [4325, 6898], [4309, 6945], [4217, 6944], [4183, 6979], [4141, 7087], [4226, 7224], [4223, 7324], [4155, 7425], [4194, 7565], [4322, 7548], [4409, 7599], [4587, 7721], [4632, 7788], [4689, 7774], [4798, 7701], [4854, 7695], [4896, 7712], [4989, 7702], [5046, 7673], [5096, 7692], [5196, 7688], [5242, 7666], [5265, 7602], [5223, 7479], [5172, 7278]]] } }, { type: 'Feature', id: 'TR.EG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.38, 'hc-middle-y': 0.7, 'hc-key': 'tr-eg', 'hc-a2': 'EG', labelrank: '7', hasc: 'TR.EG', 'alt-name': 'Elazığ', 'woe-id': '2347280', subregion: null, fips: 'TU23', 'postal-code': 'EG', name: 'Elazığ', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '39.3702', 'woe-name': 'Elazığ', latitude: '38.5718', 'woe-label': 'Elazığ, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6250, 7639], [6264, 7648], [6281, 7652], [6305, 7621], [6301, 7561], [6327, 7539], [6430, 7560], [6560, 7540], [6706, 7482], [6735, 7515], [6829, 7528], [6880, 7553], [6912, 7593], [6930, 7659], [6917, 7712], [6934, 7732], [6991, 7745], [7115, 7824], [7178, 7856], [7198, 7823], [7153, 7733], [7146, 7682], [7164, 7627], [7213, 7565], [7198, 7490], [7161, 7497], [7141, 7418], [7174, 7376], [7188, 7311], [6998, 7291], [6930, 7306], [6899, 7235], [6864, 7214], [6777, 7207], [6696, 7175], [6599, 7184], [6522, 7165], [6453, 7148], [6391, 7172], [6345, 7224], [6277, 7206], [6206, 7233], [6157, 7238], [6094, 7278], [6077, 7320], [6104, 7378], [6136, 7393], [6161, 7441], [6223, 7439], [6231, 7464], [6217, 7545], [6198, 7584], [6210, 7635], [6250, 7639]]] } }, { type: 'Feature', id: 'TR.IC', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.47, 'hc-middle-y': 0.54, 'hc-key': 'tr-ic', 'hc-a2': 'IC', labelrank: '6', hasc: 'TR.IC', 'alt-name': 'Mersin', 'woe-id': '2347287', subregion: null, fips: 'TU32', 'postal-code': 'IC', name: 'Mersin', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '33.8268', 'woe-name': 'Mersin', latitude: '36.6614', 'woe-label': 'Mersin, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[4175, 5899], [4080, 5961], [4035, 5959], [3956, 5924], [3876, 5848], [3796, 5792], [3740, 5709], [3682, 5666], [3683, 5605], [3638, 5586], [3615, 5521], [3598, 5576], [3563, 5593], [3522, 5533], [3489, 5520], [3456, 5469], [3433, 5504], [3378, 5457], [3323, 5479], [3281, 5464], [3134, 5460], [3107, 5424], [3022, 5439], [2941, 5384], [2864, 5399], [2806, 5433], [2851, 5559], [2854, 5680], [2964, 5676], [3032, 5699], [3086, 5700], [3115, 5763], [3175, 5749], [3190, 5768], [3149, 5810], [3081, 5849], [3044, 5943], [3118, 5973], [3153, 5950], [3172, 6003], [3271, 6076], [3368, 6090], [3413, 6108], [3481, 6106], [3558, 6128], [3613, 6170], [3718, 6199], [3753, 6233], [3835, 6268], [3918, 6321], [3924, 6344], [3968, 6346], [4044, 6382], [4084, 6373], [4126, 6291], [4154, 6270], [4171, 6155], [4234, 6138], [4257, 6116], [4241, 6070], [4252, 5950], [4175, 5899]]] } }, { type: 'Feature', id: 'TR.SP', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.54, 'hc-middle-y': 0.55, 'hc-key': 'tr-sp', 'hc-a2': 'SP', labelrank: '7', hasc: 'TR.SP', 'alt-name': 'Sinop', 'woe-id': '2347308', subregion: null, fips: 'TU57', 'postal-code': 'SP', name: 'Sinop', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '34.8226', 'woe-name': 'Sinop', latitude: '41.5894', 'woe-label': 'Sinop, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3709, 9658], [3772, 9650], [3853, 9671], [3895, 9655], [3967, 9652], [4022, 9665], [4070, 9699], [4101, 9765], [4141, 9761], [4204, 9710], [4181, 9657], [4255, 9526], [4296, 9493], [4352, 9478], [4406, 9443], [4386, 9394], [4395, 9281], [4416, 9186], [4303, 9164], [4217, 9222], [4196, 9253], [4106, 9203], [4081, 9167], [4055, 9118], [3993, 9136], [3963, 9162], [3870, 9175], [3855, 9193], [3858, 9287], [3848, 9314], [3863, 9367], [3895, 9395], [3913, 9443], [3883, 9483], [3847, 9492], [3706, 9505], [3671, 9518], [3713, 9617], [3709, 9658]]] } }, { type: 'Feature', id: 'TR.AV', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.51, 'hc-middle-y': 0.38, 'hc-key': 'tr-av', 'hc-a2': 'AV', labelrank: '6', hasc: 'TR.AV', 'alt-name': 'Artvin', 'woe-id': '2347265', subregion: null, fips: 'TU08', 'postal-code': 'AV', name: 'Artvin', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '41.8331', 'woe-name': 'Artvin', latitude: '41.0175', 'woe-label': 'Artvin, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7509, 9390], [7552, 9432], [7607, 9456], [7628, 9511], [7668, 9560], [7728, 9542], [7769, 9552], [7833, 9510], [7900, 9578], [7941, 9567], [8015, 9586], [8179, 9553], [8198, 9483], [8246, 9386], [8237, 9335], [8194, 9307], [8152, 9250], [8125, 9178], [7987, 9154], [7953, 9126], [7956, 9066], [7925, 9011], [7920, 8949], [7899, 8909], [7805, 8938], [7763, 8922], [7671, 8863], [7630, 8892], [7637, 9005], [7548, 9014], [7503, 9034], [7508, 9064], [7626, 9237], [7548, 9300], [7509, 9390]]] } }, { type: 'Feature', id: 'TR.RI', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.43, 'hc-middle-y': 0.53, 'hc-key': 'tr-ri', 'hc-a2': 'RI', labelrank: '7', hasc: 'TR.RI', 'alt-name': 'Rize', 'woe-id': '2347305', subregion: null, fips: 'TU53', 'postal-code': 'RI', name: 'Rize', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '40.8691', 'woe-name': 'Rize', latitude: '40.9466', 'woe-label': 'Rize, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7067, 9127], [7125, 9173], [7176, 9172], [7249, 9218], [7313, 9297], [7352, 9293], [7417, 9325], [7467, 9375], [7509, 9390], [7548, 9300], [7626, 9237], [7508, 9064], [7503, 9034], [7409, 8950], [7344, 8928], [7331, 8885], [7255, 8860], [7170, 8808], [7161, 8902], [7119, 8987], [7108, 9037], [7067, 9127]]] } }, { type: 'Feature', id: 'TR.TB', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.5, 'hc-middle-y': 0.53, 'hc-key': 'tr-tb', 'hc-a2': 'TB', labelrank: '7', hasc: 'TR.TB', 'alt-name': 'Trabzon', 'woe-id': '2347312', subregion: null, fips: 'TU61', 'postal-code': 'TB', name: 'Trabzon', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '39.8034', 'woe-name': 'Trabzon', latitude: '40.7988', 'woe-label': 'Trabzon, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6406, 9133], [6475, 9122], [6557, 9173], [6592, 9167], [6650, 9116], [6694, 9103], [6726, 9116], [6799, 9084], [6875, 9103], [6948, 9064], [7067, 9127], [7108, 9037], [7119, 8987], [7161, 8902], [7170, 8808], [7004, 8771], [6910, 8779], [6850, 8826], [6809, 8792], [6779, 8834], [6739, 8856], [6719, 8812], [6667, 8801], [6535, 8843], [6460, 8932], [6419, 8915], [6407, 8942], [6397, 9044], [6406, 9133]]] } }, { type: 'Feature', id: 'TR.AN', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.58, 'hc-middle-y': 0.48, 'hc-key': 'tr-an', 'hc-a2': 'AN', labelrank: '7', hasc: 'TR.AN', 'alt-name': 'Ankara', 'woe-id': '2347263', subregion: null, fips: 'TU68', 'postal-code': 'AN', name: 'Ankara', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '32.578', 'woe-name': 'Ankara', latitude: '39.829', 'woe-label': 'Ankara, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[3319, 7267], [3262, 7378], [3266, 7539], [3236, 7609], [3115, 7683], [3091, 7683], [3061, 7598], [2978, 7636], [2874, 7547], [2832, 7565], [2763, 7522], [2653, 7570], [2566, 7550], [2467, 7624], [2418, 7650], [2496, 7693], [2521, 7724], [2488, 7777], [2494, 7883], [2470, 7948], [2442, 7973], [2412, 8085], [2435, 8111], [2416, 8157], [2381, 8168], [2352, 8264], [2188, 8267], [2165, 8291], [2087, 8293], [2055, 8270], [1995, 8288], [1942, 8267], [1906, 8270], [1899, 8328], [1876, 8359], [1911, 8404], [1957, 8429], [1994, 8550], [2093, 8501], [2186, 8509], [2204, 8489], [2267, 8471], [2317, 8490], [2407, 8490], [2557, 8532], [2603, 8555], [2679, 8543], [2724, 8566], [2769, 8631], [2748, 8689], [2751, 8728], [2786, 8751], [2873, 8745], [3033, 8670], [3080, 8603], [3151, 8552], [3169, 8509], [3206, 8481], [3246, 8486], [3275, 8528], [3384, 8488], [3370, 8388], [3367, 8255], [3262, 8230], [3238, 8168], [3208, 8046], [3222, 7986], [3282, 7904], [3304, 7802], [3349, 7716], [3361, 7675], [3470, 7603], [3582, 7550], [3578, 7526], [3560, 7478], [3583, 7418], [3582, 7376], [3514, 7320], [3463, 7321], [3319, 7267]]] } }, { type: 'Feature', id: 'TR.SU', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.56, 'hc-middle-y': 0.62, 'hc-key': 'tr-su', 'hc-a2': 'SU', labelrank: '7', hasc: 'TR.SU', 'alt-name': 'Şanlıurfa', 'woe-id': '2347314', subregion: null, fips: 'TU63', 'postal-code': 'SU', name: 'Şanlıurfa', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '39.0508', 'woe-name': 'Şanlıurfa', latitude: '37.3189', 'woe-label': 'Şanlıurfa, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7253, 6189], [7096, 6093], [6975, 6037], [6674, 5958], [6643, 5955], [6551, 5979], [6415, 5960], [6337, 5979], [6254, 6057], [6113, 6098], [6055, 6098], [5963, 6042], [5948, 6129], [5923, 6152], [5927, 6195], [5895, 6188], [5863, 6212], [5840, 6348], [5862, 6409], [5910, 6473], [5948, 6482], [5979, 6489], [6033, 6463], [6080, 6511], [6218, 6544], [6288, 6630], [6414, 6658], [6373, 6688], [6442, 6704], [6422, 6723], [6464, 6740], [6465, 6845], [6505, 6872], [6508, 6907], [6579, 6952], [6625, 6930], [6738, 6915], [6815, 6852], [6904, 6811], [6914, 6830], [6977, 6788], [6979, 6709], [7001, 6624], [7048, 6532], [7077, 6504], [7091, 6419], [7160, 6361], [7167, 6288], [7226, 6200], [7253, 6189]]] } }, { type: 'Feature', id: 'TR.BB', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.42, 'hc-middle-y': 0.45, 'hc-key': 'tr-bb', 'hc-a2': 'BB', labelrank: '6', hasc: 'TR.BB', 'alt-name': 'Bayburt', 'woe-id': '2347327', subregion: null, fips: 'TU77', 'postal-code': 'BB', name: 'Bayburt', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '40.3056', 'woe-name': 'Bayburt', latitude: '40.2859', 'woe-label': 'Bayburt, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6809, 8792], [6850, 8826], [6910, 8779], [7004, 8771], [7170, 8808], [7191, 8766], [7233, 8626], [7269, 8610], [7359, 8599], [7337, 8537], [7240, 8489], [7196, 8443], [7085, 8441], [6993, 8453], [6947, 8418], [6859, 8400], [6820, 8491], [6839, 8581], [6835, 8687], [6809, 8792]]] } }, { type: 'Feature', id: 'TR.EM', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.5, 'hc-middle-y': 0.57, 'hc-key': 'tr-em', 'hc-a2': 'EM', labelrank: '7', hasc: 'TR.EM', 'alt-name': 'Erzurum', 'woe-id': '2347282', subregion: null, fips: 'TU25', 'postal-code': 'EM', name: 'Erzurum', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '41.403', 'woe-name': 'Erzurum', latitude: '39.9678', 'woe-label': 'Erzurum, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8292, 8959], [8284, 8908], [8306, 8837], [8197, 8753], [8119, 8718], [8106, 8677], [8157, 8624], [8241, 8607], [8305, 8566], [8357, 8493], [8262, 8424], [8201, 8416], [8252, 8365], [8335, 8342], [8324, 8316], [8336, 8219], [8319, 8153], [8266, 8139], [8194, 8093], [8179, 7998], [8118, 7940], [8050, 7921], [8008, 7886], [7910, 7899], [7858, 7952], [7776, 8012], [7730, 8018], [7642, 7995], [7587, 8061], [7509, 8078], [7433, 8133], [7354, 8083], [7304, 8086], [7302, 8131], [7328, 8201], [7262, 8242], [7237, 8308], [7196, 8354], [7101, 8347], [7070, 8360], [7085, 8441], [7196, 8443], [7240, 8489], [7337, 8537], [7359, 8599], [7269, 8610], [7233, 8626], [7191, 8766], [7170, 8808], [7255, 8860], [7331, 8885], [7344, 8928], [7409, 8950], [7503, 9034], [7548, 9014], [7637, 9005], [7630, 8892], [7671, 8863], [7763, 8922], [7805, 8938], [7899, 8909], [7920, 8949], [7925, 9011], [7956, 9066], [7953, 9126], [7987, 9154], [8125, 9178], [8142, 9124], [8214, 9055], [8292, 8959]]] } }, { type: 'Feature', id: 'TR.MR', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.46, 'hc-middle-y': 0.4, 'hc-key': 'tr-mr', 'hc-a2': 'MR', labelrank: '7', hasc: 'TR.MR', 'alt-name': 'Mardin', 'woe-id': '2347322', subregion: null, fips: 'TU72', 'postal-code': 'MR', name: 'Mardin', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '40.9525', 'woe-name': 'Mardin', latitude: '37.4282', 'woe-label': 'Mardin, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8184, 6436], [7948, 6357], [7788, 6336], [7608, 6362], [7501, 6337], [7400, 6275], [7348, 6260], [7253, 6189], [7226, 6200], [7167, 6288], [7160, 6361], [7091, 6419], [7077, 6504], [7128, 6580], [7298, 6721], [7344, 6728], [7374, 6784], [7436, 6802], [7637, 6814], [7671, 6834], [7697, 6831], [7742, 6784], [7790, 6704], [7855, 6671], [7941, 6697], [8100, 6836], [8165, 6688], [8162, 6639], [8069, 6580], [8048, 6551], [8060, 6522], [8129, 6507], [8168, 6480], [8184, 6436]]] } }, { type: 'Feature', id: 'TR.SR', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.62, 'hc-middle-y': 0.42, 'hc-key': 'tr-sr', 'hc-a2': 'SR', labelrank: '6', hasc: 'TR.SR', 'alt-name': 'Şırnak', 'woe-id': '2347330', subregion: null, fips: 'TU80', 'postal-code': 'SR', name: 'Şırnak', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '42.5455', 'woe-name': 'Şırnak', latitude: '37.4047', 'woe-label': 'Şırnak, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[9019, 6631], [8961, 6630], [8881, 6663], [8853, 6661], [8772, 6616], [8645, 6631], [8568, 6469], [8453, 6430], [8436, 6473], [8442, 6515], [8403, 6553], [8363, 6551], [8353, 6577], [8271, 6476], [8184, 6436], [8168, 6480], [8129, 6507], [8060, 6522], [8048, 6551], [8069, 6580], [8162, 6639], [8165, 6688], [8100, 6836], [8185, 6804], [8299, 6806], [8340, 6855], [8416, 6860], [8535, 6842], [8756, 6838], [8788, 6878], [8790, 6919], [8833, 6949], [8943, 6933], [8998, 6943], [8995, 6834], [9033, 6751], [9035, 6687], [9019, 6631]]] } }, { type: 'Feature', id: 'TR.SI', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.39, 'hc-middle-y': 0.53, 'hc-key': 'tr-si', 'hc-a2': 'SI', labelrank: '7', hasc: 'TR.SI', 'alt-name': 'Siirt', 'woe-id': '2347324', subregion: null, fips: 'TU74', 'postal-code': 'SI', name: 'Siirt', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '42.2212', 'woe-name': 'Siirt', latitude: '37.9159', 'woe-label': 'Siirt, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8790, 6919], [8788, 6878], [8756, 6838], [8535, 6842], [8416, 6860], [8340, 6855], [8299, 6806], [8185, 6804], [8100, 6836], [8032, 6898], [7925, 6930], [7858, 6981], [7849, 7028], [7865, 7063], [7929, 7087], [7985, 7194], [8046, 7178], [8108, 7178], [8203, 7220], [8243, 7206], [8319, 7151], [8430, 7124], [8571, 7051], [8607, 7082], [8598, 7160], [8620, 7229], [8664, 7237], [8753, 7222], [8773, 7113], [8771, 7009], [8761, 6970], [8790, 6919]]] } }, { type: 'Feature', id: 'TR.HK', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.42, 'hc-middle-y': 0.44, 'hc-key': 'tr-hk', 'hc-a2': 'HK', labelrank: '7', hasc: 'TR.HK', 'alt-name': 'Hakkari', 'woe-id': '2347320', subregion: null, fips: 'TU70', 'postal-code': 'HK', name: 'Hakkari', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '44.0804', 'woe-name': 'Hakkari', latitude: '37.6097', 'woe-label': 'Hakkâri, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[9453, 7122], [9464, 7102], [9521, 7110], [9556, 7097], [9606, 7039], [9637, 7052], [9694, 7013], [9670, 6949], [9697, 6929], [9701, 6817], [9851, 6722], [9833, 6676], [9844, 6610], [9823, 6626], [9733, 6614], [9655, 6530], [9608, 6508], [9593, 6458], [9550, 6458], [9510, 6529], [9538, 6584], [9520, 6653], [9437, 6685], [9381, 6679], [9332, 6609], [9286, 6585], [9261, 6602], [9173, 6592], [9091, 6595], [9019, 6631], [9035, 6687], [9033, 6751], [8995, 6834], [8998, 6943], [9075, 6953], [9181, 6993], [9230, 6985], [9303, 7001], [9333, 7024], [9361, 7108], [9453, 7122]]] } }, { type: 'Feature', id: 'TR.VA', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.5, 'hc-middle-y': 0.52, 'hc-key': 'tr-va', 'hc-a2': 'VA', labelrank: '7', hasc: 'TR.VA', 'alt-name': 'Van', 'woe-id': '2347316', subregion: null, fips: 'TU65', 'postal-code': 'VA', name: 'Van', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '43.5684', 'woe-name': 'Van', latitude: '38.5212', 'woe-label': 'Van, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[9236, 8146], [9266, 8049], [9332, 8017], [9338, 7937], [9319, 7904], [9358, 7833], [9409, 7805], [9408, 7670], [9441, 7647], [9459, 7473], [9536, 7479], [9561, 7442], [9518, 7383], [9520, 7308], [9457, 7169], [9453, 7122], [9361, 7108], [9333, 7024], [9303, 7001], [9230, 6985], [9181, 6993], [9075, 6953], [8998, 6943], [8943, 6933], [8833, 6949], [8790, 6919], [8761, 6970], [8771, 7009], [8773, 7113], [8753, 7222], [8664, 7237], [8620, 7229], [8589, 7236], [8571, 7325], [8541, 7384], [8551, 7427], [8642, 7496], [8702, 7624], [8767, 7697], [8778, 7751], [8751, 7785], [8680, 7817], [8652, 7907], [8727, 7957], [8720, 8029], [8674, 8046], [8676, 8068], [8740, 8094], [8780, 8144], [8864, 8134], [8927, 8091], [8997, 8089], [9045, 8125], [9160, 8115], [9236, 8146]]] } }, { type: 'Feature', id: 'TR.AR', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.35, 'hc-middle-y': 0.51, 'hc-key': 'tr-ar', 'hc-a2': 'AR', labelrank: '7', hasc: 'TR.AR', 'alt-name': 'Ardahan', 'woe-id': '20070284', subregion: null, fips: 'TU86', 'postal-code': 'AR', name: 'Ardahan', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '42.8342', 'woe-name': 'Ardahan', latitude: '41.1809', 'woe-label': 'Ardahan, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8179, 9553], [8224, 9616], [8230, 9658], [8280, 9679], [8367, 9678], [8344, 9625], [8381, 9606], [8399, 9629], [8482, 9552], [8589, 9500], [8548, 9462], [8586, 9462], [8624, 9415], [8673, 9435], [8738, 9417], [8744, 9382], [8490, 9231], [8428, 9189], [8419, 8992], [8292, 8959], [8214, 9055], [8142, 9124], [8125, 9178], [8152, 9250], [8194, 9307], [8237, 9335], [8246, 9386], [8198, 9483], [8179, 9553]]] } }, { type: 'Feature', id: 'TR.KI', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.43, 'hc-middle-y': 0.56, 'hc-key': 'tr-ki', 'hc-a2': 'KI', labelrank: '7', hasc: 'TR.KI', 'alt-name': 'Kilis', 'woe-id': '20070285', subregion: null, fips: 'TU90', 'postal-code': 'KI', name: 'Kilis', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '37.0035', 'woe-name': 'Kilis', latitude: '36.8329', 'woe-label': 'Kilis, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5677, 5911], [5634, 5881], [5515, 5893], [5435, 5884], [5406, 5860], [5383, 5875], [5379, 5931], [5351, 5954], [5172, 6000], [5203, 6032], [5288, 6083], [5292, 6132], [5330, 6137], [5350, 6097], [5435, 6063], [5510, 5988], [5527, 6000], [5626, 5953], [5677, 5911]]] } }, { type: 'Feature', id: 'TR.BR', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.56, 'hc-middle-y': 0.51, 'hc-key': 'tr-br', 'hc-a2': 'BR', labelrank: '7', hasc: 'TR.BR', 'alt-name': 'Bartın', 'woe-id': '20070187', subregion: null, fips: 'TU87', 'postal-code': 'BR', name: 'Bartın', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '32.4688', 'woe-name': 'Bartın', latitude: '41.5857', 'woe-label': 'Bartın, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2588, 9396], [2659, 9482], [2732, 9498], [2847, 9567], [2948, 9581], [2953, 9538], [2987, 9453], [2953, 9428], [2958, 9377], [2906, 9328], [2876, 9320], [2851, 9267], [2785, 9213], [2728, 9198], [2669, 9202], [2681, 9263], [2651, 9350], [2588, 9396]]] } }, { type: 'Feature', id: 'TR.TG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.35, 'hc-middle-y': 0.47, 'hc-key': 'tr-tg', 'hc-a2': 'TG', labelrank: '7', hasc: 'TR.TG', 'alt-name': 'Tekirdağ', 'woe-id': '2347310', subregion: null, fips: 'TU59', 'postal-code': 'TG', name: 'Tekirdağ', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '27.4547', 'woe-name': 'Tekirdağ', latitude: '41.0824', 'woe-label': 'Tekirdağ, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[428, 9093], [338, 9069], [306, 9024], [252, 9029], [186, 9058], [69, 9048], [38, 9016], [7, 8938], [-47, 8890], [-73, 8851], [-137, 8803], [-210, 8794], [-258, 8760], [-272, 8815], [-268, 8872], [-347, 8885], [-375, 8980], [-375, 9039], [-342, 9131], [-301, 9206], [-303, 9320], [-220, 9332], [-68, 9329], [12, 9251], [80, 9280], [130, 9355], [244, 9379], [434, 9390], [448, 9290], [419, 9189], [428, 9093]]] } }, { type: 'Feature', id: 'TR.IZ', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.45, 'hc-middle-y': 0.69, 'hc-key': 'tr-iz', 'hc-a2': 'IZ', labelrank: '7', hasc: 'TR.IZ', 'alt-name': 'İzmir', 'woe-id': '2347290', subregion: null, fips: 'TU35', 'postal-code': 'IZ', name: 'İzmir', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '27.3977', 'woe-name': 'İzmir', latitude: '38.2426', 'woe-label': 'İzmir, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[-217, 6824], [-225, 6896], [-295, 6905], [-322, 6941], [-387, 6964], [-436, 6948], [-454, 7025], [-487, 7079], [-559, 7074], [-590, 7007], [-668, 7088], [-783, 7141], [-734, 7183], [-704, 7166], [-641, 7198], [-652, 7242], [-617, 7244], [-676, 7288], [-700, 7387], [-660, 7426], [-610, 7403], [-546, 7302], [-562, 7228], [-532, 7147], [-530, 7204], [-496, 7236], [-476, 7185], [-386, 7189], [-334, 7210], [-292, 7200], [-252, 7239], [-327, 7246], [-377, 7229], [-399, 7289], [-429, 7315], [-419, 7350], [-472, 7368], [-486, 7444], [-428, 7465], [-390, 7447], [-369, 7466], [-381, 7506], [-284, 7550], [-294, 7589], [-328, 7577], [-359, 7594], [-399, 7580], [-425, 7605], [-421, 7666], [-376, 7690], [-430, 7765], [-304, 7844], [-269, 7885], [-129, 7958], [-98, 7950], [-61, 7893], [-30, 7749], [-3, 7682], [-10, 7645], [-65, 7600], [-133, 7568], [-147, 7515], [-198, 7435], [-163, 7396], [-151, 7346], [-119, 7315], [-5, 7304], [19, 7246], [99, 7193], [136, 7124], [165, 7129], [190, 7175], [278, 7161], [313, 7097], [406, 7106], [474, 7075], [533, 6940], [354, 6887], [244, 6891], [110, 6863], [-29, 6882], [-59, 6879], [-131, 6837], [-217, 6824]]] } }, { type: 'Feature', id: 'TR.KS', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.49, 'hc-middle-y': 0.4, 'hc-key': 'tr-ks', 'hc-a2': 'KS', labelrank: '7', hasc: 'TR.KS', 'alt-name': 'Kastamonu', 'woe-id': '2347292', subregion: null, fips: 'TU37', 'postal-code': 'KS', name: 'Kastamonu', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '33.6356', 'woe-name': 'Kastamonu', latitude: '41.5114', 'woe-label': 'Kastamonu, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[2948, 9581], [3016, 9597], [3060, 9622], [3145, 9651], [3230, 9696], [3346, 9690], [3385, 9679], [3525, 9666], [3595, 9673], [3709, 9658], [3713, 9617], [3671, 9518], [3706, 9505], [3847, 9492], [3883, 9483], [3913, 9443], [3895, 9395], [3863, 9367], [3848, 9314], [3858, 9287], [3855, 9193], [3827, 9186], [3794, 9119], [3756, 9080], [3714, 8995], [3754, 8945], [3742, 8909], [3617, 8865], [3572, 8870], [3504, 8910], [3483, 8945], [3520, 9006], [3487, 9032], [3399, 8984], [3357, 8976], [3279, 8934], [3184, 8998], [3114, 9006], [3094, 9029], [3077, 9055], [3018, 9072], [3012, 9174], [3065, 9236], [3119, 9247], [3088, 9346], [3049, 9375], [2976, 9356], [2958, 9377], [2953, 9428], [2987, 9453], [2953, 9538], [2948, 9581]]] } }, { type: 'Feature', id: 'TR.MG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.5, 'hc-middle-y': 0.37, 'hc-key': 'tr-mg', 'hc-a2': 'MG', labelrank: '7', hasc: 'TR.MG', 'alt-name': 'Muğla', 'woe-id': '2347301', subregion: null, fips: 'TU48', 'postal-code': 'MG', name: 'Muğla', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '28.6482', 'woe-name': 'Muğla', latitude: '37.0501', 'woe-label': 'Muğla, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[879, 5618], [786, 5692], [806, 5706], [788, 5756], [801, 5808], [755, 5804], [761, 5861], [805, 5866], [794, 5889], [705, 5955], [659, 5915], [646, 5876], [566, 5928], [520, 5926], [513, 6010], [432, 6016], [425, 6063], [383, 6044], [410, 6024], [392, 5997], [323, 6045], [300, 6018], [328, 5966], [252, 5919], [220, 5871], [149, 5843], [132, 5875], [175, 5873], [209, 5901], [142, 5939], [227, 5954], [189, 5988], [113, 5975], [8, 5996], [-23, 5973], [-33, 5924], [-100, 5947], [-158, 5934], [-211, 5954], [-152, 6001], [-64, 6003], [-55, 6029], [23, 6010], [47, 6027], [159, 6015], [195, 6020], [169, 6057], [198, 6065], [184, 6106], [275, 6110], [293, 6154], [362, 6172], [348, 6187], [234, 6180], [106, 6182], [43, 6162], [9, 6172], [-84, 6154], [-153, 6198], [-217, 6192], [-231, 6153], [-257, 6158], [-272, 6230], [-216, 6271], [-178, 6273], [-129, 6243], [-81, 6268], [-94, 6314], [-47, 6316], [-40, 6370], [-129, 6359], [-110, 6412], [-164, 6412], [-137, 6459], [-156, 6476], [-107, 6565], [-69, 6574], [18, 6540], [57, 6510], [136, 6508], [159, 6494], [269, 6492], [347, 6568], [388, 6557], [464, 6500], [538, 6486], [545, 6417], [607, 6398], [646, 6305], [689, 6297], [712, 6261], [787, 6205], [799, 6114], [901, 6062], [941, 6105], [947, 6152], [975, 6173], [976, 6094], [998, 6085], [1027, 6118], [1097, 6125], [1143, 6056], [1075, 5915], [1070, 5831], [1013, 5788], [1010, 5749], [942, 5738], [906, 5640], [879, 5618]]] } }, { type: 'Feature', id: 'TR.KU', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.49, 'hc-middle-y': 0.59, 'hc-key': 'tr-ku', 'hc-a2': 'KU', labelrank: '7', hasc: 'TR.KU', 'alt-name': 'Kütahya', 'woe-id': '2347297', subregion: null, fips: 'TU43', 'postal-code': 'KU', name: 'Kütahya', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '29.5498', 'woe-name': 'Kütahya', latitude: '39.3471', 'woe-label': 'Kütahya, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[819, 7377], [824, 7422], [796, 7491], [803, 7535], [761, 7617], [662, 7652], [624, 7694], [631, 7752], [714, 7786], [764, 7862], [774, 7913], [810, 7997], [831, 7980], [934, 7965], [965, 7983], [984, 8063], [1011, 8081], [1060, 8208], [1089, 8226], [1146, 8201], [1215, 8209], [1205, 8118], [1231, 8067], [1332, 7996], [1356, 7989], [1462, 8008], [1542, 7912], [1561, 7813], [1615, 7737], [1624, 7691], [1583, 7632], [1516, 7604], [1462, 7465], [1421, 7408], [1301, 7342], [1304, 7416], [1279, 7447], [1193, 7474], [1127, 7462], [1101, 7389], [996, 7371], [918, 7378], [851, 7402], [819, 7377]]] } }, { type: 'Feature', id: 'TR.NV', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.55, 'hc-middle-y': 0.67, 'hc-key': 'tr-nv', 'hc-a2': 'NV', labelrank: '7', hasc: 'TR.NV', 'alt-name': 'Nevşehir', 'woe-id': '2347303', subregion: null, fips: 'TU50', 'postal-code': 'NV', name: 'Nevşehir', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '34.6408', 'woe-name': 'Nevşehir', latitude: '38.7415', 'woe-label': 'Nevşehir, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[4194, 7565], [4155, 7425], [4223, 7324], [4226, 7224], [4141, 7087], [4082, 7064], [4013, 7103], [3900, 7090], [3825, 7149], [3835, 7253], [3799, 7252], [3745, 7276], [3736, 7312], [3764, 7382], [3745, 7446], [3751, 7475], [3813, 7423], [3836, 7429], [3826, 7477], [3838, 7516], [3970, 7581], [3993, 7611], [3963, 7668], [3969, 7714], [3947, 7814], [4026, 7820], [4096, 7747], [4116, 7697], [4161, 7670], [4194, 7565]]] } }, { type: 'Feature', id: 'TR.SV', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.59, 'hc-middle-y': 0.44, 'hc-key': 'tr-sv', 'hc-a2': 'SV', labelrank: '7', hasc: 'TR.SV', 'alt-name': 'Sivas', 'woe-id': '2347309', subregion: null, fips: 'TU58', 'postal-code': 'SV', name: 'Sivas', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '37.2907', 'woe-name': 'Sivas', latitude: '39.429', 'woe-label': 'Sivas, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5604, 8641], [5638, 8584], [5701, 8556], [5751, 8608], [5808, 8617], [5809, 8667], [5890, 8702], [5968, 8463], [6071, 8407], [6127, 8424], [6243, 8385], [6234, 8320], [6183, 8321], [6129, 8293], [6075, 8314], [6051, 8298], [6040, 8214], [6118, 8230], [6126, 8197], [6084, 8182], [6047, 8119], [6041, 7991], [6095, 7946], [6053, 7892], [6076, 7765], [6061, 7720], [5980, 7670], [5823, 7643], [5744, 7592], [5697, 7580], [5649, 7601], [5613, 7565], [5644, 7469], [5598, 7396], [5562, 7374], [5508, 7311], [5475, 7294], [5349, 7277], [5246, 7299], [5172, 7278], [5223, 7479], [5265, 7602], [5242, 7666], [5196, 7688], [5096, 7692], [5046, 7673], [4989, 7702], [4896, 7712], [4854, 7695], [4798, 7701], [4689, 7774], [4632, 7788], [4677, 7833], [4741, 7936], [4827, 8017], [4842, 8076], [4785, 8165], [4768, 8217], [4896, 8248], [4987, 8256], [5085, 8309], [5117, 8423], [5157, 8443], [5221, 8438], [5312, 8470], [5455, 8488], [5549, 8534], [5604, 8641]]] } }, { type: 'Feature', id: 'TR.TC', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.38, 'hc-middle-y': 0.58, 'hc-key': 'tr-tc', 'hc-a2': 'TC', labelrank: '7', hasc: 'TR.TC', 'alt-name': 'Tunceli', 'woe-id': '2347313', subregion: null, fips: 'TU62', 'postal-code': 'TC', name: 'Tunceli', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '39.6357', 'woe-name': 'Tunceli', latitude: '39.1519', 'woe-label': 'Tunceli, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6281, 7652], [6262, 7738], [6286, 7791], [6328, 7814], [6319, 7872], [6400, 7923], [6423, 7957], [6506, 7989], [6580, 8007], [6667, 8000], [6795, 8023], [6876, 8080], [6952, 8057], [7059, 8103], [7092, 8092], [7267, 8095], [7220, 8052], [7179, 8054], [7133, 7991], [7082, 7978], [7074, 7951], [7026, 7946], [6993, 7920], [6986, 7846], [7002, 7793], [6991, 7745], [6934, 7732], [6917, 7712], [6930, 7659], [6912, 7593], [6880, 7553], [6829, 7528], [6735, 7515], [6706, 7482], [6560, 7540], [6430, 7560], [6327, 7539], [6301, 7561], [6305, 7621], [6281, 7652]]] } }, { type: 'Feature', id: 'TR.ML', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.38, 'hc-middle-y': 0.51, 'hc-key': 'tr-ml', 'hc-a2': 'ML', labelrank: '7', hasc: 'TR.ML', 'alt-name': 'Malatya', 'woe-id': '2347298', subregion: null, fips: 'TU44', 'postal-code': 'ML', name: 'Malatya', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '38.1872', 'woe-name': 'Malatya', latitude: '38.5144', 'woe-label': 'Malatya, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6061, 7720], [6107, 7700], [6160, 7701], [6211, 7680], [6250, 7639], [6210, 7635], [6198, 7584], [6217, 7545], [6231, 7464], [6223, 7439], [6161, 7441], [6136, 7393], [6104, 7378], [6077, 7320], [6094, 7278], [6157, 7238], [6206, 7233], [6277, 7206], [6345, 7224], [6391, 7172], [6453, 7148], [6522, 7165], [6544, 7124], [6529, 7057], [6506, 7025], [6429, 6988], [6357, 6972], [6277, 6972], [6223, 6989], [6250, 7035], [6213, 7063], [6140, 7048], [6068, 6942], [6025, 6916], [6013, 6849], [5980, 6815], [5893, 6782], [5844, 6791], [5662, 6738], [5684, 6782], [5708, 6889], [5738, 6938], [5769, 7074], [5739, 7121], [5654, 7149], [5580, 7188], [5495, 7202], [5453, 7195], [5445, 7237], [5475, 7294], [5508, 7311], [5562, 7374], [5598, 7396], [5644, 7469], [5613, 7565], [5649, 7601], [5697, 7580], [5744, 7592], [5823, 7643], [5980, 7670], [6061, 7720]]] } }, { type: 'Feature', id: 'TR.AG', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.45, 'hc-middle-y': 0.37, 'hc-key': 'tr-ag', 'hc-a2': 'AG', labelrank: '7', hasc: 'TR.AG', 'alt-name': 'Ağrı', 'woe-id': '2347261', subregion: null, fips: 'TU04', 'postal-code': 'AG', name: 'Ağrı', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '43.3647', 'woe-name': 'Ağrı', latitude: '39.5925', 'woe-label': 'Ağrı, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[8319, 8153], [8336, 8219], [8324, 8316], [8335, 8342], [8252, 8365], [8201, 8416], [8262, 8424], [8357, 8493], [8467, 8484], [8632, 8551], [8744, 8562], [8775, 8553], [8806, 8436], [8836, 8424], [8904, 8473], [8982, 8450], [9016, 8405], [9105, 8384], [9115, 8364], [9222, 8376], [9309, 8368], [9406, 8404], [9439, 8395], [9423, 8343], [9428, 8241], [9411, 8216], [9357, 8194], [9316, 8209], [9239, 8192], [9215, 8170], [9236, 8146], [9160, 8115], [9045, 8125], [8997, 8089], [8927, 8091], [8864, 8134], [8780, 8144], [8740, 8094], [8676, 8068], [8674, 8046], [8720, 8029], [8727, 7957], [8652, 7907], [8551, 7872], [8467, 7812], [8456, 7981], [8367, 8072], [8319, 8153]]] } }, { type: 'Feature', id: 'TR.BT', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.52, 'hc-middle-y': 0.51, 'hc-key': 'tr-bt', 'hc-a2': 'BT', labelrank: '7', hasc: 'TR.BT', 'alt-name': 'Bitlis', 'woe-id': '2347270', subregion: null, fips: 'TU13', 'postal-code': 'BT', name: 'Bitlis', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '42.3462', 'woe-name': 'Bitlis', latitude: '38.5155', 'woe-label': 'Bitlis, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[7880, 7427], [7969, 7478], [8066, 7480], [8104, 7506], [8155, 7569], [8128, 7626], [8136, 7653], [8186, 7657], [8200, 7703], [8292, 7752], [8385, 7752], [8467, 7812], [8551, 7872], [8652, 7907], [8680, 7817], [8751, 7785], [8778, 7751], [8767, 7697], [8702, 7624], [8642, 7496], [8551, 7427], [8541, 7384], [8571, 7325], [8589, 7236], [8620, 7229], [8598, 7160], [8607, 7082], [8571, 7051], [8430, 7124], [8319, 7151], [8243, 7206], [8203, 7220], [8108, 7178], [8046, 7178], [7985, 7194], [7975, 7279], [7930, 7413], [7880, 7427]]] } }, { type: 'Feature', id: 'TR.GU', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.53, 'hc-middle-y': 0.57, 'hc-key': 'tr-gu', 'hc-a2': 'GU', labelrank: '7', hasc: 'TR.GU', 'alt-name': 'Gümüşhane', 'woe-id': '2347319', subregion: null, fips: 'TU69', 'postal-code': 'GU', name: 'Gümüşhane', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '39.3544', 'woe-name': 'Gümüşhane', latitude: '40.2812', 'woe-label': 'Gümüşhane, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[6859, 8400], [6818, 8339], [6728, 8302], [6597, 8292], [6529, 8314], [6509, 8335], [6403, 8384], [6337, 8403], [6318, 8471], [6313, 8545], [6394, 8610], [6395, 8637], [6350, 8665], [6284, 8677], [6268, 8694], [6267, 8758], [6297, 8805], [6294, 8846], [6354, 8903], [6419, 8915], [6460, 8932], [6535, 8843], [6667, 8801], [6719, 8812], [6739, 8856], [6779, 8834], [6809, 8792], [6835, 8687], [6839, 8581], [6820, 8491], [6859, 8400]]] } }, { type: 'Feature', id: 'TR.OS', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.44, 'hc-middle-y': 0.64, 'hc-key': 'tr-os', 'hc-a2': 'OS', labelrank: '7', hasc: 'TR.OS', 'alt-name': 'Osmaniye', 'woe-id': '20070184', subregion: null, fips: 'TU91', 'postal-code': 'OS', name: 'Osmaniye', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '36.3011', 'woe-name': 'Osmaniye', latitude: '37.1737', 'woe-label': 'Osmaniye, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[5196, 6321], [5150, 6256], [5121, 6192], [5049, 6092], [4991, 6087], [4949, 6120], [4822, 6119], [4845, 6201], [4814, 6264], [4765, 6269], [4746, 6321], [4744, 6376], [4810, 6546], [4835, 6591], [4932, 6598], [4934, 6542], [4902, 6480], [4929, 6396], [4953, 6368], [5094, 6403], [5169, 6357], [5196, 6321]]] } }, { type: 'Feature', id: 'TR.BC', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.38, 'hc-middle-y': 0.54, 'hc-key': 'tr-bc', 'hc-a2': 'BC', labelrank: '7', hasc: 'TR.BC', 'alt-name': 'Bilecik', 'woe-id': '2347268', subregion: null, fips: 'TU11', 'postal-code': 'BC', name: 'Bilecik', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '30.2002', 'woe-name': 'Bilecik', latitude: '40.0387', 'woe-label': 'Bilecik, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1376, 8655], [1409, 8593], [1450, 8551], [1498, 8534], [1574, 8552], [1640, 8547], [1678, 8506], [1748, 8498], [1755, 8466], [1807, 8379], [1751, 8378], [1705, 8343], [1686, 8270], [1637, 8217], [1579, 8207], [1528, 8158], [1520, 8084], [1462, 8008], [1356, 7989], [1332, 7996], [1231, 8067], [1205, 8118], [1215, 8209], [1274, 8211], [1267, 8247], [1226, 8302], [1244, 8409], [1310, 8483], [1294, 8542], [1323, 8620], [1376, 8655]]] } }, { type: 'Feature', id: 'TR.DN', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.42, 'hc-middle-y': 0.53, 'hc-key': 'tr-dn', 'hc-a2': 'DN', labelrank: '7', hasc: 'TR.DN', 'alt-name': 'Denizli', 'woe-id': '2347277', subregion: null, fips: 'TU20', 'postal-code': 'DN', name: 'Denizli', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '29.2821', 'woe-name': 'Denizli', latitude: '37.7539', 'woe-label': 'Denizli, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1219, 7160], [1297, 7139], [1368, 7016], [1359, 6950], [1156, 6805], [1153, 6732], [1230, 6706], [1254, 6661], [1163, 6603], [1148, 6571], [1074, 6535], [1076, 6467], [1096, 6414], [992, 6249], [975, 6173], [947, 6152], [941, 6105], [901, 6062], [799, 6114], [787, 6205], [712, 6261], [689, 6297], [646, 6305], [607, 6398], [545, 6417], [538, 6486], [514, 6542], [527, 6568], [612, 6570], [672, 6634], [712, 6646], [710, 6682], [674, 6691], [643, 6747], [664, 6789], [653, 6879], [610, 6935], [660, 6944], [694, 7028], [747, 7038], [811, 7009], [872, 7026], [910, 7001], [983, 7002], [1021, 7046], [1104, 7040], [1144, 7061], [1148, 7147], [1219, 7160]]] } }, { type: 'Feature', id: 'TR.US', properties: { 'hc-group': 'admin1', 'hc-middle-x': 0.44, 'hc-middle-y': 0.55, 'hc-key': 'tr-us', 'hc-a2': 'US', labelrank: '7', hasc: 'TR.US', 'alt-name': 'Uşak', 'woe-id': '2347315', subregion: null, fips: 'TU64', 'postal-code': 'US', name: 'Uşak', country: 'Turkey', 'type-en': 'Province', region: null, longitude: '29.3636', 'woe-name': 'Uşak', latitude: '38.4942', 'woe-label': 'Uşak, TR, Turkey', type: 'Il' }, geometry: { type: 'Polygon', coordinates: [[[1301, 7342], [1288, 7285], [1253, 7253], [1219, 7160], [1148, 7147], [1144, 7061], [1104, 7040], [1021, 7046], [983, 7002], [910, 7001], [872, 7026], [811, 7009], [747, 7038], [696, 7075], [730, 7116], [744, 7172], [740, 7240], [712, 7288], [819, 7377], [851, 7402], [918, 7378], [996, 7371], [1101, 7389], [1127, 7462], [1193, 7474], [1279, 7447], [1304, 7416], [1301, 7342]]] } }] } From a23aa78571d17e674eff20c248a0709b4085a343 Mon Sep 17 00:00:00 2001 From: isubas Date: Fri, 17 Jan 2020 11:05:25 +0300 Subject: [PATCH 020/100] =?UTF-8?q?Ufak=20d=C3=BCzeltme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/manager/statistics/employees/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/manager/statistics/employees/index.html.erb b/app/views/manager/statistics/employees/index.html.erb index b0d091c13..51b751c24 100644 --- a/app/views/manager/statistics/employees/index.html.erb +++ b/app/views/manager/statistics/employees/index.html.erb @@ -5,7 +5,7 @@ <%= 'Akademik Personel Sayıları' %>
- <%= column_chart Employee.active.academic.group('titles.name').count, refresh: 1, adapter: :highcharts %> + <%= column_chart Employee.active.academic.group('titles.name').count, adapter: :highcharts %>
From c44144a37484aed21423d9eadf9203646b5b75f4 Mon Sep 17 00:00:00 2001 From: isubas Date: Sat, 18 Jan 2020 23:34:04 +0300 Subject: [PATCH 021/100] =?UTF-8?q?Content=20y=C3=BCkleme=20mod=C3=BClleri?= =?UTF-8?q?ni=20iyile=C5=9Ftir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/content_loader_controller.js | 48 ++++++++++++------- app/javascript/controllers/fetch_content.js | 24 ++++++++++ .../manager_dashboard_controller.js | 19 ++++---- 3 files changed, 66 insertions(+), 25 deletions(-) create mode 100644 app/javascript/controllers/fetch_content.js diff --git a/app/javascript/controllers/content_loader_controller.js b/app/javascript/controllers/content_loader_controller.js index 5641fab47..887c247ab 100644 --- a/app/javascript/controllers/content_loader_controller.js +++ b/app/javascript/controllers/content_loader_controller.js @@ -1,58 +1,74 @@ /* eslint-disable no-undef */ import { Controller } from 'stimulus' +import { fetchContent } from './fetch_content' export default class extends Controller { - static targets = [ 'content', 'loadingMessage', 'autoRefresh' ] + static targets = ['content', 'loadingMessage', 'autoRefresh'] - connect () { + connect() { this.load() if (this.data.has('refreshInterval') && this.hasautoRefreshTarget) { this.startRefreshing() } } - disconnect () { + disconnect() { this.stopRefreshing() } - load () { - fetch(this.url) - .then(response => response.text()) - .then(html => { - $(this.contentTarget).html(html) - this.loadingMessageTarget.classList.add('d-none') - }) + load() { + fetchContent({ + url: this.url, + targetElement: this.contentTarget, + loadingElement: this.loadingMessageTarget + }) + // fetch(this.url) + // .then(response => { + // if (!response.ok) { + // throw Error(response.statusText); + // } + // return response.text() + // }) + // .then(html => { + // $(this.contentTarget).html(html) + // this.loadingMessageTarget.classList.add('d-none') + // }) + // .catch((error) => { + // $(this.contentTarget).html("Hata Oluştu") + // this.loadingMessageTarget.classList.add('d-none') + // }); } - startRefreshing () { + startRefreshing() { this.refreshTimer = setInterval(() => { this.load() }, this.data.get('refreshInterval')) } - stopRefreshing () { + stopRefreshing() { if (this.refreshTimer) { clearInterval(this.refreshTimer) } } - autoRefreshStart () { + autoRefreshStart() { if (this.autoRefreshTarget.checked) return this.startRefreshing() this.stopRefreshing() } - reset () { + reset() { // this.contentTarget.innerHTML = '' this.loadingMessageTarget.classList.remove('d-none') } - refresh () { + refresh(event) { + event.preventDefault() this.reset() this.load() } - get url () { + get url() { return this.data.get('url') } } diff --git a/app/javascript/controllers/fetch_content.js b/app/javascript/controllers/fetch_content.js new file mode 100644 index 000000000..a8e0b6ed3 --- /dev/null +++ b/app/javascript/controllers/fetch_content.js @@ -0,0 +1,24 @@ +export function fetchContent({ url, targetElement, loadingElement }) { + const ERROR_MESSAGE = ` +
+

+ + İşlem sırasında bir hata oluştu! Lütfen tekrardan deneyiniz. +

+
+ ` + fetch(url) + .then(response => { + if (response.ok) return response.text() + + throw Error(response.statusText) + }) + .then(html => { + $(targetElement).html(html) + loadingElement.classList.add('d-none') + }) + .catch((error) => { + $(targetElement).html(ERROR_MESSAGE) + loadingElement.classList.add('d-none') + }); +} diff --git a/app/javascript/controllers/manager_dashboard_controller.js b/app/javascript/controllers/manager_dashboard_controller.js index 3170d0202..5e9ed80b3 100644 --- a/app/javascript/controllers/manager_dashboard_controller.js +++ b/app/javascript/controllers/manager_dashboard_controller.js @@ -1,21 +1,22 @@ /* eslint-disable no-undef */ import { Controller } from 'stimulus' +import { fetchContent } from './fetch_content' export default class extends Controller { - static targets = ['content', 'loadingMessage' ] + static targets = ['content', 'loadingMessage'] - load (event) { + load(event) { this.reset() - fetch(event.target.dataset.contentUrl) - .then(response => response.text()) - .then(html => { - $(this.contentTarget).html(html) - this.loadingMessageTarget.classList.add('d-none') - }) + + fetchContent({ + url: event.target.dataset.contentUrl, + targetElement: this.contentTarget, + loadingElement: this.loadingMessageTarget + }) } - reset () { + reset() { this.loadingMessageTarget.classList.remove('d-none') } } From a133f7584f621b890ba67054c2703692d230acc5 Mon Sep 17 00:00:00 2001 From: isubas Date: Sun, 19 Jan 2020 00:13:14 +0300 Subject: [PATCH 022/100] Add babel-eslint --- .eslintrc.json | 5 +- package.json | 5 +- yarn.lock | 219 ++++++++++++++++++++++++------------------------- 3 files changed, 115 insertions(+), 114 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 7d03cee42..d6622030e 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,3 +1,4 @@ { - "extends": "standard" -} \ No newline at end of file + "extends": "standard", + "parser": "babel-eslint" +} diff --git a/package.json b/package.json index 861d5c380..cb5fa912d 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "turbolinks": "^5.2.0" }, "devDependencies": { + "babel-eslint": "^10.0.3", "eslint": "^6.7.2", "eslint-config-standard": "^14.1.0", "eslint-plugin-import": "^2.16.0", @@ -32,7 +33,7 @@ "webpack-dev-server": "^3.9.0" }, "scripts": { - "lint": "eslint ./app/assets --color", - "lint-fix": "eslint ./app/assets --color --fix" + "lint": "eslint ./app/assets ./app/javascript --color", + "lint-fix": "eslint ./app/assets ./app/javascript --color --fix" } } diff --git a/yarn.lock b/yarn.lock index 6ba5f5fc4..e3dbac06b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,6 +9,13 @@ dependencies: "@babel/highlight" "^7.0.0" +"@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + "@babel/core@^7.7.2": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" @@ -39,6 +46,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" + integrity sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug== + dependencies: + "@babel/types" "^7.8.3" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" @@ -109,6 +126,15 @@ "@babel/template" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" @@ -116,6 +142,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-hoist-variables@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" @@ -204,6 +237,13 @@ dependencies: "@babel/types" "^7.7.4" +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + "@babel/helper-wrap-function@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" @@ -232,6 +272,20 @@ esutils "^2.0.2" js-tokens "^4.0.0" +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" + integrity sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ== + "@babel/parser@^7.7.4", "@babel/parser@^7.7.7": version "7.7.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" @@ -663,6 +717,30 @@ "@babel/parser" "^7.7.4" "@babel/types" "^7.7.4" +"@babel/template@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" + integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/traverse@^7.0.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" + integrity sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/traverse@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" @@ -678,6 +756,15 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/types@^7.0.0", "@babel/types@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" + integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@babel/types@^7.7.4": version "7.7.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" @@ -1341,6 +1428,18 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.0.tgz#24390e6ad61386b0a747265754d2a17219de862c" integrity sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A== +babel-eslint@^10.0.3: + version "10.0.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" + integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + babel-loader@^8.0.6: version "8.0.6" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" @@ -2460,7 +2559,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -2594,11 +2693,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -2946,7 +3040,7 @@ eslint-utils@^1.4.2, eslint-utils@^1.4.3: dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.1.0: +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== @@ -3426,13 +3520,6 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" @@ -3939,7 +4026,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24, iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3963,13 +4050,6 @@ iferr@^0.1.5: resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" @@ -5089,14 +5169,6 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - minipass@^3.0.0, minipass@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" @@ -5104,13 +5176,6 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== - dependencies: - minipass "^2.9.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -5219,15 +5284,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -5295,22 +5351,6 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.42: version "1.1.44" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7" @@ -5348,14 +5388,6 @@ node-sass@^4.13.0: dependencies: abbrev "1" -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -5398,26 +5430,6 @@ normalize-url@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-packlist@^1.1.6: - version "1.4.7" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5425,7 +5437,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -5629,7 +5641,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4: +osenv@0: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -6800,7 +6812,7 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7, rc@~1.2.7: +rc@~1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -7107,7 +7119,7 @@ rgba-regex@^1.0.0: resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -7193,7 +7205,7 @@ sass-loader@7.3.1: pify "^4.0.1" semver "^6.3.0" -sax@^1.2.4, sax@~1.2.4: +sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -7240,7 +7252,7 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -7887,19 +7899,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.2: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -8558,7 +8557,7 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== From c65be63dc5245e993ddde7db0442ef1c8162d8b4 Mon Sep 17 00:00:00 2001 From: isubas Date: Sun, 19 Jan 2020 00:20:30 +0300 Subject: [PATCH 023/100] Fix eslint offences --- app/javascript/channels/consumer.js | 2 +- .../controllers/content_loader_controller.js | 37 +++++-------------- app/javascript/controllers/fetch_content.js | 8 ++-- .../manager_dashboard_controller.js | 7 ++-- app/javascript/packs/application.js | 4 +- 5 files changed, 21 insertions(+), 37 deletions(-) diff --git a/app/javascript/channels/consumer.js b/app/javascript/channels/consumer.js index 0eceb59b1..9f1489fd8 100644 --- a/app/javascript/channels/consumer.js +++ b/app/javascript/channels/consumer.js @@ -1,6 +1,6 @@ // Action Cable provides the framework to deal with WebSockets in Rails. // You can generate new channels where WebSocket features live using the `rails generate channel` command. -import { createConsumer } from "@rails/actioncable" +import { createConsumer } from '@rails/actioncable' export default createConsumer() diff --git a/app/javascript/controllers/content_loader_controller.js b/app/javascript/controllers/content_loader_controller.js index 887c247ab..e36056a6f 100644 --- a/app/javascript/controllers/content_loader_controller.js +++ b/app/javascript/controllers/content_loader_controller.js @@ -1,74 +1,57 @@ -/* eslint-disable no-undef */ import { Controller } from 'stimulus' import { fetchContent } from './fetch_content' export default class extends Controller { static targets = ['content', 'loadingMessage', 'autoRefresh'] - connect() { + connect () { this.load() if (this.data.has('refreshInterval') && this.hasautoRefreshTarget) { this.startRefreshing() } } - disconnect() { + disconnect () { this.stopRefreshing() } - load() { + load () { fetchContent({ url: this.url, targetElement: this.contentTarget, loadingElement: this.loadingMessageTarget }) - // fetch(this.url) - // .then(response => { - // if (!response.ok) { - // throw Error(response.statusText); - // } - // return response.text() - // }) - // .then(html => { - // $(this.contentTarget).html(html) - // this.loadingMessageTarget.classList.add('d-none') - // }) - // .catch((error) => { - // $(this.contentTarget).html("Hata Oluştu") - // this.loadingMessageTarget.classList.add('d-none') - // }); } - startRefreshing() { + startRefreshing () { this.refreshTimer = setInterval(() => { this.load() }, this.data.get('refreshInterval')) } - stopRefreshing() { + stopRefreshing () { if (this.refreshTimer) { clearInterval(this.refreshTimer) } } - autoRefreshStart() { + autoRefreshStart () { if (this.autoRefreshTarget.checked) return this.startRefreshing() this.stopRefreshing() } - reset() { - // this.contentTarget.innerHTML = '' + showLoading () { this.loadingMessageTarget.classList.remove('d-none') } - refresh(event) { + refresh (event) { event.preventDefault() - this.reset() + this.showLoading() this.load() } - get url() { + get url () { return this.data.get('url') } } diff --git a/app/javascript/controllers/fetch_content.js b/app/javascript/controllers/fetch_content.js index a8e0b6ed3..1c2a876eb 100644 --- a/app/javascript/controllers/fetch_content.js +++ b/app/javascript/controllers/fetch_content.js @@ -1,4 +1,5 @@ -export function fetchContent({ url, targetElement, loadingElement }) { +/* eslint-disable no-undef */ +export function fetchContent ({ url, targetElement, loadingElement }) { const ERROR_MESSAGE = `

@@ -7,6 +8,7 @@ export function fetchContent({ url, targetElement, loadingElement }) {

` + fetch(url) .then(response => { if (response.ok) return response.text() @@ -17,8 +19,8 @@ export function fetchContent({ url, targetElement, loadingElement }) { $(targetElement).html(html) loadingElement.classList.add('d-none') }) - .catch((error) => { + .catch(() => { $(targetElement).html(ERROR_MESSAGE) loadingElement.classList.add('d-none') - }); + }) } diff --git a/app/javascript/controllers/manager_dashboard_controller.js b/app/javascript/controllers/manager_dashboard_controller.js index 5e9ed80b3..68cc31611 100644 --- a/app/javascript/controllers/manager_dashboard_controller.js +++ b/app/javascript/controllers/manager_dashboard_controller.js @@ -5,8 +5,8 @@ import { fetchContent } from './fetch_content' export default class extends Controller { static targets = ['content', 'loadingMessage'] - load(event) { - this.reset() + load (event) { + this.showLoading() fetchContent({ url: event.target.dataset.contentUrl, @@ -15,8 +15,7 @@ export default class extends Controller { }) } - - reset() { + showLoading () { this.loadingMessageTarget.classList.remove('d-none') } } diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 7c1c9fd90..3456c0f3f 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -3,10 +3,10 @@ // a relevant structure within app/javascript and only use these pack files to reference // that code so it'll be compiled. +import 'controllers' + require('@rails/ujs').start() require('@rails/activestorage').start() require('channels') require('trix') require('@rails/actiontext') - -import 'controllers' From ec19487d585e1d060f07ccec86c364765ca70399 Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 22 Jan 2020 15:51:40 +0300 Subject: [PATCH 024/100] =?UTF-8?q?Highcharts=20js=20k=C3=BCt=C3=BCpanesin?= =?UTF-8?q?e=20yerelle=C5=9Ftir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/config/manifest.js | 1 + app/assets/javascripts/chart.js | 2 +- app/assets/javascripts/highcharts-langs/tr.js | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/highcharts-langs/tr.js diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index cfddc2966..6f144bc23 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -3,3 +3,4 @@ //= link application.js //= link chart.js +//= link highcharts-langs/tr.js diff --git a/app/assets/javascripts/chart.js b/app/assets/javascripts/chart.js index 0fc2d441c..cb31f8127 100644 --- a/app/assets/javascripts/chart.js +++ b/app/assets/javascripts/chart.js @@ -1,5 +1,5 @@ //= require echarts/dist/echarts.min //= require highcharts/highcharts -//= require highcharts/modules/map //= require highcharts/modules/exporting +//= require highcharts/modules/map //= require highcharts-maps/tr diff --git a/app/assets/javascripts/highcharts-langs/tr.js b/app/assets/javascripts/highcharts-langs/tr.js new file mode 100644 index 000000000..c5b5fc444 --- /dev/null +++ b/app/assets/javascripts/highcharts-langs/tr.js @@ -0,0 +1,26 @@ +/* eslint-disable no-undef */ + +Highcharts.setOptions({ + lang: { + contextButtonTitle: 'Grafik İşlem Menüsü', + decimalPoint: ',', + downloadJPEG: 'JPEG olarak indir', + downloadPDF: 'PDF olarak indir', + downloadPNG: 'PNG olarak indir', + downloadSVG: 'SVG olarak indir', + exportButtonTitle: 'Dışarı Aktar', + loading: 'Yükleniyor...', + months: ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'], + printButtonTitle: 'Yazdır', + printChart: 'Yazdır', + rangeSelectorFrom: 'Başlangış', + rangeSelectorTo: 'Bitiş', + rangeSelectorZoom: 'Aralık seç', + resetZoom: 'Yakınlaşmayı Sıfırla', + resetZoomTitle: 'Yakınlaşmayı Sıfırla', + shortMonths: ['Ock', 'Şbt', 'Mrt', 'Nsn', 'Mys', 'Hazn', 'Tem', 'Ağts', 'Eyl', 'Ekm', 'Kas', 'Arlk'], + thousandsSep: '.', + viewFullscreen: 'Tam Ekran Görüntüle', + weekdays: ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'] + } +}) From 59111a553ec1738906ab3a9487096be4eedd371a Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 22 Jan 2020 15:52:45 +0300 Subject: [PATCH 025/100] =?UTF-8?q?Eksik=20=C3=A7evirileri=20ekle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statistics/employees_controller.rb | 4 + .../components/_content_loader_panel.html.erb | 11 ++- app/views/manager/dashboard/index.html.erb | 77 +++++++++++-------- .../statistics/employees/academic.html.erb | 1 + .../statistics/employees/index.html.erb | 9 +-- .../statistics/students/cities.html.erb | 9 ++- .../students/double_major_and_minor.html.erb | 6 +- .../statistics/students/genders.html.erb | 9 ++- .../students/genders_and_degrees.html.erb | 12 ++- .../statistics/students/index.html.erb | 1 + .../students/non_graduates.html.erb | 36 +++++---- .../controllers/manager/dashboard.en.yml | 8 ++ .../controllers/manager/dashboard.tr.yml | 8 ++ .../manager/statistics/articles.en.yml | 13 ++++ .../manager/statistics/articles.tr.yml} | 5 -- .../manager/statistics/employees.en.yml | 6 ++ .../manager/statistics/employees.tr.yml | 6 ++ .../manager/statistics/students.en.yml | 21 +++++ .../manager/statistics/students.tr.yml | 22 ++++++ config/locales/defaults/en.yml | 2 + config/locales/defaults/tr.yml | 2 + config/locales/models/studies/en.yml | 17 ---- config/routes/manager.rb | 5 +- 23 files changed, 199 insertions(+), 91 deletions(-) create mode 100644 app/views/manager/statistics/employees/academic.html.erb create mode 100644 config/locales/controllers/manager/dashboard.en.yml create mode 100644 config/locales/controllers/manager/dashboard.tr.yml create mode 100644 config/locales/controllers/manager/statistics/articles.en.yml rename config/locales/{models/studies/tr.yml => controllers/manager/statistics/articles.tr.yml} (80%) create mode 100644 config/locales/controllers/manager/statistics/employees.en.yml create mode 100644 config/locales/controllers/manager/statistics/employees.tr.yml create mode 100644 config/locales/controllers/manager/statistics/students.en.yml create mode 100644 config/locales/controllers/manager/statistics/students.tr.yml delete mode 100644 config/locales/models/studies/en.yml diff --git a/app/controllers/manager/statistics/employees_controller.rb b/app/controllers/manager/statistics/employees_controller.rb index 0b41fa879..143adb24f 100644 --- a/app/controllers/manager/statistics/employees_controller.rb +++ b/app/controllers/manager/statistics/employees_controller.rb @@ -6,6 +6,10 @@ class EmployeesController < ApplicationController layout false def index; end + + def academic + @series = Employee.active.academic.group('titles.name').count + end end end end diff --git a/app/views/layouts/components/_content_loader_panel.html.erb b/app/views/layouts/components/_content_loader_panel.html.erb index 06f3a55d0..c3bbadeec 100644 --- a/app/views/layouts/components/_content_loader_panel.html.erb +++ b/app/views/layouts/components/_content_loader_panel.html.erb @@ -9,12 +9,15 @@

<%= header %>

-
+
<% if refresh.auto %> @@ -29,7 +32,7 @@ data-unchecked="✕" data-toggle="tooltip" data-placement="bottom" - title="Active/Passive Auto Refresh"> + title="<%= t('toggle_auto_refresh') %>">
<% end %> diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/index.html.erb index 1c403650a..c68efdedc 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/index.html.erb @@ -1,46 +1,53 @@
-
-
-
-
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
-

Öğrenci

-
- Detaylı Bilgi +
+
<%= fa_icon 'graduation-cap' %>
+
+
+
<%= Xokul::Ubs::Statistic::Student.by_genders.sum { |item| item[:number_of_students] } %>
+
<%= t('.student') %>
+
+
-
-
-
-
-
<%= Employee.active.distinct(:user_id).count %>
-

Personel

-
- Detaylı Bilgi +
+
<%= fa_icon 'users' %>
+
+
+
<%= Employee.active.distinct(:user_id).count %>
+
<%= t('.employee') %>
+
+
-
-
-
-
-
<%= Article.count %>
-

Akademik Yayınlar

-
- Detaylı Bilgi +
+
<%= fa_icon 'book' %>
+
+
+
<%= Article.count %>
+
<%= t('.academic_publishing') %>
+
+
@@ -49,8 +56,14 @@
<%= content_loader_tag(manager_students_path) %>
+
<%= render 'layouts/components/loading' %>
+ + +
+ +
diff --git a/app/views/manager/statistics/employees/academic.html.erb b/app/views/manager/statistics/employees/academic.html.erb new file mode 100644 index 000000000..9aad28dbb --- /dev/null +++ b/app/views/manager/statistics/employees/academic.html.erb @@ -0,0 +1 @@ +<%= column_chart @series, title: t('.title'), adapter: :highcharts %> diff --git a/app/views/manager/statistics/employees/index.html.erb b/app/views/manager/statistics/employees/index.html.erb index 51b751c24..da0873df7 100644 --- a/app/views/manager/statistics/employees/index.html.erb +++ b/app/views/manager/statistics/employees/index.html.erb @@ -1,12 +1,5 @@
-
-
- <%= 'Akademik Personel Sayıları' %> -
-
- <%= column_chart Employee.active.academic.group('titles.name').count, adapter: :highcharts %> -
-
+ <%= content_loader_panel_tag(manager_employees_academic_path, refresh: { auto: true }) %>
diff --git a/app/views/manager/statistics/students/cities.html.erb b/app/views/manager/statistics/students/cities.html.erb index 6125eeeaf..a72de1273 100644 --- a/app/views/manager/statistics/students/cities.html.erb +++ b/app/views/manager/statistics/students/cities.html.erb @@ -7,7 +7,7 @@ height: 800 }, title: { - text: 'Şehirlere Göre Öğrenci Sayıları' + text: "<%= t('.title') %>" }, mapNavigation: { enabled: true, @@ -35,9 +35,10 @@ pointFormat: ` {point.name}
- Erkek: {point.male}
- Kadın: {point.female}
- Toplam: {point.value}
+
+ <%= t('.male') %>: {point.male}
+ <%= t('.female') %>: {point.female}
+ <%= t('.total') %>: {point.value}
`, } }] diff --git a/app/views/manager/statistics/students/double_major_and_minor.html.erb b/app/views/manager/statistics/students/double_major_and_minor.html.erb index e343858cf..0dbe413ad 100644 --- a/app/views/manager/statistics/students/double_major_and_minor.html.erb +++ b/app/views/manager/statistics/students/double_major_and_minor.html.erb @@ -8,7 +8,9 @@ plotShadow: false, type: 'pie' }, - title: { text: 'Çift Anadal Yandal Sayıları' }, + title: { + text: "<%= t('.title') %>" + }, tooltip: { pointFormat: '{series.name}: {series.y} {point.percentage:.1f}%' }, @@ -24,7 +26,7 @@ } }, series: [{ - name: 'Öğrenci Sayısı', + name: "<%= t('.rate') %>", colorByPoint: true, data: <%= sanitize(@series) %> }] diff --git a/app/views/manager/statistics/students/genders.html.erb b/app/views/manager/statistics/students/genders.html.erb index fde222d67..850b03ffc 100644 --- a/app/views/manager/statistics/students/genders.html.erb +++ b/app/views/manager/statistics/students/genders.html.erb @@ -2,13 +2,18 @@ diff --git a/config/locales/controllers/manager/dashboard.en.yml b/config/locales/controllers/manager/dashboard.en.yml new file mode 100644 index 000000000..2824d4d5f --- /dev/null +++ b/config/locales/controllers/manager/dashboard.en.yml @@ -0,0 +1,8 @@ +en: + manager: + dashboard: + index: + more_information: More Information + academic_publishing: Academic Publishing + employee: Employee + student: Student diff --git a/config/locales/controllers/manager/dashboard.tr.yml b/config/locales/controllers/manager/dashboard.tr.yml new file mode 100644 index 000000000..e727f4d68 --- /dev/null +++ b/config/locales/controllers/manager/dashboard.tr.yml @@ -0,0 +1,8 @@ +tr: + manager: + dashboard: + index: + academic_publishing: Akademik Yayın + employee: Personel + more_information: Detaylı Bilgi + student: Öğrenci diff --git a/config/locales/controllers/manager/statistics/articles.en.yml b/config/locales/controllers/manager/statistics/articles.en.yml new file mode 100644 index 000000000..0eb9adc42 --- /dev/null +++ b/config/locales/controllers/manager/statistics/articles.en.yml @@ -0,0 +1,13 @@ +en: + manager: + statistics: + articles: + index: + article: Article + number_of_articles_by_years: Number of Articles by Years + publications_by_index_types: Publications by Index Types + publications_by_language: Publications by Publication Language + publications_by_number_of_authors: Publications by Number of Authors + publications_by_publication_types: Publications by Publication Types + recently_added: Recently Added Articles + top_publishers: Top Publishing Academics diff --git a/config/locales/models/studies/tr.yml b/config/locales/controllers/manager/statistics/articles.tr.yml similarity index 80% rename from config/locales/models/studies/tr.yml rename to config/locales/controllers/manager/statistics/articles.tr.yml index ec38c6c83..bc87b0760 100644 --- a/config/locales/models/studies/tr.yml +++ b/config/locales/controllers/manager/statistics/articles.tr.yml @@ -11,8 +11,3 @@ tr: publications_by_publication_types: Yayın Türüne Göre Makaleler recently_added: En Son Eklenen Makaleler top_publishers: En Çok Makalesi Olanlar - dashboard: - index: - articles: Makaleler - certifications: Sertifikalar - projects: Projeler diff --git a/config/locales/controllers/manager/statistics/employees.en.yml b/config/locales/controllers/manager/statistics/employees.en.yml new file mode 100644 index 000000000..15df3b677 --- /dev/null +++ b/config/locales/controllers/manager/statistics/employees.en.yml @@ -0,0 +1,6 @@ +en: + manager: + statistics: + employees: + academic: + title: Number of Academic Employee diff --git a/config/locales/controllers/manager/statistics/employees.tr.yml b/config/locales/controllers/manager/statistics/employees.tr.yml new file mode 100644 index 000000000..9c65885e4 --- /dev/null +++ b/config/locales/controllers/manager/statistics/employees.tr.yml @@ -0,0 +1,6 @@ +tr: + manager: + statistics: + employees: + academic: + title: Akademik Personel Sayıları diff --git a/config/locales/controllers/manager/statistics/students.en.yml b/config/locales/controllers/manager/statistics/students.en.yml new file mode 100644 index 000000000..450d93f62 --- /dev/null +++ b/config/locales/controllers/manager/statistics/students.en.yml @@ -0,0 +1,21 @@ +en: + manager: + statistics: + students: + cities: + female: Female + male: Male + title: Number of Students by Cities + total: Total + double_major_and_minor: + rate: Rate + title: Number of Students Studying in Double Major and Minor Programs + genders: + rate: Oran + title: Number of Student by Genders + genders_and_degrees: + title: Number of Students by Academic Degree and Gender + total_number_of_students: Total Number of Students + non_graduates: + total_number_of_students: Total Number of Students + title: Number of Students Nongraduate on Time by Academic Degree diff --git a/config/locales/controllers/manager/statistics/students.tr.yml b/config/locales/controllers/manager/statistics/students.tr.yml new file mode 100644 index 000000000..a865d8903 --- /dev/null +++ b/config/locales/controllers/manager/statistics/students.tr.yml @@ -0,0 +1,22 @@ +tr: + manager: + statistics: + students: + cities: + female: Kadın + male: Erkek + title: Şehirlere Göre Öğrenci Sayıları + total: Toplam + double_major_and_minor: + rate: Oran + title: Çift Anadal ve Yandal Programlarında Öğrenim Gören Öğrenci Sayısı + genders: + rate: Oran + title: Cinsiyetlerine Göre Öğrenci Sayıları + genders_and_degrees: + title: Öğrenim Düzeylerine ve Cinsiyetlerine Göre Öğrenci Sayıları + total_number_of_students: Toplam Öğrenci Sayısı + non_graduates: + total_number_of_students: Total Number of Students + title: Öğrenim Düzeylerine Göre Zamanında Mezun Olamayan Öğrenci Sayıları + diff --git a/config/locales/defaults/en.yml b/config/locales/defaults/en.yml index 6a3f8b8f7..19abc7479 100644 --- a/config/locales/defaults/en.yml +++ b/config/locales/defaults/en.yml @@ -11,6 +11,7 @@ en: actions: Actions active: Active are_you_sure: Are you sure? + toggle_auto_refresh: Toggle Automatic Refresh created_at: Created At detailed_search: Detailed Search home_nav: Home @@ -18,6 +19,7 @@ en: loading: Loading... Please wait. passive: Passive preview: Preview + refresh: Refresh reset: Reset save: Save search: Search diff --git a/config/locales/defaults/tr.yml b/config/locales/defaults/tr.yml index de4ae4384..e811ecc1f 100644 --- a/config/locales/defaults/tr.yml +++ b/config/locales/defaults/tr.yml @@ -11,6 +11,7 @@ tr: actions: İşlemler active: Aktif are_you_sure: Emin misiniz? + toggle_auto_refresh: Otomatik Yenilemeyi Aç / Kapat created_at: Oluşturulma Tarihi detailed_search: Detaylı Arama home_nav: Anasayfa @@ -18,6 +19,7 @@ tr: loading: Yükleniyor... Lütfen bekleyiniz. passive: Pasif preview: Ön İzleme + refresh: Yenile reset: Sıfırla save: Kaydet search: Arama Yap diff --git a/config/locales/models/studies/en.yml b/config/locales/models/studies/en.yml deleted file mode 100644 index 7b2b0a473..000000000 --- a/config/locales/models/studies/en.yml +++ /dev/null @@ -1,17 +0,0 @@ -en: - manager: - articles: - index: - article: Article - number_of_articles_by_years: Number of Articles by Years - publications_by_index_types: Publications by Index Types - publications_by_language: Publications by Publication Language - publications_by_number_of_authors: Publications by Number of Authors - publications_by_publication_types: Publications by Publication Types - recently_added: Recently Added Articles - top_publishers: Top Publishing Academics - dashboard: - index: - articles: Articles - certifications: Certifications - projects: Projects diff --git a/config/routes/manager.rb b/config/routes/manager.rb index 506643a67..ccc66eb03 100644 --- a/config/routes/manager.rb +++ b/config/routes/manager.rb @@ -5,7 +5,10 @@ scope module: :statistics do get 'articles', to: 'articles#index' - get 'employees', to: 'employees#index' + namespace :employees do + get '/', action: :index + get :academic + end namespace :students do get '/', action: :index get :cities From 87f770e0d5f07cd394fa5b80bc7e98b3525ab750 Mon Sep 17 00:00:00 2001 From: isubas Date: Wed, 22 Jan 2020 16:38:41 +0300 Subject: [PATCH 026/100] =?UTF-8?q?Gereksiz=20dosyalar=C4=B1=20kald=C4=B1r?= =?UTF-8?q?=20ve=20ufak=20d=C3=BCzeltmeler=20yap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/dashboard_controller.rb | 2 +- .../studies/certifications_controller.rb | 7 ---- .../studies/dashboard_controller.rb | 7 ---- .../studies/projects_controller.rb | 7 ---- app/views/layouts/shared/_sidebar.html.erb | 17 +++++--- .../{index.html.erb => statistics.html.erb} | 5 --- .../statistics/students/cities.html.erb | 2 +- .../students/genders_and_degrees.html.erb | 40 ++++++++++--------- .../statistics/students/index.html.erb | 6 +-- .../students/non_graduates.html.erb | 2 +- .../studies/certifications/index.html.erb | 0 app/views/studies/dashboard/index.html.erb | 19 --------- app/views/studies/projects/index.html.erb | 0 .../controllers/manager/dashboard.en.yml | 2 +- .../controllers/manager/dashboard.tr.yml | 2 +- config/locales/layouts/shared/sidebar_en.yml | 8 ++-- config/locales/layouts/shared/sidebar_tr.yml | 6 ++- config/routes.rb | 7 ---- config/routes/manager.rb | 2 +- 19 files changed, 52 insertions(+), 89 deletions(-) delete mode 100644 app/controllers/studies/certifications_controller.rb delete mode 100644 app/controllers/studies/dashboard_controller.rb delete mode 100644 app/controllers/studies/projects_controller.rb rename app/views/manager/dashboard/{index.html.erb => statistics.html.erb} (98%) delete mode 100644 app/views/studies/certifications/index.html.erb delete mode 100644 app/views/studies/dashboard/index.html.erb delete mode 100644 app/views/studies/projects/index.html.erb diff --git a/app/controllers/manager/dashboard_controller.rb b/app/controllers/manager/dashboard_controller.rb index 5b3187bd8..7d5792967 100644 --- a/app/controllers/manager/dashboard_controller.rb +++ b/app/controllers/manager/dashboard_controller.rb @@ -2,6 +2,6 @@ module Manager class DashboardController < ApplicationController - def index; end + def statistics; end end end diff --git a/app/controllers/studies/certifications_controller.rb b/app/controllers/studies/certifications_controller.rb deleted file mode 100644 index 9202c5a68..000000000 --- a/app/controllers/studies/certifications_controller.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -module Studies - class CertificationsController < ApplicationController - def index; end - end -end diff --git a/app/controllers/studies/dashboard_controller.rb b/app/controllers/studies/dashboard_controller.rb deleted file mode 100644 index 485d39463..000000000 --- a/app/controllers/studies/dashboard_controller.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -module Studies - class DashboardController < ApplicationController - def index; end - end -end diff --git a/app/controllers/studies/projects_controller.rb b/app/controllers/studies/projects_controller.rb deleted file mode 100644 index 6574c700d..000000000 --- a/app/controllers/studies/projects_controller.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -module Studies - class ProjectsController < ApplicationController - def index; end - end -end diff --git a/app/views/layouts/shared/_sidebar.html.erb b/app/views/layouts/shared/_sidebar.html.erb index dcf179e41..1bc65d491 100644 --- a/app/views/layouts/shared/_sidebar.html.erb +++ b/app/views/layouts/shared/_sidebar.html.erb @@ -6,11 +6,6 @@ <%= fa_icon('home', class: 'nav-icon') %> <%= t('home_nav') %> <% end %> - + diff --git a/app/views/manager/dashboard/index.html.erb b/app/views/manager/dashboard/statistics.html.erb similarity index 98% rename from app/views/manager/dashboard/index.html.erb rename to app/views/manager/dashboard/statistics.html.erb index c68efdedc..c1ba77a32 100644 --- a/app/views/manager/dashboard/index.html.erb +++ b/app/views/manager/dashboard/statistics.html.erb @@ -62,8 +62,3 @@ <%= render 'layouts/components/loading' %>
- - -
- -
diff --git a/app/views/manager/statistics/students/cities.html.erb b/app/views/manager/statistics/students/cities.html.erb index a72de1273..cd29658d8 100644 --- a/app/views/manager/statistics/students/cities.html.erb +++ b/app/views/manager/statistics/students/cities.html.erb @@ -4,7 +4,7 @@ Highcharts.mapChart('chart-for-maps', { chart: { map: 'countries/tr/tr-all', - height: 800 + height: 600 }, title: { text: "<%= t('.title') %>" diff --git a/app/views/manager/statistics/students/genders_and_degrees.html.erb b/app/views/manager/statistics/students/genders_and_degrees.html.erb index 128c78cd5..cd67dc208 100644 --- a/app/views/manager/statistics/students/genders_and_degrees.html.erb +++ b/app/views/manager/statistics/students/genders_and_degrees.html.erb @@ -2,26 +2,30 @@ diff --git a/app/views/manager/statistics/students/index.html.erb b/app/views/manager/statistics/students/index.html.erb index 0c9465681..7c7fcd576 100644 --- a/app/views/manager/statistics/students/index.html.erb +++ b/app/views/manager/statistics/students/index.html.erb @@ -2,6 +2,9 @@ <%= javascript_include_tag 'highcharts-langs/tr' if I18n.locale == :tr %>
+
+ <%= content_loader_panel_tag(manager_students_cities_path, refresh: { auto: true }) %> +
<%= content_loader_panel_tag(manager_students_genders_path, refresh: { auto: true }) %>
@@ -14,7 +17,4 @@
<%= content_loader_panel_tag(manager_students_non_graduates_path, refresh: { auto: true }) %>
-
- <%= content_loader_panel_tag(manager_students_cities_path, refresh: { auto: true }) %> -
diff --git a/app/views/manager/statistics/students/non_graduates.html.erb b/app/views/manager/statistics/students/non_graduates.html.erb index 7a359c959..30b512e69 100644 --- a/app/views/manager/statistics/students/non_graduates.html.erb +++ b/app/views/manager/statistics/students/non_graduates.html.erb @@ -22,7 +22,7 @@ }, plotOptions: { column: { - stacking: 'normal' + stacking: 'percent' } }, series: <%= sanitize(@series) %> diff --git a/app/views/studies/certifications/index.html.erb b/app/views/studies/certifications/index.html.erb deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/views/studies/dashboard/index.html.erb b/app/views/studies/dashboard/index.html.erb deleted file mode 100644 index 128744b50..000000000 --- a/app/views/studies/dashboard/index.html.erb +++ /dev/null @@ -1,19 +0,0 @@ -
-
-
-
- -
-
-
-
diff --git a/app/views/studies/projects/index.html.erb b/app/views/studies/projects/index.html.erb deleted file mode 100644 index e69de29bb..000000000 diff --git a/config/locales/controllers/manager/dashboard.en.yml b/config/locales/controllers/manager/dashboard.en.yml index 2824d4d5f..010d72d3e 100644 --- a/config/locales/controllers/manager/dashboard.en.yml +++ b/config/locales/controllers/manager/dashboard.en.yml @@ -1,7 +1,7 @@ en: manager: dashboard: - index: + statistics: more_information: More Information academic_publishing: Academic Publishing employee: Employee diff --git a/config/locales/controllers/manager/dashboard.tr.yml b/config/locales/controllers/manager/dashboard.tr.yml index e727f4d68..788b694ac 100644 --- a/config/locales/controllers/manager/dashboard.tr.yml +++ b/config/locales/controllers/manager/dashboard.tr.yml @@ -1,7 +1,7 @@ tr: manager: dashboard: - index: + statistics: academic_publishing: Akademik Yayın employee: Personel more_information: Detaylı Bilgi diff --git a/config/locales/layouts/shared/sidebar_en.yml b/config/locales/layouts/shared/sidebar_en.yml index 2b3e9c9e2..0fdadf5b6 100644 --- a/config/locales/layouts/shared/sidebar_en.yml +++ b/config/locales/layouts/shared/sidebar_en.yml @@ -12,21 +12,23 @@ en: calendars: Calendars committee_units: Committee Units committees: Committees - courses: Courses + course_enrollments: Course Enrolments course_groups: Course Unit Group course_management: Course Management - course_enrollments: Course Enrolments course_unit_groups: Course Unit Group + courses: Courses curriculums: Curriculums first_registration: First Registration high_school_types: High School Types ldap_sync: Ldap Sync + manager: + statistics: University Statistics + title: Manager Pages meksis: MEKSIS prospective_employees: Prospective Employees prospective_students: Prospective Students references: References registration_documents: Registration Documents - studies: Academic Studies units: Units users: Users yoksis: YOKSIS diff --git a/config/locales/layouts/shared/sidebar_tr.yml b/config/locales/layouts/shared/sidebar_tr.yml index 579474763..91dd0d892 100644 --- a/config/locales/layouts/shared/sidebar_tr.yml +++ b/config/locales/layouts/shared/sidebar_tr.yml @@ -12,21 +12,23 @@ tr: calendars: Takvimler committee_units: Kurul ve Komisyonlar committees: Kurullar/Komisyonlar + course_enrollments: Ders Kayıtları course_groups: Ders Grupları course_management: Ders İşlemleri - course_enrollments: Ders Kayıtları course_unit_groups: Ders Grupları courses: Dersler curriculums: Müfredatlar first_registration: İlk Kayıt high_school_types: Lise Türleri ldap_sync: Ldap Sync + manager: + title: Yönetici Sayfaları + statistics: Üniversite İstatistikleri meksis: MEKSİS prospective_employees: Aday Personeller prospective_students: Aday Öğrenciler references: Tanımlar registration_documents: İstenen Belgeler - studies: Akademik Çalışmalar units: Birimler users: Kullanıcılar yoksis: YÖKSİS diff --git a/config/routes.rb b/config/routes.rb index 023a2115b..999448985 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -38,13 +38,6 @@ get 'save_identity_from_mernis', on: :member end - scope module: :studies do - get '/studies', to: 'dashboard#index' - get '/studies/articles', to: 'articles#index' - get '/studies/projects', to: 'projects#index' - get '/studies/certifications', to: 'certifications#index' - end - resources :agenda_types, except: :show, module: :committee resources :committees, only: :index, controller: 'committee/dashboard' do diff --git a/config/routes/manager.rb b/config/routes/manager.rb index ccc66eb03..3521ce453 100644 --- a/config/routes/manager.rb +++ b/config/routes/manager.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true namespace :manager do - get '/', to: 'dashboard#index' + get :statistics, to: 'dashboard#statistics' scope module: :statistics do get 'articles', to: 'articles#index' From 6596550b4355ad9d688246891a76eef1fb56cfdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 13:21:48 +0300 Subject: [PATCH 027/100] Add a simple client for Detsis endpoints --- app/services/xokul/detsis.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 app/services/xokul/detsis.rb diff --git a/app/services/xokul/detsis.rb b/app/services/xokul/detsis.rb new file mode 100644 index 000000000..be0cc5710 --- /dev/null +++ b/app/services/xokul/detsis.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +module Xokul + module Detsis + module_function + + def sdp_code_references + Connection.request '/detsis/sdp_code_references' + end + end +end From ef1a5425a1215871be926ccc620b6bbeb66d8fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 13:22:36 +0300 Subject: [PATCH 028/100] Add a general-purpose rake task to fetch sdp code references from Detsis --- lib/tasks/fetch/sdp_code_references.rake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lib/tasks/fetch/sdp_code_references.rake diff --git a/lib/tasks/fetch/sdp_code_references.rake b/lib/tasks/fetch/sdp_code_references.rake new file mode 100644 index 000000000..a8b396b22 --- /dev/null +++ b/lib/tasks/fetch/sdp_code_references.rake @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +namespace :fetch do + desc 'Fetch SDP code references from Detsis' + task sdp_code_references: :environment do + sdp_codes = Xokul::Detsis.sdp_code_references + progress_bar = ProgressBar.spawn 'Detsis - SDP code references', sdp_codes.size + + sdp_codes.each do |code| + SdpCode.create(**code) + progress_bar&.increment + end + end +end From bc455d6c1744b6b511335c74e4301b13f93ca8f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 13:43:26 +0300 Subject: [PATCH 029/100] Add model for sdp codes --- app/models/sdp_code.rb | 16 ++++++ db/migrate/20200122124332_create_sdp_codes.rb | 13 +++++ db/structure.sql | 55 ++++++++++++++++++- test/fixtures/sdp_codes.yml | 15 +++++ test/models/sdp_code_test.rb | 9 +++ 5 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 app/models/sdp_code.rb create mode 100644 db/migrate/20200122124332_create_sdp_codes.rb create mode 100644 test/fixtures/sdp_codes.yml create mode 100644 test/models/sdp_code_test.rb diff --git a/app/models/sdp_code.rb b/app/models/sdp_code.rb new file mode 100644 index 000000000..2358e10e0 --- /dev/null +++ b/app/models/sdp_code.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class SdpCode < ApplicationRecord + include PgSearch::Model + + pg_search_scope( + :search, against: %i[main first second third name], using: { tsearch: { prefix: true } } + ) + + # rubocop:disable Style/FormatStringToken + def to_s + tmpl = '%03
d.%02d.%02d.%02d' + format(tmpl, main: main, first: first, second: second, third: third) + end + # rubocop:enable Style/FormatStringToken +end diff --git a/db/migrate/20200122124332_create_sdp_codes.rb b/db/migrate/20200122124332_create_sdp_codes.rb new file mode 100644 index 000000000..3ed9877da --- /dev/null +++ b/db/migrate/20200122124332_create_sdp_codes.rb @@ -0,0 +1,13 @@ +class CreateSdpCodes < ActiveRecord::Migration[6.0] + def change + create_table :sdp_codes do |t| + t.integer :main + t.integer :first + t.integer :second + t.integer :third + t.string :name + + t.timestamps + end + end +end diff --git a/db/structure.sql b/db/structure.sql index c3461ba29..c2283f551 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11,7 +11,7 @@ SET row_security = off; SET default_tablespace = ''; -SET default_with_oids = false; +SET default_table_access_method = heap; -- -- Name: academic_credentials; Type: TABLE; Schema: public; Owner: - @@ -2855,6 +2855,41 @@ CREATE SEQUENCE public.scope_assignments_id_seq ALTER SEQUENCE public.scope_assignments_id_seq OWNED BY public.scope_assignments.id; +-- +-- Name: sdp_codes; Type: TABLE; Schema: public; Owner: - +-- + +CREATE TABLE public.sdp_codes ( + id bigint NOT NULL, + main integer, + first integer, + second integer, + third integer, + name character varying, + created_at timestamp(6) without time zone NOT NULL, + updated_at timestamp(6) without time zone NOT NULL +); + + +-- +-- Name: sdp_codes_id_seq; Type: SEQUENCE; Schema: public; Owner: - +-- + +CREATE SEQUENCE public.sdp_codes_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +-- +-- Name: sdp_codes_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - +-- + +ALTER SEQUENCE public.sdp_codes_id_seq OWNED BY public.sdp_codes.id; + + -- -- Name: semester_registrations; Type: TABLE; Schema: public; Owner: - -- @@ -4077,6 +4112,13 @@ ALTER TABLE ONLY public.roles ALTER COLUMN id SET DEFAULT nextval('public.roles_ ALTER TABLE ONLY public.scope_assignments ALTER COLUMN id SET DEFAULT nextval('public.scope_assignments_id_seq'::regclass); +-- +-- Name: sdp_codes id; Type: DEFAULT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.sdp_codes ALTER COLUMN id SET DEFAULT nextval('public.sdp_codes_id_seq'::regclass); + + -- -- Name: semester_registrations id; Type: DEFAULT; Schema: public; Owner: - -- @@ -4881,6 +4923,14 @@ ALTER TABLE ONLY public.scope_assignments ADD CONSTRAINT scope_assignments_pkey PRIMARY KEY (id); +-- +-- Name: sdp_codes sdp_codes_pkey; Type: CONSTRAINT; Schema: public; Owner: - +-- + +ALTER TABLE ONLY public.sdp_codes + ADD CONSTRAINT sdp_codes_pkey PRIMARY KEY (id); + + -- -- Name: semester_registrations semester_registrations_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- @@ -6983,6 +7033,7 @@ INSERT INTO "schema_migrations" (version) VALUES ('20191127055945'), ('20191226074849'), ('20200102083531'), -('20200102083736'); +('20200102083736'), +('20200122124332'); diff --git a/test/fixtures/sdp_codes.yml b/test/fixtures/sdp_codes.yml new file mode 100644 index 000000000..b5701c4af --- /dev/null +++ b/test/fixtures/sdp_codes.yml @@ -0,0 +1,15 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + main: 1 + first: 1 + second: 1 + third: 1 + name: MyString + +two: + main: 1 + first: 1 + second: 1 + third: 1 + name: MyString diff --git a/test/models/sdp_code_test.rb b/test/models/sdp_code_test.rb new file mode 100644 index 000000000..90c10d41b --- /dev/null +++ b/test/models/sdp_code_test.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +require 'test_helper' + +class SdpCodeTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end From 1a00db0bab223b483d6717645b87935a4e418cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:12:01 +0300 Subject: [PATCH 030/100] Add dashboard controller for Detsis --- app/controllers/detsis/dashboard_controller.rb | 7 +++++++ test/controllers/detsis/dashboard_controller_test.rb | 11 +++++++++++ 2 files changed, 18 insertions(+) create mode 100644 app/controllers/detsis/dashboard_controller.rb create mode 100644 test/controllers/detsis/dashboard_controller_test.rb diff --git a/app/controllers/detsis/dashboard_controller.rb b/app/controllers/detsis/dashboard_controller.rb new file mode 100644 index 000000000..b379ca022 --- /dev/null +++ b/app/controllers/detsis/dashboard_controller.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module Detsis + class DashboardController < ApplicationController + def index; end + end +end diff --git a/test/controllers/detsis/dashboard_controller_test.rb b/test/controllers/detsis/dashboard_controller_test.rb new file mode 100644 index 000000000..3a73be009 --- /dev/null +++ b/test/controllers/detsis/dashboard_controller_test.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +require 'test_helper' + +module Detsis + class DashboardControllerTest < ActionDispatch::IntegrationTest + # test "the truth" do + # assert true + # end + end +end From abbd1036eb97a3c5d02efecc505f534177552d44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:12:39 +0300 Subject: [PATCH 031/100] Add language support to the dashboard of Detsis --- config/locales/controllers/detsis/dashboard.en.yml | 7 +++++++ config/locales/controllers/detsis/dashboard.tr.yml | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 config/locales/controllers/detsis/dashboard.en.yml create mode 100644 config/locales/controllers/detsis/dashboard.tr.yml diff --git a/config/locales/controllers/detsis/dashboard.en.yml b/config/locales/controllers/detsis/dashboard.en.yml new file mode 100644 index 000000000..f0fd8d6ed --- /dev/null +++ b/config/locales/controllers/detsis/dashboard.en.yml @@ -0,0 +1,7 @@ +en: + detsis: + dashboard: + index: + card_header: DETSIS References + card: + sdp_codes: SDP Codes diff --git a/config/locales/controllers/detsis/dashboard.tr.yml b/config/locales/controllers/detsis/dashboard.tr.yml new file mode 100644 index 000000000..74a9100f4 --- /dev/null +++ b/config/locales/controllers/detsis/dashboard.tr.yml @@ -0,0 +1,7 @@ +tr: + detsis: + dashboard: + index: + card_header: DETSİS Referansları + card: + sdp_codes: SDP Kodları From 630b2d3aff47e0c3d6841c6a39f7b37431019a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:13:24 +0300 Subject: [PATCH 032/100] Add views for Detsis dashboard --- app/views/detsis/dashboard/_card.html.erb | 4 ++++ app/views/detsis/dashboard/index.html.erb | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 app/views/detsis/dashboard/_card.html.erb create mode 100644 app/views/detsis/dashboard/index.html.erb diff --git a/app/views/detsis/dashboard/_card.html.erb b/app/views/detsis/dashboard/_card.html.erb new file mode 100644 index 000000000..ea4246081 --- /dev/null +++ b/app/views/detsis/dashboard/_card.html.erb @@ -0,0 +1,4 @@ +<%= link_to path, class: 'list-group-item d-flex list-group-item-action justify-content-between align-items-center' do %> + <%= t(title) %> + <%= count %> +<% end %> diff --git a/app/views/detsis/dashboard/index.html.erb b/app/views/detsis/dashboard/index.html.erb new file mode 100644 index 000000000..617b15e0d --- /dev/null +++ b/app/views/detsis/dashboard/index.html.erb @@ -0,0 +1,17 @@ +
+
+
+
+ <%= t('.card_header') %> +
+
+
+ <%= render 'card', + count: SdpCode.all.count, + path: detsis_sdp_codes_path, + title: '.sdp_codes' %> +
+
+
+
+
From 0e3d59930d52fc3bf1d61bd08fb9f96c345843b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:13:53 +0300 Subject: [PATCH 033/100] Add dynamic search support to SdpCode --- app/models/sdp_code.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/sdp_code.rb b/app/models/sdp_code.rb index 2358e10e0..6d8ab7854 100644 --- a/app/models/sdp_code.rb +++ b/app/models/sdp_code.rb @@ -2,11 +2,14 @@ class SdpCode < ApplicationRecord include PgSearch::Model + include DynamicSearch pg_search_scope( :search, against: %i[main first second third name], using: { tsearch: { prefix: true } } ) + search_keys :main, :first, :second, :third, :name + # rubocop:disable Style/FormatStringToken def to_s tmpl = '%03
d.%02d.%02d.%02d' From 0b7d37361e9d36698a1b2d820c578281d9e7ba11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:14:15 +0300 Subject: [PATCH 034/100] Add controller for sdp codes --- app/controllers/detsis/sdp_codes_controller.rb | 12 ++++++++++++ test/controllers/detsis/sdp_codes_controller_test.rb | 11 +++++++++++ 2 files changed, 23 insertions(+) create mode 100644 app/controllers/detsis/sdp_codes_controller.rb create mode 100644 test/controllers/detsis/sdp_codes_controller_test.rb diff --git a/app/controllers/detsis/sdp_codes_controller.rb b/app/controllers/detsis/sdp_codes_controller.rb new file mode 100644 index 000000000..011cbab02 --- /dev/null +++ b/app/controllers/detsis/sdp_codes_controller.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module Detsis + class SdpCodesController < ApplicationController + include SearchableModule + + def index + sdp_codes = SdpCode.order(:main).dynamic_search(search_params(SdpCode)) + @pagy, @paginated = pagy(sdp_codes) + end + end +end diff --git a/test/controllers/detsis/sdp_codes_controller_test.rb b/test/controllers/detsis/sdp_codes_controller_test.rb new file mode 100644 index 000000000..89f08e9c1 --- /dev/null +++ b/test/controllers/detsis/sdp_codes_controller_test.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +require 'test_helper' + +module Detsis + class SdpCodesControllerTest < ActionDispatch::IntegrationTest + # test "the truth" do + # assert true + # end + end +end From 53a68f397bd18a28770e021aa9e19e59435a6eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:14:30 +0300 Subject: [PATCH 035/100] Add views for sdp codes --- app/views/detsis/sdp_codes/_search.html.erb | 45 +++++++++++++++++++++ app/views/detsis/sdp_codes/index.html.erb | 41 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 app/views/detsis/sdp_codes/_search.html.erb create mode 100644 app/views/detsis/sdp_codes/index.html.erb diff --git a/app/views/detsis/sdp_codes/_search.html.erb b/app/views/detsis/sdp_codes/_search.html.erb new file mode 100644 index 000000000..e1d1adaa6 --- /dev/null +++ b/app/views/detsis/sdp_codes/_search.html.erb @@ -0,0 +1,45 @@ +
+
+ +
+
+ <%= form_tag detsis_sdp_codes_path, method: :get do %> +
+
+
+ <%= label_tag :term, t('smart_search') %> + <%= text_field_tag :term, + params[:term], + placeholder: t('.smart_search_placeholder'), + class: 'form-control' %> +
+
+
+
+
+ <%= submit_tag t('search'), class: 'btn btn-primary' %> +
+
+ <% end %> +
+
+
+
diff --git a/app/views/detsis/sdp_codes/index.html.erb b/app/views/detsis/sdp_codes/index.html.erb new file mode 100644 index 000000000..8a690d760 --- /dev/null +++ b/app/views/detsis/sdp_codes/index.html.erb @@ -0,0 +1,41 @@ +
+
+
+
+ <%= fa_icon 'align-justify', text: t('.card_header') %> +
+
+ <%= render 'search' %> + + + + + + + + + + + + + <% @paginated.each do |sdp_code| %> + + + + + + + + + <% end %> + +
<%= t('.name') %><%= t('.main') %><%= t('.first') %><%= t('.second') %><%= t('.third') %><%= t('.full') %>
<%= sdp_code.name %><%= sdp_code.main %><%= sdp_code.first %><%= sdp_code.second %><%= sdp_code.third %><%= sdp_code %>
+
+
+ +
+
From f5d1328bcb97006ab1c6489d02c6a57fcb63662e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:14:47 +0300 Subject: [PATCH 036/100] Add language support to sdp codes --- config/locales/controllers/detsis/sdp_codes.en.yml | 13 +++++++++++++ config/locales/controllers/detsis/sdp_codes.tr.yml | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 config/locales/controllers/detsis/sdp_codes.en.yml create mode 100644 config/locales/controllers/detsis/sdp_codes.tr.yml diff --git a/config/locales/controllers/detsis/sdp_codes.en.yml b/config/locales/controllers/detsis/sdp_codes.en.yml new file mode 100644 index 000000000..9923a326a --- /dev/null +++ b/config/locales/controllers/detsis/sdp_codes.en.yml @@ -0,0 +1,13 @@ +en: + detsis: + sdp_codes: + index: + card_header: SDP Codes + name: Name + main: Main Code + first: First code + second: Second code + third: Third code + full: Full code + search: + smart_search_placeholder: Search diff --git a/config/locales/controllers/detsis/sdp_codes.tr.yml b/config/locales/controllers/detsis/sdp_codes.tr.yml new file mode 100644 index 000000000..868d825d4 --- /dev/null +++ b/config/locales/controllers/detsis/sdp_codes.tr.yml @@ -0,0 +1,13 @@ +tr: + detsis: + sdp_codes: + index: + card_header: SDP Kodları + name: Adı + main: Ana kod + first: Birinci kod + second: İkinci kod + third: Üçüncü kod + full: Tam kod + search: + smart_search_placeholder: Ara From 10d6f62f255d2c36363cbd85141dc94a5495867f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:15:43 +0300 Subject: [PATCH 037/100] Set up Detsis routes after the latest changes --- config/routes.rb | 1 + config/routes/detsis.rb | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 config/routes/detsis.rb diff --git a/config/routes.rb b/config/routes.rb index 7b0e1381f..d1b9b50e7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -22,6 +22,7 @@ draw :studentship draw :yoksis draw :meksis + draw :detsis resources :units do member do diff --git a/config/routes/detsis.rb b/config/routes/detsis.rb new file mode 100644 index 000000000..a11c2484a --- /dev/null +++ b/config/routes/detsis.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +namespace :detsis do + get '/', to: 'dashboard#index' + + resources :sdp_codes, only: %i[index] +end From 99d1e27ce96ed717147b12c4d459d29449b37e19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Thu, 23 Jan 2020 15:23:46 +0300 Subject: [PATCH 038/100] Add Detsis definition to the sidebar --- app/views/layouts/shared/_sidebar.html.erb | 5 +++++ config/locales/layouts/shared/sidebar_en.yml | 1 + config/locales/layouts/shared/sidebar_tr.yml | 1 + 3 files changed, 7 insertions(+) diff --git a/app/views/layouts/shared/_sidebar.html.erb b/app/views/layouts/shared/_sidebar.html.erb index dcf179e41..36df5fbd3 100644 --- a/app/views/layouts/shared/_sidebar.html.erb +++ b/app/views/layouts/shared/_sidebar.html.erb @@ -143,6 +143,11 @@ <%= fa_icon('th', text: t('.meksis'), class: 'nav-icon') %> <% end %> + diff --git a/config/locales/layouts/shared/meta_en.yml b/config/locales/layouts/shared/meta.en.yml similarity index 100% rename from config/locales/layouts/shared/meta_en.yml rename to config/locales/layouts/shared/meta.en.yml diff --git a/config/locales/layouts/shared/meta_tr.yml b/config/locales/layouts/shared/meta.tr.yml similarity index 100% rename from config/locales/layouts/shared/meta_tr.yml rename to config/locales/layouts/shared/meta.tr.yml diff --git a/config/locales/layouts/shared/sidebar_en.yml b/config/locales/layouts/shared/sidebar.en.yml similarity index 97% rename from config/locales/layouts/shared/sidebar_en.yml rename to config/locales/layouts/shared/sidebar.en.yml index 0fdadf5b6..f297471b4 100644 --- a/config/locales/layouts/shared/sidebar_en.yml +++ b/config/locales/layouts/shared/sidebar.en.yml @@ -20,7 +20,7 @@ en: curriculums: Curriculums first_registration: First Registration high_school_types: High School Types - ldap_sync: Ldap Sync + ldap: LDAP manager: statistics: University Statistics title: Manager Pages diff --git a/config/locales/layouts/shared/sidebar_tr.yml b/config/locales/layouts/shared/sidebar.tr.yml similarity index 97% rename from config/locales/layouts/shared/sidebar_tr.yml rename to config/locales/layouts/shared/sidebar.tr.yml index 91dd0d892..632888bbb 100644 --- a/config/locales/layouts/shared/sidebar_tr.yml +++ b/config/locales/layouts/shared/sidebar.tr.yml @@ -20,7 +20,7 @@ tr: curriculums: Müfredatlar first_registration: İlk Kayıt high_school_types: Lise Türleri - ldap_sync: Ldap Sync + ldap: LDAP manager: title: Yönetici Sayfaları statistics: Üniversite İstatistikleri From eb1ae0c527cf1e6beb60a02aaf743597a072e9d5 Mon Sep 17 00:00:00 2001 From: Huseyin Tekinaslan Date: Sat, 25 Jan 2020 22:39:50 +0300 Subject: [PATCH 062/100] Update app/views/detsis/dashboard/index.html.erb Co-Authored-By: M. Serhat Dundar --- app/views/detsis/dashboard/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/detsis/dashboard/index.html.erb b/app/views/detsis/dashboard/index.html.erb index 617b15e0d..1f49327f2 100644 --- a/app/views/detsis/dashboard/index.html.erb +++ b/app/views/detsis/dashboard/index.html.erb @@ -7,7 +7,7 @@
<%= render 'card', - count: SdpCode.all.count, + count: SdpCode.count, path: detsis_sdp_codes_path, title: '.sdp_codes' %>
From cf896cf7bd6704c94215a6a557aebd033550e247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0rfan=20Suba=C5=9F?= Date: Sun, 26 Jan 2020 10:02:09 +0300 Subject: [PATCH 063/100] Update config/locales/layouts/shared/sidebar.en.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Recai Oktaş --- config/locales/layouts/shared/sidebar.en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/layouts/shared/sidebar.en.yml b/config/locales/layouts/shared/sidebar.en.yml index f297471b4..b7637e299 100644 --- a/config/locales/layouts/shared/sidebar.en.yml +++ b/config/locales/layouts/shared/sidebar.en.yml @@ -12,7 +12,7 @@ en: calendars: Calendars committee_units: Committee Units committees: Committees - course_enrollments: Course Enrolments + course_enrollments: Course Enrollments course_groups: Course Unit Group course_management: Course Management course_unit_groups: Course Unit Group From 6f9b3b732f252a884cbf5ba8d2dd6193ad8c8be5 Mon Sep 17 00:00:00 2001 From: isubas Date: Sun, 26 Jan 2020 10:16:32 +0300 Subject: [PATCH 064/100] =?UTF-8?q?Statistics=20mod=C3=BCl=20ismini=20stat?= =?UTF-8?q?s=20olarak=20de=C4=9Fi=C5=9Ftir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/manager/dashboard_controller.rb | 2 +- .../manager/{statistics => stats}/articles_controller.rb | 2 +- .../manager/{statistics => stats}/employees_controller.rb | 2 +- .../manager/{statistics => stats}/students_controller.rb | 2 +- app/views/layouts/shared/_sidebar.html.erb | 4 ++-- .../manager/dashboard/{statistics.html.erb => stats.html.erb} | 0 .../manager/{statistics => stats}/articles/index.html.erb | 0 .../manager/{statistics => stats}/employees/academic.html.erb | 0 .../manager/{statistics => stats}/employees/index.html.erb | 0 .../manager/{statistics => stats}/students/cities.html.erb | 0 .../students/double_major_and_minor.html.erb | 0 .../manager/{statistics => stats}/students/genders.html.erb | 0 .../students/genders_and_degrees.html.erb | 0 .../manager/{statistics => stats}/students/index.html.erb | 0 .../{statistics => stats}/students/non_graduates.html.erb | 0 config/locales/controllers/manager/dashboard.en.yml | 2 +- config/locales/controllers/manager/dashboard.tr.yml | 2 +- .../controllers/manager/{statistics => stats}/articles.en.yml | 2 +- .../controllers/manager/{statistics => stats}/articles.tr.yml | 2 +- .../manager/{statistics => stats}/employees.en.yml | 2 +- .../manager/{statistics => stats}/employees.tr.yml | 2 +- .../controllers/manager/{statistics => stats}/students.en.yml | 2 +- .../controllers/manager/{statistics => stats}/students.tr.yml | 2 +- config/locales/layouts/shared/sidebar.en.yml | 2 +- config/locales/layouts/shared/sidebar.tr.yml | 2 +- config/routes/manager.rb | 4 ++-- 26 files changed, 18 insertions(+), 18 deletions(-) rename app/controllers/manager/{statistics => stats}/articles_controller.rb (88%) rename app/controllers/manager/{statistics => stats}/employees_controller.rb (92%) rename app/controllers/manager/{statistics => stats}/students_controller.rb (98%) rename app/views/manager/dashboard/{statistics.html.erb => stats.html.erb} (100%) rename app/views/manager/{statistics => stats}/articles/index.html.erb (100%) rename app/views/manager/{statistics => stats}/employees/academic.html.erb (100%) rename app/views/manager/{statistics => stats}/employees/index.html.erb (100%) rename app/views/manager/{statistics => stats}/students/cities.html.erb (100%) rename app/views/manager/{statistics => stats}/students/double_major_and_minor.html.erb (100%) rename app/views/manager/{statistics => stats}/students/genders.html.erb (100%) rename app/views/manager/{statistics => stats}/students/genders_and_degrees.html.erb (100%) rename app/views/manager/{statistics => stats}/students/index.html.erb (100%) rename app/views/manager/{statistics => stats}/students/non_graduates.html.erb (100%) rename config/locales/controllers/manager/{statistics => stats}/articles.en.yml (97%) rename config/locales/controllers/manager/{statistics => stats}/articles.tr.yml (97%) rename config/locales/controllers/manager/{statistics => stats}/employees.en.yml (85%) rename config/locales/controllers/manager/{statistics => stats}/employees.tr.yml (85%) rename config/locales/controllers/manager/{statistics => stats}/students.en.yml (97%) rename config/locales/controllers/manager/{statistics => stats}/students.tr.yml (97%) diff --git a/app/controllers/manager/dashboard_controller.rb b/app/controllers/manager/dashboard_controller.rb index 7d5792967..21210a6c4 100644 --- a/app/controllers/manager/dashboard_controller.rb +++ b/app/controllers/manager/dashboard_controller.rb @@ -2,6 +2,6 @@ module Manager class DashboardController < ApplicationController - def statistics; end + def stats; end end end diff --git a/app/controllers/manager/statistics/articles_controller.rb b/app/controllers/manager/stats/articles_controller.rb similarity index 88% rename from app/controllers/manager/statistics/articles_controller.rb rename to app/controllers/manager/stats/articles_controller.rb index 865a85b1d..d016d46af 100644 --- a/app/controllers/manager/statistics/articles_controller.rb +++ b/app/controllers/manager/stats/articles_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Manager - module Statistics + module Stats class ArticlesController < ApplicationController layout false diff --git a/app/controllers/manager/statistics/employees_controller.rb b/app/controllers/manager/stats/employees_controller.rb similarity index 92% rename from app/controllers/manager/statistics/employees_controller.rb rename to app/controllers/manager/stats/employees_controller.rb index 143adb24f..704e9ae4c 100644 --- a/app/controllers/manager/statistics/employees_controller.rb +++ b/app/controllers/manager/stats/employees_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Manager - module Statistics + module Stats class EmployeesController < ApplicationController layout false diff --git a/app/controllers/manager/statistics/students_controller.rb b/app/controllers/manager/stats/students_controller.rb similarity index 98% rename from app/controllers/manager/statistics/students_controller.rb rename to app/controllers/manager/stats/students_controller.rb index 732ad6f73..01b21859a 100644 --- a/app/controllers/manager/statistics/students_controller.rb +++ b/app/controllers/manager/stats/students_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module Manager - module Statistics + module Stats class StudentsController < ApplicationController layout false diff --git a/app/views/layouts/shared/_sidebar.html.erb b/app/views/layouts/shared/_sidebar.html.erb index 7419576c4..c2dd35c10 100644 --- a/app/views/layouts/shared/_sidebar.html.erb +++ b/app/views/layouts/shared/_sidebar.html.erb @@ -151,8 +151,8 @@ diff --git a/app/views/manager/dashboard/statistics.html.erb b/app/views/manager/dashboard/stats.html.erb similarity index 100% rename from app/views/manager/dashboard/statistics.html.erb rename to app/views/manager/dashboard/stats.html.erb diff --git a/app/views/manager/statistics/articles/index.html.erb b/app/views/manager/stats/articles/index.html.erb similarity index 100% rename from app/views/manager/statistics/articles/index.html.erb rename to app/views/manager/stats/articles/index.html.erb diff --git a/app/views/manager/statistics/employees/academic.html.erb b/app/views/manager/stats/employees/academic.html.erb similarity index 100% rename from app/views/manager/statistics/employees/academic.html.erb rename to app/views/manager/stats/employees/academic.html.erb diff --git a/app/views/manager/statistics/employees/index.html.erb b/app/views/manager/stats/employees/index.html.erb similarity index 100% rename from app/views/manager/statistics/employees/index.html.erb rename to app/views/manager/stats/employees/index.html.erb diff --git a/app/views/manager/statistics/students/cities.html.erb b/app/views/manager/stats/students/cities.html.erb similarity index 100% rename from app/views/manager/statistics/students/cities.html.erb rename to app/views/manager/stats/students/cities.html.erb diff --git a/app/views/manager/statistics/students/double_major_and_minor.html.erb b/app/views/manager/stats/students/double_major_and_minor.html.erb similarity index 100% rename from app/views/manager/statistics/students/double_major_and_minor.html.erb rename to app/views/manager/stats/students/double_major_and_minor.html.erb diff --git a/app/views/manager/statistics/students/genders.html.erb b/app/views/manager/stats/students/genders.html.erb similarity index 100% rename from app/views/manager/statistics/students/genders.html.erb rename to app/views/manager/stats/students/genders.html.erb diff --git a/app/views/manager/statistics/students/genders_and_degrees.html.erb b/app/views/manager/stats/students/genders_and_degrees.html.erb similarity index 100% rename from app/views/manager/statistics/students/genders_and_degrees.html.erb rename to app/views/manager/stats/students/genders_and_degrees.html.erb diff --git a/app/views/manager/statistics/students/index.html.erb b/app/views/manager/stats/students/index.html.erb similarity index 100% rename from app/views/manager/statistics/students/index.html.erb rename to app/views/manager/stats/students/index.html.erb diff --git a/app/views/manager/statistics/students/non_graduates.html.erb b/app/views/manager/stats/students/non_graduates.html.erb similarity index 100% rename from app/views/manager/statistics/students/non_graduates.html.erb rename to app/views/manager/stats/students/non_graduates.html.erb diff --git a/config/locales/controllers/manager/dashboard.en.yml b/config/locales/controllers/manager/dashboard.en.yml index 010d72d3e..e66cd3f27 100644 --- a/config/locales/controllers/manager/dashboard.en.yml +++ b/config/locales/controllers/manager/dashboard.en.yml @@ -1,7 +1,7 @@ en: manager: dashboard: - statistics: + stats: more_information: More Information academic_publishing: Academic Publishing employee: Employee diff --git a/config/locales/controllers/manager/dashboard.tr.yml b/config/locales/controllers/manager/dashboard.tr.yml index 788b694ac..7ab407162 100644 --- a/config/locales/controllers/manager/dashboard.tr.yml +++ b/config/locales/controllers/manager/dashboard.tr.yml @@ -1,7 +1,7 @@ tr: manager: dashboard: - statistics: + stats: academic_publishing: Akademik Yayın employee: Personel more_information: Detaylı Bilgi diff --git a/config/locales/controllers/manager/statistics/articles.en.yml b/config/locales/controllers/manager/stats/articles.en.yml similarity index 97% rename from config/locales/controllers/manager/statistics/articles.en.yml rename to config/locales/controllers/manager/stats/articles.en.yml index 0eb9adc42..79039428b 100644 --- a/config/locales/controllers/manager/statistics/articles.en.yml +++ b/config/locales/controllers/manager/stats/articles.en.yml @@ -1,6 +1,6 @@ en: manager: - statistics: + stats: articles: index: article: Article diff --git a/config/locales/controllers/manager/statistics/articles.tr.yml b/config/locales/controllers/manager/stats/articles.tr.yml similarity index 97% rename from config/locales/controllers/manager/statistics/articles.tr.yml rename to config/locales/controllers/manager/stats/articles.tr.yml index bc87b0760..05cfb02ee 100644 --- a/config/locales/controllers/manager/statistics/articles.tr.yml +++ b/config/locales/controllers/manager/stats/articles.tr.yml @@ -1,6 +1,6 @@ tr: manager: - statistics: + stats: articles: index: article: Makale diff --git a/config/locales/controllers/manager/statistics/employees.en.yml b/config/locales/controllers/manager/stats/employees.en.yml similarity index 85% rename from config/locales/controllers/manager/statistics/employees.en.yml rename to config/locales/controllers/manager/stats/employees.en.yml index 15df3b677..6f8d98e65 100644 --- a/config/locales/controllers/manager/statistics/employees.en.yml +++ b/config/locales/controllers/manager/stats/employees.en.yml @@ -1,6 +1,6 @@ en: manager: - statistics: + stats: employees: academic: title: Number of Academic Employee diff --git a/config/locales/controllers/manager/statistics/employees.tr.yml b/config/locales/controllers/manager/stats/employees.tr.yml similarity index 85% rename from config/locales/controllers/manager/statistics/employees.tr.yml rename to config/locales/controllers/manager/stats/employees.tr.yml index 9c65885e4..a3c8df8e0 100644 --- a/config/locales/controllers/manager/statistics/employees.tr.yml +++ b/config/locales/controllers/manager/stats/employees.tr.yml @@ -1,6 +1,6 @@ tr: manager: - statistics: + stats: employees: academic: title: Akademik Personel Sayıları diff --git a/config/locales/controllers/manager/statistics/students.en.yml b/config/locales/controllers/manager/stats/students.en.yml similarity index 97% rename from config/locales/controllers/manager/statistics/students.en.yml rename to config/locales/controllers/manager/stats/students.en.yml index 450d93f62..b167af08e 100644 --- a/config/locales/controllers/manager/statistics/students.en.yml +++ b/config/locales/controllers/manager/stats/students.en.yml @@ -1,6 +1,6 @@ en: manager: - statistics: + stats: students: cities: female: Female diff --git a/config/locales/controllers/manager/statistics/students.tr.yml b/config/locales/controllers/manager/stats/students.tr.yml similarity index 97% rename from config/locales/controllers/manager/statistics/students.tr.yml rename to config/locales/controllers/manager/stats/students.tr.yml index a865d8903..4ade12bc3 100644 --- a/config/locales/controllers/manager/statistics/students.tr.yml +++ b/config/locales/controllers/manager/stats/students.tr.yml @@ -1,6 +1,6 @@ tr: manager: - statistics: + stats: students: cities: female: Kadın diff --git a/config/locales/layouts/shared/sidebar.en.yml b/config/locales/layouts/shared/sidebar.en.yml index b7637e299..9880ef373 100644 --- a/config/locales/layouts/shared/sidebar.en.yml +++ b/config/locales/layouts/shared/sidebar.en.yml @@ -22,7 +22,7 @@ en: high_school_types: High School Types ldap: LDAP manager: - statistics: University Statistics + stats: University Stats title: Manager Pages meksis: MEKSIS prospective_employees: Prospective Employees diff --git a/config/locales/layouts/shared/sidebar.tr.yml b/config/locales/layouts/shared/sidebar.tr.yml index 632888bbb..b7112d4db 100644 --- a/config/locales/layouts/shared/sidebar.tr.yml +++ b/config/locales/layouts/shared/sidebar.tr.yml @@ -22,8 +22,8 @@ tr: high_school_types: Lise Türleri ldap: LDAP manager: + stats: Üniversite İstatistikleri title: Yönetici Sayfaları - statistics: Üniversite İstatistikleri meksis: MEKSİS prospective_employees: Aday Personeller prospective_students: Aday Öğrenciler diff --git a/config/routes/manager.rb b/config/routes/manager.rb index 3521ce453..d3a41b1fa 100644 --- a/config/routes/manager.rb +++ b/config/routes/manager.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true namespace :manager do - get :statistics, to: 'dashboard#statistics' + get :stats, to: 'dashboard#stats' - scope module: :statistics do + scope module: :stats do get 'articles', to: 'articles#index' namespace :employees do get '/', action: :index From b3dafc42ac358084032b102ff64d8a25e240b9e9 Mon Sep 17 00:00:00 2001 From: isubas Date: Sun, 26 Jan 2020 11:21:49 +0300 Subject: [PATCH 065/100] Fixes codacy issues --- .codacy.yml | 6 ++++++ app/javascript/controllers/content_loader_controller.js | 2 +- app/javascript/controllers/fetch_content.js | 2 +- app/javascript/controllers/manager_dashboard_controller.js | 2 +- babel.config.js | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.codacy.yml b/.codacy.yml index c51b7ff70..6aea04e74 100644 --- a/.codacy.yml +++ b/.codacy.yml @@ -1,3 +1,9 @@ --- +engines: + eslint: + exclude_paths: + - app/assets/javascripts/highcharts-maps/tr.js + - plugins/tenant/omu/test/dummy/app/assets/javascripts/* + - plugins/tenant/acme/test/dummy/app/assets/javascripts/* exclude_paths: - '**.md' diff --git a/app/javascript/controllers/content_loader_controller.js b/app/javascript/controllers/content_loader_controller.js index e36056a6f..f9b2264b4 100644 --- a/app/javascript/controllers/content_loader_controller.js +++ b/app/javascript/controllers/content_loader_controller.js @@ -1,5 +1,5 @@ import { Controller } from 'stimulus' -import { fetchContent } from './fetch_content' +import fetchContent from './fetch_content' export default class extends Controller { static targets = ['content', 'loadingMessage', 'autoRefresh'] diff --git a/app/javascript/controllers/fetch_content.js b/app/javascript/controllers/fetch_content.js index 1c2a876eb..7c729e127 100644 --- a/app/javascript/controllers/fetch_content.js +++ b/app/javascript/controllers/fetch_content.js @@ -1,5 +1,5 @@ /* eslint-disable no-undef */ -export function fetchContent ({ url, targetElement, loadingElement }) { +export default function ({ url, targetElement, loadingElement }) { const ERROR_MESSAGE = `

diff --git a/app/javascript/controllers/manager_dashboard_controller.js b/app/javascript/controllers/manager_dashboard_controller.js index 68cc31611..59fb6eaa5 100644 --- a/app/javascript/controllers/manager_dashboard_controller.js +++ b/app/javascript/controllers/manager_dashboard_controller.js @@ -1,6 +1,6 @@ /* eslint-disable no-undef */ import { Controller } from 'stimulus' -import { fetchContent } from './fetch_content' +import fetchContent from './fetch_content' export default class extends Controller { static targets = ['content', 'loadingMessage'] diff --git a/babel.config.js b/babel.config.js index f930f3e0a..306ab99f6 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,4 +1,4 @@ -module.exports = function(api) { +module.exports = function (api) { var validEnv = ['development', 'test', 'production'] var currentEnv = api.env() var isDevelopmentEnv = api.env('development') From 9a093dfa6b0e2453f5fc8bf24433133f52044c3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0rfan=20Suba=C5=9F?= Date: Sun, 26 Jan 2020 11:22:24 +0300 Subject: [PATCH 066/100] Update config/locales/controllers/manager/stats/articles.tr.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Begüm Topyıldız --- config/locales/controllers/manager/stats/articles.tr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/controllers/manager/stats/articles.tr.yml b/config/locales/controllers/manager/stats/articles.tr.yml index 05cfb02ee..1097d6b2a 100644 --- a/config/locales/controllers/manager/stats/articles.tr.yml +++ b/config/locales/controllers/manager/stats/articles.tr.yml @@ -6,7 +6,7 @@ tr: article: Makale number_of_articles_by_years: Yıllara Göre Makale Sayısı publications_by_index_types: Index Türüne Göre Makaleler - publications_by_language: Yayın Dili Göre Makaleler + publications_by_language: Yayın Diline Göre Makaleler publications_by_number_of_authors: Yazar Sayısına Göre Makaleler publications_by_publication_types: Yayın Türüne Göre Makaleler recently_added: En Son Eklenen Makaleler From 6030e39393b386f0cc88f4607e78df76bb0390f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0rfan=20Suba=C5=9F?= Date: Sun, 26 Jan 2020 11:22:34 +0300 Subject: [PATCH 067/100] Update config/locales/controllers/manager/stats/students.en.yml Co-Authored-By: Huseyin Tekinaslan --- config/locales/controllers/manager/stats/students.en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/controllers/manager/stats/students.en.yml b/config/locales/controllers/manager/stats/students.en.yml index b167af08e..6122ae7a7 100644 --- a/config/locales/controllers/manager/stats/students.en.yml +++ b/config/locales/controllers/manager/stats/students.en.yml @@ -18,4 +18,4 @@ en: total_number_of_students: Total Number of Students non_graduates: total_number_of_students: Total Number of Students - title: Number of Students Nongraduate on Time by Academic Degree + title: Number of Students Not Graduate on Time by Academic Degree From 73dd57ea28eec715705780a3ee6537feb3577637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0rfan=20Suba=C5=9F?= Date: Sun, 26 Jan 2020 11:22:43 +0300 Subject: [PATCH 068/100] Update config/locales/controllers/manager/stats/students.en.yml Co-Authored-By: Huseyin Tekinaslan --- config/locales/controllers/manager/stats/students.en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/controllers/manager/stats/students.en.yml b/config/locales/controllers/manager/stats/students.en.yml index 6122ae7a7..d489c2f5b 100644 --- a/config/locales/controllers/manager/stats/students.en.yml +++ b/config/locales/controllers/manager/stats/students.en.yml @@ -11,7 +11,7 @@ en: rate: Rate title: Number of Students Studying in Double Major and Minor Programs genders: - rate: Oran + rate: Rate title: Number of Student by Genders genders_and_degrees: title: Number of Students by Academic Degree and Gender From 7b3938b0f858ea39cdc34a6a198714ce8eff4eb7 Mon Sep 17 00:00:00 2001 From: dilara Date: Sun, 26 Jan 2020 13:07:05 +0300 Subject: [PATCH 069/100] Fix tests and fixtures --- .../course_enrollments_controller_test.rb | 5 +++- test/fixtures/available_course_groups.yml | 8 +++++++ test/fixtures/available_course_lecturers.yml | 24 +++++++++++++++++++ test/fixtures/course_enrollments.yml | 14 +++++++---- test/fixtures/semester_registrations.yml | 4 +++- test/models/available_course_test.rb | 4 ++-- .../student_course_enrollment_service_test.rb | 2 +- 7 files changed, 51 insertions(+), 10 deletions(-) diff --git a/test/controllers/studentship/course_enrollments_controller_test.rb b/test/controllers/studentship/course_enrollments_controller_test.rb index 2ad98c64a..b50acdbd5 100644 --- a/test/controllers/studentship/course_enrollments_controller_test.rb +++ b/test/controllers/studentship/course_enrollments_controller_test.rb @@ -22,7 +22,10 @@ class CourseEnrollmentsControllerTest < ActionDispatch::IntegrationTest test 'should create course_enrollment' do assert_difference('CourseEnrollment.count') do post student_course_enrollments_path(@student), params: { - course_enrollment: { available_course_id: available_courses(:compulsory_course_2).id } + course_enrollment: { + available_course_id: available_courses(:compulsory_course_2).id, + available_course_group_id: available_course_groups(:compulsory_course_2_group).id + } } end diff --git a/test/fixtures/available_course_groups.yml b/test/fixtures/available_course_groups.yml index be9cf0a97..e6a9f4d87 100644 --- a/test/fixtures/available_course_groups.yml +++ b/test/fixtures/available_course_groups.yml @@ -10,10 +10,18 @@ course_group_to_delete: available_course: ati_fall_2018_2019 name: Group 3 quota: 100 +old_course_group: + available_course: old_course + name: Group 1 + quota: 1 elective_course_group: available_course: elective_course name: Group 1 quota: 1 +elective_course_group_2: + available_course: elective_course + name: Group 2 + quota: 10 elective_course_2_group: available_course: elective_course_2 name: Group 1 diff --git a/test/fixtures/available_course_lecturers.yml b/test/fixtures/available_course_lecturers.yml index 7c2928fa5..b53ed5758 100644 --- a/test/fixtures/available_course_lecturers.yml +++ b/test/fixtures/available_course_lecturers.yml @@ -6,3 +6,27 @@ ati_group_1_lecturer_serhat: group: ati_group_1 lecturer: serhat_active coordinator: false +elective_course_group_lecturer: + group: elective_course_group + lecturer: serhat_active + coordinator: true +elective_course_group_2_lecturer: + group: elective_course_group_2 + lecturer: serhat_active + coordinator: true +elective_course_2_group_lecturer: + group: elective_course_2_group + lecturer: serhat_active + coordinator: true +elective_course_2_group_lecturer: + group: elective_course_group + lecturer: serhat_active + coordinator: true +compulsory_course_group_lecturer: + group: compulsory_course_group + lecturer: serhat_active + coordinator: true +compulsory_course_2_group_lecturer: + group: compulsory_course_2_group + lecturer: serhat_active + coordinator: true \ No newline at end of file diff --git a/test/fixtures/course_enrollments.yml b/test/fixtures/course_enrollments.yml index 33b460927..99260b5f4 100644 --- a/test/fixtures/course_enrollments.yml +++ b/test/fixtures/course_enrollments.yml @@ -1,19 +1,23 @@ old: semester_registration: serhat_first_semester available_course: test_fall_2018_2019 - status: saved -elective: - semester_registration: serhat_third_semester - available_course: elective_course + available_course_group: ati_group_1 status: saved failed: semester_registration: serhat_first_semester available_course: old_course + available_course_group: old_course_group status: saved +elective: + semester_registration: serhat_third_semester + available_course: elective_course + available_course_group: elective_course_group compulsory: semester_registration: serhat_third_semester available_course: compulsory_course + available_course_group: compulsory_course_group johns_enrollment: semester_registration: john_third_semester - available_course: compulsory_course + available_course: elective_course + available_course_group: elective_course_group status: saved \ No newline at end of file diff --git a/test/fixtures/semester_registrations.yml b/test/fixtures/semester_registrations.yml index 64cfa78b8..5ae969a5d 100644 --- a/test/fixtures/semester_registrations.yml +++ b/test/fixtures/semester_registrations.yml @@ -2,6 +2,7 @@ serhat_first_semester: academic_term: summer_2018_2019 semester: 1 student: serhat + status: saved serhat_third_semester: academic_term: active_term semester: 3 @@ -9,4 +10,5 @@ serhat_third_semester: john_third_semester: academic_term: active_term semester: 3 - student: john \ No newline at end of file + student: john + status: saved \ No newline at end of file diff --git a/test/models/available_course_test.rb b/test/models/available_course_test.rb index 767913032..6ea67ef27 100644 --- a/test/models/available_course_test.rb +++ b/test/models/available_course_test.rb @@ -46,7 +46,7 @@ class AvailableCourseTest < ActiveSupport::TestCase # custom methods test 'quota_full? method' do - assert available_courses(:elective_course).quota_full? - assert_not available_courses(:compulsory_course).quota_full? + assert available_courses(:old_course).quota_full? + assert_not available_courses(:elective_course).quota_full? end end diff --git a/test/services/student_course_enrollment_service_test.rb b/test/services/student_course_enrollment_service_test.rb index 452ad47de..993e1dc99 100644 --- a/test/services/student_course_enrollment_service_test.rb +++ b/test/services/student_course_enrollment_service_test.rb @@ -33,7 +33,7 @@ class StudentCourseEnrollmentServiceTest < ActiveSupport::TestCase test 'enroll method' do available_course = available_courses(:compulsory_course_2) - @service.enroll(available_course_id: available_course.id) + @service.enroll(available_course_id: available_course.id, available_course_group: available_course.groups.first) assert_includes @service.course_enrollments.pluck(:available_course_id), available_course.id end From e4a861f9b4f2b2af67382a644b9a85d59b28cc10 Mon Sep 17 00:00:00 2001 From: dilara Date: Sun, 26 Jan 2020 13:14:07 +0300 Subject: [PATCH 070/100] Add new tests --- test/models/available_course_group_test.rb | 11 +++++++++++ test/models/available_course_test.rb | 6 ++++++ test/models/course_enrollment_test.rb | 1 + 3 files changed, 18 insertions(+) diff --git a/test/models/available_course_group_test.rb b/test/models/available_course_group_test.rb index 5374628d8..061bf4567 100644 --- a/test/models/available_course_group_test.rb +++ b/test/models/available_course_group_test.rb @@ -8,6 +8,7 @@ class AvailableCourseGroupTest < ActiveSupport::TestCase # relations belongs_to :available_course, counter_cache: :groups_count + has_many :course_enrollments, dependent: :destroy has_many :lecturers, class_name: 'AvailableCourseLecturer', foreign_key: :group_id, inverse_of: :group, @@ -24,4 +25,14 @@ class AvailableCourseGroupTest < ActiveSupport::TestCase # validations: nested models validates_presence_of_nested_model :lecturers + + # custom methods + test 'quota_full? method' do + assert available_course_groups(:elective_course_group).quota_full? + assert_not available_course_groups(:elective_course_2_group).quota_full? + end + + test 'coordinator method' do + assert available_course_groups(:ati_group_1).coordinator, employees(:chief_john) + end end diff --git a/test/models/available_course_test.rb b/test/models/available_course_test.rb index 6ea67ef27..3d6fc4047 100644 --- a/test/models/available_course_test.rb +++ b/test/models/available_course_test.rb @@ -49,4 +49,10 @@ class AvailableCourseTest < ActiveSupport::TestCase assert available_courses(:old_course).quota_full? assert_not available_courses(:elective_course).quota_full? end + + test 'enrollable_groups method' do + enrollable_groups = available_courses(:elective_course).enrollable_groups + assert_includes enrollable_groups, available_course_groups(:elective_course_group_2) + assert_not_includes enrollable_groups, available_course_groups(:elective_course_group) + end end diff --git a/test/models/course_enrollment_test.rb b/test/models/course_enrollment_test.rb index 927f3e497..ab53b6a14 100644 --- a/test/models/course_enrollment_test.rb +++ b/test/models/course_enrollment_test.rb @@ -12,6 +12,7 @@ class CourseEnrollmentTest < ActiveSupport::TestCase # relations belongs_to :available_course + belongs_to :available_course_group belongs_to :semester_registration # validations: uniqueness From e2cc6aa6be0f04741bc9b5759928df95dcd582ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beg=C3=BCm=20Topy=C4=B1ld=C4=B1z?= Date: Sun, 26 Jan 2020 13:31:11 +0300 Subject: [PATCH 071/100] Update students.tr.yml --- config/locales/controllers/manager/stats/students.tr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/controllers/manager/stats/students.tr.yml b/config/locales/controllers/manager/stats/students.tr.yml index 4ade12bc3..f23c8c696 100644 --- a/config/locales/controllers/manager/stats/students.tr.yml +++ b/config/locales/controllers/manager/stats/students.tr.yml @@ -17,6 +17,6 @@ tr: title: Öğrenim Düzeylerine ve Cinsiyetlerine Göre Öğrenci Sayıları total_number_of_students: Toplam Öğrenci Sayısı non_graduates: - total_number_of_students: Total Number of Students + total_number_of_students: Toplam Öğrenci Sayısı title: Öğrenim Düzeylerine Göre Zamanında Mezun Olamayan Öğrenci Sayıları From c54da1c7b92f33ee14f1b82e692bc6e6bffc59b3 Mon Sep 17 00:00:00 2001 From: dilara Date: Sun, 26 Jan 2020 14:40:08 +0300 Subject: [PATCH 072/100] Remove coordinator method --- app/models/available_course_group.rb | 4 ---- test/models/available_course_group_test.rb | 4 ---- 2 files changed, 8 deletions(-) diff --git a/app/models/available_course_group.rb b/app/models/available_course_group.rb index 99af18466..fa28ebaf0 100644 --- a/app/models/available_course_group.rb +++ b/app/models/available_course_group.rb @@ -20,8 +20,4 @@ class AvailableCourseGroup < ApplicationRecord def quota_full? quota == course_enrollments.where(status: :saved).length end - - def coordinator - lecturers.coordinator.first.lecturer - end end diff --git a/test/models/available_course_group_test.rb b/test/models/available_course_group_test.rb index 061bf4567..a65b9192e 100644 --- a/test/models/available_course_group_test.rb +++ b/test/models/available_course_group_test.rb @@ -31,8 +31,4 @@ class AvailableCourseGroupTest < ActiveSupport::TestCase assert available_course_groups(:elective_course_group).quota_full? assert_not available_course_groups(:elective_course_2_group).quota_full? end - - test 'coordinator method' do - assert available_course_groups(:ati_group_1).coordinator, employees(:chief_john) - end end From 2cd3f5e2b50a5b57f394de872e9512da2ca7aa28 Mon Sep 17 00:00:00 2001 From: dilara Date: Sun, 26 Jan 2020 14:41:47 +0300 Subject: [PATCH 073/100] Show group name in group selection list --- .../course_enrollments/_available_courses.html.erb | 5 ++--- .../course_enrollments/_course_enrollments.html.erb | 4 ++-- app/views/studentship/course_enrollments/list.html.erb | 4 ++-- .../controllers/studentship/course_enrollments.en.yml | 2 +- .../controllers/studentship/course_enrollments.tr.yml | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/app/views/studentship/course_enrollments/_available_courses.html.erb b/app/views/studentship/course_enrollments/_available_courses.html.erb index e706774e8..cd6310295 100644 --- a/app/views/studentship/course_enrollments/_available_courses.html.erb +++ b/app/views/studentship/course_enrollments/_available_courses.html.erb @@ -11,7 +11,7 @@ <%= t('.type') %> <%= t('.credit') %> <%= t('.ects') %> - <%= t('.lecturer') %> + <%= t('.group') %> <%= t('actions') %> @@ -30,8 +30,7 @@ <%= f.association :available_course_group, collection: available_course.enrollable_groups, include_blank: false, - label: false, - label_method: lambda { |group| full_name(group.coordinator.identities.formal.first) } %> + label: false %> <%= f.button(:submit, t('.add'), class: 'btn btn-outline-success btn-sm') %> <% else %> diff --git a/app/views/studentship/course_enrollments/_course_enrollments.html.erb b/app/views/studentship/course_enrollments/_course_enrollments.html.erb index ef7bc848e..c078df778 100644 --- a/app/views/studentship/course_enrollments/_course_enrollments.html.erb +++ b/app/views/studentship/course_enrollments/_course_enrollments.html.erb @@ -6,7 +6,7 @@ <%= t('.type') %> <%= t('.credit') %> <%= t('.ects') %> - <%= t('.lecturer') %> + <%= t('.group') %> <%= t('actions') %> @@ -19,7 +19,7 @@ <%= enum_t(available_course.curriculum_course, :type) %> <%= available_course.credit.to_i %> <%= available_course.ects.to_i %> - <%= full_name(course_enrollment.available_course_group.coordinator.identities.formal.first) %> + <%= course_enrollment.available_course_group.name %> <% if available_course.errors.empty? %> <%= link_to(t('.drop'), student_course_enrollment_path(@student, course_enrollment), method: :delete, class: 'btn btn-sm btn-outline-danger') %> diff --git a/app/views/studentship/course_enrollments/list.html.erb b/app/views/studentship/course_enrollments/list.html.erb index b5fbb6e70..4ba4a92b0 100644 --- a/app/views/studentship/course_enrollments/list.html.erb +++ b/app/views/studentship/course_enrollments/list.html.erb @@ -29,7 +29,7 @@ <%= t('.sequence') %> <%= t('.credit') %> <%= t('.ects') %> - <%= t('.lecturer') %> + <%= t('.group') %> @@ -43,7 +43,7 @@ <%= available_course.curriculum_course.curriculum_semester.sequence %> <%= available_course.credit.to_i %> <%= available_course.ects.to_i %> - <%= full_name(course_enrollment.available_course_group.coordinator.identities.formal.first) %> + <%= course_enrollment.available_course_group.name %> <% end %> diff --git a/config/locales/controllers/studentship/course_enrollments.en.yml b/config/locales/controllers/studentship/course_enrollments.en.yml index 8e40ff761..069323c7c 100644 --- a/config/locales/controllers/studentship/course_enrollments.en.yml +++ b/config/locales/controllers/studentship/course_enrollments.en.yml @@ -15,7 +15,7 @@ en: code: Code credit: Credit ects: ECTS - lecturer: Lecturer + group: Group name: Name type: Type add: Add diff --git a/config/locales/controllers/studentship/course_enrollments.tr.yml b/config/locales/controllers/studentship/course_enrollments.tr.yml index 823aa13c4..36a15e49f 100644 --- a/config/locales/controllers/studentship/course_enrollments.tr.yml +++ b/config/locales/controllers/studentship/course_enrollments.tr.yml @@ -15,7 +15,7 @@ tr: code: Kodu credit: Kredi ects: AKTS - lecturer: Öğrenim Üyesi + group: Grup name: Adı type: Türü add: Ekle From c3a93b6b24ceea542c7fc28a9983d9ccb3279cc2 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Sun, 26 Jan 2020 19:24:25 +0300 Subject: [PATCH 074/100] Use enum scope --- app/models/available_course.rb | 2 +- app/models/available_course_group.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/available_course.rb b/app/models/available_course.rb index 7a3d76ef5..161a13f42 100644 --- a/app/models/available_course.rb +++ b/app/models/available_course.rb @@ -56,7 +56,7 @@ class AvailableCourse < ApplicationRecord # custom methods def quota_full? - groups.sum(:quota) == course_enrollments.where(status: :saved).length + groups.sum(:quota) == course_enrollments.saved.length end def enrollable_groups diff --git a/app/models/available_course_group.rb b/app/models/available_course_group.rb index fa28ebaf0..5c50650d6 100644 --- a/app/models/available_course_group.rb +++ b/app/models/available_course_group.rb @@ -18,6 +18,6 @@ class AvailableCourseGroup < ApplicationRecord # custom methods def quota_full? - quota == course_enrollments.where(status: :saved).length + quota == course_enrollments.saved.length end end From 8c172ddbdfffc67ec2bf20f2d34b42afb4cb0f55 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Sun, 26 Jan 2020 19:44:59 +0300 Subject: [PATCH 075/100] Add final newline --- test/fixtures/available_course_lecturers.yml | 2 +- test/fixtures/course_enrollments.yml | 2 +- test/fixtures/semester_registrations.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/fixtures/available_course_lecturers.yml b/test/fixtures/available_course_lecturers.yml index b53ed5758..6418876bf 100644 --- a/test/fixtures/available_course_lecturers.yml +++ b/test/fixtures/available_course_lecturers.yml @@ -29,4 +29,4 @@ compulsory_course_group_lecturer: compulsory_course_2_group_lecturer: group: compulsory_course_2_group lecturer: serhat_active - coordinator: true \ No newline at end of file + coordinator: true diff --git a/test/fixtures/course_enrollments.yml b/test/fixtures/course_enrollments.yml index 99260b5f4..2f451c4f6 100644 --- a/test/fixtures/course_enrollments.yml +++ b/test/fixtures/course_enrollments.yml @@ -20,4 +20,4 @@ johns_enrollment: semester_registration: john_third_semester available_course: elective_course available_course_group: elective_course_group - status: saved \ No newline at end of file + status: saved diff --git a/test/fixtures/semester_registrations.yml b/test/fixtures/semester_registrations.yml index 5ae969a5d..8af49cba5 100644 --- a/test/fixtures/semester_registrations.yml +++ b/test/fixtures/semester_registrations.yml @@ -11,4 +11,4 @@ john_third_semester: academic_term: active_term semester: 3 student: john - status: saved \ No newline at end of file + status: saved From db8b378d10023c9b853746313dc314424091a69a Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Sun, 26 Jan 2020 19:52:27 +0300 Subject: [PATCH 076/100] Show error when quota of course group is full --- app/services/student_course_enrollment_service.rb | 2 +- .../locales/controllers/studentship/course_enrollments.en.yml | 3 ++- .../locales/controllers/studentship/course_enrollments.tr.yml | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/services/student_course_enrollment_service.rb b/app/services/student_course_enrollment_service.rb index d4b09cc91..8c7969f62 100644 --- a/app/services/student_course_enrollment_service.rb +++ b/app/services/student_course_enrollment_service.rb @@ -142,7 +142,7 @@ def check_quota(available_course) end def check_group_quota(available_course, available_course_group) - available_course.errors.add(:base, translate('quota_full')) if available_course_group.quota_full? + available_course.errors.add(:base, translate('group_quota_full')) if available_course_group.quota_full? end def check_group(available_course) diff --git a/config/locales/controllers/studentship/course_enrollments.en.yml b/config/locales/controllers/studentship/course_enrollments.en.yml index 069323c7c..d0f2db8d4 100644 --- a/config/locales/controllers/studentship/course_enrollments.en.yml +++ b/config/locales/controllers/studentship/course_enrollments.en.yml @@ -31,10 +31,11 @@ en: errors: already_enrolled_at_group: The maximum amount of ECTS that can be selected from the course group is selected. empty_selected_courses_list: The list of selected courses is empty. - quota_full: The course has reached its quota. + group_quota_full: The course group has reached its quota. must_drop_first: Courses taken from the top semester must be dropped first. not_enough_ects: The amount of ECTS that can be selected is not enough for you to take this course. not_proper_register_event_range: There is no online course registration activity covering the date range today. + quota_full: The course has reached its quota. registration_completed: You can not perform this action since you have completed the course selection. index: course_enrollments: Course Enrollments diff --git a/config/locales/controllers/studentship/course_enrollments.tr.yml b/config/locales/controllers/studentship/course_enrollments.tr.yml index 36a15e49f..b98c94bdc 100644 --- a/config/locales/controllers/studentship/course_enrollments.tr.yml +++ b/config/locales/controllers/studentship/course_enrollments.tr.yml @@ -31,10 +31,11 @@ tr: errors: already_enrolled_at_group: Ders grubundan seçilebilecek maksimum AKTS miktarı kadar ders seçilmiş. empty_selected_courses_list: Seçilen dersler listesi boş. - quota_full: Ders için belirlenen kontenjan dolmuş. + group_quota_full: Ders grubu için belirlenen kontenjan dolmuş. must_drop_first: Öncelikli olarak en üst dönemden alınan dersler çıkarılmalı. not_enough_ects: Seçilebilecek AKTS miktarı bu dersi alabilmeniz için yeterli değil. not_proper_register_event_range: Tarih aralığı bugünü kapsayan çevrimiçi ders kayıtlanma aktivitesi bulunmamaktadır. + quota_full: Ders için belirlenen kontenjan dolmuş. registration_completed: Ders seçimini tamamladığınız için bu işlemi gerçekleştiremezsiniz. index: course_enrollments: Ders Kayıtları From d6c964dfd479303cf3e29c272480328b091c2722 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Sun, 26 Jan 2020 19:58:34 +0300 Subject: [PATCH 077/100] Order enrollable groups by name --- app/models/available_course.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/available_course.rb b/app/models/available_course.rb index 161a13f42..6544b5769 100644 --- a/app/models/available_course.rb +++ b/app/models/available_course.rb @@ -60,7 +60,7 @@ def quota_full? end def enrollable_groups - groups.reject(&:quota_full?) + groups.order(:name).reject(&:quota_full?) end private From 892ce380d20fcc85f7bd4617355c426244327dde Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Sun, 26 Jan 2020 20:01:02 +0300 Subject: [PATCH 078/100] Fix eager loading --- app/services/student_course_enrollment_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/student_course_enrollment_service.rb b/app/services/student_course_enrollment_service.rb index 8c7969f62..b0feeb1d2 100644 --- a/app/services/student_course_enrollment_service.rb +++ b/app/services/student_course_enrollment_service.rb @@ -37,7 +37,7 @@ def course_enrollments @course_enrollments ||= @student.current_registration .course_enrollments - .includes(available_course: [curriculum_course: %i[course curriculum_semester]]) + .includes(:available_course_group, available_course: [curriculum_course: %i[course curriculum_semester]]) end def enroll(course_enrollment_params) From 096f46150abd7aecc8ec55f1b04f9a54d07dfcb7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:29:11 +0000 Subject: [PATCH 079/100] chore(deps): bump perfect-scrollbar from 1.4.0 to 1.5.0 Bumps [perfect-scrollbar](https://github.com/mdbootstrap/perfect-scrollbar) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/mdbootstrap/perfect-scrollbar/releases) - [Changelog](https://github.com/mdbootstrap/perfect-scrollbar/blob/master/CHANGELOG.md) - [Commits](https://github.com/mdbootstrap/perfect-scrollbar/compare/1.4.0...1.5.0) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 072c06ef2..cdf8045bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5933,9 +5933,9 @@ pbkdf2@^3.0.3: sha.js "^2.4.8" perfect-scrollbar@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz#5d014ef9775e1f43058a1dbae9ed1daf0e7091f1" - integrity sha512-/2Sk/khljhdrsamjJYS5NjrH+GKEHEwh7zFSiYyxROyYKagkE4kSn2zDQDRTOMo8mpT2jikxx6yI1dG7lNP/hw== + version "1.5.0" + resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz#821d224ed8ff61990c23f26db63048cdc75b6b83" + integrity sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA== performance-now@^2.1.0: version "2.1.0" From 121f00d7abeb1b63b8ae799de18747166d108395 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:30:43 +0000 Subject: [PATCH 080/100] chore(deps): bump ajv from 6.10.2 to 6.11.0 Bumps [ajv](https://github.com/epoberezkin/ajv) from 6.10.2 to 6.11.0. - [Release notes](https://github.com/epoberezkin/ajv/releases) - [Commits](https://github.com/epoberezkin/ajv/compare/v6.10.2...v6.11.0) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 072c06ef2..1fac7cdde 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1158,17 +1158,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2: - version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: version "6.11.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.11.0.tgz#c3607cbc8ae392d8a5a536f25b21f8e5f3f87fe9" integrity sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA== @@ -3293,11 +3283,6 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - fast-deep-equal@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" From a8a6934d10b4a9136685dbc5159b0e6a3f8bec6d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:31:25 +0000 Subject: [PATCH 081/100] chore(deps): bump core-js-compat from 3.6.0 to 3.6.4 Bumps [core-js-compat](https://github.com/zloirock/core-js) from 3.6.0 to 3.6.4. - [Release notes](https://github.com/zloirock/core-js/releases) - [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md) - [Commits](https://github.com/zloirock/core-js/compare/v3.6.0...v3.6.4) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/yarn.lock b/yarn.lock index 072c06ef2..0027e7489 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1671,14 +1671,14 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.2.tgz#b45720ad5fbc8713b7253c20766f701c9a694289" - integrity sha512-+M4oeaTplPm/f1pXDw84YohEv7B1i/2Aisei8s4s6k3QsoSHa7i5sz8u/cGQkkatCPxMASKxPualR4wwYgVboA== +browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.3: + version "4.8.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.5.tgz#691af4e327ac877b25e7a3f7ee869c4ef36cdea3" + integrity sha512-4LMHuicxkabIB+n9874jZX/az1IaZ5a+EUuvD7KFOu9x/Bd5YHyO0DIz2ls/Kl8g0ItS4X/ilEgf4T1Br0lgSg== dependencies: - caniuse-lite "^1.0.30001015" - electron-to-chromium "^1.3.322" - node-releases "^1.1.42" + caniuse-lite "^1.0.30001022" + electron-to-chromium "^1.3.338" + node-releases "^1.1.46" buffer-from@^1.0.0: version "1.1.1" @@ -1836,11 +1836,16 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001015: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001012: version "1.0.30001016" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001016.tgz#16ea48d7d6e8caf3cad3295c2d746fe38c4e7f66" integrity sha512-yYQ2QfotceRiH4U+h1Us86WJXtVHDmy3nEKIdYPsZCYnOV5/tMgGbmoIlrMzmh2VXlproqYtVaKeGDBkMZifFA== +caniuse-lite@^1.0.30001022: + version "1.0.30001023" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001023.tgz#b82155827f3f5009077bdd2df3d8968bcbcc6fc4" + integrity sha512-C5TDMiYG11EOhVOA62W1p3UsJ2z4DsHtMBQtjzp3ZsUglcQn62WOUgW0y795c7A5uZ+GCEIvzkMatLIlAsbNTA== + case-sensitive-paths-webpack-plugin@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" @@ -2249,11 +2254,11 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.0.tgz#4eb6cb69d03d99159ed7c860cd5fcf7d23a62ea9" - integrity sha512-Z3eCNjGgoYluH89Jt4wVkfYsc/VdLrA2/woX5lm0isO/pCT+P+Y+o65bOuEnjDJLthdwTBxbCVzptTXtc18fJg== + version "3.6.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA== dependencies: - browserslist "^4.8.2" + browserslist "^4.8.3" semver "7.0.0" core-js@^3.1.4, core-js@^3.3.4, core-js@^3.4.0: @@ -2835,10 +2840,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.322: - version "1.3.322" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8" - integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA== +electron-to-chromium@^1.3.338: + version "1.3.340" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.340.tgz#5d4fe78e984d4211194cf5a52e08069543da146f" + integrity sha512-hRFBAglhcj5iVYH+o8QU0+XId1WGoc0VGowJB1cuJAt3exHGrivZvWeAO5BRgBZqwZtwxjm8a5MQeGoT/Su3ww== elliptic@^6.0.0: version "6.5.2" @@ -5366,10 +5371,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.42: - version "1.1.45" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" - integrity sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg== +node-releases@^1.1.46: + version "1.1.47" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.47.tgz#c59ef739a1fd7ecbd9f0b7cf5b7871e8a8b591e4" + integrity sha512-k4xjVPx5FpwBUj0Gw7uvFOTF4Ep8Hok1I6qjwL3pLfwe7Y0REQSAqOwwv9TWBCUtMHxcXfY4PgRLRozcChvTcA== dependencies: semver "^6.3.0" From 0fa14cbf9fc6d6e53bc7a2f38383321ac522987b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:32:29 +0000 Subject: [PATCH 082/100] chore(deps): bump eslint-module-utils from 2.5.0 to 2.5.2 Bumps [eslint-module-utils](https://github.com/benmosher/eslint-plugin-import) from 2.5.0 to 2.5.2. - [Release notes](https://github.com/benmosher/eslint-plugin-import/releases) - [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md) - [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.5.0...utils/v2.5.2) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 072c06ef2..8825f2e87 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2972,9 +2972,9 @@ eslint-import-resolver-node@^0.3.2: resolve "^1.13.1" eslint-module-utils@^2.4.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c" - integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw== + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz#7878f7504824e1b857dd2505b59a8e5eda26a708" + integrity sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q== dependencies: debug "^2.6.9" pkg-dir "^2.0.0" From fbc5e694f217482b044f4921d5e93dd91f7ea0b1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:33:57 +0000 Subject: [PATCH 083/100] chore(deps-dev): bump markdownlint-cli from 0.19.0 to 0.21.0 Bumps [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) from 0.19.0 to 0.21.0. - [Release notes](https://github.com/igorshubovych/markdownlint-cli/releases) - [Commits](https://github.com/igorshubovych/markdownlint-cli/compare/v0.19.0...v0.21.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 41 ++++++++++++++++++++++++----------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index cb5fa912d..54df6b22f 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "eslint-plugin-promise": "^4.0.1", "eslint-plugin-standard": "^4.0.0", "htmlhint": "^0.11.0", - "markdownlint-cli": "^0.19.0", + "markdownlint-cli": "^0.21.0", "webpack-dev-server": "^3.9.0" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 072c06ef2..fd6c76277 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4070,7 +4070,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.1: +ignore@^5.1.1, ignore@~5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== @@ -4598,7 +4598,7 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: +js-yaml@^3.13.1, js-yaml@~3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -4679,6 +4679,11 @@ json5@^2.1.0: dependencies: minimist "^1.2.0" +jsonc-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.0.tgz#f206f87f9d49d644b7502052c04e82dd6392e9ef" + integrity sha512-4fLQxW1j/5fWj6p78vAlAafoCKtuBm6ghv+Ij5W2DrDx0qE+ZdEl2c6Ko1mgJNF5ftX1iEWQQ4Ap7+3GlhjkOA== + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -4963,32 +4968,34 @@ markdown-it@10.0.0: mdurl "^1.0.1" uc.micro "^1.0.5" -markdownlint-cli@^0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.19.0.tgz#70ccd7334d667c94b3259b5dfc1978cf2199a6fd" - integrity sha512-5hUEBAmbCVJflws6841HJ0KTZdgGWYaPThoXPI6Wjn1VkoiYWsprNH0r3PvPmyGXtvbHJ7/7eGPde2a6cx8t0w== +markdownlint-cli@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/markdownlint-cli/-/markdownlint-cli-0.21.0.tgz#d792b157e9de63ce1d6b6e13d7cf83d5e552d5e8" + integrity sha512-gvnczz3W3Wgex851/cIQ/2y8GNhY+EVK8Ael8kRd8hoSQ0ps9xjhtwPwMyJPoiYbAoPxG6vSBFISiysaAbCEZg== dependencies: commander "~2.9.0" deep-extend "~0.5.1" get-stdin "~5.0.1" glob "~7.1.2" - js-yaml "^3.13.1" + ignore "~5.1.4" + js-yaml "~3.13.1" + jsonc-parser "~2.2.0" lodash.differencewith "~4.5.0" lodash.flatten "~4.4.0" - markdownlint "~0.17.1" - markdownlint-rule-helpers "~0.5.0" + markdownlint "~0.18.0" + markdownlint-rule-helpers "~0.6.0" minimatch "~3.0.4" rc "~1.2.7" -markdownlint-rule-helpers@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.5.0.tgz#316569329f2341b8066817292a6733ef56571301" - integrity sha512-6bJAV4TjUoDDnqxfb6EKTuZlpYI6vn4kerid7WTrZaEjsWuYDeYDAN+r4o+vbUYFZfJkiBU7NPBqPd4QJ1CZzQ== +markdownlint-rule-helpers@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.6.0.tgz#3a866a340d394d21d40777b787d3ad84489405c5" + integrity sha512-LiZVAbg9/cqkBHtLNNqHV3xuy4Y2L/KuGU6+ZXqCT9NnCdEkIoxeI5/96t+ExquBY0iHy2CVWxPH16nG1RKQVQ== -markdownlint@~0.17.1: - version "0.17.2" - resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.17.2.tgz#de0ab144fbf314fedadcb8a4ce0db9ea819f91a5" - integrity sha512-vsxopn0qEdm0P2XI3S9sVA+jvjKjR8lHZ+0FKlusth+1UK9tI29mRFkKeZPERmbWsMehJcogfMieBUkMgNEFkQ== +markdownlint@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/markdownlint/-/markdownlint-0.18.0.tgz#906ab9229da4c4be074d0b79de23a69bfa8471d3" + integrity sha512-nQAfK9Pbq0ZRoMC/abNGterEnV3kL8MZmi0WHhw8WJKoIbsm3cXGufGsxzCRvjW15cxe74KWcxRSKqwplS26Bw== dependencies: markdown-it "10.0.0" From da629703a46088128636f04739cbd2efc4d23dd4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:40:59 +0000 Subject: [PATCH 084/100] chore(deps): bump telephone_number from 1.4.5 to 1.4.6 Bumps [telephone_number](https://github.com/mobi/telephone_number) from 1.4.5 to 1.4.6. - [Release notes](https://github.com/mobi/telephone_number/releases) - [Commits](https://github.com/mobi/telephone_number/compare/v1.4.5...v1.4.6) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..e0e0d2a4b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -402,7 +402,7 @@ GEM attr_required (>= 0.0.5) httpclient (>= 2.4) swearjar (1.3.1) - telephone_number (1.4.5) + telephone_number (1.4.6) thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) From 6cc1ae7127ce21aa4c991ae2b8f94432a28ffd80 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:41:38 +0000 Subject: [PATCH 085/100] chore(deps): bump rubyzip from 2.0.0 to 2.1.0 Bumps [rubyzip](https://github.com/rubyzip/rubyzip) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/rubyzip/rubyzip/releases) - [Changelog](https://github.com/rubyzip/rubyzip/blob/master/Changelog.md) - [Commits](https://github.com/rubyzip/rubyzip/compare/v2.0.0...v2.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..921f0389d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -357,7 +357,7 @@ GEM ruby-progressbar (1.10.1) ruby-vips (2.0.17) ffi (~> 1.9) - rubyzip (2.0.0) + rubyzip (2.1.0) safe_yaml (1.0.5) sassc (2.2.1) ffi (~> 1.9) From dbc2d74ff5eb413c229b8c32d900f42aee6b7fc3 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:42:07 +0000 Subject: [PATCH 086/100] chore(deps-dev): bump byebug from 11.1.0 to 11.1.1 Bumps [byebug](https://github.com/deivid-rodriguez/byebug) from 11.1.0 to 11.1.1. - [Release notes](https://github.com/deivid-rodriguez/byebug/releases) - [Changelog](https://github.com/deivid-rodriguez/byebug/blob/master/CHANGELOG.md) - [Commits](https://github.com/deivid-rodriguez/byebug/compare/v11.1.0...v11.1.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..6face6aea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -130,7 +130,7 @@ GEM bundler-audit (0.6.1) bundler (>= 1.2.0, < 3) thor (~> 0.18) - byebug (11.1.0) + byebug (11.1.1) capybara (3.30.0) addressable mini_mime (>= 0.1.3) From d60264503384e27e92b50d6f317d9360b210c19d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:42:47 +0000 Subject: [PATCH 087/100] chore(deps): bump aws-sdk-core from 3.88.0 to 3.89.1 Bumps [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) from 3.88.0 to 3.89.1. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-sdk-core/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..9ef1d2cc3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,8 +94,8 @@ GEM authy (2.7.5) httpclient (>= 2.5.3.3) aws-eventstream (1.0.3) - aws-partitions (1.266.0) - aws-sdk-core (3.88.0) + aws-partitions (1.269.0) + aws-sdk-core (3.89.1) aws-eventstream (~> 1.0, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) From b88257460e266063d53ec2c783b7ea303e94b214 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:43:16 +0000 Subject: [PATCH 088/100] chore(deps-dev): bump rubocop-rails from 2.4.1 to 2.4.2 Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.4.1 to 2.4.2. - [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases) - [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.4.1...v2.4.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..8b1622816 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -281,7 +281,7 @@ GEM pundit (2.1.0) activesupport (>= 3.0.0) pwned (2.0.1) - rack (2.0.8) + rack (2.1.1) rack-attack (6.2.2) rack (>= 1.0, < 3) rack-mini-profiler (1.1.4) @@ -351,7 +351,7 @@ GEM rubocop (>= 0.74) rubocop-performance (1.5.2) rubocop (>= 0.71.0) - rubocop-rails (2.4.1) + rubocop-rails (2.4.2) rack (>= 1.1) rubocop (>= 0.72.0) ruby-progressbar (1.10.1) From cf171aa301e333a56d9bf6254320f85befef19dd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:43:57 +0000 Subject: [PATCH 089/100] chore(deps): bump aws-sdk-kms from 1.27.0 to 1.28.0 Bumps [aws-sdk-kms](https://github.com/aws/aws-sdk-ruby) from 1.27.0 to 1.28.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-sdk-kms/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/compare/1.27.0...1.28.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..a617a2dae 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,13 +94,13 @@ GEM authy (2.7.5) httpclient (>= 2.5.3.3) aws-eventstream (1.0.3) - aws-partitions (1.266.0) - aws-sdk-core (3.88.0) + aws-partitions (1.269.0) + aws-sdk-core (3.89.1) aws-eventstream (~> 1.0, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.27.0) + aws-sdk-kms (1.28.0) aws-sdk-core (~> 3, >= 3.71.0) aws-sigv4 (~> 1.1) aws-sdk-s3 (1.60.1) From f6b2818f9b94acde46feb0fa18999e7d51ba069c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:44:25 +0000 Subject: [PATCH 090/100] chore(deps): bump pg from 1.2.1 to 1.2.2 Bumps [pg](https://github.com/ged/ruby-pg) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.2.1...v1.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..59a422520 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -264,7 +264,7 @@ GEM parallel (1.19.1) parser (2.7.0.2) ast (~> 2.4.0) - pg (1.2.1) + pg (1.2.2) pg_search (2.3.2) activerecord (>= 5.2) activesupport (>= 5.2) From ba9c4cd500fa8f2309a8ea0439241566452d7fef Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:45:03 +0000 Subject: [PATCH 091/100] chore(deps-dev): bump erb_lint from 0.0.30 to 0.0.31 Bumps [erb_lint](https://github.com/Shopify/erb-lint) from 0.0.30 to 0.0.31. - [Release notes](https://github.com/Shopify/erb-lint/releases) - [Commits](https://github.com/Shopify/erb-lint/compare/v0.0.30...v0.0.31) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..9a28a6f29 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -161,12 +161,12 @@ GEM dotenv-rails (2.7.5) dotenv (= 2.7.5) railties (>= 3.2, < 6.1) - erb_lint (0.0.30) + erb_lint (0.0.31) activesupport better_html (~> 1.0.7) html_tokenizer rainbow - rubocop (~> 0.51) + rubocop (~> 0.79.0) smart_properties erubi (1.9.0) execjs (2.7.0) From 8dd3d09f8454ec4b1e48727713148e3727fb6a0a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:45:44 +0000 Subject: [PATCH 092/100] chore(deps): bump aws-partitions from 1.266.0 to 1.269.0 Bumps [aws-partitions](https://github.com/aws/aws-sdk-ruby) from 1.266.0 to 1.269.0. - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/master/gems/aws-partitions/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..b7349ab09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -94,7 +94,7 @@ GEM authy (2.7.5) httpclient (>= 2.5.3.3) aws-eventstream (1.0.3) - aws-partitions (1.266.0) + aws-partitions (1.269.0) aws-sdk-core (3.88.0) aws-eventstream (~> 1.0, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) From d129ccc4f8096b7c6b15d1c7634781d69e51e99d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2020 00:46:21 +0000 Subject: [PATCH 093/100] chore(deps): bump twilio-ruby from 5.31.2 to 5.31.3 Bumps [twilio-ruby](https://github.com/twilio/twilio-ruby) from 5.31.2 to 5.31.3. - [Release notes](https://github.com/twilio/twilio-ruby/releases) - [Changelog](https://github.com/twilio/twilio-ruby/blob/master/CHANGES.md) - [Commits](https://github.com/twilio/twilio-ruby/compare/5.31.2...5.31.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5c721b492..9a6fcd5b3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -406,7 +406,7 @@ GEM thor (0.20.3) thread_safe (0.3.6) tilt (2.0.10) - twilio-ruby (5.31.2) + twilio-ruby (5.31.3) faraday (~> 1.0.0) jwt (>= 1.5, <= 2.5) nokogiri (>= 1.6, < 2.0) From 8d89f4aa6eb2c5113416b9d85d5838fc60b5ddce Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Mon, 27 Jan 2020 13:04:06 +0300 Subject: [PATCH 094/100] Check group quota before save --- .../studentship/course_enrollments_controller.rb | 7 +++++-- app/models/semester_registration.rb | 1 + app/services/student_course_enrollment_service.rb | 8 +++++++- .../course_enrollments/_course_enrollments.html.erb | 3 ++- .../studentship/course_enrollments/new.html.erb | 13 ++++++++++++- .../studentship/course_enrollments.en.yml | 1 + .../studentship/course_enrollments.tr.yml | 1 + .../course_enrollments_controller_test.rb | 1 + .../student_course_enrollment_service_test.rb | 12 +++++++++++- 9 files changed, 41 insertions(+), 6 deletions(-) diff --git a/app/controllers/studentship/course_enrollments_controller.rb b/app/controllers/studentship/course_enrollments_controller.rb index 22162ed73..bf29514a3 100644 --- a/app/controllers/studentship/course_enrollments_controller.rb +++ b/app/controllers/studentship/course_enrollments_controller.rb @@ -34,8 +34,11 @@ def destroy def save if @service.course_enrollments.any? - message = @service.save ? t('.success') : t('.error') - redirect_to(list_student_course_enrollments_path(@student), flash: { info: message }) + if @service.save + redirect_to(list_student_course_enrollments_path(@student), flash: { info: t('.success') }) + else + redirect_with(t('.error')) + end else redirect_with(t('.errors.empty_selected_courses_list')) end diff --git a/app/models/semester_registration.rb b/app/models/semester_registration.rb index 0716851c4..f35feadeb 100644 --- a/app/models/semester_registration.rb +++ b/app/models/semester_registration.rb @@ -11,6 +11,7 @@ class SemesterRegistration < ApplicationRecord belongs_to :academic_term belongs_to :student has_many :course_enrollments, dependent: :destroy + has_many :available_course_groups, through: :course_enrollments # validations validates :semester, uniqueness: { scope: :student_id }, numericality: { greater_than: 0 } diff --git a/app/services/student_course_enrollment_service.rb b/app/services/student_course_enrollment_service.rb index b0feeb1d2..870907c10 100644 --- a/app/services/student_course_enrollment_service.rb +++ b/app/services/student_course_enrollment_service.rb @@ -59,7 +59,9 @@ def drop(course_enrollment) end def save - @student.current_registration.course_enrollments.update(status: :saved) + return unless savable + + @course_enrollments.update(status: :saved) @student.current_registration.update(status: :saved) end @@ -77,6 +79,10 @@ def dropable(available_course) available_course end + def savable + @savable ||= @student.current_registration.available_course_groups.map(&:quota_full?).none? + end + private def extra_ects diff --git a/app/views/studentship/course_enrollments/_course_enrollments.html.erb b/app/views/studentship/course_enrollments/_course_enrollments.html.erb index c078df778..b636cf910 100644 --- a/app/views/studentship/course_enrollments/_course_enrollments.html.erb +++ b/app/views/studentship/course_enrollments/_course_enrollments.html.erb @@ -22,7 +22,8 @@ <%= course_enrollment.available_course_group.name %> <% if available_course.errors.empty? %> - <%= link_to(t('.drop'), student_course_enrollment_path(@student, course_enrollment), method: :delete, class: 'btn btn-sm btn-outline-danger') %> + <% drop_button_class = course_enrollment.available_course_group.quota_full? ? 'btn-danger' : 'btn-outline-danger' %> + <%= link_to(t('.drop'), student_course_enrollment_path(@student, course_enrollment), method: :delete, class: "btn btn-sm #{drop_button_class}") %> <% else %> diff --git a/app/views/studentship/course_enrollments/new.html.erb b/app/views/studentship/course_enrollments/new.html.erb index a30f4451a..8a007be91 100644 --- a/app/views/studentship/course_enrollments/new.html.erb +++ b/app/views/studentship/course_enrollments/new.html.erb @@ -7,12 +7,23 @@ <%= render 'student_info' %>

+ +<% unless @service.savable %> + +<% end %> +
diff --git a/config/locales/controllers/studentship/course_enrollments.en.yml b/config/locales/controllers/studentship/course_enrollments.en.yml index d0f2db8d4..8892c20c4 100644 --- a/config/locales/controllers/studentship/course_enrollments.en.yml +++ b/config/locales/controllers/studentship/course_enrollments.en.yml @@ -49,6 +49,7 @@ en: year: Year new: available_courses: Available Courses + courses_with_full_quota: There are courses reached its quota in your selected courses list. Please remove the course(s) indicated by the red button from your list. save_enrollments: Save Enrollments selectable_ects: Selectable ECTS selected_courses: Selected Courses diff --git a/config/locales/controllers/studentship/course_enrollments.tr.yml b/config/locales/controllers/studentship/course_enrollments.tr.yml index b98c94bdc..21e871b3c 100644 --- a/config/locales/controllers/studentship/course_enrollments.tr.yml +++ b/config/locales/controllers/studentship/course_enrollments.tr.yml @@ -49,6 +49,7 @@ tr: year: Yıl new: available_courses: Açılan Dersler + courses_with_full_quota: Seçilen dersler listenizde kotası dolmuş dersler bulunmaktadır. Lütfen kırmızı butonla belirtilen dersi/dersleri listenizden çıkarınız. save_enrollments: Seçimleri Kaydet selectable_ects: Seçilebilecek AKTS selected_courses: Seçilen Dersler diff --git a/test/controllers/studentship/course_enrollments_controller_test.rb b/test/controllers/studentship/course_enrollments_controller_test.rb index b50acdbd5..cb2c2fabe 100644 --- a/test/controllers/studentship/course_enrollments_controller_test.rb +++ b/test/controllers/studentship/course_enrollments_controller_test.rb @@ -37,6 +37,7 @@ class CourseEnrollmentsControllerTest < ActionDispatch::IntegrationTest end test 'should save' do + delete student_course_enrollment_path(@student, course_enrollments(:elective)) get save_student_course_enrollments_path(@student) assert @student.current_registration.saved? assert_redirected_to list_student_course_enrollments_path diff --git a/test/services/student_course_enrollment_service_test.rb b/test/services/student_course_enrollment_service_test.rb index 993e1dc99..ca3937b98 100644 --- a/test/services/student_course_enrollment_service_test.rb +++ b/test/services/student_course_enrollment_service_test.rb @@ -43,7 +43,8 @@ class StudentCourseEnrollmentServiceTest < ActiveSupport::TestCase end test 'save method' do - @service.save + @service.drop(course_enrollments(:elective)) + assert @service.save assert @service.student.current_registration.saved? end @@ -75,6 +76,15 @@ class StudentCourseEnrollmentServiceTest < ActiveSupport::TestCase assert_equal available_course.errors.full_messages.first, translate('must_drop_first') end + test 'savable method with false return' do + assert_not @service.savable + end + + test 'savable method' do + @service.drop(course_enrollments(:elective)) + assert @service.savable + end + private def translate(key, params = {}) From 1284a82318d7b9e69c8e93fae4b24409c9d5af7d Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Mon, 27 Jan 2020 16:31:05 +0300 Subject: [PATCH 095/100] Use guard clause --- .../studentship/course_enrollments_controller.rb | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/app/controllers/studentship/course_enrollments_controller.rb b/app/controllers/studentship/course_enrollments_controller.rb index bf29514a3..90190996f 100644 --- a/app/controllers/studentship/course_enrollments_controller.rb +++ b/app/controllers/studentship/course_enrollments_controller.rb @@ -33,15 +33,10 @@ def destroy end def save - if @service.course_enrollments.any? - if @service.save - redirect_to(list_student_course_enrollments_path(@student), flash: { info: t('.success') }) - else - redirect_with(t('.error')) - end - else - redirect_with(t('.errors.empty_selected_courses_list')) - end + return redirect_with(t('.errors.empty_selected_courses_list')) if @service.course_enrollments.empty? + return redirect_with(t('.error')) unless @service.save + + redirect_to(list_student_course_enrollments_path(@student), flash: { info: t('.success') }) end private From f00141fbedd203bbc64d46f708d69d79dda8bdb4 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Mon, 27 Jan 2020 18:00:58 +0300 Subject: [PATCH 096/100] Use count instead of length --- app/models/available_course.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/available_course.rb b/app/models/available_course.rb index 6544b5769..cc6858e43 100644 --- a/app/models/available_course.rb +++ b/app/models/available_course.rb @@ -56,7 +56,7 @@ class AvailableCourse < ApplicationRecord # custom methods def quota_full? - groups.sum(:quota) == course_enrollments.saved.length + groups.sum(:quota) == course_enrollments.saved.count end def enrollable_groups From fb62d551a51168cdbfe8b9b4a428168bfb99cfc5 Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Mon, 27 Jan 2020 18:06:48 +0300 Subject: [PATCH 097/100] Use none? with argument --- app/services/student_course_enrollment_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/student_course_enrollment_service.rb b/app/services/student_course_enrollment_service.rb index 870907c10..e4e5c51df 100644 --- a/app/services/student_course_enrollment_service.rb +++ b/app/services/student_course_enrollment_service.rb @@ -80,7 +80,7 @@ def dropable(available_course) end def savable - @savable ||= @student.current_registration.available_course_groups.map(&:quota_full?).none? + @savable ||= @student.current_registration.available_course_groups.none?(&:quota_full?) end private From 0024277175f816fe302ea3628ea94d4fee3ca6cc Mon Sep 17 00:00:00 2001 From: Dilara Koca Date: Mon, 27 Jan 2020 19:03:22 +0300 Subject: [PATCH 098/100] Change savable method name to savable? --- app/services/student_course_enrollment_service.rb | 6 +++--- app/views/studentship/course_enrollments/new.html.erb | 4 ++-- test/services/student_course_enrollment_service_test.rb | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/services/student_course_enrollment_service.rb b/app/services/student_course_enrollment_service.rb index e4e5c51df..b2d51855b 100644 --- a/app/services/student_course_enrollment_service.rb +++ b/app/services/student_course_enrollment_service.rb @@ -59,7 +59,7 @@ def drop(course_enrollment) end def save - return unless savable + return unless savable? @course_enrollments.update(status: :saved) @student.current_registration.update(status: :saved) @@ -79,8 +79,8 @@ def dropable(available_course) available_course end - def savable - @savable ||= @student.current_registration.available_course_groups.none?(&:quota_full?) + def savable? + @student.current_registration.available_course_groups.none?(&:quota_full?) end private diff --git a/app/views/studentship/course_enrollments/new.html.erb b/app/views/studentship/course_enrollments/new.html.erb index 8a007be91..6c153a2b9 100644 --- a/app/views/studentship/course_enrollments/new.html.erb +++ b/app/views/studentship/course_enrollments/new.html.erb @@ -7,7 +7,7 @@ <%= render 'student_info' %> -<% unless @service.savable %> +<% unless save_button_enabled %> diff --git a/test/services/student_course_enrollment_service_test.rb b/test/services/student_course_enrollment_service_test.rb index ca3937b98..6212f8fe9 100644 --- a/test/services/student_course_enrollment_service_test.rb +++ b/test/services/student_course_enrollment_service_test.rb @@ -76,13 +76,13 @@ class StudentCourseEnrollmentServiceTest < ActiveSupport::TestCase assert_equal available_course.errors.full_messages.first, translate('must_drop_first') end - test 'savable method with false return' do - assert_not @service.savable + test 'savable? method with false return' do + assert_not @service.savable? end - test 'savable method' do + test 'savable? method' do @service.drop(course_enrollments(:elective)) - assert @service.savable + assert @service.savable? end private From dc6951722b16a7dce5f33798fdffaea1b51e3cc4 Mon Sep 17 00:00:00 2001 From: Huseyin Tekinaslan Date: Tue, 28 Jan 2020 00:32:29 +0300 Subject: [PATCH 099/100] Update app/models/available_course_group.rb --- app/models/available_course_group.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/available_course_group.rb b/app/models/available_course_group.rb index 5c50650d6..7a3b9e091 100644 --- a/app/models/available_course_group.rb +++ b/app/models/available_course_group.rb @@ -18,6 +18,6 @@ class AvailableCourseGroup < ApplicationRecord # custom methods def quota_full? - quota == course_enrollments.saved.length + quota == course_enrollments.saved.count end end From 0f64e7abd5d9269b18aed1c1d77c757a1d9d0e69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20Tekinaslan?= Date: Tue, 28 Jan 2020 11:19:48 +0300 Subject: [PATCH 100/100] Bump app version to 0.7.5 --- app.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.json b/app.json index fa5d81237..26a167923 100644 --- a/app.json +++ b/app.json @@ -7,7 +7,7 @@ "rails" ], "repository": "https://github.com/omu/nokul", - "version": "0.7.4", + "version": "0.7.5", "scripts": { "dokku": { "predeploy": "bin/plugdo bundle install -j4 --path /app/vendor/bundle --without development:test && bundle exec rails assets:precompile && bundle exec rails db:migrate"