Browse Source

Merge pull request #913 from nextcloud/feature/noid/client-links

Add client links to personal settings
pull/922/head
Daniel Calviño Sánchez 8 years ago
committed by GitHub
parent
commit
7ba70a766f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      appinfo/info.xml
  2. 84
      lib/Settings/Personal.php
  3. 43
      templates/settings/personal/clients.php

1
appinfo/info.xml

@ -58,6 +58,7 @@ And in the works for the [coming versions](https://github.com/nextcloud/spreed/m
<admin>OCA\Spreed\Settings\Admin\StunServer</admin>
<admin>OCA\Spreed\Settings\Admin\SignalingServer</admin>
<admin-section>OCA\Spreed\Settings\Admin\Section</admin-section>
<personal>OCA\Spreed\Settings\Personal</personal>
</settings>
<activity>

84
lib/Settings/Personal.php

@ -0,0 +1,84 @@
<?php
/**
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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 OCA\Spreed\Settings;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IConfig;
use OCP\Settings\ISettings;
class Personal implements ISettings {
/** @var IConfig */
private $config;
/** @var \OC_Defaults */
private $defaults;
public function __construct(IConfig $config, \OC_Defaults $defaults) {
$this->config = $config;
$this->defaults = $defaults;
}
/**
* @return TemplateResponse returns the instance with all parameters set, ready to be rendered
* @since 9.1
*/
public function getForm() {
$parameters = [ 'clients' => $this->getClientLinks() ];
return new TemplateResponse('spreed', 'settings/personal/clients', $parameters);
}
/**
* @return string the section ID, e.g. 'sharing'
* @since 9.1
*/
public function getSection() {
return 'sync-clients';
}
/**
* @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
* @since 9.1
*/
public function getPriority() {
return 30;
}
/**
* returns an array containing links to the various clients
*
* @return array
*/
private function getClientLinks() {
$clients = [
'android' => $this->config->getSystemValue('talk_customclient_android', 'https://play.google.com/store/apps/details?id=com.nextcloud.talk2'),
'ios' => $this->config->getSystemValue('talk_customclient_ios', 'https://geo.itunes.apple.com/us/app/nextcloud-talk/id1296825574')
];
return $clients;
}
}

43
templates/settings/personal/clients.php

@ -0,0 +1,43 @@
<?php
/**
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @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\Defaults $theme */
/** @var array $_ */
?>
<div id="clients-talk" class="followupsection clientsbox">
<h2><?php p($l->t('%s Talk on your mobile devices', [$theme->getName()]));?></h2>
<p><?php p($l->t('Join conversations at any time, any where, on any device.')); ?></p>
<div class="clientslinks">
<a href="<?php p($_['clients']['android']); ?>" rel="noreferrer" target="_blank">
<img src="<?php print_unescaped(image_path('core', 'googleplay.png')); ?>"
alt="<?php p($l->t('Android app'));?>" />
</a>
<a href="<?php p($_['clients']['ios']); ?>" rel="noreferrer" target="_blank">
<img src="<?php print_unescaped(image_path('core', 'appstore.svg')); ?>"
alt="<?php p($l->t('iOS app'));?>" />
</a>
</div>
</div>
Loading…
Cancel
Save