redmine_mautic 0.1.1

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.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +39 -0
  3. data/Rakefile +17 -0
  4. data/app/assets/images/redmine_mautic/.keep +0 -0
  5. data/app/assets/javascripts/redmine_mautic/.keep +0 -0
  6. data/app/assets/stylesheets/redmine_mautic/.keep +0 -0
  7. data/app/controllers/redmine_mautic_controller.rb +3 -0
  8. data/app/helpers/.keep +0 -0
  9. data/app/mailers/.keep +0 -0
  10. data/app/models/.keep +0 -0
  11. data/app/views/.keep +0 -0
  12. data/app/views/issues/redmine_mautic/_view_issues_show_details_bottom.html.erb +8 -0
  13. data/app/views/redmine_mautic/_form.html.erb +32 -0
  14. data/app/views/redmine_mautic/edit.html.erb +8 -0
  15. data/app/views/redmine_mautic/index.html.erb +37 -0
  16. data/app/views/redmine_mautic/new.html.erb +8 -0
  17. data/config/initializers/01_access_control.rb +37 -0
  18. data/config/initializers/02_menu_manager.rb +24 -0
  19. data/config/initializers/03_hooks.rb +8 -0
  20. data/config/initializers/04_features.rb +7 -0
  21. data/config/initializers/mautic.rb +1 -0
  22. data/config/locales/en.yml +4 -0
  23. data/config/routes.rb +23 -0
  24. data/db/migrate/.keeo +0 -0
  25. data/gems.rb +20 -0
  26. data/lib/redmine_mautic.rb +7 -0
  27. data/lib/redmine_mautic/engine.rb +12 -0
  28. data/lib/redmine_mautic/version.rb +3 -0
  29. data/lib/tasks/redmine_mautic.rake +16 -0
  30. data/patches/controllers/issues_controller.rb.example +37 -0
  31. data/patches/core_ext/string.rb.example +20 -0
  32. data/patches/models/project.rb.example +28 -0
  33. data/spec/controllers/submit_form_spec.rb +42 -0
  34. data/spec/factories/factory.rb +7 -0
  35. data/spec/features/feature_spec.rb +6 -0
  36. data/spec/models/model_spec.rb +7 -0
  37. data/spec/requests/redmine_mautic_spec.rb +20 -0
  38. data/spec/spec_helper.rb +9 -0
  39. data/spec/support/support.rb +4 -0
  40. 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
@@ -0,0 +1,3 @@
1
+ class RedmineMauticController < ApplicationController
2
+ include ::Mautic::ConnectionsControllerConcern
3
+ end
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,8 @@
1
+ <% Rys::Feature.on('redmine_mautic.issue.show') do %>
2
+ <hr>
3
+ <div>
4
+ <strong>Test 1</strong> <%= @redmine_mautic_test_1 %><br>
5
+ <strong>Test 2</strong> <%= @redmine_mautic_test_2 %>
6
+ </div>
7
+ <hr>
8
+ <% end %>
@@ -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,7 @@
1
+ # This file define all features
2
+ #
3
+ # Rys::Feature.add('redmine_mautic.project.show')
4
+ # Rys::Feature.add('redmine_mautic.issue.show')
5
+ # Rys::Feature.add('redmine_mautic.time_entries.show')
6
+
7
+ Rys::Feature.add('redmine_mautic')
@@ -0,0 +1 @@
1
+ Mautic.config.base_url = ->(_) { "#{Setting.protocol}://#{Setting.host_name}" }
@@ -0,0 +1,4 @@
1
+ en:
2
+ redmine_mautic:
3
+ plugin_name: "RedmineMautic"
4
+ label_new_connection: New connection
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,7 @@
1
+ require 'rys'
2
+ require 'mautic'
3
+
4
+ require 'redmine_mautic/engine'
5
+
6
+ module RedmineMautic
7
+ end
@@ -0,0 +1,12 @@
1
+ require 'rys'
2
+
3
+ module RedmineMautic
4
+ class Engine < ::Rails::Engine
5
+ include Rys::EngineExtensions
6
+
7
+ initializer 'redmine_mautic.setup' do
8
+ # Custom initializer
9
+ end
10
+
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ module RedmineMautic
2
+ VERSION = "0.1.1"
3
+ end
@@ -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,7 @@
1
+ # FactoryBot.define do
2
+ #
3
+ # factory :test do
4
+ # sequence(:name) { |n| "Test ##{n}" }
5
+ # end
6
+ #
7
+ # end
@@ -0,0 +1,6 @@
1
+ # RSpec.feature 'Feature test', js: true do
2
+ #
3
+ # scenario 'Scenario' do
4
+ # end
5
+ #
6
+ # end
@@ -0,0 +1,7 @@
1
+ # RSpec.describe 'Model test', logged: :admin do
2
+ #
3
+ # it 'Test something' do
4
+ # expect(1).to eq(1)
5
+ # end
6
+ #
7
+ # 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
@@ -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')
@@ -0,0 +1,4 @@
1
+ # module RedmineMautic::Test
2
+ # module Helper
3
+ # end
4
+ # end
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