diff --git a/application/Espo/Resources/defaults/config.php b/application/Espo/Resources/defaults/config.php index 1ebbce38a3..6452b50d8d 100644 --- a/application/Espo/Resources/defaults/config.php +++ b/application/Espo/Resources/defaults/config.php @@ -156,5 +156,6 @@ return [ 'auth2FAMethodList' => ['Totp'], 'personNameFormat' => 'firstLast', 'newNotificationCountInTitle' => false, + 'pdfEngine' => 'Tcpdf', 'isInstalled' => false, ]; diff --git a/application/Espo/Resources/metadata/app/pdfEngines.json b/application/Espo/Resources/metadata/app/pdfEngines.json index 8a965a0a3d..f1a79e39a1 100644 --- a/application/Espo/Resources/metadata/app/pdfEngines.json +++ b/application/Espo/Resources/metadata/app/pdfEngines.json @@ -3,6 +3,36 @@ "implementationClassNameMap": { "entity": "Espo\\Tools\\Pdf\\Tcpdf\\TcpdfEntityPrinter", "collection": "Espo\\Tools\\Pdf\\Tcpdf\\TcpdfCollectionPrinter" - } + }, + "fontFaceList": [ + "aealarabiya", + "aefurat", + "cid0cs", + "cid0ct", + "cid0jp", + "cid0kr", + "courier", + "dejavusans", + "dejavusanscondensed", + "dejavusansextralight", + "dejavusansmono", + "dejavuserif", + "dejavuserifcondensed", + "freemono", + "freesans", + "freeserif", + "helvetica", + "hysmyeongjostdmedium", + "kozgopromedium", + "kozminproregular", + "msungstdlight", + "pdfacourier", + "pdfahelvetica", + "pdfasymbol", + "pdfatimes", + "stsongstdlight", + "symbol", + "times" + ] } } diff --git a/application/Espo/Resources/metadata/entityDefs/Template.json b/application/Espo/Resources/metadata/entityDefs/Template.json index a38b6ec163..5134374344 100644 --- a/application/Espo/Resources/metadata/entityDefs/Template.json +++ b/application/Espo/Resources/metadata/entityDefs/Template.json @@ -98,37 +98,7 @@ }, "fontFace": { "type": "enum", - "options": [ - "", - "aealarabiya", - "aefurat", - "cid0cs", - "cid0ct", - "cid0jp", - "cid0kr", - "courier", - "dejavusans", - "dejavusanscondensed", - "dejavusansextralight", - "dejavusansmono", - "dejavuserif", - "dejavuserifcondensed", - "freemono", - "freesans", - "freeserif", - "helvetica", - "hysmyeongjostdmedium", - "kozgopromedium", - "kozminproregular", - "msungstdlight", - "pdfacourier", - "pdfahelvetica", - "pdfasymbol", - "pdfatimes", - "stsongstdlight", - "symbol", - "times" - ], + "view": "views/template/fields/font-face", "default": "" } }, diff --git a/client/src/views/template/fields/font-face.js b/client/src/views/template/fields/font-face.js new file mode 100644 index 0000000000..c7179c2162 --- /dev/null +++ b/client/src/views/template/fields/font-face.js @@ -0,0 +1,48 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2020 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/template/fields/font-face', 'views/fields/enum', function (Dep) { + + return Dep.extend({ + + setupOptions: function () { + var engine = this.getConfig().get('pdfEngine') || 'Tcpdf'; + + var fontFaceList = this.getMetadata().get([ + 'app', 'pdfEngines', engine, 'fontFaceList', + ]) || []; + + fontFaceList = Espo.Utils.clone(fontFaceList); + + fontFaceList.unshift(''); + + this.params.options = fontFaceList; + }, + + }); +}); diff --git a/upgrades/6.1/data.json b/upgrades/6.1/data.json new file mode 100644 index 0000000000..1449b0403c --- /dev/null +++ b/upgrades/6.1/data.json @@ -0,0 +1,4 @@ +{ + "manifest": { + } +} diff --git a/upgrades/6.1/scripts/AfterUpgrade.php b/upgrades/6.1/scripts/AfterUpgrade.php new file mode 100644 index 0000000000..c34d0a5830 --- /dev/null +++ b/upgrades/6.1/scripts/AfterUpgrade.php @@ -0,0 +1,42 @@ +container = $container; + + $config = $container->get('config'); + + $config->set('pdfEngine', 'Tcpdf'); + + $config->save(); + } +}