diff options
-rw-r--r-- | apps/files/appinfo/info.xml | 1 | ||||
-rw-r--r-- | apps/files/lib/Settings/Admin.php | 2 | ||||
-rw-r--r-- | apps/files_external/appinfo/info.xml | 1 | ||||
-rw-r--r-- | apps/files_external/lib/Settings/Admin.php | 2 | ||||
-rw-r--r-- | apps/files_external/lib/Settings/Section.php (renamed from apps/files/lib/Settings/Section.php) | 6 | ||||
-rw-r--r-- | lib/private/Settings/Admin/Additional.php | 86 | ||||
-rw-r--r-- | lib/private/Settings/Admin/Server.php | 13 | ||||
-rw-r--r-- | lib/private/Settings/Manager.php | 5 | ||||
-rw-r--r-- | settings/Controller/AdminSettingsController.php | 14 | ||||
-rw-r--r-- | settings/templates/admin/additional-mail.php | 140 | ||||
-rw-r--r-- | settings/templates/admin/additional.php | 13 | ||||
-rw-r--r-- | settings/templates/admin/server.php | 111 |
12 files changed, 249 insertions, 145 deletions
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 @@ <settings> <admin>OCA\Files\Settings\Admin</admin> - <admin-section>OCA\Files\Settings\Section</admin-section> </settings> </info> 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 @@ <settings> <admin>OCA\Files_External\Settings\Admin</admin> + <admin-section>OCA\Files_External\Settings\Section</admin-section> </settings> </info> 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 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 @@ +<?php +/** + * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @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 <http://www.gnu.org/licenses/>. + * + */ + +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 @@ +<?php +/** + * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @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 <http://www.gnu.org/licenses/>. + * + */ + +/** @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']; +} + +?> + +<div class="section" id="mail_general_settings"> + <form id="mail_general_settings_form" class="mail_settings"> + <h2><?php p($l->t('Email server'));?></h2> + <a target="_blank" rel="noreferrer" class="icon-info" + title="<?php p($l->t('Open documentation'));?>" + href="<?php p(link_to_docs('admin-email')); ?>"></a> + + <p><?php p($l->t('This is used for sending out notifications.')); ?> <span id="mail_settings_msg" class="msg"></span></p> + + <p> + <label for="mail_smtpmode"><?php p($l->t( 'Send mode' )); ?></label> + <select name='mail_smtpmode' id='mail_smtpmode'> + <?php foreach ($mail_smtpmode as $smtpmode): + $selected = ''; + if ($smtpmode[0] == $_['mail_smtpmode']): + $selected = 'selected="selected"'; + endif; ?> + <option value='<?php p($smtpmode[0])?>' <?php p($selected) ?>><?php p($smtpmode[1]) ?></option> + <?php endforeach;?> + </select> + + <label id="mail_smtpsecure_label" for="mail_smtpsecure" + <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> + <?php p($l->t( 'Encryption' )); ?> + </label> + <select name="mail_smtpsecure" id="mail_smtpsecure" + <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> + <?php foreach ($mail_smtpsecure as $secure => $name): + $selected = ''; + if ($secure == $_['mail_smtpsecure']): + $selected = 'selected="selected"'; + endif; ?> + <option value='<?php p($secure)?>' <?php p($selected) ?>><?php p($name) ?></option> + <?php endforeach;?> + </select> + </p> + + <p> + <label for="mail_from_address"><?php p($l->t( 'From address' )); ?></label> + <input type="text" name='mail_from_address' id="mail_from_address" placeholder="<?php p($l->t('mail'))?>" + value='<?php p($_['mail_from_address']) ?>' />@ + <input type="text" name='mail_domain' id="mail_domain" placeholder="example.com" + value='<?php p($_['mail_domain']) ?>' /> + </p> + + <p id="setting_smtpauth" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> + <label for="mail_smtpauthtype"><?php p($l->t( 'Authentication method' )); ?></label> + <select name='mail_smtpauthtype' id='mail_smtpauthtype'> + <?php foreach ($mail_smtpauthtype as $authtype => $name): + $selected = ''; + if ($authtype == $_['mail_smtpauthtype']): + $selected = 'selected="selected"'; + endif; ?> + <option value='<?php p($authtype)?>' <?php p($selected) ?>><?php p($name) ?></option> + <?php endforeach;?> + </select> + + <input type="checkbox" name="mail_smtpauth" id="mail_smtpauth" class="checkbox" value="1" + <?php if ($_['mail_smtpauth']) print_unescaped('checked="checked"'); ?> /> + <label for="mail_smtpauth"><?php p($l->t( 'Authentication required' )); ?></label> + </p> + + <p id="setting_smtphost" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> + <label for="mail_smtphost"><?php p($l->t( 'Server address' )); ?></label> + <input type="text" name='mail_smtphost' id="mail_smtphost" placeholder="smtp.example.com" + value='<?php p($_['mail_smtphost']) ?>' /> + : + <input type="text" name='mail_smtpport' id="mail_smtpport" placeholder="<?php p($l->t('Port'))?>" + value='<?php p($_['mail_smtpport']) ?>' /> + </p> + </form> + <form class="mail_settings" id="mail_credentials_settings"> + <p id="mail_credentials" <?php if (!$_['mail_smtpauth'] || $_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> + <label for="mail_smtpname"><?php p($l->t( 'Credentials' )); ?></label> + <input type="text" name='mail_smtpname' id="mail_smtpname" placeholder="<?php p($l->t('SMTP Username'))?>" + value='<?php p($_['mail_smtpname']) ?>' /> + <input type="password" name='mail_smtppassword' id="mail_smtppassword" autocomplete="off" + placeholder="<?php p($l->t('SMTP Password'))?>" value='<?php p($_['mail_smtppassword']) ?>' /> + <input id="mail_credentials_settings_submit" type="button" value="<?php p($l->t('Store credentials')) ?>"> + </p> + </form> + + <br /> + <em><?php p($l->t( 'Test email settings' )); ?></em> + <input type="submit" name="sendtestemail" id="sendtestemail" value="<?php p($l->t( 'Send email' )); ?>"/> + <span id="sendtestmail_msg" class="msg"></span> +</div> + 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 @@ ?> -<div class="section" id="additional"> - <h2><?php p($l->t('Additional Settings'));?></h2> - <?php foreach($_['forms'] as $form) { - if (isset($form['form'])) {?> - <div id="<?php isset($form['anchor']) ? p($form['anchor']) : p('');?>"><?php print_unescaped($form['form']);?></div> - <?php } - };?> -</div> +<?php foreach($_['forms'] as $form) { + if (isset($form['form'])) {?> + <div id="<?php isset($form['anchor']) ? p($form['anchor']) : p('');?>"><?php print_unescaped($form['form']);?></div> + <?php } +};?> 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']; -} ?> <div id="security-warning" class="section"> @@ -230,94 +207,6 @@ if ($_['mail_smtpmode'] == 'qmail') { </p> </div> -<div class="section" id="mail_general_settings"> - <form id="mail_general_settings_form" class="mail_settings"> - <h2><?php p($l->t('Email server'));?></h2> - <a target="_blank" rel="noreferrer" class="icon-info" - title="<?php p($l->t('Open documentation'));?>" - href="<?php p(link_to_docs('admin-email')); ?>"></a> - - <p><?php p($l->t('This is used for sending out notifications.')); ?> <span id="mail_settings_msg" class="msg"></span></p> - - <p> - <label for="mail_smtpmode"><?php p($l->t( 'Send mode' )); ?></label> - <select name='mail_smtpmode' id='mail_smtpmode'> - <?php foreach ($mail_smtpmode as $smtpmode): - $selected = ''; - if ($smtpmode[0] == $_['mail_smtpmode']): - $selected = 'selected="selected"'; - endif; ?> - <option value='<?php p($smtpmode[0])?>' <?php p($selected) ?>><?php p($smtpmode[1]) ?></option> - <?php endforeach;?> - </select> - - <label id="mail_smtpsecure_label" for="mail_smtpsecure" - <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <?php p($l->t( 'Encryption' )); ?> - </label> - <select name="mail_smtpsecure" id="mail_smtpsecure" - <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <?php foreach ($mail_smtpsecure as $secure => $name): - $selected = ''; - if ($secure == $_['mail_smtpsecure']): - $selected = 'selected="selected"'; - endif; ?> - <option value='<?php p($secure)?>' <?php p($selected) ?>><?php p($name) ?></option> - <?php endforeach;?> - </select> - </p> - - <p> - <label for="mail_from_address"><?php p($l->t( 'From address' )); ?></label> - <input type="text" name='mail_from_address' id="mail_from_address" placeholder="<?php p($l->t('mail'))?>" - value='<?php p($_['mail_from_address']) ?>' />@ - <input type="text" name='mail_domain' id="mail_domain" placeholder="example.com" - value='<?php p($_['mail_domain']) ?>' /> - </p> - - <p id="setting_smtpauth" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <label for="mail_smtpauthtype"><?php p($l->t( 'Authentication method' )); ?></label> - <select name='mail_smtpauthtype' id='mail_smtpauthtype'> - <?php foreach ($mail_smtpauthtype as $authtype => $name): - $selected = ''; - if ($authtype == $_['mail_smtpauthtype']): - $selected = 'selected="selected"'; - endif; ?> - <option value='<?php p($authtype)?>' <?php p($selected) ?>><?php p($name) ?></option> - <?php endforeach;?> - </select> - - <input type="checkbox" name="mail_smtpauth" id="mail_smtpauth" class="checkbox" value="1" - <?php if ($_['mail_smtpauth']) print_unescaped('checked="checked"'); ?> /> - <label for="mail_smtpauth"><?php p($l->t( 'Authentication required' )); ?></label> - </p> - - <p id="setting_smtphost" <?php if ($_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <label for="mail_smtphost"><?php p($l->t( 'Server address' )); ?></label> - <input type="text" name='mail_smtphost' id="mail_smtphost" placeholder="smtp.example.com" - value='<?php p($_['mail_smtphost']) ?>' /> - : - <input type="text" name='mail_smtpport' id="mail_smtpport" placeholder="<?php p($l->t('Port'))?>" - value='<?php p($_['mail_smtpport']) ?>' /> - </p> - </form> - <form class="mail_settings" id="mail_credentials_settings"> - <p id="mail_credentials" <?php if (!$_['mail_smtpauth'] || $_['mail_smtpmode'] != 'smtp') print_unescaped(' class="hidden"'); ?>> - <label for="mail_smtpname"><?php p($l->t( 'Credentials' )); ?></label> - <input type="text" name='mail_smtpname' id="mail_smtpname" placeholder="<?php p($l->t('SMTP Username'))?>" - value='<?php p($_['mail_smtpname']) ?>' /> - <input type="password" name='mail_smtppassword' id="mail_smtppassword" autocomplete="off" - placeholder="<?php p($l->t('SMTP Password'))?>" value='<?php p($_['mail_smtppassword']) ?>' /> - <input id="mail_credentials_settings_submit" type="button" value="<?php p($l->t('Store credentials')) ?>"> - </p> - </form> - - <br /> - <em><?php p($l->t( 'Test email settings' )); ?></em> - <input type="submit" name="sendtestemail" id="sendtestemail" value="<?php p($l->t( 'Send email' )); ?>"/> - <span id="sendtestmail_msg" class="msg"></span> -</div> - <div class="section"> <!-- should be the last part, so Updater can follow if enabled (it has no heading therefore). --> <h2><?php p($l->t('Version'));?></h2> |