bigbluebutton_rails 0.0.2 → 0.0.3

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 (43) hide show
  1. data/CHANGELOG.rdoc +9 -1
  2. data/Gemfile.lock +3 -3
  3. data/README.rdoc +56 -21
  4. data/Rakefile +1 -0
  5. data/app/controllers/bigbluebutton/rooms_controller.rb +92 -35
  6. data/app/models/bigbluebutton_room.rb +136 -27
  7. data/app/models/bigbluebutton_server.rb +22 -6
  8. data/app/views/bigbluebutton/rooms/_form.html.erb +31 -6
  9. data/app/views/bigbluebutton/rooms/edit.html.erb +1 -1
  10. data/app/views/bigbluebutton/rooms/index.html.erb +20 -8
  11. data/app/views/bigbluebutton/rooms/invite.html.erb +56 -0
  12. data/app/views/bigbluebutton/rooms/{join_wait.html.erb → join.html.erb} +16 -12
  13. data/app/views/bigbluebutton/rooms/new.html.erb +1 -1
  14. data/app/views/bigbluebutton/rooms/show.html.erb +33 -9
  15. data/app/views/bigbluebutton/servers/edit.html.erb +1 -1
  16. data/app/views/bigbluebutton/servers/index.html.erb +6 -4
  17. data/app/views/bigbluebutton/servers/new.html.erb +1 -1
  18. data/app/views/bigbluebutton/servers/show.html.erb +5 -5
  19. data/bigbluebutton_rails.gemspec +1 -1
  20. data/config/locales/en.yml +31 -0
  21. data/lib/bigbluebutton_rails/controller_methods.rb +7 -1
  22. data/lib/bigbluebutton_rails/rails/routes.rb +10 -1
  23. data/lib/bigbluebutton_rails/version.rb +1 -1
  24. data/lib/bigbluebutton_rails.rb +0 -1
  25. data/lib/classes/bigbluebutton_attendee.rb +2 -0
  26. data/lib/generators/bigbluebutton_rails/install_generator.rb +2 -1
  27. data/lib/generators/bigbluebutton_rails/public_generator.rb +0 -1
  28. data/lib/generators/bigbluebutton_rails/templates/migration.rb +8 -2
  29. data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +339 -88
  30. data/spec/factories/bigbluebutton_room.rb +5 -3
  31. data/spec/factories/user.rb +3 -0
  32. data/spec/generators/public_generator_spec.rb +0 -1
  33. data/spec/generators/views_generator_spec.rb +1 -1
  34. data/spec/models/bigbluebutton_room_spec.rb +276 -177
  35. data/spec/models/bigbluebutton_server_spec.rb +117 -96
  36. data/spec/routing/bigbluebutton/rooms_routing_spec.rb +24 -0
  37. data/spec/support/matchers/shoulda/be_boolean.rb +38 -0
  38. data/spec/support/mocked_server.rb +14 -0
  39. metadata +26 -26
  40. data/config/routes.rb +0 -2
  41. data/lib/classes/bigbluebutton_meeting.rb +0 -18
  42. data/lib/generators/bigbluebutton_rails/templates/public/javascripts/heartbeat.js +0 -54
  43. data/spec/classes/bigbluebutton_meeting_spec.rb +0 -62
@@ -3,6 +3,7 @@
3
3
  <% else %>
4
4
  <% url = bigbluebutton_server_room_path(@server, @room) %>
5
5
  <% end %>
6
+
6
7
  <%= form_for [@server, @room], :url => url do |f| %>
7
8
  <% if @room.errors.any? %>
8
9
  <div id="error_explanation">
@@ -15,26 +16,50 @@
15
16
  </div>
16
17
  <% end %>
17
18
 
18
- <div class="field">
19
- <%= f.label :meeting_id %><br />
20
- <%= f.text_field :meeting_id %>
21
- </div>
22
19
  <div class="field">
23
20
  <%= f.label :name %><br />
