1
+ class GttConfigurationController < ApplicationController
2
+
3
+ accept_api_auth :default_setting_configuration
4
+
5
+ def default_setting_configuration
6
+ gtt_map_config = build_default_setting_config
7
+ respond_to do |format |
8
+ format . api { render json : build_default_setting_config }
9
+ end
10
+ end
11
+
12
+ def build_default_setting_config
13
+ default_tracker_icon = [ ]
14
+ default_status_color = [ ]
15
+ gtt_tile_source = [ ]
16
+ tracker_project_ids = [ ]
17
+
18
+ Tracker . all . sort . each { |tracker |
19
+ default_tracker_icon . append ( {
20
+ trackerID : tracker . id . to_s ,
21
+ trackerName : tracker . name ,
22
+ icon : Setting . plugin_redmine_gtt [ 'tracker_' +tracker . id . to_s ]
23
+ } )
24
+ }
25
+ IssueStatus . all . sort . each { |status |
26
+ default_status_color . append ( {
27
+ statusID : status . id . to_s ,
28
+ statusName : status . name ,
29
+ color : Setting . plugin_redmine_gtt [ 'status_' +status . id . to_s ]
30
+ } )
31
+ }
32
+ GttTileSource . all . sort . each { |tileSource |
33
+ tile_source_project = [ ]
34
+
35
+ Project . all . sort . each { |project |
36
+ project . gtt_tile_sources . where ( id : tileSource . id ) . sort . each { |tilesSource |
37
+ tile_source_project . append ( {
38
+ id : project . id . to_s ,
39
+ name : project . name
40
+ } )
41
+ }
42
+ }
43
+
44
+ gtt_tile_source . append ( {
45
+ id : tileSource . id ,
46
+ name : tileSource . name ,
47
+ type : tileSource . type ,
48
+ options : tileSource . options ,
49
+ projects : tile_source_project
50
+ } )
51
+ }
52
+
53
+ mapConfig = {
54
+ gttDefaultSetting : {
55
+ defaultTrackerIcon : default_tracker_icon ,
56
+ defaultStatusColor : default_status_color ,
57
+ defaultMapSetting : {
58
+ centerLng : Setting . plugin_redmine_gtt [ 'default_map_center_longitude' ] ,
59
+ centerLat : Setting . plugin_redmine_gtt [ 'default_map_center_latitude' ]
60
+ } ,
61
+ geometrySetting : {
62
+ geometryTypes : Setting . plugin_redmine_gtt [ 'editable_geometry_types_on_issue_map' ] ,
63
+ GeoJsonUpload : Setting . plugin_redmine_gtt [ 'enable_geojson_upload_on_issue_map' ] ,
64
+ } ,
65
+ geocoderSetting : {
66
+ enableGeocodingOnMap : Setting . plugin_redmine_gtt [ 'enable_geocoding_on_map' ] ,
67
+ geocoderOptions : Setting . plugin_redmine_gtt [ 'default_geocoder_options' ]
68
+ } ,
69
+ } ,
70
+ gttSetting : {
71
+ gttTileSourceIds : gtt_tile_source
72
+ }
73
+ }
74
+ return mapConfig
75
+ end
76
+ end
0 commit comments