Frontend created and rewritten a few times, with some backend fixes #1

Merged
leo merged 110 commits from plaintable into main 2023-11-08 20:38:40 +00:00
4 changed files with 17 additions and 14 deletions
Showing only changes of commit 6938740b0f - Show all commits

View File

@ -4,7 +4,7 @@
<HeaderMain ref="headerMain"> <HeaderMain ref="headerMain">
<HeaderSelected :path="path.pathList" /> <HeaderSelected :path="path.pathList" />
</HeaderMain> </HeaderMain>
<BreadCrumb :path="path.pathList" /> <BreadCrumb :path="path.pathList" tabindex="-1"/>
</header> </header>
<main> <main>
<RouterView :path="path.pathList" /> <RouterView :path="path.pathList" />

View File

@ -8,6 +8,8 @@
--primary-color: #000; --primary-color: #000;
--accent-color: #f80; --accent-color: #f80;
--transition-time: 0.2s; --transition-time: 0.2s;
/* The following are overridden by responsive layouts */
--root-font-size: 1rem;
--header-font-size: 1rem; --header-font-size: 1rem;
--header-height: calc(8 * var(--header-font-size)); --header-height: calc(8 * var(--header-font-size));
} }
@ -19,13 +21,13 @@
--header-color: #ccc; --header-color: #ccc;
} }
} }
@media screen and (orientation: portrait) and (max-width: 600px) { @media screen and (max-width: 600px) {
.size, .size,
.modified { .modified {
display: none; display: none;
} }
} }
@media screen and (orientation: landscape) and (min-width: 600px) { @media screen and (orientation: landscape) and (min-width: 800px) {
/* Breadcrumbs and buttons side by side */ /* Breadcrumbs and buttons side by side */
header { header {
display: flex; display: flex;
@ -39,8 +41,8 @@
} }
} }
@media screen and (min-width: 800px) and (--webkit-min-device-pixel-ratio: 2) { @media screen and (min-width: 800px) and (--webkit-min-device-pixel-ratio: 2) {
html { :root {
font-size: 1.5rem; --root-font-size: calc(16 * 100vw / 800);
} }
header .buttons:has(input[type='search']) > div { header .buttons:has(input[type='search']) > div {
display: none; display: none;
@ -49,9 +51,9 @@
display: inherit; display: inherit;
} }
} }
@media screen and (min-width: 1400px) and (--webkit-min-device-pixel-ratio: 3) { @media screen and (min-width: 1600px) and (--webkit-min-device-pixel-ratio: 3) {
html { :root {
font-size: 2rem; --root-font-size: 2rem;
} }
} }
@media screen and (max-height: 600px) { @media screen and (max-height: 600px) {

View File

@ -2,7 +2,6 @@
<nav <nav
class="breadcrumb" class="breadcrumb"
aria-label="Breadcrumb" aria-label="Breadcrumb"
tabindex="0"
@keyup.left.stop="move(-1)" @keyup.left.stop="move(-1)"
@keyup.right.stop="move(1)" @keyup.right.stop="move(1)"
@focus="move(0)" @focus="move(0)"

View File

@ -1,5 +1,5 @@
<template> <template>
<table v-if="props.documents.length || editing" @blur="cursor = null"> <table v-if="props.documents.length || editing">
<thead> <thead>
<tr> <tr>
<th class="selection"> <th class="selection">
@ -95,8 +95,9 @@
<a <a
:href="url_for(doc)" :href="url_for(doc)"
tabindex="-1" tabindex="-1"
@contextmenu.stop @contextmenu.prevent
@focus.stop="cursor = doc" @focus.stop="cursor = doc"
@blur="ev => { if (!editing) cursor = null }"
>{{ doc.name }}</a >{{ doc.name }}</a
> >
<button <button
@ -245,6 +246,7 @@ defineExpose({
scrolltr = tr scrolltr = tr
if (!scrolltimer) { if (!scrolltimer) {
scrolltimer = setTimeout(() => { scrolltimer = setTimeout(() => {
if (scrolltr)
scrolltr.scrollIntoView({ block: 'center', behavior: 'smooth' }) scrolltr.scrollIntoView({ block: 'center', behavior: 'smooth' })
scrolltimer = null scrolltimer = null
}, 300) }, 300)
@ -370,10 +372,10 @@ table .selection {
text-overflow: clip; text-overflow: clip;
} }
table .modified { table .modified {
width: 8rem; width: 8em;
} }
table .size { table .size {
width: 4rem; width: 5em;
} }
table .menu { table .menu {
width: 1rem; width: 1rem;