diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2021-05-27 14:39:03 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2021-05-30 10:28:57 +0200 |
commit | 388245c9a55ad34464f125166bb07c7639701559 (patch) | |
tree | d615a16020bc35d626660b14e18c2ac78c2de7b1 | |
parent | cbcd13d3f9bef27b167624200ee2f4c13df8f3b6 (diff) |
Add dedicated direct route and fix old contacts route
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
-rw-r--r-- | appinfo/routes.php | 3 | ||||
-rw-r--r-- | lib/ContactsMenu/Providers/DetailsProvider.php | 8 | ||||
-rw-r--r-- | lib/Controller/ContactsController.php | 15 |
3 files changed, 22 insertions, 4 deletions
diff --git a/appinfo/routes.php b/appinfo/routes.php index 88f430cc..21ab8853 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -23,7 +23,8 @@ return [ 'routes' => [ - ['name' => 'contacts#direct', 'url' => '/direct/{contact}', 'verb' => 'GET'], + ['name' => 'contacts#direct', 'url' => '/direct/contact/{contact}', 'verb' => 'GET'], + ['name' => 'contacts#directcircle', 'url' => '/direct/circle/{singleId}', 'verb' => 'GET'], ['name' => 'page#index', 'url' => '/', 'verb' => 'GET'], ['name' => 'page#index', 'url' => '/{group}', 'verb' => 'GET', 'postfix' => 'group'], ['name' => 'page#index', 'url' => '/{group}/{contact}', 'verb' => 'GET', 'postfix' => 'group.contact'], diff --git a/lib/ContactsMenu/Providers/DetailsProvider.php b/lib/ContactsMenu/Providers/DetailsProvider.php index 1cc7fdc9..cb8ac217 100644 --- a/lib/ContactsMenu/Providers/DetailsProvider.php +++ b/lib/ContactsMenu/Providers/DetailsProvider.php @@ -117,10 +117,12 @@ class DetailsProvider implements IProvider { $addressBookUri = $this->getAddressBookUri($entry->getProperty('addressbook-key')); $iconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/info.svg')); - $url = $this->l10n->t('All contacts') . '/' . $uid . '~' . $addressBookUri; - $frontControllerActive = ($this->config->getSystemValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true'); - $contactsUrl = $this->urlGenerator->getAbsoluteURL(($frontControllerActive ? '' : '/index.php') . '/apps/contacts/' . $url); + $contactsUrl = $this->urlGenerator->getAbsoluteURL( + $this->urlGenerator->linkToRoute('contacts.contacts.direct', [ + 'contact' => $uid . '~' . $addressBookUri + ]) + ); $action = $this->actionFactory->newLinkAction($iconUrl, $this->l10n->t('Details'), $contactsUrl); $action->setPriority(0); diff --git a/lib/Controller/ContactsController.php b/lib/Controller/ContactsController.php index 0404c3ac..061bed31 100644 --- a/lib/Controller/ContactsController.php +++ b/lib/Controller/ContactsController.php @@ -61,4 +61,19 @@ class ContactsController extends Controller { ); return new RedirectResponse($url); } + + + /** + * @NoAdminRequired + * @NoCSRFRequired + * + * Open and find direct circle + * @param string $uuid + */ + public function directCircle(string $singleId): RedirectResponse { + $url = $this->urlGenerator->getAbsoluteURL( + $this->urlGenerator->linkToRoute('contacts.page.index') . 'circle/' . $singleId + ); + return new RedirectResponse($url); + } } |