mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-08 08:49:52 +00:00
FEATURE signature: show full pages - UI and turn pages
This commit is contained in:
parent
96dfddc55f
commit
bd3198e42b
@ -26,9 +26,9 @@
|
|||||||
</template>
|
</template>
|
||||||
</modal>
|
</modal>
|
||||||
</teleport>
|
</teleport>
|
||||||
<div class="col-12 m-auto">
|
<div class="col-12 m-auto sticky-top">
|
||||||
<div class="row justify-content-center border-bottom pdf-tools d-md-none">
|
<div class="row justify-content-center border-bottom pdf-tools d-md-none">
|
||||||
<div class="col text-center turn-page">
|
<div class="col-5 text-center turn-page">
|
||||||
<select
|
<select
|
||||||
class="form-select form-select-sm"
|
class="form-select form-select-sm"
|
||||||
id="zoomSelect"
|
id="zoomSelect"
|
||||||
@ -75,10 +75,13 @@
|
|||||||
</button>
|
</button>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
id="checkbox"
|
id="checkboxMulti"
|
||||||
v-model="multiPage"
|
v-model="multiPage"
|
||||||
@change="toggleMultiPage"
|
@change="toggleMultiPage"
|
||||||
/>
|
/>
|
||||||
|
<label class="form-check-label" for="checkboxMulti">
|
||||||
|
{{ $t("all_pages") }}
|
||||||
|
</label>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@ -143,7 +146,7 @@
|
|||||||
<div
|
<div
|
||||||
class="row justify-content-center border-bottom pdf-tools d-none d-md-flex"
|
class="row justify-content-center border-bottom pdf-tools d-none d-md-flex"
|
||||||
>
|
>
|
||||||
<div class="col-3 text-center turn-page ps-3">
|
<div class="col-5 text-center turn-page ps-3">
|
||||||
<select
|
<select
|
||||||
class="form-select form-select-sm"
|
class="form-select form-select-sm"
|
||||||
id="zoomSelect"
|
id="zoomSelect"
|
||||||
@ -173,10 +176,13 @@
|
|||||||
</button>
|
</button>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
id="checkbox"
|
id="checkboxMulti"
|
||||||
v-model="multiPage"
|
v-model="multiPage"
|
||||||
@change="toggleMultiPage"
|
@change="toggleMultiPage"
|
||||||
/>
|
/>
|
||||||
|
<label class="form-check-label" for="checkboxMulti">
|
||||||
|
{{ $t("see_all_pages") }}
|
||||||
|
</label>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
@ -263,15 +269,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-if="multiPage"
|
v-if="multiPage"
|
||||||
class="col-xs-12 col-md-12 col-lg-9 m-auto my-5 text-center"
|
class="col-xs-12 col-md-12 col-lg-9 m-auto my-5 text-center d-flex flex-column"
|
||||||
:class="{ onAddZone: canvasEvent === 'add' }"
|
:class="{ onAddZone: canvasEvent === 'add' }"
|
||||||
>
|
>
|
||||||
<canvas
|
<canvas v-for="p in pageCount" :key="p" :id="`canvas-${p}`"></canvas>
|
||||||
v-for="p in pageCount"
|
|
||||||
:key="p"
|
|
||||||
class="m-auto"
|
|
||||||
:id="`canvas-${p}`"
|
|
||||||
></canvas>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
@ -339,7 +340,7 @@ import {download_and_decrypt_doc, download_doc_as_pdf} from "../StoredObjectButt
|
|||||||
|
|
||||||
pdfjsLib.GlobalWorkerOptions.workerSrc = "pdfjs-dist/build/pdf.worker.mjs";
|
pdfjsLib.GlobalWorkerOptions.workerSrc = "pdfjs-dist/build/pdf.worker.mjs";
|
||||||
|
|
||||||
const multiPage: Ref<boolean> = ref(false);
|
const multiPage: Ref<boolean> = ref(true);
|
||||||
const modalOpen: Ref<boolean> = ref(false);
|
const modalOpen: Ref<boolean> = ref(false);
|
||||||
const loading: Ref<boolean> = ref(false);
|
const loading: Ref<boolean> = ref(false);
|
||||||
const adding: Ref<boolean> = ref(false);
|
const adding: Ref<boolean> = ref(false);
|
||||||
@ -405,7 +406,6 @@ declare global {
|
|||||||
const $toast = useToast();
|
const $toast = useToast();
|
||||||
|
|
||||||
const signature = window.signature;
|
const signature = window.signature;
|
||||||
console.log("signature", signature);
|
|
||||||
|
|
||||||
const setZoomLevel = async (zoomLevel: string) => {
|
const setZoomLevel = async (zoomLevel: string) => {
|
||||||
zoom.value = Number.parseFloat(zoomLevel);
|
zoom.value = Number.parseFloat(zoomLevel);
|
||||||
@ -545,7 +545,6 @@ const selectZoneEvent = (e: PointerEvent, canvas: HTMLCanvasElement) =>
|
|||||||
selectZone(z, canvas);
|
selectZone(z, canvas);
|
||||||
} else {
|
} else {
|
||||||
if (userSignatureZone.value.index === z.index) {
|
if (userSignatureZone.value.index === z.index) {
|
||||||
console.log("going to sign zone: ", z.index);
|
|
||||||
sign();
|
sign();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -558,10 +557,14 @@ const canvasClick = (e: PointerEvent, canvas: HTMLCanvasElement) =>
|
|||||||
: addZoneEvent(e, canvas);
|
: addZoneEvent(e, canvas);
|
||||||
|
|
||||||
const turnPage = async (upOrDown: number) => {
|
const turnPage = async (upOrDown: number) => {
|
||||||
//userSignatureZone.value = null; // desactivate the reset of the zone when turning page
|
|
||||||
page.value = page.value + upOrDown;
|
page.value = page.value + upOrDown;
|
||||||
await setPage(page.value);
|
if (multiPage.value) {
|
||||||
setTimeout(drawAllZones, 200);
|
const canvas = getCanvas(page.value);
|
||||||
|
canvas.scrollIntoView();
|
||||||
|
} else {
|
||||||
|
await setPage(page.value);
|
||||||
|
setTimeout(drawAllZones, 200);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const turnSignature = async (upOrDown: number) => {
|
const turnSignature = async (upOrDown: number) => {
|
||||||
@ -579,6 +582,7 @@ const turnSignature = async (upOrDown: number) => {
|
|||||||
page.value = currentZone.PDFPage.index + 1;
|
page.value = currentZone.PDFPage.index + 1;
|
||||||
const canvas = getCanvas(currentZone.PDFPage.index + 1);
|
const canvas = getCanvas(currentZone.PDFPage.index + 1);
|
||||||
selectZone(currentZone, canvas);
|
selectZone(currentZone, canvas);
|
||||||
|
canvas.scrollIntoView();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -786,6 +790,7 @@ init();
|
|||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
canvas {
|
canvas {
|
||||||
box-shadow: 0 20px 20px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 20px 20px rgba(0, 0, 0, 0.2);
|
||||||
|
margin: 1rem auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.onAddZone {
|
.onAddZone {
|
||||||
@ -805,6 +810,10 @@ div#action-buttons {
|
|||||||
div.pdf-tools {
|
div.pdf-tools {
|
||||||
background-color: #f3f3f3;
|
background-color: #f3f3f3;
|
||||||
font-size: 0.6rem;
|
font-size: 0.6rem;
|
||||||
|
label {
|
||||||
|
font-size: 0.75rem !important;
|
||||||
|
margin: auto 0 auto 0.3rem;
|
||||||
|
}
|
||||||
button {
|
button {
|
||||||
font-size: 0.75rem !important;
|
font-size: 0.75rem !important;
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,8 @@ const appMessages = {
|
|||||||
loading: 'Chargement...',
|
loading: 'Chargement...',
|
||||||
remove_sign_zone: 'Enlever la zone',
|
remove_sign_zone: 'Enlever la zone',
|
||||||
return: 'Retour',
|
return: 'Retour',
|
||||||
|
see_all_pages: 'Voir toutes les pages',
|
||||||
|
all_pages: 'Toutes les pages',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user