Frontend created and rewritten a few times, with some backend fixes #1
| @@ -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" /> | ||||||
|   | |||||||
| @@ -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) { | ||||||
|   | |||||||
| @@ -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)" | ||||||
|   | |||||||
| @@ -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,7 +246,8 @@ defineExpose({ | |||||||
|     scrolltr = tr |     scrolltr = tr | ||||||
|     if (!scrolltimer) { |     if (!scrolltimer) { | ||||||
|       scrolltimer = setTimeout(() => { |       scrolltimer = setTimeout(() => { | ||||||
|         scrolltr.scrollIntoView({ block: 'center', behavior: 'smooth' }) |         if (scrolltr) | ||||||
|  |           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; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user