updated dependencies

This commit is contained in:
2024-08-16 14:34:39 +03:00
parent 2429d4acb5
commit a04e338ce2
20 changed files with 1224 additions and 891 deletions
-1
View File
@@ -2,7 +2,6 @@ import {axiosInstance} from "./bootstrap";
import "../sass/app.scss"; import "../sass/app.scss";
import Account from "./svelte/Account.svelte"; import Account from "./svelte/Account.svelte";
import Channel from "./svelte/Channel.svelte"; import Channel from "./svelte/Channel.svelte";
import * as bootstrap from "bootstrap";
import Mustache from "mustache"; import Mustache from "mustache";
import 'htmx.org'; import 'htmx.org';
-22
View File
@@ -4,7 +4,6 @@
import ActionsOnSelected from "./ActionsOnSelected.svelte"; import ActionsOnSelected from "./ActionsOnSelected.svelte";
import Table from "./Table.svelte"; import Table from "./Table.svelte";
import {getContext} from "svelte"; import {getContext} from "svelte";
import Grid from "./Grid.svelte";
const axios = getContext("axios"); const axios = getContext("axios");
export let schema; export let schema;
@@ -71,7 +70,6 @@
/> />
{/if} {/if}
{#if schema.type === "collection"}
<Table <Table
{records} {records}
{graph} {graph}
@@ -84,27 +82,7 @@
{isWritable} {isWritable}
bind:selected bind:selected
/> />
{:else}
<Table
{records}
{graph}
{schema}
{sortParam}
{sortField}
{systemFields}
{inModal}
{users}
{isWritable}
bind:selected
/>
<!-- <Grid-->
<!-- {records}-->
<!-- {schema}-->
<!-- {isWritable}-->
<!-- bind:selected-->
<!-- />-->
{/if}
</div> </div>
<Pagination <Pagination
+1 -2
View File
@@ -30,7 +30,6 @@
} }
$: visibleColumns = schema.fields.filter(c => schema.visible?.includes(c.name) ?? []) $: visibleColumns = schema.fields.filter(c => schema.visible?.includes(c.name) ?? [])
</script> </script>
<div class="table mt-5 "> <div class="table mt-5 ">
@@ -81,7 +80,7 @@
{/if} {/if}
{#if record._file?.path} {#if record._file?.path}
<Preview record={record} size="medium"/> <Preview record={record} size={record._file?.width > 0 ? "medium" : "tiny"}/>
{/if} {/if}
<a <a
class="me-2 text-decoration-none text-dark fs-6" class="me-2 text-decoration-none text-dark fs-6"
+1 -1
View File
@@ -91,7 +91,7 @@
</a> </a>
{/if} {/if}
{:else } {:else }
<div class="d-inline-block ms-1"> <div>
<Uploader {schema} on:uploadComplete={uploadComplete}/> <Uploader {schema} on:uploadComplete={uploadComplete}/>
</div> </div>
{/if} {/if}
+10 -7
View File
@@ -1,6 +1,6 @@
<script> <script>
import {createEventDispatcher, getContext, onMount} from "svelte"; import {createEventDispatcher, getContext} from "svelte";
import Icon from "../common/Icon.svelte"; import Icon from "../common/Icon.svelte";
import Index from "../content/Index.svelte"; import Index from "../content/Index.svelte";
@@ -15,7 +15,11 @@
// }); // });
export function close() { export function close(e) {
if(e){
e.preventDefault();
}
dialogEl.close() dialogEl.close()
selectedRecords = []; selectedRecords = [];
} }
@@ -45,23 +49,22 @@
}); });
} }
export function open(schema) { export function open( schema) {
dialogEl.showModal() dialogEl.showModal()
load(schema); load(schema);
} }
</script> </script>
<dialog bind:this={dialogEl}> <dialog bind:this={dialogEl}>
{#if data.schema} {#if data.schema}
<div class="dialog-header"> <div class="dialog-header">
<button <button
type="button" type="button"
class="btn btn-primary me-1" class="button"
on:click={insert} on:click={insert}
disabled={selectedRecords.length === 0} disabled={selectedRecords.length === 0}
> >
@@ -69,7 +72,7 @@
</button> </button>
<button <button
type="button" type="button"
class="btn btn-outline-primary me-3" class="button"
on:click={replace} on:click={replace}
disabled={selectedRecords.length === 0} disabled={selectedRecords.length === 0}
> >
+2 -2
View File
@@ -53,7 +53,7 @@
> >
<Icon icon="file" width={fileSide} height={fileSide}/> <Icon icon="file" width={fileSide} height={fileSide}/>
<span class="ms-2" <span class="ms-2"
>.{record._file.path.split(".").pop()}</span >.{record._file.path.split(".").pop().toLowerCase()}</span
> >
</a> </a>
{/if} {/if}
@@ -63,7 +63,7 @@
href="{channel.lucentUrl}/records/{record.id}" href="{channel.lucentUrl}/records/{record.id}"
title={record._file.path} title={record._file.path}
class="preview-file-filename lx-small-text text-decoration-none" class="preview-file-filename lx-small-text text-decoration-none"
>{record._file.path}</a >{record._file.path} </a
> >
{/if} {/if}
</div> </div>
+5 -6
View File
@@ -43,16 +43,15 @@
} }
</script> </script>
<fieldset disabled={isLoading}> <fieldset class="upload-button" disabled={isLoading}>
<label class="btn btn-primary btn-sm btn-spinner "> <label class="button primary btn-spinner ">
Upload file
<span <span
class="spinner-border spinner-border-sm" class="spinner-border spinner-border-sm"
role="status" role="status"
aria-hidden="true" aria-hidden="true"
> />
<span class="visually-hidden">Loading...</span> Upload file
</span>
<input <input
on:input={upload} on:input={upload}
class="form-control" class="form-control"
+2 -2
View File
@@ -6,8 +6,8 @@
import "tinymce/icons/default"; import "tinymce/icons/default";
import "tinymce/themes/silver"; import "tinymce/themes/silver";
import "tinymce/skins/ui/oxide/skin.css"; import "tinymce/skins/ui/oxide/skin.css";
import contentUiSkinCss from "tinymce/skins/ui/oxide/content.css"; import contentUiSkinCss from "tinymce/skins/ui/oxide/content.css?inline";
import customcss from "./tinymce.css"; import customcss from "./tinymce.css?inline";
import "tinymce/plugins/link"; import "tinymce/plugins/link";
import "tinymce/plugins/code"; import "tinymce/plugins/code";
+3
View File
@@ -36,8 +36,11 @@ export function previewTitle(schemas, record, graph) {
function noTemplate(schema, record) { function noTemplate(schema, record) {
if (schema?.type === "files") { if (schema?.type === "files") {
if(record._file.width === 0){
return record._file.path; return record._file.path;
} }
return record._file.path + " " + record._file.width+"x"+record._file.height ;
}
let title = stripHtml( let title = stripHtml(
record?.data[schema.fields.filter((f) => f.info.name === "text")[0]?.name] record?.data[schema.fields.filter((f) => f.info.name === "text")[0]?.name]
+5 -31
View File
@@ -1,17 +1,16 @@
<script> <script>
import {createEventDispatcher, getContext} from "svelte";
import {uniqBy} from "lodash";
import {sortByField} from "../../edges/sortEdges"; import {sortByField} from "../../edges/sortEdges";
import Sortable from "../../libs/Sortable.svelte"; import Sortable from "../../libs/Sortable.svelte";
import PreviewFile from "../previews/PreviewFile.svelte"; import PreviewFile from "../previews/PreviewFile.svelte";
import Dropdown from "../../common/Dropdown.svelte"; import Dropdown from "../../common/Dropdown.svelte";
import Dialog from "../../dialog/Dialog.svelte"; import Dialog from "../../dialog/Dialog.svelte";
import {insertEdges} from "./reference.js";
import {getContext} from "svelte";
const channel = getContext("channel"); const channel = getContext("channel");
export let field; export let field;
export let record; export let record;
export let graph export let graph
const dispatch = createEventDispatcher();
let browseModal; let browseModal;
$: references = graph?.edges $: references = graph?.edges
.filter((edge) => edge.field === field.name) .filter((edge) => edge.field === field.name)
@@ -33,7 +32,6 @@
function openBrowseModal(e, schema) { function openBrowseModal(e, schema) {
e.preventDefault(); e.preventDefault();
browseModal.open(schema); browseModal.open(schema);
} }
async function reorder(e) { async function reorder(e) {
@@ -45,26 +43,7 @@
function insert(e) { function insert(e) {
e.preventDefault(); e.preventDefault();
browseModal.close(); browseModal.close();
const recordsToInsert = e.detail.records; graph = insertEdges(graph, record, e.detail.records, field.name, e.detail.action);
const action = e.detail.action;
let newEdges = recordsToInsert.map((r) => {
return {
target: r.id,
source: record.id,
sourceSchema: record.schema,
targetSchema: r.schema,
field: field.name,
rank: ""
};
});
let replacedEdges = graph.edges ?? [];
if (action === "replace") {
replacedEdges = replacedEdges.filter((e) => e.field !== field.name);
}
graph.records = uniqBy([...graph.records, ...recordsToInsert], (r) => r.id);
graph.edges = uniqBy([...replacedEdges, ...newEdges], (e) => e.target + e.field);
} }
</script> </script>
@@ -85,8 +64,7 @@
<!-- {`${channelurl}/content/${collection.name}?parent=${record.id}&parentfield=${field.name}`} --> <!-- {`${channelurl}/content/${collection.name}?parent=${record.id}&parentfield=${field.name}`} -->
<a <a
class="dropdown-item" class="dropdown-item"
on:click={(e) => on:click={(e) => openBrowseModal(e, collection.name)}
openBrowseModal(e, collection.name)}
href="/">{collection.label}</a href="/">{collection.label}</a
> >
{/each} {/each}
@@ -94,14 +72,10 @@
{/if} {/if}
</div> </div>
{#if references.length > 0} {#if references.length > 0}
<Sortable sortableClass="row row-cols-3 mt-3" on:update={reorder}> <Sortable sortableClass="mt-3" on:update={reorder}>
{#each references as reference (reference.id)} {#each references as reference (reference.id)}
<div class="col mb-3">
<PreviewFile record={reference} hasDelete={true} on:remove={removeReference}></PreviewFile> <PreviewFile record={reference} hasDelete={true} on:remove={removeReference}></PreviewFile>
</div>
{/each} {/each}
</Sortable> </Sortable>
{/if} {/if}
<Dialog bind:this={browseModal} on:insert={insert}></Dialog> <Dialog bind:this={browseModal} on:insert={insert}></Dialog>
<!--<BrowseModal bind:this={browseModal} on:insert={insert}/>-->
@@ -3,6 +3,7 @@
import Icon from "../../common/Icon.svelte"; import Icon from "../../common/Icon.svelte";
import InlineEdit from "../InlineEdit.svelte"; import InlineEdit from "../InlineEdit.svelte";
import BrowseModal from "./BrowseModal.svelte"; import BrowseModal from "./BrowseModal.svelte";
import Dialog from "../../dialog/Dialog.svelte";
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
// export let field; // export let field;
@@ -120,7 +121,7 @@
/> />
{/if} {/if}
<BrowseModal bind:this={browseModal} on:insert={insert}/> <Dialog bind:this={browseModal} on:insert={insert}/>
<style> <style>
:global(.inline-card-wrapper) { :global(.inline-card-wrapper) {
@@ -22,6 +22,7 @@
</script> </script>
<div class="preview-file"> <div class="preview-file">
<div style="display: flex;align-items: center;gap: 10px;">
<div class="image"> <div class="image">
<Preview {record} size="small"/> <Preview {record} size="small"/>
</div> </div>
@@ -43,6 +44,7 @@
</div> </div>
</div> </div>
</div>
{#if hasDelete} {#if hasDelete}
<div class="trash-action"> <div class="trash-action">
<button <button
+1079 -741
View File
File diff suppressed because it is too large Load Diff
+15 -18
View File
@@ -6,30 +6,27 @@
"build": "vite build" "build": "vite build"
}, },
"devDependencies": { "devDependencies": {
"@codemirror/commands": "^6.1.2", "@codemirror/commands": "^6.6.0",
"@codemirror/lang-json": "^6.0.1", "@codemirror/lang-json": "^6.0.1",
"@codemirror/state": "^6.1.3", "@codemirror/state": "^6.4.1",
"@popperjs/core": "^2.11.6", "@sveltejs/vite-plugin-svelte": "^3.1.1",
"@sveltejs/vite-plugin-svelte": "^1.1.1", "axios": "1.6.0",
"axios": "^0.25",
"bootstrap": "^5.2.2",
"codemirror": "^6.0.1", "codemirror": "^6.0.1",
"date-fns": "^2.29.3", "date-fns": "^3.6.0",
"flatpickr": "^4.6.13", "flatpickr": "^4.6.13",
"laravel-vite-plugin": "^0.7.0", "laravel-vite-plugin": "^1.0.5",
"lodash": "^4.17.19", "lodash": "^4.17.21",
"mustache": "^4.2.0", "mustache": "^4.2.0",
"postcss": "^8.4.19", "postcss": "8.4.31",
"sass": "^1.56.1", "sass": "^1.77.8",
"sortablejs": "^1.15.0", "sortablejs": "^1.15.2",
"svelte": "^3.53.1", "svelte": "^4.2.18",
"tinymce": "^6.2.0", "tinymce": "6.8.0",
"uuid": "^8.3.2", "uuid": "^10.0.0",
"vis-network": "^9.1.2", "vite": "5.2.6"
"vite": "^3.2.3"
}, },
"dependencies": { "dependencies": {
"@codemirror/lang-markdown": "^6.2.2", "@codemirror/lang-markdown": "^6.2.5",
"htmx.org": "^2.0.1" "htmx.org": "^2.0.1"
} }
} }
+16
View File
@@ -28,4 +28,20 @@
&.active { &.active {
filter: brightness(74%); filter: brightness(74%);
} }
&[disabled] {
pointer-events: none;
}
}
.upload-button{
padding: 0;
border: none;
label{
font-size: 14px;
line-height: 14px;
font-weight: normal;
}
} }
@@ -4,32 +4,44 @@
// border: 2px solid burlywood; // border: 2px solid burlywood;
// border-radius: 5px; // border-radius: 5px;
//} //}
html {
//scrollbar-gutter: stable;
}
body:has(dialog[open]) { body:has(dialog[open]) {
overflow: hidden; overflow: hidden;
} }
dialog{
dialog {
margin: 10px auto; margin: 10px auto;
background-color: #fff; background-color: #fff;
padding: 34px; padding: 34px;
border: none; border: none;
border-radius: 5px; border-radius: 5px;
overflow: auto; overflow: auto;
position: relative; //position: relative;
.close{ .close {
position: absolute; position: absolute;
top: 20px; top: 20px;
right: 20px; right: 20px;
} }
.dialog-body{ .dialog-body {
width: fit-content; width: fit-content;
} }
} }
dialog::backdrop { dialog::backdrop {
backdrop-filter: blur(3px); backdrop-filter: blur(3px);
} }
.dialog-header {
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 8px;
}
+4 -3
View File
@@ -24,16 +24,17 @@
transition: 600ms; transition: 600ms;
flex-grow: 1; flex-grow: 1;
top: 35px; top: 35px;
min-width: max-content;
&.orientation-right { & .orientation-right {
right: 0; right: 0;
} }
&.orientation-left { & .orientation-left {
left: 0; left: 0;
} }
min-width: max-content;
} }
.dropdown-header, .dropdown-item { .dropdown-header, .dropdown-item {
+11 -2
View File
@@ -4,16 +4,21 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
gap: 4px; gap: 4px;
list-style: none;
padding: 0; padding: 0;
li { li {
a,span{
font-size: 14px; font-size: 14px;
border-radius: 12px; border-radius: 12px;
padding: 4px 18px; padding: 4px 18px;
background: var(--background); background: var(--background);
list-style: none;
filter: brightness(90%); filter: brightness(90%);
}
&.disabled { &.disabled {
pointer-events: none; pointer-events: none;
@@ -21,7 +26,11 @@
} }
&.active { &.active {
span{
background: var(--secondary); background: var(--secondary);
} }
}
} }
} }
+2
View File
@@ -1,6 +1,7 @@
.preview-file{ .preview-file{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
gap: 10px; gap: 10px;
background: var(--background); background: var(--background);
border-radius: 12px; border-radius: 12px;
@@ -13,6 +14,7 @@
.trash-action{ .trash-action{
display: none; display: none;
margin-right: 20px;
} }
&:hover{ &:hover{
+1 -1
View File
@@ -152,7 +152,7 @@ $themes: (
@import "./tabs"; @import "./tabs";
@import "./switch"; @import "./switch";
@import "./preview"; @import "./preview";
@import "./modal"; @import "./dialog";
body { body {
background-color: var(--background); background-color: var(--background);