mirror of https://github.com/sualko/cloud_bbb
Compare commits
24 Commits
84a24d24e3
...
643cff0201
Author | SHA1 | Date |
---|---|---|
|
643cff0201 | |
|
3fc69db34f | |
|
4c50acd7b0 | |
|
52ec225c16 | |
|
a65f7071bf | |
|
1a848f050c | |
|
3551aa0ed7 | |
|
bae54c4cc7 | |
|
6fc0eef389 | |
|
8341ba734c | |
|
67d1de1a2f | |
|
5a48370d5e | |
|
65dc46e00d | |
|
8519a65284 | |
|
ee25c1b821 | |
|
93ac85e54e | |
|
9254b74d8d | |
|
1e2c8cc1ca | |
|
c300632f22 | |
|
2b62846252 | |
|
2362b2c682 | |
|
a21102fa80 | |
|
c9c9e023ab | |
|
c80135c4ce |
|
@ -19,7 +19,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: [7.3, 7.4, 8.0]
|
php-versions: [7.4, 8.0, 8.1]
|
||||||
name: php${{ matrix.php-versions }} lint
|
name: php${{ matrix.php-versions }} lint
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
|
|
@ -12,7 +12,12 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
php-versions: ['7.4', '8']
|
php-versions: ['7.4', '8']
|
||||||
nextcloud-versions: ['stable23', 'stable24', 'stable25']
|
nextcloud-versions: ['stable25', 'stable26', 'stable27']
|
||||||
|
exclude:
|
||||||
|
- php-versions: '7.4'
|
||||||
|
nextcloud-versions: 'stable26'
|
||||||
|
- php-versions: '7.4'
|
||||||
|
nextcloud-versions: 'stable27'
|
||||||
name: php${{ matrix.php-versions }} on ${{ matrix.nextcloud-versions }} unit tests
|
name: php${{ matrix.php-versions }} on ${{ matrix.nextcloud-versions }} unit tests
|
||||||
env:
|
env:
|
||||||
CI: true
|
CI: true
|
||||||
|
|
|
@ -6,7 +6,7 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
ocp-version: [ 'dev-stable25', 'dev-stable24', 'dev-stable23' ]
|
ocp-version: [ 'dev-stable27', 'dev-stable26', 'dev-stable25' ]
|
||||||
name: Nextcloud ${{ matrix.ocp-version }}
|
name: Nextcloud ${{ matrix.ocp-version }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
@ -14,14 +14,14 @@ jobs:
|
||||||
- name: Set up php
|
- name: Set up php
|
||||||
uses: shivammathur/setup-php@master
|
uses: shivammathur/setup-php@master
|
||||||
with:
|
with:
|
||||||
php-version: 7.4
|
php-version: 8.1
|
||||||
coverage: none
|
coverage: none
|
||||||
- name: Update php-cs-fixer
|
- name: Update php-cs-fixer
|
||||||
run: composer update friendsofphp/php-cs-fixer -W
|
run: composer update friendsofphp/php-cs-fixer -W
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: composer i
|
run: composer i
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: composer require --dev nextcloud/ocp:${{ matrix.ocp-version }}
|
run: composer require --dev nextcloud/ocp:${{ matrix.ocp-version }} psr/container symfony/service-contracts
|
||||||
- name: Run coding standards check
|
- name: Run coding standards check
|
||||||
run: composer run psalm
|
run: composer run psalm
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## 2.5.0 (2023-07-27)
|
||||||
|
### Added
|
||||||
|
- bump Nextcloud version (min 25, max 27)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- fix oversized avatar
|
||||||
|
- fix unscrollable room list
|
||||||
|
|
||||||
## 2.4.0 (2022-11-10)
|
## 2.4.0 (2022-11-10)
|
||||||
### Added
|
### Added
|
||||||
- bump Nextcloud version (min 23, max 25)
|
- bump Nextcloud version (min 23, max 25)
|
||||||
|
|
|
@ -22,7 +22,7 @@ Developer wanted! If you have time it would be awesome if you could help to enha
|
||||||
|
|
||||||
*This app integrates BigBlueButton and is not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.*
|
*This app integrates BigBlueButton and is not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.*
|
||||||
]]></description>
|
]]></description>
|
||||||
<version>2.4.0</version>
|
<version>2.5.0</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author mail="klaus@jsxc.org">Klaus Herberth</author>
|
<author mail="klaus@jsxc.org">Klaus Herberth</author>
|
||||||
<namespace>BigBlueButton</namespace>
|
<namespace>BigBlueButton</namespace>
|
||||||
|
@ -43,7 +43,7 @@ Developer wanted! If you have time it would be awesome if you could help to enha
|
||||||
<lib>curl</lib>
|
<lib>curl</lib>
|
||||||
<lib>mbstring</lib>
|
<lib>mbstring</lib>
|
||||||
<lib>SimpleXML</lib>
|
<lib>SimpleXML</lib>
|
||||||
<nextcloud min-version="23" max-version="26"/>
|
<nextcloud min-version="25" max-version="27"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<commands>
|
<commands>
|
||||||
<command>OCA\BigBlueButton\Command\ClearAvatarCache</command>
|
<command>OCA\BigBlueButton\Command\ClearAvatarCache</command>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
"friendsofphp/php-cs-fixer": "^3",
|
"friendsofphp/php-cs-fixer": "^3",
|
||||||
"nextcloud/coding-standard": "^1.0.0",
|
"nextcloud/coding-standard": "^1.0.0",
|
||||||
"phpstan/phpstan": "^0.12.29",
|
"phpstan/phpstan": "^0.12.29",
|
||||||
"nextcloud/ocp": "^23.0 || ^24.0 || ^25.0",
|
"nextcloud/ocp": "^25.0 || ^26.0 || ^27.0",
|
||||||
"vimeo/psalm": "^4.5"
|
"vimeo/psalm": "^4.5"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "434f3b95fbfba97b03d130cd3fb92140",
|
"content-hash": "feb9af8a85a0a6dd2511e8dfb2546e38",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "littleredbutton/bigbluebutton-api-php",
|
"name": "littleredbutton/bigbluebutton-api-php",
|
||||||
|
@ -1191,16 +1191,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nextcloud/ocp",
|
"name": "nextcloud/ocp",
|
||||||
"version": "v24.0.1",
|
"version": "v26.0.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||||
"reference": "f032acdff1502a7323f95a6524d163290f43b446"
|
"reference": "6f0ffec5ace13e71f50d0735c0258fc37f4ca562"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/f032acdff1502a7323f95a6524d163290f43b446",
|
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/6f0ffec5ace13e71f50d0735c0258fc37f4ca562",
|
||||||
"reference": "f032acdff1502a7323f95a6524d163290f43b446",
|
"reference": "6f0ffec5ace13e71f50d0735c0258fc37f4ca562",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -1212,7 +1212,7 @@
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "24.0.0-dev"
|
"dev-master": "26.0.0-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
@ -1227,9 +1227,10 @@
|
||||||
],
|
],
|
||||||
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
|
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/nextcloud-deps/ocp/tree/v24.0.1"
|
"issues": "https://github.com/nextcloud-deps/ocp/issues",
|
||||||
|
"source": "https://github.com/nextcloud-deps/ocp/tree/v26.0.4"
|
||||||
},
|
},
|
||||||
"time": "2022-06-02T14:16:47+00:00"
|
"time": "2023-07-17T09:26:46+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
|
@ -4834,5 +4835,5 @@
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": [],
|
"platform": [],
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.2.0"
|
"plugin-api-version": "2.3.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
height="32"
|
||||||
|
width="32"
|
||||||
|
version="1.0"
|
||||||
|
viewBox="0 0 32 32"
|
||||||
|
id="svg4"
|
||||||
|
sodipodi:docname="app-grey.svg"
|
||||||
|
inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
|
||||||
|
<metadata
|
||||||
|
id="metadata10">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1479"
|
||||||
|
inkscape:window-height="997"
|
||||||
|
id="namedview6"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="7.375"
|
||||||
|
inkscape:cx="13.46269"
|
||||||
|
inkscape:cy="7.070207"
|
||||||
|
inkscape:window-x="2110"
|
||||||
|
inkscape:window-y="585"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg4" />
|
||||||
|
<path
|
||||||
|
style="color:#969696;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#969696;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.48244119;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||||
|
d="M 6.140625,2 C 3.8448872,2 2,3.9362265 2,6.2421875 V 25.757812 C 2,28.063773 3.8448872,30 6.140625,30 h 19.71875 C 28.155113,30 30,28.063773 30,25.757812 V 6.2421875 C 30,3.9362265 28.155113,2 25.859375,2 Z m 0,2.4824219 h 19.71875 c 0.917462,0 1.658203,0.7417266 1.658203,1.7597656 V 25.757812 c 0,1.01804 -0.740741,1.759766 -1.658203,1.759766 H 6.140625 c -0.9174623,0 -1.6582031,-0.741726 -1.6582031,-1.759766 V 6.2421875 c 0,-1.018039 0.7407408,-1.7597656 1.6582031,-1.7597656 z"
|
||||||
|
id="rect817"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<g
|
||||||
|
id="g891"
|
||||||
|
transform="matrix(0.72859037,0,0,0.72859037,4.3425539,7.2153805)"
|
||||||
|
style="fill:#969696">
|
||||||
|
<path
|
||||||
|
id="path819"
|
||||||
|
d="m 16,16.40625 a 9.4915257,9.4915257 0 0 0 -9.4921875,9.492188 9.4915257,9.4915257 0 0 0 0.3574219,2.576171 H 25.126953 A 9.4915257,9.4915257 0 0 0 25.492188,25.898438 9.4915257,9.4915257 0 0 0 16,16.40625 Z"
|
||||||
|
style="opacity:1;fill:#969696;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.37037015;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<circle
|
||||||
|
r="6.2372885"
|
||||||
|
cy="12.338983"
|
||||||
|
cx="16"
|
||||||
|
id="path819-1"
|
||||||
|
style="opacity:1;fill:#969696;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.21481466;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers stroke fill" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -15,6 +15,7 @@ use \OCA\BigBlueButton\Event\RoomShareDeletedEvent;
|
||||||
use \OCA\BigBlueButton\Listener\UserDeletedListener;
|
use \OCA\BigBlueButton\Listener\UserDeletedListener;
|
||||||
use \OCA\BigBlueButton\Middleware\HookMiddleware;
|
use \OCA\BigBlueButton\Middleware\HookMiddleware;
|
||||||
use \OCA\BigBlueButton\Middleware\JoinMiddleware;
|
use \OCA\BigBlueButton\Middleware\JoinMiddleware;
|
||||||
|
use \OCA\BigBlueButton\Search\Provider;
|
||||||
use \OCP\AppFramework\App;
|
use \OCP\AppFramework\App;
|
||||||
use \OCP\IConfig;
|
use \OCP\IConfig;
|
||||||
use \OCP\Settings\IManager as ISettingsManager;
|
use \OCP\Settings\IManager as ISettingsManager;
|
||||||
|
@ -28,6 +29,7 @@ use OCP\Util;
|
||||||
|
|
||||||
class Application extends App implements IBootstrap {
|
class Application extends App implements IBootstrap {
|
||||||
public const ID = 'bbb';
|
public const ID = 'bbb';
|
||||||
|
public const ORDER = 80;
|
||||||
|
|
||||||
public function __construct(array $urlParams = []) {
|
public function __construct(array $urlParams = []) {
|
||||||
parent::__construct(self::ID, $urlParams);
|
parent::__construct(self::ID, $urlParams);
|
||||||
|
@ -50,6 +52,8 @@ class Application extends App implements IBootstrap {
|
||||||
|
|
||||||
$context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class);
|
$context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class);
|
||||||
|
|
||||||
|
$context->registerSearchProvider(Provider::class);
|
||||||
|
|
||||||
$context->registerMiddleware(JoinMiddleware::class);
|
$context->registerMiddleware(JoinMiddleware::class);
|
||||||
$context->registerMiddleware(HookMiddleware::class);
|
$context->registerMiddleware(HookMiddleware::class);
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,4 +99,21 @@ class RoomMapper extends QBMapper {
|
||||||
/** @var array<Room> */
|
/** @var array<Room> */
|
||||||
return $this->findEntities($qb);
|
return $this->findEntities($qb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<Room>
|
||||||
|
*/
|
||||||
|
public function search(string $userId, string $query): array {
|
||||||
|
/* @var $qb IQueryBuilder */
|
||||||
|
$qb = $this->db->getQueryBuilder();
|
||||||
|
$qb->select('*')
|
||||||
|
->from($this->tableName, 'r')
|
||||||
|
->where($qb->expr()->eq('r.user_id', $qb->createNamedParameter($userId)))
|
||||||
|
->andwhere($qb->expr()->ILike('name',
|
||||||
|
$qb->createNamedParameter('%' . $this->db->escapeLikeParameter($query) . '%', IQueryBuilder::PARAM_STR),
|
||||||
|
IQueryBuilder::PARAM_STR));
|
||||||
|
|
||||||
|
/** @var array<Room> */
|
||||||
|
return $this->findEntities($qb);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace OCA\BigBlueButton\Search;
|
||||||
|
|
||||||
|
use OCA\BigBlueButton\AppInfo\Application;
|
||||||
|
use OCA\BigBlueButton\Service\RoomService;
|
||||||
|
use OCA\BigBlueButton\Db\Room;
|
||||||
|
use OCP\IL10N;
|
||||||
|
use OCP\IURLGenerator;
|
||||||
|
use OCP\IUser;
|
||||||
|
use OCP\Search\IProvider;
|
||||||
|
use OCP\Search\ISearchQuery;
|
||||||
|
use OCP\Search\SearchResult;
|
||||||
|
use OCP\Search\SearchResultEntry;
|
||||||
|
use function array_map;
|
||||||
|
|
||||||
|
class Provider implements IProvider {
|
||||||
|
/** @var RoomService */
|
||||||
|
private $service;
|
||||||
|
|
||||||
|
/** @var IL10N */
|
||||||
|
private $l10n;
|
||||||
|
|
||||||
|
/** @var IURLGenerator */
|
||||||
|
private $urlGenerator;
|
||||||
|
|
||||||
|
public function __construct(RoomService $service, IL10N $l10n, IURLGenerator $urlGenerator) {
|
||||||
|
$this->service = $service;
|
||||||
|
$this->l10n = $l10n;
|
||||||
|
$this->urlGenerator = $urlGenerator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getId(): string {
|
||||||
|
return Application::ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getName(): string {
|
||||||
|
return 'BBB';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getOrder(string $route, array $routeParameters): int {
|
||||||
|
if (strpos($route, Application::ID . '.') === 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return Application::ORDER;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getAccess(string $access): string {
|
||||||
|
switch ($access) {
|
||||||
|
case 'public':
|
||||||
|
$translatedAccess = $this->l10n->t('Public');
|
||||||
|
break;
|
||||||
|
case 'password':
|
||||||
|
$translatedAccess = $this->l10n->t('Internal + Password protection for guests');
|
||||||
|
break;
|
||||||
|
case 'waiting_room':
|
||||||
|
$translatedAccess = $this->l10n->t('Internal + Waiting room for guests');
|
||||||
|
break;
|
||||||
|
case 'waiting_room_all':
|
||||||
|
$translatedAccess = $this->l10n->t('Waiting room for all users');
|
||||||
|
break;
|
||||||
|
case 'internal':
|
||||||
|
$translatedAccess = $this->l10n->t('Internal');
|
||||||
|
break;
|
||||||
|
case 'internal_restricted':
|
||||||
|
$translatedAccess = $this->l10n->t('Internal restricted');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $translatedAccess;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function search(IUser $user, ISearchQuery $query): SearchResult {
|
||||||
|
$rooms = $this->service->search(
|
||||||
|
$user,
|
||||||
|
$query
|
||||||
|
);
|
||||||
|
|
||||||
|
$results = [];
|
||||||
|
|
||||||
|
foreach($rooms as $room) {
|
||||||
|
$results[] = new SearchResultEntry(
|
||||||
|
'',
|
||||||
|
$room->getName(),
|
||||||
|
$this->getAccess($room->getAccess()),
|
||||||
|
$this->urlGenerator->linkToRouteAbsolute('bbb.page.index'),
|
||||||
|
$this->urlGenerator->imagePath('bbb', 'app-grey.svg')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SearchResult::complete(
|
||||||
|
'BBB',
|
||||||
|
$results
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,7 +13,9 @@ use OCP\AppFramework\Db\DoesNotExistException;
|
||||||
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
|
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
|
||||||
use OCP\EventDispatcher\IEventDispatcher;
|
use OCP\EventDispatcher\IEventDispatcher;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
|
use OCP\IUser;
|
||||||
use OCP\Security\ISecureRandom;
|
use OCP\Security\ISecureRandom;
|
||||||
|
use OCP\Search\ISearchQuery;
|
||||||
|
|
||||||
class RoomService {
|
class RoomService {
|
||||||
/** @var RoomMapper */
|
/** @var RoomMapper */
|
||||||
|
@ -84,6 +86,13 @@ class RoomService {
|
||||||
return $this->mapper->findByUserId($userId);
|
return $this->mapper->findByUserId($userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<Room>
|
||||||
|
*/
|
||||||
|
public function search(IUser $userId, ISearchQuery $query): array {
|
||||||
|
return $this->mapper->search($userId->getUID(), $query->getTerm());
|
||||||
|
}
|
||||||
|
|
||||||
public function create(string $name, string $welcome, int $maxParticipants, bool $record, string $access, string $userId): \OCP\AppFramework\Db\Entity {
|
public function create(string $name, string $welcome, int $maxParticipants, bool $record, string $access, string $userId): \OCP\AppFramework\Db\Entity {
|
||||||
$room = new Room();
|
$room = new Room();
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@sualko/cloud_bbb",
|
"name": "@sualko/cloud_bbb",
|
||||||
"description": "Nextcloud Integration for BigBlueButton",
|
"description": "Nextcloud Integration for BigBlueButton",
|
||||||
"version": "2.4.0",
|
"version": "2.5.0",
|
||||||
"author": "Klaus Herberth <klaus@jsxc.org>",
|
"author": "Klaus Herberth <klaus@jsxc.org>",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/sualko/cloud_bbb/issues"
|
"url": "https://github.com/sualko/cloud_bbb/issues"
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
"libxmljs": "^0.19.8",
|
"libxmljs": "^0.19.8",
|
||||||
"qrcode.react": "^2.0.0",
|
"qrcode.react": "^2.0.0",
|
||||||
"react-copy-to-clipboard": "^5.0.2",
|
"react-copy-to-clipboard": "^5.0.2",
|
||||||
"simple-git": "^3.5.0"
|
"simple-git": "^3.16.0"
|
||||||
},
|
},
|
||||||
"husky": {
|
"husky": {
|
||||||
"hooks": {
|
"hooks": {
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
|
|
||||||
.bbb-avatar {
|
.bbb-avatar {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
width: 2.5em;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-muted {
|
.text-muted {
|
||||||
|
@ -38,6 +40,7 @@
|
||||||
#bbb-root, #bbb-app {
|
#bbb-root, #bbb-app {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: var(--color-main-background);
|
background-color: var(--color-main-background);
|
||||||
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
|
@ -307,4 +310,4 @@ pre {
|
||||||
border: 5px solid #fff;
|
border: 5px solid #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
37
yarn.lock
37
yarn.lock
|
@ -2878,10 +2878,10 @@ dashdash@^1.12.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
|
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4:
|
||||||
version "4.3.3"
|
version "4.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||||
integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
|
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.1.2"
|
ms "2.1.2"
|
||||||
|
|
||||||
|
@ -3955,9 +3955,9 @@ html-tags@^3.1.0:
|
||||||
integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
|
integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==
|
||||||
|
|
||||||
http-cache-semantics@^4.1.0:
|
http-cache-semantics@^4.1.0:
|
||||||
version "4.1.0"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
|
||||||
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
|
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||||
|
|
||||||
http-proxy-agent@^4.0.1:
|
http-proxy-agent@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
|
@ -4535,9 +4535,9 @@ loader-runner@^4.2.0:
|
||||||
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
|
||||||
|
|
||||||
loader-utils@^1.1.0, loader-utils@^1.4.0:
|
loader-utils@^1.1.0, loader-utils@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
|
||||||
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
|
||||||
dependencies:
|
dependencies:
|
||||||
big.js "^5.2.2"
|
big.js "^5.2.2"
|
||||||
emojis-list "^3.0.0"
|
emojis-list "^3.0.0"
|
||||||
|
@ -4840,7 +4840,12 @@ minimist-options@4.1.0:
|
||||||
is-plain-obj "^1.1.0"
|
is-plain-obj "^1.1.0"
|
||||||
kind-of "^6.0.3"
|
kind-of "^6.0.3"
|
||||||
|
|
||||||
minimist@^1.2.0, minimist@^1.2.5:
|
minimist@^1.2.0:
|
||||||
|
version "1.2.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
||||||
|
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
||||||
|
|
||||||
|
minimist@^1.2.5:
|
||||||
version "1.2.6"
|
version "1.2.6"
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
||||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
||||||
|
@ -6118,14 +6123,14 @@ signal-exit@^3.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
|
||||||
integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
|
integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
|
||||||
|
|
||||||
simple-git@^3.5.0:
|
simple-git@^3.16.0:
|
||||||
version "3.5.0"
|
version "3.16.0"
|
||||||
resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.5.0.tgz#3c3538f4d7a1b3c8f3904412b12740bdcad9c8b1"
|
resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.16.0.tgz#421773e24680f5716999cc4a1d60127b4b6a9dec"
|
||||||
integrity sha512-fZsaq5nzdxQRhMNs6ESGLpMUHoL5GRP+boWPhq9pMYMKwOGZV2jHOxi8AbFFA2Y/6u4kR99HoULizSbpzaODkA==
|
integrity sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@kwsites/file-exists" "^1.1.1"
|
"@kwsites/file-exists" "^1.1.1"
|
||||||
"@kwsites/promise-deferred" "^1.1.1"
|
"@kwsites/promise-deferred" "^1.1.1"
|
||||||
debug "^4.3.3"
|
debug "^4.3.4"
|
||||||
|
|
||||||
slash@^2.0.0:
|
slash@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
|
|
Loading…
Reference in New Issue