conschedule 0.1.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.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +154 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/config/conschedule_manifest.js +2 -0
  6. data/app/assets/fonts/icomoon.eot +0 -0
  7. data/app/assets/fonts/proxima_nova_100.eot +0 -0
  8. data/app/assets/fonts/proxima_nova_400.eot +0 -0
  9. data/app/assets/fonts/proxima_nova_700.eot +0 -0
  10. data/app/assets/images/conschedule/chosen-sprite-small.png +0 -0
  11. data/app/assets/images/conschedule/chosen-sprite.png +0 -0
  12. data/app/assets/images/conschedule/close.png +0 -0
  13. data/app/assets/images/conschedule/spinner-small.gif +0 -0
  14. data/app/assets/images/conschedule/spinner.gif +0 -0
  15. data/app/assets/javascripts/conschedule/application.js +22 -0
  16. data/app/assets/javascripts/conschedule/calendar.js +467 -0
  17. data/app/assets/javascripts/conschedule/date.js +104 -0
  18. data/app/assets/javascripts/conschedule/form.js +53 -0
  19. data/app/assets/javascripts/conschedule/home.js +149 -0
  20. data/app/assets/javascripts/conschedule/jquery-ui-datepicker.min.js +1674 -0
  21. data/app/assets/javascripts/conschedule/jquery.easing.min.js +44 -0
  22. data/app/assets/javascripts/conschedule/jquery.validate.js +1532 -0
  23. data/app/assets/javascripts/conschedule/js_time_zone.js +1433 -0
  24. data/app/assets/javascripts/conschedule/moment-timezone.js +1209 -0
  25. data/app/assets/javascripts/conschedule/moment.js +4195 -0
  26. data/app/assets/javascripts/conschedule/schedules.js +22 -0
  27. data/app/assets/javascripts/conschedule/time_zones_drop_down.js +609 -0
  28. data/app/assets/stylesheets/conschedule/application.css +4 -0
  29. data/app/assets/stylesheets/conschedule/common.css +816 -0
  30. data/app/assets/stylesheets/conschedule/home.css +2441 -0
  31. data/app/assets/stylesheets/conschedule/main.css +884 -0
  32. data/app/assets/stylesheets/conschedule/schedules.css +4 -0
  33. data/app/controllers/conschedule/application_controller.rb +49 -0
  34. data/app/controllers/conschedule/schedules_controller.rb +125 -0
  35. data/app/helpers/conschedule/application_helper.rb +15 -0
  36. data/app/helpers/conschedule/schedules_helper.rb +43 -0
  37. data/app/jobs/conschedule/application_job.rb +4 -0
  38. data/app/mailers/conschedule/schedules_mailer.rb +46 -0
  39. data/app/models/conschedule/application_record.rb +5 -0
  40. data/app/models/conschedule/schedule.rb +63 -0
  41. data/app/views/conschedule/schedules/_confirmation.html.erb +38 -0
  42. data/app/views/conschedule/schedules/_page_one.html.erb +75 -0
  43. data/app/views/conschedule/schedules/_page_three.html.erb +94 -0
  44. data/app/views/conschedule/schedules/_page_two.html.erb +22 -0
  45. data/app/views/conschedule/schedules/_schedules.html.erb +122 -0
  46. data/app/views/conschedule/schedules/create.js.erb +11 -0
  47. data/app/views/conschedule/schedules/index.html.erb +123 -0
  48. data/app/views/conschedule/schedules/index.js.erb +3 -0
  49. data/app/views/conschedule/schedules/new.html.erb +11 -0
  50. data/app/views/conschedule/schedules_mailer/send_cancel_email_owner.html.erb +61 -0
  51. data/app/views/conschedule/schedules_mailer/send_cancel_email_user.html.erb +29 -0
  52. data/app/views/conschedule/schedules_mailer/send_confirmation_email_owner.html.erb +77 -0
  53. data/app/views/conschedule/schedules_mailer/send_confirmation_email_user.html.erb +30 -0
  54. data/app/views/kaminari/custom_theme/_first_page.html.erb +3 -0
  55. data/app/views/kaminari/custom_theme/_gap.html.erb +1 -0
  56. data/app/views/kaminari/custom_theme/_last_page.html.erb +3 -0
  57. data/app/views/kaminari/custom_theme/_next_page.html.erb +1 -0
  58. data/app/views/kaminari/custom_theme/_page.html.erb +5 -0
  59. data/app/views/kaminari/custom_theme/_paginator.html.erb +23 -0
  60. data/app/views/kaminari/custom_theme/_prev_page.html.erb +1 -0
  61. data/app/views/layouts/conschedule/application.html.erb +14 -0
  62. data/app/views/layouts/conschedule/mailer.html.erb +11 -0
  63. data/app/views/layouts/conschedule/schedules.html.erb +14 -0
  64. data/config/initializers/assets.rb +11 -0
  65. data/config/routes.rb +11 -0
  66. data/db/migrate/20160812085505_create_conschedule_schedules.rb +27 -0
  67. data/lib/conschedule.rb +34 -0
  68. data/lib/conschedule/configuration.rb +25 -0
  69. data/lib/conschedule/engine.rb +5 -0
  70. data/lib/conschedule/gem_dependencies.rb +2 -0
  71. data/lib/conschedule/version.rb +3 -0
  72. data/lib/generators/conschedule/install_generator.rb +23 -0
  73. data/lib/generators/conschedule/views_generator.rb +45 -0
  74. data/lib/generators/templates/README +40 -0
  75. data/lib/generators/templates/initializer.rb +25 -0
  76. data/lib/tasks/conschedule_tasks.rake +4 -0
  77. metadata +182 -0