24
21
  <%= f.text_field :name %>
25
22
  </div>
23
+ <div class="field">
24
+ <%= f.label :meetingid %><br />
25
+ <%= f.text_field :meetingid %>
26
+ </div>
27
+ <div class="field">
28
+ <%= f.label :randomize_meetingid %><br />
29
+ <%= f.check_box :randomize_meetingid %>
30
+ </div>
31
+ <div class="field">
32
+ <%= f.label :private %><br />
33
+ <%= f.check_box :private %>
34
+ </div>
26
35
  <div class="field">
27
36
  <%= f.label :attendee_password %><br />
28
- <%= f.text_field :attendee_password %>
37
+ <%= f.password_field :attendee_password %>
29
38
  </div>
30
39
  <div class="field">
31
40
  <%= f.label :moderator_password %><br />
32
- <%= f.text_field :moderator_password %>
41
+ <%= f.password_field :moderator_password %>
33
42
  </div>
34
43
  <div class="field">
35
44
  <%= f.label :welcome_msg %><br />
36
45
  <%= f.text_field :welcome_msg %>
37
46
  </div>
47
+ <div class="field">
48
+ <%= f.label :logout_url %><br />
49
+ <%= f.text_field :logout_url %>
50
+ </div>
51
+ <div class="field">
52
+ <%= f.label :dial_number %><br />
53
+ <%= f.text_field :dial_number %>
54
+ </div>
55
+ <div class="field">
56
+ <%= f.label :voice_bridge %><br />
57
+ <%= f.text_field :voice_bridge %>
58
+ </div>
59
+ <div class="field">
60
+ <%= f.label :max_participants %><br />
61
+ <%= f.text_field :max_participants %>
62
+ </div>
38
63
  <div class="actions">
39
64
  <%= f.submit %>
40
65
  </div>
@@ -1,4 +1,4 @@
1
- <h1>Edit room:</h1>
1
+ <h1>Edit <%= BigbluebuttonRoom.model_name.human %>:</h1>
2
2
  <%= render 'form' %>
3
3
 
4
4
  <%= link_to 'Show', bigbluebutton_server_room_path(@server, @room) %> |
@@ -1,13 +1,19 @@
1
- <h1>Listing rooms</h1>
1
+ <h1>Listing <%= BigbluebuttonRoom.model_name.human %>:</h1>
2
2
 
3
3
  <table>
4
4
  <tr>
5
- <th>Server ID</th>
6
- <th>Meeting ID</th>
7
- <th>Meeting Name</th>
8
- <th>Attendee Password</th>
9
- <th>Moderator Password</th>
10
- <th>Welcome Message</th>
5
+ <th><%= BigbluebuttonRoom.human_attribute_name(:server_id) %></th>
6
+ <th><%= BigbluebuttonRoom.human_attribute_name(:meetingid) %></th>
7
+ <th><%= BigbluebuttonRoom.human_attribute_name(:randomize_meetingid) %></th>
8
+ <th><%= BigbluebuttonRoom.human_attribute_name(:meeting_name) %></th>
9
+ <th><%= BigbluebuttonRoom.human_attribute_name(:private) %></th>
10
+ <th><%= BigbluebuttonRoom.human_attribute_name(:attendee_password) %></th>
11
+ <th><%= BigbluebuttonRoom.human_attribute_name(:moderator_password) %></th>
12
+ <th><%= BigbluebuttonRoom.human_attribute_name(:welcome_msg) %></th>
13
+ <th><%= BigbluebuttonRoom.human_attribute_name(:logout_url) %></th>
14
+ <th><%= BigbluebuttonRoom.human_attribute_name(:dial_number) %></th>
15
+ <th><%= BigbluebuttonRoom.human_attribute_name(:voice_bridge) %></th>
16
+ <th><%= BigbluebuttonRoom.human_attribute_name(:max_participants) %></th>
11
17
  <th></th>
12
18
  <th></th>
