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'];
+}
+
+?>
+
+