GRN2-128: Added the ability to manage rooms (#848)
* Added the ability to manage rooms * Small fixes * Fixed travis complaints * Fixed issues with role permissions * Fixed issue with delete room * Fixed rubocop and added testcasesv2
parent
984e5cc085
commit
09de6b6739
@ -0,0 +1,65 @@ |
||||
<% |
||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. |
||||
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). |
||||
# This program is free software; you can redistribute it and/or modify it under the |
||||
# terms of the GNU Lesser General Public License as published by the Free Software |
||||
# Foundation; either version 3.0 of the License, or (at your option) any later |
||||
# version. |
||||
# |
||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY |
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. |
||||
# You should have received a copy of the GNU Lesser General Public License along |
||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. |
||||
%> |
||||
|
||||
<div class="row"> |
||||
<div class="col-12"> |
||||
<div class="table-responsive"> |
||||
<table id="rooms-table" class="table table-hover table-outline table-vcenter text-nowrap card-table"> |
||||
<thead> |
||||
<tr> |
||||
<th data-header="name" data-order="<%= @order_column == "name" ? @order_direction : "none" %>"> |
||||
<%= t("administrator.users.table.name") %> |
||||
<% if @order_column == "name" && @order_direction == "desc" %> |
||||
↓ |
||||
<% elsif @order_column == "name" && @order_direction == "asc" %> |
||||
↑ |
||||
<% end %> |
||||
</th> |
||||
<th data-header="users.name" data-order="<%= @order_column == "users.name" ? @order_direction : "none" %>"> |
||||
<%= t("room.owner") %> |
||||
<% if @order_column == "users.name" && @order_direction == "desc" %> |
||||
↓ |
||||
<% elsif @order_column == "users.name" && @order_direction == "asc" %> |
||||
↑ |
||||
<% end %> |
||||
</th> |
||||
<th data-header="uid" data-order="<%= @order_column == "uid" ? @order_direction : "none" %>"> |
||||
<%= t("administrator.rooms.table.id") %> |
||||
<% if @order_column == "uid" && @order_direction == "desc" %> |
||||
↓ |
||||
<% elsif @order_column == "uid" && @order_direction == "asc" %> |
||||
↑ |
||||
<% end %> |
||||
</th> |
||||
<th> |
||||
<%= t("administrator.rooms.table.status") %> |
||||
</th> |
||||
<th class="text-center"><i class="icon-settings"></i></th> |
||||
</tr> |
||||
</thead> |
||||
<tbody id="rooms-table"> |
||||
<% @rooms.each do |room| %> |
||||
<%= render "admins/components/server_room_row", room: room %> |
||||
<% end %> |
||||
</tbody> |
||||
</table> |
||||
<% if !@rooms.empty?%> |
||||
<div class="float-right mr-4 mt-4"> |
||||
<%== pagy_bootstrap_nav(@pagy) %> |
||||
</div> |
||||
<% end %> |
||||
</div> |
||||
</div> |
||||
</div> |
@ -0,0 +1,62 @@ |
||||
<% |
||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. |
||||
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). |
||||
# This program is free software; you can redistribute it and/or modify it under the |
||||
# terms of the GNU Lesser General Public License as published by the Free Software |
||||
# Foundation; either version 3.0 of the License, or (at your option) any later |
||||
# version. |
||||
# |
||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY |
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. |
||||
# You should have received a copy of the GNU Lesser General Public License along |
||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. |
||||
%> |
||||
|
||||
<tr id="room-block" data-path="<%= update_settings_path(room) %>" data-room-settings=<%= room.room_settings %> data-room-access-code="<%= room.access_code %>"> |
||||
<td> |
||||
<div id="room-title" class="form-inline edit_hover_class"> |
||||
<text id="room-name-text"> |
||||
<%= room.name %> |
||||
</text> |
||||
</div> |
||||
<div class="small text-muted"> |
||||
<%= [t("administrator.users.table.created"), ": ", room.created_at].join %> |
||||
</div> |
||||
</td> |
||||
<td class="text-left"> |
||||
<%= room.owner.name %> |
||||
</td> |
||||
<td class="text-left"> |
||||
<%= room.uid %> |
||||
</td> |
||||
<td class="text-left"> |
||||
<% running = room_is_running(room.bbb_id) %> |
||||
<% if running %> |
||||
<%= t("administrator.rooms.running") %> |
||||
<% else %> |
||||
<%= t("administrator.rooms.not_running") %> |
||||
<% end %> |
||||
</td> |
||||
<td class="text-center"> |
||||
<div class="item-action dropdown"> |
||||
<a href="javascript:void(0)" data-toggle="dropdown" class="icon"> |
||||
<i class="fas fa-ellipsis-v px-4"></i> |
||||
</a> |
||||
<div class="dropdown-menu dropdown-menu-right"> |
||||
<%= link_to room_path(room), class: "dropdown-item" do %> |
||||
<i class="dropdown-icon far fa-eye"></i> <%= t("administrator.rooms.view") %> |
||||
<% end %> |
||||
<%= button_to start_room_path(room), class: "dropdown-item" do %> |
||||
<i class="dropdown-icon fas fa-door-open"></i> <%= running ? t("room.join") : t("room.start") %> |
||||
<% end %> |
||||
<a href="" data-toggle="modal" data-target="#createRoomModal" class="update-room dropdown-item"> |
||||
<i class="dropdown-icon fas fa-cog"></i> <%= t("room.settings") %> |
||||
</a> |
||||
<a href="" data-toggle="modal" data-target="#deleteRoomModal" data-path="<%= room_path(room) %>" data-name="<%= room.name %>" class="delete-room dropdown-item"> |
||||
<i class="dropdown-icon far fa-trash-alt"></i> <%= t("delete") %> |
||||
</a> |
||||
</div> |
||||
</div> |
||||
</td> |
||||
</tr> |
@ -0,0 +1,30 @@ |
||||
<% |
||||
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/. |
||||
# Copyright (c) 2018 BigBlueButton Inc. and by respective authors (see below). |
||||
# This program is free software; you can redistribute it and/or modify it under the |
||||
# terms of the GNU Lesser General Public License as published by the Free Software |
||||
# Foundation; either version 3.0 of the License, or (at your option) any later |
||||
# version. |
||||
# |
||||
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY |
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
||||
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. |
||||
# You should have received a copy of the GNU Lesser General Public License along |
||||
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. |
||||
%> |
||||
|
||||
<div class="container pt-6"> |
||||
<%= render "shared/components/subtitle", subtitle: t("administrator.title"), search: false %> |
||||
|
||||
<div class="row"> |
||||
<div class="col-lg-3 mb-4"> |
||||
<%= render "admins/components/menu_buttons" %> |
||||
</div> |
||||
<div id="server_recordings" class="col-lg-9"> |
||||
<%= render "admins/components/setting_view", setting_id: "rooms", setting_title: t("administrator.rooms.title"), search: true %> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<%= render "shared/modals/delete_room_modal" %> |
||||
<%= render "shared/modals/create_room_modal" %> |
@ -0,0 +1,28 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
class MigrationProduct < ActiveRecord::Base |
||||
self.table_name = :roles |
||||
end |
||||
|
||||
class SubMigrationProduct < ActiveRecord::Base |
||||
self.table_name = :role_permissions |
||||
end |
||||
|
||||
class AddManageRoomRecordingsToPermissions < ActiveRecord::Migration[5.2] |
||||
def change |
||||
reversible do |dir| |
||||
dir.up do |
||||
MigrationProduct.all.each do |role| |
||||
SubMigrationProduct.create(role_id: role.id, name: "can_manage_rooms_recordings", |
||||
value: SubMigrationProduct.find_by(role_id: role.id, name: "can_manage_users").value, enabled: true) |
||||
end |
||||
end |
||||
|
||||
dir.down do |
||||
MigrationProduct.all.each do |role| |
||||
SubMigrationProduct.find_by(role_id: role.id, name: "can_manage_rooms_recordings").destroy |
||||
end |
||||
end |
||||
end |
||||
end |
||||
end |
Reference in new issue