From 158d78e1abf150faf122ae91a9965605a413ffe5 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Sat, 13 Aug 2016 00:59:04 +0200 Subject: [PATCH] move mail settings and file handling to additional ones, thus files_external gets its own section --- apps/files/appinfo/info.xml | 1 - apps/files/lib/Settings/Admin.php | 2 +- apps/files_external/appinfo/info.xml | 1 + apps/files_external/lib/Settings/Admin.php | 2 +- .../lib/Settings/Section.php | 6 +- lib/private/Settings/Admin/Additional.php | 86 +++++++++++ lib/private/Settings/Admin/Server.php | 13 -- lib/private/Settings/Manager.php | 5 + .../Controller/AdminSettingsController.php | 14 +- settings/templates/admin/additional-mail.php | 140 ++++++++++++++++++ settings/templates/admin/additional.php | 13 +- settings/templates/admin/server.php | 111 -------------- 12 files changed, 249 insertions(+), 145 deletions(-) rename apps/{files => files_external}/lib/Settings/Section.php (93%) create mode 100644 lib/private/Settings/Admin/Additional.php create mode 100644 settings/templates/admin/additional-mail.php diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index c1666af6348..513940f73a9 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -25,6 +25,5 @@ OCA\Files\Settings\Admin - OCA\Files\Settings\Section diff --git a/apps/files/lib/Settings/Admin.php b/apps/files/lib/Settings/Admin.php index d0a691ffe66..9ec23d47517 100644 --- a/apps/files/lib/Settings/Admin.php +++ b/apps/files/lib/Settings/Admin.php @@ -76,7 +76,7 @@ class Admin implements ISettings { * @return string the section ID, e.g. 'sharing' */ public function getSection() { - return 'files'; + return 'additional'; } /** diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml index cd52c39b30e..60131759880 100644 --- a/apps/files_external/appinfo/info.xml +++ b/apps/files_external/appinfo/info.xml @@ -27,5 +27,6 @@ OCA\Files_External\Settings\Admin + OCA\Files_External\Settings\Section diff --git a/apps/files_external/lib/Settings/Admin.php b/apps/files_external/lib/Settings/Admin.php index 102680d0341..54711443f89 100644 --- a/apps/files_external/lib/Settings/Admin.php +++ b/apps/files_external/lib/Settings/Admin.php @@ -79,7 +79,7 @@ class Admin implements ISettings { * @return string the section ID, e.g. 'sharing' */ public function getSection() { - return 'files'; + return 'externalstorages'; } /** diff --git a/apps/files/lib/Settings/Section.php b/apps/files_external/lib/Settings/Section.php similarity index 93% rename from apps/files/lib/Settings/Section.php rename to apps/files_external/lib/Settings/Section.php index 0a1ddcab6fd..4b4bac93d29 100644 --- a/apps/files/lib/Settings/Section.php +++ b/apps/files_external/lib/Settings/Section.php @@ -21,7 +21,7 @@ * */ -namespace OCA\Files\Settings; +namespace OCA\Files_External\Settings; use OCP\IL10N; use OCP\Settings\ISection; @@ -41,7 +41,7 @@ class Section implements ISection { * @returns string */ public function getID() { - return 'files'; + return 'externalstorages'; } /** @@ -51,7 +51,7 @@ class Section implements ISection { * @return string */ public function getName() { - return $this->l->t('Files & storages'); + return $this->l->t('External storages'); } /** diff --git a/lib/private/Settings/Admin/Additional.php b/lib/private/Settings/Admin/Additional.php new file mode 100644 index 00000000000..106f0f65b8a --- /dev/null +++ b/lib/private/Settings/Admin/Additional.php @@ -0,0 +1,86 @@ + + * + * @author Arthur Schiwon + * + * @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 OC\Settings\Admin; + +use Doctrine\DBAL\Connection; +use Doctrine\DBAL\DBALException; +use Doctrine\DBAL\Platforms\SqlitePlatform; +use OC\Lock\DBLockingProvider; +use OC\Lock\NoopLockingProvider; +use OCP\AppFramework\Http\TemplateResponse; +use OCP\IConfig; +use OCP\IDBConnection; +use OCP\IL10N; +use OCP\Lock\ILockingProvider; +use OCP\Settings\ISettings; + +class Additional implements ISettings { + + /** @var IConfig */ + private $config; + + public function __construct(IConfig $config) { + $this->config = $config; + } + + /** + * @return TemplateResponse + */ + public function getForm() { + $parameters = [ + // Mail + 'sendmail_is_available' => (bool) \OC_Helper::findBinaryPath('sendmail'), + 'mail_domain' => $this->config->getSystemValue('mail_domain', ''), + 'mail_from_address' => $this->config->getSystemValue('mail_from_address', ''), + 'mail_smtpmode' => $this->config->getSystemValue('mail_smtpmode', ''), + 'mail_smtpsecure' => $this->config->getSystemValue('mail_smtpsecure', ''), + 'mail_smtphost' => $this->config->getSystemValue('mail_smtphost', ''), + 'mail_smtpport' => $this->config->getSystemValue('mail_smtpport', ''), + 'mail_smtpauthtype' => $this->config->getSystemValue('mail_smtpauthtype', ''), + 'mail_smtpauth' => $this->config->getSystemValue('mail_smtpauth', false), + 'mail_smtpname' => $this->config->getSystemValue('mail_smtpname', ''), + 'mail_smtppassword' => $this->config->getSystemValue('mail_smtppassword', ''), + ]; + + return new TemplateResponse('settings', 'admin/additional-mail', $parameters, ''); + } + + /** + * @return string the section ID, e.g. 'sharing' + */ + public function getSection() { + return 'additional'; + } + + /** + * @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. + * + * E.g.: 70 + */ + public function getPriority() { + return 0; + } +} diff --git a/lib/private/Settings/Admin/Server.php b/lib/private/Settings/Admin/Server.php index 0c72983a887..20c3a6d7557 100644 --- a/lib/private/Settings/Admin/Server.php +++ b/lib/private/Settings/Admin/Server.php @@ -119,19 +119,6 @@ class Server implements ISettings { 'cron_log' => $this->config->getSystemValue('cron_log', true), 'lastcron' => $this->config->getAppValue('core', 'lastcron', false), 'cronErrors' => $this->config->getAppValue('core', 'cronErrors'), - - // Mail - 'sendmail_is_available' => (bool) \OC_Helper::findBinaryPath('sendmail'), - 'mail_domain' => $this->config->getSystemValue('mail_domain', ''), - 'mail_from_address' => $this->config->getSystemValue('mail_from_address', ''), - 'mail_smtpmode' => $this->config->getSystemValue('mail_smtpmode', ''), - 'mail_smtpsecure' => $this->config->getSystemValue('mail_smtpsecure', ''), - 'mail_smtphost' => $this->config->getSystemValue('mail_smtphost', ''), - 'mail_smtpport' => $this->config->getSystemValue('mail_smtpport', ''), - 'mail_smtpauthtype' => $this->config->getSystemValue('mail_smtpauthtype', ''), - 'mail_smtpauth' => $this->config->getSystemValue('mail_smtpauth', false), - 'mail_smtpname' => $this->config->getSystemValue('mail_smtpname', ''), - 'mail_smtppassword' => $this->config->getSystemValue('mail_smtppassword', ''), ]; return new TemplateResponse('settings', 'admin/server', $parameters, ''); diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 21400a9805a..fd360ede7f0 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -308,6 +308,11 @@ class Manager implements IManager { $form = new Admin\Logging($this->config); $forms[$form->getPriority()] = [$form]; } + if($section === 'additional') { + /** @var ISettings $form */ + $form = new Admin\Additional($this->config); + $forms[$form->getPriority()] = [$form]; + } if($section === 'tips-tricks') { /** @var ISettings $form */ $form = new Admin\TipsTricks($this->config); diff --git a/settings/Controller/AdminSettingsController.php b/settings/Controller/AdminSettingsController.php index 3efe481ca9e..3954497443b 100644 --- a/settings/Controller/AdminSettingsController.php +++ b/settings/Controller/AdminSettingsController.php @@ -34,6 +34,7 @@ use OCP\INavigationManager; use OCP\IRequest; use OCP\IUserManager; use OCP\Settings\IManager as ISettingsManager; +use OCP\Template; /** * @package OC\Settings\Controller @@ -83,12 +84,8 @@ class AdminSettingsController extends Controller { } private function getSettings($section) { - if($section === 'additional') { - return $this->getLegacyForms(); - } - - $settings = $this->settingsManager->getAdminSettings($section); $html = ''; + $settings = $this->settingsManager->getAdminSettings($section); foreach ($settings as $prioritizedSettings) { foreach ($prioritizedSettings as $setting) { /** @var \OCP\Settings\ISettings $setting */ @@ -96,6 +93,9 @@ class AdminSettingsController extends Controller { $html .= $form->renderAs('')->render(); } } + if($section === 'additional') { + $html .= $this->getLegacyForms(); + } return ['content' => $html]; } @@ -120,10 +120,10 @@ class AdminSettingsController extends Controller { ); }, $forms); - $out = new \OCP\Template('settings', 'admin/additional'); + $out = new Template('settings', 'admin/additional'); $out->assign('forms', $forms); - return ['content' => $out->fetchPage()]; + return $out->fetchPage(); } /** diff --git a/settings/templates/admin/additional-mail.php b/settings/templates/admin/additional-mail.php new file mode 100644 index 00000000000..88eec421ec5 --- /dev/null +++ b/settings/templates/admin/additional-mail.php @@ -0,0 +1,140 @@ + + * + * @author Arthur Schiwon + * + * @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 . + * + */ + +/** @var \OCP\IL10N $l */ +/** @var array $_ */ + +$mail_smtpauthtype = [ + '' => $l->t('None'), + 'LOGIN' => $l->t('Login'), + 'PLAIN' => $l->t('Plain'), + 'NTLM' => $l->t('NT LAN Manager'), +]; + +$mail_smtpsecure = [ + '' => $l->t('None'), + 'ssl' => $l->t('SSL'), + 'tls' => $l->t('TLS'), +]; + +$mail_smtpmode = [ + ['php', 'PHP'], + ['smtp', 'SMTP'], +]; +if ($_['sendmail_is_available']) { + $mail_smtpmode[] = ['sendmail', 'Sendmail']; +} +if ($_['mail_smtpmode'] == 'qmail') { + $mail_smtpmode[] = ['qmail', 'qmail']; +} + +?> + +
+
+

t('Email server'));?>

+ + +

t('This is used for sending out notifications.')); ?>

+ +

+ + + + + +

+ +

+ + ' />@ + ' /> +

+ + + + +
+
+ +
+ +
+ t( 'Test email settings' )); ?> + + +
+ diff --git a/settings/templates/admin/additional.php b/settings/templates/admin/additional.php index c4e70dbddb2..2ad2c5af4e5 100644 --- a/settings/templates/admin/additional.php +++ b/settings/templates/admin/additional.php @@ -26,11 +26,8 @@ ?> -
-

t('Additional Settings'));?>