@@ -0,0 +1,29 @@
1
+ <div bgcolor="#ffffff" style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;min-height:100%;width:100%!important;background-color:#ffffff">
2
+ <div style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;padding:20px 0;margin:0 auto;max-width:600px">
3
+ <table style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;width:80%;margin:20px auto 0;width:80%;margin:30px auto 0;font-size:16px">
4
+ <tbody>
5
+ <tr style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif">
6
+ <td style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;color:#666a7a;line-height:22px">
7
+ <div style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif">
8
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px">Hi <%= @schedule.full_name %>,</p>
9
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px">
10
+ Your <%= @schedule.event_name %> with <%= Conschedule.contact_name %> at
11
+ <span tabindex="0">
12
+ <span><%= @schedule.slot_start_time.strftime("%-l:%M%P") %></span>
13
+ </span>
14
+ (<%= @schedule.user_tz_offset %>) on <%= @slot_date %> has been canceled.
15
+ </p>
16
+ </div>
17
+ <% unless @schedule.cancel_reason.blank? %>
18
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;margin-top:30px;color:#e41600">
19
+ <strong style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:14px">Cancellation Reason:</strong>
20
+ <br style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif">
21
+ <span style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px"><%= @schedule.cancel_reason %></span>
22
+ </p>
23
+ <% end %>
24
+ </td>
25
+ </tr>
26
+ </tbody>
27
+ </table>
28
+ </div>
29
+ </div>
@@ -0,0 +1,77 @@
1
+ <div bgcolor="#ffffff" style="background-color:#ffffff">
2
+ <div style="padding:20px 0;margin:0 auto;max-width:600px">
3
+ <table style="width:80%;margin:0 auto;padding-bottom:20px;border-bottom:1px dashed #dadada">
4
+ <tbody>
5
+ <tr>
6
+ <td style="text-align:center">
7
+ <p>
8
+ </p>
9
+ </td>
10
+ </tr>
11
+ </tbody>
12
+ </table>
13
+ <table style="width:80%;margin:30px auto 0;font-size:16px">
14
+ <tbody>
15
+ <tr>
16
+ <td style="color:#666a7a;line-height:22px">
17
+ <p style="margin-bottom:12px">
18
+ Hi <%= Conschedule.contact_name %>,
19
+ </p>
20
+ <p style="margin-bottom:12px">
21
+ A new event has been scheduled.
22
+ </p>
23
+ <p style="margin-bottom:12px">
24
+ <strong style="font-size:14px">
25
+ Event Type:
26
+ </strong>
27
+ <br> <%= @schedule.event_name %>
28
+ </p>
29
+ <p style="margin-bottom:12px">
30
+ <strong style="font-size:14px">
31
+ Invitee:
32
+ </strong>
33
+ <br> <%= @schedule.full_name %>
34
+ </p>
35
+ <p style="margin-bottom:12px">
36
+ <strong style="font-size:14px">
37
+ Invitee Email:
38
+ </strong>
39
+ <br>
40
+ <a href="mailto:<%= @schedule.email %>" target="_blank"><%= @schedule.email %></a>
41
+ </p>
42
+ <p style="margin-bottom:12px">
43
+ <strong style="font-size:14px">
44
+ Event Date/Time:
45
+ </strong>
46
+ <br>
47
+ <span tabindex="0">
48
+ <span><%= @slot_start_time.strftime("%-l:%M%P") %></span>
49
+ </span>
50
+ - <%= @schedule.slot_start_time.strftime("%A, %B %-d, %Y") %> (<%= @schedule.app_tz_offset %>)
51
+ </p>
52
+ <p style="margin-bottom:12px">
53
+ <strong style="font-size:14px">
54
+ Description:
55
+ </strong>
56
+ <br> <%= @schedule.event_description %>
57
+ </p>
58
+ <p style="margin-bottom:12px">
59
+ <strong style="font-size:14px">
60
+ Location:
61
+ </strong>
62
+ <br><%= @schedule.location_details %>
63
+ </p>
64
+ </td>
65
+ </tr>
66
+ </tbody>
67
+ </table>
68
+ <table style="width:80%;margin:30px auto;border-top:1px dashed #dadada">
69
+ <tbody>
70
+ <tr>
71
+ <td style="color:#a8a8a8;padding-top:15px">
72
+ </td>
73
+ </tr>
74
+ </tbody>
75
+ </table>
76
+ </div>
77
+ </div>
@@ -0,0 +1,30 @@
1
+ <div bgcolor="#ffffff" style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;min-height:100%;width:100%!important;background-color:#ffffff">
2
+ <div style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;padding:20px 0;margin:0 auto;max-width:600px">
3
+ <table style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;width:80%;margin:20px auto 0;width:80%;margin:30px auto 0;font-size:16px">
4
+ <tbody>
5
+ <tr style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif">
6
+ <td style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;color:#666a7a;line-height:22px">
7
+ <div style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif">
8
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px">Hi <%= @schedule.full_name %>,</p>
9
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px">
10
+ Your <%= @schedule.event_name %> with <%= Conschedule.contact_name %> at
11
+ <span tabindex="0">
12
+ <span><%= @schedule.slot_start_time.strftime("%-l:%M%P") %></span>
13
+ </span>
14
+ (<%= @schedule.user_tz_offset %>) on <%= @slot_date %> is scheduled.
15
+ </p>
16
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px">
17
+ <%= @schedule.event_description %>
18
+ </p>
19
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px">
20
+ <strong style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif">Location:</strong>
21
+ <%= @schedule.location_details %>
22
+ </p>
23
+ <p style="margin:0;padding:0;font-family:Proxima Nova,proxima-nova,Helvetica,Arial sans-serif;font-size:16px;margin-top:12px"></p>
24
+ </div>
25
+ </td>
26
+ </tr>
27
+ </tbody>
28
+ </table>
29
+ </div>
30
+ </div>
@@ -0,0 +1,3 @@
1
+ <span class="first">
2
+ <%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url, :remote => remote %>
3
+ </span>
@@ -0,0 +1 @@
1
+ <span class="page gap"><%= t('views.pagination.truncate').html_safe %></span>
@@ -0,0 +1,3 @@
1
+ <span class="last">
2
+ <%= link_to_unless current_page.last?, t('views.pagination.last').html_safe, url, :remote => remote %>
3
+ </span>
@@ -0,0 +1 @@
1
+ <%= link_to_unless current_page.last?, ">", url, rel: 'next', remote: remote, class: "page-link next" %>
@@ -0,0 +1,5 @@
1
+ <% if page.current? %>
2
+ <span class="current"><%= page %></span>
3
+ <% else %>
4
+ <%= link_to_unless page.current?, page, url, {remote: remote, rel: page.next? ? 'next' : page.prev? ? 'prev' : nil, class: "page-link"} %>
5
+ <% end %>
@@ -0,0 +1,23 @@
1
+ <%= paginator.render do -%>
2
+ <div class="js-pagination-region row">
3
+ <div class="pagination right light-theme simple-pagination">
4
+ <ul>
5
+ <%= prev_page_tag unless current_page.first? %>
6
+ <% each_page do |page| -%>
7
+ <% if page.left_outer? || page.right_outer? || page.inside_window? -%>
8
+ <li class="<%= 'active' if page.current? %>">
9
+ <%= page_tag page %>
10
+ </li>
11
+ <% elsif !page.was_truncated? -%>
12
+ <li>
13
+ <%= gap_tag %>
14
+ </li>
15
+ <% end -%>
16
+ <% end -%>
17
+ <li>
18
+ <%= next_page_tag unless current_page.last? %>
19
+ </li>
20
+ </ul>
21
+ </div>
22
+ </div>
23
+ <% end -%>
@@ -0,0 +1 @@
1
+ <%= link_to_unless current_page.first?, "<", url, rel: 'prev', remote: remote, class: "page-link prev" %>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <%= Gon::Base.render_data %>
5
+ <%= stylesheet_link_tag "conschedule/application", media: "all" %>
6
+ <%= javascript_include_tag "conschedule/application" %>
7
+ <%= csrf_meta_tags %>
8
+ <meta content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" name="viewport">
9
+ <meta content="yes" name="apple-mobile-web-app-capable">
10
+ </head>
11
+ <body class='dashboard publishers page-loaded'>
12
+ <%= yield %>
13
+ </body>
14
+ </html>
@@ -0,0 +1,11 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <style>
6
+ </style>
7
+ </head>
8
+ <body>
9
+ <%= yield %>
10
+ </body>
11
+ </html>
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <%= Gon::Base.render_data %>
5
+ <%= stylesheet_link_tag "conschedule/schedules", media: "all" %>
6
+ <%= javascript_include_tag "conschedule/schedules" %>
7
+ <%= csrf_meta_tags %>
8
+ <meta content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" name="viewport">
9
+ <meta content="yes" name="apple-mobile-web-app-capable">
10
+ </head>
11
+ <body class='page-loaded'>
12
+ <%= yield %>
13
+ </body>
14
+ </html>
@@ -0,0 +1,11 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Version of your assets, change this if you want to expire all your assets.
4
+ Rails.application.config.assets.version = '1.0'
5
+
6
+ # Add additional assets to the asset load path
7
+ # Rails.application.config.assets.paths << Emoji.images_path
8
+
9
+ # Precompile additional assets.
10
+ # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
11
+ Rails.application.config.assets.precompile += %w( conschedule/schedules.css conschedule/schedules.js )
@@ -0,0 +1,11 @@
1
+ Conschedule::Engine.routes.draw do
2
+
3
+ root to: "schedules#index"
4
+
5
+ resources :schedules do
6
+ member do
7
+ post 'cancel'
8
+ end
9
+ end
10
+
11
+ end
@@ -0,0 +1,27 @@
1
+ class CreateConscheduleSchedules < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :conschedule_schedules do |t|
4
+ t.string :app_time_zone
5
+ t.string :user_time_zone
6
+ t.string :app_tz_offset
7
+ t.string :user_tz_offset
8
+ t.string :event_name
9
+ t.string :event_description
10
+ t.string :location_details
11
+ t.datetime :slot_start_time
12
+ t.datetime :slot_end_time
13
+ t.string :contact_name
14
+ t.string :first_name
15
+ t.string :last_name
16
+ t.string :phone
17
+ t.string :email
18
+ t.text :message
19
+ t.string :status, default: :active
20
+ t.string :cancel_reason
21
+ t.timestamps
22
+ end
23
+
24
+ add_index :conschedule_schedules, :slot_start_time
25
+ add_index :conschedule_schedules, :status
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ require "conschedule/engine"
2
+ require "conschedule/configuration"
3
+ require "conschedule/gem_dependencies"
4
+
5
+ module Conschedule
6
+
7
+ extend Configuration
8
+
9
+ # default configuration
10
+ define_setting :main_heading, "Contact"
11
+ define_setting :purpose, 'An introduction to our product'
12
+ define_setting :instructions, 'Learn about our product'
13
+ define_setting :location_details, 'Details will be provided on confirmation'
14
+ define_setting :system_time_zone, "Asia/Kolkata"
15
+ define_setting :start_date, Time.now.in_time_zone(Conschedule.system_time_zone).beginning_of_year.strftime("%Y-%m-%d")
16
+ define_setting :end_date, Time.now.in_time_zone(Conschedule.system_time_zone).end_of_year.strftime("%Y-%m-%d")
17
+ define_setting :available_days, ["Mon", "Tue", "Wed", "Thu", "Fri"]
18
+ define_setting :black_out_dates
19
+ define_setting :sun_timings, ["09:00", "22:00"]
20
+ define_setting :mon_timings, ["09:00", "22:00"]
21
+ define_setting :tue_timings, ["09:00", "22:00"]
22
+ define_setting :wed_timings, ["09:00", "22:00"]
23
+ define_setting :thu_timings, ["09:00", "22:00"]
24
+ define_setting :fri_timings, ["09:00", "22:00"]
25
+ define_setting :sat_timings, ["09:00", "22:00"]
26
+ define_setting :duration, 30
27
+ define_setting :from_address, "PLEASE-CHANGE-ME@example.com"
28
+ define_setting :send_confirmation_mail, false
29
+ define_setting :send_cancel_mail, false
30
+ define_setting :to_address, "PLEASE-CHANGE-ME@example.com"
31
+ define_setting :contact_name, "PLEASE-CHANGE-ME"
32
+ define_setting :enable_tz, true
33
+
34
+ end
@@ -0,0 +1,25 @@
1
+ module Configuration
2
+
3
+ def configuration
4
+ yield self
5
+ end
6
+
7
+ def define_setting(name, default = nil)
8
+ class_variable_set("@@#{name}", default)
9
+ define_class_method "#{name}=" do |value|
10
+ class_variable_set("@@#{name}", value)
11
+ end
12
+ define_class_method name do
13
+ class_variable_get("@@#{name}")
14
+ end
15
+ end
16
+
17
+ private
18
+
19
+ def define_class_method(name, &block)
20
+ (class << self; self; end).instance_eval do
21
+ define_method name, &block
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,5 @@
1
+ module Conschedule
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Conschedule
4
+ end
5
+ end
@@ -0,0 +1,2 @@
1
+ require 'gon'
2
+ require 'kaminari'
@@ -0,0 +1,3 @@
1
+ module Conschedule
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,23 @@
1
+ module Conschedule
2
+ module Generators
3
+
4
+ class InstallGenerator < Rails::Generators::Base #:nodoc:
5
+ source_root File.expand_path("../../templates", __FILE__)
6
+
7
+ desc "Creates a Conschedule initializer and copy migration file to your application."
8
+
9
+ def copy_initializer
10
+ copy_file "initializer.rb", "config/initializers/conschedule.rb"
11
+ end
12
+
13
+ def copy_migration
14
+ run('rails conschedule:install:migrations')
15
+ end
16
+
17
+ def show_readme
18
+ readme "README"
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,45 @@
1
+ module Conschedule
2
+ module Generators
3
+
4
+ module ViewPathTemplates #:nodoc:
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ class_option :views, aliases: "-v", type: :array, desc: "Select specific views to generate (form, listing page, mailer)"
9
+ end
10
+
11
+ protected
12
+ def view_directory(name)
13
+ if name.to_s == "form"
14
+ directory "conschedule/schedules", "app/views/conschedule/schedules", exclude_pattern: /index|_schedules/
15
+ elsif name.to_s == "listing"
16
+ ["index.html.erb","index.js.erb","_schedules.html.erb"].each do |file|
17
+ copy_file "conschedule/schedules/#{file}", "app/views/conschedule/schedules/#{file}"
18
+ end
19
+ directory "kaminari", "app/views/kaminari"
20
+ elsif name.to_s == "mailer"
21
+ directory "conschedule/schedules_mailer", "app/views/conschedule/schedules_mailer"
22
+ end
23
+ end
24
+ end
25
+
26
+ class ViewsGenerator < Rails::Generators::Base #:nodoc:
27
+ include ViewPathTemplates
28
+
29
+ source_root File.expand_path("../../../../app/views", __FILE__)
30
+
31
+ desc "Copies Conschedule views to your application."
32
+ def copy_views
33
+ if options[:views]
34
+ options[:views].each do |directory|
35
+ view_directory directory.to_sym
36
+ end
37
+ else
38
+ view_directory :form
39
+ view_directory :listing
40
+ view_directory :mailer
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,40 @@
1
+ ===============================================================================
2
+
3
+ Some setup you must do manually if you haven't yet:
4
+
5
+ 1. Ensure you have no pending migrations, run:
6
+
7
+ rails db:migrate RAILS_ENV=development
8
+
9
+ 2. Add the following to your routes.rb file:
10
+
11
+ mount Conschedule::Engine, at: "/"
12
+
13
+ (NOTE: You may mount it at any path, not just "/")
14
+
15
+ 3. If you wish to authenticate listing page with Devise, it would look something like:
16
+
17
+ authenticate :admin do
18
+ get "/admin/schedules" => "conschedule/schedules#index"
19
+ end
20
+
21
+ 4. Ensure you have set 'from_address' and 'contact_name' in config/initializers/conschedule.rb
22
+
23
+ config.from_address = "foo@example.com"
24
+ config.contact_name = "foo"
25
+
26
+ 5. If you wish to receive confirmation and cancel mails, ensure you have set following config variables in config/initializers/conschedule.rb:
27
+
28
+ config.send_confirmation_mail = true
29
+ config.send_cancel_mail = true
30
+ config.to_address = "foo@example.com"
31
+
32
+ 6. You can copy Conschedule views (for customization) to your app by running:
33
+
34
+ rails g conschedule:views
35
+
36
+ OR
37
+
38
+ rails g conschedule:views -v form listing mailer
39
+
40
+ ===============================================================================