@@ -212,7 +212,7 @@
@@ -593,21 +593,46 @@ class RecentBooksPage {
}
}
- async handleDel(key) {
- if (!this.showArchive) {
- await bookManager.delRecentBook({key});
- this.$root.notify.info('Перенесено в архив');
+ async handleDel(item) {
+ if (item.group) {
+ const keys = [{key: item.key}];
+ for (const book of item.group)
+ keys.push({key: book.key});
+
+ if (!this.showArchive) {
+ await bookManager.delRecentBooks(keys);
+ this.$root.notify.info(`Группа книг (всего ${keys.length}) перенесена в архив`);
+ } else {
+ if (await this.$root.stdDialog.confirm(`Подтвердите удаление группы книг (всего ${keys.length}) из архива:`, ' ')) {
+ await bookManager.delRecentBooks(keys, 2);
+ this.$root.notify.info('Группа книг удалена безвозвратно');
+ }
+ }
} else {
- if (await this.$root.stdDialog.confirm('Подтвердите удаление из архива:', ' ')) {
- await bookManager.delRecentBook({key}, 2);
- this.$root.notify.info('Удалено безвозвратно');
+ if (!this.showArchive) {
+ await bookManager.delRecentBooks([{key: item.key}]);
+ this.$root.notify.info('Книга перенесена в архив');
+ } else {
+ if (await this.$root.stdDialog.confirm('Подтвердите удаление книги из архива:', ' ')) {
+ await bookManager.delRecentBooks([{key: item.key}], 2);
+ this.$root.notify.info('Книга удалено безвозвратно');
+ }
}
}
}
- async handleRestore(key) {
- await bookManager.restoreRecentBook({key});
- this.$root.notify.info('Восстановлено из архива');
+ async handleRestore(item) {
+ if (item.group) {
+ const keys = [{key: item.key}];
+ for (const book of item.group)
+ keys.push({key: book.key});
+
+ await bookManager.restoreRecentBooks(keys);
+ this.$root.notify.info(`Группа книг (всего ${keys.length}) восстановлена из архива`);
+ } else {
+ await bookManager.restoreRecentBooks([{key: item.key}]);
+ this.$root.notify.info('Книга восстановлена из архива');
+ }
}
async loadBook(item, force = false) {
diff --git a/client/components/Reader/share/bookManager.js b/client/components/Reader/share/bookManager.js
index 8308cf0d..73b7c390 100644
--- a/client/components/Reader/share/bookManager.js
+++ b/client/components/Reader/share/bookManager.js
@@ -467,7 +467,7 @@ class BookManager {
async getRecentBook(value) {
return this.recent[value.key];
}
-
+/*
async delRecentBook(value, delFlag = 1) {
const item = this.recent[value.key];
item.deleted = delFlag;
@@ -479,13 +479,37 @@ class BookManager {
await this.recentSetItem(item);
this.emit('recent-deleted', value.key);
}
+*/
+ async delRecentBooks(values, delFlag = 1) {
+ for (const value of values) {
+ const item = this.recent[value.key];
+ item.deleted = delFlag;
+ if (this.recentLastKey == value.key) {
+ await this.recentSetLastKey(null);
+ }
+
+ await this.recentSetItem(item);
+ }
+
+ this.emit('recent-deleted');
+ }
+/*
async restoreRecentBook(value) {
const item = this.recent[value.key];
item.deleted = 0;
await this.recentSetItem(item);
}
+*/
+ async restoreRecentBooks(values) {
+ for (const value of values) {
+ const item = this.recent[value.key];
+ item.deleted = 0;
+
+ await this.recentSetItem(item);
+ }
+ }
async setCheckBuc(value, checkBuc) {
const item = this.recent[value.key];