From f304fd46299cffa52b0fb4c1373bd8f0789bf1ad Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Tue, 6 Dec 2016 14:09:19 +0100 Subject: [PATCH] New admin pages Signed-off-by: Lukas Reschke --- admin.php | 10 ----- appinfo/app.php | 2 - appinfo/info.xml | 6 ++- controller/settingscontroller.php | 29 ------------ lib/Settings/Admin.php | 74 +++++++++++++++++++++++++++++++ lib/Settings/Section.php | 56 +++++++++++++++++++++++ 6 files changed, 135 insertions(+), 42 deletions(-) delete mode 100644 admin.php create mode 100644 lib/Settings/Admin.php create mode 100644 lib/Settings/Section.php diff --git a/admin.php b/admin.php deleted file mode 100644 index 82a227e9..00000000 --- a/admin.php +++ /dev/null @@ -1,10 +0,0 @@ -getContainer()->query('\OCA\Richdocuments\Controller\SettingsController')->adminIndex(); -return $response->render(); - diff --git a/appinfo/app.php b/appinfo/app.php index 693cbf33..3c8e00d8 100644 --- a/appinfo/app.php +++ b/appinfo/app.php @@ -22,8 +22,6 @@ namespace OCA\Richdocuments\AppInfo; -\OCP\App::registerAdmin('richdocuments', 'admin'); - //Script for registering file actions $eventDispatcher = \OC::$server->getEventDispatcher(); $eventDispatcher->addListener( diff --git a/appinfo/info.xml b/appinfo/info.xml index 60cbe355..a30e0360 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -5,7 +5,7 @@ Collabora Online allows you to to work with all kinds of office documents directly in your browser. This application requires Collabora Cloudsuite to be installed on one of your servers, please read the documentation to learn more about that. Edit office documents directly in your browser. AGPL - 1.1.16 + 1.1.17 Collabora Productivity based on work of Frank Karlitschek, Victor Dubiniuk https://github.com/nextcloud/richdocuments/issues https://github.com/nextcloud/richdocuments.git @@ -25,4 +25,8 @@ https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-app.png https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-presentation.png https://nextcloud.com/wp-content/themes/next/assets/img/features/collabora-spreadsheet.png + + \OCA\Richdocuments\Settings\Admin + OCA\Richdocuments\Settings\Section + diff --git a/controller/settingscontroller.php b/controller/settingscontroller.php index 295b17ae..22440bf3 100644 --- a/controller/settingscontroller.php +++ b/controller/settingscontroller.php @@ -55,35 +55,6 @@ class SettingsController extends Controller{ ); } - /** - * @NoCSRFRequired - */ - public function settingsIndex(){ - return new TemplateResponse( - $this->appName, - 'settings', - 'blank' - ); - } - - /** - * @NoCSRFRequired - */ - public function adminIndex(){ - return new TemplateResponse( - $this->appName, - 'admin', - [ - 'wopi_url' => $this->appConfig->getAppValue('wopi_url'), - 'edit_groups' => $this->appConfig->getAppValue('edit_groups'), - 'doc_format' => $this->appConfig->getAppValue('doc_format'), - 'test_wopi_url' => $this->appConfig->getAppValue('test_wopi_url'), - 'test_server_groups' => $this->appConfig->getAppValue('test_server_groups') - ], - 'blank' - ); - } - public function setSettings($wopi_url, $edit_groups, $doc_format, $test_wopi_url, $test_server_groups){ $message = $this->l10n->t('Saved'); diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php new file mode 100644 index 00000000..fdfc9d4f --- /dev/null +++ b/lib/Settings/Admin.php @@ -0,0 +1,74 @@ + + * + * @author Lukas Reschke + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OCA\Richdocuments\Settings; + +use OCP\AppFramework\Http\TemplateResponse; +use OCP\Defaults; +use OCP\IConfig; +use OCP\IL10N; +use OCP\Settings\ISettings; + +class Admin implements ISettings { + /** @var IConfig */ + private $config; + /** + * @param IConfig $config + */ + public function __construct(IConfig $config) { + $this->config = $config; + } + /** + * @return TemplateResponse + */ + public function getForm() { + return new TemplateResponse( + 'richdocuments', + 'admin', + [ + 'wopi_url' => $this->config->getAppValue('richdocuments', 'wopi_url'), + 'edit_groups' => $this->config->getAppValue('richdocuments', 'edit_groups'), + 'doc_format' => $this->config->getAppValue('richdocuments', 'doc_format'), + 'test_wopi_url' => $this->config->getAppValue('richdocuments', 'test_wopi_url'), + 'test_server_groups' => $this->config->getAppValue('richdocuments', 'test_server_groups') + ], + 'blank' + ); + } + /** + * @return string the section ID, e.g. 'sharing' + */ + public function getSection() { + return 'richdocuments'; + } + /** + * @return int whether the form should be rather on the top or bottom of + * the admin section. The forms are arranged in ascending order of the + * priority values. It is required to return a value between 0 and 100. + * + * keep the server setting at the top, right after "server settings" + */ + public function getPriority() { + return 0; + } +} diff --git a/lib/Settings/Section.php b/lib/Settings/Section.php new file mode 100644 index 00000000..671293c6 --- /dev/null +++ b/lib/Settings/Section.php @@ -0,0 +1,56 @@ + + * + * @author Lukas Reschke + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OCA\Richdocuments\Settings; + +use OCP\IL10N; +use OCP\Settings\ISection; + +class Section implements ISection { + /** @var IL10N */ + private $l; + /** + * @param IL10N $l + */ + public function __construct(IL10N $l) { + $this->l = $l; + } + /** + * {@inheritdoc} + */ + public function getID() { + return 'richdocuments'; + } + /** + * {@inheritdoc} + */ + public function getName() { + return $this->l->t('Collabora Online'); + } + /** + * {@inheritdoc} + */ + public function getPriority() { + return 75; + } +}