social_stream-events 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. data/app/assets/javascripts/0_init.js +4 -0
  2. data/app/assets/javascripts/events.js.coffee +66 -0
  3. data/app/assets/stylesheets/events.css.scss +37 -0
  4. data/app/controllers/events_controller.rb +40 -0
  5. data/app/controllers/rooms_controller.rb +7 -0
  6. data/app/models/event.rb +53 -0
  7. data/app/models/room.rb +8 -0
  8. data/app/views/events/_event.html.erb +1 -0
  9. data/app/views/events/_new.html.erb +40 -0
  10. data/app/views/events/_sidebar_calendar.html.erb +26 -0
  11. data/app/views/events/create.js.erb +21 -0
  12. data/app/views/events/destroy.js.erb +1 -0
  13. data/app/views/events/index.html.erb +96 -0
  14. data/app/views/rooms/_form.html.erb +31 -0
  15. data/app/views/rooms/_index.html.erb +10 -0
  16. data/app/views/rooms/_settings.html.erb +23 -0
  17. data/app/views/rooms/create.js.erb +7 -0
  18. data/app/views/rooms/destroy.js.erb +1 -0
  19. data/config/locales/en.yml +34 -4
  20. data/config/locales/es.yml +34 -4
  21. data/config/routes.rb +1 -0
  22. data/db/migrate/20111101193523_create_events.rb +13 -0
  23. data/db/migrate/20111120104349_create_rooms.rb +26 -0
  24. data/db/migrate/20111204155637_add_scheduler.rb +33 -0
  25. data/db/migrate/20111218203314_change_scheduler.rb +11 -0
  26. data/lib/social_stream-events.rb +15 -0
  27. data/lib/social_stream/events/ability.rb +13 -0
  28. data/lib/social_stream/events/engine.rb +17 -0
  29. data/lib/social_stream/events/models/actor.rb +13 -0
  30. data/lib/social_stream/events/version.rb +1 -1
  31. data/lib/social_stream/views/settings/events.rb +18 -0
  32. data/social_stream-events.gemspec +6 -10
  33. data/vendor/assets/images/boxy-ne.png +0 -0
  34. data/vendor/assets/images/boxy-nw.png +0 -0
  35. data/vendor/assets/images/boxy-se.png +0 -0
  36. data/vendor/assets/images/boxy-sw.png +0 -0
  37. data/vendor/assets/javascripts/fullcalendar.js +12 -10
  38. data/vendor/assets/javascripts/gcal.js +2 -2
  39. data/vendor/assets/javascripts/jquery.boxy.js +570 -0
  40. data/vendor/assets/javascripts/sprintf.js +183 -0
  41. data/vendor/assets/stylesheets/boxy.css +49 -0
  42. data/vendor/assets/stylesheets/fullcalendar.css +7 -10
  43. data/vendor/assets/stylesheets/fullcalendar.print.css +4 -4
  44. metadata +81 -175
  45. data/db/migrate/20110910161707_create_social_stream_events.rb +0 -54
  46. data/db/migrate/20111102145626_add_more_fields_to_events.rb +0 -20
  47. data/db/migrate/20111104165944_add_more_fields_to_sessions.rb +0 -13
  48. data/db/migrate/20111104182420_add_details_to_events.rb +0 -18
  49. data/db/migrate/20111209120019_reset_events.rb +0 -18
  50. data/vendor/assets/javascripts/jquery.ad-gallery.js +0 -850
  51. data/vendor/assets/javascripts/jquery.ad-gallery.pack.js +0 -10
  52. data/vendor/assets/stylesheets/ad_next.png +0 -0
  53. data/vendor/assets/stylesheets/ad_prev.png +0 -0
  54. data/vendor/assets/stylesheets/ad_scroll_back.png +0 -0
  55. data/vendor/assets/stylesheets/ad_scroll_forward.png +0 -0
  56. data/vendor/assets/stylesheets/jquery.ad-gallery.css +0 -171
  57. data/vendor/assets/stylesheets/loader.gif +0 -0
  58. data/vendor/assets/stylesheets/social_stream-events.css +0 -273
@@ -0,0 +1,10 @@
1
+ <div id="rooms">
2
+ <% current_subject.rooms.each do |room| %>
3
+ <div class="row">
4
+ <div class="label"><%= room.name %></div>
5
+ <div class="field">
6
+ <%= link_to image_tag("btn/delete.png", :class => "menu_icon", :title => t('room.delete')), room, :class => "room_delete_link", :method => :delete, :confirm => t('room.confirm_delete'), :remote => true %>
7
+ </div>
8
+ </div>
9
+ <% end %>
10
+ </div>
@@ -0,0 +1,23 @@
1
+ <div class="block" id="room_settings">
2
+ <div class="header">
3
+ <div class="header_text">
4
+ <%= t 'room.settings.title' %>
5
+ </div>
6
+ <div class="header_icon_right">
7
+ <%= link_to image_tag('btn/edit.png'), "javascript:showSettings(\"room_settings\");" %>
8
+ </div>
9
+ </div>
10
+ <div id="room_settings_briefing" class="settings_briefing content">
11
+ <div class="form_row">
12
+ <%= t 'room.settings.description' %>
13
+ </div>
14
+ </div>
15
+ <div class="content settings_content" id="room_settings_content" style="display:none;">
16
+ <div class="sub-block">
17
+ <%= render :partial => 'rooms/index' %>
18
+ </div>
19
+ <div class="sub-block">
20
+ <%= render :partial => 'rooms/form' %>
21
+ </div>
22
+ </div>
23
+ </div>
@@ -0,0 +1,7 @@
1
+ <% if @room.valid? %>
2
+ $('#rooms').replaceWith("<%= escape_javascript render(:partial => 'index') %>");
3
+ $('#room_name').val("");
4
+ $('#room_name').Watermark("<%= escape_javascript t('room.watermark.name') %>");
5
+ <% else %>
6
+ $('#new_room').replaceWith("<%= escape_javascript render(:partial => 'form') %>");
7
+ <% end %>
@@ -0,0 +1 @@
1
+ $('#rooms').replaceWith("<%= escape_javascript render(:partial => 'index') %>");
@@ -1,5 +1,35 @@
1
- # Sample localization file for English. Add more files in this directory for other locales.
2
- # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
-
4
1
  en:
5
-
2
+ activerecord:
3
+ attributes:
4
+ event:
5
+ title: "Title"
6
+ room: "Room"
7
+ frequency: "Frequency"
8
+ room:
9
+ name: "Name"
10
+ errors:
11
+ models:
12
+ room:
13
+ attributes:
14
+ name:
15
+ taken: "is taken"
16
+ models:
17
+ event: "event"
18
+ room: "room"
19
+ boxy:
20
+ close_text: "[close]"
21
+ event:
22
+ confirm_delete: "Delete event?"
23
+ new:
24
+ title: "New event"
25
+ one: "an event"
26
+ title: "Calendar"
27
+ wall_post: "Published an event: %{title}"
28
+ room:
29
+ confirm_delete: "Delete room?"
30
+ delete: "Delete"
31
+ settings:
32
+ title: "Rooms"
33
+ description: "Rooms available for event celebration"
34
+ watermark:
35
+ name: "New room"
@@ -1,5 +1,35 @@
1
- # Sample localization file for English. Add more files in this directory for other locales.
2
- # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
-
4
1
  es:
5
-
2
+ activerecord:
3
+ attributes:
4
+ event:
5
+ title: "Título"
6
+ room: "Espacio"
7
+ frequency: "Repetición"
8
+ room:
9
+ name: "Nombre"
10
+ errors:
11
+ models:
12
+ room:
13
+ attributes:
14
+ name:
15
+ taken: "está repetido"
16
+ models:
17
+ event: "evento"
18
+ room: "espacio"
19
+ boxy:
20
+ close_text: "[cerrar]"
21
+ event:
22
+ confirm_delete: "¿Borrar evento?"
23
+ new:
24
+ title: "Nuevo evento"
25
+ one: "un evento"
26
+ title: "Calendario"
27
+ wall_post: "Publicó un evento: %{title}"
28
+ room:
29
+ confirm_delete: "¿Borrar espacio?"
30
+ delete: "Borrar"
31
+ settings:
32
+ title: "Espacios"
33
+ description: "Salas disponibles para la realización de eventos"
34
+ watermark:
35
+ name: "Nuevo espacio"
data/config/routes.rb CHANGED
@@ -1,2 +1,3 @@
1
1
  Rails.application.routes.draw do
2
+ resources :rooms
2
3
  end
@@ -0,0 +1,13 @@
1
+ class CreateEvents < ActiveRecord::Migration
2
+ def change
3
+ create_table :events do |t|
4
+ t.integer :activity_object_id
5
+ t.string :title
6
+ t.datetime :start_at
7
+ t.datetime :end_at
8
+ t.boolean :all_day
9
+
10
+ t.timestamps
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ class CreateRooms < ActiveRecord::Migration
2
+ def up
3
+ create_table :rooms do |t|
4
+ t.references :actor
5
+ t.string :name
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ change_table :events do |t|
11
+ t.references :room
12
+ end
13
+
14
+ add_index :rooms, :actor_id
15
+ add_index :events, :room_id
16
+ add_foreign_key :rooms, :actors, :name => "index_rooms_on_actor_id"
17
+ add_foreign_key :events, :rooms, :name => "index_events_on_room_id"
18
+ end
19
+
20
+ def down
21
+ remove_foreign_key :rooms, :name => "index_rooms_on_actor_id"
22
+ remove_foreign_key :events, :name => "index_events_on_room_id"
23
+
24
+ drop_table :rooms
25
+ end
26
+ end
@@ -0,0 +1,33 @@
1
+ class AddScheduler < ActiveRecord::Migration
2
+
3
+ class EventSchedulerMigration < ActiveRecord::Base
4
+ self.record_timestamps = false
5
+ set_table_name "events"
6
+ end
7
+
8
+ def up
9
+ change_table :events do |t|
10
+ t.date :start_date
11
+ t.date :end_date
12
+ t.integer :frequency, :default => 0
13
+ t.integer :interval
14
+ t.integer :interval_flag, :default => 0
15
+ end
16
+
17
+ EventSchedulerMigration.all.each do |e|
18
+ e.start_date = e.start_at
19
+ e.end_date = e.end_at
20
+ e.save!
21
+ end
22
+ end
23
+
24
+ def down
25
+ change_table :events do |t|
26
+ t.remove :start_date
27
+ t.remove :end_date
28
+ t.remove :frequency
29
+ t.remove :interval
30
+ t.remove :interval_flag
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,11 @@
1
+ class ChangeScheduler < ActiveRecord::Migration
2
+ def up
3
+ rename_column :events, :interval_flag, :days
4
+ add_column :events, :interval_flag, :integer, :default => 0
5
+ end
6
+
7
+ def down
8
+ rename_column :events, :days, :interval_flag
9
+ remove_column :events, :interval_flag
10
+ end
11
+ end
@@ -1,7 +1,22 @@
1
1
  require 'social_stream-base'
2
2
 
3
+ require 'rails-scheduler'
4
+
3
5
  module SocialStream
6
+ module Views
7
+ module Settings
8
+ autoload :Events, 'social_stream/views/settings/events'
9
+ end
10
+ end
11
+
4
12
  module Events
