bigbluebutton_rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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