mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-09-04 08:48:55 +02:00
feat: create duplicate template functionality feat: add support of csv and xlsx for bulk contacts import feat: add info text for forms and dashboard button feat: implement functionality to delete a PDF page while editing the document feat: show completed documents in which signers included but not owner in completed reports feat: add delete folder button in opensign drive feat: introduce Bcc email support for sending completed documents feat: allow merging multiple pdf while drafting document and template feat: add 'My Initials' tab for auto-signing in request-sign flow feat: add support for redirect URL to navigate after document completion feat: introduce privacy policy and digital signature terms before signing documents. feat: add feature to allow adding new pages to existing document feat: add save signature, initials, stamp functionality in sign pad for logged in user feat: add preferences menu feat: add save custom email template, notifyonsignature, set timezone, allow signature types in preferences feat: secure local url feat: implement Italian language translation feat: implement German language translation feat: update menu name from report to documents and shift contactbook in main menu feat: provide edit contact functionality fix: unable to delete folder when all its documents are deleted fix: fields.push is not function fix: document loading issue in opensign drive fix: adjust the guest signature flow to display the document in full screen, eliminating any blank space which is displayed below the place holder in mobile view fix: resolve issue of instance of pdfdict or pdfstream but got undefined build(deps): update dependencies refactor: change note text from add contact form
160 lines
4.4 KiB
JavaScript
160 lines
4.4 KiB
JavaScript
import React from "react";
|
|
import { Quill } from "react-quill-new";
|
|
|
|
// Custom Undo button icon component for Quill editor. You can import it directly
|
|
// from 'quill/assets/icons/undo.svg' but I found that a number of loaders do not
|
|
// handle them correctly
|
|
const CustomUndo = () => (
|
|
<svg viewBox="0 0 18 18">
|
|
<polygon className="ql-fill ql-stroke" points="6 10 4 12 2 10 6 10" />
|
|
<path
|
|
className="ql-stroke"
|
|
d="M8.09,13.91A4.6,4.6,0,0,0,9,14,5,5,0,1,0,4,9"
|
|
/>
|
|
</svg>
|
|
);
|
|
|
|
// Redo button icon component for Quill editor
|
|
const CustomRedo = () => (
|
|
<svg viewBox="0 0 18 18">
|
|
<polygon className="ql-fill ql-stroke" points="12 10 14 12 16 10 12 10" />
|
|
<path
|
|
className="ql-stroke"
|
|
d="M9.91,13.91A4.6,4.6,0,0,1,9,14a5,5,0,1,1,5-5"
|
|
/>
|
|
</svg>
|
|
);
|
|
|
|
// Undo and redo functions for Custom Toolbar
|
|
function undoChange() {
|
|
this.quill.history.undo();
|
|
}
|
|
function redoChange() {
|
|
this.quill.history.redo();
|
|
}
|
|
|
|
// Add sizes to whitelist and register them
|
|
const Size = Quill.import("formats/size");
|
|
Size.whitelist = ["extra-small", "small", "medium", "large"];
|
|
Quill.register(Size, true);
|
|
|
|
// Add fonts to whitelist and register them
|
|
const Font = Quill.import("formats/font");
|
|
Font.whitelist = [
|
|
"arial",
|
|
"comic-sans",
|
|
"courier-new",
|
|
"georgia",
|
|
"helvetica",
|
|
"lucida"
|
|
];
|
|
Quill.register(Font, true);
|
|
|
|
// Modules object for setting up the Quill editor
|
|
export const module1 = {
|
|
toolbar: {
|
|
container: "#toolbar1",
|
|
handlers: { undo: undoChange, redo: redoChange }
|
|
},
|
|
history: { delay: 500, maxStack: 100, userOnly: true }
|
|
};
|
|
|
|
// Modules object for setting up the Quill editor
|
|
export const module2 = {
|
|
toolbar: {
|
|
container: "#toolbar2",
|
|
handlers: { undo: undoChange, redo: redoChange }
|
|
},
|
|
history: { delay: 500, maxStack: 100, userOnly: true }
|
|
};
|
|
|
|
// Formats objects for setting up the Quill editor
|
|
export const formats = [
|
|
"header",
|
|
"font",
|
|
"size",
|
|
"bold",
|
|
"italic",
|
|
"underline",
|
|
"align",
|
|
"strike",
|
|
"script",
|
|
"blockquote",
|
|
"background",
|
|
"list",
|
|
"indent",
|
|
"link",
|
|
"image",
|
|
"color",
|
|
"code-block"
|
|
];
|
|
// Quill Toolbar component
|
|
export const QuillToolbar = ({ containerId }) => (
|
|
<div id={containerId}>
|
|
<span className="ql-formats">
|
|
<select className="ql-font" defaultValue="arial">
|
|
<option value="arial">Arial</option>
|
|
<option value="comic-sans">Comic Sans</option>
|
|
<option value="courier-new">Courier New</option>
|
|
<option value="georgia">Georgia</option>
|
|
<option value="helvetica">Helvetica</option>
|
|
<option value="lucida">Lucida</option>
|
|
</select>
|
|
<select className="ql-size" defaultValue="medium">
|
|
<option value="extra-small">Size 1</option>
|
|
<option value="small">Size 2</option>
|
|
<option value="medium">Size 3</option>
|
|
<option value="large">Size 4</option>
|
|
</select>
|
|
<select className="ql-header" defaultValue="3">
|
|
<option value="1">Heading</option>
|
|
<option value="2">Subheading</option>
|
|
<option value="3">Normal</option>
|
|
</select>
|
|
</span>
|
|
<span className="ql-formats">
|
|
<button className="ql-bold" />
|
|
<button className="ql-italic" />
|
|
<button className="ql-underline" />
|
|
<button className="ql-strike" />
|
|
</span>
|
|
<span className="ql-formats">
|
|
<button className="ql-list" value="ordered" />
|
|
<button className="ql-list" value="bullet" />
|
|
<button className="ql-indent" value="-1" />
|
|
<button className="ql-indent" value="+1" />
|
|
</span>
|
|
<span className="ql-formats">
|
|
<button className="ql-script" value="super" />
|
|
<button className="ql-script" value="sub" />
|
|
<button className="ql-blockquote" />
|
|
<button className="ql-direction" />
|
|
</span>
|
|
<span className="ql-formats">
|
|
<select className="ql-align" />
|
|
<select className="ql-color" />
|
|
<select className="ql-background" />
|
|
</span>
|
|
<span className="ql-formats">
|
|
<button className="ql-link" />
|
|
<button className="ql-image" />
|
|
<button className="ql-video" />
|
|
</span>
|
|
<span className="ql-formats">
|
|
<button className="ql-formula" />
|
|
<button className="ql-code-block" />
|
|
<button className="ql-clean" />
|
|
</span>
|
|
<span className="ql-formats">
|
|
<button className="ql-undo">
|
|
<CustomUndo />
|
|
</button>
|
|
<button className="ql-redo">
|
|
<CustomRedo />
|
|
</button>
|
|
</span>
|
|
</div>
|
|
);
|
|
|
|
export default QuillToolbar;
|