redmine_remotes 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42af9429138fa8a7103fc657a191d650230968969c88bef3e04d1e2b36e368e4
4
- data.tar.gz: d3576ad7482261ab795fdf99f8cc6509e39fc0dd8bb8cf1668f06b66475e198d
3
+ metadata.gz: 8b08c26b7392ab6cdf69c5e347808474375e9f98bb5102fbc199f6d91b5e22e7
4
+ data.tar.gz: d68ac09653661d303d0e7b37974fc62b4cc6678af278d2ce5eac9b9e68f16e27
5
5
  SHA512:
6
- metadata.gz: 82a1a63732ae40837ab40697d0d7bf2fa0355bc458dc8bd38867f4846dcfabc23a6e8fff562d6c48d4aac3b14609c8f1b803c2eb1487e4b5bf016011f15350b5
7
- data.tar.gz: e48108913a5d3296db90d7c6a9dcfb5c89539e12c84736ef69abb62b0484b3f6f5d5ee8ee800e4a39cef5c1ef52c4705198dc41bbabac3700d196edc47865e21
6
+ metadata.gz: 8c8a615c9a0e80edb67f7eb579398e042b3995a98c4b1117ae889de8713f0088e5a0ec6aeb9b318961da7ba6ff472f06c7362be2f983dcb715e044f190f6899a
7
+ data.tar.gz: 1433dfa717cddb6d7865fce5a97b613f07a501a33ef99eb473d3aef990038b8979c68abffbdda552ce3d610caa3cda07c491b295f4002e9435f1774c7e3c6b89
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ProjectRemoteIssuesController < ApplicationController
4
+ module Create
5
+ extend ::ActiveSupport::Concern
6
+
7
+ included do
8
+ before_action :find_remote_tracker, only: %i[create new]
9
+ end
10
+
11
+ def new
12
+ @add_issue = create_model_class.new(context_params)
13
+ end
14
+
15
+ def create
16
+ @add_issue = create_model_class.new(create_params)
17
+ if @add_issue.save
18
+ flash[:notice] = "Demanda salva: \##{@add_issue.local_issue.id}"
19
+ redirect_to url_for(action: 'index', id: @project.identifier,
20
+ tracker_id: @remote_tracker.id)
21
+ else
22
+ render 'new'
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def context_params
29
+ { project_id: @project.id, remote_tracker_id: @remote_tracker.id }
30
+ end
31
+
32
+ def create_model_class
33
+ ::RedmineRemotes::Tableless::RemoteIssueFetch::Create
34
+ end
35
+
36
+ def create_params
37
+ params.fetch(create_model_class.model_name.param_key).permit(
38
+ :issue_remote_code, :local_tracker_id
39
+ ).merge(context_params)
40
+ end
41
+
42
+ def find_remote_tracker
43
+ @remote_tracker = ::RemoteTracker.find(params[:tracker_id])
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ProjectRemoteIssuesController < ApplicationController
4
+ module Index
5
+ def index
6
+ @trackers = ::RemoteTracker.order(profile: :asc, root_url: :asc, username: :asc)
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ProjectRemoteIssuesController < ApplicationController
4
+ module Update
5
+ def update
6
+ update = update_model_class.new(update_params)
7
+ if update.save
8
+ update_redirect(update, "Demanda atualizada: \##{update.remote_issue.local_issue.id}")
9
+ else
10
+ update_redirect(update, "Falha ao tentar atualizar demanda: #{update.errors.messages}")
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def update_model_class
17
+ ::RedmineRemotes::Tableless::RemoteIssueFetch::Update
18
+ end
19
+
20
+ def update_params
21
+ { remote_issue_id: params[:remote_issue_id] }
22
+ end
23
+
24
+ def update_redirect(update, message)
25
+ flash[:notice] = message
26
+ redirect_to url_for(action: 'index', id: update.remote_issue.local_issue.project.identifier)
27
+ end
28
+ end
29
+ end
@@ -1,44 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ProjectRemoteIssuesController < ApplicationController
4
- before_action :find_project
5
- before_action :find_remote_tracker, only: %i[create new]
6
-
7
- def index
8
- @trackers = ::RemoteTracker.order(profile: :asc, root_url: :asc, username: :asc)
9
- end
10
-
11
- def new
12
- @add_issue = model_class.new(context_params)
13
- end
14
-
15
- def create
16
- @add_issue = model_class.new(create_params)
17
- if @add_issue.save
18
- flash[:notice] = "Demanda salva: \##{@add_issue.local_issue.id}"
19
- redirect_to url_for(action: 'index', id: @project.identifier, tracker_id: @remote_tracker.id)
20
- else
21
- render 'new'
22
- end
23
- end
24
-
25
- private
4
+ include ::ProjectRemoteIssuesController::Create
5
+ include ::ProjectRemoteIssuesController::Index
6
+ include ::ProjectRemoteIssuesController::Update
26
7
 
27
- def model_class
28
- ::RedmineRemotes::Tableless::RemoteIssueFetch::Create
29
- end
30
-
31
- def context_params
32
- { project_id: @project.id, remote_tracker_id: @remote_tracker.id }
33
- end
34
-
35
- def create_params
36
- params.fetch(model_class.model_name.param_key).permit(
37
- :issue_remote_code, :local_tracker_id
38
- ).merge(context_params)
39
- end
40
-
41
- def find_remote_tracker
42
- @remote_tracker = ::RemoteTracker.find(params[:tracker_id])
43
- end
8
+ before_action :find_project
44
9
  end
