From 4a6cea7767fd4dbf5648a4b8abd7d5f8af762218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 24 May 2017 23:45:18 +0200 Subject: [PATCH 1/8] get rid of FederatedShareProvider dependency --- apps/federatedfilesharing/appinfo/app.php | 6 +++ apps/federatedfilesharing/js/public.js | 10 +++++ apps/federatedfilesharing/lib/HookHandler.php | 37 +++++++++++++++++++ apps/files_sharing/js/public.js | 10 ++--- .../lib/Controllers/ShareController.php | 12 +----- apps/files_sharing/templates/public.php | 16 +------- 6 files changed, 62 insertions(+), 29 deletions(-) create mode 100644 apps/federatedfilesharing/js/public.js create mode 100644 apps/federatedfilesharing/lib/HookHandler.php diff --git a/apps/federatedfilesharing/appinfo/app.php b/apps/federatedfilesharing/appinfo/app.php index 885b2be699cc..dfacb64ae59f 100644 --- a/apps/federatedfilesharing/appinfo/app.php +++ b/apps/federatedfilesharing/appinfo/app.php @@ -2,6 +2,7 @@ /** * @author Björn Schießle * @author Joas Schilling + * @author Jörn Friedrich Dreyer * * @copyright Copyright (c) 2017, ownCloud GmbH * @license AGPL-3.0 @@ -36,3 +37,8 @@ 'name' => $l->t('Federated sharing'), ]; }); + +// add 'Add to your ownCloud' button to public pages +// FIXME the OCA\Files::loadAdditionalScripts event is only fired by the ViewController of the files app ... but we are nowadays using webdav. +// FIXME versions, comments, tags and sharing ui still uses it https://github.com/owncloud/core/search?utf8=%E2%9C%93&q=loadAdditionalScripts&type= +OCP\Util::connectHook('OCP\Share', 'share_link_access', 'OCA\FederatedFileSharing\HookHandler', 'loadPublicJS'); diff --git a/apps/federatedfilesharing/js/public.js b/apps/federatedfilesharing/js/public.js new file mode 100644 index 000000000000..9959c5536288 --- /dev/null +++ b/apps/federatedfilesharing/js/public.js @@ -0,0 +1,10 @@ +$(document).ready(function() { + $('#header #details').prepend( + '' + + ' ' + + ' ' + + ''); +}); diff --git a/apps/federatedfilesharing/lib/HookHandler.php b/apps/federatedfilesharing/lib/HookHandler.php new file mode 100644 index 000000000000..30f41ef51967 --- /dev/null +++ b/apps/federatedfilesharing/lib/HookHandler.php @@ -0,0 +1,37 @@ + + * + * @copyright Copyright (c) 2017, ownCloud GmbH + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * 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, version 3, + * along with this program. If not, see + * + */ + +namespace OCA\FederatedFileSharing; + +/** + * Class HookHandler + * + * handles hooks + * + * @package OCA\FederatedFileSharing + */ +class HookHandler { + + public static function loadPublicJS () { + \OCP\Util::addScript('federatedfilesharing', 'public'); + } + +} diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index b451a16b7e79..2864c19b6fd6 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -261,10 +261,10 @@ OCA.Sharing.PublicApp = { var remote = $(this).find('input[type="text"]').val(); var token = $('#sharingToken').val(); - var owner = $('#save').data('owner'); - var ownerDisplayName = $('#save').data('owner-display-name'); - var name = $('#save').data('name'); - var isProtected = $('#save').data('protected') ? 1 : 0; + var owner = $('#header').data('owner'); + var ownerDisplayName = $('#header').data('owner-display-name'); + var name = $('#header').data('name'); + var isProtected = $('#header').data('protected') ? 1 : 0; OCA.Sharing.PublicApp._saveToOwnCloud(remote, token, owner, ownerDisplayName, name, isProtected); }); @@ -335,7 +335,7 @@ OCA.Sharing.PublicApp = { if(remote.substr(-1) !== '/') { remote += '/' - }; + } var url = remote + 'index.php/apps/files#' + 'remote=' + encodeURIComponent(location) // our location is the remote for the other server + "&token=" + encodeURIComponent(token) + "&owner=" + encodeURIComponent(owner) +"&ownerDisplayName=" + encodeURIComponent(ownerDisplayName) + "&name=" + encodeURIComponent(name) + "&protected=" + isProtected; diff --git a/apps/files_sharing/lib/Controllers/ShareController.php b/apps/files_sharing/lib/Controllers/ShareController.php index 51c6c909344b..08b79ad9ff69 100644 --- a/apps/files_sharing/lib/Controllers/ShareController.php +++ b/apps/files_sharing/lib/Controllers/ShareController.php @@ -4,6 +4,7 @@ * @author Björn Schießle * @author Georg Ehrke * @author Joas Schilling + * @author Jörn Friedrich Dreyer * @author Lukas Reschke * @author Morris Jobke * @author Piotr Filiciak @@ -34,7 +35,6 @@ use OC; use OC_Files; use OC_Util; -use OCA\FederatedFileSharing\FederatedShareProvider; use OCP; use OCP\Template; use OCP\Share; @@ -49,8 +49,6 @@ use OCP\IUserManager; use OCP\ISession; use OCP\IPreview; -use OCA\Files_Sharing\Helper; -use OCP\Util; use OCA\Files_Sharing\Activity; use \OCP\Files\NotFoundException; use OCP\Files\IRootFolder; @@ -81,8 +79,6 @@ class ShareController extends Controller { protected $previewManager; /** @var IRootFolder */ protected $rootFolder; - /** @var FederatedShareProvider */ - protected $federatedShareProvider; /** * @param string $appName @@ -96,7 +92,6 @@ class ShareController extends Controller { * @param ISession $session * @param IPreview $previewManager * @param IRootFolder $rootFolder - * @param FederatedShareProvider $federatedShareProvider */ public function __construct($appName, IRequest $request, @@ -108,8 +103,7 @@ public function __construct($appName, \OCP\Share\IManager $shareManager, ISession $session, IPreview $previewManager, - IRootFolder $rootFolder, - FederatedShareProvider $federatedShareProvider) { + IRootFolder $rootFolder) { parent::__construct($appName, $request); $this->config = $config; @@ -121,7 +115,6 @@ public function __construct($appName, $this->session = $session; $this->previewManager = $previewManager; $this->rootFolder = $rootFolder; - $this->federatedShareProvider = $federatedShareProvider; } /** @@ -307,7 +300,6 @@ public function showShare($token, $path = '') { $shareTmpl['previewSupported'] = $this->previewManager->isMimeSupported($share->getNode()->getMimetype()); $shareTmpl['dirToken'] = $token; $shareTmpl['sharingToken'] = $token; - $shareTmpl['server2serversharing'] = $this->federatedShareProvider->isOutgoingServer2serverShareEnabled(); $shareTmpl['protected'] = $share->getPassword() !== null ? 'true' : 'false'; $shareTmpl['dir'] = ''; $shareTmpl['nonHumanFileSize'] = $share->getNode()->getSize(); diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index 762f7653ea96..0f2a05bf41cd 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -51,9 +51,9 @@ -
-