Loading tailwind.config.cjs +2 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ module.exports = { content: { chevronRightIcon: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M13.17 12 8.22 7.05l1.42-1.41L16 12l-6.36 6.36-1.42-1.41L13.17 12Z'/%3E%3C/svg%3E%0A\")", prohibitedIcon: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M7.0943 5.68009L18.3199 16.9057C19.3736 15.5506 20 13.8491 20 12C20 7.58172 16.4183 4 12 4C10.1509 4 8.44939 4.62644 7.0943 5.68009ZM16.9057 18.3199L5.68009 7.0943C4.62644 8.44939 4 10.1509 4 12C4 16.4183 7.58172 20 12 20C13.8491 20 15.5506 19.3736 16.9057 18.3199ZM4.92893 4.92893C6.73748 3.12038 9.23885 2 12 2C17.5228 2 22 6.47715 22 12C22 14.7611 20.8796 17.2625 19.0711 19.0711C17.2625 20.8796 14.7611 22 12 22C6.47715 22 2 17.5228 2 12C2 9.23885 3.12038 6.73748 4.92893 4.92893Z'/%3E%3C/svg%3E%0A\")", }, fontFamily: { sans: ["Inter", ...defaultTheme.fontFamily.sans], Loading themes/cp_admin/_partials/_nav_menu.php +13 −2 Original line number Diff line number Diff line Loading @@ -27,11 +27,22 @@ <ul class="flex flex-col pb-4"> <?php foreach ($data['items'] as $item): $isActive = $item === $activeItem; $isAllowed = true; if (array_key_exists('items-permissions', $data) && array_key_exists($item, $data['items-permissions'])) { if (isset($podcastId)) { $isAllowed = can_podcast(auth()->user(), $podcastId, $data['items-permissions'][$item]); } else { $isAllowed = auth()->user()->can($data['items-permissions'][$item]); } } ?> <li class="inline-flex"> <a class="relative w-full py-3 pl-14 pr-2 text-sm hover:opacity-100 before:content-chevronRightIcon before:absolute before:-ml-5 before:opacity-0 before:w-5 before:h-5 hover:bg-navigation-active focus:ring-inset focus:ring-accent<?= $isActive <a class="relative w-full py-3 pl-14 pr-2 text-sm hover:opacity-100 before:absolute before:opacity-0 before:w-5 before:h-5 hover:bg-navigation-active focus:ring-inset focus:ring-accent<?= $isActive ? ' before:opacity-100 font-semibold inline-flex items-center' : ' hover:before:opacity-60 focus:before:opacity-60' ?>" href="<?= route_to($item, $podcastId ?? null, $episodeId ?? null) ?>"><?= lang( : ' hover:before:opacity-60 focus:before:opacity-60' ?><?= $isAllowed ? ' before:content-chevronRightIcon before:-ml-5' : ' before:content-prohibitedIcon before:-ml-6 before:opacity-60 pointer-events-none' ?>" href="<?= route_to($item, $podcastId ?? null, $episodeId ?? null) ?>"><?= lang( $langKey . '.' . $item, ) ?></a> </li> Loading themes/cp_admin/_sidebar.php +38 −12 Original line number Diff line number Diff line Loading @@ -13,12 +13,21 @@ $navigation = [ 'podcasts' => [ 'icon' => 'mic', 'items' => ['podcast-list', 'podcast-create', 'all-podcast-imports', 'podcast-imports-add'], 'items-permissions' => [ 'podcast-create' => 'podcasts.create', 'all-podcast-imports' => 'podcasts.import', 'podcast-imports-add' => 'podcasts.import', ], 'add-cta' => 'podcast-create', 'count-route' => 'podcast-list', ], 'persons' => [ 'icon' => 'folder-user', 'items' => ['person-list', 'person-create'], 'items-permissions' => [ 'person-list' => 'persons.manage', 'person-create' => 'persons.manage', ], 'add-cta' => 'person-create', 'count' => (new PersonModel())->countAllResults(), 'count-route' => 'person-list', Loading @@ -26,10 +35,18 @@ $navigation = [ 'fediverse' => [ 'icon' => 'rocket-tilted', 'items' => ['fediverse-blocked-actors', 'fediverse-blocked-domains'], 'items-permissions' => [ 'fediverse-blocked-actors' => 'fediverse.manage-blocks', 'fediverse-blocked-domains' => 'fediverse.manage-blocks', ], ], 'users' => [ 'icon' => 'group', 'items' => ['user-list', 'user-create'], 'items-permissions' => [ 'user-list' => 'users.manage', 'user-create' => 'users.manage', ], 'add-cta' => 'user-create', 'count' => (new UserModel())->countAllResults(), 'count-route' => 'user-list', Loading @@ -37,6 +54,10 @@ $navigation = [ 'pages' => [ 'icon' => 'pages', 'items' => ['page-list', 'page-create'], 'items-permissions' => [ 'page-list' => 'pages.manage', 'page-create' => 'pages.manage', ], 'add-cta' => 'page-create', 'count' => (new PageModel())->countAllResults(), 'count-route' => 'page-list', Loading @@ -44,6 +65,11 @@ $navigation = [ 'settings' => [ 'icon' => 'settings', 'items' => ['settings-general', 'settings-theme', 'admin-about'], 'items-permissions' => [ 'settings-general' => 'admin.settings', 'settings-theme' => 'admin.settings', 'admin-about' => 'admin.settings', ], ], ]; Loading themes/cp_admin/episode/_sidebar.php +16 −4 Original line number Diff line number Diff line Loading @@ -4,10 +4,22 @@ $episodeNavigation = [ 'dashboard' => [ 'icon' => 'dashboard', 'items' => ['episode-view', 'episode-edit', 'episode-persons-manage', 'embed-add'], 'items-permissions' => [ 'episode-view' => 'episodes.view', 'episode-edit' => 'episodes.edit', 'episode-persons-manage' => 'episodes.manage-persons', 'embed-add' => 'episodes.edit', ], ], 'clips' => [ 'icon' => 'clapperboard', 'items' => ['video-clips-list', 'video-clips-create', 'soundbites-list', 'soundbites-create'], 'items-permissions' => [ 'video-clips-list' => 'episodes.manage-clips', 'video-clips-create' => 'episodes.manage-clips', 'soundbites-list' => 'episodes.manage-clips', 'soundbites-create' => 'episodes.manage-clips', ], 'count' => $episode->getClipCount(), 'count-route' => 'video-clips-list', 'add-cta' => 'video-clips-create', Loading themes/cp_admin/podcast/_sidebar.php +40 −6 Original line number Diff line number Diff line Loading @@ -4,10 +4,21 @@ $podcastNavigation = [ 'dashboard' => [ 'icon' => 'dashboard', 'items' => ['podcast-view', 'podcast-edit', 'podcast-persons-manage', 'podcast-imports', 'podcast-imports-sync'], 'items-permissions' => [ 'podcast-view' => 'view', 'podcast-edit' => 'edit', 'podcast-persons-manage' => 'manage-persons', 'podcast-imports' => 'manage-import', 'podcast-imports-sync' => 'manage-import', ], ], 'episodes' => [ 'icon' => 'play-circle', 'items' => ['episode-list', 'episode-create'], 'items-permissions' => [ 'episode-list' => 'episodes.view', 'episode-create' => 'episodes.create', ], 'add-cta' => 'episode-create', 'count' => $podcast->getEpisodesCount(), 'count-route' => 'episode-list', Loading @@ -23,6 +34,15 @@ $podcastNavigation = [ 'podcast-analytics-time-periods', 'podcast-analytics-webpages', ], 'items-permissions' => [ 'podcast-analytics' => 'view', 'podcast-analytics-unique-listeners' => 'view', 'podcast-analytics-listening-time' => 'view', 'podcast-analytics-players' => 'view', 'podcast-analytics-locations' => 'view', 'podcast-analytics-time-periods' => 'view', 'podcast-analytics-webpages' => 'view', ], ], 'broadcast' => [ 'icon' => 'broadcast', Loading @@ -30,6 +50,10 @@ $podcastNavigation = [ 'platforms-podcasting', 'platforms-social', ], 'items-permissions' => [ 'platforms-podcasting' => 'manage-platforms', 'platforms-social' => 'manage-platforms', ], ], 'monetization' => [ 'icon' => 'money-dollar-circle', Loading @@ -39,10 +63,20 @@ $podcastNavigation = [ 'platforms-funding', 'podcast-monetization-other', ], 'items-permissions' => [ 'subscription-list' => 'manage-subscriptions', 'subscription-create' => 'manage-subscriptions', 'platforms-funding' => 'manage-platforms', 'podcast-monetization-other' => 'edit', ], ], 'contributors' => [ 'icon' => 'group', 'items' => ['contributor-list', 'contributor-add'], 'items-permissions' => [ 'contributor-list' => 'manage-contributors', 'contributor-add' => 'manage-contributors', ], 'add-cta' => 'contributor-add', 'count' => count($podcast->contributors), 'count-route' => 'contributor-list', Loading Loading
tailwind.config.cjs +2 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ module.exports = { content: { chevronRightIcon: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M13.17 12 8.22 7.05l1.42-1.41L16 12l-6.36 6.36-1.42-1.41L13.17 12Z'/%3E%3C/svg%3E%0A\")", prohibitedIcon: "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 24 24'%3E%3Cpath d='M7.0943 5.68009L18.3199 16.9057C19.3736 15.5506 20 13.8491 20 12C20 7.58172 16.4183 4 12 4C10.1509 4 8.44939 4.62644 7.0943 5.68009ZM16.9057 18.3199L5.68009 7.0943C4.62644 8.44939 4 10.1509 4 12C4 16.4183 7.58172 20 12 20C13.8491 20 15.5506 19.3736 16.9057 18.3199ZM4.92893 4.92893C6.73748 3.12038 9.23885 2 12 2C17.5228 2 22 6.47715 22 12C22 14.7611 20.8796 17.2625 19.0711 19.0711C17.2625 20.8796 14.7611 22 12 22C6.47715 22 2 17.5228 2 12C2 9.23885 3.12038 6.73748 4.92893 4.92893Z'/%3E%3C/svg%3E%0A\")", }, fontFamily: { sans: ["Inter", ...defaultTheme.fontFamily.sans], Loading
themes/cp_admin/_partials/_nav_menu.php +13 −2 Original line number Diff line number Diff line Loading @@ -27,11 +27,22 @@ <ul class="flex flex-col pb-4"> <?php foreach ($data['items'] as $item): $isActive = $item === $activeItem; $isAllowed = true; if (array_key_exists('items-permissions', $data) && array_key_exists($item, $data['items-permissions'])) { if (isset($podcastId)) { $isAllowed = can_podcast(auth()->user(), $podcastId, $data['items-permissions'][$item]); } else { $isAllowed = auth()->user()->can($data['items-permissions'][$item]); } } ?> <li class="inline-flex"> <a class="relative w-full py-3 pl-14 pr-2 text-sm hover:opacity-100 before:content-chevronRightIcon before:absolute before:-ml-5 before:opacity-0 before:w-5 before:h-5 hover:bg-navigation-active focus:ring-inset focus:ring-accent<?= $isActive <a class="relative w-full py-3 pl-14 pr-2 text-sm hover:opacity-100 before:absolute before:opacity-0 before:w-5 before:h-5 hover:bg-navigation-active focus:ring-inset focus:ring-accent<?= $isActive ? ' before:opacity-100 font-semibold inline-flex items-center' : ' hover:before:opacity-60 focus:before:opacity-60' ?>" href="<?= route_to($item, $podcastId ?? null, $episodeId ?? null) ?>"><?= lang( : ' hover:before:opacity-60 focus:before:opacity-60' ?><?= $isAllowed ? ' before:content-chevronRightIcon before:-ml-5' : ' before:content-prohibitedIcon before:-ml-6 before:opacity-60 pointer-events-none' ?>" href="<?= route_to($item, $podcastId ?? null, $episodeId ?? null) ?>"><?= lang( $langKey . '.' . $item, ) ?></a> </li> Loading
themes/cp_admin/_sidebar.php +38 −12 Original line number Diff line number Diff line Loading @@ -13,12 +13,21 @@ $navigation = [ 'podcasts' => [ 'icon' => 'mic', 'items' => ['podcast-list', 'podcast-create', 'all-podcast-imports', 'podcast-imports-add'], 'items-permissions' => [ 'podcast-create' => 'podcasts.create', 'all-podcast-imports' => 'podcasts.import', 'podcast-imports-add' => 'podcasts.import', ], 'add-cta' => 'podcast-create', 'count-route' => 'podcast-list', ], 'persons' => [ 'icon' => 'folder-user', 'items' => ['person-list', 'person-create'], 'items-permissions' => [ 'person-list' => 'persons.manage', 'person-create' => 'persons.manage', ], 'add-cta' => 'person-create', 'count' => (new PersonModel())->countAllResults(), 'count-route' => 'person-list', Loading @@ -26,10 +35,18 @@ $navigation = [ 'fediverse' => [ 'icon' => 'rocket-tilted', 'items' => ['fediverse-blocked-actors', 'fediverse-blocked-domains'], 'items-permissions' => [ 'fediverse-blocked-actors' => 'fediverse.manage-blocks', 'fediverse-blocked-domains' => 'fediverse.manage-blocks', ], ], 'users' => [ 'icon' => 'group', 'items' => ['user-list', 'user-create'], 'items-permissions' => [ 'user-list' => 'users.manage', 'user-create' => 'users.manage', ], 'add-cta' => 'user-create', 'count' => (new UserModel())->countAllResults(), 'count-route' => 'user-list', Loading @@ -37,6 +54,10 @@ $navigation = [ 'pages' => [ 'icon' => 'pages', 'items' => ['page-list', 'page-create'], 'items-permissions' => [ 'page-list' => 'pages.manage', 'page-create' => 'pages.manage', ], 'add-cta' => 'page-create', 'count' => (new PageModel())->countAllResults(), 'count-route' => 'page-list', Loading @@ -44,6 +65,11 @@ $navigation = [ 'settings' => [ 'icon' => 'settings', 'items' => ['settings-general', 'settings-theme', 'admin-about'], 'items-permissions' => [ 'settings-general' => 'admin.settings', 'settings-theme' => 'admin.settings', 'admin-about' => 'admin.settings', ], ], ]; Loading
themes/cp_admin/episode/_sidebar.php +16 −4 Original line number Diff line number Diff line Loading @@ -4,10 +4,22 @@ $episodeNavigation = [ 'dashboard' => [ 'icon' => 'dashboard', 'items' => ['episode-view', 'episode-edit', 'episode-persons-manage', 'embed-add'], 'items-permissions' => [ 'episode-view' => 'episodes.view', 'episode-edit' => 'episodes.edit', 'episode-persons-manage' => 'episodes.manage-persons', 'embed-add' => 'episodes.edit', ], ], 'clips' => [ 'icon' => 'clapperboard', 'items' => ['video-clips-list', 'video-clips-create', 'soundbites-list', 'soundbites-create'], 'items-permissions' => [ 'video-clips-list' => 'episodes.manage-clips', 'video-clips-create' => 'episodes.manage-clips', 'soundbites-list' => 'episodes.manage-clips', 'soundbites-create' => 'episodes.manage-clips', ], 'count' => $episode->getClipCount(), 'count-route' => 'video-clips-list', 'add-cta' => 'video-clips-create', Loading
themes/cp_admin/podcast/_sidebar.php +40 −6 Original line number Diff line number Diff line Loading @@ -4,10 +4,21 @@ $podcastNavigation = [ 'dashboard' => [ 'icon' => 'dashboard', 'items' => ['podcast-view', 'podcast-edit', 'podcast-persons-manage', 'podcast-imports', 'podcast-imports-sync'], 'items-permissions' => [ 'podcast-view' => 'view', 'podcast-edit' => 'edit', 'podcast-persons-manage' => 'manage-persons', 'podcast-imports' => 'manage-import', 'podcast-imports-sync' => 'manage-import', ], ], 'episodes' => [ 'icon' => 'play-circle', 'items' => ['episode-list', 'episode-create'], 'items-permissions' => [ 'episode-list' => 'episodes.view', 'episode-create' => 'episodes.create', ], 'add-cta' => 'episode-create', 'count' => $podcast->getEpisodesCount(), 'count-route' => 'episode-list', Loading @@ -23,6 +34,15 @@ $podcastNavigation = [ 'podcast-analytics-time-periods', 'podcast-analytics-webpages', ], 'items-permissions' => [ 'podcast-analytics' => 'view', 'podcast-analytics-unique-listeners' => 'view', 'podcast-analytics-listening-time' => 'view', 'podcast-analytics-players' => 'view', 'podcast-analytics-locations' => 'view', 'podcast-analytics-time-periods' => 'view', 'podcast-analytics-webpages' => 'view', ], ], 'broadcast' => [ 'icon' => 'broadcast', Loading @@ -30,6 +50,10 @@ $podcastNavigation = [ 'platforms-podcasting', 'platforms-social', ], 'items-permissions' => [ 'platforms-podcasting' => 'manage-platforms', 'platforms-social' => 'manage-platforms', ], ], 'monetization' => [ 'icon' => 'money-dollar-circle', Loading @@ -39,10 +63,20 @@ $podcastNavigation = [ 'platforms-funding', 'podcast-monetization-other', ], 'items-permissions' => [ 'subscription-list' => 'manage-subscriptions', 'subscription-create' => 'manage-subscriptions', 'platforms-funding' => 'manage-platforms', 'podcast-monetization-other' => 'edit', ], ], 'contributors' => [ 'icon' => 'group', 'items' => ['contributor-list', 'contributor-add'], 'items-permissions' => [ 'contributor-list' => 'manage-contributors', 'contributor-add' => 'manage-contributors', ], 'add-cta' => 'contributor-add', 'count' => count($podcast->contributors), 'count-route' => 'contributor-list', Loading