@@ -0,0 +1,21 @@
1
+ <h3><%= t(:label_remote_issues) %></h3>
2
+ <table class="list">
3
+ <thead>
4
+ <tr>
5
+ <th><%= t(:field_remote_tracker) %></th>
6
+ <th><%= t(:field_remote_code) %></th>
7
+ <th><%= t(:field_local_issue) %></th>
8
+ <th></th>
9
+ </tr>
10
+ </thead>
11
+ <tbody>
12
+ <% @project.remote_issues.each do |ri| %>
13
+ <tr>
14
+ <td><%= ri.remote_tracker %></td>
15
+ <td><%= ri.remote_code %></td>
16
+ <td style="text-align: left"><%= link_to(ri.local_issue, issue_path(ri.local_issue)) %></td>
17
+ <td><%= link_to 'Update', update_project_remote_issue_path(@project.id, ri), method: :put %></td>
18
+ </tr>
19
+ <% end %>
20
+ </tbody>
21
+ </table>
@@ -1,2 +1,3 @@
1
1
  <h2><%= t(:label_remote_issues) %></h2>
2
2
  <%= render partial: 'trackers' %>
3
+ <%= render partial: 'issues' %>
@@ -2,5 +2,6 @@
2
2
 
3
3
  require 'redmine_remotes/patches/issue'
4
4
  require 'redmine_remotes/patches/issue_status'
5
+ require 'redmine_remotes/patches/project'
5
6
  require 'redmine_remotes/patches/tracker'
6
7
  require 'redmine_remotes/patches/user'
@@ -6,7 +6,10 @@ en:
6
6
  jira:
7
7
  label: Jira
8
8
  field_issue_remote_code: Remote issue's code
9
+ field_local_issue: Local issue
9
10
  field_local_tracker: Local tracker
11
+ field_remote_code: Remote code
12
+ field_remote_tracker: Remote tracker
10
13
  label_remote_issues: Remote issues
11
14
  label_remote_trackers: Remote trackers
12
15
  label_remote_issue_statuses: Remote issue statuses
@@ -6,7 +6,10 @@ pt-BR:
6
6
  jira:
7
7
  label: Jira
8
8
  field_issue_remote_code: Código da demanda remota
9
+ field_local_issue: Demanda local
9
10
  field_local_tracker: Tipo de tarefa local
11
+ field_remote_code: Código remoto
12
+ field_remote_tracker: Tracker remoto
10
13
  label_remote_issues: Demandas remotas
11
14
  label_remote_trackers: Trackers remotos
12
15
  label_remote_issue_statuses: Situações de demandas remotas
data/config/routes.rb CHANGED
@@ -6,6 +6,8 @@ RedmineApp::Application.routes.draw do
6
6
  as: 'new_project_remote_issue'
7
7
  post '/projects/:id/tracker/:tracker_id/new_issue', to: 'project_remote_issues#create',
8
8
  as: 'create_project_remote_issue'
9
+ put '/projects/:id/remote_issue/:remote_issue_id/update', to: 'project_remote_issues#update',
10
+ as: 'update_project_remote_issue'
9
11
  resources(:project_remote_issues, only: [:index])
10
12
  resources(:remote_trackers) { as_routes }
11
13
  resources(:remote_issues) { as_routes }
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/patch'
4
+
5
+ module EacRedmineUsability
6
+ module Patches
7
+ module Project
8
+ extend ::ActiveSupport::Concern
9
+
10
+ included do
11
+ include InstanceMethods
12
+ end
13
+
14
+ module InstanceMethods
15
+ def remote_issues
16
+ ::RemoteIssue.where('local_issue_id in (select id from issues where project_id = ?)', id)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ require_dependency 'project'
24
+ ::EacRubyUtils.patch(::Project, ::EacRedmineUsability::Patches::Project)
@@ -3,7 +3,7 @@
3
3
  module RedmineRemotes
4
4
  SLUG = 'redmine_remotes'
5
5
  NAME = 'Redmine Remotes'
6
- VERSION = '0.6.0'
6
+ VERSION = '0.7.0'
7
7
  AUTHOR = 'Eduardo Henrique Bogoni'
8
8
  SUMMARY = 'Integração do Redmine com trackers diversos.'
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redmine_remotes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Henrique Bogoni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-30 00:00:00.000000000 Z
11
+ date: 2020-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -125,6 +125,9 @@ extensions: []
125
125
  extra_rdoc_files: []
126
126
  files:
127
127
  - app/controllers/project_remote_issues_controller.rb
128
+ - app/controllers/project_remote_issues_controller/create.rb
129
+ - app/controllers/project_remote_issues_controller/index.rb
130
+ - app/controllers/project_remote_issues_controller/update.rb
128
131
  - app/controllers/remote_issue_statuses_controller.rb
129
132
  - app/controllers/remote_issues_controller.rb
130
133
  - app/controllers/remote_trackers_controller.rb
@@ -144,6 +147,7 @@ files:
144
147
  - app/models/remote_tracker.rb
145
148
  - app/models/remote_tracker/jira.rb
146
149
  - app/models/remote_user.rb
150
+ - app/views/project_remote_issues/_issues.html.erb
147
151
  - app/views/project_remote_issues/_trackers.html.erb
148
152
  - app/views/project_remote_issues/index.html.erb
149
153
  - app/views/project_remote_issues/new.html.erb
@@ -165,6 +169,7 @@ files:
165
169
  - lib/redmine_remotes/jira/instance.rb
166
170
  - lib/redmine_remotes/patches/issue.rb
167
171
  - lib/redmine_remotes/patches/issue_status.rb
172
+ - lib/redmine_remotes/patches/project.rb
168
173
  - lib/redmine_remotes/patches/tracker.rb
169
174
  - lib/redmine_remotes/patches/user.rb
170
175
  - lib/redmine_remotes/rest_provider/http_response.rb