Commit 6113d747 authored by Dimitrios Gogos's avatar Dimitrios Gogos
Browse files

feat: update UI elements for improved clarity and navigation, add site footer component

parent 7f009c24
Loading
Loading
Loading
Loading
+2 −2
Changes for portal-gui/index.html: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -2,9 +2,9 @@
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <link rel="icon" type="image/png" href="/src/assets/openop-logo.png" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>vite-app</title>
    <title>OOP Portal</title>
  </head>
  <body>
    <div id="root"></div>
+18 −0
Changes for portal-gui/src/components/common/site-footer.tsx: 18 added lines, 0 removed lines.
Original line number Diff line number Diff line
export function SiteFooter() {
  return (
    <footer
      role="contentinfo"
      className="mt-auto flex shrink-0 flex-wrap items-center justify-between gap-2 border-t px-4 py-3 text-sm text-muted-foreground lg:px-6"
    >
      <span>OOP Portal · Open Operator Platform</span>
      <a
        href="https://labs.etsi.org/rep/oop/code/portal"
        target="_blank"
        rel="noopener noreferrer"
        className="font-medium underline-offset-4 hover:text-foreground hover:underline"
      >
        Source code
      </a>
    </footer>
  );
}
+1 −10
Changes for portal-gui/src/features/apis/api-card.tsx: 1 added line, 10 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@ import { ROUTES } from '@/app/config/route';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import type { ApiCardProps } from '@/types/api';
import { Link } from 'react-router-dom';
import { truncate } from '@/lib/utils';

export function ApiCard({ api }: ApiCardProps) {
  return (
@@ -13,15 +12,7 @@ export function ApiCard({ api }: ApiCardProps) {
          <p className="font-semibold text-primary">{api.category}</p>
        </CardHeader>
        <CardContent className="space-y-4">
          <p className="text-sm">
            <span className="font-semibold">Documented operations:</span>{' '}
            {api.functionalities.length}
          </p>

          <p className="line-clamp-4 text-muted-foreground">
            {' '}
            {truncate(api.description, { by: 'chars', length: 110 })}
          </p>
          <p className="text-muted-foreground">{api.description}</p>
        </CardContent>
      </Card>
    </Link>
+1 −38
Changes for portal-gui/src/features/apis/api-details-page.tsx: 1 added line, 38 removed lines.
Original line number Diff line number Diff line
@@ -39,25 +39,9 @@ export function ApiDetailsPage() {
                    {api.category}
                  </p>
                </div>

                {api.functionalities.length > 0 && (
                  <div className="flex flex-wrap gap-2">
                    {api.functionalities.map((functionality) => (
                      <Badge
                        key={functionality}
                        variant="outline"
                        className="font-normal"
                      >
                        {functionality}
                      </Badge>
                    ))}
                  </div>
                )}
              </div>
            </CardHeader>
            <CardContent className="px-6 py-6">
              <div className="grid gap-8 lg:grid-cols-2">
                <div>
              <h3 className="text-xl font-semibold text-sidebar-primary">
                Description
              </h3>
@@ -67,25 +51,6 @@ export function ApiDetailsPage() {
                  {documentation?.description ?? api.description}
                </Markdown>
              </div>
                </div>

                <div className="border-t pt-6 lg:border-t-0 lg:border-l lg:pt-0 lg:pr-8 lg:pl-8">
                  <h3 className="text-xl font-semibold text-sidebar-primary">
                    Details
                  </h3>

                  <dl className="mt-3 divide-y">
                    <div className="flex items-center justify-between gap-4 py-3 first:pt-0">
                      <dt className="text-sm font-medium text-muted-foreground">
                        Documented operations
                      </dt>
                      <dd className="text-sm font-medium">
                        {api.functionalities.length}
                      </dd>
                    </div>
                  </dl>
                </div>
              </div>
            </CardContent>
          </Card>
          <section className="space-y-4">
@@ -143,9 +108,7 @@ export function ApiDetailsPage() {
                  ) : (
                    api.functionalities.length > 0 && (
                      <div>
                        <h3 className="text-sm font-semibold">
                          Documented operations
                        </h3>
                        <h3 className="text-sm font-semibold">Operations</h3>

                        <ul className="mt-3 space-y-2">
                          {api.functionalities.map((operation) => (
+2 −0
Changes for portal-gui/src/layouts/dashboard-layout.tsx: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ import { Outlet } from 'react-router-dom';

import { AppSidebar } from '@/layouts/app-sidebar';
import { SiteHeader } from '@/components/common/site-header';
import { SiteFooter } from '@/components/common/site-footer';
import { Toaster } from '@/components/ui/sonner';
import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar';
import { TooltipProvider } from '@/components/ui/tooltip';
@@ -22,6 +23,7 @@ export function DashboardLayout() {
          <div className="flex min-h-0 flex-1 flex-col">
            <div className="@container/main flex flex-1 flex-col gap-2 overflow-auto">
              <Outlet />
              <SiteFooter />
            </div>
          </div>
        </SidebarInset>
Loading