13
+ autoload :Ability, 'social_stream/events/ability'
14
+
15
+ module Models
16
+ autoload :Actor, 'social_stream/events/models/actor'
17
+ end
18
+
19
+ SocialStream.objects.push(:event) unless SocialStream.objects.include?(:event)
5
20
  end
6
21
  end
7
22
 
@@ -0,0 +1,13 @@
1
+ module SocialStream
2
+ module Events
3
+ module Ability
4
+ def initialize(subject)
5
+ super
6
+
7
+ can [:create, :destroy], Room do |r|
8
+ r.actor_id == Actor.normalize_id(subject)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,6 +1,23 @@
1
1
  module SocialStream
2
2
  module Events
3
3
  class Engine < Rails::Engine
4
+ initializer "social_stream-events.ability" do
5
+ SocialStream::Ability.class_eval do
6
+ include SocialStream::Events::Ability
7
+ end
8
+ end
9
+
10
+ initializer "social_stream-events.actor" do
11
+ ActiveSupport.on_load(:actor) do
12
+ include SocialStream::Events::Models::Actor
13
+ end
14
+ end
15
+
16
+ initializer "social_stream-events.views.settings" do
17
+ SocialStream::Views::Settings.module_eval do
18
+ include SocialStream::Views::Settings::Events
19
+ end
20
+ end
4
21
  end
5
22
  end
6
23
  end
@@ -0,0 +1,13 @@
1
+ module SocialStream
2
+ module Events
3
+ module Models
4
+ module Actor
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ has_many :rooms
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  module SocialStream
2
2
  module Events
3
- VERSION = "0.2.0".freeze
3
+ VERSION = "0.3.0".freeze
4
4
  end
5
5
  end
