mirror of
https://github.com/24eme/signaturepdf
synced 2024-05-21 15:16:37 +02:00
Merge branch 'internationalisation'
This commit is contained in:
commit
a18f539df6
23
Makefile
23
Makefile
|
@ -1,4 +1,8 @@
|
|||
.PHONY: test
|
||||
.PHONY: test all
|
||||
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
all: update_trad
|
||||
|
||||
node_modules/jest/bin/jest.js:
|
||||
npm install jest
|
||||
|
@ -8,3 +12,20 @@ node_modules/puppeteer:
|
|||
|
||||
test: node_modules/jest/bin/jest.js node_modules/puppeteer
|
||||
./node_modules/jest/bin/jest.js
|
||||
|
||||
update_trad:
|
||||
# Extraction des phrases traductibles...
|
||||
@xgettext --from-code=utf-8 --output=./locale/application.pot templates/*.php
|
||||
|
||||
# Mise a jour des fichiers .po...
|
||||
@for lang in $$(find locale -mindepth 1 -maxdepth 1 -type d); do \
|
||||
po_file="$$lang/LC_MESSAGES/application.po"; \
|
||||
msgmerge --update -N "$$po_file" ./locale/application.pot; \
|
||||
done
|
||||
|
||||
# Creation des fichiers .mo...
|
||||
@for lang in $$(find locale -mindepth 1 -maxdepth 1 -type d); do \
|
||||
po_file="$$lang/LC_MESSAGES/application.po"; \
|
||||
rm -f "$$lang/LC_MESSAGES/application.mo"; \
|
||||
msgfmt "$$po_file" --output-file="$$lang/LC_MESSAGES/application.mo"; \
|
||||
done
|
||||
|
|
329
README.en.md
Normal file
329
README.en.md
Normal file
|
@ -0,0 +1,329 @@
|
|||
<sup>[Français](README.md) | **[English](README.en.md)**</sup>
|
||||
|
||||
# PDF Signature
|
||||
|
||||
Free web software for signing PDFs.
|
||||
|
||||
## Instances
|
||||
List of instances where you can use this software:
|
||||
- [pdf.24eme.fr](https://pdf.24eme.fr)
|
||||
- [pdf.libreon.fr](https://pdf.libreon.fr)
|
||||
- [pdf.hostux.net](https://pdf.hostux.net)
|
||||
- [pdf.nebulae.co](https://pdf.nebulae.co)
|
||||
|
||||
_Feel free to add yours through an issue or a pull request._
|
||||
|
||||
## License
|
||||
Open-source software under the AGPL V3 license.
|
||||
|
||||
## Installation
|
||||
### Debian/Ubuntu
|
||||
Dependencies:
|
||||
- php >= 5.6
|
||||
- rsvg-convert
|
||||
- pdftk
|
||||
- imagemagick
|
||||
- potrace
|
||||
|
||||
Installing dependencies:
|
||||
```
|
||||
sudo aptitude install php librsvg2-bin pdftk imagemagick potrace
|
||||
```
|
||||
|
||||
Getting the source code:
|
||||
|
||||
```
|
||||
git clone https://github.com/24eme/signaturepdf.git
|
||||
```
|
||||
|
||||
To run it:
|
||||
|
||||
```
|
||||
php -S localhost:8000 -t public
|
||||
```
|
||||
|
||||
#### PHP Configuration
|
||||
|
||||
```
|
||||
upload_max_filesize = 24M # Maximum size of the PDF file to sign
|
||||
post_max_size = 24M # Maximum size of the PDF file to sign
|
||||
max_file_uploads = 201 # Maximum number of pages in the PDF, here 200 pages + the original PDF
|
||||
```
|
||||
|
||||
#### Apache Configuration
|
||||
|
||||
```
|
||||
DocumentRoot /path/to/signaturepdf/public
|
||||
<Directory /path/to/signaturepdf/public>
|
||||
Require all granted
|
||||
FallbackResource /index.php
|
||||
php_value max_file_uploads 201
|
||||
php_value upload_max_filesize 24M
|
||||
php_value post_max_size 24M
|
||||
</Directory>
|
||||
```
|
||||
|
||||
### Deploy with Docker
|
||||
|
||||
#### Building the image
|
||||
|
||||
```bash
|
||||
docker build -t signaturepdf .
|
||||
```
|
||||
|
||||
#### Running a container
|
||||
|
||||
```bash
|
||||
docker run -d --name=signaturepdf -p 8080:80 signaturepdf
|
||||
```
|
||||
|
||||
[localhost:8080](http://localhost:8080)
|
||||
|
||||
#### Configuration
|
||||
|
||||
The following variables can be used to configure the deployment:
|
||||
|
||||
| Variable | description | exemple | defaut |
|
||||
| ---------------------- |-----------------------------------------------------------------------| -------------------------------- | --------- |
|
||||
| `SERVERNAME` | Deployment URL | `pdf.24eme.fr` | localhost |
|
||||
| `UPLOAD_MAX_FILESIZE` | Maximum size of the PDF file to sign | 48M | 24M |
|
||||
| `POST_MAX_SIZE` | Maximum size of the PDF file to sign | 48M | 24M |
|
||||
| `MAX_FILE_UPLOADS` | Maximum number of pages in the PDF, here 200 pages + the original PDF | 401 | 201 |
|
||||
| `PDF_STORAGE_PATH` | Path where uploaded PDF files can be stored | /data | /data |
|
||||
| `DISABLE_ORGANIZATION` | Disable the Organize route | true | false |
|
||||
| `PDF_DEMO_LINK` | Show, hide, or change the demo PDF link | false, `link` or `relative path` | true |
|
||||
|
||||
```bash
|
||||
docker run -d --name=signaturepdf -p 8080:80 -e SERVERNAME=pdf.example.org -e UPLOAD_MAX_FILESIZE=48M -e POST_MAX_SIZE=48M -e MAX_FILE_UPLOADS=401 -e PDF_STORAGE_PATH=/data signaturepdf
|
||||
```
|
||||
|
||||
### Alpine
|
||||
|
||||
Here is a script to install the solution on Linux Alpine (tested with version 3.15).
|
||||
Remember to edit the "domain" variable at the beginning of the script to match the URL it will be called with.
|
||||
|
||||
The main components are:
|
||||
|
||||
- php 8 + php-fpm
|
||||
- Nginx
|
||||
- pdftk ("manual" installation requiring openjdk8)
|
||||
- imagick
|
||||
- potrace
|
||||
- librsvg
|
||||
|
||||
What the script does:
|
||||
|
||||
- Installs dependencies
|
||||
- Configures php and php-fpm
|
||||
- Configures Nginx
|
||||
- Configures the config.ini
|
||||
- Clones the repo
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
|
||||
domain='sign.example.com'
|
||||
|
||||
apk update
|
||||
apk add bash nginx git php8 php8-fpm php8-session php8-gd php8-fileinfo openjdk8 imagemagick potrace librsvg
|
||||
|
||||
cd /tmp
|
||||
wget https://gitlab.com/pdftk-java/pdftk/-/jobs/924565145/artifacts/raw/build/libs/pdftk-all.jar
|
||||
mv pdftk-all.jar pdftk.jar
|
||||
|
||||
cat <<EOF >>pdftk
|
||||
#!/usr/bin/env bash
|
||||
/usr/bin/java -jar "\$0.jar" "\$@"
|
||||
EOF
|
||||
|
||||
chmod 775 pdftk*
|
||||
mv pdftk* /usr/bin
|
||||
|
||||
sed -i 's/user = nobody/user = nginx/g' /etc/php8/php-fpm.d/www.conf
|
||||
sed -i 's/;listen.owner = nginx/listen.owner = nginx/g' /etc/php8/php-fpm.d/www.conf
|
||||
|
||||
sed -i 's/post_max_size = 8M/post_max_size = 50M/g' /etc/php8/php.ini
|
||||
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/g' /etc/php8/php.ini
|
||||
sed -i 's/max_file_uploads = 20 /max_file_uploads = 300/g' /etc/php8/php.ini
|
||||
|
||||
service php-fpm8 restart
|
||||
|
||||
cd /var/www
|
||||
git clone https://github.com/24eme/signaturepdf.git
|
||||
|
||||
cat <<EOF >>/etc/nginx/http.d/signaturepdf.conf
|
||||
server {
|
||||
|
||||
listen 80 default_server;
|
||||
listen [::]:80 default_server;
|
||||
|
||||
server_name ${domain};
|
||||
|
||||
client_max_body_size 0;
|
||||
|
||||
root /var/www/signaturepdf/public/;
|
||||
|
||||
index index.php index.html;
|
||||
|
||||
location / {
|
||||
# URLs to attempt, including pretty ones.
|
||||
try_files \$uri \$uri/ /index.php?\$query_string;
|
||||
}
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
root /var/www/signaturepdf/public/;
|
||||
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_index index.php;
|
||||
include fastcgi_params;
|
||||
|
||||
fastcgi_buffer_size 128k;
|
||||
fastcgi_buffers 128 128k;
|
||||
fastcgi_param PATH_INFO \$fastcgi_path_info;
|
||||
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
EOF
|
||||
|
||||
rm /etc/nginx/http.d/default.conf
|
||||
rm -R /var/www/localhost
|
||||
|
||||
service nginx restart
|
||||
|
||||
rc-update add nginx
|
||||
rc-update add php-fpm8
|
||||
|
||||
mkdir /var/www/signaturepdf/tmp
|
||||
chown nginx /var/www/signaturepdf/tmp
|
||||
|
||||
cat <<EOF >>/var/www/signaturepdf/config/config.ini
|
||||
PDF_STORAGE_PATH=/var/www/signaturepdf/tmp
|
||||
EOF
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Enabling and Configuring Multi-Signature Mode
|
||||
|
||||
This mode allows multiple people to sign a PDF, but it requires that the PDFs be stored on the server.
|
||||
|
||||
It is not mandatory to enable this mode for the application to work; it is an option.
|
||||
|
||||
Create the `config/config.ini` file
|
||||
|
||||
```
|
||||
cp config/config.ini{.example,}
|
||||
```
|
||||
|
||||
In the `config/config.ini` file, configure the `PDF_STORAGE_PATH` variable with the path where uploaded PDF files can be stored:
|
||||
|
||||
```
|
||||
PDF_STORAGE_PATH=/path/to/folder
|
||||
```
|
||||
|
||||
Create this folder:
|
||||
|
||||
```
|
||||
mkdir /path/to/folder
|
||||
```
|
||||
|
||||
The web server should have write permissions on this folder.
|
||||
|
||||
For example, for Apache:
|
||||
|
||||
```
|
||||
chown www-data /path/to/folder/to/store/pdf
|
||||
```
|
||||
|
||||
### Disabling the Organize Mode
|
||||
|
||||
To disable the Organize mode, add `DISABLE_ORGANIZATION=true` to the
|
||||
`config/config.ini` file.
|
||||
|
||||
### Hiding or Modifying the Demo PDF Link
|
||||
|
||||
To hide the demo PDF link, add `PDF_DEMO_LINK=false` to the
|
||||
`config/config.ini` file.
|
||||
|
||||
### Default Fields for Metadata Editing
|
||||
|
||||
In the `config/config.ini` file, you can add as many fields as you want with the HTML input type (text, date, number, email, etc.) that will be preloaded for each PDF.
|
||||
|
||||
```
|
||||
METADATA_DEFAULT_FIELDS[field1].type = "text"
|
||||
METADATA_DEFAULT_FIELDS[field2].type = "text"
|
||||
METADATA_DEFAULT_FIELDS[field3].type = "date"
|
||||
METADATA_DEFAULT_FIELDS[field4].type = "number"
|
||||
```
|
||||
|
||||
## Update
|
||||
|
||||
The latest stable version is on the `master` branch. To update, simply fetch the latest changes:
|
||||
|
||||
```
|
||||
git pull -r
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
To run functional tests:
|
||||
|
||||
```
|
||||
make test
|
||||
```
|
||||
|
||||
The tests are performed using `puppeteer` and `jest`.
|
||||
|
||||
To run the tests and view the browser (in debug mode):
|
||||
|
||||
```
|
||||
DEBUG=1 make test
|
||||
```
|
||||
|
||||
## Libraries Used
|
||||
|
||||
- **Fat-Free** PHP micro framework: https://github.com/bcosca/fatfree (GPLv3)
|
||||
- **Bootstrap** HTML, CSS, and JavaScript framework: https://getbootstrap.com/ (MIT)
|
||||
- **PDF.js** JavaScript library for rendering PDFs in an HTML canvas: https://github.com/mozilla/pdf.js (Apache-2.0)
|
||||
- **Fabric.js** JavaScript library for manipulating an HTML canvas: https://github.com/fabricjs/fabric.js (MIT)
|
||||
- **PDFtk** PDF manipulation tools (GPL)
|
||||
- **librsvg** SVG manipulation tools: https://gitlab.gnome.org/GNOME/librsvg (LGPL-2+)
|
||||
- **potrace** Bitmap to vector image conversion tools: http://potrace.sourceforge.net/ (GPLv2)
|
||||
- **OpenType.js** Tools for converting text and its font into paths: https://github.com/opentypejs/opentype.js (MIT)
|
||||
- **ImageMagick** Image manipulation toolset: https://imagemagick.org/ (Apache-2.0)
|
||||
- **Caveat** Handwriting-style font: https://github.com/googlefonts/caveat (OFL-1.1)
|
||||
- **PDF-LIB** JavaScript library for PDF manipulation used for writing metadata: https://pdf-lib.js.org/ (MIT)
|
||||
|
||||
For testing:
|
||||
|
||||
- **Jest** JavaScript Testing Framework: https://jestjs.io/ (MIT)
|
||||
- **Puppeteer** Node.js library for controlling a web browser: https://github.com/puppeteer/puppeteer (Apache-2.0)
|
||||
|
||||
## Contributions
|
||||
|
||||
### Translation
|
||||
|
||||
To update the translation, simply execute `make` that will update the `.pot` file,
|
||||
which will merge the `.po` files which then will allow to create updated `.mo` files.
|
||||
|
||||
Translations might be added on Weblate : https://hosted.weblate.org/projects/signature-pdf/application/
|
||||
|
||||
|
||||
### Contributors
|
||||
|
||||
These people are the authors of the code of this software :
|
||||
|
||||
Vincent LAURENT (24ème), Jean-Baptiste Le Metayer (24ème), Xavier Garnier (Logilab), Simon Chabot (Logilab), Tangui Morlier (24ème), Gabriel POMA (24ème), Tanguy Le Faucheur (24ème), Étienne Deparis, battosai30
|
||||
|
||||
### Fundings
|
||||
|
||||
- 1 365 € excl. taxes from the company Logilab for the development of the shared signature feature
|
||||
- 1 950 € excl. taxes from the company Logilab for the development of the metadata editing feature
|
||||
- 100 € excl. taxes donations from the company Spirkop
|
||||
- 100 € excl. taxes donations from the company PDG IT
|
||||
- 1 040 € excl. taxes from the foundation NLNet pour software internationalization
|
||||
|
||||
The development of the software was primarily done during the working hours of 24ème employees.
|
29
README.md
29
README.md
|
@ -1,4 +1,6 @@
|
|||
# Signature de PDF
|
||||
<sup>**[Français](README.md)** | [English](README.en.md)</sup>
|
||||
|
||||
# Signature de PDF
|
||||
|
||||
Logiciel web libre permettant de signer un PDF.
|
||||
|
||||
|
@ -310,18 +312,25 @@ Pour les tests :
|
|||
|
||||
## Contributions
|
||||
|
||||
### Traduction
|
||||
### Traductions
|
||||
|
||||
Les traductions peuvent etre faites sur Weblate : https://hosted.weblate.org/projects/signature-pdf/application/
|
||||
Pour mettre à jour la traduction, exécutez simplement `make` qui mettra a jour le fichier `.pot`,
|
||||
qui fera un merge avec les fichiers `.po` qui permetteront de recréer les fichiers `.mo` mis a jour.
|
||||
|
||||
Des traductions peuvent etre ajoutées sur Weblate : https://hosted.weblate.org/projects/signature-pdf/application/
|
||||
|
||||
### Contributeurs
|
||||
|
||||
- Vincent LAURENT (24ème)
|
||||
- Le Metayer Jean-Baptiste (24ème)
|
||||
- Xavier Garnier (Logilab)
|
||||
- Simon Chabot (Logilab)
|
||||
- Gabriel POMA (24ème)
|
||||
Ces personnes sont auteurices du code de ce logiciel :
|
||||
|
||||
Logilab a apporté une contribution financière de 1 365 € TTC à la société 24ème pour développer le mode multi signature.
|
||||
Vincent LAURENT (24ème), Jean-Baptiste Le Metayer (24ème), Xavier Garnier (Logilab), Simon Chabot (Logilab), Tangui Morlier (24ème), Gabriel POMA (24ème), Tanguy Le Faucheur (24ème), Étienne Deparis, battosai30
|
||||
|
||||
Le développement du logiciel a principalement été réalisé sur le temps de travail de salariés du 24ème.
|
||||
### Financements
|
||||
|
||||
- 1 365 € HT de la société Logilab pour le développement du mode signature partagé à plusieurs
|
||||
- 1 950 € HT de la société Logilab pour le développement de l'édition des métadonnées
|
||||
- 100 € HT de don de la société Spirkop
|
||||
- 100 € HT de don de la société PDG IT
|
||||
- 1 040 € HT de la fondation NLNet pour l'internationalisation du logiciel
|
||||
|
||||
Les modules signature et organiser ont été réalisés sur le temps de travail de salariés du 24ème.
|
||||
|
|
24
app.php
24
app.php
|
@ -2,10 +2,16 @@
|
|||
|
||||
$f3 = require(__DIR__.'/vendor/fatfree/base.php');
|
||||
|
||||
session_start();
|
||||
|
||||
if(getenv("DEBUG")) {
|
||||
$f3->set('DEBUG', getenv("DEBUG"));
|
||||
}
|
||||
|
||||
$f3->set('LANGUAGES',
|
||||
['fr' => 'Français',
|
||||
'en' => 'English']);
|
||||
|
||||
$f3->set('XFRAME', null); // Allow use in an iframe
|
||||
$f3->set('ROOT', __DIR__);
|
||||
$f3->set('UI', $f3->get('ROOT')."/templates/");
|
||||
|
@ -30,6 +36,24 @@ if($f3->get('DISABLE_ORGANIZATION')) {
|
|||
$f3->set('disableOrganization', $f3->get('DISABLE_ORGANIZATION'));
|
||||
}
|
||||
|
||||
if ($f3->get('GET.lang')) {
|
||||
$lang = $f3->get('GET.lang');
|
||||
changeLanguage($lang, $f3);
|
||||
} elseif (isset($_SESSION['LANGUAGE'])) {
|
||||
changeLanguage($_SESSION['LANGUAGE'], $f3);
|
||||
} elseif (isset($_COOKIE['LANGUAGE'])) {
|
||||
changeLanguage($_COOKIE['LANGUAGE'], $f3);
|
||||
}
|
||||
bindtextdomain('application', $f3->get('ROOT')."/locale/");
|
||||
textdomain('application');
|
||||
|
||||
function changeLanguage($lang, $f3) {
|
||||
$_SESSION['LANGUAGE'] = $lang;
|
||||
setcookie("LANGUAGE", $lang, strtotime('+1 year'));
|
||||
putenv("LANGUAGE=$lang");
|
||||
$f3->set('LANGUAGE', $lang);
|
||||
}
|
||||
|
||||
$f3->route('GET /',
|
||||
function($f3) {
|
||||
$f3->reroute($f3->get('REVERSE_PROXY_URL').'/signature');
|
||||
|
|
502
locale/application.pot
Normal file
502
locale/application.pot
Normal file
|
@ -0,0 +1,502 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-18 17:56+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: templates/metadata.html.php:13
|
||||
msgid "Editing PDF metadata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:18 templates/organization.html.php:18
|
||||
#: templates/signature.html.php:16
|
||||
msgid "Site not functional without JavaScript enabled"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:24 templates/organization.html.php:24
|
||||
#: templates/signature.html.php:23
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:35 templates/organization.html.php:35
|
||||
#: templates/signature.html.php:34
|
||||
#, php-format
|
||||
msgid "%s Sign"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:38 templates/organization.html.php:38
|
||||
#: templates/signature.html.php:37
|
||||
#, php-format
|
||||
msgid "%s Organize"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:41 templates/organization.html.php:41
|
||||
#: templates/signature.html.php:40
|
||||
#, php-format
|
||||
msgid "%s Metadata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:45
|
||||
#, php-format
|
||||
msgid "%s Edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:46
|
||||
msgid "Add, edit, or remove metadata from a PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:49 templates/metadata.html.php:50
|
||||
#: templates/organization.html.php:49 templates/organization.html.php:50
|
||||
#: templates/signature.html.php:49 templates/signature.html.php:50
|
||||
msgid "Choose a PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:53 templates/organization.html.php:53
|
||||
#: templates/signature.html.php:53
|
||||
msgid "Test with a demo PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:59 templates/organization.html.php:59
|
||||
#: templates/signature.html.php:59
|
||||
msgid "Free open-source software"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:59 templates/organization.html.php:59
|
||||
#: templates/signature.html.php:59
|
||||
msgid "under AGPL-3.0 license"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:59 templates/organization.html.php:59
|
||||
#: templates/signature.html.php:59
|
||||
msgid "see the source code"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:66
|
||||
msgid "List of PDF metadata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:72
|
||||
msgid "Add new metadata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:75
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:77
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:79
|
||||
#, php-format
|
||||
msgid "%s Add"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:85
|
||||
msgid "Close this PDF and return to the home page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:87
|
||||
msgid "Edit metadata"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:97
|
||||
msgid "Save and download the PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/metadata.html.php:103 templates/signature.html.php:268
|
||||
msgid "Download the PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:13
|
||||
msgid "Organize PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:45
|
||||
#, php-format
|
||||
msgid "%s Organize PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:46
|
||||
msgid "Merge, sort, rotate, delete, extract pages"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:49
|
||||
msgid "The PDF must not exceed "
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:49
|
||||
msgid "Mb"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:51
|
||||
msgid ""
|
||||
"The PDF will be processed by the server without being retained or stored"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:64
|
||||
msgid "Touch a page to select it"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:75
|
||||
msgid "Close this PDF and return to home"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:77
|
||||
msgid "PDF organization"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:77 templates/signature.html.php:80
|
||||
msgid "This PDF is stored on your computer to be signed by you only"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:86 templates/organization.html.php:118
|
||||
#, php-format
|
||||
msgid "%s Add a PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:91
|
||||
#, php-format
|
||||
msgid "%s page(s) selected"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:93
|
||||
#, php-format
|
||||
msgid "%s Rotate 90°"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:94 templates/organization.html.php:125
|
||||
#, php-format
|
||||
msgid "%s Move"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:95 templates/organization.html.php:126
|
||||
#, php-format
|
||||
msgid "%s Delete"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:96
|
||||
#, php-format
|
||||
msgid "%s Extract and download"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:98
|
||||
#, php-format
|
||||
msgid "%s Cancel selection"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:106 templates/organization.html.php:132
|
||||
#, php-format
|
||||
msgid "%s Download the full PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:122
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:122
|
||||
msgid "page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:122 templates/signature.html.php:199
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:124
|
||||
#, php-format
|
||||
msgid "%s Turn"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:135
|
||||
#, php-format
|
||||
msgid "Download the selection"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:155
|
||||
msgid "PDF documents"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:171
|
||||
msgid "Select this page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:172
|
||||
msgid "Delete this page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:173
|
||||
msgid "Restore this page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:174
|
||||
msgid "Move this page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:175
|
||||
msgid "Move here"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:176
|
||||
msgid "Turn this page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/organization.html.php:177
|
||||
msgid "Download this page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:45
|
||||
#, php-format
|
||||
msgid "%s Sign a PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:46
|
||||
msgid "Sign, initial, stamp, complete a document"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:49
|
||||
msgid "The PDF should not exceed"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:49
|
||||
msgid "MB and"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:49
|
||||
msgid "pages"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:51
|
||||
msgid "The PDF will be processed by the server without being stored or saved"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:66
|
||||
msgid "How to sign?"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:67
|
||||
msgid "By clicking directly on the document page"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:67
|
||||
msgid "to insert the selected item in the right column"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:67
|
||||
msgid "signature, initial, text, stamp, etc ..."
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:78
|
||||
msgid "Close this PDF and return to the homepage"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:80
|
||||
msgid "PDF Signature"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:80
|
||||
msgid "This PDF is shared with others to be signed by multiple people"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:87
|
||||
msgid "Keep the selection active"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:92
|
||||
#, php-format
|
||||
msgid "%s Signature"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:92 templates/signature.html.php:97
|
||||
#: templates/signature.html.php:102 templates/signature.html.php:200
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:97
|
||||
#, php-format
|
||||
msgid "%s Initial"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:102
|
||||
#, php-format
|
||||
msgid "%s Stamp"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:106
|
||||
#, php-format
|
||||
msgid "%s Text"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:110
|
||||
#, php-format
|
||||
msgid "%s Check box"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:115
|
||||
#, php-format
|
||||
msgid "%s Create an element"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:120
|
||||
#, php-format
|
||||
msgid "%s Share to sign %s with multiple people"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:125 templates/signature.html.php:165
|
||||
msgid "Download the signed PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:130
|
||||
#, php-format
|
||||
msgid "You are %s to have signed this PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:133
|
||||
#, php-format
|
||||
msgid "%s Download the PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:138 templates/signature.html.php:163
|
||||
msgid "Transmit my signature"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:146
|
||||
#, php-format
|
||||
msgid "%s Select a signature"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:175
|
||||
msgid "Draw"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:175
|
||||
msgid "freehand"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:176
|
||||
msgid "Enter"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:176
|
||||
msgid "text"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:177
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:177
|
||||
msgid "an image"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:181
|
||||
msgid "Clear signature"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:185
|
||||
msgid "My signature"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:211
|
||||
#, php-format
|
||||
msgid "%s Share this PDF to sign it with several people"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:215
|
||||
msgid ""
|
||||
"By enabling PDF sharing, you will be able to provide a link to the people of "
|
||||
"your choice so that they can sign this PDF."
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:216
|
||||
#, php-format
|
||||
msgid ""
|
||||
"%s This sharing requires the PDF to be transferred and stored on the server "
|
||||
"for future signers to access."
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
#, php-format
|
||||
msgid "%s The PDF will be kept"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one year"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for six months"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one month"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one week"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one day"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one hour"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "after the last signature."
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:223
|
||||
#, php-format
|
||||
msgid "%s Start sharing"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:235
|
||||
#, php-format
|
||||
msgid "%s Sign this PDF with multiple people"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:239
|
||||
msgid "Multiple people can sign this PDF simultaneously."
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:240
|
||||
msgid ""
|
||||
"To do so, simply share the link to this page with the people of your choice:"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:242
|
||||
msgid "Sharing link"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:247
|
||||
msgid ""
|
||||
"Each of the signatories can download the latest version of the signed PDF at "
|
||||
"any time."
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:250
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:261
|
||||
msgid "Signed PDF"
|
||||
msgstr ""
|
||||
|
||||
#: templates/signature.html.php:265
|
||||
msgid "Your signature has been successfully recorded!"
|
||||
msgstr ""
|
BIN
locale/fr/LC_MESSAGES/application.mo
Normal file
BIN
locale/fr/LC_MESSAGES/application.mo
Normal file
Binary file not shown.
619
locale/fr/LC_MESSAGES/application.po
Normal file
619
locale/fr/LC_MESSAGES/application.po
Normal file
|
@ -0,0 +1,619 @@
|
|||
# French translations for PACKAGE package
|
||||
# Traductions françaises du paquet PACKAGE.
|
||||
# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# tale-fau <tale-fau@talefau-hp-elitebook-840-g3>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-18 17:56+0200\n"
|
||||
"PO-Revision-Date: 2023-09-07 13:19+0000\n"
|
||||
"Last-Translator: 24ème <equipe@24eme.fr>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/signature-pdf/"
|
||||
"application/fr/>\n"
|
||||
"Language: fr_FR\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.0.1-dev\n"
|
||||
|
||||
#: templates/metadata.html.php:13
|
||||
msgid "Editing PDF metadata"
|
||||
msgstr "Édition des métadonnées d'un PDF"
|
||||
|
||||
#: templates/metadata.html.php:18 templates/organization.html.php:18
|
||||
#: templates/signature.html.php:16
|
||||
msgid "Site not functional without JavaScript enabled"
|
||||
msgstr "Site non fonctionnel sans JavaScript activé"
|
||||
|
||||
#: templates/metadata.html.php:24 templates/organization.html.php:24
|
||||
#: templates/signature.html.php:23
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: templates/metadata.html.php:35 templates/organization.html.php:35
|
||||
#: templates/signature.html.php:34
|
||||
#, php-format
|
||||
msgid "%s Sign"
|
||||
msgstr "%s Signer"
|
||||
|
||||
#: templates/metadata.html.php:38 templates/organization.html.php:38
|
||||
#: templates/signature.html.php:37
|
||||
#, php-format
|
||||
msgid "%s Organize"
|
||||
msgstr "%s Organiser"
|
||||
|
||||
#: templates/metadata.html.php:41 templates/organization.html.php:41
|
||||
#: templates/signature.html.php:40
|
||||
#, php-format
|
||||
msgid "%s Metadata"
|
||||
msgstr "%s Metadonnées"
|
||||
|
||||
#: templates/metadata.html.php:45
|
||||
#, php-format
|
||||
msgid "%s Edit metadata"
|
||||
msgstr "%s Éditer les métadonnées"
|
||||
|
||||
#: templates/metadata.html.php:46
|
||||
msgid "Add, edit, or remove metadata from a PDF"
|
||||
msgstr "Ajouter, modifier ou supprimer les métadonnées d'un PDF"
|
||||
|
||||
#: templates/metadata.html.php:49 templates/metadata.html.php:50
|
||||
#: templates/organization.html.php:49 templates/organization.html.php:50
|
||||
#: templates/signature.html.php:49 templates/signature.html.php:50
|
||||
msgid "Choose a PDF"
|
||||
msgstr "Choisir un PDF"
|
||||
|
||||
#: templates/metadata.html.php:53 templates/organization.html.php:53
|
||||
#: templates/signature.html.php:53
|
||||
msgid "Test with a demo PDF"
|
||||
msgstr "Tester avec un PDF de démo"
|
||||
|
||||
#: templates/metadata.html.php:59 templates/organization.html.php:59
|
||||
#: templates/signature.html.php:59
|
||||
msgid "Free open-source software"
|
||||
msgstr "Logiciel libre"
|
||||
|
||||
#: templates/metadata.html.php:59 templates/organization.html.php:59
|
||||
#: templates/signature.html.php:59
|
||||
msgid "under AGPL-3.0 license"
|
||||
msgstr "sous license AGPL-3.0"
|
||||
|
||||
#: templates/metadata.html.php:59 templates/organization.html.php:59
|
||||
#: templates/signature.html.php:59
|
||||
msgid "see the source code"
|
||||
msgstr "voir le code source"
|
||||
|
||||
#: templates/metadata.html.php:66
|
||||
msgid "List of PDF metadata"
|
||||
msgstr "Liste des métadonnées du PDF"
|
||||
|
||||
#: templates/metadata.html.php:72
|
||||
msgid "Add new metadata"
|
||||
msgstr "Ajouter une nouvelle métadonnée"
|
||||
|
||||
#: templates/metadata.html.php:75
|
||||
msgid "Key"
|
||||
msgstr "Clé"
|
||||
|
||||
#: templates/metadata.html.php:77
|
||||
msgid "Value"
|
||||
msgstr "Valeur"
|
||||
|
||||
#: templates/metadata.html.php:79
|
||||
#, php-format
|
||||
msgid "%s Add"
|
||||
msgstr "%s Ajouter"
|
||||
|
||||
#: templates/metadata.html.php:85
|
||||
msgid "Close this PDF and return to the home page"
|
||||
msgstr "Fermer ce PDF et retourner à l'accueil"
|
||||
|
||||
#: templates/metadata.html.php:87
|
||||
msgid "Edit metadata"
|
||||
msgstr "Édition des métadonnées"
|
||||
|
||||
#: templates/metadata.html.php:97
|
||||
msgid "Save and download the PDF"
|
||||
msgstr "Enregistrer et télécharger le PDF"
|
||||
|
||||
#: templates/metadata.html.php:103 templates/signature.html.php:268
|
||||
msgid "Download the PDF"
|
||||
msgstr "Télécharger le PDF"
|
||||
|
||||
#: templates/organization.html.php:13
|
||||
msgid "Organize PDF"
|
||||
msgstr "Organiser un PDF"
|
||||
|
||||
#: templates/organization.html.php:45
|
||||
#, php-format
|
||||
msgid "%s Organize PDF"
|
||||
msgstr "%s Organiser des PDF"
|
||||
|
||||
#: templates/organization.html.php:46
|
||||
msgid "Merge, sort, rotate, delete, extract pages"
|
||||
msgstr "Fusionner, trier, pivoter, supprimer, extraire des pages"
|
||||
|
||||
#: templates/organization.html.php:49
|
||||
msgid "The PDF must not exceed "
|
||||
msgstr "Le PDF ne doit pas dépasser "
|
||||
|
||||
#: templates/organization.html.php:49
|
||||
msgid "Mb"
|
||||
msgstr "Mo"
|
||||
|
||||
#: templates/organization.html.php:51
|
||||
msgid ""
|
||||
"The PDF will be processed by the server without being retained or stored"
|
||||
msgstr "Le PDF sera traité par le serveur sans être conservé ni stocké"
|
||||
|
||||
#: templates/organization.html.php:64
|
||||
msgid "Touch a page to select it"
|
||||
msgstr "Toucher une page pour la sélectionner"
|
||||
|
||||
#: templates/organization.html.php:75
|
||||
msgid "Close this PDF and return to home"
|
||||
msgstr "Fermer ce PDF et retourner à l'accueil"
|
||||
|
||||
#: templates/organization.html.php:77
|
||||
msgid "PDF organization"
|
||||
msgstr "Organisation de PDF"
|
||||
|
||||
#: templates/organization.html.php:77 templates/signature.html.php:80
|
||||
msgid "This PDF is stored on your computer to be signed by you only"
|
||||
msgstr ""
|
||||
"Ce PDF est stocké sur votre ordinateur pour être signé par vous uniquement"
|
||||
|
||||
#: templates/organization.html.php:86 templates/organization.html.php:118
|
||||
#, php-format
|
||||
msgid "%s Add a PDF"
|
||||
msgstr "%s Ajouter un PDF"
|
||||
|
||||
#: templates/organization.html.php:91
|
||||
#, php-format
|
||||
msgid "%s page(s) selected"
|
||||
msgstr "%s page(s) sélectionnée(s)"
|
||||
|
||||
#: templates/organization.html.php:93
|
||||
#, php-format
|
||||
msgid "%s Rotate 90°"
|
||||
msgstr "%s Tourner de 90°"
|
||||
|
||||
#: templates/organization.html.php:94 templates/organization.html.php:125
|
||||
#, php-format
|
||||
msgid "%s Move"
|
||||
msgstr "%s Déplacer"
|
||||
|
||||
#: templates/organization.html.php:95 templates/organization.html.php:126
|
||||
#, php-format
|
||||
msgid "%s Delete"
|
||||
msgstr "%s Supprimer"
|
||||
|
||||
#: templates/organization.html.php:96
|
||||
#, php-format
|
||||
msgid "%s Extract and download"
|
||||
msgstr "%s Extraire et télécharger"
|
||||
|
||||
#: templates/organization.html.php:98
|
||||
#, php-format
|
||||
msgid "%s Cancel selection"
|
||||
msgstr "%s Annuler la sélection"
|
||||
|
||||
#: templates/organization.html.php:106 templates/organization.html.php:132
|
||||
#, php-format
|
||||
msgid "%s Download the full PDF"
|
||||
msgstr "%s Télécharger le PDF complet"
|
||||
|
||||
#: templates/organization.html.php:122
|
||||
msgid "No"
|
||||
msgstr "Aucune"
|
||||
|
||||
#: templates/organization.html.php:122
|
||||
msgid "page"
|
||||
msgstr "page"
|
||||
|
||||
#: templates/organization.html.php:122 templates/signature.html.php:199
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: templates/organization.html.php:124
|
||||
#, php-format
|
||||
msgid "%s Turn"
|
||||
msgstr "%s Tourner"
|
||||
|
||||
#: templates/organization.html.php:135
|
||||
#, php-format
|
||||
msgid "Download the selection"
|
||||
msgstr "Télécharger la sélection"
|
||||
|
||||
#: templates/organization.html.php:155
|
||||
msgid "PDF documents"
|
||||
msgstr "Documents PDF"
|
||||
|
||||
#: templates/organization.html.php:171
|
||||
msgid "Select this page"
|
||||
msgstr "Sélectionner cette page"
|
||||
|
||||
#: templates/organization.html.php:172
|
||||
msgid "Delete this page"
|
||||
msgstr "Supprimer cette page"
|
||||
|
||||
#: templates/organization.html.php:173
|
||||
msgid "Restore this page"
|
||||
msgstr "Restorer cette page"
|
||||
|
||||
#: templates/organization.html.php:174
|
||||
msgid "Move this page"
|
||||
msgstr "Déplacer cette page"
|
||||
|
||||
#: templates/organization.html.php:175
|
||||
msgid "Move here"
|
||||
msgstr "Déplacer ici"
|
||||
|
||||
#: templates/organization.html.php:176
|
||||
msgid "Turn this page"
|
||||
msgstr "Tourner cette page"
|
||||
|
||||
#: templates/organization.html.php:177
|
||||
msgid "Download this page"
|
||||
msgstr "Télécharger cette page"
|
||||
|
||||
#: templates/signature.html.php:45
|
||||
#, php-format
|
||||
msgid "%s Sign a PDF"
|
||||
msgstr "%s Signer un PDF"
|
||||
|
||||
#: templates/signature.html.php:46
|
||||
msgid "Sign, initial, stamp, complete a document"
|
||||
msgstr "Signer, parapher, tamponner, compléter un document"
|
||||
|
||||
#: templates/signature.html.php:49
|
||||
msgid "The PDF should not exceed"
|
||||
msgstr "Le PDF ne doit pas dépasser "
|
||||
|
||||
#: templates/signature.html.php:49
|
||||
msgid "MB and"
|
||||
msgstr "Mo et"
|
||||
|
||||
#: templates/signature.html.php:49
|
||||
msgid "pages"
|
||||
msgstr "page"
|
||||
|
||||
#: templates/signature.html.php:51
|
||||
msgid "The PDF will be processed by the server without being stored or saved"
|
||||
msgstr "Le PDF sera traité par le serveur sans être conservé no stocké"
|
||||
|
||||
#: templates/signature.html.php:66
|
||||
msgid "How to sign?"
|
||||
msgstr "Comment signer ?"
|
||||
|
||||
#: templates/signature.html.php:67
|
||||
msgid "By clicking directly on the document page"
|
||||
msgstr "En cliquant directement sur la page du document"
|
||||
|
||||
#: templates/signature.html.php:67
|
||||
msgid "to insert the selected item in the right column"
|
||||
msgstr "pour insérer l'élément selectionné dans la colonne de droite"
|
||||
|
||||
#: templates/signature.html.php:67
|
||||
msgid "signature, initial, text, stamp, etc ..."
|
||||
msgstr "signature, paraphe, texte, tampon, etc ..."
|
||||
|
||||
#: templates/signature.html.php:78
|
||||
msgid "Close this PDF and return to the homepage"
|
||||
msgstr "Fermer ce PDF et retourner à l'accueil"
|
||||
|
||||
#: templates/signature.html.php:80
|
||||
msgid "PDF Signature"
|
||||
msgstr "Signature du PDF"
|
||||
|
||||
#: templates/signature.html.php:80
|
||||
msgid "This PDF is shared with others to be signed by multiple people"
|
||||
msgstr "Ce PDF est partagé avec d'autres personnes pour être signé à plusieurs"
|
||||
|
||||
#: templates/signature.html.php:87
|
||||
msgid "Keep the selection active"
|
||||
msgstr "Garder la sélection active"
|
||||
|
||||
#: templates/signature.html.php:92
|
||||
#, php-format
|
||||
msgid "%s Signature"
|
||||
msgstr "%s Signature"
|
||||
|
||||
#: templates/signature.html.php:92 templates/signature.html.php:97
|
||||
#: templates/signature.html.php:102 templates/signature.html.php:200
|
||||
msgid "Create"
|
||||
msgstr "Créer"
|
||||
|
||||
#: templates/signature.html.php:97
|
||||
#, php-format
|
||||
msgid "%s Initial"
|
||||
msgstr "%s Paraphe"
|
||||
|
||||
#: templates/signature.html.php:102
|
||||
#, php-format
|
||||
msgid "%s Stamp"
|
||||
msgstr "%s Tampon"
|
||||
|
||||
#: templates/signature.html.php:106
|
||||
#, php-format
|
||||
msgid "%s Text"
|
||||
msgstr "%s Texte"
|
||||
|
||||
#: templates/signature.html.php:110
|
||||
#, php-format
|
||||
msgid "%s Check box"
|
||||
msgstr "%s Case à cocher"
|
||||
|
||||
#: templates/signature.html.php:115
|
||||
#, php-format
|
||||
msgid "%s Create an element"
|
||||
msgstr "%s Créer un élément"
|
||||
|
||||
#: templates/signature.html.php:120
|
||||
#, php-format
|
||||
msgid "%s Share to sign %s with multiple people"
|
||||
msgstr "%s Partager pour signer %s à plusieurs"
|
||||
|
||||
#: templates/signature.html.php:125 templates/signature.html.php:165
|
||||
msgid "Download the signed PDF"
|
||||
msgstr "Télécharger le PDF signé"
|
||||
|
||||
#: templates/signature.html.php:130
|
||||
#, php-format
|
||||
msgid "You are %s to have signed this PDF"
|
||||
msgstr "Vous êtes %s à avoir signé ce PDF"
|
||||
|
||||
#: templates/signature.html.php:133
|
||||
#, php-format
|
||||
msgid "%s Download the PDF"
|
||||
msgstr "%s Télécharger le PDF"
|
||||
|
||||
#: templates/signature.html.php:138 templates/signature.html.php:163
|
||||
msgid "Transmit my signature"
|
||||
msgstr "Transmettre ma signature"
|
||||
|
||||
#: templates/signature.html.php:146
|
||||
#, php-format
|
||||
msgid "%s Select a signature"
|
||||
msgstr "%s Sélectionner une signature"
|
||||
|
||||
#: templates/signature.html.php:175
|
||||
msgid "Draw"
|
||||
msgstr "Dessiner"
|
||||
|
||||
#: templates/signature.html.php:175
|
||||
msgid "freehand"
|
||||
msgstr "à main levée"
|
||||
|
||||
#: templates/signature.html.php:176
|
||||
msgid "Enter"
|
||||
msgstr "Saisir"
|
||||
|
||||
#: templates/signature.html.php:176
|
||||
msgid "text"
|
||||
msgstr "du texte"
|
||||
|
||||
#: templates/signature.html.php:177
|
||||
msgid "Import"
|
||||
msgstr "Importer"
|
||||
|
||||
#: templates/signature.html.php:177
|
||||
msgid "an image"
|
||||
msgstr "une image"
|
||||
|
||||
#: templates/signature.html.php:181
|
||||
msgid "Clear signature"
|
||||
msgstr "Effacer la signature"
|
||||
|
||||
#: templates/signature.html.php:185
|
||||
msgid "My signature"
|
||||
msgstr "Ma signature"
|
||||
|
||||
#: templates/signature.html.php:211
|
||||
#, php-format
|
||||
msgid "%s Share this PDF to sign it with several people"
|
||||
msgstr "%s Partager ce PDF pour le signer à plusieurs"
|
||||
|
||||
#: templates/signature.html.php:215
|
||||
msgid ""
|
||||
"By enabling PDF sharing, you will be able to provide a link to the people of "
|
||||
"your choice so that they can sign this PDF."
|
||||
msgstr ""
|
||||
"En activant le partage de ce PDF vous allez pouvoir proposer un lien aux "
|
||||
"personnes de votre choix pour qu'elles puissent signer ce PDF."
|
||||
|
||||
#: templates/signature.html.php:216
|
||||
#, php-format
|
||||
msgid ""
|
||||
"%s This sharing requires the PDF to be transferred and stored on the server "
|
||||
"for future signers to access."
|
||||
msgstr ""
|
||||
"%s Ce partage nécessite que le PDF soit transféré et stocké sur le serveur "
|
||||
"afin d'être accessible aux futurs signataires."
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
#, php-format
|
||||
msgid "%s The PDF will be kept"
|
||||
msgstr "%s Le PDF sera conservé"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one year"
|
||||
msgstr "pendant un an"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for six months"
|
||||
msgstr "pendant six mois"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one month"
|
||||
msgstr "pendant un mois"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one week"
|
||||
msgstr "pendant une semaine"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one day"
|
||||
msgstr "pendant une journée"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "for one hour"
|
||||
msgstr "pendant une heure"
|
||||
|
||||
#: templates/signature.html.php:217
|
||||
msgid "after the last signature."
|
||||
msgstr "après la dernière signature"
|
||||
|
||||
#: templates/signature.html.php:223
|
||||
#, php-format
|
||||
msgid "%s Start sharing"
|
||||
msgstr "%s Démarrer le partage"
|
||||
|
||||
#: templates/signature.html.php:235
|
||||
#, php-format
|
||||
msgid "%s Sign this PDF with multiple people"
|
||||
msgstr "%s Signer ce PDF à plusieurs"
|
||||
|
||||
#: templates/signature.html.php:239
|
||||
msgid "Multiple people can sign this PDF simultaneously."
|
||||
msgstr "Plusieurs personnes peuvent signer ce PDF en même temps."
|
||||
|
||||
#: templates/signature.html.php:240
|
||||
msgid ""
|
||||
"To do so, simply share the link to this page with the people of your choice:"
|
||||
msgstr ""
|
||||
"Pour celà il vous suffit de partager avec les personnes de votre choix le "
|
||||
"lien vers cette page :"
|
||||
|
||||
#: templates/signature.html.php:242
|
||||
msgid "Sharing link"
|
||||
msgstr "Lien à partager"
|
||||
|
||||
#: templates/signature.html.php:247
|
||||
msgid ""
|
||||
"Each of the signatories can download the latest version of the signed PDF at "
|
||||
"any time."
|
||||
msgstr ""
|
||||
"Chacun des signataires pourra à tout moment télécharger la dernière version "
|
||||
"du PDF signé."
|
||||
|
||||
#: templates/signature.html.php:250
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: templates/signature.html.php:261
|
||||
msgid "Signed PDF"
|
||||
msgstr "PDF signé"
|
||||
|
||||
#: templates/signature.html.php:265
|
||||
msgid "Your signature has been successfully recorded!"
|
||||
msgstr "Votre signature a bien été prise en compte !"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "%s page selected"
|
||||
#~ msgid_plural "%s pages selected"
|
||||
#~ msgstr[0] "%s page sélectionnée"
|
||||
#~ msgstr[1] "%s pages sélectionnées"
|
||||
|
||||
#~ msgid "page selected"
|
||||
#~ msgstr "page sélectionnée"
|
||||
|
||||
#, php-format
|
||||
#~ msgid "%s pages selected"
|
||||
#~ msgstr "%s pages sélectionnées"
|
||||
|
||||
#~ msgid "Sign"
|
||||
#~ msgstr "Signer"
|
||||
|
||||
#~ msgid "Organize"
|
||||
#~ msgstr "Organiser"
|
||||
|
||||
#~ msgid "Metadata"
|
||||
#~ msgstr "Métadonnées"
|
||||
|
||||
#~ msgid "Signature"
|
||||
#~ msgstr "Signature"
|
||||
|
||||
#~ msgid "Initial"
|
||||
#~ msgstr "Initiales"
|
||||
|
||||
#~ msgid "Stamp"
|
||||
#~ msgstr "Tampon"
|
||||
|
||||
#~ msgid "Text"
|
||||
#~ msgstr "Texte"
|
||||
|
||||
#~ msgid "Check box"
|
||||
#~ msgstr "Case à cocher"
|
||||
|
||||
#~ msgid "Create an element"
|
||||
#~ msgstr "Créer un élément"
|
||||
|
||||
#~ msgid "Share to sign %s with multiple people"
|
||||
#~ msgstr "Partager pour signer %s à plusieurs"
|
||||
|
||||
#~ msgid "Select a signature"
|
||||
#~ msgstr "Sélectionner une signature"
|
||||
|
||||
#~ msgid "Share this PDF to sign it with several people"
|
||||
#~ msgstr "Partager ce PDF pour le signer à plusieurs"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This sharing requires the PDF to be transferred and stored on the server "
|
||||
#~ "for future signers to access."
|
||||
#~ msgstr ""
|
||||
#~ "Ce partage nécessite que le PDF soit transféré et stocké sur le serveur "
|
||||
#~ "afin d'être accessible aux futurs signataires."
|
||||
|
||||
#~ msgid "The PDF will be kept"
|
||||
#~ msgstr "Le PDF sera stocké"
|
||||
|
||||
#~ msgid "Start sharing"
|
||||
#~ msgstr "Démarrer le partage"
|
||||
|
||||
#~ msgid "Sign this PDF with multiple people"
|
||||
#~ msgstr "Signer ce PDF à plusieurs"
|
||||
|
||||
#~ msgid "Add a PDF"
|
||||
#~ msgstr "Ajouter un PDF"
|
||||
|
||||
#~ msgid "Rotate 90°"
|
||||
#~ msgstr "Tourner de 90°"
|
||||
|
||||
#~ msgid "Move"
|
||||
#~ msgstr "Déplacer"
|
||||
|
||||
#~ msgid "Delete"
|
||||
#~ msgstr "Supprimer"
|
||||
|
||||
#~ msgid "Extract and download"
|
||||
#~ msgstr "Extraire et télécharger"
|
||||
|
||||
#~ msgid "Cancel selection"
|
||||
#~ msgstr "Annuler la sélection"
|
||||
|
||||
#~ msgid "Download the full PDF"
|
||||
#~ msgstr "Télécharger le PDF complet"
|
||||
|
||||
#~ msgid "Turn"
|
||||
#~ msgstr "Tourner"
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Ajouter"
|
||||
|
||||
#~ msgid "Share to sign"
|
||||
#~ msgstr "Partager pour signer"
|
||||
|
||||
#~ msgid "with multiple people"
|
||||
#~ msgstr "à plusieurs"
|
||||
|
||||
#~ msgid "You are"
|
||||
#~ msgstr "Vous êtes"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "to have signed this PDF"
|
||||
#~ msgstr "à avoir signé ce PDF"
|
|
@ -87,15 +87,15 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) {
|
|||
|
||||
let pageHTML = '<div class="position-relative mt-0 ms-1 me-0 mb-1 canvas-container d-flex align-items-center justify-content-center bg-transparent bg-opacity-25 border border-2 border-transparent" id="canvas-container-' + pageIndex +'" draggable="true">';
|
||||
pageHTML += '<canvas class="canvas-pdf shadow-sm"></canvas>';
|
||||
pageHTML += '<div title="Séléctionner cette page" class="position-absolute top-0 start-50 translate-middle-x p-2 ps-3 pe-3 mt-2 rounded-circle btn-select d-none"><i class="bi bi-check-square"></i></div>';
|
||||
pageHTML += '<div title="Supprimer cette page" class="position-absolute top-50 start-0 translate-middle-y p-2 ps-3 pe-3 ms-2 rounded-circle btn-delete d-none"><i class="bi bi-trash"></i></div>';
|
||||
pageHTML += '<div title="Restaurer cette page" class="position-absolute top-50 start-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-restore d-none"><i class="bi bi-recycle"></i></div>';
|
||||
pageHTML += '<div title="Déplacer cette page" class="position-absolute top-50 start-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag d-none"><i class="bi bi-arrows-move"></i></div>';
|
||||
pageHTML += '<div title="Déplacer ici" class="position-absolute start-0 top-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag-here-left bg-white shadow d-none" style="left: -5px !important;"><i class="bi bi-arrow-up-square"></i></div>';
|
||||
pageHTML += '<div title="Déplacer ici" class="position-absolute start-100 top-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag-here-right bg-white shadow d-none" style="margin-left: 3px !important;"><i class="bi bi-arrow-up-square"></i></div>';
|
||||
pageHTML += '<div title="Déplacer ici" class="position-absolute top-100 start-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag-here_mobile bg-white shadow d-none"><i class="bi bi-arrows-collapse"></i></div>';
|
||||
pageHTML += '<div title="Tourner cette page" class="position-absolute top-50 end-0 translate-middle-y p-2 ps-3 pe-3 me-2 rounded-circle container-rotate btn-rotate d-none"><i class="bi bi-arrow-clockwise"></i></div>';
|
||||
pageHTML += '<div title="Télécharger cette page" class="position-absolute bottom-0 start-50 translate-middle-x p-2 ps-3 pe-3 mb-3 rounded-circle btn-download d-none"><i class="bi bi-download"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Select this page'] + '" class="position-absolute top-0 start-50 translate-middle-x p-2 ps-3 pe-3 mt-2 rounded-circle btn-select d-none"><i class="bi bi-check-square"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Delete this page'] + '" class="position-absolute top-50 start-0 translate-middle-y p-2 ps-3 pe-3 ms-2 rounded-circle btn-delete d-none"><i class="bi bi-trash"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Restore this page'] + '" class="position-absolute top-50 start-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-restore d-none"><i class="bi bi-recycle"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Move this page'] + '" class="position-absolute top-50 start-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag d-none"><i class="bi bi-arrows-move"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Move here'] + '" class="position-absolute start-0 top-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag-here-left bg-white shadow d-none" style="left: -5px !important;"><i class="bi bi-arrow-up-square"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Move here'] + '" class="position-absolute start-100 top-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag-here-right bg-white shadow d-none" style="margin-left: 3px !important;"><i class="bi bi-arrow-up-square"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Move here'] + '" class="position-absolute top-100 start-50 translate-middle p-2 ps-3 pe-3 rounded-circle container-resize btn-drag-here_mobile bg-white shadow d-none"><i class="bi bi-arrows-collapse"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Turn this page'] + '" class="position-absolute top-50 end-0 translate-middle-y p-2 ps-3 pe-3 me-2 rounded-circle container-rotate btn-rotate d-none"><i class="bi bi-arrow-clockwise"></i></div>';
|
||||
pageHTML += '<div title="' + trad['Download this page'] + '" class="position-absolute bottom-0 start-50 translate-middle-x p-2 ps-3 pe-3 mb-3 rounded-circle btn-download d-none"><i class="bi bi-download"></i></div>';
|
||||
pageHTML += '<p class="page-title position-absolute text-center w-100 ps-2 pe-2 pb-0 pt-0 mb-1 bg-white opacity-75 d-none" style="bottom: -4px; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden;">Page '+page.pageNumber+' - '+filename+'</p>';
|
||||
pageHTML += '<input form="form_pdf" class="checkbox-page d-none" role="switch" type="checkbox" checked="checked" value="'+pdfLetter+page.pageNumber+'" />';
|
||||
pageHTML += '<input type="hidden" class="input-rotate" value="0" id="input_rotate_'+pageIndex+'" />';
|
||||
|
@ -511,7 +511,7 @@ var updateGlobalState = function() {
|
|||
button.classList.remove('btn-outline-primary');
|
||||
button.setAttribute('disabled', 'disabled');
|
||||
});
|
||||
document.querySelector('#container_btn_select .card-header span').innerText = "Aucune";
|
||||
document.querySelector('#container_btn_select .card-header span').innerText = "0";
|
||||
document.querySelector('#container_btn_select .card-footer').classList.add('d-none');
|
||||
document.querySelector('#top_bar_action').classList.remove('d-none');
|
||||
document.querySelector('#top_bar_action_selection').classList.add('d-none');
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<!doctype html>
|
||||
<html lang="fr_FR">
|
||||
<head>
|
||||
<head>
|
||||
<!-- Required meta tags -->
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
@ -10,98 +10,108 @@
|
|||
<link href="<?php echo $REVERSE_PROXY_URL; ?>/css/app.css?<?php echo ($COMMIT) ? $COMMIT : filemtime($ROOT."/public/css/app.css") ?>" rel="stylesheet">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $REVERSE_PROXY_URL; ?>/favicon-metadata.ico">
|
||||
|
||||
<title>Édition des métadonnées d'un PDF</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<div class="alert alert-danger text-center" role="alert">
|
||||
<i class="bi bi-exclamation-triangle"></i> Site non fonctionnel sans JavaScript activé
|
||||
</div>
|
||||
</noscript>
|
||||
<div id="page-upload">
|
||||
<ul class="nav justify-content-center nav-tabs mt-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"><i class="bi bi-vector-pen"></i> Signer</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"><i class="bi bi-ui-checks-grid"></i> Organiser</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="<?php echo $REVERSE_PROXY_URL; ?>/metadata"><i class="bi bi-tags"></i> Metadonnées</a>
|
||||
</li>
|
||||
<title><?php echo _("Editing PDF metadata"); ?></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<div class="alert alert-danger text-center" role="alert">
|
||||
<i class="bi bi-exclamation-triangle"></i> <?php echo _("Site not functional without JavaScript enabled"); ?>
|
||||
</div>
|
||||
</noscript>
|
||||
<div id="page-upload">
|
||||
<div class="dropdown position-absolute top-0 end-0 mt-2 me-2">
|
||||
<button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="d-none d-md-inline"><?php echo _("Language"); ?></span>
|
||||
<span class="d-md-none"><i class="bi bi-translate"></i></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
|
||||
<?php foreach ($LANGUAGES as $key => $langue):?>
|
||||
<li><a class="dropdown-item" href="?lang=<?php echo $key ?>"><?php echo $langue ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<div class="px-4 py-4 text-center">
|
||||
<h1 class="display-5 fw-bold mb-0 mt-3"><i class="bi bi-tags"></i> Éditer les métadonnées</h1>
|
||||
<p class="fw-light mb-3 subtitle text-dark text-nowrap" style="overflow: hidden; text-overflow: ellipsis;">Ajouter, modifier ou supprimer les métadonnées d'un PDF</p>
|
||||
<div class="col-md-6 col-lg-5 col-xl-4 col-xxl-3 mx-auto">
|
||||
<div class="col-12">
|
||||
<label class="form-label mt-3" for="input_pdf_upload">Choisir un PDF</label>
|
||||
<input id="input_pdf_upload" placeholder="Choisir un PDF" class="form-control form-control-lg" type="file" accept=".pdf,application/pdf" />
|
||||
<p class="mt-2 small fw-light text-dark"> </p>
|
||||
<?php if($PDF_DEMO_LINK): ?>
|
||||
<a class="btn btn-sm btn-link opacity-75" href="#<?php echo $PDF_DEMO_LINK ?>">Tester avec un PDF de démo</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="nav justify-content-center nav-tabs mt-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"> <?php echo sprintf(_("%s Sign"), '<i class="bi bi-vector-pen"></i>'); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"> <?php echo sprintf(_("%s Organize"), '<i class="bi bi-ui-checks-grid"></i>'); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="<?php echo $REVERSE_PROXY_URL; ?>/metadata"> <?php echo sprintf(_("%s Metadata"), '<i class="bi bi-tags"></i>'); ?></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="px-4 py-4 text-center">
|
||||
<h1 class="display-5 fw-bold mb-0 mt-3"> <?php echo sprintf(_("%s Edit metadata"), '<i class="bi bi-tags"></i>'); ?></h1>
|
||||
<p class="fw-light mb-3 subtitle text-dark text-nowrap" style="overflow: hidden; text-overflow: ellipsis;"><?php echo _("Add, edit, or remove metadata from a PDF"); ?></p>
|
||||
<div class="col-md-6 col-lg-5 col-xl-4 col-xxl-3 mx-auto">
|
||||
<div class="col-12">
|
||||
<label class="form-label mt-3" for="input_pdf_upload"><?php echo _("Choose a PDF"); ?></label>
|
||||
<input id="input_pdf_upload" placeholder="<?php echo _("Choose a PDF"); ?>" class="form-control form-control-lg" type="file" accept=".pdf,application/pdf" />
|
||||
<p class="mt-2 small fw-light text-dark"> </p>
|
||||
<?php if($PDF_DEMO_LINK): ?>
|
||||
<a class="btn btn-sm btn-link opacity-75" href="#<?php echo $PDF_DEMO_LINK ?>"><?php echo _("Test with a demo PDF"); ?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="text-center text-muted mb-2 fixed-bottom opacity-75">
|
||||
<small>Logiciel libre <span class="d-none d-md-inline">sous license AGPL-3.0</span> : <a href="https://github.com/24eme/signaturepdf">voir le code source </a><?php if($COMMIT): ?> <span class="d-none d-md-inline small">[<a href="https://github.com/24eme/signaturepdf/tree/<?php echo $COMMIT ?>"><?php echo $COMMIT ?></a>]</span><?php endif; ?></small>
|
||||
</footer>
|
||||
</div>
|
||||
<div id="page-metadata" class="d-none">
|
||||
<div id="div-margin-top" style="height: 88px;" class="d-md-none"></div>
|
||||
<div style="width: 60%; overflow: auto;" class="vh-100" id="container-main">
|
||||
<div id="form-metadata" class="mx-auto w-75 pt-3 pb-5">
|
||||
<h3>Liste des métadonnées du PDF</h3>
|
||||
<div id="form-metadata-container">
|
||||
<footer class="text-center text-muted mb-2 fixed-bottom opacity-75">
|
||||
<small><?php echo _("Free open-source software"); ?> <span class="d-none d-md-inline"><?php echo _("under AGPL-3.0 license"); ?></span> : <a href="https://github.com/24eme/signaturepdf"><?php echo _("see the source code"); ?></a><?php if($COMMIT): ?> <span class="d-none d-md-inline small">[<a href="https://github.com/24eme/signaturepdf/tree/<?php echo $COMMIT ?>"><?php echo $COMMIT ?></a>]</span><?php endif; ?></small>
|
||||
</footer>
|
||||
</div>
|
||||
<div id="page-metadata" class="d-none">
|
||||
<div id="div-margin-top" style="height: 88px;" class="d-md-none"></div>
|
||||
<div style="width: 60%; overflow: auto;" class="vh-100" id="container-main">
|
||||
<div id="form-metadata" class="mx-auto w-75 pt-3 pb-5">
|
||||
<h3><?php echo _("List of PDF metadata"); ?></h3>
|
||||
<div id="form-metadata-container">
|
||||
</div>
|
||||
<form id="form_metadata_add" class="position-relative">
|
||||
<hr class="text-muted mt-4 mb-3" />
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted" for="input_metadata_key"><?php echo _("Add new metadata"); ?></label>
|
||||
<div class="form-floating">
|
||||
<input id="input_metadata_key" name="metadata_key" type="text" class="form-control" required value="" style="border-bottom-right-radius: 0; border-bottom-left-radius: 0;">
|
||||
<label><?php echo _("Key"); ?></label>
|
||||
</div>
|
||||
<form id="form_metadata_add" class="position-relative">
|
||||
<hr class="text-muted mt-4 mb-3" />
|
||||
<div class="mb-3">
|
||||
<label class="form-label text-muted" for="input_metadata_key">Ajouter une nouvelle métadonnée</label>
|
||||
<div class="form-floating">
|
||||
<input id="input_metadata_key" name="metadata_key" type="text" class="form-control" required value="" style="border-bottom-right-radius: 0; border-bottom-left-radius: 0;">
|
||||
<label>Clé</label>
|
||||
</div>
|
||||
<input id="input_metadata_value" readonly="readonly" style="border-top: 0; border-top-right-radius: 0; border-top-left-radius: 0;" name="metadata_value" type="text" class="form-control bg-light opacity-50" value="" placeholder="Valeur" style="border-bottom-right-radius: 0; border-bottom-left-radius: 0;">
|
||||
</div>
|
||||
<button type="submit" type="button" class="btn btn-outline-secondary float-end"><i class="bi bi-plus-circle"></i> Ajouter</button>
|
||||
</form>
|
||||
<input id="input_metadata_value" readonly="readonly" style="border-top: 0; border-top-right-radius: 0; border-top-left-radius: 0;" name="metadata_value" type="text" class="form-control bg-light opacity-50" value="" placeholder="<?php echo _("Value"); ?>" style="border-bottom-right-radius: 0; border-bottom-left-radius: 0;">
|
||||
</div>
|
||||
<button type="submit" type="button" class="btn btn-outline-secondary float-end"><?php echo sprintf(_("%s Add"), '<i class="bi bi-plus-circle"></i>'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
<div id="div-margin-bottom" style="height: 55px;" class="d-md-none"></div>
|
||||
<div style="width: 40%;" class="offcanvas offcanvas-end show d-none d-md-block shadow-sm" data-bs-backdrop="false" data-bs-scroll="true" data-bs-keyboard="false" tabindex="-1" id="sidebarTools" aria-labelledby="sidebarToolsLabel">
|
||||
<a class="btn btn-close btn-sm position-absolute opacity-25 d-none d-sm-none d-md-block" title="Fermer ce PDF et retourner à l'accueil" style="position: absolute; top: 2px; right: 2px; font-size: 10px;" href="/metadata"></a>
|
||||
<div class="offcanvas-header d-block mb-0 pb-0 border-bottom">
|
||||
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel">Édition des métadonnées<span class="float-end me-2"><i class="bi bi-tags"></i></span></h5>
|
||||
<button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
<p id="text_document_name" class="text-muted mb-2" style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden;" title=""><i class="bi bi-files"></i> <span></span></p>
|
||||
</div>
|
||||
<div class="offcanvas-body bg-light" style="padding-bottom: 60px;">
|
||||
<div id="container-pages">
|
||||
</div>
|
||||
</div>
|
||||
<div class="position-absolute bg-white bottom-0 pb-2 ps-2 pe-2 w-100 border-top shadow-lg">
|
||||
<div id="btn_container" class="d-grid gap-2 mt-2">
|
||||
<button class="btn btn-primary" type="submit" id="save"><i class="bi bi-download"></i> Enregistrer et télécharger le PDF</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="div-margin-bottom" style="height: 55px;" class="d-md-none"></div>
|
||||
<div style="width: 40%;" class="offcanvas offcanvas-end show d-none d-md-block shadow-sm" data-bs-backdrop="false" data-bs-scroll="true" data-bs-keyboard="false" tabindex="-1" id="sidebarTools" aria-labelledby="sidebarToolsLabel">
|
||||
<a class="btn btn-close btn-sm position-absolute opacity-25 d-none d-sm-none d-md-block" title="<?php echo _("Close this PDF and return to the home page"); ?>" style="position: absolute; top: 2px; right: 2px; font-size: 10px;" href="/metadata"></a>
|
||||
<div class="offcanvas-header d-block mb-0 pb-0 border-bottom">
|
||||
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel"><?php echo _("Edit metadata"); ?><span class=\"float-end me-2\"><i class=\"bi bi-tags\"></i></span></h5>
|
||||
<button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
<p id="text_document_name" class="text-muted mb-2" style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden;" title=""><i class="bi bi-files"></i> <span></span></p>
|
||||
</div>
|
||||
<div class="offcanvas-body bg-light" style="padding-bottom: 60px;">
|
||||
<div id="container-pages">
|
||||
</div>
|
||||
</div>
|
||||
<div id="bottom_bar" class="position-fixed bottom-0 start-0 bg-white w-100 p-2 shadow-sm d-md-none">
|
||||
<div id="bottom_bar_action" class="d-grid gap-2">
|
||||
<button class="btn btn-primary" id="save_mobile"><i class="bi bi-download"></i> Télécharger le PDF</button>
|
||||
<div class="position-absolute bg-white bottom-0 pb-2 ps-2 pe-2 w-100 border-top shadow-lg">
|
||||
<div id="btn_container" class="d-grid gap-2 mt-2">
|
||||
<button class="btn btn-primary" type="submit" id="save"><i class="bi bi-download"></i> <?php echo _("Save and download the PDF"); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bottom_bar" class="position-fixed bottom-0 start-0 bg-white w-100 p-2 shadow-sm d-md-none">
|
||||
<div id="bottom_bar_action" class="d-grid gap-2">
|
||||
<button class="btn btn-primary" id="save_mobile"><i class="bi bi-download"></i> <?php echo _("Download the PDF"); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<span id="is_mobile" class="d-md-none"></span>
|
||||
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap.min.js?5.1.3"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/pdf.js?legacy"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/pdf-lib.min.js?1.17.1"></script>
|
||||
<script>
|
||||
<span id="is_mobile" class="d-md-none"></span>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap.bundle.min.js?5.1.3"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/pdf.js?legacy"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/pdf-lib.min.js?1.17.1"></script>
|
||||
<script>
|
||||
var defaultFields = <?php echo json_encode(isset($METADATA_DEFAULT_FIELDS) ? $METADATA_DEFAULT_FIELDS : array()); ?>;
|
||||
</script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/js/metadata.js?<?php echo ($COMMIT) ? $COMMIT : filemtime($ROOT."/public/js/metadata.js") ?>"></script>
|
||||
</body>
|
||||
</script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/js/metadata.js?<?php echo ($COMMIT) ? $COMMIT : filemtime($ROOT."/public/js/metadata.js") ?>"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -10,47 +10,58 @@
|
|||
<link href="<?php echo $REVERSE_PROXY_URL; ?>/css/app.css?<?php echo ($COMMIT) ? $COMMIT : filemtime($ROOT."/public/css/app.css") ?>" rel="stylesheet">
|
||||
<link rel="icon" type="image/x-icon" href="<?php echo $REVERSE_PROXY_URL; ?>/favicon-organization.ico">
|
||||
|
||||
<title>Organiser un PDF</title>
|
||||
<title><?php _("Organize PDF"); ?></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<div class="alert alert-danger text-center" role="alert">
|
||||
<i class="bi bi-exclamation-triangle"></i> Site non fonctionnel sans JavaScript activé
|
||||
<i class="bi bi-exclamation-triangle"></i><?php echo _("Site not functional without JavaScript enabled"); ?>
|
||||
</div>
|
||||
</noscript>
|
||||
<div id="page-upload">
|
||||
<div class="dropdown position-absolute top-0 end-0 mt-2 me-2">
|
||||
<button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="d-none d-md-inline"><?php echo _("Language"); ?></span>
|
||||
<span class="d-md-none"><i class="bi bi-translate"></i></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
|
||||
<?php foreach ($LANGUAGES as $key => $langue):?>
|
||||
<li><a class="dropdown-item" href="?lang=<?php echo $key ?>"><?php echo $langue ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="nav justify-content-center nav-tabs mt-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"><i class="bi bi-vector-pen"></i> Signer</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"><i class="bi bi-ui-checks-grid"></i> Organiser</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/metadata"><i class="bi bi-tags"></i> Metadonnées</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"> <?php echo sprintf(_("%s Sign"), '<i class="bi bi-vector-pen"></i>'); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"> <?php echo sprintf(_("%s Organize"), '<i class="bi bi-ui-checks-grid"></i>'); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/metadata"> <?php echo sprintf(_("%s Metadata"), '<i class="bi bi-tags"></i>'); ?></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="px-4 py-4 text-center">
|
||||
<h1 class="display-5 fw-bold mb-0 mt-3"><i class="bi bi-ui-checks-grid"></i> Organiser des PDF</h1>
|
||||
<p class="fw-light mb-3 subtitle text-dark text-nowrap" style="overflow: hidden; text-overflow: ellipsis;">Fusionner, trier, pivoter, supprimer, extraire des pages</p>
|
||||
<h1 class="display-5 fw-bold mb-0 mt-3"><?php echo sprintf(_("%s Organize PDF"), '<i class="bi bi-ui-checks-grid"></i>'); ?></h1>
|
||||
<p class="fw-light mb-3 subtitle text-dark text-nowrap" style="overflow: hidden; text-overflow: ellipsis;"><?php echo _("Merge, sort, rotate, delete, extract pages"); ?></p>
|
||||
<div class="col-md-6 col-lg-5 col-xl-4 col-xxl-3 mx-auto">
|
||||
<div class="col-12">
|
||||
<label class="form-label mt-3" for="input_pdf_upload">Choisir un PDF <small class="opacity-75" style="cursor: help" title="Le PDF ne doit pas dépasser <?php echo round($maxSize / 1024 / 1024) ?> Mo"><i class="bi bi-info-circle"></i></small></label>
|
||||
<input id="input_pdf_upload" placeholder="Choisir un PDF" class="form-control form-control-lg" type="file" accept=".pdf,application/pdf" multiple="true" />
|
||||
<p class="mt-2 small fw-light text-dark">Le PDF sera traité par le serveur sans être conservé ni stocké</p>
|
||||
<label class="form-label mt-3" for="input_pdf_upload"><?php echo _("Choose a PDF"); ?> <small class="opacity-75" style="cursor: help" title="<?php echo _("The PDF must not exceed "); ?> <?php echo round($maxSize / 1024 / 1024) ?> <?php echo _("Mb"); ?>"><i class="bi bi-info-circle"></i></small></label>
|
||||
<input id="input_pdf_upload" placeholder="<?php echo _("Choose a PDF"); ?>" class="form-control form-control-lg" type="file" accept=".pdf,application/pdf" multiple="true" />
|
||||
<p class="mt-2 small fw-light text-dark"><?php echo _("The PDF will be processed by the server without being retained or stored"); ?></p>
|
||||
<?php if($PDF_DEMO_LINK): ?>
|
||||
<a class="btn btn-sm btn-link opacity-75" href="#<?php echo $PDF_DEMO_LINK ?>">Tester avec un PDF de démo</a>
|
||||
<a class="btn btn-sm btn-link opacity-75" href="#<?php echo $PDF_DEMO_LINK ?>"><?php echo _("Test with a demo PDF"); ?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="text-center text-muted mb-2 fixed-bottom opacity-75">
|
||||
<small>Logiciel libre <span class="d-none d-md-inline">sous license AGPL-3.0</span> : <a href="https://github.com/24eme/signaturepdf">voir le code source </a><?php if($COMMIT): ?> <span class="d-none d-md-inline small">[<a href="https://github.com/24eme/signaturepdf/tree/<?php echo $COMMIT ?>"><?php echo $COMMIT ?></a>]</span><?php endif; ?></small>
|
||||
<small><?php echo _("Free open-source software"); ?> <span class="d-none d-md-inline"><?php echo _("under AGPL-3.0 license"); ?></span> : <a href="https://github.com/24eme/signaturepdf"><?php echo _("see the source code"); ?></a><?php if($COMMIT): ?> <span class="d-none d-md-inline small">[<a href="https://github.com/24eme/signaturepdf/tree/<?php echo $COMMIT ?>"><?php echo $COMMIT ?></a>]</span><?php endif; ?></small>
|
||||
</footer>
|
||||
</div>
|
||||
<div id="page-organization" style="padding-right: 350px;" class="d-none">
|
||||
<div id="div-margin-top" style="height: 88px;" class="d-md-none"></div>
|
||||
<div style="top: 62px;" class="w-100 position-absolute text-center text-muted opacity-50 d-md-none"><em>Toucher une page pour la sélectionner</em></div>
|
||||
<div style="top: 62px;" class="w-100 position-absolute text-center text-muted opacity-50 d-md-none"><em><?php echo _("Touch a page to select it"); ?></em></div>
|
||||
<div id="container-main">
|
||||
<div id="container-pages" class="col-12 pt-1 vh-100 d-flex align-content-start flex-wrap position-relative" style="overflow-y: scroll; overflow-x: hidden;">
|
||||
</div>
|
||||
|
@ -61,9 +72,9 @@
|
|||
</div>
|
||||
<div id="div-margin-bottom" style="height: 55px;" class="d-md-none"></div>
|
||||
<div class="offcanvas offcanvas-end show d-none d-md-block shadow-sm" data-bs-backdrop="false" data-bs-scroll="true" data-bs-keyboard="false" tabindex="-1" id="sidebarTools" aria-labelledby="sidebarToolsLabel">
|
||||
<a class="btn btn-close btn-sm position-absolute opacity-25 d-none d-sm-none d-md-block" title="Fermer ce PDF et retourner à l'accueil" style="position: absolute; top: 2px; right: 2px; font-size: 10px;" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"></a>
|
||||
<a class="btn btn-close btn-sm position-absolute opacity-25 d-none d-sm-none d-md-block" title="<?php echo _("Close this PDF and return to home"); ?>" style="position: absolute; top: 2px; right: 2px; font-size: 10px;" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"></a>
|
||||
<div class="offcanvas-header mb-0 pb-0">
|
||||
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel">Organisation de PDF <span class="float-end me-2" title="Ce PDF est stocké sur votre ordinateur pour être signé par vous uniquement"><i class="bi-ui-checks-grid"></i></span></h5>
|
||||
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel"><?php echo _("PDF organization"); ?> <span class="float-end me-2" title="<?php echo _("This PDF is stored on your computer to be signed by you only"); ?>"><i class="bi-ui-checks-grid"></i></span></h5>
|
||||
<button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="offcanvas-body pt-3" style="padding-bottom: 60px;">
|
||||
|
@ -72,19 +83,19 @@
|
|||
</ul>
|
||||
</div>
|
||||
<div class="d-grid gap-2 mt-2">
|
||||
<button type="button" class="btn btn-sm btn-outline-dark" onclick="document.getElementById('input_pdf_upload_2').click();"><i class="bi bi-plus-circle"></i> Ajouter un PDF</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-dark" onclick="document.getElementById('input_pdf_upload_2').click();"><?php echo sprintf(_("%s Add a PDF"), '<i class="bi bi-plus-circle"></i>'); ?></button>
|
||||
<input id="input_pdf_upload_2" class="form-control d-none" type="file" accept=".pdf,application/pdf" multiple="true">
|
||||
</div>
|
||||
<hr />
|
||||
<div id="container_btn_select" class="opacity-50 card">
|
||||
<div class="card-header small text-center p-1"><span>Aucune</span> page(s) sélectionnée(s) <button id="btn_cancel_select" type="button" class="btn-close btn-close-white float-end" aria-label="Close"></button></div>
|
||||
<div class="card-header small text-center p-1"><?php echo sprintf(_("%s page(s) selected"), '<span>0</span>'); ?> <button id="btn_cancel_select" type="button" class="btn-close btn-close-white float-end" aria-label="Close"></button></div>
|
||||
<div class="card-body d-grid gap-2 p-2">
|
||||
<button id="btn_rotate_select" disabled="disabled" type="button" class="btn btn-sm btn-outline-secondary"><i class="bi bi-arrow-clockwise"></i> Tourner de 90°</button>
|
||||
<button id="btn_drag_select" disabled="disabled" type="button" class="btn btn-sm btn-outline-secondary"><i class="bi bi-arrows-move"></i> Déplacer</button>
|
||||
<button id="btn_delete_select" disabled="disabled" type="button" class="btn btn-sm btn-outline-secondary"><i class="bi bi-trash"></i> Supprimer</button>
|
||||
<button id="save-select" class="btn btn-sm btn-outline-secondary" disabled="disabled" form="form_pdf" type="submit"><i class="bi bi-download"></i> Extraire et télécharger</button>
|
||||
<button id="btn_rotate_select" disabled="disabled" type="button" class="btn btn-sm btn-outline-secondary"><?php echo sprintf(_("%s Rotate 90°"), '<i class="bi bi-arrow-clockwise"></i>'); ?></button>
|
||||
<button id="btn_drag_select" disabled="disabled" type="button" class="btn btn-sm btn-outline-secondary"><?php echo sprintf(_("%s Move"), '<i class="bi bi-arrows-move"></i>'); ?></button>
|
||||
<button id="btn_delete_select" disabled="disabled" type="button" class="btn btn-sm btn-outline-secondary"><?php echo sprintf(_("%s Delete"), '<i class="bi bi-trash"></i>'); ?></button>
|
||||
<button id="save-select" class="btn btn-sm btn-outline-secondary" disabled="disabled" form="form_pdf" type="submit"><?php echo sprintf(_("%s Extract and download"), '<i class="bi bi-download"></i>'); ?></button>
|
||||
</div>
|
||||
<div class="card-footer d-none small text-center p-1 border-primary bg-primary bg-opacity-25"><a id="btn_cancel_select_footer" type="button" aria-label="Close" style="text-decoration: none;" class="text-primary"><i class="bi bi-x-lg"></i> Annuler la sélection</a></div>
|
||||
<div class="card-footer d-none small text-center p-1 border-primary bg-primary bg-opacity-25"><a id="btn_cancel_select_footer" type="button" aria-label="Close" style="text-decoration: none;" class="text-primary"><?php echo sprintf(_("%s Cancel selection"), '<i class="bi bi-x-lg"></i>'); ?></a></div>
|
||||
</div>
|
||||
|
||||
<div class="position-absolute bottom-0 pb-2 ps-0 pe-4 w-100">
|
||||
|
@ -92,7 +103,7 @@
|
|||
<input id="input_pdf" name="pdf[]" type="file" class="d-none" />
|
||||
<input id="input_pages" type="hidden" value="" name="pages" />
|
||||
<div id="btn_container" class="d-grid gap-2 mt-2">
|
||||
<button class="btn btn-primary" type="submit" id="save"><i class="bi bi-download"></i> Télécharger le PDF complet</button>
|
||||
<button class="btn btn-primary" type="submit" id="save"><?php echo sprintf(_("%s Download the full PDF"), '<i class="bi bi-download"></i>'); ?></button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -104,24 +115,24 @@
|
|||
<button id="btn_liste_pdf" type="button" data-bs-toggle="modal" data-bs-target="#modalFichier" class="btn btn-dark flex-grow-1 me-2" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
|
||||
<i class="bi bi-files"></i> <span id="liste_pdf_titre_mobile"></span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-outline-dark position-relative" style="padding-left: 30px;" onclick="document.getElementById('input_pdf_upload_2').click(); this.blur();"><i class="bi bi-plus-circle position-absolute" style="left: 10px;"></i>Ajouter un PDF</button>
|
||||
<button type="button" class="btn btn-outline-dark position-relative" style="padding-left: 30px;" onclick="document.getElementById('input_pdf_upload_2').click(); this.blur();"><?php echo sprintf(_("%s Add a PDF"), '<i class="bi bi-plus-circle position-absolute" style="left: 10px;"></i>'); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="top_bar_action_selection" class="d-none">
|
||||
<div id="top_bar_action_selection_recap" class="bg-primary text-white text-center rounded-top p-1 position-relative"><button id="btn_liste_pdf_bar" type="button" style="text-decoration: none;left: 0px; top:0px;" class="btn bg-white bg-opacity-50 text-primary position-absolute p-0 ps-1 pe-1 mt-1 ms-1"><i class="bi bi-files"></i> <span></span> PDF</button><span id="top_bar_action_selection_recap_nb_pages">Aucune</span> page(s)<button id="btn_cancel_select_mobile" type="button" style="text-decoration: none;right: 0px; top:0px;" class="btn bg-white bg-opacity-50 text-primary position-absolute p-0 ps-1 pe-1 mt-1 me-1"><i class="bi bi-x-lg"></i> Annuler</button></div>
|
||||
<div id="top_bar_action_selection_recap" class="bg-primary text-white text-center rounded-top p-1 position-relative"><button id="btn_liste_pdf_bar" type="button" style="text-decoration: none;left: 0px; top:0px;" class="btn bg-white bg-opacity-50 text-primary position-absolute p-0 ps-1 pe-1 mt-1 ms-1"><i class="bi bi-files"></i> <span></span> PDF</button><span id="top_bar_action_selection_recap_nb_pages"><?php echo _("No"); ?>></span> <?php echo _("page"); ?><button id="btn_cancel_select_mobile" type="button" style="text-decoration: none;right: 0px; top:0px;" class="btn bg-white bg-opacity-50 text-primary position-absolute p-0 ps-1 pe-1 mt-1 me-1"><i class="bi bi-x-lg"></i> <?php echo _("Cancel"); ?></button></div>
|
||||
<div class="btn-group w-100">
|
||||
<button id="btn_rotate_select_mobile" type="button" class="btn btn-outline-primary" style="border-top-left-radius: 0 !important;"><i class="bi bi-arrow-clockwise"></i> Tourner</button>
|
||||
<button id="btn_drag_select_mobile" type="button" class="btn btn-outline-primary"><i class="bi bi-arrows-move"></i> Déplacer</button>
|
||||
<button id="btn_delete_select_mobile" type="button" class="btn btn-outline-primary" style="border-top-right-radius: 0 !important;"><i class="bi bi-trash"></i> Supprimer</button>
|
||||
<button id="btn_rotate_select_mobile" type="button" class="btn btn-outline-primary" style="border-top-left-radius: 0 !important;"><?php echo sprintf(_("%s Turn"), '<i class="bi bi-arrow-clockwise"></i>'); ?></button>
|
||||
<button id="btn_drag_select_mobile" type="button" class="btn btn-outline-primary"><?php echo sprintf(_("%s Move"), '<i class="bi bi-arrows-move"></i>'); ?></button>
|
||||
<button id="btn_delete_select_mobile" type="button" class="btn btn-outline-primary" style="border-top-right-radius: 0 !important;"><?php echo sprintf(_("%s Delete"), '<i class="bi bi-trash"></i>'); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bottom_bar" class="position-fixed bottom-0 start-0 bg-white w-100 p-2 shadow-sm d-md-none">
|
||||
<div id="bottom_bar_action" class="d-grid gap-2">
|
||||
<button class="btn btn-primary" type="submit" id="save_mobile"><i class="bi bi-download"></i> Télécharger le PDF complet</button>
|
||||
<button class="btn btn-primary" type="submit" id="save_mobile"><?php echo sprintf(_("%s Download the full PDF"), '<i class="bi bi-download"></i>'); ?></button>
|
||||
</div>
|
||||
<div id="bottom_bar_action_selection" class="d-grid gap-2 d-none">
|
||||
<button id="save-select_mobile" class="btn btn-outline-primary" type="submit" form="form_pdf"><i class="bi bi-download"></i> Télécharger la sélection</button>
|
||||
<button id="save-select_mobile" class="btn btn-outline-primary" type="submit" form="form_pdf"><?php echo sprintf(_("Download the selection"), '<i class="bi bi-download"></i>'); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -129,7 +140,7 @@
|
|||
<div class="modal-dialog modal-dialog-scrollable modal-xl modal-fullscreen-md-down">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">Déplacement de page(s)</h5>
|
||||
<h5 class="modal-title"><?php echo("Page move"); ?></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body bg-light ps-5">
|
||||
|
@ -141,7 +152,7 @@
|
|||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalLabel">Documents PDF</h1>
|
||||
<h1 class="modal-title fs-5" id="exampleModalLabel"><?php echo _("PDF documents"); ?></h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
@ -152,10 +163,19 @@
|
|||
|
||||
<span id="is_mobile" class="d-md-none"></span>
|
||||
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap.min.js?5.1.3"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap.bundle.min.js?5.1.3"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/pdf.js?legacy"></script>
|
||||
<script>
|
||||
var maxSize = <?php echo $maxSize ?>;
|
||||
var trad = <?php echo json_encode([
|
||||
'Select this page' => _('Select this page'),
|
||||
'Delete this page' => _('Delete this page'),
|
||||
'Restore this page' => _('Restore this page'),
|
||||
'Move this page' => _('Move this page'),
|
||||
'Move here' => _('Move here'),
|
||||
'Turn this page' => _('Turn this page'),
|
||||
'Download this page' => _('Download this page')
|
||||
]); ?>;
|
||||
</script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/js/organization.js?<?php echo ($COMMIT) ? $COMMIT : filemtime($ROOT."/public/js/organization.js") ?>"></script>
|
||||
</body>
|
||||
|
|
|
@ -9,122 +9,133 @@
|
|||
<link href="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap-icons.css?1.8.1" rel="stylesheet">
|
||||
<link href="<?php echo $REVERSE_PROXY_URL; ?>/css/app.css?<?php echo ($COMMIT) ? $COMMIT : filemtime($ROOT."/public/css/app.css") ?>" rel="stylesheet">
|
||||
<title>Signature PDF</title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<div class="alert alert-danger text-center" role="alert">
|
||||
<i class="bi bi-exclamation-triangle"></i> Site non fonctionnel sans JavaScript activé
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<div class="alert alert-danger text-center" role="alert">
|
||||
<i class="bi bi-exclamation-triangle"></i> <?php echo _("Site not functional without JavaScript enabled"); ?>
|
||||
</div>
|
||||
</noscript>
|
||||
<div id="page-upload">
|
||||
<?php if(!$disableOrganization): ?>
|
||||
<div class="dropdown position-absolute top-0 end-0 mt-2 me-2">
|
||||
<button class="btn btn-outline-secondary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="d-none d-md-inline"><?php echo _("Language"); ?></span>
|
||||
<span class="d-md-none"><i class="bi bi-translate"></i></span>
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
|
||||
<?php foreach ($LANGUAGES as $key => $langue):?>
|
||||
<li><a class="dropdown-item" href="?lang=<?php echo $key ?>"><?php echo $langue ?></a></li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</noscript>
|
||||
<div id="page-upload">
|
||||
<?php if(!$disableOrganization): ?>
|
||||
<ul class="nav justify-content-center nav-tabs mt-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"><i class="bi bi-vector-pen"></i> Signer</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"><i class="bi bi-ui-checks-grid"></i> Organiser</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/metadata"><i class="bi bi-tags"></i> Metadonnées</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"> <?php echo sprintf(_("%s Sign"), '<i class="bi bi-vector-pen"></i>'); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/organization"> <?php echo sprintf(_("%s Organize"), '<i class="bi bi-ui-checks-grid"></i>'); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo $REVERSE_PROXY_URL; ?>/metadata"> <?php echo sprintf(_("%s Metadata"), '<i class="bi bi-tags"></i>'); ?></a>
|
||||
</li>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
<div class="px-4 py-4 text-center">
|
||||
<h1 class="display-5 fw-bold mb-0 mt-3"><i class="bi bi-vector-pen"></i> Signer un PDF</h1>
|
||||
<p class="fw-light mb-3 subtitle text-dark text-nowrap" style="overflow: hidden; text-overflow: ellipsis;">Signer, parapher, tamponner, compléter un document</p>
|
||||
<div class="col-md-6 col-lg-5 col-xl-4 col-xxl-3 mx-auto">
|
||||
<div class="col-12">
|
||||
<label class="form-label mt-3" for="input_pdf_upload">Choisir un PDF <small class="opacity-75" style="cursor: help" title="Le PDF ne doit pas dépasser <?php echo round($maxSize / 1024 / 1024) ?> Mo et <?php echo $maxPage ?> pages"><i class="bi bi-info-circle"></i></small></label>
|
||||
<input id="input_pdf_upload" placeholder="Choisir un PDF" class="form-control form-control-lg" type="file" accept=".pdf,application/pdf" />
|
||||
<p class="mt-2 small fw-light text-dark">Le PDF sera traité par le serveur sans être conservé ni stocké</p>
|
||||
<?php if($PDF_DEMO_LINK): ?>
|
||||
<a class="btn btn-sm btn-link opacity-75" href="#<?php echo $PDF_DEMO_LINK ?>">Tester avec un PDF de démo</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="px-4 py-4 text-center">
|
||||
<h1 class="display-5 fw-bold mb-0 mt-3"><?php echo sprintf(_("%s Sign a PDF"), '<i class="bi bi-vector-pen"></i>'); ?></h1>
|
||||
<p class="fw-light mb-3 subtitle text-dark text-nowrap" style="overflow: hidden; text-overflow: ellipsis;"><?php echo _("Sign, initial, stamp, complete a document") ?></p>
|
||||
<div class="col-md-6 col-lg-5 col-xl-4 col-xxl-3 mx-auto">
|
||||
<div class="col-12">
|
||||
<label class="form-label mt-3" for="input_pdf_upload"><?php echo _("Choose a PDF"); ?> <small class="opacity-75" style="cursor: help" title="<?php echo _("The PDF should not exceed"); ?> <?php echo round($maxSize / 1024 / 1024) ?> <?php echo _("MB and"); ?> <?php echo $maxPage ?> <?php echo _("pages"); ?>"><i class="bi bi-info-circle"></i></small></label>
|
||||
<input id="input_pdf_upload" placeholder="<?php echo _("Choose a PDF") ?>" class="form-control form-control-lg" type="file" accept=".pdf,application/pdf" />
|
||||
<p class="mt-2 small fw-light text-dark"><?php echo _("The PDF will be processed by the server without being stored or saved") ?></p>
|
||||
<?php if($PDF_DEMO_LINK): ?>
|
||||
<a class="btn btn-sm btn-link opacity-75" href="#<?php echo $PDF_DEMO_LINK ?>"><?php echo _("Test with a demo PDF") ?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="text-center text-muted mb-2 fixed-bottom opacity-75">
|
||||
<small>Logiciel libre <span class="d-none d-md-inline">sous license AGPL-3.0</span> : <a href="https://github.com/24eme/signaturepdf">voir le code source </a><?php if($COMMIT): ?> <span class="d-none d-md-inline small">[<a href="https://github.com/24eme/signaturepdf/tree/<?php echo $COMMIT ?>"><?php echo $COMMIT ?></a>]</span><?php endif; ?></small>
|
||||
</footer>
|
||||
</div>
|
||||
<div id="page-signature" style="padding-right: 350px;" class="d-none">
|
||||
<?php if(isset($hash)): ?>
|
||||
<footer class="text-center text-muted mb-2 fixed-bottom opacity-75">
|
||||
<small><?php echo _("Free open-source software"); ?> <span class="d-none d-md-inline"><?php echo _("under AGPL-3.0 license"); ?></span> : <a href="https://github.com/24eme/signaturepdf"><?php echo _("see the source code"); ?></a><?php if($COMMIT): ?> <span class="d-none d-md-inline small">[<a href="https://github.com/24eme/signaturepdf/tree/<?php echo $COMMIT ?>"><?php echo $COMMIT ?></a>]</span><?php endif; ?></small>
|
||||
</footer>
|
||||
</div>
|
||||
<div id="page-signature" style="padding-right: 350px;" class="d-none">
|
||||
<?php if(isset($hash)): ?>
|
||||
<div id="alert-signature-help" class="position-relative d-none">
|
||||
<div class="alert alert-primary alert-dismissible position-absolute top-0 start-50 translate-middle-x text-center mt-4 pb-2 w-50 opacity-100" style="z-index: 100;" role="alert">
|
||||
<h5 class="alert-heading">Comment signer ?</h5>
|
||||
<strong>En cliquant directement sur la page du document</strong> pour insérer l'élément séléctionné dans la colonne de droite <small>(signature, paraphe, texte, tampon, etc ...)</small>
|
||||
<h5 class="alert-heading"><?php echo _("How to sign?") ?></h5>
|
||||
<strong><?php echo _("By clicking directly on the document page"); ?></strong> <?php echo _("to insert the selected item in the right column"); ?> <small>(<?php echo _("signature, initial, text, stamp, etc ..."); ?>)</small>
|
||||
<div class="mt-1 fs-3"><i class="bi bi-box-arrow-down"></i></div>
|
||||
<button type="button" class="btn-close btn-sm" aria-label="Close"></button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div style="height: 65px;" class="d-md-none"></div>
|
||||
<div id="container-pages" class="col-12 pt-1 pb-1 text-center vh-100">
|
||||
<?php endif; ?>
|
||||
<div style="height: 65px;" class="d-md-none"></div>
|
||||
<div id="container-pages" class="col-12 pt-1 pb-1 text-center vh-100">
|
||||
</div>
|
||||
<div style="height: 55px;" class="d-md-none"></div>
|
||||
<div class="offcanvas offcanvas-end show d-none d-md-block shadow-sm" data-bs-backdrop="false" data-bs-scroll="true" data-bs-keyboard="false" tabindex="-1" id="sidebarTools" aria-labelledby="sidebarToolsLabel">
|
||||
<a class="btn btn-close btn-sm position-absolute opacity-25 d-none d-sm-none d-md-block" title="<?php echo _("Close this PDF and return to the homepage"); ?>" style="position: absolute; top: 2px; right: 2px; font-size: 10px;" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"></a>
|
||||
<div class="offcanvas-header mb-0 pb-0">
|
||||
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel"><?php echo _("PDF Signature"); ?> <?php if(isset($hash)): ?><span class="float-end small me-2" title="<?php echo _("This PDF is shared with others to be signed by multiple people"); ?>"><span class="nblayers"></span> <i class="bi bi-people-fill"></i></span><?php else: ?><span class="float-end me-2" title="<?php echo _("This PDF is stored on your computer to be signed by you only"); ?>"><i class="bi bi-person-workspace"></i></span><?php endif; ?></h5>
|
||||
<button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
</div>
|
||||
<div style="height: 55px;" class="d-md-none"></div>
|
||||
<div class="offcanvas offcanvas-end show d-none d-md-block shadow-sm" data-bs-backdrop="false" data-bs-scroll="true" data-bs-keyboard="false" tabindex="-1" id="sidebarTools" aria-labelledby="sidebarToolsLabel">
|
||||
<a class="btn btn-close btn-sm position-absolute opacity-25 d-none d-sm-none d-md-block" title="Fermer ce PDF et retourner à l'accueil" style="position: absolute; top: 2px; right: 2px; font-size: 10px;" href="<?php echo $REVERSE_PROXY_URL; ?>/signature"></a>
|
||||
<div class="offcanvas-header mb-0 pb-0">
|
||||
<h5 class="mb-1 d-block w-100" id="sidebarToolsLabel">Signature du PDF <?php if(isset($hash)): ?><span class="float-end small me-2" title="Ce PDF est partagé avec d'autres personnes pour être signé à plusieurs"><span class="nblayers"></span> <i class="bi bi-people-fill"></i></span><?php else: ?><span class="float-end me-2" title="Ce PDF est stocké sur votre ordinateur pour être signé par vous uniquement"><i class="bi bi-person-workspace"></i></span><?php endif; ?></h5>
|
||||
<button type="button" class="btn-close text-reset d-md-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
|
||||
<div class="offcanvas-body pt-0">
|
||||
<p id="text_document_name" class="text-muted" style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden;" title=""><i class="bi bi-files"></i> <span></span></p>
|
||||
<div class="form-check form-switch mb-2 small d-none">
|
||||
<input class="form-check-input" type="checkbox" id="add-lock-checkbox" disabled="disabled">
|
||||
<label style="cursor: pointer;" class="form-check-label" for="add-lock-checkbox"> <?php echo _("Keep the selection active"); ?></label>
|
||||
</div>
|
||||
<div class="offcanvas-body pt-0">
|
||||
<p id="text_document_name" class="text-muted" style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden;" title=""><i class="bi bi-files"></i> <span></span></p>
|
||||
<div class="form-check form-switch mb-2 small d-none">
|
||||
<input class="form-check-input" type="checkbox" id="add-lock-checkbox" disabled="disabled">
|
||||
<label style="cursor: pointer;" class="form-check-label" for="add-lock-checkbox"> Garder la séléction active</label>
|
||||
</div>
|
||||
<div id="svg_list_signature" class="list-item-add"></div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_signature_add" name="svg_2_add" autocomplete="off" value="signature">
|
||||
<label data-bs-toggle="modal" data-bs-target="#modalAddSvg" data-type="signature" class="btn btn-outline-secondary text-black text-start btn-add-svg-type" for="radio_svg_signature_add" id="label_svg_signature_add"><i class="bi bi-vector-pen"></i> Signature <small class="text-muted float-end">Créer</small></label>
|
||||
</div>
|
||||
<div id="svg_list_initials" class="list-item-add"></div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_initials_add" name="svg_2_add" autocomplete="off" value="intials">
|
||||
<label data-bs-toggle="modal" data-bs-target="#modalAddSvg" data-type="initials" data-modalnav="#nav-type-tab" class="btn btn-outline-secondary text-black text-start btn-add-svg-type" for="radio_svg_initials_add" id="label_svg_initials_add"><i class="bi bi-type"></i> Paraphe <small class="text-muted float-end">Créer</small></label>
|
||||
</div>
|
||||
<div id="svg_list_rubber_stamber" class="list-item-add"></div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_rubber_stamber_add" name="svg_2_add" autocomplete="off" value="rubber_stamber">
|
||||
<label data-bs-toggle="modal" data-bs-target="#modalAddSvg" data-type="rubber_stamber" data-modalnav="#nav-import-tab" class="btn btn-outline-secondary text-black text-start btn-add-svg-type" for="radio_svg_rubber_stamber_add" id="label_svg_rubber_stamber_add"><i class="bi bi-card-text"></i> Tampon <small class="text-muted float-end">Créer</small></label>
|
||||
</div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<div id="svg_list_signature" class="list-item-add"></div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_signature_add" name="svg_2_add" autocomplete="off" value="signature">
|
||||
<label data-bs-toggle="modal" data-bs-target="#modalAddSvg" data-type="signature" class="btn btn-outline-secondary text-black text-start btn-add-svg-type" for="radio_svg_signature_add" id="label_svg_signature_add"><?php echo sprintf(_("%s Signature"), '<i class="bi bi-vector-pen"></i>'); ?> <small class="text-muted float-end"><?php echo _("Create"); ?></small></label>
|
||||
</div>
|
||||
<div id="svg_list_initials" class="list-item-add"></div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_initials_add" name="svg_2_add" autocomplete="off" value="intials">
|
||||
<label data-bs-toggle="modal" data-bs-target="#modalAddSvg" data-type="initials" data-modalnav="#nav-type-tab" class="btn btn-outline-secondary text-black text-start btn-add-svg-type" for="radio_svg_initials_add" id="label_svg_initials_add"><?php echo sprintf(_("%s Initial"), '<i class="bi bi-type"></i>'); ?> <small class="text-muted float-end"><?php echo _("Create"); ?></small></label>
|
||||
</div>
|
||||
<div id="svg_list_rubber_stamber" class="list-item-add"></div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_rubber_stamber_add" name="svg_2_add" autocomplete="off" value="rubber_stamber">
|
||||
<label data-bs-toggle="modal" data-bs-target="#modalAddSvg" data-type="rubber_stamber" data-modalnav="#nav-import-tab" class="btn btn-outline-secondary text-black text-start btn-add-svg-type" for="radio_svg_rubber_stamber_add" id="label_svg_rubber_stamber_add"><?php echo sprintf(_("%s Stamp"), '<i class="bi bi-card-text"></i>'); ?> <small class="text-muted float-end"><?php echo _("Create"); ?></small></label>
|
||||
</div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_text" data-svg="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktdGV4dGFyZWEtdCIgdmlld0JveD0iMCAwIDE2IDE2Ij48cGF0aCBkPSJNMS41IDIuNUExLjUgMS41IDAgMCAxIDMgMWgxMGExLjUgMS41IDAgMCAxIDEuNSAxLjV2My41NjNhMiAyIDAgMCAxIDAgMy44NzRWMTMuNUExLjUgMS41IDAgMCAxIDEzIDE1SDNhMS41IDEuNSAwIDAgMS0xLjUtMS41VjkuOTM3YTIgMiAwIDAgMSAwLTMuODc0VjIuNXptMSAzLjU2M2EyIDIgMCAwIDEgMCAzLjg3NFYxMy41YS41LjUgMCAwIDAgLjUuNWgxMGEuNS41IDAgMCAwIC41LS41VjkuOTM3YTIgMiAwIDAgMSAwLTMuODc0VjIuNUEuNS41IDAgMCAwIDEzIDJIM2EuNS41IDAgMCAwLS41LjV2My41NjN6TTIgN2ExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJ6bTEyIDBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yeiIvPjxwYXRoIGQ9Ik0xMS40MzQgNEg0LjU2Nkw0LjUgNS45OTRoLjM4NmMuMjEtMS4yNTIuNjEyLTEuNDQ2IDIuMTczLTEuNDk1bC4zNDMtLjAxMXY2LjM0M2MwIC41MzctLjExNi42NjUtMS4wNDkuNzQ4VjEyaDMuMjk0di0uNDIxYy0uOTM4LS4wODMtMS4wNTQtLjIxLTEuMDU0LS43NDhWNC40ODhsLjM0OC4wMWMxLjU2LjA1IDEuOTYzLjI0NCAyLjE3MyAxLjQ5NmguMzg2TDExLjQzNCA0eiIvPjwvc3ZnPgo=" name="svg_2_add" autocomplete="off" value="text">
|
||||
<label draggable="true" id="label_svg_text" class="btn btn-outline-secondary text-black text-start btn-svg" for="radio_svg_text"><i class="bi bi-textarea-t"></i> Texte</label>
|
||||
<label draggable="true" id="label_svg_text" class="btn btn-outline-secondary text-black text-start btn-svg" for="radio_svg_text"><?php echo sprintf(_("%s Text"), '<i class="bi bi-textarea-t"></i>'); ?></label>
|
||||
</div>
|
||||
<div class="d-grid gap-2 mb-2 list-item-add">
|
||||
<input type="radio" class="btn-check" id="radio_svg_check" data-height="18" name="svg_2_add" autocomplete="off" value="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktY2hlY2stbGciIHZpZXdCb3g9IjAgMCAxNiAxNiI+CiAgPHBhdGggZD0iTTEyLjczNiAzLjk3YS43MzMuNzMzIDAgMCAxIDEuMDQ3IDBjLjI4Ni4yODkuMjkuNzU2LjAxIDEuMDVMNy44OCAxMi4wMWEuNzMzLjczMyAwIDAgMS0xLjA2NS4wMkwzLjIxNyA4LjM4NGEuNzU3Ljc1NyAwIDAgMSAwLTEuMDYuNzMzLjczMyAwIDAgMSAxLjA0NyAwbDMuMDUyIDMuMDkzIDUuNC02LjQyNWEuMjQ3LjI0NyAwIDAgMSAuMDItLjAyMloiLz4KPC9zdmc+Cg==">
|
||||
<label draggable="true" id="label_svg_check" class="btn btn-outline-secondary text-black text-start btn-svg" for="radio_svg_check"><i class="bi bi-check-square"></i> Case à cocher</label>
|
||||
<label draggable="true" id="label_svg_check" class="btn btn-outline-secondary text-black text-start btn-svg" for="radio_svg_check"><?php echo sprintf(_("%s Check box"), '<i class="bi bi-check-square"></i>'); ?></label>
|
||||
</div>
|
||||
<div id="svg_list" class="d-grid gap-2 mt-2 mb-2 list-item-add"></div>
|
||||
|
||||
<div class="d-grid gap-2 mt-2">
|
||||
<button type="button" id="btn-add-svg" class="btn btn-sm btn-light" data-bs-toggle="modal" data-bs-target="#modalAddSvg"><i class="bi bi-plus-circle"></i> Créer un élément</button>
|
||||
<button type="button" id="btn-add-svg" class="btn btn-sm btn-light" data-bs-toggle="modal" data-bs-target="#modalAddSvg"><?php echo sprintf(_("%s Create an element"), '<i class="bi bi-plus-circle"></i>'); ?></button>
|
||||
</div>
|
||||
<div id="form_block" class="position-absolute bottom-0 pb-2 ps-0 pe-4 w-100">
|
||||
<?php if(!isset($hash)): ?>
|
||||
<?php if(!isset($noSharingMode)): ?>
|
||||
<button class="btn btn-outline-dark w-100" type="button" data-bs-toggle="modal" data-bs-target="#modal-start-share"><i class="bi bi-share"></i> Partager pour signer <i class="bi bi-people-fill"></i> à plusieurs</button>
|
||||
<button class="btn btn-outline-dark w-100" type="button" data-bs-toggle="modal" data-bs-target="#modal-start-share"><?php echo sprintf(_("%s Share to sign %s with multiple people"), '<i class="bi bi-share"></i>',"<i class='bi bi-people-fill'></i>"); ?></button>
|
||||
<?php endif; ?>
|
||||
<form id="form_pdf" action="<?php echo $REVERSE_PROXY_URL; ?>/sign" method="post" enctype="multipart/form-data" class="d-none d-sm-none d-md-block">
|
||||
<input id="input_pdf" name="pdf" type="file" class="d-none" />
|
||||
<input id="input_svg" name="svg[]" type="file" class="d-none" />
|
||||
<button class="btn btn-primary w-100 mt-2" disabled="disabled" type="submit" id="save"><i class="bi bi-download"></i> Télécharger le PDF signé</button>
|
||||
<button class="btn btn-primary w-100 mt-2" disabled="disabled" type="submit" id="save"><i class="bi bi-download"></i> <?php echo _("Download the signed PDF"); ?></button>
|
||||
</form>
|
||||
<?php elseif(!isset($noSharingMode)): ?>
|
||||
<div class="d-none d-sm-none d-md-block position-relative">
|
||||
<a id="btn-signature-help" class="position-absolute top-0 end-0 text-dark" href="" style="z-index: 5;"><i class="bi bi-question-circle"></i></a>
|
||||
<p id="nblayers_text" class="small d-none mb-2 opacity-75">Vous êtes <span class="badge rounded-pill border border-dark text-dark"><span class="nblayers">0</span> <i class="bi bi-people-fill"></i></span> à avoir signé ce PDF</p>
|
||||
<p id="nblayers_text" class="small d-none mb-2 opacity-75"><?php echo sprintf(_("You are %s to have signed this PDF"), "<span class='badge rounded-pill border border-dark text-dark'><span class='nblayers'>0</span> <i class='bi bi-people-fill'></i></span>"); ?></p>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a id="btn_download" class="btn btn-outline-dark w-100" href="<?php echo $REVERSE_PROXY_URL; ?>/signature/<?php echo $hash ?>/pdf"><i class="bi bi-download"></i> Télécharger le PDF</a>
|
||||
<a id="btn_download" class="btn btn-outline-dark w-100" href="<?php echo $REVERSE_PROXY_URL; ?>/signature/<?php echo $hash ?>/pdf"><?php echo sprintf(_("%s Download the PDF"), '<i class="bi bi-download"></i>'); ?></a>
|
||||
<button class="btn btn-outline-dark" type="button" id="btn_share" data-bs-toggle="modal" data-bs-target="#modal-share-informations"><i class="bi bi-share"></i></button>
|
||||
</div>
|
||||
<form id="form_pdf" action="<?php echo $REVERSE_PROXY_URL; ?>/signature/<?php echo $hash ?>/save" method="post" enctype="multipart/form-data" class="d-none d-sm-none d-md-block">
|
||||
<input id="input_svg" name="svg[]" type="file" class="d-none" />
|
||||
<button class="btn btn-primary w-100 mt-2" disabled="disabled" type="submit" id="save"><i class="bi bi-cloud-upload"></i> Transmettre ma signature</button>
|
||||
<button class="btn btn-primary w-100 mt-2" disabled="disabled" type="submit" id="save"><i class="bi bi-cloud-upload"></i> <?php echo _("Transmit my signature"); ?></button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
@ -132,7 +143,7 @@
|
|||
</div>
|
||||
<div class="position-fixed top-0 start-0 bg-white w-100 p-2 shadow-sm d-md-none">
|
||||
<div class="d-grid gap-2">
|
||||
<button id="btn_svn_select" class="btn btn-light btn-lg" data-bs-toggle="offcanvas" data-bs-target="#sidebarTools" aria-controls="sidebarTools"><i class="bi bi-hand-index"></i> Séléctionner une signature</button>
|
||||
<button id="btn_svn_select" class="btn btn-light btn-lg" data-bs-toggle="offcanvas" data-bs-target="#sidebarTools" aria-controls="sidebarTools"><?php echo sprintf(_("%s Select a signature"), '<i class="bi bi-hand-index"></i>'); ?></button>
|
||||
</div>
|
||||
<div id="svg_selected_container" class="text-center d-none position-relative">
|
||||
<img id="svg_selected" src="" style="height: 48px;" class="img-fluid"/>
|
||||
|
@ -149,9 +160,9 @@
|
|||
</div>
|
||||
<div class="d-grid gap-2">
|
||||
<?php if(isset($hash)): ?>
|
||||
<button class="btn btn-primary" disabled="disabled" type="submit" id="save_mobile"><i class="bi bi-cloud-upload"></i> Transmettre ma signature</button>
|
||||
<button class="btn btn-primary" disabled="disabled" type="submit" id="save_mobile"><i class="bi bi-cloud-upload"></i> <?php echo _("Transmit my signature"); ?></button>
|
||||
<?php else: ?>
|
||||
<button class="btn btn-primary" disabled="disabled" type="submit" id="save_mobile"><i class="bi bi-download"></i> Télécharger le PDF signé</button>
|
||||
<button class="btn btn-primary" disabled="disabled" type="submit" id="save_mobile"><i class="bi bi-download"></i> <?php echo _("Download the signed PDF"); ?></button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -161,17 +172,17 @@
|
|||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<nav class="nav nav-tabs" id="nav-tab" role="tablist">
|
||||
<button class="nav-link active ps-2 ps-md-3 pe-2 pe-md-3" id="nav-draw-tab" data-bs-toggle="tab" data-bs-target="#nav-draw" type="button" role="tab" aria-controls="nav-draw" aria-selected="true"><i class="bi bi-vector-pen"></i> Dessiner<br /><small>à main levée</small></button>
|
||||
<button class="nav-link ps-2 ps-md-3 pe-2 pe-md-3" id="nav-type-tab" data-bs-toggle="tab" data-bs-target="#nav-type" type="button" role="tab" aria-controls="nav-type" aria-selected="false"><i class="bi bi-fonts"></i> Saisir<br /><small>du texte</small></button>
|
||||
<button class="nav-link ps-2 ps-md-3 pe-2 pe-md-3" id="nav-import-tab" data-bs-toggle="tab" data-bs-target="#nav-import" type="button" role="tab" aria-controls="nav-import" aria-selected="false"><i class="bi bi-image"></i> Importer<br /><small>une image</small></button>
|
||||
<button class="nav-link active ps-2 ps-md-3 pe-2 pe-md-3" id="nav-draw-tab" data-bs-toggle="tab" data-bs-target="#nav-draw" type="button" role="tab" aria-controls="nav-draw" aria-selected="true"><i class="bi bi-vector-pen"></i> <?php echo _("Draw"); ?><br /><small><?php echo _("freehand"); ?></small></button>
|
||||
<button class="nav-link ps-2 ps-md-3 pe-2 pe-md-3" id="nav-type-tab" data-bs-toggle="tab" data-bs-target="#nav-type" type="button" role="tab" aria-controls="nav-type" aria-selected="false"><i class="bi bi-fonts"></i> <?php echo _("Enter"); ?><br /><small><?php echo _("text"); ?></small></button>
|
||||
<button class="nav-link ps-2 ps-md-3 pe-2 pe-md-3" id="nav-import-tab" data-bs-toggle="tab" data-bs-target="#nav-import" type="button" role="tab" aria-controls="nav-import" aria-selected="false"><i class="bi bi-image"></i> <?php echo _("Import"); ?><br /><small><?php echo _("an image"); ?></small></button>
|
||||
</nav>
|
||||
<div class="tab-content mt-3" id="nav-svg-add">
|
||||
<div class="tab-pane fade show active" id="nav-draw" role="tabpanel" aria-labelledby="nav-draw-tab">
|
||||
<small id="signature-pad-reset" class="text-muted opacity-75 position-absolute" style="right: 25px; bottom: 25px; cursor: pointer;" title="Effacer la signature"><i class="bi bi-trash"></i></small>
|
||||
<small id="signature-pad-reset" class="text-muted opacity-75 position-absolute" style="right: 25px; bottom: 25px; cursor: pointer;" title="<?php echo _("Clear signature"); ?>"><i class="bi bi-trash"></i></small>
|
||||
<canvas id="signature-pad" class="border bg-light" width="462" height="200"></canvas>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="nav-type" role="tabpanel" aria-labelledby="nav-type-tab">
|
||||
<input id="input-text-signature" type="text" class="form-control form-control-lg" placeholder="Ma signature" />
|
||||
<input id="input-text-signature" type="text" class="form-control form-control-lg" placeholder="<?php echo _("My signature"); ?>" />
|
||||
</div>
|
||||
<div class="tab-pane fade" id="nav-import" role="tabpanel" aria-labelledby="nav-import-tab">
|
||||
<div class="text-center">
|
||||
|
@ -185,8 +196,8 @@
|
|||
<input id="input-svg-type" type="hidden" />
|
||||
</div>
|
||||
<div class="modal-footer d-block">
|
||||
<button tabindex="-1" type="button" class="btn btn-light col-4" data-bs-dismiss="modal">Annuler</button>
|
||||
<button id="btn_modal_ajouter" type="button" disabled="disabled" data-bs-dismiss="modal" class="btn btn-primary float-end col-4"><span id="btn_modal_ajouter_spinner" class="spinner-border spinner-border-sm d-none"></span><span id="btn_modal_ajouter_check" class="bi bi-check-circle"></span> Créer</button>
|
||||
<button tabindex="-1" type="button" class="btn btn-light col-4" data-bs-dismiss="modal"><?php echo _("Cancel"); ?></button>
|
||||
<button id="btn_modal_ajouter" type="button" disabled="disabled" data-bs-dismiss="modal" class="btn btn-primary float-end col-4"><span id="btn_modal_ajouter_spinner" class="spinner-border spinner-border-sm d-none"></span><span id="btn_modal_ajouter_check" class="bi bi-check-circle"></span> <?php echo _("Create"); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -197,19 +208,19 @@
|
|||
<div class="modal-dialog modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><i class="bi bi-share"></i> Partager ce PDF pour le signer à plusieurs </h5>
|
||||
<h5 class="modal-title"><?php echo sprintf(_("%s Share this PDF to sign it with several people"), '<i class="bi bi-share"></i>'); ?> </h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>En activant le partage de ce PDF vous allez pouvoir proposer un lien aux personnes de votre choix pour qu'elles puissent signer ce PDF.</p>
|
||||
<p><i class="bi bi-hdd-network"></i> Ce partage nécessite que le PDF soit transféré et stocké sur le serveur afin d'être accessible aux futurs signataires.</p>
|
||||
<p class="mb-0"><i class="bi bi-hourglass-split"></i> Le PDF sera conservé <select name="duration" form="form_sharing"><option value="+1 year">un an</option><option value="+6 month">six mois</option><option value="+1 month" selected="selected">un mois</option><option value="+1 week">une semaine</option><option value="+1 day">un jour</option><option value="+1 hour">une heure</option></select> après la dernière signature.</p>
|
||||
<p><?php echo _("By enabling PDF sharing, you will be able to provide a link to the people of your choice so that they can sign this PDF."); ?></p>
|
||||
<p><?php echo sprintf(_("%s This sharing requires the PDF to be transferred and stored on the server for future signers to access."), '<i class="bi bi-hdd-network"></i>'); ?></p>
|
||||
<p class="mb-0"><?php echo sprintf(_("%s The PDF will be kept"), '<i class="bi bi-hourglass-split"></i>'); ?> <select name='duration' form='form_sharing'><option value='+1 year'><?php echo _("for one year"); ?></option><option value='+6 month'><?php echo _("for six months"); ?></option><option value='+1 month' selected='selected'><?php echo _("for one month"); ?></option><option value='+1 week'><?php echo _("for one week"); ?></option><option value='+1 day'><?php echo _("for one day"); ?></option><option value='+1 hour'><?php echo _("for one hour"); ?></option></select> <?php echo _("after the last signature."); ?></p>
|
||||
</div>
|
||||
<div class="modal-footer text-center d-block">
|
||||
<form id="form_sharing" clas action="<?php echo $REVERSE_PROXY_URL; ?>/share" method="post" enctype="multipart/form-data">
|
||||
<input id="input_pdf_share" name="pdf" type="file" class="d-none" />
|
||||
<input id="input_svg_share" name="svg[]" type="file" class="d-none" />
|
||||
<button class="btn col-9 col-md-6 btn-primary" type="submit" id="save_share"><i class="bi bi-cloud-upload"></i> Démarrer le partage</button>
|
||||
<button class="btn col-9 col-md-6 btn-primary" type="submit" id="save_share"><?php echo sprintf(_("%s Start sharing"), '<i class="bi bi-cloud-upload"></i>'); ?></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -221,22 +232,22 @@
|
|||
<div class="modal-dialog modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><i class="bi bi-people-fill"></i> Signer ce PDF à plusieurs</h5>
|
||||
<h5 class="modal-title"><?php echo sprintf(_("%s Sign this PDF with multiple people"), '<i class="bi bi-people-fill"></i>'); ?></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Plusieurs personnes peuvent signer ce PDF en même temps.</p>
|
||||
<p>Pour cela il vous suffit de partager avec les personnes de votre choix le lien vers cette page :</p>
|
||||
<p><?php echo _("Multiple people can sign this PDF simultaneously."); ?></p>
|
||||
<p><?php echo _("To do so, simply share the link to this page with the people of your choice:"); ?></p>
|
||||
<div class="input-group mb-3">
|
||||
<span class="input-group-text">Lien à partager</span>
|
||||
<span class="input-group-text"><?php echo _("Sharing link"); ?></span>
|
||||
<input id="input-share-link" type="text" onclick="this.select(); this.setSelectionRange(0, 99999);" readonly="readonly" class="form-control bg-light font-monospace" value="">
|
||||
<button onclick="navigator.clipboard.writeText(document.getElementById('input-share-link').value); this.innerText = 'Copié !';" autofocus="autofocus" class="btn btn-primary" type="button" id="btn-copy-share-link"><i class="bi bi-clipboard"></i> Copier</button>
|
||||
<script>document.querySelector('#input-share-link').value = document.location.href.replace(/#.*/, '');</script>
|
||||
</div>
|
||||
<p class="mb-0">Chacun des signataires pourra à tout moment télécharger la dernière version du PDF signé.</p>
|
||||
<p class="mb-0"><?php echo _("Each of the signatories can download the latest version of the signed PDF at any time."); ?></p>
|
||||
</div>
|
||||
<div class="modal-footer text-start">
|
||||
<button type="button" class="btn btn-light" data-bs-dismiss="modal">Fermer</button>
|
||||
<button type="button" class="btn btn-light" data-bs-dismiss="modal"><?php echo _("Close"); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -247,14 +258,14 @@
|
|||
<div class="modal-dialog modal-md">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><i class="bi bi-file-earmark-check"></i> PDF signé</h5>
|
||||
<h5 class="modal-title"><i class="bi bi-file-earmark-check"></i> <?php echo _("Signed PDF"); ?></h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p class="mb-1"><i class="bi bi-check-circle text-success"></i> Votre signature a bien été prise en compte !</p>
|
||||
<p class="mb-1"><i class="bi bi-check-circle text-success"></i> <?php echo _("Your signature has been successfully recorded!"); ?></p>
|
||||
</div>
|
||||
<div class="modal-footer text-center d-block">
|
||||
<a class="btn btn-outline-dark" href="<?php echo $REVERSE_PROXY_URL; ?>/signature/<?php echo $hash ?>/pdf"><i class="bi bi-download"></i> Télécharger le PDF</a>
|
||||
<a class="btn btn-outline-dark" href="<?php echo $REVERSE_PROXY_URL; ?>/signature/<?php echo $hash ?>/pdf"><i class="bi bi-download"></i> <?php echo _("Download the PDF"); ?></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -263,7 +274,7 @@
|
|||
|
||||
<span id="is_mobile" class="d-md-none"></span>
|
||||
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap.min.js?5.1.3"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/bootstrap.bundle.min.js?5.1.3"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/pdf.js?legacy"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/fabric.min.js?4.6.0"></script>
|
||||
<script src="<?php echo $REVERSE_PROXY_URL; ?>/vendor/signature_pad.umd.min.js?3.0.0-beta.3"></script>
|
||||
|
|
Loading…
Reference in a new issue