2021-05-10 23:28:54 +12:00
|
|
|
<script>
|
|
|
|
import { gradient } from "actions"
|
2021-12-07 00:55:23 +13:00
|
|
|
import { Heading, Button, Icon, ActionMenu, MenuItem } from "@budibase/bbui"
|
2021-05-10 23:28:54 +12:00
|
|
|
|
|
|
|
export let app
|
|
|
|
export let exportApp
|
2021-05-21 21:32:16 +12:00
|
|
|
export let viewApp
|
|
|
|
export let editApp
|
2021-07-28 03:34:18 +12:00
|
|
|
export let updateApp
|
2021-05-10 23:28:54 +12:00
|
|
|
export let deleteApp
|
2021-05-21 21:32:16 +12:00
|
|
|
export let unpublishApp
|
2021-05-14 01:04:03 +12:00
|
|
|
export let releaseLock
|
2021-05-10 23:28:54 +12:00
|
|
|
</script>
|
|
|
|
|
2021-05-21 21:37:19 +12:00
|
|
|
<div class="title">
|
2021-05-11 02:28:52 +12:00
|
|
|
<div class="preview" use:gradient={{ seed: app.name }} />
|
2021-05-21 21:32:16 +12:00
|
|
|
<div class="name" on:click={() => editApp(app)}>
|
2021-05-10 23:28:54 +12:00
|
|
|
<Heading size="XS">
|
|
|
|
{app.name}
|
|
|
|
</Heading>
|
2021-05-19 01:39:26 +12:00
|
|
|
</div>
|
2021-05-10 23:28:54 +12:00
|
|
|
</div>
|
2021-12-07 00:55:23 +13:00
|
|
|
<div class="desktop" />
|
|
|
|
<div class="desktop" />
|
|
|
|
<div class="desktop" />
|
2021-05-21 21:37:19 +12:00
|
|
|
<div>
|
2021-05-21 21:32:16 +12:00
|
|
|
<Button
|
|
|
|
disabled={app.lockedOther}
|
|
|
|
on:click={() => editApp(app)}
|
|
|
|
size="S"
|
2021-12-07 00:55:23 +13:00
|
|
|
quiet
|
2021-05-21 21:32:16 +12:00
|
|
|
secondary>Open</Button
|
|
|
|
>
|
2021-05-10 23:28:54 +12:00
|
|
|
<ActionMenu align="right">
|
|
|
|
<Icon hoverable slot="control" name="More" />
|
2021-05-21 21:32:16 +12:00
|
|
|
{#if app.deployed}
|
|
|
|
<MenuItem on:click={() => viewApp(app)} icon="GlobeOutline">
|
|
|
|
View published app
|
|
|
|
</MenuItem>
|
2021-05-14 04:24:32 +12:00
|
|
|
{/if}
|
2021-05-21 22:49:23 +12:00
|
|
|
{#if app.lockedYou}
|
2021-05-21 21:32:16 +12:00
|
|
|
<MenuItem on:click={() => releaseLock(app)} icon="LockOpen">
|
|
|
|
Release lock
|
2021-05-14 01:04:03 +12:00
|
|
|
</MenuItem>
|
|
|
|
{/if}
|
2021-05-21 21:37:19 +12:00
|
|
|
<MenuItem on:click={() => exportApp(app)} icon="Download">Export</MenuItem>
|
|
|
|
{#if app.deployed}
|
|
|
|
<MenuItem on:click={() => unpublishApp(app)} icon="GlobeRemove">
|
|
|
|
Unpublish
|
|
|
|
</MenuItem>
|
|
|
|
{/if}
|
2021-05-21 21:32:16 +12:00
|
|
|
{#if !app.deployed}
|
2021-08-25 23:42:28 +12:00
|
|
|
<MenuItem on:click={() => updateApp(app)} icon="Edit">Edit</MenuItem>
|
2021-05-21 21:32:16 +12:00
|
|
|
<MenuItem on:click={() => deleteApp(app)} icon="Delete">Delete</MenuItem>
|
|
|
|
{/if}
|
2021-05-10 23:28:54 +12:00
|
|
|
</ActionMenu>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
.preview {
|
|
|
|
height: 40px;
|
|
|
|
width: 40px;
|
|
|
|
border-radius: var(--border-radius-s);
|
|
|
|
}
|
2021-05-19 01:39:26 +12:00
|
|
|
.name {
|
2021-05-10 23:28:54 +12:00
|
|
|
text-decoration: none;
|
2021-05-21 21:32:16 +12:00
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
.name :global(.spectrum-Heading) {
|
|
|
|
overflow: hidden;
|
|
|
|
white-space: nowrap;
|
|
|
|
text-overflow: ellipsis;
|
2021-05-10 23:28:54 +12:00
|
|
|
}
|
|
|
|
.title :global(h1:hover) {
|
|
|
|
color: var(--spectrum-global-color-blue-600);
|
|
|
|
cursor: pointer;
|
|
|
|
transition: color 130ms ease;
|
|
|
|
}
|
2021-09-15 03:21:30 +12:00
|
|
|
|
|
|
|
@media (max-width: 640px) {
|
|
|
|
.desktop {
|
|
|
|
display: none !important;
|
|
|
|
}
|
|
|
|
}
|
2021-05-10 23:28:54 +12:00
|
|
|
</style>
|