mirror of https://github.com/sualko/cloud_bbb
Compare commits
1 Commits
98640de1b3
...
f6bea2c115
Author | SHA1 | Date |
---|---|---|
|
f6bea2c115 |
|
@ -18,8 +18,6 @@ OC.L10N.register(
|
|||
"Access" : "Åtkomst",
|
||||
"Max" : "Max",
|
||||
"Edit" : "Redigera",
|
||||
"This message is shown to all users in the chat area after they joined." : "Detta meddelande visas för alla användare i chattområdet efter att de gått med.",
|
||||
"If enabled, the user list, chat area and presentation are hidden by default." : "Om aktiverat är användarlistan, chattområdet och presentationen dolda som standard.",
|
||||
"Welcome" : "Välkommen",
|
||||
"Miscellaneous" : "Diverse",
|
||||
"Recording" : "Inspelning",
|
||||
|
|
|
@ -16,8 +16,6 @@
|
|||
"Access" : "Åtkomst",
|
||||
"Max" : "Max",
|
||||
"Edit" : "Redigera",
|
||||
"This message is shown to all users in the chat area after they joined." : "Detta meddelande visas för alla användare i chattområdet efter att de gått med.",
|
||||
"If enabled, the user list, chat area and presentation are hidden by default." : "Om aktiverat är användarlistan, chattområdet och presentationen dolda som standard.",
|
||||
"Welcome" : "Välkommen",
|
||||
"Miscellaneous" : "Diverse",
|
||||
"Recording" : "Inspelning",
|
||||
|
|
|
@ -11,7 +11,6 @@ use OCP\AppFramework\Controller;
|
|||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserManager;
|
||||
|
||||
|
@ -25,9 +24,6 @@ class RoomShareController extends Controller {
|
|||
/** @var IUserManager */
|
||||
private $userManager;
|
||||
|
||||
/** @var IGroupManager */
|
||||
private $groupManager;
|
||||
|
||||
/** @var RoomService */
|
||||
private $roomService;
|
||||
|
||||
|
@ -41,7 +37,6 @@ class RoomShareController extends Controller {
|
|||
IRequest $request,
|
||||
RoomShareService $service,
|
||||
IUserManager $userManager,
|
||||
IGroupManager $groupManager,
|
||||
RoomService $roomService,
|
||||
CircleHelper $circleHelper,
|
||||
$userId
|
||||
|
@ -49,7 +44,6 @@ class RoomShareController extends Controller {
|
|||
parent::__construct($appName, $request);
|
||||
$this->service = $service;
|
||||
$this->userManager = $userManager;
|
||||
$this->groupManager = $groupManager;
|
||||
$this->roomService = $roomService;
|
||||
$this->circleHelper = $circleHelper;
|
||||
$this->userId = $userId;
|
||||
|
@ -96,14 +90,6 @@ class RoomShareController extends Controller {
|
|||
}
|
||||
|
||||
$roomShare->setShareWithDisplayName($circle->getName());
|
||||
} elseif ($roomShare->getShareType() === RoomShare::SHARE_TYPE_GROUP) {
|
||||
$shareWithGroup = $this->groupManager->get($roomShare->getShareWith());
|
||||
|
||||
if ($shareWithGroup === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$roomShare->setShareWithDisplayName($shareWithGroup->getDisplayName());
|
||||
}
|
||||
|
||||
$shares[] = $roomShare;
|
||||
|
|
|
@ -9,7 +9,6 @@ use OCA\BigBlueButton\Db\RoomShare;
|
|||
use OCA\BigBlueButton\Service\RoomService;
|
||||
use OCA\BigBlueButton\Service\RoomShareService;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserManager;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
@ -20,7 +19,6 @@ class RoomShareControllerTest extends TestCase {
|
|||
private $roomService;
|
||||
private $circleHelper;
|
||||
private $userManager;
|
||||
private $groupManager;
|
||||
private $controller;
|
||||
|
||||
private $userId = 'user_foo';
|
||||
|
@ -31,7 +29,6 @@ class RoomShareControllerTest extends TestCase {
|
|||
$this->request = $this->createMock(IRequest::class);
|
||||
$this->service = $this->createMock(RoomShareService::class);
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->groupManager = $this->createMock(IGroupManager::class);
|
||||
$this->roomService = $this->createMock(RoomService::class);
|
||||
$this->circleHelper = $this->createMock(CircleHelper::class);
|
||||
|
||||
|
@ -40,7 +37,6 @@ class RoomShareControllerTest extends TestCase {
|
|||
$this->request,
|
||||
$this->service,
|
||||
$this->userManager,
|
||||
$this->groupManager,
|
||||
$this->roomService,
|
||||
$this->circleHelper,
|
||||
$this->userId
|
||||
|
|
|
@ -78,7 +78,7 @@ const ShareSelection: React.FC<Props> = (props) => {
|
|||
className="suggestion"
|
||||
onMouseDown={preventOnBlurEvent}
|
||||
onClick={() => selectShare(option)}>
|
||||
{option.label}{option.value.shareType === ShareType.Group ? ' (' + t('bbb', 'Group') + ')' : ''}
|
||||
{option.label}{option.value.shareType === ShareType.Group ? ` (${t('bbb', 'Group')})` : ''}
|
||||
</li>);
|
||||
};
|
||||
|
||||
|
|
|
@ -161,24 +161,9 @@ pre {
|
|||
.bbb-shrink {
|
||||
width: 44px;
|
||||
white-space: nowrap;
|
||||
|
||||
input[type="checkbox"]{
|
||||
|
||||
&+label:before {
|
||||
border-radius: 3px;
|
||||
border-width: 2px;
|
||||
}
|
||||
|
||||
&:disabled+label:before {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
&:not(input:checked):disabled+label:before {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
th {
|
||||
padding: 14px 6px;
|
||||
border-bottom: 1px var(--color-background-darker) solid;
|
||||
|
|
|
@ -65,7 +65,7 @@ const EditRoomDialog: React.FC<Props> = ({ room, restriction, updateProperty, op
|
|||
function inputElement(label: string, field: string, type: 'text' | 'number' = 'text') {
|
||||
return (
|
||||
<div className="bbb-form-element">
|
||||
<label htmlFor={'bbb-' + field}>
|
||||
<label htmlFor={`bbb-${field}`}>
|
||||
<h3>{label}</h3>
|
||||
</label>
|
||||
|
||||
|
@ -78,7 +78,7 @@ const EditRoomDialog: React.FC<Props> = ({ room, restriction, updateProperty, op
|
|||
function selectElement(label: string, field: string, value: string, options: { [key: string]: string }, onChange: (value: string) => void) {
|
||||
return (
|
||||
<div className="bbb-form-element">
|
||||
<label htmlFor={'bbb-' + field}>
|
||||
<label htmlFor={`bbb-${field}`}>
|
||||
<h3>{label}</h3>
|
||||
</label>
|
||||
|
||||
|
@ -132,27 +132,27 @@ const EditRoomDialog: React.FC<Props> = ({ room, restriction, updateProperty, op
|
|||
|
||||
{room.access === Access.InternalRestricted &&
|
||||
<div className="bbb-form-element bbb-form-shareWith">
|
||||
<span className="icon icon-details icon-visible"></span><em>{t('bbb', 'Access') + ' : ' + descriptions.internalRestrictedShareWith}</em>
|
||||
<span className="icon icon-details icon-visible"></span><em>{`${t('bbb', 'Access')} : ${descriptions.internalRestrictedShareWith}`}</em>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div className="bbb-mt-1">
|
||||
<input id={'bbb-everyoneIsModerator-' + room.id}
|
||||
<input id={`bbb-everyoneIsModerator-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={room.everyoneIsModerator}
|
||||
onChange={(event) => updateProperty('everyoneIsModerator', event.target.checked)} />
|
||||
<label htmlFor={'bbb-everyoneIsModerator-' + room.id}>{t('bbb', 'Every participant is moderator')}</label>
|
||||
<label htmlFor={`bbb-everyoneIsModerator-${room.id}`}>{t('bbb', 'Every participant is moderator')}</label>
|
||||
</div>
|
||||
<em>{descriptions.moderator}</em>
|
||||
|
||||
<div className="bbb-mt-1">
|
||||
<input id={'bbb-moderatorToken-' + room.id}
|
||||
<input id={`bbb-moderatorToken-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={!!room.moderatorToken}
|
||||
onChange={(event) => updateProperty('moderatorToken', event.target.checked ? 'true' : null)} />
|
||||
<label htmlFor={'bbb-moderatorToken-' + room.id}>{t('bbb', 'Moderator access via URL')}</label>
|
||||
<label htmlFor={`bbb-moderatorToken-${room.id}`}>{t('bbb', 'Moderator access via URL')}</label>
|
||||
</div>
|
||||
{!!room.moderatorToken && <CopyToClipboard text={api.getRoomUrl(room, true)}><input type="text" readOnly={true} className="icon-clippy" value={api.getRoomUrl(room, true)} /></CopyToClipboard>}
|
||||
<em>{descriptions.moderatorToken}</em>
|
||||
|
@ -162,68 +162,68 @@ const EditRoomDialog: React.FC<Props> = ({ room, restriction, updateProperty, op
|
|||
<h3>{t('bbb', 'Miscellaneous')}</h3>
|
||||
<div>
|
||||
<div>
|
||||
<input id={'bbb-record-' + room.id}
|
||||
<input id={`bbb-record-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={room.record}
|
||||
disabled={!restriction?.allowRecording}
|
||||
onChange={(event) => updateProperty('record', event.target.checked)} />
|
||||
<label htmlFor={'bbb-record-' + room.id}>{t('bbb', 'Recording')}</label>
|
||||
<label htmlFor={`bbb-record-${room.id}`}>{t('bbb', 'Recording')}</label>
|
||||
</div>
|
||||
<p><em>{descriptions.recording}</em></p>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<input id={'bbb-requireModerator-' + room.id}
|
||||
<input id={`bbb-requireModerator-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={room.requireModerator}
|
||||
onChange={(event) => updateProperty('requireModerator', event.target.checked)} />
|
||||
<label htmlFor={'bbb-requireModerator-' + room.id}>{t('bbb', 'Require moderator to start room')}</label>
|
||||
<label htmlFor={`bbb-requireModerator-${room.id}`}>{t('bbb', 'Require moderator to start room')}</label>
|
||||
</div>
|
||||
<p><em>{descriptions.requireModerator}</em></p>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<input id={'bbb-listenOnly-' + room.id}
|
||||
<input id={`bbb-listenOnly-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={room.listenOnly}
|
||||
onChange={(event) => updateProperty('listenOnly', event.target.checked)} />
|
||||
<label htmlFor={'bbb-listenOnly-' + room.id}>{t('bbb', 'Listen only option')}</label>
|
||||
<label htmlFor={`bbb-listenOnly-${room.id}`}>{t('bbb', 'Listen only option')}</label>
|
||||
</div>
|
||||
<p><em>{descriptions.listenOnly}</em></p>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<input id={'bbb-mediaCheck-' + room.id}
|
||||
<input id={`bbb-mediaCheck-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={!room.mediaCheck}
|
||||
onChange={(event) => updateProperty('mediaCheck', !event.target.checked)} />
|
||||
<label htmlFor={'bbb-mediaCheck-' + room.id}>{t('bbb', 'Skip media check before usage')}</label>
|
||||
<label htmlFor={`bbb-mediaCheck-${room.id}`}>{t('bbb', 'Skip media check before usage')}</label>
|
||||
</div>
|
||||
<p><em>{descriptions.mediaCheck}</em></p>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<input id={'bbb-cleanLayout-' + room.id}
|
||||
<input id={`bbb-cleanLayout-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={room.cleanLayout}
|
||||
onChange={(event) => updateProperty('cleanLayout', event.target.checked)} />
|
||||
<label htmlFor={'bbb-cleanLayout-' + room.id}>{t('bbb', 'Clean layout')}</label>
|
||||
<label htmlFor={`bbb-cleanLayout-${room.id}`}>{t('bbb', 'Clean layout')}</label>
|
||||
</div>
|
||||
<p><em>{descriptions.cleanLayout}</em></p>
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<input id={'bbb-joinMuted-' + room.id}
|
||||
<input id={`bbb-joinMuted-${room.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={room.joinMuted}
|
||||
onChange={(event) => updateProperty('joinMuted', event.target.checked)} />
|
||||
<label htmlFor={'bbb-joinMuted-' + room.id}>{t('bbb', 'Join meeting muted')}</label>
|
||||
<label htmlFor={`bbb-joinMuted-${room.id}`}>{t('bbb', 'Join meeting muted')}</label>
|
||||
</div>
|
||||
<p><em>{descriptions.joinMuted}</em></p>
|
||||
</div>
|
||||
|
|
|
@ -16,12 +16,12 @@ const RecordingRow: React.FC<Props> = ({recording, isAdmin, deleteRecording, sto
|
|||
function checkPublished(recording: Recording, onChange: (value: boolean) => void) {
|
||||
return (
|
||||
<div>
|
||||
<input id={'bbb-record-state-' + recording.id}
|
||||
<input id={`bbb-record-state-${recording.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={recording.state === 'published'}
|
||||
onChange={(event) => onChange(event.target.checked)} />
|
||||
<label htmlFor={'bbb-record-state-' + recording.id}>{t('bbb', 'Published')}</label>
|
||||
<label htmlFor={`bbb-record-state-${recording.id}`}>{t('bbb', 'Published')}</label>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ const RoomRow: React.FC<Props> = (props) => {
|
|||
<tr className={showRecordings ? 'selected-row' : ''}>
|
||||
<td className="start">
|
||||
<a href={api.getRoomUrl(room)}
|
||||
className={'button ' + (room.running ? 'success' : 'primary')}
|
||||
className={`button ${room.running ? 'success' : 'primary'}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
title={t('bbb', 'Open room')}>
|
||||
|
@ -253,22 +253,27 @@ const RoomRow: React.FC<Props> = (props) => {
|
|||
<td className="max-participants bbb-shrink">
|
||||
{edit('maxParticipants', 'number', adminRoom, {min: minParticipantsLimit, max: maxParticipantsLimit < 0 ? undefined : maxParticipantsLimit})}
|
||||
</td>
|
||||
{adminRoom &&
|
||||
<td className="record bbb-shrink">
|
||||
<input id={'bbb-record-' + room.id} type="checkbox" className="checkbox" disabled={!adminRoom || !props.restriction?.allowRecording} checked={room.record} onChange={(event) => updateRoom('record', event.target.checked)} />
|
||||
<label htmlFor={'bbb-record-' + room.id}></label>
|
||||
<input id={`bbb-record-${room.id}`} type="checkbox" className="checkbox" disabled={!props.restriction?.allowRecording} checked={room.record} onChange={(event) => updateRoom('record', event.target.checked)} />
|
||||
<label htmlFor={`bbb-record-${room.id}`}></label>
|
||||
</td>
|
||||
}
|
||||
{!adminRoom &&
|
||||
<td className="record bbb-shrink">
|
||||
<span className={'icon '+(room.record ? 'icon-checkmark' : 'icon-close')+' icon-visible'}></span>
|
||||
</td>
|
||||
}
|
||||
<td className="bbb-shrink">
|
||||
{<RecordingsNumber recordings={recordings} showRecordings={showRecordings} setShowRecordings={setShowRecordings} />}
|
||||
{<RecordingsNumber recordings={recordings} showRecordings={showRecordings} setShowRecordings={setShowRecordings} />}
|
||||
</td>
|
||||
<td className="clone icon-col">
|
||||
{adminRoom &&
|
||||
<button
|
||||
className="action-item"
|
||||
onClick={cloneRow}
|
||||
title={t('bbb', 'Clone room')}>
|
||||
<span className="icon icon-template-add icon-visible"></span>
|
||||
</button>
|
||||
}
|
||||
</td>
|
||||
<td className="edit icon-col">
|
||||
{adminRoom &&
|
||||
|
|
|
@ -101,13 +101,13 @@ const ShareWith: React.FC<Props> = ({ room, permission, shares: allShares, setSh
|
|||
return (
|
||||
<li key={share.id} className="bbb-shareWith__item">
|
||||
<div className="avatardiv">
|
||||
{avatarUrl && <img src={avatarUrl} alt={'Avatar from ' + displayName} />}
|
||||
{avatarUrl && <img src={avatarUrl} alt={`Avatar from ${displayName}`} />}
|
||||
{share.shareType === ShareType.Group && <span className="icon-group-white"></span>}
|
||||
{share.shareType === ShareType.Circle && <span className="icon-circle-white"></span>}
|
||||
</div>
|
||||
<div className="bbb-shareWith__item__label">
|
||||
<h5>{displayName}
|
||||
{(share.id === ROOM_OWNER_ID || !isOwner) && (' (' + permissionLabel(share.permission) + ')')}
|
||||
{(share.id === ROOM_OWNER_ID || !isOwner) && ` (${permissionLabel(share.permission)})`}
|
||||
</h5>
|
||||
</div>
|
||||
{(share.id > ROOM_OWNER_ID && isOwner) && selectPermission(share.permission, (value) => {
|
||||
|
|
|
@ -63,12 +63,12 @@ const RestrictionRoom: React.FC<Props> = (props) => {
|
|||
|
||||
<td className="record bbb-shrink">
|
||||
<input
|
||||
id={'bbb-record-' + restriction.id}
|
||||
id={`bbb-record-${restriction.id}`}
|
||||
type="checkbox"
|
||||
className="checkbox"
|
||||
checked={restriction.allowRecording}
|
||||
onChange={(event) => updateRestriction('allowRecording', event.target.checked)} />
|
||||
<label htmlFor={'bbb-record-' + restriction.id}></label>
|
||||
<label htmlFor={`bbb-record-${restriction.id}`}></label>
|
||||
</td>
|
||||
|
||||
<td className="remove icon-col">
|
||||
|
|
Loading…
Reference in New Issue