Merge pull request 'Fix(app/machines): fix css styling of machine list overview' (#3435) from hsjobeki/clan-core:ui-fixups into main
Reviewed-on: https://git.clan.lol/clan/clan-core/pulls/3435
This commit is contained in:
@@ -7,6 +7,8 @@ import { A, useNavigate } from "@solidjs/router";
|
|||||||
import { RndThumbnail } from "./noiseThumbnail";
|
import { RndThumbnail } from "./noiseThumbnail";
|
||||||
import Icon from "./icon";
|
import Icon from "./icon";
|
||||||
import { Filter } from "../routes/machines";
|
import { Filter } from "../routes/machines";
|
||||||
|
import { Typography } from "./Typography";
|
||||||
|
import { Button } from "./button";
|
||||||
|
|
||||||
type MachineDetails = SuccessQuery<"list_inventory_machines">["data"][string];
|
type MachineDetails = SuccessQuery<"list_inventory_machines">["data"][string];
|
||||||
|
|
||||||
@@ -108,26 +110,77 @@ export const MachineListItem = (props: MachineListItemProps) => {
|
|||||||
setUpdating(false);
|
setUpdating(false);
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<div class=" m-2">
|
<div class="border rounded-lg border-def-2 p-3 m-2 w-64">
|
||||||
<figure class="h-fit rounded-xl border bg-def-2 border-def-5">
|
<figure class="h-fit rounded-xl border bg-def-2 border-def-5">
|
||||||
<RndThumbnail name={name} width={220} height={120} />
|
<RndThumbnail name={name} width={220} height={120} />
|
||||||
</figure>
|
</figure>
|
||||||
<div class=" flex-row justify-between ">
|
<div class="flex-row justify-between gap-4 pt-2 px-2">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<A href={`/machines/${name}`}>
|
<A href={`/machines/${name}`}>
|
||||||
<h2
|
<Typography hierarchy="title" size="m" weight="bold">
|
||||||
class=" underline"
|
{name}
|
||||||
classList={{
|
</Typography>
|
||||||
"text-neutral-500": nixOnly,
|
</A>
|
||||||
|
<div class="text-slate-600 flex justify-between">
|
||||||
|
<div class="flex flex-nowrap">
|
||||||
|
<span class="h-4">
|
||||||
|
<Icon icon="Flash" class="h-4" font-size="inherit" />
|
||||||
|
</span>
|
||||||
|
<Typography hierarchy="body" size="s" weight="medium">
|
||||||
|
<Show when={info}>
|
||||||
|
{(d) => d()?.description || "no description"}
|
||||||
|
</Show>
|
||||||
|
</Typography>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="self-end">
|
||||||
|
<Menu
|
||||||
|
popoverid={`menu-${props.name}`}
|
||||||
|
label={<Icon icon={"More"} />}
|
||||||
|
>
|
||||||
|
<ul class="z-[1] w-64 p-2 shadow bg-white ">
|
||||||
|
<li>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
class="w-full"
|
||||||
|
onClick={() => {
|
||||||
|
navigate("/machines/" + name);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{name}
|
Details
|
||||||
</h2>
|
</Button>
|
||||||
</A>
|
</li>
|
||||||
<div class="text-slate-600">
|
<li
|
||||||
<Show when={info}>{(d) => d()?.description}</Show>
|
classList={{
|
||||||
|
disabled: !info?.deploy?.targetHost || installing(),
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
class="w-full"
|
||||||
|
onClick={handleInstall}
|
||||||
|
>
|
||||||
|
Install
|
||||||
|
</Button>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
classList={{
|
||||||
|
disabled: !info?.deploy?.targetHost || updating(),
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
class="w-full"
|
||||||
|
onClick={handleUpdate}
|
||||||
|
>
|
||||||
|
Update
|
||||||
|
</Button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</Menu>
|
||||||
</div>
|
</div>
|
||||||
<div class="text-slate-600">
|
</div>
|
||||||
|
{/* <div class="text-slate-600">
|
||||||
<Show when={info}>
|
<Show when={info}>
|
||||||
{(d) => (
|
{(d) => (
|
||||||
<>
|
<>
|
||||||
@@ -163,47 +216,7 @@ export const MachineListItem = (props: MachineListItemProps) => {
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</Show>
|
</Show>
|
||||||
</div>
|
</div> */}
|
||||||
<div class="flex flex-row flex-wrap gap-4 py-2"></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<Menu popoverid={`menu-${props.name}`} label={<Icon icon={"More"} />}>
|
|
||||||
<ul class="z-[1] w-52 p-2 shadow">
|
|
||||||
<li>
|
|
||||||
<a
|
|
||||||
onClick={() => {
|
|
||||||
navigate("/machines/" + name);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Details
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
classList={{
|
|
||||||
disabled: !info?.deploy?.targetHost || installing(),
|
|
||||||
}}
|
|
||||||
onClick={handleInstall}
|
|
||||||
>
|
|
||||||
<a>
|
|
||||||
<Show when={info?.deploy?.targetHost} fallback={"Deploy"}>
|
|
||||||
{(d) => `Install to ${d()}`}
|
|
||||||
</Show>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
classList={{
|
|
||||||
disabled: !info?.deploy?.targetHost || updating(),
|
|
||||||
}}
|
|
||||||
onClick={handleUpdate}
|
|
||||||
>
|
|
||||||
<a>
|
|
||||||
<Show when={info?.deploy?.targetHost} fallback={"Deploy"}>
|
|
||||||
{(d) => `Update (${d()})`}
|
|
||||||
</Show>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</Menu>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ interface HeaderProps {
|
|||||||
}
|
}
|
||||||
export const Header = (props: HeaderProps) => {
|
export const Header = (props: HeaderProps) => {
|
||||||
return (
|
return (
|
||||||
<div class=" border-b px-6 py-4 border-def-3">
|
<div class="flex border-b px-6 py-4 border-def-3">
|
||||||
<div class="flex-none">
|
<div class="flex-none">
|
||||||
{props.showBack && <BackButton />}
|
{props.showBack && <BackButton />}
|
||||||
<span class=" lg:hidden" data-tip="Menu">
|
<span class=" lg:hidden" data-tip="Menu">
|
||||||
@@ -23,9 +23,7 @@ export const Header = (props: HeaderProps) => {
|
|||||||
{props.title}
|
{props.title}
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-none items-center justify-center gap-3">
|
<div class="flex items-center justify-center gap-3">{props.toolbar}</div>
|
||||||
{props.toolbar}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -118,8 +118,15 @@ export const MachineListView: Component = () => {
|
|||||||
/>
|
/>
|
||||||
<div>
|
<div>
|
||||||
<div class="my-1 flex w-full gap-2 p-2">
|
<div class="my-1 flex w-full gap-2 p-2">
|
||||||
<div class="size-6 p-1">
|
<div class="flex w-full justify-end px-4 py-1">
|
||||||
<Icon icon="Filter" />
|
<div class="flex">
|
||||||
|
<Button
|
||||||
|
// onClick={() => navigate("create")}
|
||||||
|
size="s"
|
||||||
|
variant="light"
|
||||||
|
startIcon={<Icon icon="Filter" />}
|
||||||
|
></Button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<For each={filter().tags.sort()}>
|
<For each={filter().tags.sort()}>
|
||||||
{(tag) => (
|
{(tag) => (
|
||||||
|
|||||||
Reference in New Issue
Block a user