chore: rename cameleer3 to cameleer
Rename Java packages from net.siegeln.cameleer3 to net.siegeln.cameleer, update all references in workflows, Docker configs, docs, and bootstrap. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,10 +5,13 @@ import {
|
||||
TopBar,
|
||||
} from '@cameleer/design-system';
|
||||
import { LayoutDashboard, ShieldCheck, Users, Settings, Shield, Building, ScrollText } from 'lucide-react';
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { useAuth } from '../auth/useAuth';
|
||||
import { useScopes } from '../auth/useScopes';
|
||||
import { useOrgStore } from '../auth/useOrganization';
|
||||
import cameleerLogo from '@cameleer/design-system/assets/cameleer3-logo.svg';
|
||||
import { api } from '../api/client';
|
||||
import type { VendorTenantSummary } from '../types/api';
|
||||
import cameleerLogo from '@cameleer/design-system/assets/cameleer-logo.svg';
|
||||
|
||||
function CameleerLogo() {
|
||||
return (
|
||||
@@ -34,6 +37,12 @@ export function Layout() {
|
||||
const { username } = useOrgStore();
|
||||
|
||||
const isVendor = scopes.has('platform:admin');
|
||||
const { data: vendorTenants } = useQuery<VendorTenantSummary[]>({
|
||||
queryKey: ['vendor', 'tenants'],
|
||||
queryFn: () => api.get('/vendor/tenants'),
|
||||
enabled: isVendor,
|
||||
refetchInterval: 30_000,
|
||||
});
|
||||
const isTenantAdmin = scopes.has('tenant:manage');
|
||||
const onVendorRoute = location.pathname.startsWith('/vendor');
|
||||
// Vendor on vendor routes: show only TENANTS. On tenant routes: show tenant portal too (for debugging).
|
||||
@@ -65,12 +74,25 @@ export function Layout() {
|
||||
>
|
||||
<div
|
||||
style={{ padding: '6px 12px 6px 36px', fontSize: 13, cursor: 'pointer',
|
||||
fontWeight: isActive(location, '/vendor/tenants') ? 600 : 400,
|
||||
color: isActive(location, '/vendor/tenants') ? 'var(--amber)' : 'var(--text-muted)' }}
|
||||
fontWeight: isActive(location, '/vendor/tenants') && !location.pathname.startsWith('/vendor/tenants/') ? 600 : 400,
|
||||
color: isActive(location, '/vendor/tenants') && !location.pathname.startsWith('/vendor/tenants/') ? 'var(--amber)' : 'var(--text-muted)' }}
|
||||
onClick={() => navigate('/vendor/tenants')}
|
||||
>
|
||||
Tenants
|
||||
</div>
|
||||
{vendorTenants?.filter(t => t.status !== 'DELETED').map(t => (
|
||||
<div
|
||||
key={t.id}
|
||||
style={{ padding: '4px 12px 4px 48px', fontSize: 12, cursor: 'pointer',
|
||||
fontWeight: isActive(location, `/vendor/tenants/${t.id}`) ? 600 : 400,
|
||||
color: isActive(location, `/vendor/tenants/${t.id}`) ? 'var(--amber)' : 'var(--text-muted)',
|
||||
whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}
|
||||
onClick={() => navigate(`/vendor/tenants/${t.id}`)}
|
||||
title={t.name}
|
||||
>
|
||||
{t.name}
|
||||
</div>
|
||||
))}
|
||||
<div
|
||||
style={{ padding: '6px 12px 6px 36px', fontSize: 13, cursor: 'pointer',
|
||||
fontWeight: isActive(location, '/vendor/audit') ? 600 : 400,
|
||||
@@ -129,7 +151,7 @@ export function Layout() {
|
||||
|
||||
<Sidebar.Section
|
||||
icon={<Shield size={16} />}
|
||||
label="SSO"
|
||||
label="Security"
|
||||
open={false}
|
||||
active={isActive(location, '/tenant/sso')}
|
||||
onToggle={() => navigate('/tenant/sso')}
|
||||
|
||||
Reference in New Issue
Block a user