Browse Source

always show correct place holder, mention share by mail only if the share provider is enabled

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
tags/v11.0RC2
Bjoern Schiessle 7 years ago
parent
commit
86b362809b
No account linked to committer's email address

+ 24
- 0
apps/sharebymail/appinfo/app.php View File

@@ -0,0 +1,24 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
*
* @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/>.
*
*/

$settings = new \OCA\ShareByMail\Settings();

\OCP\Util::connectHook('\OCP\Config', 'js', $settings, 'announceShareProvider');

+ 38
- 0
apps/sharebymail/lib/Settings.php View File

@@ -0,0 +1,38 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
*
* @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\ShareByMail;


class Settings {

/**
* announce that the share-by-mail share provider is enabled
*
* @param array $settings
*/
public function announceShareProvider(array $settings) {
$array = json_decode($settings['array']['oc_appconfig'], true);
$array['shareByMailEnabled'] = true;
$settings['array']['oc_appconfig'] = json_encode($array);
}
}

+ 64
- 0
apps/sharebymail/tests/SettingsTest.php View File

@@ -0,0 +1,64 @@
<?php
/**
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
*
* @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\ShareByMail\Tests;


use OCA\ShareByMail\Settings;
use Test\TestCase;

class SettingsTest extends TestCase {

/** @var Settings */
private $instance;

public function setUp() {
parent::setUp();

$this->instance = new Settings();
}

public function testAnnounceShareProvider() {
$before = [
'oc_appconfig' =>
json_encode([
'key1' => 'value1',
'key2' => 'value2'
]),
'oc_foo' => 'oc_bar'
];

$after = [
'oc_appconfig' =>
json_encode([
'key1' => 'value1',
'key2' => 'value2',
'shareByMailEnabled' => true
]),
'oc_foo' => 'oc_bar'
];

$this->instance->announceShareProvider(['array' => &$before]);
$this->assertSame($after, $before);
}

}

+ 1
- 0
core/js/shareconfigmodel.js View File

@@ -25,6 +25,7 @@
isDefaultExpireDateEnforced: oc_appconfig.core.defaultExpireDateEnforced === true,
isDefaultExpireDateEnabled: oc_appconfig.core.defaultExpireDateEnabled === true,
isRemoteShareAllowed: oc_appconfig.core.remoteShareAllowed,
isMailShareAllowed: oc_appconfig.shareByMailEnabled !== undefined,
defaultExpireDate: oc_appconfig.core.defaultExpireDate,
isResharingAllowed: oc_appconfig.core.resharingAllowed,
allowGroupSharing: oc_appconfig.core.allowGroupSharing

+ 24
- 10
core/js/sharedialogview.js View File

@@ -416,19 +416,33 @@
},

_renderSharePlaceholderPart: function () {
var sharePlaceholder = t('core', 'Share with users, or by mail...');
var allowGroupSharing = this.configModel.get('allowGroupSharing');
var allowRemoteSharing = this.configModel.get('isRemoteShareAllowed');
var allowMailSharing = this.configModel.get('isMailShareAllowed');

if (this.configModel.get('allowGroupSharing')) {
if (this.configModel.get('isRemoteShareAllowed')) {
sharePlaceholder = t('core', 'Share with users, groups, remote users, or by mail…');
} else {
sharePlaceholder = t('core', 'Share with users, groups or by mail...');
}
} else if (this.configModel.get('isRemoteShareAllowed')) {
sharePlaceholder = t('core', 'Share with users, remote users or by mail...');
if (!allowGroupSharing && !allowRemoteSharing && allowMailSharing) {
return t('core', 'Share with users or by mail...');
}
if (!allowGroupSharing && allowRemoteSharing && !allowMailSharing) {
return t('core', 'Share with users or remote users...');
}
if (!allowGroupSharing && allowRemoteSharing && allowMailSharing) {
return t('core', 'Share with users, remote users or by mail...');
}
if (allowGroupSharing && !allowRemoteSharing && !allowMailSharing) {
return t('core', 'Share with users or groups...');
}
if (allowGroupSharing && !allowRemoteSharing && allowMailSharing) {
return t('core', 'Share with users, groups or by mail...');
}
if (allowGroupSharing && allowRemoteSharing && !allowMailSharing) {
return t('core', 'Share with users, groups or remote users...');
}
if (allowGroupSharing && allowRemoteSharing && allowMailSharing) {
return t('core', 'Share with users, groups, remote users or by mail...');
}

return sharePlaceholder;
return t('core', 'Share with users...');
},

/**

Loading…
Cancel
Save