mirror of https://github.com/sualko/cloud_bbb
parent
d7a0bfce09
commit
557eb7029a
|
@ -36,7 +36,5 @@ Developer wanted! If you have time it would be awesome if you could help to enha
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<settings>
|
<settings>
|
||||||
<admin>OCA\BigBlueButton\Settings\Admin</admin>
|
<admin>OCA\BigBlueButton\Settings\Admin</admin>
|
||||||
<personal>OCA\BigBlueButton\Settings\Personal</personal>
|
|
||||||
<personal-section>OCA\BigBlueButton\Settings\Section</personal-section>
|
|
||||||
</settings>
|
</settings>
|
||||||
</info>
|
</info>
|
||||||
|
|
|
@ -6,6 +6,7 @@ return [
|
||||||
'roomShare' => ['url' => '/roomShares'],
|
'roomShare' => ['url' => '/roomShares'],
|
||||||
],
|
],
|
||||||
'routes' => [
|
'routes' => [
|
||||||
|
['name' => 'page#index', 'url' => '/', 'verb' => 'GET'],
|
||||||
['name' => 'server#records', 'url' => '/server/{roomUid}/records', 'verb' => 'GET'],
|
['name' => 'server#records', 'url' => '/server/{roomUid}/records', 'verb' => 'GET'],
|
||||||
['name' => 'server#check', 'url' => '/server/check', 'verb' => 'POST'],
|
['name' => 'server#check', 'url' => '/server/check', 'verb' => 'POST'],
|
||||||
['name' => 'server#version', 'url' => '/server/version', 'verb' => 'GET'],
|
['name' => 'server#version', 'url' => '/server/version', 'verb' => 'GET'],
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace OCA\BigBlueButton\AppInfo;
|
namespace OCA\BigBlueButton\AppInfo;
|
||||||
|
|
||||||
|
use \OCP\IConfig;
|
||||||
use \OCP\AppFramework\App;
|
use \OCP\AppFramework\App;
|
||||||
use \OCA\BigBlueButton\Middleware\JoinMiddleware;
|
use \OCA\BigBlueButton\Middleware\JoinMiddleware;
|
||||||
|
|
||||||
|
@ -16,5 +17,34 @@ class Application extends App {
|
||||||
$container = $this->getContainer();
|
$container = $this->getContainer();
|
||||||
|
|
||||||
$container->registerMiddleWare(JoinMiddleware::class);
|
$container->registerMiddleWare(JoinMiddleware::class);
|
||||||
|
|
||||||
|
$config = $container->query(IConfig::class);
|
||||||
|
|
||||||
|
if ($config->getAppValue('bbb', 'app.navigation') === 'true') {
|
||||||
|
$this->registerAsNavigationEntry();
|
||||||
|
} else {
|
||||||
|
$this->registerAsPersonalSetting();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function registerAsPersonalSetting() {
|
||||||
|
$settingsManager = $this->getContainer()->getServer()->getSettingsManager();
|
||||||
|
|
||||||
|
$settingsManager->registerSection('personal', \OCA\BigBlueButton\Settings\Section::class);
|
||||||
|
$settingsManager->registerSetting('personal', \OCA\BigBlueButton\Settings\Personal::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function registerAsNavigationEntry() {
|
||||||
|
$server = $this->getContainer()->getServer();
|
||||||
|
|
||||||
|
$server->getNavigationManager()->add(function () use ($server) {
|
||||||
|
return [
|
||||||
|
'id' => 'bbb',
|
||||||
|
'order' => 80,
|
||||||
|
'href' => $server->getURLGenerator()->linkToRoute('bbb.page.index'),
|
||||||
|
'icon' => $server->getURLGenerator()->imagePath('bbb', 'app.svg'),
|
||||||
|
'name' => 'BigBlueButton',
|
||||||
|
];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace OCA\BigBlueButton\Controller;
|
||||||
|
|
||||||
|
use OCP\IRequest;
|
||||||
|
use OCP\AppFramework\Http\TemplateResponse;
|
||||||
|
use OCP\AppFramework\Controller;
|
||||||
|
|
||||||
|
class PageController extends Controller {
|
||||||
|
public function __construct(string $appName, IRequest $request) {
|
||||||
|
parent::__construct($appName, $request);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @NoCSRFRequired
|
||||||
|
*/
|
||||||
|
public function index() {
|
||||||
|
return new TemplateResponse($this->appName, 'manager');
|
||||||
|
}
|
||||||
|
}
|
|
@ -27,6 +27,7 @@ class Admin implements ISettings {
|
||||||
$parameters = [
|
$parameters = [
|
||||||
'api.url' => $this->config->getAppValue('bbb', 'api.url'),
|
'api.url' => $this->config->getAppValue('bbb', 'api.url'),
|
||||||
'api.secret' => $this->config->getAppValue('bbb', 'api.secret'),
|
'api.secret' => $this->config->getAppValue('bbb', 'api.secret'),
|
||||||
|
'app.navigation' => $this->config->getAppValue('bbb', 'app.navigation') === 'true' ? 'checked' : '',
|
||||||
];
|
];
|
||||||
|
|
||||||
return new TemplateResponse('bbb', 'admin', $parameters);
|
return new TemplateResponse('bbb', 'admin', $parameters);
|
||||||
|
|
|
@ -17,4 +17,9 @@ script('bbb', 'admin');
|
||||||
|
|
||||||
<div id="bbb-result"></div>
|
<div id="bbb-result"></div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<input type="checkbox" name="app.navigation" id="bbb-app-navigation" class="checkbox" value="1" <?php p($_['app.navigation']); ?>>
|
||||||
|
<label for="bbb-app-navigation"><?php p($l->t('Show room manager in app navigation instead of settings page.')); ?></label>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -19,6 +19,10 @@
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#bbb-root {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
#bbb-warning {
|
#bbb-warning {
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
background-color: rgb(255, 255, 123);
|
background-color: rgb(255, 255, 123);
|
||||||
|
@ -53,6 +57,10 @@
|
||||||
p {
|
p {
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
margin-bottom: 2em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#bbb-react-root {
|
#bbb-react-root {
|
||||||
|
|
|
@ -71,4 +71,12 @@ $(() => {
|
||||||
$('#bbb-result').append(warningElement);
|
$('#bbb-result').append(warningElement);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$<HTMLInputElement>('#bbb-settings [name="app.navigation"]').change((ev) => {
|
||||||
|
ev.preventDefault();
|
||||||
|
|
||||||
|
console.log('checkbox changed to', ev.target.checked);
|
||||||
|
|
||||||
|
OCP.AppConfig.setValue('bbb', 'app.navigation', ev.target.checked);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue