1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| module GeometryStatus
# Voir : http://www.redmine.org/projects/redmine/wiki/Hooks
class Hooks < Redmine::Hook::ViewListener
def view_layouts_base_html_head(context)
stylesheet_link_tag("plugin", :plugin => 'geometry_status') +
javascript_include_tag('plugin', :plugin => 'geometry_status')
end
# rewrite select for trackers on issue form // view_issues_show_details_bottom
def view_issues_show_details_bottom(context={})
issue = context[:issue]
project = context[:project]
html_return = ''
if project != nil && project.id == 24 && issue != nil
# Afficher tous les custom fields :
#==================================
# html_return = "<hr>"
# CustomField.all.each do |custom|
# html_return += "<br/>custom id=#{custom.id} / name=#{custom.name}"
# custom.possible_values.each do |value|
# html_return += "<br/> => #{value}"
# end
# end
# return html_return
# id == 24 => project.name == "Base des défauts"
pointe = Pointes.where(issue_id: issue.id)
if pointe.first != nil
# La géométrie a été trouvée
html_button_click = "onClick=\"call_qgis('#{issue.id}|#{pointe.first.pointe}')\""
html_button = "<button class=\"geometry_status_button\" #{html_button_click}>" + image_tag('geometry.png', :plugin => 'geometry_status', :title => "La FT #{issue.id} a une géométrie\nCliquez sur le bouton pour l'ouvrir dans le plugin Redmine sous QGis", :align => "center") + "</button>"
html_return = "<hr><p>#{html_button}<strong class=\"geometry_status_centered_text\">Géométrie</strong><div class=\"wiki\"><p>La FT a une géométrie => WKT = #{pointe.first.pointe}</p></div>"
else
# La géométrie n'a pas été trouvée
html_button_click = "onClick=\"call_qgis('#{issue.id}|')\""
value = CustomField.select('id, name, possible_values').where(name: 'Portée du Défaut').first
if value
# Obligé de mettre dans "#{xxxxxx}" sinon la comparaison ne fonctionne pas !
portee_du_defaut = "#{issue.custom_value_for(value.id)}"
if portee_du_defaut == "Général"
html_button = "<button class=\"geometry_status_button\" #{html_button_click}>" + image_tag('geometry_none.png', :plugin => 'geometry_status', :title => "La FT #{issue.id} n'a pas de géométrie\nCliquez sur le bouton pour l'ouvrir dans le plugin Redmine sous QGis", :align => "center") + "</button>"
html_return = "<hr><p>#{html_button}<strong class=\"geometry_status_centered_text\">Géométrie</strong><div class=\"wiki\"><p>La FT générale ne contient pas de géométrie</p></div>"
elsif portee_du_defaut == "Local"
html_button = "<button class=\"geometry_status_button\" #{html_button_click}>" + image_tag('geometry_gray.png', :plugin => 'geometry_status', :title => "La FT #{issue.id} n'a pas de géométrie mais elle devrait en avoir une !\nCliquez sur le bouton pour l'ouvrir dans le plugin Redmine sous QGis", :align => "center") + "</button>"
html_return = "<hr><p>#{html_button}<strong class=\"geometry_status_centered_text\">Géométrie</strong><div class=\"wiki\"><p>La FT locale ne contient pas de géométrie mais elle devrait en avoir une !</p></div>"
else
html_return = "<hr><p><strong class=\"geometry_status_centered_text\">Géométrie</strong><div class=\"wiki\"><p>La FT ne contient pas de géométrie. <strong class=\"geometry_unknown_portee_default\">Attention, la portée du défaut '#{portee_du_defaut}' est inconnue !</strong></p></div>"
end
end
end
end
html_return
end
end
end |
Partager