@@ -0,0 +1,18 @@
1
+ module SocialStream
2
+ module Views
3
+ module Settings
4
+ module Events
5
+ def settings_items
6
+ super.tap do |items|
7
+ if current_subject.is_a?(Group)
8
+ items.insert_before 'notifications', {
9
+ :key => 'rooms',
10
+ :html => render(:partial => 'rooms/settings')
11
+ }
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -4,24 +4,20 @@ require File.join(File.dirname(__FILE__), 'lib', 'social_stream', 'events', 'ver
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "social_stream-events"
6
6
  s.version = SocialStream::Events::VERSION.dup
7
- s.authors = ["Diego Carrera", "Antonio Tapiador", "GING - DIT - UPM"]
8
- s.summary = "Events and Video conferences capabilities for Social Stream, the core for building social network websites"
9
- s.description = "Social Stream is a Ruby on Rails engine providing your application with social networking features and activity streams.\n\nThis gem allow you to add events and videoconferences as new social stream activity."
10
- s.email = "social-stream.dit.upm.es"
7
+ s.authors = ["Antonio Tapiador", "GING - DIT - UPM"]
8
+ s.summary = "Scheduled events support for Social Stream, the core for building social network websites"
9
+ s.description = "Social Stream is a Ruby on Rails engine providing your application with social networking features and activity streams.\n\nThis gem allow you to add events as a new social stream activity, with a calendar-supported management"
10
+ s.email = "social-stream@dit.upm.es"
11
11
  s.homepage = "http://github.com/ging/social_stream-events"
12
12
  s.files = `git ls-files`.split("\n")
13
13
 
14
14
  # Gem dependencies
15
- s.add_runtime_dependency('social_stream-base', '~> 0.10.6')
16
- s.add_runtime_dependency('conference_manager-ruby', '~> 0.0.3')
15
+ s.add_runtime_dependency('social_stream-base', '~> 0.11.0')
16
+ s.add_runtime_dependency('rails-scheduler', '~> 0.0.4')
17
17
 
18
18
  # Development Gem dependencies
19
19
  s.add_development_dependency('sqlite3-ruby')
20
20
  if RUBY_VERSION < '1.9'
21
21
  s.add_development_dependency('ruby-debug', '~> 0.10.3')
22
22
  end
23
- s.add_development_dependency('rspec-rails', '~> 2.6.0')
24
- s.add_development_dependency('factory_girl', '~> 1.3.2')
25
- s.add_development_dependency('forgery', '~> 0.3.6')
26
- s.add_development_dependency('capybara', '~> 0.3.9')
27
23
  end
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @preserve
3
- * FullCalendar v1.5.1
3
+ * FullCalendar v1.5.2
4
4
  * http://arshaw.com/fullcalendar/
5
5
  *
6
6
  * Use fullcalendar.css for basic styling.
@@ -11,7 +11,7 @@
11
11
  * Dual licensed under the MIT and GPL licenses, located in
12
12
  * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
13
13
  *
14
- * Date: Sat Apr 9 14:09:51 2011 -0700
14
+ * Date: Sun Aug 21 22:06:09 2011 -0700
15
15
  *
16
16
  */
17
17
 
@@ -111,7 +111,7 @@ var rtlDefaults = {
111
111
 
112
112
 
113
113
 
114
- var fc = $.fullCalendar = { version: "1.5.1" };
114
+ var fc = $.fullCalendar = { version: "1.5.2" };
115
115
  var fcViews = fc.views = {};
116
116
 
117
117
 
@@ -698,7 +698,7 @@ function Header(calendar, options) {
698
698
  tm = options.theme ? 'ui' : 'fc';
699
699
  var sections = options.header;
700
700
  if (sections) {
701
- element = $("<table class='fc-header' id='header-calendar' style='width:90%'/>")
701
+ element = $("<table class='fc-header' style='width:100%'/>")
702
702
  .append(
703
703
  $("<tr/>")
704
704
  .append(renderSection('left'))
@@ -1395,7 +1395,7 @@ function parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false
1395
1395
  return null;
1396
1396
  }
1397
1397
  var date = new Date(m[1], 0, 1);
1398
- if (ignoreTimezone || !m[14]) {
1398
+ if (ignoreTimezone || !m[13]) {
1399
1399
  var check = new Date(m[1], 0, 1, 9, 0);
1400
1400
  if (m[3]) {
1401
1401
  date.setMonth(m[3] - 1);
@@ -1431,9 +1431,11 @@ function parseISO8601(s, ignoreTimezone) { // ignoreTimezone defaults to false
1431
1431
  m[10] || 0,
1432
1432
  m[12] ? Number("0." + m[12]) * 1000 : 0
1433
1433
  );
1434
- var offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0);
1435
- offset *= m[15] == '-' ? 1 : -1;
1436
- date = new Date(+date + (offset * 60 * 1000));
1434
+ if (m[14]) {
1435
+ var offset = Number(m[16]) * 60 + (m[18] ? Number(m[18]) : 0);
1436
+ offset *= m[15] == '-' ? 1 : -1;
1437
+ date = new Date(+date + (offset * 60 * 1000));
1438
+ }
1437
1439
  }
1438
1440
  return date;
1439
1441
  }
@@ -5204,5 +5206,5 @@ function HorizontalPositionCache(getElement) {
5204
5206
  };
5205
5207
 
5206
5208
  }
5207
-
5208
- })(jQuery);
5209
+
5210
+ })(jQuery);
@@ -1,11 +1,11 @@
1
1
  /*
2
- * FullCalendar v1.5.1 Google Calendar Plugin
2
+ * FullCalendar v1.5.2 Google Calendar Plugin
3
3
  *
4
4
  * Copyright (c) 2011 Adam Shaw
5
5
  * Dual licensed under the MIT and GPL licenses, located in
6
6
  * MIT-LICENSE.txt and GPL-LICENSE.txt respectively.
7
7
  *
8
- * Date: Sat Apr 9 14:09:51 2011 -0700
8
+ * Date: Sun Aug 21 22:06:09 2011 -0700
9
9
  *
10
10
  */
11
11