13
19
  <th></th>
@@ -16,11 +22,17 @@
16
22
  <% @rooms.each do |room| %>
17
23
  <tr>
18
24
  <td><%= room.server.id %></td>
19
- <td><%= room.meeting_id %></td>
25
+ <td><%= room.meetingid %></td>
26
+ <td><%= room.randomize_meetingid %></td>
20
27
  <td><%= room.name %></td>
28
+ <td><%= room.private %></td>
21
29
  <td><%= room.attendee_password %></td>
22
30
  <td><%= room.moderator_password %></td>
23
31
  <td><%= room.welcome_msg %></td>
32
+ <td><%= room.logout_url %></td>
33
+ <td><%= room.dial_number %></td>
34
+ <td><%= room.voice_bridge %></td>
35
+ <td><%= room.max_participants %></td>
24
36
  <td><%= link_to 'Show', bigbluebutton_server_room_path(@server, room) %></td>
25
37
  <td><%= link_to 'Edit', edit_bigbluebutton_server_room_path(@server, room) %></td>
26
38
  <td><%= link_to 'Destroy', bigbluebutton_server_room_path(@server, room), :confirm => 'Are you sure?', :method => :delete %></td>
@@ -0,0 +1,56 @@
1
+ <script type="text/javascript">
2
+
3
+ function ajax_request() {
4
+ $.ajax({
5
+ url: "<%= running_bigbluebutton_server_room_url(@server, @room, :format => 'json') %>",
6
+ dataType: 'json',
7
+ error: function(xhr_data) {
8
+ $("#meeting_status").html("<request error>.");
9
+ setTimeout(function() { ajax_request(); }, 10000);
10
+ },
11
+ success: function(xhr_data) {
12
+ if (xhr_data.running == 'false') {
13
+ $("#meeting_status").html("not running.");
14
+ } else {
15
+ $("#meeting_status").html("running!");
16
+ }
17
+ setTimeout(function() { ajax_request(); }, 10000);
18
+ },
19
+ contentType: 'application/json'
20
+ });
21
+ }
22
+
23
+ $(document).ready(function(){
24
+ ajax_request();
25
+ });
26
+
27
+ </script>
28
+
29
+ <h1>Invite to the meeting <%= @room.name %></h1>
30
+
31
+ <p id="error"><%= flash[:error] %></p>
32
+
33
+ <p>Meeting status: <span id="meeting_status">-</span> (<a href="javascript:ajax_request();">refresh</a>)</p>
34
+ <p><%= @room.name %> requires a name and/or password to join:</p>
35
+
36
+ <%= form_tag join_bigbluebutton_server_room_path(@server, @room) do %>
37
+
38
+ <div class="field">
39
+ Name:<br />
40
+ <% if bigbluebutton_user.nil? %>
41
+ <%= text_field_tag "user[name]", "" %>
42
+ <% else %>
43
+ <%= text_field_tag "user[name]", bigbluebutton_user.name %>
44
+ <% end %>
45
+ </div>
46
+ <div class="field">
47
+ Password:<br />
48
+ <% if @room.private %>
49
+ <%= password_field_tag "user[password]", "" %>
50
+ <% else %>
51
+ <%= password_field_tag "user[password]", @room.attendee_password %>
52
+ <% end %>
53
+ </div>
54
+
55
+ <%= submit_tag "Submit" %>
56
+ <% end %>
@@ -1,20 +1,24 @@
1
1
  <script type="text/javascript">
2
2
 
