droom 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.md +23 -0
- data/Rakefile +27 -0
- data/app/assets/images/droom/arrows.png +0 -0
- data/app/assets/images/droom/big_icons.png +0 -0
- data/app/assets/images/droom/blueblob.png +0 -0
- data/app/assets/images/droom/close.png +0 -0
- data/app/assets/images/droom/cross.png +0 -0
- data/app/assets/images/droom/download.png +0 -0
- data/app/assets/images/droom/greyblob.png +0 -0
- data/app/assets/images/droom/help/goodreader.jpg +0 -0
- data/app/assets/images/droom/ical.png +0 -0
- data/app/assets/images/droom/icons.png +0 -0
- data/app/assets/images/droom/medium_icons.png +0 -0
- data/app/assets/images/droom/medium_object_icons.png +0 -0
- data/app/assets/images/droom/minimonth.png +0 -0
- data/app/assets/images/droom/minisymbols.png +0 -0
- data/app/assets/images/droom/object_icons.png +0 -0
- data/app/assets/images/droom/pinkblob.png +0 -0
- data/app/assets/images/droom/place_busy.png +0 -0
- data/app/assets/images/droom/place_quiet.png +0 -0
- data/app/assets/images/droom/plus_bullet.png +0 -0
- data/app/assets/images/droom/search.png +0 -0
- data/app/assets/images/droom/setup.png +0 -0
- data/app/assets/images/droom/small_go.png +0 -0
- data/app/assets/images/droom/smallbullet.png +0 -0
- data/app/assets/images/droom/smallspinner.gif +0 -0
- data/app/assets/images/droom/spinner.gif +0 -0
- data/app/assets/images/droom/spr_toolbar_icons_r2.png +0 -0
- data/app/assets/images/droom/tablesort.png +0 -0
- data/app/assets/images/droom/tick.png +0 -0
- data/app/assets/images/droom/tinysymbols.png +0 -0
- data/app/assets/images/droom/twister.png +0 -0
- data/app/assets/images/droom/vcard.png +0 -0
- data/app/assets/images/droom/venue_bullet.png +0 -0
- data/app/assets/javascripts/droom.js.coffee +88 -0
- data/app/assets/javascripts/droom/calendar.js.coffee +121 -0
- data/app/assets/javascripts/droom/drag_sort.js.coffee +22 -0
- data/app/assets/javascripts/droom/forms.js.coffee +746 -0
- data/app/assets/javascripts/droom/lib/extensions.js.coffee +60 -0
- data/app/assets/javascripts/droom/lib/jquery.animate-colors.js +109 -0
- data/app/assets/javascripts/droom/lib/jquery.cookie.js +71 -0
- data/app/assets/javascripts/droom/lib/jquery.sortable.js +97 -0
- data/app/assets/javascripts/droom/lib/kalendae.js +1692 -0
- data/app/assets/javascripts/droom/lib/modernizr.js +4 -0
- data/app/assets/javascripts/droom/lib/parser_rules/advanced.js +553 -0
- data/app/assets/javascripts/droom/lib/parser_rules/simple.js +32 -0
- data/app/assets/javascripts/droom/lib/wysihtml5.js +9550 -0
- data/app/assets/javascripts/droom/map.js.coffee +123 -0
- data/app/assets/javascripts/droom/sort.js.coffee +126 -0
- data/app/assets/javascripts/droom/suggester.js.coffee +230 -0
- data/app/assets/stylesheets/droom.css.sass +1151 -0
- data/app/assets/stylesheets/lib/_kalendae.css.sass +142 -0
- data/app/assets/stylesheets/lib/_toolbar.css.sass +192 -0
- data/app/controllers/droom/dashboard_controller.rb +27 -0
- data/app/controllers/droom/document_attachments_controller.rb +19 -0
- data/app/controllers/droom/documents_controller.rb +116 -0
- data/app/controllers/droom/engine_controller.rb +43 -0
- data/app/controllers/droom/events_controller.rb +120 -0
- data/app/controllers/droom/group_invitations_controller.rb +47 -0
- data/app/controllers/droom/groups_controller.rb +67 -0
- data/app/controllers/droom/invitations_controller.rb +43 -0
- data/app/controllers/droom/memberships_controller.rb +47 -0
- data/app/controllers/droom/pages_controller.rb +61 -0
- data/app/controllers/droom/people_controller.rb +92 -0
- data/app/controllers/droom/suggestions_controller.rb +58 -0
- data/app/controllers/droom/venues_controller.rb +39 -0
- data/app/helpers/droom/droom_helper.rb +74 -0
- data/app/models/droom/agenda_category.rb +8 -0
- data/app/models/droom/category.rb +27 -0
- data/app/models/droom/document.rb +110 -0
- data/app/models/droom/document_attachment.rb +71 -0
- data/app/models/droom/document_link.rb +31 -0
- data/app/models/droom/event.rb +409 -0
- data/app/models/droom/event_set.rb +6 -0
- data/app/models/droom/group.rb +66 -0
- data/app/models/droom/group_invitation.rb +23 -0
- data/app/models/droom/invitation.rb +30 -0
- data/app/models/droom/membership.rb +27 -0
- data/app/models/droom/page.rb +26 -0
- data/app/models/droom/person.rb +302 -0
- data/app/models/droom/personal_document.rb +98 -0
- data/app/models/droom/recurrence_rule.rb +82 -0
- data/app/models/droom/venue.rb +125 -0
- data/app/views/droom/dashboard/_marginalia.html.haml +3 -0
- data/app/views/droom/dashboard/_my_future_events.html.haml +9 -0
- data/app/views/droom/dashboard/_my_group_documents.html.haml +6 -0
- data/app/views/droom/dashboard/_my_past_events.haml +6 -0
- data/app/views/droom/dashboard/index.html.haml +5 -0
- data/app/views/droom/documents/_created.html.haml +2 -0
- data/app/views/droom/documents/_document.html.haml +14 -0
- data/app/views/droom/documents/_document_line.html.haml +2 -0
- data/app/views/droom/documents/_documents_list.html.haml +31 -0
- data/app/views/droom/documents/_documents_table.html.haml +13 -0
- data/app/views/droom/documents/_event_document_form.html.haml +15 -0
- data/app/views/droom/documents/_form.html.haml +22 -0
- data/app/views/droom/documents/_listing.html.haml +8 -0
- data/app/views/droom/documents/_suggested.html.haml +9 -0
- data/app/views/droom/documents/_table_document.html.haml +31 -0
- data/app/views/droom/documents/edit.html.haml +1 -0
- data/app/views/droom/documents/index.html.haml +29 -0
- data/app/views/droom/documents/new.html.haml +1 -0
- data/app/views/droom/errors/bang.html.haml +12 -0
- data/app/views/droom/errors/not_allowed.html.haml +12 -0
- data/app/views/droom/errors/not_found.html.haml +12 -0
- data/app/views/droom/events/_attachment.html.haml +1 -0
- data/app/views/droom/events/_attachment_list.html.haml +4 -0
- data/app/views/droom/events/_calendar.html.haml +54 -0
- data/app/views/droom/events/_created.html.haml +2 -0
- data/app/views/droom/events/_event.html.haml +77 -0
- data/app/views/droom/events/_event_line.html.haml +13 -0
- data/app/views/droom/events/_events.html.haml +2 -0
- data/app/views/droom/events/_form.html.haml +35 -0
- data/app/views/droom/events/_invitations.html.haml +20 -0
- data/app/views/droom/events/_other_page_parts.html.haml +0 -0
- data/app/views/droom/events/_popup_event.html.haml +6 -0
- data/app/views/droom/events/_suggested.html.haml +12 -0
- data/app/views/droom/events/_views.html.haml +7 -0
- data/app/views/droom/events/edit.html.haml +1 -0
- data/app/views/droom/events/index.html.haml +12 -0
- data/app/views/droom/events/index.rss.builder +20 -0
- data/app/views/droom/events/new.html.haml +1 -0
- data/app/views/droom/events/show.html.haml +4 -0
- data/app/views/droom/group_invitations/_attending_groups.html.haml +8 -0
- data/app/views/droom/group_invitations/_created.html.haml +3 -0
- data/app/views/droom/group_invitations/_form.html.haml +4 -0
- data/app/views/droom/group_invitations/new.html.haml +1 -0
- data/app/views/droom/groups/_created.html.haml +3 -0
- data/app/views/droom/groups/_form.html.haml +12 -0
- data/app/views/droom/groups/_group.html.haml +11 -0
- data/app/views/droom/groups/_groups.html.haml +3 -0
- data/app/views/droom/groups/edit.html.haml +1 -0
- data/app/views/droom/groups/index.html.haml +7 -0
- data/app/views/droom/groups/show.html.haml +13 -0
- data/app/views/droom/invitations/_attending_people.html.haml +8 -0
- data/app/views/droom/invitations/_created.html.haml +3 -0
- data/app/views/droom/invitations/_form.html.haml +5 -0
- data/app/views/droom/invitations/new.html.haml +1 -0
- data/app/views/droom/memberships/_button.html.haml +11 -0
- data/app/views/droom/memberships/_created.html.haml +4 -0
- data/app/views/droom/memberships/_form.html.haml +7 -0
- data/app/views/droom/memberships/_member.html.haml +33 -0
- data/app/views/droom/memberships/_memberships.html.haml +4 -0
- data/app/views/droom/pages/_contents.html.haml +10 -0
- data/app/views/droom/pages/_form.html.haml +36 -0
- data/app/views/droom/pages/_full_page.html.haml +17 -0
- data/app/views/droom/pages/_page.html.haml +5 -0
- data/app/views/droom/pages/_pages.html.haml +2 -0
- data/app/views/droom/pages/admin.html.haml +24 -0
- data/app/views/droom/pages/edit.html.haml +1 -0
- data/app/views/droom/pages/index.html.haml +10 -0
- data/app/views/droom/pages/new.html.haml +4 -0
- data/app/views/droom/pages/show.html.haml +5 -0
- data/app/views/droom/people/_created.html.haml +6 -0
- data/app/views/droom/people/_form.html.haml +40 -0
- data/app/views/droom/people/_people.html.haml +29 -0
- data/app/views/droom/people/_person.html.haml +34 -0
- data/app/views/droom/people/_suggested.html.haml +9 -0
- data/app/views/droom/people/edit.html.haml +1 -0
- data/app/views/droom/people/index.html.haml +11 -0
- data/app/views/droom/people/new.html.haml +1 -0
- data/app/views/droom/people/show.html.haml +1 -0
- data/app/views/droom/shared/_calendar_and_search.html.haml +2 -0
- data/app/views/droom/shared/_calendar_holder.haml +3 -0
- data/app/views/droom/shared/_controls.html.haml +8 -0
- data/app/views/droom/shared/_navigation.html.haml +8 -0
- data/app/views/droom/shared/_search_form.html.haml +4 -0
- data/app/views/droom/shared/_suggestions.html.haml +11 -0
- data/app/views/droom/shared/_toolbar.html.haml +17 -0
- data/app/views/droom/venues/_suggested.html.haml +6 -0
- data/app/views/droom/venues/index.html.haml +6 -0
- data/app/views/droom/venues/show.html.haml +21 -0
- data/app/views/layouts/droom/application.html.haml +36 -0
- data/config/initializers/dav.rb +2 -0
- data/config/initializers/paperclip.rb +26 -0
- data/config/initializers/snail.rb +2 -0
- data/config/locales/en.yml +191 -0
- data/config/routes.rb +51 -0
- data/db/migrate/20120910075016_create_droom_data.rb +134 -0
- data/db/migrate/20120917095804_agenda_sections.rb +13 -0
- data/db/migrate/20120918121352_add_postal_address_to_people.rb +10 -0
- data/db/migrate/20121009075049_give_groups_descriptions.rb +5 -0
- data/db/migrate/20121009105244_more_names.rb +5 -0
- data/db/migrate/20121009145944_event_agenda_sections.rb +13 -0
- data/db/migrate/20121011091230_create_group_invitations.rb +10 -0
- data/db/migrate/20121012144720_give_people_positions.rb +5 -0
- data/db/migrate/20121012154558_help_pages.rb +13 -0
- data/db/migrate/20121012163201_category_slugs.rb +5 -0
- data/db/migrate/20121101160102_document_links.rb +14 -0
- data/db/migrate/20121101181247_people_visibility.rb +7 -0
- data/db/migrate/20121102094738_shy_people.rb +6 -0
- data/db/migrate/20121102095856_visibility_defaults.rb +8 -0
- data/lib/droom.rb +73 -0
- data/lib/droom/dav_resource.rb +36 -0
- data/lib/droom/engine.rb +8 -0
- data/lib/droom/helpers.rb +25 -0
- data/lib/droom/monkeys.rb +15 -0
- data/lib/droom/renderers.rb +13 -0
- data/lib/droom/validators.rb +5 -0
- data/lib/droom/version.rb +3 -0
- data/lib/generators/droom/dashboard/dashboard_generator.rb +16 -0
- data/lib/generators/droom/install/USAGE +9 -0
- data/lib/generators/droom/install/install_generator.rb +15 -0
- data/lib/generators/droom/install/templates/droom_initializer.rb +6 -0
- data/lib/generators/droom/views/views_generator.rb +9 -0
- data/lib/tasks/droom_tasks.rake +4 -0
- metadata +635 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
- document ||= listing
|
2
|
+
|
3
|
+
%li.document.holder
|
4
|
+
= link_to document.name, document_url(document), :class => document.file_extension, :title => t(:click_to_download, :name => document.file_file_name)
|
5
|
+
- if admin? && @event
|
6
|
+
- d_a = @event.document_attachments.find_by_document_id(document)
|
7
|
+
= link_to t(:remove), document_document_attachment_path(document, d_a), :method => :delete, :remote => true, :class => 'delete minimal', :data => {:confirm => t(:confirm_remove_document, :name => document.name, :event_name => @event.name)}
|
8
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
- document ||= suggested
|
2
|
+
- if current_user.person
|
3
|
+
- if pd = current_user.person.personal_or_generic_version_of(document)
|
4
|
+
- document = pd
|
5
|
+
|
6
|
+
%li.document
|
7
|
+
= link_to document.name, document_url(document), :class => document.file_extension, :title => t(:click_to_download, :name => document.file_file_name)
|
8
|
+
%span.note
|
9
|
+
attachments...
|
@@ -0,0 +1,31 @@
|
|
1
|
+
- document ||= table_document
|
2
|
+
- cssclasses = ["document"]
|
3
|
+
- cssclasses << document.file_extension
|
4
|
+
- cssclasses << 'changed' if document.changed_since_creation?
|
5
|
+
|
6
|
+
%tr.document.holder
|
7
|
+
%th.name
|
8
|
+
= link_to truncate(document.name, :length => 24), document_url(document), :class => cssclasses.join(' '), :title => t(:click_to_download, :name => document.file_file_name)
|
9
|
+
%td.filename.minor
|
10
|
+
%span.note
|
11
|
+
= truncate(document.file_file_name, :length => 18)
|
12
|
+
%td.filesize.minor
|
13
|
+
%span.note
|
14
|
+
= number_to_human_size(document.file_file_size)
|
15
|
+
%td.created.minor
|
16
|
+
%span.note
|
17
|
+
= l document.created_at.to_date, :format => :minimal_with_year
|
18
|
+
%td.event.minor
|
19
|
+
- if document.latest_event_id
|
20
|
+
= link_to truncate(document.latest_event_name, :length => 18), event_url(Droom::Event.find(document.latest_event_id)), :class => "event note"
|
21
|
+
%td.agenda_section.minor
|
22
|
+
%span.note
|
23
|
+
= truncate(document.category_name, :length => 18, :separator => " ")
|
24
|
+
- if current_user.admin?
|
25
|
+
%td.admin<
|
26
|
+
= link_to t(:edit), edit_document_url(document), :class => 'edit minimal', :remote => true, :data => {:action => "overlay_form", :type => "html"}
|
27
|
+
= link_to t(:remove), document_url(document), :method => 'delete', :class => 'delete minimal', :remote => 'true', :data => {:confirm => t(:confirm_delete_document, :name => document.name)}
|
28
|
+
%tr
|
29
|
+
%td.description{:colspan => 6}
|
30
|
+
%p
|
31
|
+
= document.description
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'form'
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#documents
|
2
|
+
- if current_user.admin?
|
3
|
+
.holder
|
4
|
+
%p.admin
|
5
|
+
= link_to t(:add_document), droom.new_document_url, :class => "add", :remote => true, :data => {:action => "append_form", :type => "html", :affected => "table.documents"}
|
6
|
+
|
7
|
+
%table.main.documents.sortable
|
8
|
+
%thead
|
9
|
+
%tr
|
10
|
+
%th
|
11
|
+
%a.sorter{:href => "#", :"data-sort" => "name"}
|
12
|
+
= t :document_name
|
13
|
+
%th.minor
|
14
|
+
%a.sorter{:href => "#", :"data-sort" => "filename"}
|
15
|
+
= t :document_filename
|
16
|
+
%th.minor
|
17
|
+
%a.sorter{:href => "#", :"data-sort" => "filesize"}
|
18
|
+
= t :document_filesize
|
19
|
+
%th.minor
|
20
|
+
%a.sorter{:href => "#", :"data-sort" => "created"}
|
21
|
+
= t :document_created_at
|
22
|
+
%th
|
23
|
+
%a.sorter{:href => "#", :"data-sort" => "event"}
|
24
|
+
= t :document_attached_to
|
25
|
+
%th.minor
|
26
|
+
%a.sorter{:href => "#", :"data-sort" => "category"}
|
27
|
+
= t :document_category
|
28
|
+
|
29
|
+
= render :partial => 'documents_table'
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'form'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#error
|
2
|
+
%h1
|
3
|
+
Sorry. Something has exploded
|
4
|
+
|
5
|
+
%pre
|
6
|
+
= @exception.inspect
|
7
|
+
|
8
|
+
%p
|
9
|
+
A message is sent to Will automatically every time an exception like this happens.
|
10
|
+
If you would like to add more chastisement or more context, you can reach him on
|
11
|
+
= mail_to "will@apanner.org"
|
12
|
+
or 01229 588098.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#error
|
2
|
+
%h1
|
3
|
+
Sorry. Something is not allowed
|
4
|
+
|
5
|
+
%pre
|
6
|
+
= @exception.inspect
|
7
|
+
|
8
|
+
%p
|
9
|
+
A message is sent to Will automatically every time an exception like this happens.
|
10
|
+
If you would like to add more chastisement or more context, you can reach him on
|
11
|
+
= mail_to "will@apanner.org"
|
12
|
+
or 01229 588098.
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#error
|
2
|
+
%h1
|
3
|
+
Sorry. Something is missing
|
4
|
+
|
5
|
+
%pre
|
6
|
+
= @exception.inspect
|
7
|
+
|
8
|
+
%p
|
9
|
+
A message is sent to Will automatically every time an exception like this happens.
|
10
|
+
If you would like to add more chastisement or more context, you can reach him on
|
11
|
+
= mail_to "will@apanner.org"
|
12
|
+
or 01229 588098.
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'droom/documents/listing', :object => attachment.document
|
@@ -0,0 +1,54 @@
|
|
1
|
+
- if params[:day]
|
2
|
+
- date = Date.new(params[:year], params[:month], params[:mday])
|
3
|
+
- elsif params[:month]
|
4
|
+
- date = Date.new(params[:year], params[:month], 1)
|
5
|
+
- else
|
6
|
+
- date ||= Date.today
|
7
|
+
- month = date.month
|
8
|
+
- month_events = Droom::Event.coincident_with(date.beginning_of_month, date.end_of_month)
|
9
|
+
|
10
|
+
- first_shown = date.beginning_of_month.beginning_of_week
|
11
|
+
- last_shown = date.end_of_month.end_of_week
|
12
|
+
- before = date.beginning_of_month - 1.day
|
13
|
+
- after = date.end_of_month + 1.day
|
14
|
+
|
15
|
+
%table.minimonth{:data => {:month => date.month, :year => date.year}}
|
16
|
+
%thead
|
17
|
+
%tr
|
18
|
+
%td.m
|
19
|
+
= link_to '<', url_for_month(before), :title => (I18n.l before, :format => :minicalendar_title), :class => 'previous', :data => {:month => before.month, :year => before.year}
|
20
|
+
%td{:colspan => 5}
|
21
|
+
%h3
|
22
|
+
= link_to I18n.l(date, :format => :minicalendar_title), url_for_month(date), :class => "month"
|
23
|
+
%td.m
|
24
|
+
= link_to '>', url_for_month(after), :title => (I18n.l after, :format => :minicalendar_title), :class => 'next', :data => {:month => after.month, :year => after.year}
|
25
|
+
%tr
|
26
|
+
- day_names.each do |d|
|
27
|
+
%th.day_name{:scope => 'col'}
|
28
|
+
= d.first
|
29
|
+
%tbody
|
30
|
+
- weeks = {}
|
31
|
+
- first_shown.upto(last_shown) do |day|
|
32
|
+
- new_events_today = month_events.select{ |e| e.start_date == day }
|
33
|
+
- continuing_events = month_events.select{ |e| e.start_date <= day && e.finish_date && e.finish_date >= day }
|
34
|
+
|
35
|
+
- cell_class = "d"
|
36
|
+
- cell_class += " o" if day.month != date.month
|
37
|
+
- cell_class += " t" if day == Date.today
|
38
|
+
- if new_events_today.any?
|
39
|
+
- cell_class += " e"
|
40
|
+
- date_label = link_to day.mday, url_for_date(day), :class => "day"
|
41
|
+
- elsif continuing_events.any?
|
42
|
+
- cell_class += " c"
|
43
|
+
- date_label = link_to day.mday, url_for_date(day)
|
44
|
+
- else
|
45
|
+
- cell_class += " u"
|
46
|
+
- date_label = day.mday
|
47
|
+
- weeks[day.cweek] ||= []
|
48
|
+
- weeks[day.cweek].push({:class => cell_class, :label => date_label})
|
49
|
+
|
50
|
+
- weeks.sort.each do |week, weekdays|
|
51
|
+
%tr
|
52
|
+
- weekdays.each do |d|
|
53
|
+
%td{:class => d[:class]}
|
54
|
+
= d[:label]
|
@@ -0,0 +1,77 @@
|
|
1
|
+
- @seen_events ||= []
|
2
|
+
- brief ||= false
|
3
|
+
- show_header ||= false
|
4
|
+
- event ||= @event
|
5
|
+
- full_attachments ||= false
|
6
|
+
|
7
|
+
- if event
|
8
|
+
- event_master_id = event.master_id || event.id
|
9
|
+
- if @seen_events[event_master_id]
|
10
|
+
- repeating = true
|
11
|
+
- brief = true
|
12
|
+
- @seen_events[event_master_id] = true;
|
13
|
+
- cssclasses = ['event holder']
|
14
|
+
- cssclasses << 'repeat' if repeating
|
15
|
+
- cssclasses << 'private' if event.private?
|
16
|
+
- cssclasses << 'public' if event.public?
|
17
|
+
|
18
|
+
- if show_header
|
19
|
+
- header = month_header_for(event.start_date)
|
20
|
+
- if header != @event_header
|
21
|
+
%p.note
|
22
|
+
= @event_header = header
|
23
|
+
|
24
|
+
%div{:class => cssclasses.join(' ')}
|
25
|
+
.datemark
|
26
|
+
%span.mon= event.start.strftime('%b')
|
27
|
+
%span.dom= event.start.strftime('%d')
|
28
|
+
- if event.start.year != Date.today.year
|
29
|
+
%span.year= event.start.strftime('%Y')
|
30
|
+
|
31
|
+
.summary
|
32
|
+
%h2.name<
|
33
|
+
= link_to event.name, event_url(event)
|
34
|
+
- if admin?
|
35
|
+
%span.admin<
|
36
|
+
= link_to t(:edit_event), edit_event_url(event), :class => 'edit minimal', :remote => true, :data => {:action => "overlay_form", :type => "html"}
|
37
|
+
= link_to t(:remove), event_url(event), :method => 'delete', :class => 'delete minimal', :remote => 'true', :data => {:confirm => t(:confirm_delete_event, :name => event.name), :affected => ".minimonth"}
|
38
|
+
- else
|
39
|
+
= link_to t(:download_ical), event_url(event, :format => :ics), :class => 'ical icon'
|
40
|
+
|
41
|
+
- unless brief || full_attachments
|
42
|
+
- if admin? || event.documents.any?
|
43
|
+
.documents
|
44
|
+
- if event.documents.any?
|
45
|
+
%h3
|
46
|
+
= t(:attachments)
|
47
|
+
- if admin?
|
48
|
+
= link_to t(:add_document), droom.new_event_document_url(event), :class => "add admin minimal", :remote => true, :data => {:action => "append_form", :type => "html"}
|
49
|
+
%ul.downloads
|
50
|
+
= render :partial => 'droom/documents/listing', :collection => event.documents.by_date.limit(3)
|
51
|
+
- if event.documents.count > 3
|
52
|
+
%li.more
|
53
|
+
= link_to t(:more_documents_count, :count => event.documents.count - 3), event_url(event)
|
54
|
+
- elsif admin?
|
55
|
+
= link_to t(:add_document), droom.new_event_document_url(event), :class => "add admin", :remote => true, :data => {:action => "append_form", :type => "html"}
|
56
|
+
|
57
|
+
|
58
|
+
%p.practicalities
|
59
|
+
%time
|
60
|
+
= l(event.start_time, :format => :natural)
|
61
|
+
- if event.venue
|
62
|
+
%span.location
|
63
|
+
= t(:at)
|
64
|
+
- if event.venue.url
|
65
|
+
= link_to event.venue.proper_name, event.venue.url
|
66
|
+
- elsif Droom.show_venue_map
|
67
|
+
= link_to event.venue.proper_name, venues_url(:id => event.venue.id)
|
68
|
+
- else
|
69
|
+
%strong
|
70
|
+
= event.venue.proper_name
|
71
|
+
|
72
|
+
- unless brief
|
73
|
+
= simple_format event.description, :class => "description"
|
74
|
+
|
75
|
+
- if full_attachments
|
76
|
+
= render :partial => 'droom/events/invitations', :locals => {:event => event}
|
77
|
+
= render :partial => 'droom/documents/documents_list', :locals => {:event => event}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
- event ||= event_line
|
2
|
+
|
3
|
+
.eventline
|
4
|
+
%h4
|
5
|
+
= link_to event.name, event_url(event)
|
6
|
+
%p
|
7
|
+
- date_format = event.start.year == Date.today.year ? :natural : :natural_with_year
|
8
|
+
= l event.start_time, :format => :natural
|
9
|
+
= t :on
|
10
|
+
= l event.start_date, :format => date_format
|
11
|
+
- if event.venue
|
12
|
+
= t :at
|
13
|
+
= event.venue.proper_name
|
@@ -0,0 +1,35 @@
|
|
1
|
+
= form_for @event, :html => {:class => 'edit event', :remote => true, :data => {:type => :html}} do |f|
|
2
|
+
.datemark.datepicker
|
3
|
+
%a{:href => "#"}
|
4
|
+
- if @event.start
|
5
|
+
%span.mon= @event.start.strftime('%b')
|
6
|
+
%span.dom= @event.start.strftime('%d')
|
7
|
+
%span.year= @event.start.strftime('%Y')
|
8
|
+
- else
|
9
|
+
%span.mon= t(:mon)
|
10
|
+
%span.dom= t(:dom)
|
11
|
+
%span.year= t(:year)
|
12
|
+
|
13
|
+
= f.hidden_field :start_date
|
14
|
+
.kal
|
15
|
+
|
16
|
+
.summary
|
17
|
+
%p.name
|
18
|
+
= f.text_field :name, :class => 'name', :placeholder => t(:event_name)
|
19
|
+
|
20
|
+
%p.practicalities
|
21
|
+
= f.text_field :start_time, :class => "timepicker", :value => (I18n.l(@event.start_time, :format => :precise) if @event.start_time), :placeholder => t(:event_time)
|
22
|
+
= t :at
|
23
|
+
%span.venue
|
24
|
+
%span.name
|
25
|
+
= f.text_field :venue_name, :class => "venuepicker", :placeholder => t(:venue_name), :autocomplete => "off"
|
26
|
+
|
27
|
+
.description.wysihtml
|
28
|
+
.toolbar#t1
|
29
|
+
= render 'droom/shared/toolbar'
|
30
|
+
= f.text_area :description, :id => 'd1'
|
31
|
+
|
32
|
+
.buttons
|
33
|
+
= f.submit t(:save_event)
|
34
|
+
= t :or
|
35
|
+
= link_to t(:cancel), "/", :class => 'cancel'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
- event ||= @event
|
2
|
+
- if admin?
|
3
|
+
#attendants.admin
|
4
|
+
%h2
|
5
|
+
= t :attending
|
6
|
+
.holder
|
7
|
+
.admin
|
8
|
+
- if admin?
|
9
|
+
= link_to t(:invite_group), droom.new_event_group_invitation_url(event), :class => "add", :remote => true, :data => {:action => "append_form", :type => "html", :affected => ".groups"}
|
10
|
+
|
11
|
+
= render :partial => 'droom/group_invitations/attending_groups', :locals => {:event => event}
|
12
|
+
|
13
|
+
|
14
|
+
.holder
|
15
|
+
.admin
|
16
|
+
- if admin?
|
17
|
+
= link_to t(:invite_person), droom.new_event_invitation_url(event), :class => "add", :remote => true, :data => {:action => "append_form", :type => "html", :affected => ".people"}
|
18
|
+
|
19
|
+
= render :partial => 'droom/invitations/attending_people', :locals => {:event => event}
|
20
|
+
|
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
- event ||= suggested
|
2
|
+
- date_format = event.start.year == Date.today.year ? :natural : :natural_with_year
|
3
|
+
|
4
|
+
%li.event
|
5
|
+
= link_to event.name, event_url(event)
|
6
|
+
%span.note
|
7
|
+
= l event.start_time, :format => :natural
|
8
|
+
= t :on
|
9
|
+
= l event.start_date, :format => date_format
|
10
|
+
- if event.venue
|
11
|
+
= t :at
|
12
|
+
= event.venue.proper_name
|
@@ -0,0 +1,7 @@
|
|
1
|
+
%span.calendar_views
|
2
|
+
%br
|
3
|
+
= t('event_page.stay_up_to_date')
|
4
|
+
= link_to(t('event_page.rss'), calendar_url(calendar_parameters.merge(:format => :rss)))
|
5
|
+
= t('event_page.or')
|
6
|
+
= link_to(t('event_page.calendar_feed'), calendar_url(calendar_parameters.merge(:format => :ics, :protocol => 'webcal://', :only_path => false)))
|
7
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'form'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
- if current_user.admin?
|
2
|
+
.holder
|
3
|
+
%p.admin
|
4
|
+
= link_to t(:add_event), droom.new_event_url, :class => "add", :remote => true, :data => {:action => "append_form", :type => "html", :affected => ".events_list, .minimonth"}
|
5
|
+
|
6
|
+
#events
|
7
|
+
%h2.quiet
|
8
|
+
= t(:future_events)
|
9
|
+
|
10
|
+
= render :partial => 'events'
|
11
|
+
|
12
|
+
= render :partial => 'droom/dashboard/marginalia'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
xml = Builder::XmlMarkup.new
|
2
|
+
xml.instruct! :xml, :version => "1.0"
|
3
|
+
xml.rss :version => "2.0" do
|
4
|
+
xml.channel do
|
5
|
+
xml.title "Events"
|
6
|
+
xml.description list_description
|
7
|
+
xml.link calendar_url(calendar_parameters.merge(:format => :html))
|
8
|
+
|
9
|
+
events.each do |event|
|
10
|
+
xml.item do
|
11
|
+
xml.title event.title
|
12
|
+
xml.link event.url
|
13
|
+
xml.description event.description_paragraph
|
14
|
+
xml.pubDate event.created_at.to_s(:rfc822)
|
15
|
+
xml.guid event.uuid, :isPermaLink => false
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'form'
|
@@ -0,0 +1,8 @@
|
|
1
|
+
- event ||= @event
|
2
|
+
|
3
|
+
.groups{ :"data-url" => "#{event_group_invitations_path(event)}.js", :"data-refreshable" => true}
|
4
|
+
- event.groups.each do |group|
|
5
|
+
%li.group.holder
|
6
|
+
= link_to group.name, group_url(group)
|
7
|
+
- if admin?
|
8
|
+
= link_to t(:remove), event_group_invitation_path(event, event.group_invitations.find_by_group_id(group.id)), :remote => true, :method => "delete", :class => 'delete minimal', :data => {:confirm => t(:confirm_uninvite_group, :name => group.name, :event_name => @event.name)}
|