From e7c1c3226b4224796f3430f62fb01f4efbf1a0e5 Mon Sep 17 00:00:00 2001 From: Ricky Barrette Date: Thu, 29 Mar 2012 13:57:46 -0400 Subject: [PATCH] Updated flash messages, updated permissions, and added debuging output I updated the flash messages to incude :alert, :error, and :success. This will make the output much easier to read. The debugging output was added to the index view. it now displays the number of params passed, and prints out each param on a seperate line --- .../exceptionhandler_controller.rb | 11 +- app/helpers/exceptionhandler_helper.rb | 0 app/helpers/exceptionhandler_helper.rb~ | 157 ------------------ app/views/exceptionhandler/index.html.erb | 10 ++ 4 files changed, 17 insertions(+), 161 deletions(-) mode change 100644 => 100755 app/controllers/exceptionhandler_controller.rb mode change 100644 => 100755 app/helpers/exceptionhandler_helper.rb delete mode 100644 app/helpers/exceptionhandler_helper.rb~ mode change 100644 => 100755 app/views/exceptionhandler/index.html.erb diff --git a/app/controllers/exceptionhandler_controller.rb b/app/controllers/exceptionhandler_controller.rb old mode 100644 new mode 100755 index 3ba6e07..be38273 --- a/app/controllers/exceptionhandler_controller.rb +++ b/app/controllers/exceptionhandler_controller.rb @@ -28,9 +28,12 @@ class ExceptionhandlerController < ApplicationController include ExceptionhandlerHelper def index + #check the incomming report for completeness if params.size < 9 - flash.now[:error] = "Not enough args" + if params.size != 2 + flash.now[:alert] = "Not enough args" + end # check to see if the reported project exists elsif Project.find_by_name(params[:app]) == nil @@ -45,7 +48,7 @@ class ExceptionhandlerController < ApplicationController issue = check_for_existing_report if issue != nil if update_report(issue) - flash.now[:notice] = "Updated report" + flash.now[:success] = "Updated report" end else @@ -54,9 +57,9 @@ class ExceptionhandlerController < ApplicationController issue = create_new_report if issue.valid? issue.save - flash.now[:notice] = "New report filed" + flash.now[:success] = "New report filed" else - @output = issue.errors.full_messages + flash.now[:error] = issue.errors.full_messages end #TODO generate link to issue diff --git a/app/helpers/exceptionhandler_helper.rb b/app/helpers/exceptionhandler_helper.rb old mode 100644 new mode 100755 diff --git a/app/helpers/exceptionhandler_helper.rb~ b/app/helpers/exceptionhandler_helper.rb~ deleted file mode 100644 index c30e1af..0000000 --- a/app/helpers/exceptionhandler_helper.rb~ +++ /dev/null @@ -1,157 +0,0 @@ -# exceptionhandler_helper.rb -# @date Feb. 15, 2012 -# @author ricky barrette -# @authro twenty codes -# -# Copyright 2012 Rick Barrette -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -module ExceptionhandlerHelper - - # Checks the database for exisiting reports - # @return id report is existing else 0 - def check_for_existing_report - bug_id = tracker.id - issues = Project.find_by_name(params[:app]).issues - issues.each do |issue| - if issue.tracker_id == bug_id - id = check_issue(issue) - if id > 0 - return id - end - end - end - return 0; - end - - # checks a specific issue agains params - # @return id of report if matching, else 0 - def check_issue(issue) - if issue.subject == params[:msg] - if check_issue_custom_values(issue) - return issue.id - else - return 0 - end - else - return 0 - end - end - - #checks if this issue is a match for params based on it's custom values' - # @return true if matching - def check_issue_custom_values (issue) - count = 0 - custom_fields = CustomField - issue.custom_field_values.each do |value| - case custom_fields.find_by_id(value.custom_field_id).name - when "Version" - if value.value == params[:version] - count += 1 - end - when "StackTrace" - if value.value == params[:stackTrace] - count += 1 - end - when "Cause" - if value.value == params[:cause] - count += 1 - end - end - end - if count == 3 - return true - else - return false - end - end - - # files a new exception report in redmine - # @return true if new report was filed - def create_new_report - issue = Issue.new - issue.tracker = tracker - issue.subject = params[:msg] - issue.description = params[:description] - 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.anonymous - issue.status = IssueStatus.find_by_name("New") - - issue.custom_values = [ - create_custom_value(CustomField.find_by_name("StackTrace").id, params[:stackTrace]), - create_custom_value(CustomField.find_by_name("Cause").id, params[:cause]), - create_custom_value(CustomField.find_by_name("Count").id, "1"), - create_custom_value(CustomField.find_by_name("Device").id, params[:device]), - create_custom_value(CustomField.find_by_name("Version").id, value = params[:version]), - create_custom_value(CustomField.find_by_name("Package").id, value = params[:package]), - create_custom_value(CustomField.find_by_name("Date").id, value = params[:date]) - ] - return issue - end - - # returns a new custom value - def create_custom_value(field_id, value) - custom_value = CustomValue.new - custom_value.custom_field_id = field_id - custom_value.value = value - custom_value.customized_type = "Issue" - 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 - - # gets the prodived tracker - # if it doesnt exist, defualt to Bug - def tracker - if(params[:tracker]!= nil) - if params[:tracker].length > 0 - t = Tracker.find_by_name(params[:tracker]) - if(t != nil) - return t - end - end - end - return Tracker.find_by_name("Bug") - end - -end #EOF diff --git a/app/views/exceptionhandler/index.html.erb b/app/views/exceptionhandler/index.html.erb old mode 100644 new mode 100755 index 5094e50..9df86b6 --- a/app/views/exceptionhandler/index.html.erb +++ b/app/views/exceptionhandler/index.html.erb @@ -1,2 +1,12 @@

Exception Handler

+
+Number of params: <%= params.size %> +
+
+Params: +<% params.each do |param| %> +
+ <%= param %> +<% end %> + <%= @output %>