diff --git a/app/controllers/exceptionhandler_controller.rb b/app/controllers/exceptionhandler_controller.rb index 6a2cd3d..f3976c2 100644 --- a/app/controllers/exceptionhandler_controller.rb +++ b/app/controllers/exceptionhandler_controller.rb @@ -27,28 +27,21 @@ class ExceptionhandlerController < ApplicationController helper :exceptionhandler include ExceptionhandlerHelper - require 'logger' - def index - log = Logger.new('redmine-exceptionhandler-plugin.txt') - log.level = Logger::DEBUG - log.debug "Loading Index" - if params.size < 8 @output = " not enough args " elsif Project.find_by_name(params[:app]) == nil @output = "No Project Found" else - issue_id = check_for_existing_report + issue_id = check_for_existing_report if issue_id > 0 - # TODO update report - @output = issue_id + update_report(issue_id) + @output = "Updated report" else - #TODO create new report and save issue = create_new_report if issue.valid? issue.save - @output = "Report filed, Thank You." + @output = "New report filed" else @output = issue.errors.full_messages end diff --git a/app/helpers/exceptionhandler_helper.rb b/app/helpers/exceptionhandler_helper.rb index db17d12..6b08c32 100644 --- a/app/helpers/exceptionhandler_helper.rb +++ b/app/helpers/exceptionhandler_helper.rb @@ -87,7 +87,7 @@ module ExceptionhandlerHelper issue.project = Project.find_by_name(params[:app]) issue.start_date = Time.now.localtime.strftime("%Y-%m-%d %T") issue.priority = IssuePriority.find_by_name("Normal") - issue.author = User.find_by_mail("rickbarrette@gmail.com") + issue.author = User.anonymous issue.status = IssueStatus.find_by_name("New") issue.custom_values = [ @@ -110,4 +110,33 @@ module ExceptionhandlerHelper return custom_value end + # retrives an issue by it's id and updates it + # @returns updated issue + def update_report(issue_id) + issue = Issue.find_by_id(issue_id) + if params[:description].length > 0 + description = issue.description + description += "\n\n--- New Description --- \n" + description += params[:description] + issue.description = description + end + + custom_fields = CustomField + issue.custom_field_values.each do |value| + case custom_fields.find_by_id(value.custom_field_id).name + when "Device" + value.value = value.value += "\n" + value.value = value.value += params[:device] + when "Date" + value.value = value.value += "\n" + value.value = value.value += params[:date] + when "Count" + value.value = (value.value.to_i + 1).to_s + end + value.save + end + issue.init_journal(User.anonymous, "Issue updated") + issue.save + end + end #EOF diff --git a/app/views/exceptionhandler/index.html.erb b/app/views/exceptionhandler/index.html.erb index 8d5ee3e..5094e50 100644 --- a/app/views/exceptionhandler/index.html.erb +++ b/app/views/exceptionhandler/index.html.erb @@ -1,3 +1,2 @@