Skip to content

Commit

Permalink
Merge branch 'release/1.2.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
bookpauk committed Aug 2, 2024
2 parents 59c4b62 + 6453978 commit fc8e986
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 33 deletions.
8 changes: 4 additions & 4 deletions client/components/Reader/RecentBooksPage/RecentBooksPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,7 @@ class RecentBooksPage {
}
async handleDel(item) {
if (item.group) {
if (item.group?.length) {
const keys = [{key: item.key}];
for (const book of item.group)
keys.push({key: book.key});
Expand All @@ -615,14 +615,14 @@ class RecentBooksPage {
} else {
if (await this.$root.stdDialog.confirm('Подтвердите удаление книги из архива:', ' ')) {
await bookManager.delRecentBooks([{key: item.key}], 2);
this.$root.notify.info('Книга удалено безвозвратно');
this.$root.notify.info('Книга удалена безвозвратно');
}
}
}
}
async handleRestore(item) {
if (item.group) {
if (item.group?.length) {
const keys = [{key: item.key}];
for (const book of item.group)
keys.push({key: book.key});
Expand All @@ -637,7 +637,7 @@ class RecentBooksPage {
async loadBook(item, force = false) {
if (item.deleted)
await this.handleRestore(item.key);
await this.handleRestore(item);
this.$emit('load-book', {url: item.url, path: item.path, force});
this.close();
Expand Down
27 changes: 19 additions & 8 deletions client/components/Reader/TextPage/DrawHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ export default class DrawHelper {
return this.context.measureText(text).width;
}

measureTextMetrics(text, style) {// eslint-disable-line no-unused-vars
this.context.font = this.fontByStyle(style);
return this.context.measureText(text);
}

measureTextFont(text, font) {// eslint-disable-line no-unused-vars
this.context.font = font;
return this.context.measureText(text).width;
Expand All @@ -39,18 +44,27 @@ export default class DrawHelper {
let center = false;
let space = 0;
let j = 0;
const pad = this.fontSize/2;
//формируем строку
for (const part of line.parts) {
let tOpen = '';
tOpen += (part.style.bold ? '<b>' : '');
tOpen += (part.style.italic ? '<i>' : '');
tOpen += (part.style.sup ? '<span style="vertical-align: baseline; position: relative; line-height: 0; top: -0.3em">' : '');
tOpen += (part.style.sub ? '<span style="vertical-align: baseline; position: relative; line-height: 0; top: 0.3em">' : '');
tOpen += (part.style.note ? `<span style="position: relative;">` +
`<span style="position: absolute; background-color: ${this.textColor}; opacity: 0.1; cursor: pointer; pointer-events: auto; ` +
`height: ${this.fontSize + pad*2}px; padding: ${pad}px; left: -${pad}px; top: -${pad*0.9}px; border-radius: ${this.fontSize}px;" ` +
`onclick="onNoteClickLiberama('${part.style.note.id}', ${part.style.note.orig ? 1 : 0})"><span style="visibility: hidden;">__TEXT</span></span>` : '');
if (part.style.note) {
const t = part.text;
const m = this.measureTextMetrics(t, part.style);
const d = this.fontSize - 1.1*m.fontBoundingBoxAscent;
const w = m.width;
const size = (this.fontSize > 18 ? this.fontSize : 18);
const pad = size/2;
const btnW = (w >= size ? w : size) + pad*2;

tOpen += `<span style="position: relative;">` +
`<span style="position: absolute; background-color: ${this.textColor}; opacity: 0.1; cursor: pointer; pointer-events: auto; ` +
`height: ${this.fontSize + pad*2}px; padding: ${pad}px; left: -${(btnW - w)/2 - pad*0.05}px; top: -${pad + d}px; width: ${btnW}px; border-radius: ${size}px;" ` +
`onclick="onNoteClickLiberama('${part.style.note.id}', ${part.style.note.orig ? 1 : 0})"><span style="visibility: hidden;" class="dborder">${t}</span></span>`;
}
let tClose = '';
tClose += (part.style.note ? '</span>' : '');
tClose += (part.style.sub ? '</span>' : '');
Expand All @@ -70,9 +84,6 @@ export default class DrawHelper {
if (text && text.trim() == '')
text = `<span style="white-space: pre">${text}</span>`;

if (part.style.note)
tOpen = tOpen.replace('__TEXT', text);

lineText += `${tOpen}${text}${tClose}`;

center = center || part.style.center;
Expand Down
21 changes: 17 additions & 4 deletions client/components/Reader/TextPage/TextPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
v-show="clickControl" ref="layoutEvents" class="layout events"
oncontextmenu="return false;"
@mousedown.prevent.stop="onMouseDown" @mouseup.prevent.stop="onMouseUp"
@mouseover.prevent.stop="onMouseEvent" @mouseout.prevent.stop="onMouseEvent" @mousemove.prevent.stop="onMouseEvent"
@wheel.prevent.stop="onMouseWheel"
@touchstart.stop="onTouchStart" @touchend.stop="onTouchEnd" @touchmove.stop="onTouchMove" @touchcancel.prevent.stop="onTouchCancel"
>
Expand All @@ -38,9 +39,9 @@

<!-- Примечание -->
<Dialog ref="dialog1" v-model="noteDialogVisible">
<!--template #header>
Примечание
</template-->
<template #header>
{{ noteTitle }}
</template>

<div class="column col" style="line-height: 20px; max-width: 400px; max-height: 200px; overflow-x: hidden; overflow-y: auto">
<div v-html="noteHtml"></div>
Expand All @@ -49,7 +50,7 @@
<template #footer>
<div class="row col">
<q-btn class="q-px-md q-mr-md" color="btn2" text-color="app" dense no-caps @click="goToNotes">
В примечаниях
В примечания
</q-btn>
</div>

Expand Down Expand Up @@ -148,6 +149,7 @@ class TextPage {
noteDialogVisible = false;
noteId = '';
noteTitle = '';
noteHtml = '';
created() {
Expand Down Expand Up @@ -1072,6 +1074,7 @@ class TextPage {
if (this.startTouch) {
event.preventDefault();
}
this.endClickRepeat();
}
onTouchEnd(event) {
Expand Down Expand Up @@ -1156,13 +1159,22 @@ class TextPage {
onMouseWheel(event) {
if (this.$root.isMobileDevice)
return;
this.endClickRepeat();
if (event.deltaY > 0) {
this.doDown();
} else if (event.deltaY < 0) {
this.doUp();
}
}
onMouseEvent() {
if (this.$root.isMobileDevice)
return;
this.endClickRepeat();
}
onStatusBarClick() {
const url = this.meta.url;
if (url && url.indexOf('disk://') != 0) {
Expand Down Expand Up @@ -1271,6 +1283,7 @@ class TextPage {
if (note) {
if (orig) {//show dialog
this.noteId = noteId;
this.noteTitle = `[${note.title?.trim()}]`;
this.noteHtml = note.xml
.replace(/<p>/g, '<p class="note-para">')
.replace(/<stanza>/g, '<br>').replace(/<\/stanza>/g, '')
Expand Down
31 changes: 18 additions & 13 deletions client/components/Reader/share/BookParser.js
Original file line number Diff line number Diff line change
Expand Up @@ -402,17 +402,6 @@ export default class BookParser {
bodyIndex++;
}

if (tag == 'title') {
newParagraph();
isFirstTitlePara = true;
bold = true;
center = true;

inTitle = true;
curTitle = {paraIndex, title: '', inset: sectionLevel, bodyIndex, subtitles: []};
this.contents.push(curTitle);
}

if (tag == 'section') {
if (!isFirstSection)
newParagraph();
Expand All @@ -431,12 +420,24 @@ export default class BookParser {

note.noteParaIndex = paraIndex;
note.xml = '';
note.title = '';
noteId = id;
}

}
}

if (tag == 'title') {
newParagraph();
isFirstTitlePara = true;
bold = true;
center = true;

inTitle = true;
curTitle = {paraIndex, title: '', inset: sectionLevel, bodyIndex, subtitles: []};
this.contents.push(curTitle);
}

if (tag == 'emphasis' || tag == 'strong' || tag == 'sup' || tag == 'sub') {
growParagraph(`<${tag}>`, 0);
}
Expand Down Expand Up @@ -642,8 +643,12 @@ export default class BookParser {
else
growParagraph(' ', 1);

if (!inTitle && inNotesBody && noteId) {
this.notes[noteId].xml += text;
if (inNotesBody && noteId) {
if (inTitle) {
this.notes[noteId].title += text;
} else {
this.notes[noteId].xml += text;
}
}
}
};
Expand Down
15 changes: 14 additions & 1 deletion client/components/Reader/versionHistory.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,21 @@
export const versionHistory = [
{
version: '1.2.3',
releaseDate: '2024-08-02',
showUntil: '2024-08-01',
content:
`
<ul>
<li>исправление багов</li>
</ul>
`
},

{
version: '1.2.2',
releaseDate: '2024-07-28',
showUntil: '2024-08-04',
showUntil: '2024-07-27',
content:
`
<ul>
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "liberama",
"version": "1.2.2",
"version": "1.2.3",
"author": "Book Pauk <bookpauk@gmail.com>",
"license": "CC0-1.0",
"repository": "bookpauk/liberama",
Expand Down

0 comments on commit fc8e986

Please sign in to comment.