date_book 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +7 -0
  2. data/.idea/vcs.xml +6 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +23 -0
  5. data/.rubocop_todo.yml +7 -0
  6. data/.ruby-gemset +1 -0
  7. data/.ruby-version +1 -0
  8. data/.travis.yml +3 -0
  9. data/Gemfile +94 -0
  10. data/Gemfile.lock +385 -0
  11. data/LICENSE.txt +20 -0
  12. data/README.md +64 -0
  13. data/Rakefile +30 -0
  14. data/VERSION +1 -0
  15. data/app/assets/images/date_book/.keep +0 -0
  16. data/app/assets/javascripts/date_book.js +21 -0
  17. data/app/assets/javascripts/date_book/calendar_events.js +57 -0
  18. data/app/assets/javascripts/date_book/event_form.js +31 -0
  19. data/app/assets/javascripts/date_book/popovers.js +3 -0
  20. data/app/assets/javascripts/date_book/wysiwyg.js +8 -0
  21. data/app/assets/stylesheets/date_book.css.scss +46 -0
  22. data/app/controllers/date_book/calendars_controller.rb +60 -0
  23. data/app/controllers/date_book/date_book_controller.rb +24 -0
  24. data/app/controllers/date_book/events_controller.rb +105 -0
  25. data/app/controllers/date_book/graphql_controller.rb +35 -0
  26. data/app/graphql/date_book_schema.rb +18 -0
  27. data/app/graphql/types/calendar_type.rb +14 -0
  28. data/app/graphql/types/date_time_type.rb +7 -0
  29. data/app/graphql/types/event_occurrence_type.rb +11 -0
  30. data/app/graphql/types/event_type.rb +19 -0
  31. data/app/graphql/types/mutation_type.rb +5 -0
  32. data/app/graphql/types/profile_type.rb +7 -0
  33. data/app/graphql/types/query_type.rb +57 -0
  34. data/app/helpers/date_book/application_helper.rb +35 -0
  35. data/app/helpers/date_book/calendar_helper.rb +4 -0
  36. data/app/helpers/date_book/events_helper.rb +42 -0
  37. data/app/jobs/date_book/application_job.rb +6 -0
  38. data/app/mailers/date_book/application_mailer.rb +9 -0
  39. data/app/views/date_book/application/_all_day_checkbox.html.haml +1 -0
  40. data/app/views/date_book/application/_date_range.html.haml +8 -0
  41. data/app/views/date_book/application/_wysiwyg.html.haml +65 -0
  42. data/app/views/date_book/calendars/_form.html.haml +6 -0
  43. data/app/views/date_book/calendars/edit.html.haml +5 -0
  44. data/app/views/date_book/calendars/index.html.haml +28 -0
  45. data/app/views/date_book/calendars/new.html.haml +5 -0
  46. data/app/views/date_book/calendars/show.html.haml +28 -0
  47. data/app/views/date_book/events/_event.json.jbuilder +12 -0
  48. data/app/views/date_book/events/_form.html.haml +16 -0
  49. data/app/views/date_book/events/_occurrence_dates.html.haml +11 -0
  50. data/app/views/date_book/events/edit.html.haml +5 -0
  51. data/app/views/date_book/events/fields/_date.html.haml +1 -0
  52. data/app/views/date_book/events/fields/_day.html.haml +1 -0
  53. data/app/views/date_book/events/fields/_day_of_week.html.haml +19 -0
  54. data/app/views/date_book/events/fields/_duration.html.haml +6 -0
  55. data/app/views/date_book/events/fields/_interval.html.haml +1 -0
  56. data/app/views/date_book/events/fields/_time.html.haml +1 -0
  57. data/app/views/date_book/events/index.html.haml +16 -0
  58. data/app/views/date_book/events/new.html.haml +5 -0
  59. data/app/views/date_book/events/popover.html.haml +7 -0
  60. data/app/views/date_book/events/rules/_daily.html.haml +4 -0
  61. data/app/views/date_book/events/rules/_monthly.html.haml +5 -0
  62. data/app/views/date_book/events/rules/_singular.html.haml +4 -0
  63. data/app/views/date_book/events/rules/_weekly.html.haml +5 -0
  64. data/app/views/date_book/events/show.html.haml +16 -0
  65. data/app/views/layouts/_date_book_scripts.html.haml +4 -0
  66. data/app/views/layouts/blank.html.haml +1 -0
  67. data/bin/rails +15 -0
  68. data/config/locales/en.yml +44 -0
  69. data/config/routes.rb +12 -0
  70. data/date_book.gemspec +337 -0
  71. data/db/migrate/20170807133845_create_calendars.rb +11 -0
  72. data/db/migrate/20170807133846_create_events.rb +20 -0
  73. data/db/migrate/20170807133847_create_schedules.rb +25 -0
  74. data/db/migrate/20170807133848_add_fields_to_schedule.rb +6 -0
  75. data/db/migrate/20170807133849_create_event_occurrences.rb +16 -0
  76. data/db/migrate/20170807133850_add_fields_to_event_occurrences.rb +5 -0
  77. data/lib/date_book.rb +40 -0
  78. data/lib/date_book/concerns/ability.rb +27 -0
  79. data/lib/date_book/concerns/acts_as_calendar.rb +29 -0
  80. data/lib/date_book/concerns/acts_as_event.rb +66 -0
  81. data/lib/date_book/concerns/acts_as_event_occurrence.rb +67 -0
  82. data/lib/date_book/concerns/acts_as_ownable.rb +29 -0
  83. data/lib/date_book/concerns/acts_as_owner.rb +18 -0
  84. data/lib/date_book/concerns/acts_as_schedule.rb +44 -0
  85. data/lib/date_book/configuration.rb +43 -0
  86. data/lib/date_book/engine.rb +40 -0
  87. data/lib/date_book/localization.rb +32 -0
  88. data/lib/date_book/version.rb +8 -0
  89. data/lib/generators/date_book/install/install_generator.rb +110 -0
  90. data/lib/generators/date_book/install/templates/app/models/ability.rb +16 -0
  91. data/lib/generators/date_book/install/templates/app/models/calendar.rb +3 -0
  92. data/lib/generators/date_book/install/templates/app/models/event.rb +3 -0
  93. data/lib/generators/date_book/install/templates/app/models/event_occurrence.rb +3 -0
  94. data/lib/generators/date_book/install/templates/app/models/schedule.rb +3 -0
  95. data/lib/generators/date_book/install/templates/config/initializers/date_book.rb +5 -0
  96. data/lib/generators/date_book/utils.rb +25 -0
  97. data/lib/tasks/date_book_tasks.rake +5 -0
  98. data/spec/abilities/calendar_spec.rb +39 -0
  99. data/spec/abilities/event_spec.rb +44 -0
  100. data/spec/controllers/date_book/calendars_controller_spec.rb +259 -0
  101. data/spec/controllers/date_book/events_controller_spec.rb +283 -0
  102. data/spec/dummy/Rakefile +9 -0
  103. data/spec/dummy/app/assets/config/manifest.js +5 -0
  104. data/spec/dummy/app/assets/images/.keep +0 -0
  105. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  106. data/spec/dummy/app/assets/stylesheets/application.css.scss +4 -0
  107. data/spec/dummy/app/assets/stylesheets/bootstrap-everything.scss +54 -0
  108. data/spec/dummy/app/controllers/application_controller.rb +21 -0
  109. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  110. data/spec/dummy/app/helpers/application_helper.rb +4 -0
  111. data/spec/dummy/app/mailers/application_mailer.rb +6 -0
  112. data/spec/dummy/app/models/ability.rb +16 -0
  113. data/spec/dummy/app/models/application_record.rb +5 -0
  114. data/spec/dummy/app/models/calendar.rb +3 -0
  115. data/spec/dummy/app/models/concerns/.keep +0 -0
  116. data/spec/dummy/app/models/event.rb +3 -0
  117. data/spec/dummy/app/models/event_occurrence.rb +3 -0
  118. data/spec/dummy/app/models/role.rb +13 -0
  119. data/spec/dummy/app/models/schedule.rb +3 -0
  120. data/spec/dummy/app/models/user.rb +9 -0
  121. data/spec/dummy/app/views/application/403.html.haml +9 -0
  122. data/spec/dummy/app/views/application/404.html.haml +9 -0
  123. data/spec/dummy/app/views/layouts/application.html.haml +43 -0
  124. data/spec/dummy/app/views/pages/index.html.haml +1 -0
  125. data/spec/dummy/bin/bundle +5 -0
  126. data/spec/dummy/bin/rails +6 -0
  127. data/spec/dummy/bin/rake +6 -0
  128. data/spec/dummy/bin/setup +36 -0
  129. data/spec/dummy/bin/update +31 -0
  130. data/spec/dummy/config.ru +7 -0
  131. data/spec/dummy/config/application.rb +38 -0
  132. data/spec/dummy/config/boot.rb +7 -0
  133. data/spec/dummy/config/cable.yml +9 -0
  134. data/spec/dummy/config/database.yml +25 -0
  135. data/spec/dummy/config/environment.rb +7 -0
  136. data/spec/dummy/config/environments/development.rb +60 -0
  137. data/spec/dummy/config/environments/test.rb +45 -0
  138. data/spec/dummy/config/initializers/application_controller_renderer.rb +7 -0
  139. data/spec/dummy/config/initializers/assets.rb +14 -0
  140. data/spec/dummy/config/initializers/backtrace_silencers.rb +10 -0
  141. data/spec/dummy/config/initializers/bootstrap_leather.rb +9 -0
  142. data/spec/dummy/config/initializers/cookies_serializer.rb +7 -0
  143. data/spec/dummy/config/initializers/date_book.rb +5 -0
  144. data/spec/dummy/config/initializers/devise.rb +277 -0
  145. data/spec/dummy/config/initializers/filter_parameter_logging.rb +6 -0
  146. data/spec/dummy/config/initializers/high_voltage.rb +3 -0
  147. data/spec/dummy/config/initializers/inflections.rb +17 -0
  148. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  149. data/spec/dummy/config/initializers/new_framework_defaults.rb +29 -0
  150. data/spec/dummy/config/initializers/rolify.rb +7 -0
  151. data/spec/dummy/config/initializers/session_store.rb +5 -0
  152. data/spec/dummy/config/initializers/wrap_parameters.rb +17 -0
  153. data/spec/dummy/config/locales/devise.en.yml +64 -0
  154. data/spec/dummy/config/locales/en.yml +23 -0
  155. data/spec/dummy/config/puma.rb +49 -0
  156. data/spec/dummy/config/routes.rb +15 -0
  157. data/spec/dummy/config/secrets.yml +22 -0
  158. data/spec/dummy/config/spring.rb +8 -0
  159. data/spec/dummy/db/migrate/20170728171103_create_users_table.rb +7 -0
  160. data/spec/dummy/db/migrate/20170807134122_add_devise_to_users.rb +49 -0
  161. data/spec/dummy/db/migrate/20170807134128_rolify_create_roles.rb +19 -0
  162. data/spec/dummy/db/migrate/20170807134137_create_calendars.date_book.rb +12 -0
  163. data/spec/dummy/db/migrate/20170807134138_create_events.date_book.rb +21 -0
  164. data/spec/dummy/db/migrate/20170807134139_create_schedules.date_book.rb +26 -0
  165. data/spec/dummy/db/migrate/20170807134140_add_fields_to_schedule.date_book.rb +7 -0
  166. data/spec/dummy/db/migrate/20170807134141_create_event_occurrences.date_book.rb +17 -0
  167. data/spec/dummy/db/migrate/20170807134142_add_fields_to_event_occurrences.date_book.rb +6 -0
  168. data/spec/dummy/db/schema.rb +101 -0
  169. data/spec/dummy/db/seeds.rb +0 -0
  170. data/spec/dummy/db/seeds/calendars.seeds.rb +22 -0
  171. data/spec/dummy/db/seeds/events.seeds.rb +89 -0
  172. data/spec/dummy/db/seeds/users.seeds.rb +16 -0
  173. data/spec/dummy/lib/assets/.keep +0 -0
  174. data/spec/dummy/lib/basic_benchmark.rb +9 -0
  175. data/spec/dummy/log/.keep +0 -0
  176. data/spec/factories/calendars.rb +11 -0
  177. data/spec/factories/events.rb +12 -0
  178. data/spec/factories/roles.rb +5 -0
  179. data/spec/factories/users.rb +9 -0
  180. data/spec/features/calendars_spec.rb +185 -0
  181. data/spec/features/events_spec.rb +201 -0
  182. data/spec/helpers/date_book/calendar_helper_spec.rb +17 -0
  183. data/spec/helpers/date_book/events_helper_spec.rb +17 -0
  184. data/spec/models/calendar_spec.rb +26 -0
  185. data/spec/models/event_spec.rb +67 -0
  186. data/spec/models/role_spec.rb +5 -0
  187. data/spec/rails_helper.rb +116 -0
  188. data/spec/requests/date_book/events_spec.rb +56 -0
  189. data/spec/routing/date_book/calendars_routing_spec.rb +49 -0
  190. data/spec/routing/date_book/events_routing_spec.rb +54 -0
  191. data/spec/spec_helper.rb +102 -0
  192. data/spec/support/controller_behaviors.rb +101 -0
  193. data/spec/support/controller_macros.rb +25 -0
  194. data/spec/support/factory_girl.rb +3 -0
  195. data/spec/support/feature_behaviors.rb +150 -0
  196. data/spec/support/loaded_site.rb +5 -0
  197. data/spec/support/loaded_site/calendars.rb +5 -0
  198. data/spec/support/loaded_site/events.rb +6 -0
  199. data/spec/support/loaded_site/users.rb +5 -0
  200. data/spec/support/request_behaviors.rb +89 -0
  201. data/spec/support/shared_connection.rb +14 -0
  202. data/spec/support/utilities.rb +53 -0
  203. metadata +817 -0
@@ -0,0 +1,12 @@
1
+ json.occurrence_id event.occurrence_id
2
+ json.slug event.slug
3
+ json.url date_book.event_path(event.slug, occurrence_id: event.occurrence_id)
4
+ json.title event.title
5
+ json.description event.description
6
+ json.editable can?(:edit, event).to_s
7
+ json.className "#{event.css_class} #{event.all_day ? 'all-day' : 'part-day'}"
8
+ json.start event.start_moment
9
+ json.end event.end_moment
10
+ json.duration event.duration
11
+ json.allDay event.all_day
12
+ json.popover_url date_book.popover_event_path(event.slug, format: :html)
@@ -0,0 +1,16 @@
1
+ :javascript
2
+ var sections = {};
3
+ = bootstrap_form_for [@calendar, @event], layout: :horizontal, label_col: 'col-sm-2', control_col: 'col-sm-10', class: 'event-form' do |f|
4
+ .col-sm-10.col-sm-offset-2.required= :indicates_required_field.l
5
+ = f.text_field :name
6
+ = f.text_area :description, class: 'date-book--wysiwyg'
7
+ = f.text_field :css_class
8
+ = f.fields_for :schedule do |schedule|
9
+ = schedule.form_group :rule, label: { text: :recurrence.l } do
10
+ - DateBook.configuration.rules.each do |rule|
11
+ = schedule.radio_button :rule, rule, label: rule.titleize, class: 'event-schedule-rule'
12
+ :javascript
13
+ sections['#{rule}'] = '#{escape_javascript render_rule_form_section rule, schedule}';
14
+ .event-schedule-rule-section
15
+
16
+ = f.submit :save_model.l(model: Event.model_name.human)
@@ -0,0 +1,11 @@
1
+ %dl.dl-horizontal
2
+ - if @occurrence.present?
3
+ %dt= :occurs_on.l
4
+ %dd= render_date_range @occurrence.start_date, @occurrence.end_date, @event.schedule.all_day, @event.schedule.duration
5
+ - if event.previous_occurrence(@occurrence).present?
6
+ %dt= :previous_occurrence.l
7
+ %dd= link_to render_date_range(event.previous_occurrence(@occurrence).start_date, event.previous_occurrence(@occurrence).end_date, event.schedule.all_day, event.schedule.duration), date_book.calendar_event_path(event.calendar, event, occurrence_id: event.previous_occurrence(@occurrence).id)
8
+ - if event.next_occurrence(@occurrence).present?
9
+ %dt= :next_occurrence.l
10
+ %dd= link_to render_date_range(event.next_occurrence(@occurrence).start_date, event.next_occurrence(@occurrence).end_date, event.schedule.all_day, event.schedule.duration), date_book.calendar_event_path(event.calendar, event, occurrence_id: event.next_occurrence(@occurrence).id)
11
+
@@ -0,0 +1,5 @@
1
+ - add_title :editing_item_model.l(item: @event.name, model: Event.model_name.human)
2
+ = date_book_scripts
3
+ = link_to :show_item_model.l(item: @event.name, model: Event.model_name.human), [@event.calendar, @event]
4
+ = render 'form'
5
+
@@ -0,0 +1 @@
1
+ = schedule.text_field :date, class: 'date-picker', prepend: icon('calendar')
@@ -0,0 +1 @@
1
+ = schedule.collection_check_boxes :day, DateBook.weekdays, :slug, :name
@@ -0,0 +1,19 @@
1
+ = schedule.form_group :day_of_week, label: { text: :day_and_week.l } do
2
+ %table.table.table-striped.table-bordered
3
+ %tr
4
+ %th= :week_number.l
5
+ - DateBook.weekdays.each do |day|
6
+ %th= day.name
7
+ - 5.times do |i|
8
+ :ruby
9
+ week_num = (i == 4) ? -1 : i + 1
10
+ %tr
11
+ %th
12
+ - if week_num == -1
13
+ = :last.l
14
+ - else
15
+ = week_num.ordinalize
16
+ - DateBook.weekdays.each do |day|
17
+ %td
18
+ = schedule.fields_for :day_of_week do |day_fields|
19
+ = day_fields.check_box_without_bootstrap day.name.downcase, { multiple: true, checked: @event.schedule.day_of_week[day.name.downcase]&.include?(week_num.to_s) }, week_num.to_s, nil
@@ -0,0 +1,6 @@
1
+ = schedule.fields_for :duration_attributes, @event.schedule.duration_attributes do |duration|
2
+ = schedule.form_group :duration, label: { text: Schedule.human_attribute_name('duration') } do
3
+ .input-group
4
+ = duration.text_field_without_bootstrap :count, class: 'duration-count form-control'
5
+ .input-group-addon
6
+ = duration.select_without_bootstrap :unit, DateBook.configuration.duration_units, selected: @event.schedule.duration_unit
@@ -0,0 +1 @@
1
+ = schedule.text_field :interval, prepend: :repeats_every.l, append: unit.l(scope: :units)
@@ -0,0 +1 @@
1
+ = schedule.text_field :time, value: @event.schedule.human_time, class: 'time-picker', prepend: icon('time'), append: render_all_day_checkbox(schedule)
@@ -0,0 +1,16 @@
1
+ - add_title :calendar_events.l(calendar: @calendar.name)
2
+ = date_book_scripts
3
+ - if can? :create, Event
4
+ = icon_link_to 'plus', :create.l, new_calendar_event_path(@calendar), class: 'btn btn-success'
5
+ .events
6
+ - @events.each do |event|
7
+ .event.article.clearfix{ id: "event-#{event.id}"}
8
+ %h2
9
+ = link_to event.name, [event.calendar, event]
10
+ %p
11
+ = truncate strip_tags(event.description), length: 500, separator: ' ', omission: '...'
12
+ .float-right
13
+ - if can? :edit, event
14
+ = icon_link_to 'pencil', :edit.l, date_book.edit_calendar_event_path(event.calendar, event), class: 'btn btn-info'
15
+ = icon_link_to('zoom-in', :read_more.l, [event.calendar, event], class: 'btn btn-primary')
16
+ = event_occurrence_dates event
@@ -0,0 +1,5 @@
1
+ - add_title :new_model.l(model: Event.model_name.human)
2
+ = date_book_scripts
3
+ = link_to Event.model_name.human.pluralize, date_book.calendar_events_path(@calendar)
4
+ = render 'form'
5
+
@@ -0,0 +1,7 @@
1
+ .clearfix
2
+ %p
3
+ = truncate strip_tags(@event.description), length: 250, separator: ' ', omission: '...'
4
+ .float-right
5
+ - if can? :edit, @event
6
+ = icon_link_to 'pencil', :edit.l, date_book.edit_calendar_event_path(@event.calendar, @event.slug), class: 'btn btn-info'
7
+ = icon_link_to 'zoom-in', :read_more.l, date_book.calendar_event_path(@event.calendar, @event.slug, occurrence_id: @occurrence&.id), class: 'btn btn-primary'
@@ -0,0 +1,4 @@
1
+ = render_interval_field('days', schedule)
2
+ = render_time_field(schedule)
3
+ = render_duration_field(schedule)
4
+
@@ -0,0 +1,5 @@
1
+ = render_interval_field('months', schedule)
2
+ = render_day_of_week_field(schedule)
3
+ = render_time_field(schedule)
4
+ = render_duration_field(schedule)
5
+
@@ -0,0 +1,4 @@
1
+ = render_date_field(schedule)
2
+ = render_time_field(schedule)
3
+ = render_duration_field(schedule)
4
+
@@ -0,0 +1,5 @@
1
+ = render_interval_field('weeks', schedule)
2
+ = render_day_field(schedule)
3
+ = render_time_field(schedule)
4
+ = render_duration_field(schedule)
5
+
@@ -0,0 +1,16 @@
1
+ - add_title @event.name
2
+ .event
3
+ = date_book_scripts
4
+ = event_occurrence_dates @event
5
+ %dl.dl-horizontal
6
+ %dt= :owner.l
7
+ %dd= @event.owners.first.name
8
+ %dl.dl-horizontal
9
+ %dt= Calendar.model_name.human
10
+ %dd= link_to @event.calendar.name, @event.calendar
11
+ = @event.description.html_safe
12
+
13
+ - if can? :edit, @event
14
+ = icon_link_to 'pencil', :edit.l, date_book.edit_calendar_event_path(@event.calendar, @event), class: 'btn btn-info'
15
+ - if can? :delete, @event
16
+ = icon_link_to 'remove', :delete.l, [@event.calendar, @event], class: 'btn btn-danger', method: :delete, data: { confirm: :are_you_sure.l }
@@ -0,0 +1,4 @@
1
+ - add_head_css do
2
+ = stylesheet_link_tag 'date_book'
3
+ - add_footer_javascript do
4
+ = javascript_include_tag 'date_book'
@@ -0,0 +1 @@
1
+ = yield
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # This command will automatically be run when you run "rails" with Rails gems
5
+ # installed from the root of your application.
6
+
7
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
8
+ ENGINE_PATH = File.expand_path('../../lib/date_book/engine', __FILE__)
9
+
10
+ # Set up gems listed in the Gemfile.
11
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
12
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
13
+
14
+ require 'rails/all'
15
+ require 'rails/engine/commands'
@@ -0,0 +1,44 @@
1
+ en:
2
+ activerecord:
3
+ help:
4
+ schedule:
5
+ rule: 'How often does this event recur?'
6
+ time:
7
+ formats:
8
+ moment_date: '%F'
9
+ moment_datetime: '%FT%T'
10
+ human_date: '%F'
11
+ human_datetime: '%F %I:%M %P'
12
+ human_time: '%I:%M %P'
13
+ units:
14
+ years: 'Years'
15
+ months: 'Months'
16
+ weeks: 'Weeks'
17
+ days: 'Days'
18
+ hours: 'Hours'
19
+ minutes: 'Minutes'
20
+ seconds: 'Seconds'
21
+ add_event: 'Add Event'
22
+ are_you_sure: 'Are you sure?'
23
+ calendar_events: '%{calendar} Events'
24
+ create: 'Create'
25
+ created: 'created'
26
+ day_and_week: 'Day and Week'
27
+ delete: 'Delete'
28
+ destroyed: 'removed'
29
+ editing_item_model: "Editing %{item} %{model}"
30
+ indicates_required_field: '(Indicates Required Field)'
31
+ item_acted_on: '%{item} was successfully %{action}.'
32
+ last: 'Last'
33
+ next_occurrence: 'Next Occurrence'
34
+ new_model: 'New %{model}'
35
+ occurs_on: 'Occurs On'
36
+ owner: 'Owner'
37
+ previous_occurrence: 'Previous Occurrence'
38
+ read_more: 'Read More'
39
+ recurrence: 'Recurrence'
40
+ repeats_every: 'Repeats every'
41
+ save_model: 'Save %{model}'
42
+ show_item_model: "Show %{item} %{model}"
43
+ updated: 'updated'
44
+ week_number: 'Week Number'
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ DateBook::Engine.routes.draw do
4
+ post 'api', to: "graphql#execute"
5
+
6
+ resources :calendars do
7
+ resources :events do
8
+ get 'popover', on: :member
9
+ end
10
+ end
11
+ root to: 'calendar#index'
12
+ end
@@ -0,0 +1,337 @@
1
+ # Generated by juwelier
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: date_book 0.0.1 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "date_book".freeze
9
+ s.version = "0.0.1"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Karen Lundgren".freeze]
14
+ s.date = "2017-08-08"
15
+ s.email = "karen.e.lundgren@gmail.com".freeze
16
+ s.executables = ["rails".freeze]
17
+ s.extra_rdoc_files = [
18
+ "LICENSE.txt",
19
+ "README.md"
20
+ ]
21
+ s.files = [
22
+ ".idea/vcs.xml",
23
+ ".rspec",
24
+ ".rubocop.yml",
25
+ ".rubocop_todo.yml",
26
+ ".ruby-gemset",
27
+ ".ruby-version",
28
+ ".travis.yml",
29
+ "Gemfile",
30
+ "Gemfile.lock",
31
+ "LICENSE.txt",
32
+ "README.md",
33
+ "Rakefile",
34
+ "VERSION",
35
+ "app/assets/images/date_book/.keep",
36
+ "app/assets/javascripts/date_book.js",
37
+ "app/assets/javascripts/date_book/calendar_events.js",
38
+ "app/assets/javascripts/date_book/event_form.js",
39
+ "app/assets/javascripts/date_book/popovers.js",
40
+ "app/assets/javascripts/date_book/wysiwyg.js",
41
+ "app/assets/stylesheets/date_book.css.scss",
42
+ "app/controllers/date_book/calendars_controller.rb",
43
+ "app/controllers/date_book/date_book_controller.rb",
44
+ "app/controllers/date_book/events_controller.rb",
45
+ "app/controllers/date_book/graphql_controller.rb",
46
+ "app/graphql/date_book_schema.rb",
47
+ "app/graphql/types/calendar_type.rb",
48
+ "app/graphql/types/date_time_type.rb",
49
+ "app/graphql/types/event_occurrence_type.rb",
50
+ "app/graphql/types/event_type.rb",
51
+ "app/graphql/types/mutation_type.rb",
52
+ "app/graphql/types/profile_type.rb",
53
+ "app/graphql/types/query_type.rb",
54
+ "app/helpers/date_book/application_helper.rb",
55
+ "app/helpers/date_book/calendar_helper.rb",
56
+ "app/helpers/date_book/events_helper.rb",
57
+ "app/jobs/date_book/application_job.rb",
58
+ "app/mailers/date_book/application_mailer.rb",
59
+ "app/views/date_book/application/_all_day_checkbox.html.haml",
60
+ "app/views/date_book/application/_date_range.html.haml",
61
+ "app/views/date_book/application/_wysiwyg.html.haml",
62
+ "app/views/date_book/calendars/_form.html.haml",
63
+ "app/views/date_book/calendars/edit.html.haml",
64
+ "app/views/date_book/calendars/index.html.haml",
65
+ "app/views/date_book/calendars/new.html.haml",
66
+ "app/views/date_book/calendars/show.html.haml",
67
+ "app/views/date_book/events/_event.json.jbuilder",
68
+ "app/views/date_book/events/_form.html.haml",
69
+ "app/views/date_book/events/_occurrence_dates.html.haml",
70
+ "app/views/date_book/events/edit.html.haml",
71
+ "app/views/date_book/events/fields/_date.html.haml",
72
+ "app/views/date_book/events/fields/_day.html.haml",
73
+ "app/views/date_book/events/fields/_day_of_week.html.haml",
74
+ "app/views/date_book/events/fields/_duration.html.haml",
75
+ "app/views/date_book/events/fields/_interval.html.haml",
76
+ "app/views/date_book/events/fields/_time.html.haml",
77
+ "app/views/date_book/events/index.html.haml",
78
+ "app/views/date_book/events/new.html.haml",
79
+ "app/views/date_book/events/popover.html.haml",
80
+ "app/views/date_book/events/rules/_daily.html.haml",
81
+ "app/views/date_book/events/rules/_monthly.html.haml",
82
+ "app/views/date_book/events/rules/_singular.html.haml",
83
+ "app/views/date_book/events/rules/_weekly.html.haml",
84
+ "app/views/date_book/events/show.html.haml",
85
+ "app/views/layouts/_date_book_scripts.html.haml",
86
+ "app/views/layouts/blank.html.haml",
87
+ "bin/rails",
88
+ "config/locales/en.yml",
89
+ "config/routes.rb",
90
+ "date_book.gemspec",
91
+ "db/migrate/20170807133845_create_calendars.rb",
92
+ "db/migrate/20170807133846_create_events.rb",
93
+ "db/migrate/20170807133847_create_schedules.rb",
94
+ "db/migrate/20170807133848_add_fields_to_schedule.rb",
95
+ "db/migrate/20170807133849_create_event_occurrences.rb",
96
+ "db/migrate/20170807133850_add_fields_to_event_occurrences.rb",
97
+ "lib/date_book.rb",
98
+ "lib/date_book/concerns/ability.rb",
99
+ "lib/date_book/concerns/acts_as_calendar.rb",
100
+ "lib/date_book/concerns/acts_as_event.rb",
101
+ "lib/date_book/concerns/acts_as_event_occurrence.rb",
102
+ "lib/date_book/concerns/acts_as_ownable.rb",
103
+ "lib/date_book/concerns/acts_as_owner.rb",
104
+ "lib/date_book/concerns/acts_as_schedule.rb",
105
+ "lib/date_book/configuration.rb",
106
+ "lib/date_book/engine.rb",
107
+ "lib/date_book/localization.rb",
108
+ "lib/date_book/version.rb",
109
+ "lib/generators/date_book/install/install_generator.rb",
110
+ "lib/generators/date_book/install/templates/app/models/ability.rb",
111
+ "lib/generators/date_book/install/templates/app/models/calendar.rb",
112
+ "lib/generators/date_book/install/templates/app/models/event.rb",
113
+ "lib/generators/date_book/install/templates/app/models/event_occurrence.rb",
114
+ "lib/generators/date_book/install/templates/app/models/schedule.rb",
115
+ "lib/generators/date_book/install/templates/config/initializers/date_book.rb",
116
+ "lib/generators/date_book/utils.rb",
117
+ "lib/tasks/date_book_tasks.rake",
118
+ "spec/abilities/calendar_spec.rb",
119
+ "spec/abilities/event_spec.rb",
120
+ "spec/controllers/date_book/calendars_controller_spec.rb",
121
+ "spec/controllers/date_book/events_controller_spec.rb",
122
+ "spec/dummy/Rakefile",
123
+ "spec/dummy/app/assets/config/manifest.js",
124
+ "spec/dummy/app/assets/images/.keep",
125
+ "spec/dummy/app/assets/javascripts/application.js",
126
+ "spec/dummy/app/assets/stylesheets/application.css.scss",
127
+ "spec/dummy/app/assets/stylesheets/bootstrap-everything.scss",
128
+ "spec/dummy/app/controllers/application_controller.rb",
129
+ "spec/dummy/app/controllers/concerns/.keep",
130
+ "spec/dummy/app/helpers/application_helper.rb",
131
+ "spec/dummy/app/mailers/application_mailer.rb",
132
+ "spec/dummy/app/models/ability.rb",
133
+ "spec/dummy/app/models/application_record.rb",
134
+ "spec/dummy/app/models/calendar.rb",
135
+ "spec/dummy/app/models/concerns/.keep",
136
+ "spec/dummy/app/models/event.rb",
137
+ "spec/dummy/app/models/event_occurrence.rb",
138
+ "spec/dummy/app/models/role.rb",
139
+ "spec/dummy/app/models/schedule.rb",
140
+ "spec/dummy/app/models/user.rb",
141
+ "spec/dummy/app/views/application/403.html.haml",
142
+ "spec/dummy/app/views/application/404.html.haml",
143
+ "spec/dummy/app/views/layouts/application.html.haml",
144
+ "spec/dummy/app/views/pages/index.html.haml",
145
+ "spec/dummy/bin/bundle",
146
+ "spec/dummy/bin/rails",
147
+ "spec/dummy/bin/rake",
148
+ "spec/dummy/bin/setup",
149
+ "spec/dummy/bin/update",
150
+ "spec/dummy/config.ru",
151
+ "spec/dummy/config/application.rb",
152
+ "spec/dummy/config/boot.rb",
153
+ "spec/dummy/config/cable.yml",
154
+ "spec/dummy/config/database.yml",
155
+ "spec/dummy/config/environment.rb",
156
+ "spec/dummy/config/environments/development.rb",
157
+ "spec/dummy/config/environments/test.rb",
158
+ "spec/dummy/config/initializers/application_controller_renderer.rb",
159
+ "spec/dummy/config/initializers/assets.rb",
160
+ "spec/dummy/config/initializers/backtrace_silencers.rb",
161
+ "spec/dummy/config/initializers/bootstrap_leather.rb",
162
+ "spec/dummy/config/initializers/cookies_serializer.rb",
163
+ "spec/dummy/config/initializers/date_book.rb",
164
+ "spec/dummy/config/initializers/devise.rb",
165
+ "spec/dummy/config/initializers/filter_parameter_logging.rb",
166
+ "spec/dummy/config/initializers/high_voltage.rb",
167
+ "spec/dummy/config/initializers/inflections.rb",
168
+ "spec/dummy/config/initializers/mime_types.rb",
169
+ "spec/dummy/config/initializers/new_framework_defaults.rb",
170
+ "spec/dummy/config/initializers/rolify.rb",
171
+ "spec/dummy/config/initializers/session_store.rb",
172
+ "spec/dummy/config/initializers/wrap_parameters.rb",
173
+ "spec/dummy/config/locales/devise.en.yml",
174
+ "spec/dummy/config/locales/en.yml",
175
+ "spec/dummy/config/puma.rb",
176
+ "spec/dummy/config/routes.rb",
177
+ "spec/dummy/config/secrets.yml",
178
+ "spec/dummy/config/spring.rb",
179
+ "spec/dummy/db/migrate/20170728171103_create_users_table.rb",
180
+ "spec/dummy/db/migrate/20170807134122_add_devise_to_users.rb",
181
+ "spec/dummy/db/migrate/20170807134128_rolify_create_roles.rb",
182
+ "spec/dummy/db/migrate/20170807134137_create_calendars.date_book.rb",
183
+ "spec/dummy/db/migrate/20170807134138_create_events.date_book.rb",
184
+ "spec/dummy/db/migrate/20170807134139_create_schedules.date_book.rb",
185
+ "spec/dummy/db/migrate/20170807134140_add_fields_to_schedule.date_book.rb",
186
+ "spec/dummy/db/migrate/20170807134141_create_event_occurrences.date_book.rb",
187
+ "spec/dummy/db/migrate/20170807134142_add_fields_to_event_occurrences.date_book.rb",
188
+ "spec/dummy/db/schema.rb",
189
+ "spec/dummy/db/seeds.rb",
190
+ "spec/dummy/db/seeds/calendars.seeds.rb",
191
+ "spec/dummy/db/seeds/events.seeds.rb",
192
+ "spec/dummy/db/seeds/users.seeds.rb",
193
+ "spec/dummy/lib/assets/.keep",
194
+ "spec/dummy/lib/basic_benchmark.rb",
195
+ "spec/dummy/log/.keep",
196
+ "spec/factories/calendars.rb",
197
+ "spec/factories/events.rb",
198
+ "spec/factories/roles.rb",
199
+ "spec/factories/users.rb",
200
+ "spec/features/calendars_spec.rb",
201
+ "spec/features/events_spec.rb",
202
+ "spec/helpers/date_book/calendar_helper_spec.rb",
203
+ "spec/helpers/date_book/events_helper_spec.rb",
204
+ "spec/models/calendar_spec.rb",
205
+ "spec/models/event_spec.rb",
206
+ "spec/models/role_spec.rb",
207
+ "spec/rails_helper.rb",
208
+ "spec/requests/date_book/events_spec.rb",
209
+ "spec/routing/date_book/calendars_routing_spec.rb",
210
+ "spec/routing/date_book/events_routing_spec.rb",
211
+ "spec/spec_helper.rb",
212
+ "spec/support/controller_behaviors.rb",
213
+ "spec/support/controller_macros.rb",
214
+ "spec/support/factory_girl.rb",
215
+ "spec/support/feature_behaviors.rb",
216
+ "spec/support/loaded_site.rb",
217
+ "spec/support/loaded_site/calendars.rb",
218
+ "spec/support/loaded_site/events.rb",
219
+ "spec/support/loaded_site/users.rb",
220
+ "spec/support/request_behaviors.rb",
221
+ "spec/support/shared_connection.rb",
222
+ "spec/support/utilities.rb"
223
+ ]
224
+ s.homepage = "http://www.gemvein.com/museum/cases/date_book".freeze
225
+ s.licenses = ["MIT".freeze]
226
+ s.rubygems_version = "2.6.11".freeze
227
+ s.summary = "Rails 4 & 5 Engine that does stuff.".freeze
228
+
229
+ if s.respond_to? :specification_version then
230
+ s.specification_version = 4
231
+
232
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
233
+ s.add_runtime_dependency(%q<rails>.freeze, ["< 6", ">= 4"])
234
+ s.add_runtime_dependency(%q<rails-i18n>.freeze, ["< 6", ">= 4"])
235
+ s.add_runtime_dependency(%q<bootstrap_leather>.freeze, ["< 1", ">= 0.9"])
236
+ s.add_runtime_dependency(%q<bootstrap_form>.freeze, ["< 3", ">= 2.7"])
237
+ s.add_runtime_dependency(%q<nested_form>.freeze, ["< 1", ">= 0.3"])
238
+ s.add_runtime_dependency(%q<bootstrap-wysihtml5-rails>.freeze, [">= 0"])
239
+ s.add_runtime_dependency(%q<jquery-rails>.freeze, ["~> 4"])
240
+ s.add_runtime_dependency(%q<bootstrap3-datetimepicker-rails>.freeze, ["~> 4.17.47"])
241
+ s.add_runtime_dependency(%q<haml-rails>.freeze, ["< 2", ">= 1.0"])
242
+ s.add_runtime_dependency(%q<jbuilder>.freeze, [">= 0"])
243
+ s.add_runtime_dependency(%q<devise>.freeze, ["< 5", ">= 4.3"])
244
+ s.add_runtime_dependency(%q<cancancan>.freeze, ["< 3", ">= 2.0"])
245
+ s.add_runtime_dependency(%q<rolify>.freeze, ["< 6", ">= 5.1"])
246
+ s.add_runtime_dependency(%q<friendly_id>.freeze, ["< 6", ">= 5.2"])
247
+ s.add_runtime_dependency(%q<ice_cube>.freeze, ["< 1", ">= 0.16"])
248
+ s.add_runtime_dependency(%q<schedulable>.freeze, ["< 1", ">= 0.0.10"])
249
+ s.add_runtime_dependency(%q<fullcalendar-rails>.freeze, ["< 4", ">= 3.4"])
250
+ s.add_runtime_dependency(%q<momentjs-rails>.freeze, ["< 3", ">= 2.9"])
251
+ s.add_runtime_dependency(%q<graphql>.freeze, ["< 2", ">= 1.6"])
252
+ s.add_runtime_dependency(%q<rack-cors>.freeze, ["< 2", ">= 1"])
253
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
254
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4"])
255
+ s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
256
+ s.add_development_dependency(%q<graphiql-rails>.freeze, ["< 2", ">= 1.4"])
257
+ s.add_development_dependency(%q<bootstrap-sass>.freeze, ["~> 3.3"])
258
+ s.add_development_dependency(%q<byebug>.freeze, ["~> 9"])
259
+ s.add_development_dependency(%q<factory_girl_rails>.freeze, ["~> 4.5"])
260
+ s.add_development_dependency(%q<faker>.freeze, ["~> 1.4"])
261
+ s.add_development_dependency(%q<rspec-its>.freeze, [">= 1"])
262
+ s.add_development_dependency(%q<rspec-rails>.freeze, ["< 4", ">= 3.5"])
263
+ s.add_development_dependency(%q<seedbank>.freeze, ["~> 0.3"])
264
+ s.add_development_dependency(%q<sqlite3>.freeze, ["~> 1.3"])
265
+ s.add_development_dependency(%q<high_voltage>.freeze, ["~> 3"])
266
+ else
267
+ s.add_dependency(%q<rails>.freeze, ["< 6", ">= 4"])
268
+ s.add_dependency(%q<rails-i18n>.freeze, ["< 6", ">= 4"])
269
+ s.add_dependency(%q<bootstrap_leather>.freeze, ["< 1", ">= 0.9"])
270
+ s.add_dependency(%q<bootstrap_form>.freeze, ["< 3", ">= 2.7"])
271
+ s.add_dependency(%q<nested_form>.freeze, ["< 1", ">= 0.3"])
272
+ s.add_dependency(%q<bootstrap-wysihtml5-rails>.freeze, [">= 0"])
273
+ s.add_dependency(%q<jquery-rails>.freeze, ["~> 4"])
274
+ s.add_dependency(%q<bootstrap3-datetimepicker-rails>.freeze, ["~> 4.17.47"])
275
+ s.add_dependency(%q<haml-rails>.freeze, ["< 2", ">= 1.0"])
276
+ s.add_dependency(%q<jbuilder>.freeze, [">= 0"])
277
+ s.add_dependency(%q<devise>.freeze, ["< 5", ">= 4.3"])
278
+ s.add_dependency(%q<cancancan>.freeze, ["< 3", ">= 2.0"])
279
+ s.add_dependency(%q<rolify>.freeze, ["< 6", ">= 5.1"])
280
+ s.add_dependency(%q<friendly_id>.freeze, ["< 6", ">= 5.2"])
281
+ s.add_dependency(%q<ice_cube>.freeze, ["< 1", ">= 0.16"])
282
+ s.add_dependency(%q<schedulable>.freeze, ["< 1", ">= 0.0.10"])
283
+ s.add_dependency(%q<fullcalendar-rails>.freeze, ["< 4", ">= 3.4"])
284
+ s.add_dependency(%q<momentjs-rails>.freeze, ["< 3", ">= 2.9"])
285
+ s.add_dependency(%q<graphql>.freeze, ["< 2", ">= 1.6"])
286
+ s.add_dependency(%q<rack-cors>.freeze, ["< 2", ">= 1"])
287
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
288
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
289
+ s.add_dependency(%q<rubocop>.freeze, [">= 0"])
290
+ s.add_dependency(%q<graphiql-rails>.freeze, ["< 2", ">= 1.4"])
291
+ s.add_dependency(%q<bootstrap-sass>.freeze, ["~> 3.3"])
292
+ s.add_dependency(%q<byebug>.freeze, ["~> 9"])
293
+ s.add_dependency(%q<factory_girl_rails>.freeze, ["~> 4.5"])
294
+ s.add_dependency(%q<faker>.freeze, ["~> 1.4"])
295
+ s.add_dependency(%q<rspec-its>.freeze, [">= 1"])
296
+ s.add_dependency(%q<rspec-rails>.freeze, ["< 4", ">= 3.5"])
297
+ s.add_dependency(%q<seedbank>.freeze, ["~> 0.3"])
298
+ s.add_dependency(%q<sqlite3>.freeze, ["~> 1.3"])
299
+ s.add_dependency(%q<high_voltage>.freeze, ["~> 3"])
300
+ end
301
+ else
302
+ s.add_dependency(%q<rails>.freeze, ["< 6", ">= 4"])
303
+ s.add_dependency(%q<rails-i18n>.freeze, ["< 6", ">= 4"])
304
+ s.add_dependency(%q<bootstrap_leather>.freeze, ["< 1", ">= 0.9"])
305
+ s.add_dependency(%q<bootstrap_form>.freeze, ["< 3", ">= 2.7"])
306
+ s.add_dependency(%q<nested_form>.freeze, ["< 1", ">= 0.3"])
307
+ s.add_dependency(%q<bootstrap-wysihtml5-rails>.freeze, [">= 0"])
308
+ s.add_dependency(%q<jquery-rails>.freeze, ["~> 4"])
309
+ s.add_dependency(%q<bootstrap3-datetimepicker-rails>.freeze, ["~> 4.17.47"])
310
+ s.add_dependency(%q<haml-rails>.freeze, ["< 2", ">= 1.0"])
311
+ s.add_dependency(%q<jbuilder>.freeze, [">= 0"])
312
+ s.add_dependency(%q<devise>.freeze, ["< 5", ">= 4.3"])
313
+ s.add_dependency(%q<cancancan>.freeze, ["< 3", ">= 2.0"])
314
+ s.add_dependency(%q<rolify>.freeze, ["< 6", ">= 5.1"])
315
+ s.add_dependency(%q<friendly_id>.freeze, ["< 6", ">= 5.2"])
316
+ s.add_dependency(%q<ice_cube>.freeze, ["< 1", ">= 0.16"])
317
+ s.add_dependency(%q<schedulable>.freeze, ["< 1", ">= 0.0.10"])
318
+ s.add_dependency(%q<fullcalendar-rails>.freeze, ["< 4", ">= 3.4"])
319
+ s.add_dependency(%q<momentjs-rails>.freeze, ["< 3", ">= 2.9"])
320
+ s.add_dependency(%q<graphql>.freeze, ["< 2", ">= 1.6"])
321
+ s.add_dependency(%q<rack-cors>.freeze, ["< 2", ">= 1"])
322
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
323
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
324
+ s.add_dependency(%q<rubocop>.freeze, [">= 0"])
325
+ s.add_dependency(%q<graphiql-rails>.freeze, ["< 2", ">= 1.4"])
326
+ s.add_dependency(%q<bootstrap-sass>.freeze, ["~> 3.3"])
327
+ s.add_dependency(%q<byebug>.freeze, ["~> 9"])
328
+ s.add_dependency(%q<factory_girl_rails>.freeze, ["~> 4.5"])
329
+ s.add_dependency(%q<faker>.freeze, ["~> 1.4"])
330
+ s.add_dependency(%q<rspec-its>.freeze, [">= 1"])
331
+ s.add_dependency(%q<rspec-rails>.freeze, ["< 4", ">= 3.5"])
332
+ s.add_dependency(%q<seedbank>.freeze, ["~> 0.3"])
333
+ s.add_dependency(%q<sqlite3>.freeze, ["~> 1.3"])
334
+ s.add_dependency(%q<high_voltage>.freeze, ["~> 3"])
335
+ end
336
+ end
337
+