--- /dev/null
+<?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');
--- /dev/null
+<?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);
+ }
+}
--- /dev/null
+<?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);
+ }
+
+}
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
},
_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...');
},
/**