- -
- -
+ +
+ diff --git a/settings/templates/admin/server.php b/settings/templates/admin/server.php index 1e24043b3dc..a15705a90e2 100644 --- a/settings/templates/admin/server.php +++ b/settings/templates/admin/server.php @@ -24,29 +24,6 @@ /** @var \OCP\IL10N $l */ /** @var array $_ */ -$mail_smtpauthtype = [ - '' => $l->t('None'), - 'LOGIN' => $l->t('Login'), - 'PLAIN' => $l->t('Plain'), - 'NTLM' => $l->t('NT LAN Manager'), -]; - -$mail_smtpsecure = [ - '' => $l->t('None'), - 'ssl' => $l->t('SSL'), - 'tls' => $l->t('TLS'), -]; - -$mail_smtpmode = [ - ['php', 'PHP'], - ['smtp', 'SMTP'], -]; -if ($_['sendmail_is_available']) { - $mail_smtpmode[] = ['sendmail', 'Sendmail']; -} -if ($_['mail_smtpmode'] == 'qmail') { - $mail_smtpmode[] = ['qmail', 'qmail']; -} ?>
@@ -230,94 +207,6 @@ if ($_['mail_smtpmode'] == 'qmail') {

-
-
-

t('Email server'));?>

- - -

t('This is used for sending out notifications.')); ?>

- -

- - - - - -

- -

- - ' />@ - ' /> -

- - - - -
-
- -
- -
- t( 'Test email settings' )); ?> - - -
-

t('Version'));?>