rails_event 0.0.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.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.md +36 -0
- data/Rakefile +32 -0
- data/app/controllers/eventual/admin/base_controller.rb +4 -0
- data/app/controllers/eventual/admin/bookings_controller.rb +43 -0
- data/app/controllers/eventual/admin/crowd_members_controller.rb +43 -0
- data/app/controllers/eventual/admin/crowds_controller.rb +58 -0
- data/app/controllers/eventual/admin/event_crowds_controller.rb +71 -0
- data/app/controllers/eventual/admin/event_items_controller.rb +58 -0
- data/app/controllers/eventual/admin/event_participants_controller.rb +101 -0
- data/app/controllers/eventual/admin/event_taxons_controller.rb +55 -0
- data/app/controllers/eventual/admin/events_controller.rb +91 -0
- data/app/controllers/eventual/admin/place_taxons_controller.rb +57 -0
- data/app/controllers/eventual/admin/places_controller.rb +59 -0
- data/app/controllers/eventual/admin/plan_attenders_controller.rb +65 -0
- data/app/controllers/eventual/admin/plan_items_controller.rb +84 -0
- data/app/controllers/eventual/admin/plans_controller.rb +127 -0
- data/app/controllers/eventual/admin/seats_controller.rb +58 -0
- data/app/controllers/eventual/admin/time_items_controller.rb +82 -0
- data/app/controllers/eventual/admin/time_lists_controller.rb +72 -0
- data/app/controllers/eventual/base_controller.rb +4 -0
- data/app/controllers/eventual/me/base_controller.rb +4 -0
- data/app/controllers/eventual/me/plan_items_controller.rb +58 -0
- data/app/controllers/eventual/my/base_controller.rb +4 -0
- data/app/controllers/eventual/my/plan_items_controller.rb +55 -0
- data/app/controllers/eventual/places_controller.rb +27 -0
- data/app/controllers/eventual/time_controller.rb +14 -0
- data/app/models/eventual/application_record.rb +5 -0
- data/app/models/eventual/booking.rb +5 -0
- data/app/models/eventual/crowd.rb +5 -0
- data/app/models/eventual/crowd_member.rb +5 -0
- data/app/models/eventual/event.rb +6 -0
- data/app/models/eventual/event_crowd.rb +5 -0
- data/app/models/eventual/event_grant.rb +5 -0
- data/app/models/eventual/event_item.rb +5 -0
- data/app/models/eventual/event_participant.rb +6 -0
- data/app/models/eventual/event_taxon.rb +5 -0
- data/app/models/eventual/ext/recurrence.rb +86 -0
- data/app/models/eventual/model/agency.rb +18 -0
- data/app/models/eventual/model/booked.rb +10 -0
- data/app/models/eventual/model/booker.rb +15 -0
- data/app/models/eventual/model/booking.rb +37 -0
- data/app/models/eventual/model/crowd.rb +21 -0
- data/app/models/eventual/model/crowd_member.rb +20 -0
- data/app/models/eventual/model/event.rb +48 -0
- data/app/models/eventual/model/event_crowd.rb +54 -0
- data/app/models/eventual/model/event_grant.rb +14 -0
- data/app/models/eventual/model/event_item.rb +30 -0
- data/app/models/eventual/model/event_participant.rb +63 -0
- data/app/models/eventual/model/event_taxon.rb +13 -0
- data/app/models/eventual/model/member.rb +18 -0
- data/app/models/eventual/model/occurrence.rb +62 -0
- data/app/models/eventual/model/place.rb +25 -0
- data/app/models/eventual/model/place_taxon.rb +18 -0
- data/app/models/eventual/model/plan.rb +147 -0
- data/app/models/eventual/model/plan_attender.rb +31 -0
- data/app/models/eventual/model/plan_item.rb +84 -0
- data/app/models/eventual/model/plan_participant/crowd_participant.rb +17 -0
- data/app/models/eventual/model/plan_participant/normal_participant.rb +9 -0
- data/app/models/eventual/model/plan_participant.rb +30 -0
- data/app/models/eventual/model/planned.rb +11 -0
- data/app/models/eventual/model/planning.rb +44 -0
- data/app/models/eventual/model/recurrence.rb +64 -0
- data/app/models/eventual/model/seat.rb +17 -0
- data/app/models/eventual/model/time_item.rb +46 -0
- data/app/models/eventual/model/time_list.rb +57 -0
- data/app/models/eventual/place.rb +5 -0
- data/app/models/eventual/place_taxon.rb +6 -0
- data/app/models/eventual/plan.rb +7 -0
- data/app/models/eventual/plan_attender.rb +5 -0
- data/app/models/eventual/plan_item.rb +6 -0
- data/app/models/eventual/plan_participant.rb +5 -0
- data/app/models/eventual/seat.rb +5 -0
- data/app/models/eventual/time_item.rb +5 -0
- data/app/models/eventual/time_list.rb +5 -0
- data/app/models/eventual.rb +11 -0
- data/app/models/plan_participant/eventual/crowd_participant.rb +5 -0
- data/app/models/plan_participant/eventual/normal_participant.rb +5 -0
- data/app/views/admin/_event_nav.html.erb +14 -0
- data/app/views/admin/_nav_event.html.erb +9 -0
- data/app/views/eventual/admin/base/_nav.html.erb +3 -0
- data/app/views/eventual/admin/bookings/_booking.json.jbuilder +12 -0
- data/app/views/eventual/admin/bookings/_filter.html.erb +6 -0
- data/app/views/eventual/admin/bookings/_form.html.erb +8 -0
- data/app/views/eventual/admin/bookings/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/bookings/_show_table.html.erb +28 -0
- data/app/views/eventual/admin/bookings/index.html.erb +43 -0
- data/app/views/eventual/admin/bookings/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/crowd_members/_filter_form.html.erb +7 -0
- data/app/views/eventual/admin/crowd_members/_form.html.erb +4 -0
- data/app/views/eventual/admin/crowd_members/index.html.erb +34 -0
- data/app/views/eventual/admin/crowds/_crowd.json.jbuilder +8 -0
- data/app/views/eventual/admin/crowds/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/crowds/_filter_form.html.erb +10 -0
- data/app/views/eventual/admin/crowds/_form.html.erb +4 -0
- data/app/views/eventual/admin/crowds/_index_tbody.html.erb +5 -0
- data/app/views/eventual/admin/crowds/_index_thead.html.erb +3 -0
- data/app/views/eventual/admin/crowds/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/crowds/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/crowds/_show_table.html.erb +20 -0
- data/app/views/eventual/admin/crowds/index.html.erb +5 -0
- data/app/views/eventual/admin/crowds/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/event_crowds/_breadcrumb.html.erb +7 -0
- data/app/views/eventual/admin/event_crowds/_crowd_student.html.erb +18 -0
- data/app/views/eventual/admin/event_crowds/_edit_form.html.erb +15 -0
- data/app/views/eventual/admin/event_crowds/_index_tbody.html.erb +19 -0
- data/app/views/eventual/admin/event_crowds/_index_thead.html.erb +10 -0
- data/app/views/eventual/admin/event_crowds/_new_form.html.erb +6 -0
- data/app/views/eventual/admin/event_crowds/_show_table.html.erb +12 -0
- data/app/views/eventual/admin/event_crowds/index.html.erb +2 -0
- data/app/views/eventual/admin/event_items/_breadcrumb.html.erb +7 -0
- data/app/views/eventual/admin/event_items/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/event_items/_event_item.json.jbuilder +12 -0
- data/app/views/eventual/admin/event_items/_filter_form.html.erb +9 -0
- data/app/views/eventual/admin/event_items/_form.html.erb +12 -0
- data/app/views/eventual/admin/event_items/_index_tbody.html.erb +8 -0
- data/app/views/eventual/admin/event_items/_index_thead.html.erb +5 -0
- data/app/views/eventual/admin/event_items/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/event_items/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/event_items/_show_table.html.erb +12 -0
- data/app/views/eventual/admin/event_items/index.html.erb +1 -0
- data/app/views/eventual/admin/event_items/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/event_participants/_breadcrumb.html.erb +7 -0
- data/app/views/eventual/admin/event_participants/_button.html.erb +3 -0
- data/app/views/eventual/admin/event_participants/_filter_form.html.erb +9 -0
- data/app/views/eventual/admin/event_participants/_filter_table.html.erb +11 -0
- data/app/views/eventual/admin/event_participants/_form.html.erb +4 -0
- data/app/views/eventual/admin/event_participants/_index_tbody.html.erb +15 -0
- data/app/views/eventual/admin/event_participants/_index_thead.html.erb +5 -0
- data/app/views/eventual/admin/event_participants/index.html.erb +1 -0
- data/app/views/eventual/admin/event_taxons/_breadcrumb.html.erb +6 -0
- data/app/views/eventual/admin/event_taxons/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/event_taxons/_event_taxon.json.jbuilder +5 -0
- data/app/views/eventual/admin/event_taxons/_filter_form.html.erb +10 -0
- data/app/views/eventual/admin/event_taxons/_form.html.erb +2 -0
- data/app/views/eventual/admin/event_taxons/_index_tbody.html.erb +1 -0
- data/app/views/eventual/admin/event_taxons/_index_thead.html.erb +2 -0
- data/app/views/eventual/admin/event_taxons/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/event_taxons/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/event_taxons/index.html.erb +5 -0
- data/app/views/eventual/admin/event_taxons/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/events/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/events/_event.json.jbuilder +17 -0
- data/app/views/eventual/admin/events/_filter_form.html.erb +9 -0
- data/app/views/eventual/admin/events/_filter_table.html.erb +15 -0
- data/app/views/eventual/admin/events/_form.html.erb +11 -0
- data/app/views/eventual/admin/events/_index_tbody.html.erb +11 -0
- data/app/views/eventual/admin/events/_index_thead.html.erb +10 -0
- data/app/views/eventual/admin/events/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/events/_show/_breadcrumb.html.erb +7 -0
- data/app/views/eventual/admin/events/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/events/create.json.jbuilder +1 -0
- data/app/views/eventual/admin/events/index.html.erb +5 -0
- data/app/views/eventual/admin/events/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/events/repeat_form.js.erb +14 -0
- data/app/views/eventual/admin/events/show.html.erb +16 -0
- data/app/views/eventual/admin/place_taxons/_breadcrumb.html.erb +6 -0
- data/app/views/eventual/admin/place_taxons/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/place_taxons/_filter_form.html.erb +9 -0
- data/app/views/eventual/admin/place_taxons/_form.html.erb +6 -0
- data/app/views/eventual/admin/place_taxons/_index_tbody.html.erb +17 -0
- data/app/views/eventual/admin/place_taxons/_index_thead.html.erb +4 -0
- data/app/views/eventual/admin/place_taxons/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/place_taxons/_show_table.html.erb +12 -0
- data/app/views/eventual/admin/place_taxons/index.html.erb +5 -0
- data/app/views/eventual/admin/places/_breadcrumb.html.erb +5 -0
- data/app/views/eventual/admin/places/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/places/_filter_form.html.erb +10 -0
- data/app/views/eventual/admin/places/_form.html.erb +4 -0
- data/app/views/eventual/admin/places/_index_tbody.html.erb +6 -0
- data/app/views/eventual/admin/places/_index_thead.html.erb +10 -0
- data/app/views/eventual/admin/places/_index_tr.html.erb +19 -0
- data/app/views/eventual/admin/places/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/places/_place.json.jbuilder +6 -0
- data/app/views/eventual/admin/places/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/places/_show_table.html.erb +8 -0
- data/app/views/eventual/admin/places/index.html.erb +5 -0
- data/app/views/eventual/admin/places/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/plan_attenders/_breadcrumb.html.erb +9 -0
- data/app/views/eventual/admin/plan_attenders/_course_student.json.jbuilder +11 -0
- data/app/views/eventual/admin/plan_attenders/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/plan_attenders/_filter.html.erb +6 -0
- data/app/views/eventual/admin/plan_attenders/_form.html.erb +5 -0
- data/app/views/eventual/admin/plan_attenders/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/plan_attenders/_plan_attender.json.jbuilder +9 -0
- data/app/views/eventual/admin/plan_attenders/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/plan_attenders/_show_table.html.erb +16 -0
- data/app/views/eventual/admin/plan_attenders/absent.json.jbuilder +0 -0
- data/app/views/eventual/admin/plan_attenders/attend.json.jbuilder +0 -0
- data/app/views/eventual/admin/plan_attenders/index.html.erb +51 -0
- data/app/views/eventual/admin/plan_attenders/index.json.jbuilder +2 -0
- data/app/views/eventual/admin/plan_attenders/indexs.json.jbuilder +6 -0
- data/app/views/eventual/admin/plan_items/_breadcrumb.html.erb +8 -0
- data/app/views/eventual/admin/plan_items/_edit.html.erb +23 -0
- data/app/views/eventual/admin/plan_items/_filter.html.erb +11 -0
- data/app/views/eventual/admin/plan_items/_menu.html.erb +4 -0
- data/app/views/eventual/admin/plan_items/_plan.html.erb +6 -0
- data/app/views/eventual/admin/plan_items/_plan_item.json.jbuilder +12 -0
- data/app/views/eventual/admin/plan_items/_plan_items.json.jbuilder +13 -0
- data/app/views/eventual/admin/plan_items/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/plan_items/_show_table.html.erb +20 -0
- data/app/views/eventual/admin/plan_items/index.html.erb +72 -0
- data/app/views/eventual/admin/plan_items/index.json.jbuilder +3 -0
- data/app/views/eventual/admin/plan_items/qrcode.js.erb +1 -0
- data/app/views/eventual/admin/plans/_edit_item.html.erb +24 -0
- data/app/views/eventual/admin/plans/_filter.html.erb +8 -0
- data/app/views/eventual/admin/plans/_index.html.erb +31 -0
- data/app/views/eventual/admin/plans/_plan.json.jbuilder +12 -0
- data/app/views/eventual/admin/plans/_select_table.html.erb +30 -0
- data/app/views/eventual/admin/plans/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/plans/_show_item.html.erb +22 -0
- data/app/views/eventual/admin/plans/_show_table.html.erb +20 -0
- data/app/views/eventual/admin/plans/_table.html.erb +34 -0
- data/app/views/eventual/admin/plans/calendar.js.erb +12 -0
- data/app/views/eventual/admin/plans/index.html.erb +3 -0
- data/app/views/eventual/admin/plans/index.js.erb +42 -0
- data/app/views/eventual/admin/plans/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/plans/show.html.erb +3 -0
- data/app/views/eventual/admin/seats/_breadcrumb.html.erb +0 -0
- data/app/views/eventual/admin/seats/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/seats/_filter_form.html.erb +9 -0
- data/app/views/eventual/admin/seats/_form.html.erb +4 -0
- data/app/views/eventual/admin/seats/_index_tbody.html.erb +3 -0
- data/app/views/eventual/admin/seats/_index_thead.html.erb +4 -0
- data/app/views/eventual/admin/seats/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/seats/_show_table.html.erb +12 -0
- data/app/views/eventual/admin/seats/index.html.erb +5 -0
- data/app/views/eventual/admin/time_items/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/time_items/_form.html.erb +3 -0
- data/app/views/eventual/admin/time_items/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/time_items/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/time_items/_show_table.html.erb +12 -0
- data/app/views/eventual/admin/time_items/_time_item.json.jbuilder +3 -0
- data/app/views/eventual/admin/time_items/_time_items_options.html.erb +1 -0
- data/app/views/eventual/admin/time_items/default.json.jbuilder +1 -0
- data/app/views/eventual/admin/time_items/index.json.jbuilder +1 -0
- data/app/views/eventual/admin/time_items/select.js.erb +3 -0
- data/app/views/eventual/admin/time_lists/_edit_form.html.erb +4 -0
- data/app/views/eventual/admin/time_lists/_filter.html.erb +8 -0
- data/app/views/eventual/admin/time_lists/_form.html.erb +4 -0
- data/app/views/eventual/admin/time_lists/_index_tbody.html.erb +14 -0
- data/app/views/eventual/admin/time_lists/_index_thead.html.erb +8 -0
- data/app/views/eventual/admin/time_lists/_index_tr.html.erb +13 -0
- data/app/views/eventual/admin/time_lists/_new_form.html.erb +4 -0
- data/app/views/eventual/admin/time_lists/_show.json.jbuilder +1 -0
- data/app/views/eventual/admin/time_lists/_show_table.html.erb +8 -0
- data/app/views/eventual/admin/time_lists/_time_items.html.erb +27 -0
- data/app/views/eventual/admin/time_lists/_time_list.json.jbuilder +10 -0
- data/app/views/eventual/admin/time_lists/index.html.erb +5 -0
- data/app/views/eventual/admin/time_lists/index.json.jbuilder +1 -0
- data/app/views/eventual/me/plan_items/_plan_item.json.jbuilder +14 -0
- data/app/views/eventual/me/plan_items/index.json.jbuilder +3 -0
- data/app/views/eventual/my/plans/_show_table.html.erb +32 -0
- data/app/views/eventual/my/plans/_table.html.erb +34 -0
- data/app/views/eventual/my/plans/_time_plan.json.jbuilder +8 -0
- data/app/views/eventual/my/plans/calendar.js.erb +12 -0
- data/app/views/eventual/my/plans/edit.html.erb +9 -0
- data/app/views/eventual/my/plans/edit.js.erb +3 -0
- data/app/views/eventual/my/plans/index-ready.js +11 -0
- data/app/views/eventual/my/plans/index.html.erb +26 -0
- data/app/views/eventual/my/plans/index.js +35 -0
- data/app/views/eventual/my/plans/index.json.jbuilder +1 -0
- data/app/views/eventual/my/plans/new.html.erb +9 -0
- data/app/views/eventual/my/plans/show.html.erb +7 -0
- data/app/views/eventual/my/plans/show.js.erb +12 -0
- data/app/views/eventual/my/plans/show.json.jbuilder +1 -0
- data/app/views/eventual/places/_filter_table.html.erb +11 -0
- data/app/views/eventual/places/index.html.erb +35 -0
- data/app/views/eventual/places/show.html.erb +0 -0
- data/app/views/eventual/time/_finish_at.html.erb +1 -0
- data/app/views/eventual/time/_finish_at_once.html.erb +1 -0
- data/app/views/eventual/time/_form.html.erb +15 -0
- data/app/views/eventual/time/_monthly_checkboxes.html.erb +1 -0
- data/app/views/eventual/time/_once_date.html.erb +1 -0
- data/app/views/eventual/time/_start_at.html.erb +1 -0
- data/app/views/eventual/time/_start_at_once.html.erb +1 -0
- data/app/views/eventual/time/_weekly_checkboxes.html.erb +1 -0
- data/app/views/eventual/time/index.css +5 -0
- data/app/views/eventual/time/repeat_form.js.erb +14 -0
- data/app/views/eventual/time/show.css +3 -0
- data/config/locales/en.enum.yml +8 -0
- data/config/locales/zh.attributes.yml +50 -0
- data/config/locales/zh.controller.yml +59 -0
- data/config/locales/zh.enum.yml +12 -0
- data/config/routes.rb +98 -0
- data/lib/rails_event/config.rb +13 -0
- data/lib/rails_event/engine.rb +29 -0
- data/lib/rails_event/version.rb +5 -0
- data/lib/rails_event.rb +4 -0
- metadata +346 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
<% @settings.except(:defaultDate).each do |key, value| %>
|
2
|
+
<% if value.is_a?(Hash) %>
|
3
|
+
calendar.setOption('<%= key %>', <%= raw value.to_json %>)
|
4
|
+
<% elsif value.is_a?(String) %>
|
5
|
+
calendar.setOption('<%= key %>', '<%= value %>')
|
6
|
+
<% else %>
|
7
|
+
calendar.setOption('<%= key %>', <%= value %>)
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
10
|
+
calendar.changeView('timeGrid', '<%= @settings[:defaultDate] %>')
|
11
|
+
calendar.removeAllEvents()
|
12
|
+
calendar.addEventSource(<%= raw @events.to_json %>)
|
@@ -0,0 +1,11 @@
|
|
1
|
+
//= require moment/moment
|
2
|
+
//= require moment-timezone/builds/moment-timezone-with-data
|
3
|
+
//= require @fullcalendar/core
|
4
|
+
//= require @fullcalendar/core/locales/zh-cn
|
5
|
+
//= require @fullcalendar/daygrid
|
6
|
+
//= require @fullcalendar/timegrid
|
7
|
+
//= require @fullcalendar/resource-common
|
8
|
+
//= require @fullcalendar/resource-daygrid
|
9
|
+
//= require @fullcalendar/resource-timegrid
|
10
|
+
//= require @fullcalendar/moment
|
11
|
+
//= require @fullcalendar/moment-timezone
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% content_for :breadcrumb do %>
|
2
|
+
<div class="breadcrumb has-succeeds-separator">
|
3
|
+
<ul>
|
4
|
+
<li><%= link_to '课程列表', admin_events_path %></li>
|
5
|
+
<li class="is-active">排课</li>
|
6
|
+
</ul>
|
7
|
+
</div>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<div class="ui top attached fluid borderless menu">
|
11
|
+
<div class="item">
|
12
|
+
<div class="ui right labeled left labeled input">
|
13
|
+
<%= date_field_tag :'plan[begin_on]', Date.today, form: 'time_plan_form', data: { url: my_time_plans_path } %>
|
14
|
+
<div class="ui label">
|
15
|
+
<i class="arrow circle right icon"></i>
|
16
|
+
</div>
|
17
|
+
<%= date_field_tag :'plan[end_on]', nil, max: '2019-04-20', form: 'time_plan_form', data: { url: my_time_plans_path } %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="ui bottom attached segment">
|
23
|
+
<%= select_tag :'plan[place_id]', options_from_collection_for_select(@places, :id, :name), form: 'time_plan_form', data: { url: my_time_plans_path } %>
|
24
|
+
<div class="ui divider"></div>
|
25
|
+
<div id="calendar"></div>
|
26
|
+
</div>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
var calendarEl = document.getElementById('calendar');
|
2
|
+
var calendar = new FullCalendar.Calendar(calendarEl, {
|
3
|
+
schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
|
4
|
+
locale: 'zh-cn',
|
5
|
+
plugins: [ 'timeGrid' ],
|
6
|
+
header: {
|
7
|
+
left: 'prev,today,next',
|
8
|
+
center: 'title',
|
9
|
+
right: ''
|
10
|
+
},
|
11
|
+
defaultView: 'timeGridWeek',
|
12
|
+
columnHeaderFormat: settings[columnHeaderFormat].to_json,
|
13
|
+
allDaySlot: false,
|
14
|
+
minTime: '<%= @settings[:minTime] %>',
|
15
|
+
maxTime: '<%= @settings[:maxTime] %>',
|
16
|
+
slotDuration: '<%= @settings[:slotDuration] %>',
|
17
|
+
slotLabelInterval: '<%= @settings[:slotLabelInterval] %>',
|
18
|
+
slotLabelFormat: {
|
19
|
+
hour: 'numeric',
|
20
|
+
minute: '2-digit',
|
21
|
+
omitZeroMinute: true,
|
22
|
+
hour12: false
|
23
|
+
},
|
24
|
+
events: events.to_json,
|
25
|
+
eventClick: function(info) {
|
26
|
+
var form = document.getElementById('time_plan_form')
|
27
|
+
var data = new FormData(form);
|
28
|
+
data.set('time_item_id', info.event.id);
|
29
|
+
data.set('time_item_start', info.event.start.toISOString());
|
30
|
+
|
31
|
+
Rails.ajax({url: form.action, type: 'POST', data: data, dataType: 'script'});
|
32
|
+
}
|
33
|
+
});
|
34
|
+
|
35
|
+
calendar.render()
|
@@ -0,0 +1 @@
|
|
1
|
+
json.time_plans @time_plans, partial: 'plan', as: :plan
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div class="ui segment breadcrumb">
|
2
|
+
<%= link_to 'Back', time_plans_path(params[:plan_type], params[:plan_id]), class: 'section' %>
|
3
|
+
<i class="fas fa-angle-right divider"></i>
|
4
|
+
<div class="active section">Add</div>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="ui segment">
|
8
|
+
<%= render 'form' %>
|
9
|
+
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% @settings.except(:defaultDate).each do |key, value| %>
|
2
|
+
<% if value.is_a?(Hash) %>
|
3
|
+
calendar.setOption('<%= key %>', <%= raw value.to_json %>)
|
4
|
+
<% elsif value.is_a?(String) %>
|
5
|
+
calendar.setOption('<%= key %>', '<%= value %>')
|
6
|
+
<% else %>
|
7
|
+
calendar.setOption('<%= key %>', <%= value %>)
|
8
|
+
<% end %>
|
9
|
+
<% end %>
|
10
|
+
calendar.changeView('timeGrid', '<%= @settings[:defaultDate] %>')
|
11
|
+
calendar.removeAllEvents()
|
12
|
+
calendar.addEventSource(<%= raw @plan.events.to_json %>)
|
@@ -0,0 +1 @@
|
|
1
|
+
json.plan @plan, partial: 'plan', as: :plan
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<table class="as-search">
|
2
|
+
<tr>
|
3
|
+
<th>类别</th>
|
4
|
+
<td>
|
5
|
+
<%= link_to '默认', filter_params(except: :place_taxon_id), class: active_helper(place_taxon_id: '', active: 'button is-info', item: 'button is-light') %>
|
6
|
+
<% @place_taxons.each do |place_taxon| %>
|
7
|
+
<%= link_to place_taxon.name, filter_params(place_taxon_id: place_taxon.id), class: active_helper(place_taxon_id: place_taxon.id, active: 'button is-info', item: 'button is-light') %>
|
8
|
+
<% end %>
|
9
|
+
</td>
|
10
|
+
</tr>
|
11
|
+
</table>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<div class="box">
|
2
|
+
<%= render 'filter_table' %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="columns">
|
6
|
+
<div class="column">
|
7
|
+
<div class="">
|
8
|
+
<% @places.each do |place| %>
|
9
|
+
<div class="media">
|
10
|
+
<div class="media-left">
|
11
|
+
</div>
|
12
|
+
<div class="media-content">
|
13
|
+
<%= link_to place.name, place_path(place) %>
|
14
|
+
<p><%= place.description %></p>
|
15
|
+
</div>
|
16
|
+
<div class="media-right">
|
17
|
+
<%= link_to '加入购物车', { controller: 'trade/my/trade_items', action: 'create', good_id: place.id, good_type: place.class_name }, method: :post, class: 'button' %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
<% end %>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<%= paginate @places %>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
|
27
|
+
<div class="column is-narrow">
|
28
|
+
<div class="ui segment">
|
29
|
+
<div class="ui menu vertical">
|
30
|
+
<div class="item"><%= link_to '申请为供应商', new_my_place_path(place_taxon_id: params[:place_taxon_id]), class: 'button is-link is-small' %></div>
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.time_field :finish_at if f.object.respond_to?(:finish_at) %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.datetime_local_field :finish_at if f.object.respond_to?(:finish_at) %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= f.select :repeat_type, options_for_select(f.object.class.options_i18n(:repeat_type), f.object.repeat_type || 'once'), {}, { data: { booking_type: f.object.class.base_class.name, title: 'repeat_type' } } %>
|
2
|
+
<% if f.object.repeat_type == 'monthly' %>
|
3
|
+
<%= render partial: 'event/time/month_checkboxes', locals: { f: f } %>
|
4
|
+
<% elsif f.object.repeat_type == 'weekly' %>
|
5
|
+
<%= render partial: 'event/time/week_checkboxes', locals: { f: f } %>
|
6
|
+
<% else %>
|
7
|
+
<div id="<%= f.object.class.base_class.name.underscore %>_repeat_days_wrapper"></div>
|
8
|
+
<% end %>
|
9
|
+
<% if ['once', nil].include? f.object.repeat_type %>
|
10
|
+
<%= f.datetime_field :start_at %>
|
11
|
+
<%= f.datetime_field :finish_at if f.object.respond_to?(:finish_at) %>
|
12
|
+
<% else %>
|
13
|
+
<%= f.time_field :start_at %>
|
14
|
+
<%= f.time_field :finish_at if f.object.respond_to?(:finish_at) %>
|
15
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.collection_check_boxes :repeat_days, 1..31, :to_i, :ordinalize, { include_hidden: false } %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.date_field :repeat_days %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.time_field :start_at %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.datetime_local_field :start_at %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= f.collection_check_boxes :repeat_days, Date::DAYS_INTO_WEEK, :second, :first, { include_hidden: false } %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<% form_object = default_form_object(@booking, can: { wrap_all_id: true }) %>
|
2
|
+
<% if params[:repeat_type] == 'weekly' %>
|
3
|
+
$('#<%= @booking.class.base_class.name.underscore %>_repeat_days_wrapper').replaceWith('<%= j(render partial: 'booking/time/weekly_checkboxes', locals: { f: form_object }) %>');
|
4
|
+
$('#<%= @booking.class.base_class.name.underscore %>_start_at_wrapper').replaceWith('<%= j(render partial: 'booking/time/start_at', locals: { f: form_object }) %>');
|
5
|
+
$('#<%= @booking.class.base_class.name.underscore %>_finish_at_wrapper').replaceWith('<%= j(render partial: 'booking/time/finish_at', locals: { f: form_object }) %>');
|
6
|
+
<% elsif params[:repeat_type] == 'monthly' %>
|
7
|
+
$('#<%= @booking.class.base_class.name.underscore %>_repeat_days_wrapper').replaceWith('<%= j(render partial: 'booking/time/monthly_checkboxes', locals: { f: form_object }) %>');
|
8
|
+
$('#<%= @booking.class.base_class.name.underscore %>_start_at_wrapper').replaceWith('<%= j(render partial: 'booking/time/start_at', locals: { f: form_object }) %>');
|
9
|
+
$('#<%= @booking.class.base_class.name.underscore %>_finish_at_wrapper').replaceWith('<%= j(render partial: 'booking/time/finish_at', locals: { f: form_object }) %>');
|
10
|
+
<% elsif params[:repeat_type] == 'once' %>
|
11
|
+
$('#<%= @booking.class.base_class.name.underscore %>_repeat_days_wrapper').replaceWith('<%= j(render partial: 'booking/time/once_date', locals: { f: form_object }) %>');
|
12
|
+
$('#<%= @booking.class.base_class.name.underscore %>_start_at_wrapper').replaceWith('<%= j(render partial: 'booking/time/start_at_once', locals: { f: form_object }) %>');
|
13
|
+
$('#<%= @booking.class.base_class.name.underscore %>_finish_at_wrapper').replaceWith('<%= j(render partial: 'booking/time/finish_at_once', locals: { f: form_object }) %>');
|
14
|
+
<% end %>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
zh:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
eventual/plan:
|
5
|
+
begin_on: 开始日期
|
6
|
+
end_on: 截止日期
|
7
|
+
repeat_type: 重复类型
|
8
|
+
time_list_id: 时间方案
|
9
|
+
eventual/time_list:
|
10
|
+
name: 名称
|
11
|
+
code: 代码
|
12
|
+
item_minutes: 节次时间(分钟)
|
13
|
+
interval_minutes: 课间时间(分钟)
|
14
|
+
default: 默认选择
|
15
|
+
time_items: 明细
|
16
|
+
eventual/place:
|
17
|
+
place_taxon_id: 空间分类
|
18
|
+
seats_count: 座位数
|
19
|
+
eventual/event:
|
20
|
+
event_taxon_id: 活动分类
|
21
|
+
event_participants_count: 报名人数
|
22
|
+
price: 消耗课时
|
23
|
+
eventual/event_crowd:
|
24
|
+
teacher: 老师
|
25
|
+
members: 学生
|
26
|
+
crowd_id: 班级
|
27
|
+
teacher_id: 老师
|
28
|
+
room_id: 教室
|
29
|
+
eventual/event_participant:
|
30
|
+
state: 状态
|
31
|
+
score: 分数
|
32
|
+
eventual/event_plan:
|
33
|
+
booking_on: 日期
|
34
|
+
time_item: 时间段
|
35
|
+
room_id: 教室
|
36
|
+
lesson_id: 课程
|
37
|
+
teacher_id: 老师
|
38
|
+
qrcode: 二维码
|
39
|
+
eventual/event_item:
|
40
|
+
videos: 媒体资料
|
41
|
+
documents: 文件
|
42
|
+
author_id: 课程作者
|
43
|
+
eventual/plan_attender:
|
44
|
+
member_id: 学生
|
45
|
+
state: 状态
|
46
|
+
attended: 是否出勤
|
47
|
+
created_at: 入学时间
|
48
|
+
eventual/crowd:
|
49
|
+
member_type: 学生类型
|
50
|
+
crowd_members_count: 学生数
|
@@ -0,0 +1,59 @@
|
|
1
|
+
zh:
|
2
|
+
eventual:
|
3
|
+
title: 预约/事件
|
4
|
+
my:
|
5
|
+
time_plans:
|
6
|
+
index:
|
7
|
+
title:
|
8
|
+
admin:
|
9
|
+
title: 预约管理
|
10
|
+
time_lists:
|
11
|
+
index:
|
12
|
+
title: 时间表
|
13
|
+
place_taxons:
|
14
|
+
index:
|
15
|
+
title: 空间分类
|
16
|
+
places:
|
17
|
+
index:
|
18
|
+
title: 空间
|
19
|
+
seats:
|
20
|
+
index:
|
21
|
+
title: 桌子
|
22
|
+
events:
|
23
|
+
index:
|
24
|
+
title: 活动列表
|
25
|
+
show:
|
26
|
+
title: 活动详情
|
27
|
+
crowds:
|
28
|
+
index:
|
29
|
+
title: 班级
|
30
|
+
event_plans:
|
31
|
+
index:
|
32
|
+
title: 计划
|
33
|
+
plan: 排课
|
34
|
+
qrcode: 获取二维码
|
35
|
+
plan:
|
36
|
+
title: 排课
|
37
|
+
event_participants:
|
38
|
+
index:
|
39
|
+
title: 学生列表
|
40
|
+
event_taxons:
|
41
|
+
index:
|
42
|
+
title: 活动分类
|
43
|
+
new:
|
44
|
+
title: 添加课程分类
|
45
|
+
event_items:
|
46
|
+
index:
|
47
|
+
title: 课程内容
|
48
|
+
agencys:
|
49
|
+
index:
|
50
|
+
title: 园区学生
|
51
|
+
edit_crowd:
|
52
|
+
title: 分班
|
53
|
+
plans:
|
54
|
+
index:
|
55
|
+
title: 时间计划
|
56
|
+
plan_attenders:
|
57
|
+
index:
|
58
|
+
title: 点名
|
59
|
+
qrcode: 二维码
|
data/config/routes.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
|
3
|
+
scope module: :eventual, defaults: { business: 'eventual' } do
|
4
|
+
controller :time do
|
5
|
+
get 'repeat_form', action: 'repeat_form'
|
6
|
+
end
|
7
|
+
resources :plans do
|
8
|
+
collection do
|
9
|
+
get :calendar
|
10
|
+
end
|
11
|
+
member do
|
12
|
+
get 'calendar' => :show_calendar
|
13
|
+
end
|
14
|
+
end
|
15
|
+
resources :time_items, only: [:index] do
|
16
|
+
collection do
|
17
|
+
get :select
|
18
|
+
end
|
19
|
+
end
|
20
|
+
resources :places do
|
21
|
+
resources :seats
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
scope :admin, module: 'eventual/admin', as: :admin, defaults: { business: 'eventual', namespace: 'admin' } do
|
26
|
+
resources :time_lists do
|
27
|
+
resources :time_items
|
28
|
+
end
|
29
|
+
resources :time_items, only: [] do
|
30
|
+
collection do
|
31
|
+
get :default
|
32
|
+
end
|
33
|
+
end
|
34
|
+
resources :place_taxons
|
35
|
+
resources :places do
|
36
|
+
resources :seats
|
37
|
+
end
|
38
|
+
resources :plans
|
39
|
+
resources :plan_items do
|
40
|
+
patch :qrcode, on: :member
|
41
|
+
resources :bookings do
|
42
|
+
collection do
|
43
|
+
delete '' => :destroy
|
44
|
+
end
|
45
|
+
end
|
46
|
+
resources :plan_attenders do
|
47
|
+
collection do
|
48
|
+
delete '' => :destroy
|
49
|
+
end
|
50
|
+
member do
|
51
|
+
put :attend
|
52
|
+
put :absent
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
resources :crowds do
|
57
|
+
resources :crowd_members do
|
58
|
+
collection do
|
59
|
+
delete '' => :destroy
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
resources :event_taxons
|
64
|
+
resources :events do
|
65
|
+
collection do
|
66
|
+
get :plan
|
67
|
+
end
|
68
|
+
resources :event_participants do
|
69
|
+
collection do
|
70
|
+
post :check
|
71
|
+
post :attend
|
72
|
+
delete '' => :destroy
|
73
|
+
end
|
74
|
+
member do
|
75
|
+
patch :quit
|
76
|
+
end
|
77
|
+
end
|
78
|
+
resources :event_items
|
79
|
+
end
|
80
|
+
resources :event_items, only: [] do
|
81
|
+
member do
|
82
|
+
get 'plan' => :edit_plan
|
83
|
+
patch 'plan' => :update_plan
|
84
|
+
delete 'plan' => :destroy_plan
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
scope :my, module: 'eventual/my', as: :my, defaults: { business: 'eventual', namespace: 'my' } do
|
90
|
+
resources :time_plans
|
91
|
+
resources :places
|
92
|
+
end
|
93
|
+
|
94
|
+
scope :me, module: 'eventual/me', as: :me, defaults: { business: 'eventual', namespace: 'me' } do
|
95
|
+
resources :plan_items
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|