redmine_remotes 0.2.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 +7 -0
- data/app/controllers/remote_issue_statuses_controller.rb +16 -0
- data/app/controllers/remote_trackers_controller.rb +27 -0
- data/app/models/remote_issue_status.rb +12 -0
- data/app/models/remote_tracker.rb +21 -0
- data/config/initializers/000_dependencies.rb +6 -0
- data/config/initializers/001_patches.rb +4 -0
- data/config/initializers/nonproject_modules.rb +17 -0
- data/config/locales/en.yml +9 -0
- data/config/locales/pt-BR.yml +9 -0
- data/config/routes.rb +6 -0
- data/db/migrate/20190531171641_create_remote_trackers.rb +12 -0
- data/db/migrate/20190910203552_create_remote_issue_statuses.rb +16 -0
- data/init.rb +10 -0
- data/lib/redmine_remotes/patches/issue_status.rb +19 -0
- data/lib/redmine_remotes/patches/tracker.rb +19 -0
- data/lib/redmine_remotes/version.rb +9 -0
- data/lib/redmine_remotes.rb +6 -0
- metadata +79 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 62c2b4e39207c1cdbbbb7d6301abf487701667adc2d4b60bb9fca0a8bc7fd1ab
|
4
|
+
data.tar.gz: 83288f88850022c0edd4f0e06df5e9b8b7554988d0c1c9861cb4bfafcd6777c5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2b53804b5da56c2da06dc668ed47f72b15686b8510634c7056c27fe2e9096db0b98b2d139a612a6b07bbf46f5ad9a8c2852c38b8d9ec09e853156e0e7d848e4d
|
7
|
+
data.tar.gz: bbd2c9d1b0c691d78aabe9cf571a0b1ef0a836506826eedb1128ae3f3b4e5781642ee42f31fc6853506df730cbf82fcd8345fe01c01d79f5cb4aded2c51d107c
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class RemoteIssueStatusesController < ApplicationController
|
4
|
+
READ_PERMISSION = 'remote_issue_status.read'
|
5
|
+
WRITE_PERMISSION = 'remote_issue_status.write'
|
6
|
+
PERMISSIONS = READ_PERMISSION
|
7
|
+
|
8
|
+
layout 'nonproject_modules'
|
9
|
+
require_permission PERMISSIONS
|
10
|
+
|
11
|
+
active_scaffold :remote_issue_status do |conf|
|
12
|
+
%i[remote_tracker local_tracker issue_status].each do |column|
|
13
|
+
conf.columns[column].form_ui = :select
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class RemoteTrackersController < ApplicationController
|
4
|
+
READ_PERMISSION = 'remote_tracker.read'
|
5
|
+
WRITE_PERMISSION = 'remote_tracker.write'
|
6
|
+
PERMISSIONS = READ_PERMISSION
|
7
|
+
|
8
|
+
before_action :localize_options
|
9
|
+
layout 'nonproject_modules'
|
10
|
+
require_permission PERMISSIONS
|
11
|
+
|
12
|
+
active_scaffold :remote_tracker do |conf|
|
13
|
+
conf.columns = %i[profile root_url username password]
|
14
|
+
conf.columns[:password].form_ui = :password
|
15
|
+
conf.columns[:profile].form_ui = :select
|
16
|
+
%w[list show].each { |action| conf.send(action).columns.exclude :password }
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def localize_options
|
22
|
+
active_scaffold_config.columns[:profile].options = {
|
23
|
+
options: ::RemoteTracker.lists.profile.options
|
24
|
+
|
25
|
+
}
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class RemoteIssueStatus < ActiveRecord::Base
|
4
|
+
belongs_to :remote_tracker
|
5
|
+
belongs_to :local_tracker, class_name: 'Tracker'
|
6
|
+
belongs_to :issue_status
|
7
|
+
|
8
|
+
validates :remote_name, presence: true, uniqueness: { scope: %i[remote_tracker local_tracker] }
|
9
|
+
validates :remote_tracker, presence: true
|
10
|
+
validates :local_tracker, presence: true
|
11
|
+
validates :issue_status, presence: true
|
12
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/listable'
|
4
|
+
|
5
|
+
class RemoteTracker < ActiveRecord::Base
|
6
|
+
include ::EacRubyUtils::Listable
|
7
|
+
|
8
|
+
lists.add_string :profile, :stub
|
9
|
+
|
10
|
+
has_many :issue_statuses, class_name: 'RemoteIssueStatus', inverse_of: :remote_tracker,
|
11
|
+
dependent: :destroy
|
12
|
+
|
13
|
+
validates :profile, presence: true, inclusion: { in: lists.profile.values }
|
14
|
+
validates :root_url, presence: true, uniqueness: { scope: [:username] }
|
15
|
+
validates :username, presence: true
|
16
|
+
validates :password, presence: true
|
17
|
+
|
18
|
+
def to_s
|
19
|
+
"#{root_url} [#{profile_label}, #{username}]"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
::GroupPermission.add_permission(::RemoteTrackersController::READ_PERMISSION)
|
4
|
+
::GroupPermission.add_permission(
|
5
|
+
::RemoteTrackersController::WRITE_PERMISSION,
|
6
|
+
dependencies: [::RemoteTrackersController::READ_PERMISSION]
|
7
|
+
)
|
8
|
+
::GroupPermission.add_permission(::RemoteIssueStatusesController::READ_PERMISSION)
|
9
|
+
::GroupPermission.add_permission(
|
10
|
+
::RemoteIssueStatusesController::WRITE_PERMISSION,
|
11
|
+
dependencies: [::RemoteIssueStatusesController::READ_PERMISSION]
|
12
|
+
)
|
13
|
+
|
14
|
+
Redmine::MenuManager.map ::RedmineRemotes::SLUG.to_sym do |menu|
|
15
|
+
menu.push_controller(:remote_trackers)
|
16
|
+
menu.push_controller(:remote_issue_statuses)
|
17
|
+
end
|
data/config/routes.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateRemoteIssueStatuses < ActiveRecord::Migration
|
4
|
+
def change
|
5
|
+
create_table :remote_issue_statuses do |t|
|
6
|
+
t.references :remote_tracker, index: true
|
7
|
+
t.references :local_tracker, index: true
|
8
|
+
t.string :remote_name
|
9
|
+
t.references :issue_status, index: true
|
10
|
+
end
|
11
|
+
|
12
|
+
add_foreign_key :remote_issue_statuses, :remote_trackers, column: :remote_tracker_id
|
13
|
+
add_foreign_key :remote_issue_statuses, :trackers, column: :local_tracker_id
|
14
|
+
add_foreign_key :remote_issue_statuses, :issue_statuses, column: :issue_status_id
|
15
|
+
end
|
16
|
+
end
|
data/init.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacRedmineUsability
|
4
|
+
module Patches
|
5
|
+
module IssueStatus
|
6
|
+
extend ::ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
has_many :remote_issue_status, class_name: 'RemoteIssueStatus', inverse_of: :issue_status,
|
10
|
+
dependent: :destroy
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
require_dependency 'issue_status'
|
17
|
+
patch = ::EacRedmineUsability::Patches::IssueStatus
|
18
|
+
target = ::IssueStatus
|
19
|
+
target.send(:include, patch) unless target.included_modules.include?(patch)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacRedmineUsability
|
4
|
+
module Patches
|
5
|
+
module Tracker
|
6
|
+
extend ::ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
has_many :remote_issue_status, class_name: 'RemoteIssueStatus', inverse_of: :local_tracker,
|
10
|
+
dependent: :destroy
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
require_dependency 'tracker'
|
17
|
+
patch = ::EacRedmineUsability::Patches::Tracker
|
18
|
+
target = ::Tracker
|
19
|
+
target.send(:include, patch) unless target.included_modules.include?(patch)
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: redmine_remotes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eduardo Henrique Bogoni
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-09-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: eac_ruby_utils
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.10'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.10.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.10'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.10.1
|
33
|
+
description:
|
34
|
+
email:
|
35
|
+
executables: []
|
36
|
+
extensions: []
|
37
|
+
extra_rdoc_files: []
|
38
|
+
files:
|
39
|
+
- app/controllers/remote_issue_statuses_controller.rb
|
40
|
+
- app/controllers/remote_trackers_controller.rb
|
41
|
+
- app/models/remote_issue_status.rb
|
42
|
+
- app/models/remote_tracker.rb
|
43
|
+
- config/initializers/000_dependencies.rb
|
44
|
+
- config/initializers/001_patches.rb
|
45
|
+
- config/initializers/nonproject_modules.rb
|
46
|
+
- config/locales/en.yml
|
47
|
+
- config/locales/pt-BR.yml
|
48
|
+
- config/routes.rb
|
49
|
+
- db/migrate/20190531171641_create_remote_trackers.rb
|
50
|
+
- db/migrate/20190910203552_create_remote_issue_statuses.rb
|
51
|
+
- init.rb
|
52
|
+
- lib/redmine_remotes.rb
|
53
|
+
- lib/redmine_remotes/patches/issue_status.rb
|
54
|
+
- lib/redmine_remotes/patches/tracker.rb
|
55
|
+
- lib/redmine_remotes/version.rb
|
56
|
+
homepage:
|
57
|
+
licenses: []
|
58
|
+
metadata: {}
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options: []
|
61
|
+
require_paths:
|
62
|
+
- lib
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
requirements: []
|
74
|
+
rubyforge_project:
|
75
|
+
rubygems_version: 2.7.7
|
76
|
+
signing_key:
|
77
|
+
specification_version: 4
|
78
|
+
summary: Integração do Redmine com trackers diversos.
|
79
|
+
test_files: []
|