redmine_mautic 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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