add front responsiveness for phone
All checks were successful
Deploy Bookshelf / deploy (push) Successful in 20s

This commit is contained in:
Julien Aldon
2026-01-13 17:02:16 +01:00
parent ed22dfd412
commit 443cfd7615
5 changed files with 67 additions and 13 deletions

View File

@@ -85,7 +85,6 @@ body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
margin-top: 5rem;
} }
.router { .router {

View File

@@ -26,7 +26,7 @@
.page { .page {
border: none; border: none;
padding: 1rem; padding: 0.5rem;
margin: 0.2rem; margin: 0.2rem;
} }
@@ -34,6 +34,7 @@ footer {
display: flex; display: flex;
padding: 0.2rem; padding: 0.2rem;
align-items: center; align-items: center;
max-width: 100%;
} }

View File

@@ -37,7 +37,7 @@ export default {
.search { .search {
display: flex; display: flex;
min-width: 95%; width: 100vw;
margin-top: 1rem; margin-top: 1rem;
margin-bottom: 1rem; margin-bottom: 1rem;
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<table> <table>
<tr> <tr>
<th v-bind:style="{ 'min-width': this.width }" v-for="head in headings" :key="head">{{ head }}</th> <th v-for="head in headings" :key="head">{{ head }}</th>
</tr> </tr>
<slot></slot> <slot></slot>
</table> </table>
@@ -19,5 +19,25 @@ export default {
<style scoped> <style scoped>
th { th {
text-align: left; text-align: left;
width: 20%;
} }
tr {
display: flex;
flex-direction: row;
justify-content: flex-start;
}
table {
display: flex;
flex-direction: column;
}
@media (max-width: 30em) {
tr {
width: 100vw;
}
}
</style> </style>

View File

@@ -20,7 +20,7 @@
</button> </button>
</form> </form>
<SearchHeader page="Books" @changeSearch="(s) => {editSearch(s)}"/> <SearchHeader page="Books" @changeSearch="(s) => {editSearch(s)}"/>
<TableView ref="table" :headings="headings" width="15rem"> <TableView ref="table" :headings="headings">
<tr v-for="book in this.$store.getters.getBooks" :key="book"> <tr v-for="book in this.$store.getters.getBooks" :key="book">
<td v-if="editRow === book.biblio_Index"> <td v-if="editRow === book.biblio_Index">
<DropDown <DropDown
@@ -28,7 +28,7 @@
field="Auteur" field="Auteur"
:inputValue="book.Auteur" :inputValue="book.Auteur"
@selected="(n) => {formEdit.author = n}" @selected="(n) => {formEdit.author = n}"
/> />
</td> </td>
<td v-else>{{ book.Auteur }}</td> <td v-else>{{ book.Auteur }}</td>
<td v-if="editRow === book.biblio_Index"> <td v-if="editRow === book.biblio_Index">
@@ -37,7 +37,7 @@
field="Titre" field="Titre"
:inputValue="book.Titre" :inputValue="book.Titre"
@selected="(n) => {formEdit.title = n}" @selected="(n) => {formEdit.title = n}"
/> />
</td> </td>
<td v-else>{{ book.Titre }}</td> <td v-else>{{ book.Titre }}</td>
<td v-if="editRow === book.biblio_Index"> <td v-if="editRow === book.biblio_Index">
@@ -46,7 +46,7 @@
field="Editeur" field="Editeur"
:inputValue="book.Editeur" :inputValue="book.Editeur"
@selected="(n) => {formEdit.editor = n}" @selected="(n) => {formEdit.editor = n}"
/> />
</td> </td>
<td v-else>{{ book.Editeur }}</td> <td v-else>{{ book.Editeur }}</td>
<td v-if="editRow === book.biblio_Index"> <td v-if="editRow === book.biblio_Index">
@@ -55,7 +55,7 @@
field="Type" field="Type"
:inputValue="book.Type" :inputValue="book.Type"
@selected="(n) => {formEdit.type = n}" @selected="(n) => {formEdit.type = n}"
/> />
</td> </td>
<td v-else>{{ book.Type }}</td> <td v-else>{{ book.Type }}</td>
<div class="button-panel"> <div class="button-panel">
@@ -87,7 +87,7 @@ export default {
}, },
data() { data() {
return { return {
headings: ['Author', 'Title', 'Editor', 'Type'], headings: ['Author', 'Title', 'Editor', 'Type', 'Control'],
editMode: false, editMode: false,
editRow: undefined, editRow: undefined,
addMode: false, addMode: false,
@@ -188,11 +188,45 @@ export default {
</script> </script>
<style scoped> <style scoped>
main { main {
max-width: 60.5vw; width: 80vw
} }
td input { header {
width: 14.5rem; width: 80vw;
}
tr {
display: flex;
flex-direction: row;
justify-content: flex-start;
width: 80vw;
align-items: center;
}
td {
width: 20%;
}
.button-panel {
width: 20%;
display: flex;
flex-direction: flex-end;
}
@media (max-width: 30em) {
main {
width: 100vw;
}
tr {
width: 100vw;
}
td {
overflow-x: hidden;
white-space: nowrap
}
} }
@keyframes lineInsertedIn { @keyframes lineInsertedIn {