diff --git a/public/css/style.css b/public/css/style.css index 8d08d10..aa4f65b 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -41,3 +41,14 @@ body { background: var(--calendar-color); border-radius: 2px; } + +/* Special indicator badge */ +.badge.badge-indicator { + height: 16px; + width: 16px; + padding: 0; + border-radius: 50%; +} +.popover .popover-body { + user-select: text; +} diff --git a/public/js/app.js b/public/js/app.js index e9abe2f..e50ee2f 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -57,6 +57,9 @@ $(document).ready(function() { }) document.body.style.setProperty('--calendar-color', $('#calendar_instance_calendarColor').val()); + // Initialize popovers + $('.popover-dismiss').popover() + // Modal to add a sharee on a calendar, catch the click to add the query parameter $('a.add-sharee').click(function(e) { e.preventDefault() diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 612288c..96503ff 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -19,6 +19,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Contracts\Translation\TranslatorInterface; class AdminController extends AbstractController @@ -327,7 +328,7 @@ class AdminController extends AbstractController /** * @Route("/calendars/{username}", name="calendars") */ - public function calendars(string $username) + public function calendars(UrlGeneratorInterface $router, string $username) { $principal = $this->get('doctrine')->getRepository(Principal::class)->findOneByUri(Principal::PREFIX.$username); $allCalendars = $this->get('doctrine')->getRepository(CalendarInstance::class)->findByPrincipalUri(Principal::PREFIX.$username); @@ -337,9 +338,15 @@ class AdminController extends AbstractController $shared = []; foreach ($allCalendars as $calendar) { if (CalendarInstance::ACCESS_OWNER === $calendar->getAccess()) { - $calendars[] = $calendar; + $calendars[] = [ + 'entity' => $calendar, + 'uri' => $router->generate('dav', ['path' => 'calendars/'.$username.'/'.$calendar->getUri()], UrlGeneratorInterface::ABSOLUTE_URL), + ]; } else { - $shared[] = $calendar; + $shared[] = [ + 'entity' => $calendar, + 'uri' => $router->generate('dav', ['path' => 'calendars/'.$username.'/'.$calendar->getUri()], UrlGeneratorInterface::ABSOLUTE_URL), + ]; } } diff --git a/templates/calendars/index.html.twig b/templates/calendars/index.html.twig index 3113ef0..1bc1d1b 100644 --- a/templates/calendars/index.html.twig +++ b/templates/calendars/index.html.twig @@ -8,10 +8,12 @@

{{ "calendars.for"|trans({'who': principal.displayName}) }} + {{ "calendars.new"|trans }}

-{% for calendar in calendars %} -
+{% for compoundObject in calendars %} + {% set calendar = compoundObject.entity %} + {% set davUri = compoundObject.uri %} +
-
{{ calendar.displayName }}  
+
{{ calendar.displayName }}  
✎ {{ "edit"|trans }} @@ -40,8 +42,10 @@

{{ "calendars.shared.with"|trans({'who': principal.displayName}) }}

- {% for calendar in shared %} -
+ {% for compoundObject in shared %} + {% set calendar = compoundObject.entity %} + {% set davUri = compoundObject.uri %} +
{{ calendar.displayName }} @@ -50,7 +54,7 @@ {% else %} {{ ('calendar.share_access.' ~ calendar.access)|trans }} {% endif %} -   +  
✎ {{ "edit"|trans }} diff --git a/translations/messages+intl-icu.en.xlf b/translations/messages+intl-icu.en.xlf index f968cea..aad4490 100644 --- a/translations/messages+intl-icu.en.xlf +++ b/translations/messages+intl-icu.en.xlf @@ -165,6 +165,10 @@ calendars.component.todos Todos + + calendars.setup.title + Setup information + calendars.component.notes Notes