class DetailsIssueHooks < Redmine::Hook::ViewListener
def protect_against_forgery?
false
end
def view_layouts_base_html_head(context)
stylesheet_link_tag('issue_dynamic_edit.css', :plugin => :redmine_issue_dynamic_edit)
end
def view_layouts_base_body_bottom(context)
javascript_include_tag('issue_dynamic_edit.js', :plugin => :redmine_issue_dynamic_edit)
end
def view_issues_show_details_bottom(context = { })
project = context[:project]
request = context[:request]
issue_id = request.path_parameters[:id]
back = request.env['HTTP_REFERER']
o = ''
if (issue_id)
issue = Issue.find(issue_id)
readOnlyAttributes = issue.read_only_attribute_names(User.current)
requiredAttributes = issue.required_attribute_names(User.current)
# o << requiredAttributes.to_json
allRequiredFieldsFilled = true
requiredAttributes.each do |attr|
if(issue.read_attribute(attr).to_s.empty?)
allRequiredFieldsFilled = false
end
end
if (issue)
if (User.current.allowed_to?(:edit_issues, project))
# if there's a JS error, we hide the generated values
o << '
'
# Status dropdown
statuses = issue.new_statuses_allowed_to(User.current)
if (!statuses.empty? && !(readOnlyAttributes.include? 'status_id') && allRequiredFieldsFilled)
o << ""
o << " "
end
# Users dropdown
assignables = project.assignable_users
if (!assignables.empty? && !(readOnlyAttributes.include? 'assigned_to_id'))
o << ""
o << " "
end
# Priorities dropdown
priorities = IssuePriority.all
if(!priorities.empty? && !(readOnlyAttributes.include? 'priority_id'))
o << ""
o << " "
end
# %done dropdown
if(!(readOnlyAttributes.include? 'done_ratio'))
percent = 0
o << ""
o << " "
end
# Estimated_time dropdown
if(!(readOnlyAttributes.include? 'estimated_hours'))
o << ""
o << " "
o << ""
o << " "
o << ""
end
# Start date
if(!(readOnlyAttributes.include? 'start_date'))
o << ""
o << " "
o << " "
o << " "
o << ""
o << ""
end
# Due date
if(!(readOnlyAttributes.include? 'due_date'))
o << ""
o << " "
o << " "
o << " "
o << ""
o << ""
end
# Title
o << ""
o << " "
o << " "
o << " "
o << ""
# Description
o << ""
o << " "
o << "