diff --git a/controllers/myprofile/proposals_discussion_plugin_confirm_tasks_controller.rb b/controllers/myprofile/proposals_discussion_plugin_confirm_tasks_controller.rb new file mode 100644 index 0000000..64d06f0 --- /dev/null +++ b/controllers/myprofile/proposals_discussion_plugin_confirm_tasks_controller.rb @@ -0,0 +1,43 @@ +class ProposalsDiscussionPluginConfirmTasksController < MyProfileController + protect :perform_task, :profile, :only => [:approve_proposal, :reprove_proposal] + + def approve_proposal + result = {} + if request.post? + result = process_decision(params, :finish) + end + render json: result + end + + def reprove_proposal + result = {} + if request.post? + result = process_decision(params, :cancel) + end + render json: result + end + +private + + def process_decision(params, decision) + result = { + success: false, + message: _('Error flagging proposal. Please, contact the system admin') + } + if params[:task_id] and request.post? + begin + task = profile.find_in_all_tasks(params[:task_id]) + task.tag_list = params[:tag_list] + task.article_parent_id = params[:article_parent_id] + task.email_template_id = params[:email_template_id] + task.send(decision, current_person) + result = {:success => true } + rescue Exception => ex + message = "#{task.title} (#{task.requestor ? task.requestor.name : task.author_name})" if task + message = "#{message} #{ex.message}" + result[:message] += ". #{message}" + end + return result + end + end +end diff --git a/controllers/myprofile/proposals_discussion_plugin_evaluate_tasks_controller.rb b/controllers/myprofile/proposals_discussion_plugin_evaluate_tasks_controller.rb index 6bd7fbf..9562e85 100644 --- a/controllers/myprofile/proposals_discussion_plugin_evaluate_tasks_controller.rb +++ b/controllers/myprofile/proposals_discussion_plugin_evaluate_tasks_controller.rb @@ -1,14 +1,15 @@ class ProposalsDiscussionPluginEvaluateTasksController < MyProfileController + protect :view_tasks, :profile, :only => [:approve_proposal, :reprove_proposal] - protect :view_tasks, :profile, :only => [:flag_approve_proposal, :flag_reject_proposal] - - def flag_approve_proposal + def approve_proposal + result = {} if request.post? && params[:task_id] result = { success: false, message: _('Error flagging proposal. Please, contact the system admin') } + task = Task.to(profile).find_by_id params[:task_id] save = task.flag_accept_proposal(current_person) @@ -20,7 +21,8 @@ class ProposalsDiscussionPluginEvaluateTasksController < MyProfileController render json: result end - def flag_reprove_proposal + def reprove_proposal + result = {} if request.post? && params[:task_id] result = { success: false, diff --git a/public/style.css b/public/style.css index 14b3b28..38046fe 100644 --- a/public/style.css +++ b/public/style.css @@ -326,6 +326,7 @@ form .proposals-discussion-plugin .body textarea { width: auto; float: left; padding: 5px; + border: 1px solid #EEEEEE; } .evaluation_button img { @@ -344,7 +345,8 @@ form .proposals-discussion-plugin .body textarea { } div.evaluation_button.checked { - border: 1px dotted black; + border: 1px dashed black; + background-color: white; } .evaluation_button.approval span { @@ -367,8 +369,9 @@ div.evaluation_button.checked { } div.confirm_evaluation_button a { - text-decoration: none; + text-decoration: underline; color: #003366; + font-size: 28px; } div.confirm_evaluation_button a:hover { diff --git a/views/proposals_discussion_plugin_tasks/_task.html.erb b/views/proposals_discussion_plugin_tasks/_task.html.erb index a1f1651..10deb9c 100644 --- a/views/proposals_discussion_plugin_tasks/_task.html.erb +++ b/views/proposals_discussion_plugin_tasks/_task.html.erb @@ -19,28 +19,6 @@ <% end %> -