@christianriedl/media 1.0.191 → 1.0.193

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,9 +21,10 @@ export declare class BooksService implements IBooksService {
21
21
  deleteAuthor(id: number): Promise<boolean>;
22
22
  getBooks(authorId?: number, bookId?: number): Promise<IBook[]>;
23
23
  getFullBooks(surName?: string, givenName?: string, title?: string, flags?: string, minRating?: number): Promise<IFullBook[]>;
24
- getBooksFrom(firstAuthorId: number, firstBookId?: number, count?: number): Promise<IFullBook[]>;
24
+ getBooksFrom(startAuthorId: number, startBookId?: number, count?: number): Promise<IFullBook[]>;
25
25
  getBookPlaces(): Promise<IBookPlace[]>;
26
26
  addBook(book: IBook): Promise<number>;
27
27
  updateBook(book: IBook): Promise<boolean>;
28
28
  deleteBook(id: number): Promise<boolean>;
29
+ distributeBooks(mmPerBook?: number, maxFillPerc?: number, minRestPerc?: number): Promise<string>;
29
30
  }
@@ -62,8 +62,8 @@ export class BooksService {
62
62
  const info = await this.rest.getData('apibooks/books/full', { surName, givenName, title, flags, minRating });
63
63
  return info.result;
64
64
  }
