redmine_remotes 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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