3
- function heartbeat_callback() {
4
- // TODO Should parse the json to get the response
5
- if ($("#room_heartbeat_div").text().search("true") > 0) {
6
- window.location.reload();
7
- }
3
+ function ajax_request() {
4
+ $.ajax({
5
+ url: "<%= running_bigbluebutton_server_room_url(@server, @room, :format => 'json') %>",
6
+ dataType: 'json',
7
+ error: function(xhr_data) {
8
+ //
9
+ },
10
+ success: function(xhr_data) {
11
+ if (xhr_data.running == 'true') {
12
+ window.location.reload();
13
+ }
14
+ setTimeout(function() { ajax_request(); }, 3000);
15
+ },
16
+ contentType: 'application/json'
17
+ });
8
18
  }
9
19
 
10
20
  $(document).ready(function(){
11
- $.jheartbeat.set({
12
- url: "<%= running_bigbluebutton_server_room_url(@server, @room, :format => 'json') %>",
13
- delay: 3000,
14
- div_id: "room_heartbeat_div"
15
- }, function () {
16
- heartbeat_callback();
17
- });
21
+ ajax_request();
18
22
  });
19
23
 
20
24
  </script>
@@ -1,4 +1,4 @@
1
- <h1>New room:</h1>
1
+ <h1>New <%= BigbluebuttonRoom.model_name.human %>:</h1>
2
2
 
3
3
  <%= render 'form' %>
4
4
 
@@ -1,31 +1,55 @@
1
- <h1>Room:</h1>
1
+ <h1><%= BigbluebuttonRoom.model_name.human %>:</h1>
2
2
 
3
3
  <p id="notice"><%= notice %></p>
4
4
 
5
5
  <p>
6
- <b>Server ID:</b>
6
+ <b><%= BigbluebuttonRoom.human_attribute_name(:name) %>:</b>
7
+ <%= @room.name %>
8
+ </p>
9
+ <p>
10
+ <b><%= BigbluebuttonRoom.human_attribute_name(:server_id) %>:</b>
7
11
  <%= @room.server.id %>
8
12
  </p>
9
13
  <p>
10
- <b>Meeting ID:</b>
11
- <%= @room.meeting_id %>
14
+ <b><%= BigbluebuttonRoom.human_attribute_name(:meetingid) %>:</b>
15
+ <%= @room.meetingid %>
12
16
  </p>
13
17
  <p>
14
- <b>Meeting Name:</b>
15
- <%= @room.name %>
18
+ <b><%= BigbluebuttonRoom.human_attribute_name(:randomize_meetingid) %>:</b>
19
+ <%= @room.randomize_meetingid %>
16
20
  </p>
17
21
  <p>
18
- <b>Attendee Password:</b>
22
+ <b><%= BigbluebuttonRoom.human_attribute_name(:private) %>:</b>
23
+ <%= @room.private %>
24
+ </p>
25
+ <p>
26
+ <b><%= BigbluebuttonRoom.human_attribute_name(:attendee_password) %>:</b>
19
27
  <%= @room.attendee_password %>
20
28
  </p>
21
29
  <p>
22
- <b>Moderator Password:</b>
30
+ <b><%= BigbluebuttonRoom.human_attribute_name(:moderator_password) %>:</b>
23
31
  <%= @room.moderator_password %>
24
32
  </p>
25
33
  <p>
26
- <b>Welcome Message:</b>
34
+ <b><%= BigbluebuttonRoom.human_attribute_name(:welcome_msg) %>:</b>
27
35
  <%= @room.welcome_msg %>
28
36
  </p>
37
+ <p>
38
+ <b><%= BigbluebuttonRoom.human_attribute_name(:logout_url) %>:</b>
39
+ <%= @room.logout_url %>
40
+ </p>
41
+ <p>
42
+ <b><%= BigbluebuttonRoom.human_attribute_name(:dial_number) %>:</b>
43
+ <%= @room.dial_number %>
44
+ </p>
45
+ <p>
46
+ <b><%= BigbluebuttonRoom.human_attribute_name(:voice_bridge) %>:</b>
47
+ <%= @room.voice_bridge %>
48
+ </p>
49
+ <p>
50
+ <b><%= BigbluebuttonRoom.human_attribute_name(:max_participants) %>:</b>
51
+ <%= @room.max_participants %>
52
+ </p>
29
53
 
30
54
  <%= link_to 'Edit', edit_bigbluebutton_server_room_path(@room.server, @room) %> |
31
55
  <%= link_to 'Back', bigbluebutton_server_rooms_path(@room.server) %>
@@ -1,4 +1,4 @@
1
- <h1>Edit server:</h1>
1
+ <h1>Edit <%= BigbluebuttonServer.model_name.human %>:</h1>
2
2
  <%= render 'form' %>
3
3
 
4
4
  <%= link_to 'Show', @server %> |
@@ -1,10 +1,11 @@
1
- <h1>Listing servers</h1>
1
+ <h1>Listing <%= BigbluebuttonServer.model_name.human %>:</h1>
2
2
 
3
3
  <table>
4
4
  <tr>
5
- <th>Name</th>
6
- <th>Url</th>
7
- <th>Salt</th>
5
+ <th><%= BigbluebuttonServer.human_attribute_name(:name) %></th>
6
+ <th><%= BigbluebuttonServer.human_attribute_name(:url) %></th>
7
+ <th><%= BigbluebuttonServer.human_attribute_name(:salt) %></th>
8
+ <th><%= BigbluebuttonServer.human_attribute_name(:version) %></th>
8
9
  <th></th>
9
10
  <th></th>
10
11
  <th></th>
@@ -15,6 +16,7 @@
15
16
  <td><%= server.name %></td>
16
17
  <td><%= server.url %></td>
17
18
  <td><%= server.salt %></td>
19
+ <td><%= server.version %></td>
18
20
  <td><%= link_to 'Show', server %></td>
19
21
  <td><%= link_to 'Edit', edit_bigbluebutton_server_path(server) %></td>
20
22
  <td><%= link_to 'Destroy', server, :confirm => 'Are you sure?', :method => :delete %></td>
@@ -1,4 +1,4 @@
1
- <h1>New server:</h1>
1
+ <h1>New <%= BigbluebuttonServer.model_name.human %>:</h1>
2
2
 
3
3
  <%= render 'form' %>
4
4
 
@@ -1,24 +1,24 @@
1
- <h1>Server:</h1>
1
+ <h1><%= BigbluebuttonServer.model_name.human %>:</h1>
2
2
 
3
3
  <p id="notice"><%= notice %></p>
4
4
 
5
5
  <p>
6
- <b>Name:</b>
6
+ <b><%= BigbluebuttonServer.human_attribute_name(:name) %>:</b>
7
7
  <%= @server.name %>
8
8
  </p>
9
9
 
10
10
  <p>
11
- <b>Url:</b>
11
+ <b><%= BigbluebuttonServer.human_attribute_name(:url) %>:</b>
12
12
  <%= @server.url %>
13
13
  </p>
14
14
 
15
15
  <p>
16
- <b>Salt:</b>
16
+ <b><%= BigbluebuttonServer.human_attribute_name(:salt) %>:</b>
17
17
  <%= @server.salt %>
18
18
  </p>
19
19
 
20
20
  <p>
21
- <b>Version:</b>
21
+ <b><%= BigbluebuttonServer.human_attribute_name(:version) %>:</b>
22
22
  <%= @server.version %>
23
23
  </p>
24
24
 
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.require_paths = ["lib"]
17
17
 
18
18
  s.add_runtime_dependency("rails", "~> 3.0.3")
19
- s.add_runtime_dependency("bigbluebutton-api-ruby", "~> 0.0.9")
19
+ s.add_runtime_dependency("bigbluebutton-api-ruby", "~> 0.0.10")
20
20
 
21
21
  s.add_development_dependency("rspec-rails", "~> 2.5.0")
22
22
  s.add_development_dependency("factory_girl", "~> 1.3.2")
@@ -11,8 +11,39 @@ en:
11
11
  notice:
12
12
  create:
13
13
  success: "Your room was successfully created."
14
+ failure: "Your room could not be created."
14
15
  update:
15
16
  success: "Your room was successfully updated."
17
+ failure: "Your room could not be updated."
16
18
  end:
17
19
  success: "The meeting was successfully ended."
18
20
  not_running: "The meeting could not be ended because it is not running."
21
+ error:
22
+ auth:
23
+ failure: "Authentication failure."
24
+ not_running: "The meeting is not running. You must wait for a moderator to join."
25
+
26
+ activerecord:
27
+ models:
28
+ bigbluebutton_server: "BigBlueButton Server"
29
+ bigbluebutton_room: "BigBlueButton Room"
30
+ attributes:
31
+ bigbluebutton_server:
32
+ name: "Name"
33
+ url: "URL"
34
+ salt: "Security Salt"
35
+ version: "Version"
36
+ bigbluebutton_room:
37
+ server_id: "Server ID"
38
+ meetingid: "Meeting ID"
39
+ randomize_meetingid: "Randomize Meeting ID"
40
+ private: "Private"
41
+ name: "Name"
42
+ attendee_password: "Attendee Password"
43
+ moderator_password: "Moderator Password"
44
+ welcome_msg: "Welcome Message"
45
+ logout_url: "Logout URL"
46
+ dial_number: "Dial Number"
47
+ voice_bridge: "Voice Bridge"
48
+ max_participants: "Maximum Number of Participants"
49
+
@@ -6,6 +6,8 @@ module BigbluebuttonRails
6
6
  def self.included(base)
7
7
  base.class_eval do
8
8
 
9
+ helper_method :bigbluebutton_user, :bigbluebutton_role
10
+
9
11
  # Method used to acquire the user for which the BigBlueButton actions are being
10
12
  # called (e.g. the user creating or joining the room).
11
13
  # Defaults to the user currently logged in, using the method current_user.
@@ -41,7 +43,11 @@ module BigbluebuttonRails
41
43
  # end
42
44
  #
43
45
  def bigbluebutton_role(room)
44
- :moderator
46
+ if room.private or current_user.nil?
47
+ nil # ask for a password
48
+ else
49
+ :moderator
50
+ end
45
51
  end
46
52
 
47
53
  end
@@ -47,7 +47,7 @@ module ActionDispatch::Routing
47
47
  # ==== Room matchers
48
48
  #
49
49
  # Generates matchers to access a room from a different url or inside another resource.
50
- # It creates routes to the actions #show, #join, #running, and #end.
50
+ # It creates routes to the actions #show, #join, #running, #end, #invite, and #auth.
51
51
  #
52
52
  # bigbluebutton_routes :room_matchers
53
53
  #
@@ -63,10 +63,14 @@ module ActionDispatch::Routing
63
63
  # { :controller=>"bigbluebutton/rooms", :action=>"show" }
64
64
  # user_join_room GET /users/:user_id/room/:id/join(.:format)
65
65
  # { :controller=>"bigbluebutton/rooms", :action=>"join" }
66
+ # user_auth_room POST /users/:user_id/room/:id/join(.:format)
67
+ # { :controller=>"bigbluebutton/rooms", :action=>"auth" }
66
68
  # user_running_room GET /users/:user_id/room/:id/running(.:format)
67
69
  # { :controller=>"bigbluebutton/rooms", :action=>"running" }
68
70
  # user_end_room GET /users/:user_id/room/:id/end(.:format)
69
71
  # { :controller=>"bigbluebutton/rooms", :action=>"end" }
72
+ # user_invite_room GET /users/:user_id/room/:id/invite(.:format)
73
+ # { :controller=>"bigbluebutton/rooms", :action=>"invite" }
70
74
  #
71
75
  def bigbluebutton_routes(*params)
72
76
  options = params.extract_options!
@@ -85,16 +89,21 @@ module ActionDispatch::Routing
85
89
  get :join, :on => :member
86
90
  get :running, :on => :member
87
91
  get :end, :on => :member
92
+ get :invite, :on => :member
93
+ post :join, :on => :member, :action => :auth
88
94
  end
89
95
  end
90
96
  end
91
97
  end
92
98
 
93
99
  def bigbluebutton_routes_room_matchers(*params) #:nodoc:
100
+ # TODO This is generating helpers like "user_running_room" instead of "running_user_room"
94
101
  get 'room/:id' => 'bigbluebutton/rooms#show', :as => 'room'
95
102
  get 'room/:id/join' => 'bigbluebutton/rooms#join', :as => 'join_room'
103
+ post 'room/:id/join' => 'bigbluebutton/rooms#auth', :as => 'join_room'
96
104
  get 'room/:id/running' => 'bigbluebutton/rooms#running', :as => 'running_room'
97
105
  get 'room/:id/end' => 'bigbluebutton/rooms#end', :as => 'end_room'
106
+ get 'room/:id/invite' => 'bigbluebutton/rooms#invite', :as => 'invite_room'
98
107
  end
99
108
 
100
109
  end
@@ -1,3 +1,3 @@
1
1
  module BigbluebuttonRails
2
- VERSION = "0.0.2".freeze
2
+ VERSION = "0.0.3".freeze
3
3
  end
@@ -1,7 +1,6 @@
1
1
  require 'rails'
2
2
 
3
3
  require 'classes/bigbluebutton_attendee'
4
- require 'classes/bigbluebutton_meeting'
5
4
 
6
5
  module BigbluebuttonRails
7
6
  require 'bigbluebutton_rails/rails'
@@ -1,3 +1,5 @@
1
+ # Used to store the attendees of a meeting as returned by BigBlueButton in
2
+ # <tt>get_meeting_info</tt>.
1
3
  class BigbluebuttonAttendee
2
4
 
3
5
  attr_accessor :user_id, :full_name, :role
@@ -9,7 +9,8 @@ module BigbluebuttonRails
9
9
  desc "Creates the initializer, initial migration and locale files."
10
10
 
11
11
  def copy_locale
12
- copy_file "../../../../config/locales/en.yml", "config/locales/bigbluebutton_rails.en.yml"
12
+ # uses bigbluebutton_rails/config to avoid using the local application en.yml
13
+ copy_file "../../../../../bigbluebutton_rails/config/locales/en.yml", "config/locales/bigbluebutton_rails.en.yml"
13
14
  end
14
15
 
15
16
  def self.next_migration_number(dirname)
@@ -7,7 +7,6 @@ module BigbluebuttonRails
7
7
  desc "Copies all bigbluebutton_rails public files (javascripts and images) to your application."
8
8
 
9
9
  def copy_files
10
- copy_file "javascripts/heartbeat.js", "public/javascripts/heartbeat.js"
11
10
  copy_file "javascripts/jquery.min.js", "public/javascripts/jquery.min.js"
12
11
  copy_file "images/loading.gif", "public/images/loading.gif"
13
12
  end
@@ -12,15 +12,21 @@ class CreateBigbluebuttonRails < ActiveRecord::Migration
12
12
  t.integer :server_id
13
13
  t.integer :owner_id
14
14
  t.string :owner_type
15
- t.string :meeting_id
15
+ t.string :meetingid
16
16
  t.string :name
17
17
  t.string :attendee_password
18
18
  t.string :moderator_password
19
19
  t.string :welcome_msg
20
+ t.string :logout_url
21
+ t.string :voice_bridge
22
+ t.string :dial_number
23
+ t.integer :max_participants
24
+ t.boolean :private, :default => false
25
+ t.boolean :randomize_meetingid, :default => true
20
26
  t.timestamps
21
27
  end
22
28
  add_index :bigbluebutton_rooms, :server_id
23
- add_index :bigbluebutton_rooms, :meeting_id, :unique => true
29
+ add_index :bigbluebutton_rooms, :meetingid, :unique => true
24
30
  end
25
31
 
26
32
  def self.down