Skip to content

Commit b2014d6

Browse files
committed
feat: add possibility to see others #61
To see others go to dashboard, users.
1 parent abbca38 commit b2014d6

21 files changed

+544
-40
lines changed

Diff for: src/jelu-ui/src/assets/style.css

+5
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,11 @@
194194
width: min(900px, 85vw);
195195
}
196196

197+
.review-book-card {
198+
@apply h-72;
199+
width: min(300px, 85vw);
200+
}
201+
197202
.small-cover {
198203
@apply w-28;
199204
}

Diff for: src/jelu-ui/src/components/AdminBase.vue

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ const items = ref([{ name:t('settings.profile'), tooltip:t('settings.my_profile'
2121
{ name:t('settings.imports'), icon:"bxs-file-plus", href:"/profile/imports", tooltip: t('settings.csv_import') },
2222
{ name:t('settings.messages'), icon:"bxs-message-alt-detail", href:"/profile/messages" },
2323
{ name:t('settings.stats'), icon:"bxs-chart", href:"/profile/stats", tooltip: t('settings.stats') },
24+
{ name:t('settings.users'), icon:"bxs-user-detail", href:"/profile/users", tooltip: t('settings.users') }
2425
])
2526
2627
if (store.getters.isAdmin && store.getters.getUser != null && store.getters.getUser.provider !== Provider.PROXY) {
27-
items.value.push({ name:t('settings.users'), icon:"bxs-user-plus", href:"/profile/admin/users", tooltip: t('settings.users_management') })
28+
items.value.push({ name:t('settings.add_users'), icon:"bxs-user-plus", href:"/profile/admin/users", tooltip: t('settings.users_management') })
2829
}
2930
3031
const isOpened = ref(false)

Diff for: src/jelu-ui/src/components/AuthorBooks.vue

+1
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,7 @@ getBooks()
355355
class="h-full"
356356
:force-select="false"
357357
:show-select="false"
358+
:propose-add="true"
358359
@update:modal-closed="modalClosed"
359360
/>
360361
</div>

Diff for: src/jelu-ui/src/components/BookCard.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ const props = defineProps<{
1616
book: UserBook,
1717
size?: string,
1818
forceSelect: boolean,
19-
showSelect: boolean
19+
showSelect: boolean,
20+
proposeAdd: boolean,
2021
}>();
2122
const emit = defineEmits<{
2223
(e: 'update:modalClosed', open: boolean): void,
@@ -245,7 +246,7 @@ watch(checked, (newVal, oldVal) => {
245246
<i class="mdi mdi-eye mdi-18px" />
246247
</span>
247248
<span
248-
v-if="book.id == null"
249+
v-if="proposeAdd === true && book.id == null"
249250
v-tooltip="t('labels.book_not_yet_in_books')"
250251
class="icon text-error"
251252
>

Diff for: src/jelu-ui/src/components/BookDataCard.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ const getUserbookId = async () => {
4545
bookCanBeAdded.value = false
4646
await until(props.book.id).not.toBeNull()
4747
console.log("book id " + props.book.id)
48-
dataService.findUserBookByCriteria(null, props.book.id, null, null, null, 0, 10)
48+
dataService.findUserBookByCriteria(null, props.book.id, null, null, null, null, 0, 10)
4949
.then(res => {
5050
if (!res.empty) {
5151
if (res.content.length > 0 && res.content[0].id != null) {

Diff for: src/jelu-ui/src/components/BookList.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ const borrowedAsBool = computed(() => {
8181
8282
const getBooks = () => {
8383
getBookIsLoading.value = true
84-
dataService.findUserBookByCriteria(eventTypes.value, null, toReadAsBool.value,
85-
ownedAsBool.value, borrowedAsBool.value,
84+
dataService.findUserBookByCriteria(eventTypes.value, null, null,
85+
toReadAsBool.value, ownedAsBool.value, borrowedAsBool.value,
8686
pageAsNumber.value - 1, perPage.value, sortQuery.value)
8787
.then(res => {
8888
console.log(res)
@@ -347,6 +347,7 @@ try {
347347
:book="book"
348348
:force-select="selectAll"
349349
:show-select="showSelect"
350+
:propose-add="true"
350351
class="h-full"
351352
@update:modal-closed="modalClosed"
352353
@update:checked="cardChecked"

Diff for: src/jelu-ui/src/components/History.vue

+1
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ getYears()
168168
class="h-full"
169169
:force-select="false"
170170
:show-select="false"
171+
:propose-add="true"
171172
>
172173
<template #date>
173174
<div class="badge badge-accent absolute bottom-0 left-1">

Diff for: src/jelu-ui/src/components/ReviewBookCard.vue

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<script setup lang="ts">
2+
import { ref, Ref } from "vue";
3+
import { useI18n } from 'vue-i18n';
4+
import { Book } from "../model/Book";
5+
import { Review } from "../model/Review";
6+
import dataService from "../services/DataService";
7+
8+
const { t, d } = useI18n({
9+
inheritLocale: true,
10+
useScope: 'global'
11+
})
12+
13+
const props = defineProps<{
14+
review: Review,
15+
}>();
16+
17+
const book: Ref<Book|null> = ref(null)
18+
19+
const getBook = async () => {
20+
try {
21+
const res = await dataService.findBookById(props.review.book)
22+
book.value = res
23+
} catch (error) {
24+
console.log("failed get book : " + error)
25+
}
26+
};
27+
28+
getBook()
29+
30+
</script>
31+
32+
<template>
33+
<div class="card card-side bg-base-100 shadow-2xl shadow-base-300 review-book-card">
34+
<figure
35+
v-if="book != null"
36+
class="place-self-start"
37+
>
38+
<img
39+
:src="'/files/' + book.image"
40+
alt="Movie"
41+
>
42+
</figure>
43+
<div class="card-body p-1 m-1">
44+
<h2
45+
v-if="book != null"
46+
class="card-title line-clamp-2"
47+
>
48+
{{ book?.title }}
49+
</h2>
50+
<span class="italic">{{ review.rating }}/10</span>
51+
<p class="line-clamp-4">
52+
{{ review.text.substring(0, 50) }}
53+
</p>
54+
<div class="card-actions justify-end">
55+
<router-link
56+
class="link hover:underline hover:decoration-4 hover:decoration-secondary text-sm italic"
57+
:to="{ name: 'review-detail', params: { reviewId: props.review.id } }"
58+
>
59+
{{ d(props.review.reviewDate, 'short') }}&nbsp;
60+
</router-link>
61+
</div>
62+
</div>
63+
</div>
64+
</template>
65+
66+
<style lang="scss" scoped>
67+
68+
</style>

Diff for: src/jelu-ui/src/components/SearchResultsDisplay.vue

+1
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ if (titleQuery.value != null ||
351351
:book="book"
352352
:force-select="selectAll"
353353
:show-select="showSelect"
354+
:propose-add="true"
354355
class="h-full"
355356
@update:modal-closed="modalClosed"
356357
@update:checked="cardChecked"

Diff for: src/jelu-ui/src/components/SeriesBooks.vue

+1
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ getBooks()
203203
:book="book"
204204
:force-select="selectAll"
205205
:show-select="showSelect"
206+
:propose-add="true"
206207
class="h-full"
207208
@update:modal-closed="modalClosed"
208209
@update:checked="cardChecked"

Diff for: src/jelu-ui/src/components/TagBooks.vue

+1
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ getBooks()
246246
:book="book"
247247
:force-select="selectAll"
248248
:show-select="showSelect"
249+
:propose-add="true"
249250
class="h-full"
250251
@update:modal-closed="modalClosed"
251252
@update:checked="cardChecked"

Diff for: src/jelu-ui/src/components/ToReadList.vue

+3-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ const getToReadIsLoading: Ref<boolean> = ref(false)
4949
const getToRead = async () => {
5050
getToReadIsLoading.value = true
5151
try {
52-
const res = await dataService.findUserBookByCriteria(eventTypes.value, null,
52+
const res = await dataService.findUserBookByCriteria(
53+
eventTypes.value, null, null,
5354
true, ownedAsBool.value, null,
5455
pageAsNumber.value - 1, perPage.value, sortQuery.value)
5556
total.value = res.totalElements
@@ -252,6 +253,7 @@ getToRead()
252253
:book="book"
253254
:force-select="selectAll"
254255
:show-select="showSelect"
256+
:propose-add="true"
255257
class="h-full"
256258
@update:modal-closed="modalClosed"
257259
@update:checked="cardChecked"

0 commit comments

Comments
 (0)