redmine_mautic 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +39 -0
- data/Rakefile +17 -0
- data/app/assets/images/redmine_mautic/.keep +0 -0
- data/app/assets/javascripts/redmine_mautic/.keep +0 -0
- data/app/assets/stylesheets/redmine_mautic/.keep +0 -0
- data/app/controllers/redmine_mautic_controller.rb +3 -0
- data/app/helpers/.keep +0 -0
- data/app/mailers/.keep +0 -0
- data/app/models/.keep +0 -0
- data/app/views/.keep +0 -0
- data/app/views/issues/redmine_mautic/_view_issues_show_details_bottom.html.erb +8 -0
- data/app/views/redmine_mautic/_form.html.erb +32 -0
- data/app/views/redmine_mautic/edit.html.erb +8 -0
- data/app/views/redmine_mautic/index.html.erb +37 -0
- data/app/views/redmine_mautic/new.html.erb +8 -0
- data/config/initializers/01_access_control.rb +37 -0
- data/config/initializers/02_menu_manager.rb +24 -0
- data/config/initializers/03_hooks.rb +8 -0
- data/config/initializers/04_features.rb +7 -0
- data/config/initializers/mautic.rb +1 -0
- data/config/locales/en.yml +4 -0
- data/config/routes.rb +23 -0
- data/db/migrate/.keeo +0 -0
- data/gems.rb +20 -0
- data/lib/redmine_mautic.rb +7 -0
- data/lib/redmine_mautic/engine.rb +12 -0
- data/lib/redmine_mautic/version.rb +3 -0
- data/lib/tasks/redmine_mautic.rake +16 -0
- data/patches/controllers/issues_controller.rb.example +37 -0
- data/patches/core_ext/string.rb.example +20 -0
- data/patches/models/project.rb.example +28 -0
- data/spec/controllers/submit_form_spec.rb +42 -0
- data/spec/factories/factory.rb +7 -0
- data/spec/features/feature_spec.rb +6 -0
- data/spec/models/model_spec.rb +7 -0
- data/spec/requests/redmine_mautic_spec.rb +20 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/support/support.rb +4 -0
- metadata +116 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2dd12867669658f7fbef2bf96263cc2b0c7807f0aeab9c3ca35a568460ed5c26
|
4
|
+
data.tar.gz: 35d02d9c9d0321312d04dd097506db2cbe04b45fa7aab1112d9073125c170bd1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5e1a48adcdb3d24d63adef2e70c483951c37cfa03b14f665d3ca6b7d0cf87f958010b7cfd1b55fee1303582b4d306b60cebbaa758df4909039de3ffb1816d08a
|
7
|
+
data.tar.gz: 91c421904416debe2e82ab047d58563a5f2a542968cb38fb149c15390888f5f1acaea26189246bca444e8486dabf70bbd648e687368ec4ffc28161f233d60256
|
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Redmine interface for mautic rails gem
|
2
|
+
|
3
|
+
This [redmine](https://github.com/redmine/redmine) feature allow to simply create new connection to your mautic for API integration
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add to your gemfile
|
8
|
+
|
9
|
+
gem "rys", github: "easysoftware/rys"
|
10
|
+
gem "mautic_redmine", github: "luk4s/redmine_mautic"
|
11
|
+
|
12
|
+
Then run
|
13
|
+
|
14
|
+
bundle install
|
15
|
+
|
16
|
+
And of course migrations
|
17
|
+
|
18
|
+
rake db:migrate
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
Connections list are manage on address `/redmine_mautic`.
|
23
|
+
|
24
|
+
Add new connection in 3+1 steps:
|
25
|
+
|
26
|
+
1. New button on `/redmine_mautic` > type your mautic URL and hit "create"
|
27
|
+
2. In your mautic create new API credentials and as callback url use url from form in redmine.
|
28
|
+
3. Copy keys from mautic to redmine form and press "update".
|
29
|
+
4. Hit "Authorize" button...
|
30
|
+
|
31
|
+
## Development
|
32
|
+
|
33
|
+
For development [ryspec](https://github.com/easysoftware/ryspec) plugin is recommended
|
34
|
+
|
35
|
+
gem 'ryspec', github: "easysoftware/ryspec"
|
36
|
+
|
37
|
+
## Contributing
|
38
|
+
|
39
|
+
Pull requests are welcome
|
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
|
3
|
+
possible_app_dirs = [
|
4
|
+
ENV['DUMMY_PATH'],
|
5
|
+
File.join(Dir.pwd, 'test/dummy')
|
6
|
+
]
|
7
|
+
dir = possible_app_dirs.compact.first
|
8
|
+
|
9
|
+
if !File.directory?(dir)
|
10
|
+
abort("Directory '#{dir}' does not exists")
|
11
|
+
end
|
12
|
+
|
13
|
+
APP_RAKEFILE = File.expand_path(File.join(dir, 'Rakefile'), __dir__)
|
14
|
+
load 'rails/tasks/engine.rake'
|
15
|
+
load 'rails/tasks/statistics.rake'
|
16
|
+
|
17
|
+
Bundler::GemHelper.install_tasks
|
File without changes
|
File without changes
|
File without changes
|
data/app/helpers/.keep
ADDED
File without changes
|
data/app/mailers/.keep
ADDED
File without changes
|
data/app/models/.keep
ADDED
File without changes
|
data/app/views/.keep
ADDED
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%= error_messages_for form.object %>
|
2
|
+
|
3
|
+
<div class="box tabular">
|
4
|
+
<p class="field">
|
5
|
+
<%= form.select :type, %w(Mautic::Connections::Oauth2) %>
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p class="field">
|
9
|
+
<%= form.text_field :url, label: form.object.class.human_attribute_name(:url), placeholder: 'https://mautic.org', required: true %>
|
10
|
+
</p>
|
11
|
+
</div>
|
12
|
+
<div class="box tabular">
|
13
|
+
<% unless form.object.new_record? %>
|
14
|
+
<p class="field">
|
15
|
+
<label>Callback url</label>
|
16
|
+
<%= Setting.protocol %>://<%= Setting.host_name %>/mautic/connections/<%= (form.object.id || Mautic::Connection.last.id.next) %>/oauth2
|
17
|
+
<em class="info">Now generate pair of tokens with this callback url</em>
|
18
|
+
</p>
|
19
|
+
<p class="field settings">
|
20
|
+
<%= form.text_field :client_id, label: form.object.class.human_attribute_name(:client_id), size: 50 %>
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<p class="field">
|
24
|
+
<%= form.text_field :secret, label: form.object.class.human_attribute_name(:secret), size: 50 %>
|
25
|
+
</p>
|
26
|
+
|
27
|
+
<% end %>
|
28
|
+
|
29
|
+
<p class="actions">
|
30
|
+
<%= form.submit %>
|
31
|
+
</p>
|
32
|
+
</div>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="contextual">
|
2
|
+
<%= link_to l(:button_back), redmine_mautic_index_path %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<h1>Edit connection to <%= @mautic_connection.url %></h1>
|
6
|
+
<%= labelled_form_for(@mautic_connection, as: :connection, url: redmine_mautic_path(@mautic_connection)) do |form| %>
|
7
|
+
<%= render 'form', form: form %>
|
8
|
+
<% end %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<div class="contextual">
|
2
|
+
<%= link_to l("redmine_mautic.label_new_connection"), new_redmine_mautic_path, class: 'icon icon-add' %>
|
3
|
+
</div>
|
4
|
+
<h1>Mautic Connections</h1>
|
5
|
+
<% if @mautic_connections.any? %>
|
6
|
+
<table class="list">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>Url</th>
|
10
|
+
<th>Client</th>
|
11
|
+
<th>Secret</th>
|
12
|
+
<th></th>
|
13
|
+
</tr>
|
14
|
+
</thead>
|
15
|
+
|
16
|
+
<tbody>
|
17
|
+
<% @mautic_connections.each do |mautic_connection| %>
|
18
|
+
<tr id="<%= dom_id mautic_connection %>">
|
19
|
+
<td><%= mautic_connection.url %></td>
|
20
|
+
<td><%= mautic_connection.client_id %></td>
|
21
|
+
<td><%= mautic_connection.secret %></td>
|
22
|
+
<td class="buttons">
|
23
|
+
<%= link_to l(:button_edit), edit_redmine_mautic_path(mautic_connection), class: 'icon icon-edit' %>
|
24
|
+
<%= link_to l(:button_delete), redmine_mautic_path(mautic_connection), method: :delete, data: { confirm: l(:text_are_you_sure), rmeote: true }, class: 'icon icon-del' %>
|
25
|
+
<% if mautic_connection.refresh_token.blank? %>
|
26
|
+
<%= link_to('Authorize', mautic.authorize_connection_path(mautic_connection), class: 'icon icon-server-authentication', target: '_blank') %>
|
27
|
+
<% else %>
|
28
|
+
<%= link_to('re-Authorize', mautic.authorize_connection_path(mautic_connection), class: 'icon icon-reload', target: '_blank') %>
|
29
|
+
<% end %>
|
30
|
+
</td>
|
31
|
+
</tr>
|
32
|
+
<% end %>
|
33
|
+
</tbody>
|
34
|
+
</table>
|
35
|
+
<% else %>
|
36
|
+
<p class="nodata"><%= l :label_no_data %></p>
|
37
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<div class="contextual">
|
2
|
+
<%= link_to l(:button_back), redmine_mautic_index_path %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<h1>New connection</h1>
|
6
|
+
<%= labelled_form_for(@mautic_connection, as: :connection, url: :redmine_mautic_index) do |form| %>
|
7
|
+
<%= render 'form', form: form %>
|
8
|
+
<% end %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Redmine::AccessControl.map do |map|
|
2
|
+
#
|
3
|
+
# # ---------------------------------------------------------------------------
|
4
|
+
# # Global level
|
5
|
+
#
|
6
|
+
# # View on global
|
7
|
+
#
|
8
|
+
# map.permission(:view_redmine_mautics, {
|
9
|
+
# redmine_mautic: [:index, :show]
|
10
|
+
# }, read: true, global: true)
|
11
|
+
#
|
12
|
+
# # Manage on global
|
13
|
+
#
|
14
|
+
# map.permission(:manage_redmine_mautics, {
|
15
|
+
# redmine_mautic: [:new, :create, :edit, :update, :destroy]
|
16
|
+
# }, require: :loggedin, global: true)
|
17
|
+
#
|
18
|
+
# # ---------------------------------------------------------------------------
|
19
|
+
# # Project level
|
20
|
+
#
|
21
|
+
# map.project_module :redmine_mautic do |pmap|
|
22
|
+
#
|
23
|
+
# # View on project
|
24
|
+
#
|
25
|
+
# pmap.permission(:view_redmine_mautic, {
|
26
|
+
# redmine_mautic: [:index, :show]
|
27
|
+
# }, read: true)
|
28
|
+
#
|
29
|
+
# # Edit on project
|
30
|
+
#
|
31
|
+
# pmap.permission(:manage_redmine_mautic, {
|
32
|
+
# redmine_mautic: [:new, :create, :edit, :update, :destroy]
|
33
|
+
# }, require: :loggedin)
|
34
|
+
#
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Redmine::MenuManager.map :admin_menu do |menu|
|
2
|
+
# menu.push :redmine_mautic,
|
3
|
+
# :redmine_mautics_path,
|
4
|
+
# caption: :label_redmine_mautics,
|
5
|
+
# html: { class: 'icon icon-invoice' },
|
6
|
+
# if: proc { |p| User.current.admin? }
|
7
|
+
# end
|
8
|
+
|
9
|
+
# Redmine::MenuManager.map :project_menu do |menu|
|
10
|
+
# menu.push :redmine_mautic,
|
11
|
+
# :redmine_mautics_path,
|
12
|
+
# caption: :label_redmine_mautics,
|
13
|
+
# param: :project_id,
|
14
|
+
# html: { class: 'icon icon-invoice' },
|
15
|
+
# if: proc { |p| User.current.admin? }
|
16
|
+
# end
|
17
|
+
|
18
|
+
# Redmine::MenuManager.map :top_menu do |menu|
|
19
|
+
# menu.push :redmine_mautic,
|
20
|
+
# :redmine_mautics_path,
|
21
|
+
# caption: :label_redmine_mautics,
|
22
|
+
# html: { class: 'icon icon-invoice' },
|
23
|
+
# if: proc { |p| User.current.admin? }
|
24
|
+
# end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Hooks definitions
|
2
|
+
# http://www.redmine.org/projects/redmine/wiki/Hooks
|
3
|
+
#
|
4
|
+
# module RedmineMautic
|
5
|
+
# class Hooks < ::Redmine::Hook::ViewListener
|
6
|
+
# render_on :view_issues_show_details_bottom, partial: 'issues/redmine_mautic/view_issues_show_details_bottom'
|
7
|
+
# end
|
8
|
+
# end
|
@@ -0,0 +1 @@
|
|
1
|
+
Mautic.config.base_url = ->(_) { "#{Setting.protocol}://#{Setting.host_name}" }
|
data/config/routes.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
|
3
|
+
# Usually definition
|
4
|
+
#
|
5
|
+
# get 'redmine_mautic_issue_1', to: 'issues#index'
|
6
|
+
|
7
|
+
# Conditional definition
|
8
|
+
#
|
9
|
+
# get 'redmine_mautic_issues_2', to: 'issues#index', rys_feature: 'redmine_mautic.issue'
|
10
|
+
|
11
|
+
# Conditional block definiton
|
12
|
+
#
|
13
|
+
# rys_feature 'redmine_mautic.issue' do
|
14
|
+
# get 'redmine_mautic_issues_3', to: 'issues#index'
|
15
|
+
# end
|
16
|
+
|
17
|
+
rys_feature 'redmine_mautic' do
|
18
|
+
mount Mautic::Engine => '/mautic'
|
19
|
+
resources :redmine_mautic
|
20
|
+
end
|
21
|
+
|
22
|
+
# get '/redmine_mautic', to: 'redmine_mautic#index'
|
23
|
+
end
|
data/db/migrate/.keeo
ADDED
File without changes
|
data/gems.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
|
5
|
+
# There are defined commands, after install hook and custom hooks
|
6
|
+
plugin 'rys-bundler', github: 'easysoftware/rys-bundler', branch: 'master'
|
7
|
+
|
8
|
+
# Common dependencies
|
9
|
+
eval_gemfile('dependencies.rb')
|
10
|
+
|
11
|
+
# Loading gems dependecies in right moment
|
12
|
+
Plugin.hook('rys-gemfile', self)
|
13
|
+
|
14
|
+
# Loading gems from dummy application
|
15
|
+
# Possible paths (by priority)
|
16
|
+
# 1. As second argument
|
17
|
+
# 2. Environment variable DUMMY_PATH
|
18
|
+
# 3. Current_dir / test / dummy
|
19
|
+
Plugin.hook('rys-load-dummy', self)
|
20
|
+
gem "mautic", path: "/Users/lukas/_projects/mautic"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
begin
|
2
|
+
require 'rspec/core/rake_task'
|
3
|
+
|
4
|
+
namespace :redmine_mautic do
|
5
|
+
desc 'Runs rspec tests'
|
6
|
+
RSpec::Core::RakeTask.new(:spec) do |task, task_args|
|
7
|
+
args = []
|
8
|
+
args << '--require' << Ryspec::Engine.root.join('spec/spec_helper')
|
9
|
+
|
10
|
+
task.rspec_opts = args
|
11
|
+
task.pattern = RedmineMautic::Engine.root.join('spec/**/*_spec.rb')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
rescue StandardError, LoadError
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
Rys::Patcher.add('IssuesController') do
|
2
|
+
|
3
|
+
included do
|
4
|
+
before_action :redmine_mautic_add_flash_notice, only: [:show]
|
5
|
+
end
|
6
|
+
|
7
|
+
instance_methods do
|
8
|
+
def show
|
9
|
+
Rys::Feature.on('redmine_mautic.issue.show') do
|
10
|
+
@redmine_mautic_test_1 = 'Test 2'
|
11
|
+
end
|
12
|
+
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def redmine_mautic_add_flash_notice
|
19
|
+
if Rys::Feature.active?('redmine_mautic.issue.show', 'redmine_mautic.project.show')
|
20
|
+
flash.now[:notice] = 'Features are activated'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
instance_methods(feature: 'redmine_mautic.issue.show') do
|
27
|
+
def show
|
28
|
+
@redmine_mautic_test_2 = 'Test 2'
|
29
|
+
|
30
|
+
super
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
class_methods do
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Rys::Patcher.add('String') do
|
2
|
+
|
3
|
+
apply_only_once!
|
4
|
+
|
5
|
+
apply_if do
|
6
|
+
!String.new.respond_to?(:to_boolean)
|
7
|
+
end
|
8
|
+
|
9
|
+
instance_methods do
|
10
|
+
def to_boolean
|
11
|
+
case self
|
12
|
+
when 'yes', 'y', 'true', 't', '1'
|
13
|
+
true
|
14
|
+
else
|
15
|
+
false
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Rys::Patcher.add('Project') do
|
2
|
+
|
3
|
+
included do
|
4
|
+
# has_many :things
|
5
|
+
|
6
|
+
after_commit :redmine_mautic_ensure_something, if: -> { Rys::Feature.active?('redmine_mautic.project') }
|
7
|
+
end
|
8
|
+
|
9
|
+
instance_methods do
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def redmine_mautic_ensure_something
|
14
|
+
puts 'Features are activated'
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
instance_methods(feature: 'redmine_mautic.project') do
|
20
|
+
def to_s
|
21
|
+
"I'am cool " + super
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class_methods do
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
RSpec.describe "Submit mautic form", type: :controller do
|
2
|
+
let(:user) { { firstname: "John", lastname: "Doe", mail: "john@doe.com", language: Setting.default_language } }
|
3
|
+
controller do
|
4
|
+
def create
|
5
|
+
@user = User.new(language: Setting.default_language, mail_notification: Setting.default_notification_option)
|
6
|
+
@user.attributes = invite_params
|
7
|
+
@user.login = @user.mail
|
8
|
+
@user.generate_password = true
|
9
|
+
@user.must_change_passwd = true
|
10
|
+
@user.status = User::STATUS_ACTIVE
|
11
|
+
|
12
|
+
Mautic::FormHelper.submit(url: "https://mautic.org", form: '6', request: request) do |data|
|
13
|
+
data.mail = @user.mail
|
14
|
+
data.firstname = @user.firstname
|
15
|
+
data.lastname = @user.lastname
|
16
|
+
data.ep_language = @user.language
|
17
|
+
end
|
18
|
+
|
19
|
+
render plain: "ok"
|
20
|
+
end
|
21
|
+
|
22
|
+
def invite_params
|
23
|
+
permitted_params = [:firstname, :lastname, :mail, :easy_user_type_id, memberships: [:role_id, { project_ids: [] }]]
|
24
|
+
permitted_params << :admin if User.current.admin?
|
25
|
+
@invite_params ||= params.require(:user).permit(permitted_params)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it "like onboarding" do
|
30
|
+
stub = stub_request(:post, "https://mautic.org/form/submit").
|
31
|
+
with(body: ({ 'mauticform' => hash_including({ 'mail' => user[:mail],
|
32
|
+
'firstname' => user[:firstname],
|
33
|
+
'lastname' => user[:lastname],
|
34
|
+
'ep_language' => user[:language],
|
35
|
+
'submit' => '1',
|
36
|
+
'formId' => '6' }) }))
|
37
|
+
|
38
|
+
post :create, { user: user }
|
39
|
+
expect(stub).to have_been_requested
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative "../spec_helper"
|
2
|
+
RSpec.describe "/redmine_mautic", type: :request do
|
3
|
+
|
4
|
+
it '#index' do
|
5
|
+
get "/redmine_mautic"
|
6
|
+
expect(response).to be_success
|
7
|
+
end
|
8
|
+
|
9
|
+
it '#new' do
|
10
|
+
get "/redmine_mautic/new"
|
11
|
+
expect(response).to be_success
|
12
|
+
end
|
13
|
+
|
14
|
+
it '#create' do
|
15
|
+
post "/redmine_mautic", connection: { url: 'https://mautic.org' }
|
16
|
+
expect(response).to be_success
|
17
|
+
expect(response.body).to include("connection[secret]")
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
require 'webmock/rspec'
|
3
|
+
spec = Bundler.load.specs.find{|s| s.name.to_s == 'ryspec' }
|
4
|
+
|
5
|
+
if !spec
|
6
|
+
abort('Gem ryspec was not found. Please add it and run bundle install again.')
|
7
|
+
end
|
8
|
+
|
9
|
+
require File.join(spec.full_gem_path, 'spec/spec_helper')
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: redmine_mautic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Lukáš Pokorný
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-03-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rys
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mautic
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '2.0'
|
41
|
+
description: https://github.com/luk4s/mautic-rails
|
42
|
+
email:
|
43
|
+
- luk4s.pokorny@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- README.md
|
49
|
+
- Rakefile
|
50
|
+
- app/assets/images/redmine_mautic/.keep
|
51
|
+
- app/assets/javascripts/redmine_mautic/.keep
|
52
|
+
- app/assets/stylesheets/redmine_mautic/.keep
|
53
|
+
- app/controllers/redmine_mautic_controller.rb
|
54
|
+
- app/helpers/.keep
|
55
|
+
- app/mailers/.keep
|
56
|
+
- app/models/.keep
|
57
|
+
- app/views/.keep
|
58
|
+
- app/views/issues/redmine_mautic/_view_issues_show_details_bottom.html.erb
|
59
|
+
- app/views/redmine_mautic/_form.html.erb
|
60
|
+
- app/views/redmine_mautic/edit.html.erb
|
61
|
+
- app/views/redmine_mautic/index.html.erb
|
62
|
+
- app/views/redmine_mautic/new.html.erb
|
63
|
+
- config/initializers/01_access_control.rb
|
64
|
+
- config/initializers/02_menu_manager.rb
|
65
|
+
- config/initializers/03_hooks.rb
|
66
|
+
- config/initializers/04_features.rb
|
67
|
+
- config/initializers/mautic.rb
|
68
|
+
- config/locales/en.yml
|
69
|
+
- config/routes.rb
|
70
|
+
- db/migrate/.keeo
|
71
|
+
- gems.rb
|
72
|
+
- lib/redmine_mautic.rb
|
73
|
+
- lib/redmine_mautic/engine.rb
|
74
|
+
- lib/redmine_mautic/version.rb
|
75
|
+
- lib/tasks/redmine_mautic.rake
|
76
|
+
- patches/controllers/issues_controller.rb.example
|
77
|
+
- patches/core_ext/string.rb.example
|
78
|
+
- patches/models/project.rb.example
|
79
|
+
- spec/controllers/submit_form_spec.rb
|
80
|
+
- spec/factories/factory.rb
|
81
|
+
- spec/features/feature_spec.rb
|
82
|
+
- spec/models/model_spec.rb
|
83
|
+
- spec/requests/redmine_mautic_spec.rb
|
84
|
+
- spec/spec_helper.rb
|
85
|
+
- spec/support/support.rb
|
86
|
+
homepage: https://github.com/luk4s
|
87
|
+
licenses:
|
88
|
+
- GPL-2.0-or-later
|
89
|
+
metadata: {}
|
90
|
+
post_install_message:
|
91
|
+
rdoc_options: []
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
requirements: []
|
105
|
+
rubygems_version: 3.0.2
|
106
|
+
signing_key:
|
107
|
+
specification_version: 4
|
108
|
+
summary: Integration mautic rails gem with Redmine
|
109
|
+
test_files:
|
110
|
+
- spec/spec_helper.rb
|
111
|
+
- spec/features/feature_spec.rb
|
112
|
+
- spec/models/model_spec.rb
|
113
|
+
- spec/requests/redmine_mautic_spec.rb
|
114
|
+
- spec/support/support.rb
|
115
|
+
- spec/factories/factory.rb
|
116
|
+
- spec/controllers/submit_form_spec.rb
|