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.
- data/CHANGELOG.rdoc +9 -1
- data/Gemfile.lock +3 -3
- data/README.rdoc +56 -21
- data/Rakefile +1 -0
- data/app/controllers/bigbluebutton/rooms_controller.rb +92 -35
- data/app/models/bigbluebutton_room.rb +136 -27
- data/app/models/bigbluebutton_server.rb +22 -6
- data/app/views/bigbluebutton/rooms/_form.html.erb +31 -6
- data/app/views/bigbluebutton/rooms/edit.html.erb +1 -1
- data/app/views/bigbluebutton/rooms/index.html.erb +20 -8
- data/app/views/bigbluebutton/rooms/invite.html.erb +56 -0
- data/app/views/bigbluebutton/rooms/{join_wait.html.erb → join.html.erb} +16 -12
- data/app/views/bigbluebutton/rooms/new.html.erb +1 -1
- data/app/views/bigbluebutton/rooms/show.html.erb +33 -9
- data/app/views/bigbluebutton/servers/edit.html.erb +1 -1
- data/app/views/bigbluebutton/servers/index.html.erb +6 -4
- data/app/views/bigbluebutton/servers/new.html.erb +1 -1
- data/app/views/bigbluebutton/servers/show.html.erb +5 -5
- data/bigbluebutton_rails.gemspec +1 -1
- data/config/locales/en.yml +31 -0
- data/lib/bigbluebutton_rails/controller_methods.rb +7 -1
- data/lib/bigbluebutton_rails/rails/routes.rb +10 -1
- data/lib/bigbluebutton_rails/version.rb +1 -1
- data/lib/bigbluebutton_rails.rb +0 -1
- data/lib/classes/bigbluebutton_attendee.rb +2 -0
- data/lib/generators/bigbluebutton_rails/install_generator.rb +2 -1
- data/lib/generators/bigbluebutton_rails/public_generator.rb +0 -1
- data/lib/generators/bigbluebutton_rails/templates/migration.rb +8 -2
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +339 -88
- data/spec/factories/bigbluebutton_room.rb +5 -3
- data/spec/factories/user.rb +3 -0
- data/spec/generators/public_generator_spec.rb +0 -1
- data/spec/generators/views_generator_spec.rb +1 -1
- data/spec/models/bigbluebutton_room_spec.rb +276 -177
- data/spec/models/bigbluebutton_server_spec.rb +117 -96
- data/spec/routing/bigbluebutton/rooms_routing_spec.rb +24 -0
- data/spec/support/matchers/shoulda/be_boolean.rb +38 -0
- data/spec/support/mocked_server.rb +14 -0
- metadata +26 -26
- data/config/routes.rb +0 -2
- data/lib/classes/bigbluebutton_meeting.rb +0 -18
- data/lib/generators/bigbluebutton_rails/templates/public/javascripts/heartbeat.js +0 -54
- 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.
|
37
|
+
<%= f.password_field :attendee_password %>
|
29
38
|
</div>
|
30
39
|
<div class="field">
|
31
40
|
<%= f.label :moderator_password %><br />
|
32
|
-
<%= f.
|
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,13 +1,19 @@
|
|
1
|
-
<h1>Listing
|
1
|
+
<h1>Listing <%= BigbluebuttonRoom.model_name.human %>:</h1>
|
2
2
|
|
3
3
|
<table>
|
4
4
|
<tr>
|
5
|
-
<th
|
6
|
-
<th
|
7
|
-
<th
|
8
|
-
<th
|
9
|
-
<th
|
10
|
-
<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.
|
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
|
4
|
-
|
5
|
-
|
6
|
-
|
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
|
-
|
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,31 +1,55 @@
|
|
1
|
-
<h1
|
1
|
+
<h1><%= BigbluebuttonRoom.model_name.human %>:</h1>
|
2
2
|
|
3
3
|
<p id="notice"><%= notice %></p>
|
4
4
|
|
5
5
|
<p>
|
6
|
-
<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
|
11
|
-
<%= @room.
|
14
|
+
<b><%= BigbluebuttonRoom.human_attribute_name(:meetingid) %>:</b>
|
15
|
+
<%= @room.meetingid %>
|
12
16
|
</p>
|
13
17
|
<p>
|
14
|
-
<b
|
15
|
-
<%= @room.
|
18
|
+
<b><%= BigbluebuttonRoom.human_attribute_name(:randomize_meetingid) %>:</b>
|
19
|
+
<%= @room.randomize_meetingid %>
|
16
20
|
</p>
|
17
21
|
<p>
|
18
|
-
<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
|
30
|
+
<b><%= BigbluebuttonRoom.human_attribute_name(:moderator_password) %>:</b>
|
23
31
|
<%= @room.moderator_password %>
|
24
32
|
</p>
|
25
33
|
<p>
|
26
|
-
<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,10 +1,11 @@
|
|
1
|
-
<h1>Listing
|
1
|
+
<h1>Listing <%= BigbluebuttonServer.model_name.human %>:</h1>
|
2
2
|
|
3
3
|
<table>
|
4
4
|
<tr>
|
5
|
-
<th
|
6
|
-
<th
|
7
|
-
<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,24 +1,24 @@
|
|
1
|
-
<h1
|
1
|
+
<h1><%= BigbluebuttonServer.model_name.human %>:</h1>
|
2
2
|
|
3
3
|
<p id="notice"><%= notice %></p>
|
4
4
|
|
5
5
|
<p>
|
6
|
-
<b
|
6
|
+
<b><%= BigbluebuttonServer.human_attribute_name(:name) %>:</b>
|
7
7
|
<%= @server.name %>
|
8
8
|
</p>
|
9
9
|
|
10
10
|
<p>
|
11
|
-
<b
|
11
|
+
<b><%= BigbluebuttonServer.human_attribute_name(:url) %>:</b>
|
12
12
|
<%= @server.url %>
|
13
13
|
</p>
|
14
14
|
|
15
15
|
<p>
|
16
|
-
<b
|
16
|
+
<b><%= BigbluebuttonServer.human_attribute_name(:salt) %>:</b>
|
17
17
|
<%= @server.salt %>
|
18
18
|
</p>
|
19
19
|
|
20
20
|
<p>
|
21
|
-
<b
|
21
|
+
<b><%= BigbluebuttonServer.human_attribute_name(:version) %>:</b>
|
22
22
|
<%= @server.version %>
|
23
23
|
</p>
|
24
24
|
|
data/bigbluebutton_rails.gemspec
CHANGED
@@ -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.
|
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")
|
data/config/locales/en.yml
CHANGED
@@ -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
|
-
|
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 #
|
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
|
data/lib/bigbluebutton_rails.rb
CHANGED
@@ -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
|
-
|
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 :
|
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, :
|
29
|
+
add_index :bigbluebutton_rooms, :meetingid, :unique => true
|
24
30
|
end
|
25
31
|
|
26
32
|
def self.down
|