summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2021-05-27 14:39:03 +0200
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2021-05-30 10:28:57 +0200
commit388245c9a55ad34464f125166bb07c7639701559 (patch)
treed615a16020bc35d626660b14e18c2ac78c2de7b1
parentcbcd13d3f9bef27b167624200ee2f4c13df8f3b6 (diff)
Add dedicated direct route and fix old contacts route
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
-rw-r--r--appinfo/routes.php3
-rw-r--r--lib/ContactsMenu/Providers/DetailsProvider.php8
-rw-r--r--lib/Controller/ContactsController.php15
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);
+ }
}