65
- async getBooksFrom(firstAuthorId, firstBookId, count) {
66
- const info = await this.rest.getData('apibooks/books/from', { firstAuthorId, firstBookId, count });
65
+ async getBooksFrom(startAuthorId, startBookId, count) {
66
+ const info = await this.rest.getData('apibooks/books/from', { startAuthorId, startBookId, count });
67
67
  return info.result;
68
68
  }
69
69
  async getBookPlaces() {
@@ -83,9 +83,9 @@ export class BooksService {
83
83
  async updateBook(book) {
84
84
  const url = `apibooks/books`;
85
85
  const res = await this.rest.putData(url, book);
86
- const r = res.result;
87
- this.log.info(`Update book ${book.title} : ${r.result}`);
88
- return r.result;
86
+ const value = this.rest.toValue(res);
87
+ this.log.info(`Update book ${book.title} : ${value}`);
88
+ return value;
89
89
  }
90
90
  async deleteBook(id) {
91
91
  const url = `apibooks/books?id=${id}`;
@@ -94,5 +94,18 @@ export class BooksService {
94
94
  this.log.info(`Add book ${id} : ${r.result}`);
95
95
  return r.result;
96
96
  }
97
+ async distributeBooks(mmPerBook = 27, maxFillPerc = 82, minRestPerc = 20) {
98
+ const url = `apibooks/books/distribute?mmPerBook=${mmPerBook}&marFillPerc=${maxFillPerc}&minRestPerc=${minRestPerc}`;
99
+ const res = await this.rest.postDataEx(url);
100
+ const status = this.rest.toStringValue(res);
101
+ if (res.ok) {
102
+ this.cachedPlaces = undefined;
103
+ this.log.info(`Distribute books : ${status}`);
104
+ }
105
+ else {
106
+ this.log.error(`Distribute book : ${status}`);
107
+ }
108
+ return status;
109
+ }
97
110
  }
98
111
  //# sourceMappingURL=booksService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"booksService.js","sourceRoot":"","sources":["../src/booksService.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,cAAc,GAAqC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpF,MAAM,OAAO,YAAY;IACrB,IAAI,CAAQ;IACZ,QAAQ,CAAS;IACjB,IAAI,CAAS;IACb,GAAG,CAAU;IACb,aAAa,CAAkB;IAC/B,YAAY,CAAgB;IAC5B,UAAU,CAAW;IACrB,KAAK,CAAW;IAChB,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,YAAY,IAAW,EAAE,IAAY,EAAE,UAAuB,EAAE,GAAY;QACxE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,SAAkB,EAAE,SAAmB,EAAE,EAAW;QACnF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAa,kBAAkB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5G,OAAO,IAAI,CAAC,MAAmB,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAiB,wBAAwB,CAAC,CAAC;YAC/E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAwB,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,MAAe;QAC3B,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAA+B,GAAG,EAAE,MAAM,CAAC,CAAC;QAClF,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,MAA8B,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,cAAc,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QAC5D,OAAO,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,MAAe;QAC9B,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAiC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,GAAG,CAAC,MAA+B,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9D,OAAO,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,EAAU;QACzB,MAAM,GAAG,GAAG,uBAAuB,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAiC,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,MAA+B,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAiB,EAAE,MAAe;QAC7C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAU,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC,MAAiB,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,OAAgB,EAAE,SAAkB,EAAE,KAAc,EAAE,KAAc,EAAE,SAAkB;QACvG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc,qBAAqB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1H,OAAO,IAAI,CAAC,MAAqB,CAAC;IACtC,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,aAAqB,EAAE,WAAoB,EAAE,KAAc;QAC1E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAc,qBAAqB,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QAChH,OAAO,IAAI,CAAC,MAAqB,CAAC;IACtC,CAAC;IACD,KAAK,CAAC,aAAa;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAe,uBAAuB,CAAC,CAAC;YAC5E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAsB,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,IAAW;QACrB,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAA8B,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/E,MAAM,CAAC,GAAG,GAAG,CAAC,MAA8B,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QACrD,OAAO,CAAC,CAAC,MAAM,CAAC;IACrB,CAAC;IACA,KAAK,CAAC,UAAU,CAAC,IAAW;QAExB,MAAM,GAAG,GAAG,gBAAgB,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAA+B,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7E,MAAM,CAAC,GAAG,GAAG,CAAC,MAA+B,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QACxD,OAAO,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,EAAU;QACvB,MAAM,GAAG,GAAG,qBAAqB,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAiC,GAAG,CAAC,CAAC;QAC5E,MAAM,CAAC,GAAG,GAAG,CAAC,MAA+B,CAAC;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7C,OAAO,CAAC,CAAC,MAAM,CAAC;IACpB,CAAC;CACJ"}
1
+ {"version":3,"file":"booksService.js","sourceRoot":"","sources":["../src/booksService.ts"],"names":[],"mappings":"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"}
package/dist/iBooks.d.ts CHANGED
@@ -73,6 +73,7 @@ export interface IBooksService {
73
73
  updateBook(book: IBook): Promise<boolean>;
74
74
  deleteBook(id: number): Promise<boolean>;
75
75
  getFullBooks(surName?: string, givenName?: string, title?: string, flags?: string, minRating?: number): Promise<IFullBook[]>;
76
- getBooksFrom(firstAuthorId: number, firstBookId?: number, count?: number): Promise<IFullBook[]>;
76
+ getBooksFrom(startAuthorId: number, startBookId?: number, count?: number): Promise<IFullBook[]>;
77
77
  getBookPlaces(): Promise<IBookPlace[]>;
78
+ distributeBooks(mmPerBook?: number, maxFillPerc?: number, minRestPerc?: number): Promise<string>;
78
79
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@christianriedl/media",
3
- "version": "1.0.191",
3
+ "version": "1.0.193",
4
4
  "description": "RIC media interfaces",
5
5
 
6
6
  "main": "dist/index.js",
@@ -19,7 +19,7 @@
19
19
  "license": "ISC",
20
20
  "dependencies": {
21
21
  "@christianriedl/utils": "^1.0.106",
22
- "@christianriedl/rest": "^1.0.52",
22
+ "@christianriedl/rest": "^1.0.56",
23
23
  "@christianriedl/epg": "^1.0.30"
24
24
  },
25
25
  "devDependencies": {
@@ -3,22 +3,25 @@
3
3
  import { IPlace } from '@christianriedl/media';
4
4
  const props = defineProps<{ place: IPlace, height: number }>();
5
5
  const emits = defineEmits<{
6
- (e: 'select', place: IPlace): void
6
+ (e: 'select', place: IPlace, hinten: boolean): void
7
7
  }>();
8
8
  const place: IPlace = props.place;
9
9
  const heightStyle: StyleValue = { height: props.height + "px" };
10
10
 
11
- function select () {
12
- emits('select', place);
11
+ function selectVorne () {
12
+ emits('select', place, false);
13
+ }
14
+ function selectHinten () {
15
+ emits('select', place, true);
13
16
  }
14
17
  </script>
15
18
 
16
19
  <template>
17
- <v-row dense :class="[place.color,'place']" :style="heightStyle" @click="select">
18
- <v-col v-if="place.vorne" cols="12" >
20
+ <v-row dense :class="[place.color,'place']" :style="heightStyle" >
21
+ <v-col v-if="place.vorne" cols="12" @click="selectVorne">
19
22
  <p class="vorne">{{place.vorne}}<br>{{place.vorne2}}</p>
20
23
  </v-col>
21
- <v-col v-if="place.hinten" cols="12" >
24
+ <v-col v-if="place.hinten" cols="12" @click="selectHinten" >
22
25
  <p class="hinten">{{place.hinten}}<br>{{place.hinten2}}</p>
23
26
  </v-col>
24
27
  </v-row>
@@ -213,7 +213,7 @@
213
213
  alert ('UpdateBook - error');
214
214
  }
215
215
  }
216
- async function showPlace (bookId: string) {
216
+ async function showPlace (bookId: number) {
217
217
  const places = await booksService.getBookPlaces();
218
218
  const firstLetter = currentAuthor.surName.substring(0,1);
219
219
  for (let i = 0; i < places.length; i++) {
@@ -222,12 +222,13 @@
222
222
  const books = await booksService.getBooksFrom (place.firstAuthorId, place.firstBookId, place.buchstaben.length);
223
223
  if (books) {
224
224
  for (let j = 0; j < books.length; j++) {
225
- const book = books[i];
225
+ const book = books[j];
226
226
  if (book.authorId == currentAuthor.id && book.bookId == bookId) {
227
227
  // Found !!
228
228
  let text = `GEFUNDEN : ${place.vorzimmer ? "Vorzimmer" : "Wohnzimmer"} ${place.regalVonLinks}. Regal von links, ${place.fachVonOben}. Fach von oben, \n`;
229
229
  if (!place.vorzimmer)
230
- text += `${place.rechts ? "rechts" : "links"} ${place.hinten ? "hinten": "vorne" }, ${j + 1}. Buch von links`;
230
+ text += `${place.rechts ? "rechts" : "links"} ${place.hinten ? "hinten": "vorne" }, `;
231
+ text += `${j + 1}. Buch von links`;
231
232
  alert (text);
232
233
  return;
233
234
  }
@@ -4,8 +4,10 @@
4
4
  import { BooksService, getBooksSymbol, IAuthorShort, IAuthor, IFullBook, IPlace } from '@christianriedl/media';
5
5
  import BookPlace from '../components/BookPlace.vue';
6
6
 
7
+ const appState = inject(appStateSymbol)!;
7
8
  const getBooksService = inject(getBooksSymbol)!;
8
9
  const booksService = getBooksService() as BooksService;
10
+ const isAdmin = !!(appState.scopes & EScope.Admin);
9
11
 
10
12
  interface Regal {
11
13
  faecher: IPlace[];
@@ -16,9 +18,9 @@
16
18
  const glassColor = "bg-blue-grey-lighten-1";
17
19
  const placeHeight = ref(120);
18
20
  const regale = reactive<Regal[]>(initPlaces());
19
- const booksVorne = reactive<IFullBook[]>([]);
20
- const booksHinten = reactive<IFullBook[]>([]);
21
+ const books = reactive<IFullBook[]>([]);
21
22
  const showBooks = ref(false);
23
+ const vohi = ref("");
22
24
 
23
25
  start();
24
26
 
@@ -27,7 +29,8 @@
27
29
  for (let i = 0; i < 10; i++) {
28
30
  let regal: Regal = { faecher: [], faecher2: [] };
29
31
  for (let j = 0; j < 6; j++) {
30
- const fach: IPlace = { vorne: "", hinten: "", vorne2: "", hinten2: "", color: regalColor };
32
+ const fach: IPlace = { vorne: "", hinten: "", vorne2: "", hinten2: "", color: regalColor,
33
+ hintenAuthorId: 0, hintenBookId: 0, vorneAuthorId: 0, vorneBookId: 0 };
31
34
  if (i < 8) {
32
35
  // Wohnzimmer
33
36
  if ((i < 2 || i > 5) && j > 2)
@@ -36,7 +39,8 @@
36
39
  fach.color = glassColor;
37
40
  }
38
41
  regal.faecher.push(fach);
39
- const fach2: IPlace = { vorne: "", hinten: "", vorne2: "", hinten2: "", color: regalColor };
42
+ const fach2: IPlace = { vorne: "", hinten: "", vorne2: "", hinten2: "", color: regalColor,
43
+ hintenAuthorId: 0, hintenBookId: 0, vorneAuthorId: 0, vorneBookId: 0 };
40
44
  if (i < 8) {
41
45
  // Wohnzimmer
42
46
  if ((i < 2 || i > 5) && j > 2)
@@ -86,21 +90,28 @@
86
90
  }
87
91
  }
88
92
  }
89
- async function select (place: IPlace) {
90
- booksVorne.splice (0, booksVorne.length);
91
- booksHinten.splice (0, booksHinten.length);
92
- if (place.hintenAuthorId && place.hintenBookId) {
93
- const books = await booksService.getBooksFrom (place.hintenAuthorId, place.hintenBookId, place.hinten.length);
94
- if (books)
95
- booksHinten.splice (0, 0, ...books);
93
+ async function select (place: IPlace, hinten: boolean) {
94
+ books.splice (0, books.length);
95
+ if (hinten && place.hintenAuthorId && place.hintenBookId) {
96
+ vohi.value = "hinten";
97
+ const b = await booksService.getBooksFrom (place.hintenAuthorId, place.hintenBookId, place.hinten.length);
98
+ if (b)
99
+ books.splice (0, 0, ...b);
96
100
  }
97
- if (place.vorneAuthorId && place.vorneBookId) {
98
- const books = await booksService.getBooksFrom (place.vorneAuthorId, place.vorneBookId, place.vorne.length);
99
- if (books)
100
- booksVorne.splice (0, 0, ...books);
101
+ if (!hinten && place.vorneAuthorId && place.vorneBookId) {
102
+ vohi.value = "vorne";
103
+ const b = await booksService.getBooksFrom (place.vorneAuthorId, place.vorneBookId, place.vorne.length);
104
+ if (b)
105
+ books.splice (0, 0, ...b);
101
106
  }
102
107
  showBooks.value = true;
103
108
  }
109
+ async function distribute () {
110
+ if (!window.confirm(`Willst du wirklich die B�cher neu anordnen ?`))
111
+ return;
112
+ const result = await booksService.distributeBooks();
113
+ alert (result);
114
+ }
104
115
  </script>
105
116
 
106
117
  <template>
@@ -117,7 +128,9 @@
117
128
  <v-col v-for="n in 8" cols="1">
118
129
  <book-place v-for="m in 6" :place="regale[n-1].faecher[m-1]" :height="placeHeight" @select="select" ></book-place>
119
130
  </v-col>
120
- <v-col cols="1"></v-col>
131
+ <v-col cols="1">
132
+ <v-btn v-if="isAdmin" @click="distribute">DISTRIBUTE</v-btn>
133
+ </v-col>
121
134
  <v-col cols="1">
122
135
  <book-place v-for="m in 6" :place="regale[8].faecher[m-1]" :height="placeHeight" @select="select"></book-place>
123
136
  </v-col>
@@ -146,23 +159,20 @@
146
159
  </v-col>
147
160
  </v-row>
148
161
  <v-dialog v-model="showBooks" >
149
- <v-container>
150
- <h2>Hinten</h2>
151
- <v-row dense v-for="book in booksHinten" :key="book.bookId">
152
- <v-col cols="5"><p class="font-weight-bold">{{book.givenName + ' ' + book.surName}}</p></v-col>
153
- <v-col cols="7"><p>{{book.title}}</p></v-col>
154
- </v-row>
155
- <h2>Vorne</h2>
156
- <v-row dense v-for="book in booksVorne" :key="book.bookId">
157
- <v-col cols="5"><p class="font-weight-bold">{{book.givenName + ' ' + book.surName}}</p></v-col>
158
- <v-col cols="7"><p>{{book.title}}</p></v-col>
159
- </v-row>
160
- <v-row dense>
161
- <v-col cols="2">
162
- <v-btn prepend-icon="$back" @click="showBocks = false">CLOSE</v-btn>
163
- </v-col>
164
- </v-row>
165
- </v-container>
166
- </v-dialog>
162
+ <v-card v-if="showBooks" width="800" >
163
+ <v-card-title>{{"Im Fach " + vohi}}</v-card-title>
164
+ <v-card-text>
165
+ <v-container>
166
+ <v-row dense v-for="book in books" :key="book.bookId">
167
+ <v-col cols="5"><p class="font-weight-medium">{{book.givenName + ' ' + book.surName}}</p></v-col>
168
+ <v-col cols="7"><p>{{book.title}}</p></v-col>
169
+ </v-row>
170
+ </v-container>
171
+ </v-card-text>
172
+ <v-card-actions>
173
+ <v-btn prepend-icon="$back" @click="showBooks = false">CLOSE</v-btn>
174
+ </v-card-actions>
175
+ </v-card>
176
+ </v-dialog>
167
177
  </v-container>
168
178
  </template>