Skip to content

Commit 4988a97

Browse files
committed
supporting print mapzoom and tileswitch function
1 parent c01b151 commit 4988a97

File tree

5 files changed

+16
-7
lines changed

5 files changed

+16
-7
lines changed

app/controllers/gtt_print_jobs_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def show
4545
private
4646

4747
def gtt_print_job_params
48-
params[:gtt_print_job].permit(:layout, :custom_text)
48+
params[:gtt_print_job].permit(:layout, :custom_text, :scale, :basemap_url)
4949
end
5050

5151
def authorize_create

app/models/gtt_print_job.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
class GttPrintJob
44
include ActiveModel::Model
55

6-
attr_accessor :layout, :custom_text, :issue, :issues
6+
attr_accessor :layout, :custom_text, :issue, :issues, :scale, :basemap_url
77

88
validates :layout, presence: true
99
validates :issue, presence: true, if: ->{ issues.nil? }
@@ -17,7 +17,8 @@ def json
1717
if list?
1818
RedmineGttPrint::IssuesToJson.(issues, layout, custom_text: custom_text)
1919
else
20-
RedmineGttPrint::IssueToJson.(issue, layout, custom_text: custom_text)
20+
RedmineGttPrint::IssueToJson.(issue, layout, { custom_text: custom_text,
21+
scale: scale, basemap_url: basemap_url })
2122
end
2223
end
2324

app/views/hooks/_print_issue_form.html.erb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<% if @issue and User.current.allowed_to?(:view_gtt_print, @issue.project) and (layouts = RedmineGttPrint.layouts_for_tracker(@issue.tracker)).present? %>
22
<h3><%= l :label_gtt_print_title %></h3>
3-
<%= form_for :gtt_print_job, url: gtt_print_jobs_path, remote: true do |f| %>
3+
<%= form_for :gtt_print_job, :html => { :onsubmit => '_submit()' }, url: gtt_print_jobs_path, remote: true do |f| %>
44
<%= hidden_field_tag :issue_id, @issue.id %>
5+
<%= f.hidden_field :scale %>
6+
<%= f.hidden_field :basemap_url %>
57
<%= f.text_area :custom_text %><br>
68
<%= f.select :layout, options_from_collection_for_select(layouts, :to_s, :to_s) %>
79
<button type="submit"><%= l :button_gtt_print_submit %></button>

assets/javascripts/gtt_print.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,8 @@ var GttPrint = {
1515
}, 500);
1616
}
1717
};
18+
19+
var _submit = function () {
20+
$('input[name="gtt_print_job[scale]"]').val(App.getScale());
21+
$('input[name="gtt_print_job[basemap_url]"]').val(App.getBasemapUrl());
22+
}

lib/redmine_gtt_print/issue_to_json.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ def call
3333
}
3434

3535
if data = @issue.geodata_for_print
36-
json[:attributes][:map] = self.class.map_data(data[:center], [data[:geojson]])
36+
json[:attributes][:map] = self.class.map_data(data[:center], [data[:geojson]],
37+
@other_attributes[:scale], @other_attributes[:basemap_url])
3738
end
3839

3940
context = {
@@ -144,7 +145,7 @@ def self.issue_custom_fields_by_name(issue)
144145
]
145146
end
146147

147-
def self.map_data(center, features)
148+
def self.map_data(center, features, scale, basemap_url)
148149
{
149150
center: center,
150151
rotation: 0,
@@ -182,7 +183,7 @@ def self.map_data(center, features)
182183
type: "osm"
183184
}
184185
],
185-
scale: 25000,
186+
scale: scale,
186187
projection: "EPSG:3857",
187188
dpi: 144
188189
}

0 commit comments

Comments
 (0)