mirror of
https://github.com/espocrm/espocrm.git
synced 2026-03-06 00:27:01 +00:00
Compare commits
89 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
62d1c0fae9 | ||
|
|
76546ff06c | ||
|
|
42af361ae4 | ||
|
|
440c6cee23 | ||
|
|
e659c79bf7 | ||
|
|
e017479f85 | ||
|
|
4824714b0d | ||
|
|
6ee936d522 | ||
|
|
ba172494b4 | ||
|
|
5c44a374d5 | ||
|
|
8aae2b18ba | ||
|
|
258e56c61d | ||
|
|
3084dddf1c | ||
|
|
eb6f9b602f | ||
|
|
cf508a540e | ||
|
|
5278e3bf06 | ||
|
|
5763f5b58e | ||
|
|
0666880786 | ||
|
|
e0113388d2 | ||
|
|
384f28ecae | ||
|
|
d7596c208c | ||
|
|
6d1ab5870f | ||
|
|
73dbfa38ec | ||
|
|
4adb068699 | ||
|
|
3e4c738ab1 | ||
|
|
cd92e4fcd8 | ||
|
|
fba191f22c | ||
|
|
8874c8827a | ||
|
|
34529a8ed9 | ||
|
|
8fd44acae2 | ||
|
|
4dd540ffc7 | ||
|
|
9c20116c9b | ||
|
|
926410d58f | ||
|
|
c64a107ad9 | ||
|
|
5dcd25946b | ||
|
|
d12865bbcb | ||
|
|
3fed415437 | ||
|
|
a03a13d3b9 | ||
|
|
e625951831 | ||
|
|
f533c68c9b | ||
|
|
2420746f1b | ||
|
|
2dfd00dd2e | ||
|
|
e043bb48e9 | ||
|
|
9aaef9d957 | ||
|
|
87449aae67 | ||
|
|
191d064fe1 | ||
|
|
dcb3e2feaf | ||
|
|
da9a423e59 | ||
|
|
3be4510e63 | ||
|
|
a6bb5a239b | ||
|
|
a5fb42609b | ||
|
|
40c2c1718e | ||
|
|
aeecfd63da | ||
|
|
1da1e6da9b | ||
|
|
bf9f23ebdd | ||
|
|
7beb4f8d83 | ||
|
|
991b859643 | ||
|
|
9bd74e08db | ||
|
|
cfdf65025d | ||
|
|
bf471e654c | ||
|
|
5feee1cf55 | ||
|
|
6af6fc017b | ||
|
|
8ee9a792fc | ||
|
|
9ef1c5928f | ||
|
|
64c933e365 | ||
|
|
32055f3d6e | ||
|
|
804acae44b | ||
|
|
6b3f37c00e | ||
|
|
4bdc4878cd | ||
|
|
625d2bc128 | ||
|
|
0af5bb1b4b | ||
|
|
7a0d59357c | ||
|
|
adbb46d02c | ||
|
|
ac3884179e | ||
|
|
7cf1af188d | ||
|
|
21b695e4ef | ||
|
|
fbda66defc | ||
|
|
beb4435ee0 | ||
|
|
6a4c78c1cb | ||
|
|
dc7f5d8e66 | ||
|
|
872a4c2f2c | ||
|
|
8a5204bc4c | ||
|
|
acbf6a1742 | ||
|
|
b2d3d56a85 | ||
|
|
8b83fa640f | ||
|
|
5a95abed73 | ||
|
|
ca1d689c3a | ||
|
|
0c750789b1 | ||
|
|
ccb6c19c72 |
5
.gitattributes
vendored
5
.gitattributes
vendored
@@ -8,4 +8,9 @@
|
||||
*.tpl text eol=crlf
|
||||
*.html text eol=crlf
|
||||
|
||||
bin/command text eol=lf
|
||||
|
||||
.gitattributes text eol=crlf
|
||||
.gitignore text eol=crlf
|
||||
|
||||
*.png binary
|
||||
|
||||
@@ -381,7 +381,7 @@ module.exports = grunt => {
|
||||
});
|
||||
|
||||
grunt.registerTask('upgrade', () => {
|
||||
cp.execSync("node diff --all --vendor", {stdio: 'inherit'});
|
||||
cp.execSync("node diff --closest", {stdio: 'inherit'});
|
||||
});
|
||||
|
||||
grunt.registerTask('unit-tests-run', () => {
|
||||
@@ -396,7 +396,7 @@ module.exports = grunt => {
|
||||
cp.execSync("composer run-script setConfigParams", {stdio: 'ignore'});
|
||||
});
|
||||
|
||||
grunt.registerTask('zip', () => {
|
||||
grunt.registerTask('zip', function () { // Don't change to arrow-function.
|
||||
const archiver = require('archiver');
|
||||
|
||||
let resolve = this.async();
|
||||
@@ -425,8 +425,9 @@ module.exports = grunt => {
|
||||
|
||||
archive
|
||||
.directory(currentPath + '/build/' + folder, folder)
|
||||
.pipe(zipOutput)
|
||||
.finalize();
|
||||
.pipe(zipOutput);
|
||||
|
||||
archive.finalize();
|
||||
});
|
||||
|
||||
grunt.registerTask('npm-install', () => {
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii 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.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Classes\FieldValidators\Attachment;
|
||||
|
||||
use Espo\Classes\FieldValidators\LinkParentType;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
class Related extends LinkParentType
|
||||
{
|
||||
public function checkValid(Entity $entity, string $field): bool
|
||||
{
|
||||
$typeValue = $entity->get($field . 'Type');
|
||||
|
||||
if ($typeValue === 'TemplateManager') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return parent::checkValid($entity, $field);
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@
|
||||
namespace Espo\Classes\FieldValidators;
|
||||
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\ORM\Defs;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
class VarcharType
|
||||
@@ -37,10 +38,12 @@ class VarcharType
|
||||
private Metadata $metadata;
|
||||
|
||||
private const DEFAULT_MAX_LENGTH = 255;
|
||||
private Defs $defs;
|
||||
|
||||
public function __construct(Metadata $metadata)
|
||||
public function __construct(Metadata $metadata, Defs $defs)
|
||||
{
|
||||
$this->metadata = $metadata;
|
||||
$this->defs = $defs;
|
||||
}
|
||||
|
||||
public function checkRequired(Entity $entity, string $field): bool
|
||||
@@ -54,6 +57,14 @@ class VarcharType
|
||||
return true;
|
||||
}
|
||||
|
||||
$fieldDefs = $this->defs
|
||||
->getEntity($entity->getEntityType())
|
||||
->getField($field);
|
||||
|
||||
if ($fieldDefs->isNotStorable() && !$validationValue) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$value = $entity->get($field);
|
||||
|
||||
$maxLength = $validationValue ?? self::DEFAULT_MAX_LENGTH;
|
||||
|
||||
@@ -89,7 +89,7 @@ class Auth
|
||||
|
||||
$hasAuthData = (bool) ($username || $authenticationMethod);
|
||||
|
||||
if (!$hasAuthData && $this->isEntryPoint) {
|
||||
if (!$hasAuthData) {
|
||||
$password = $this->obtainTokenFromCookies($request);
|
||||
|
||||
if ($password) {
|
||||
|
||||
@@ -34,6 +34,7 @@ use Espo\Core\Exceptions\HasBody;
|
||||
use Espo\Core\{
|
||||
Api\Request,
|
||||
Api\Response,
|
||||
Exceptions\HasLogMessage,
|
||||
Utils\Log,
|
||||
Utils\Config,
|
||||
};
|
||||
@@ -121,14 +122,16 @@ class ErrorOutput
|
||||
$message = $exception->getMessage();
|
||||
$statusCode = $exception->getCode();
|
||||
|
||||
if ($exception instanceof HasLogMessage) {
|
||||
$message = $exception->getLogMessage();
|
||||
}
|
||||
|
||||
if ($route) {
|
||||
$this->processRoute($route, $request, $exception);
|
||||
}
|
||||
|
||||
$logLevel = 'error';
|
||||
|
||||
$messageLineFile = null;
|
||||
|
||||
$messageLineFile =
|
||||
'line: ' . $exception->getLine() . ', ' .
|
||||
'file: ' . $exception->getFile();
|
||||
@@ -176,10 +179,10 @@ class ErrorOutput
|
||||
}
|
||||
|
||||
if ($toPrintBody) {
|
||||
$codeDesription = $this->getCodeDescription($statusCode);
|
||||
$codeDescription = $this->getCodeDescription($statusCode);
|
||||
|
||||
$statusText = isset($codeDesription) ?
|
||||
$statusCode . ' '. $codeDesription :
|
||||
$statusText = isset($codeDescription) ?
|
||||
$statusCode . ' '. $codeDescription :
|
||||
'HTTP ' . $statusCode;
|
||||
|
||||
if ($message) {
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace Espo\Core\EntryPoint;
|
||||
use Espo\Core\Exceptions\NotFound;
|
||||
|
||||
use Espo\Core\{
|
||||
Exceptions\NotFoundSilent,
|
||||
InjectableFactory,
|
||||
Utils\ClassFinder,
|
||||
Api\Request,
|
||||
@@ -44,7 +45,6 @@ use Espo\Core\{
|
||||
class EntryPointManager
|
||||
{
|
||||
private InjectableFactory $injectableFactory;
|
||||
|
||||
private ClassFinder $classFinder;
|
||||
|
||||
public function __construct(InjectableFactory $injectableFactory, ClassFinder $classFinder)
|
||||
@@ -53,12 +53,15 @@ class EntryPointManager
|
||||
$this->classFinder = $classFinder;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws NotFound
|
||||
*/
|
||||
public function checkAuthRequired(string $name): bool
|
||||
{
|
||||
$className = $this->getClassName($name);
|
||||
|
||||
if (!$className) {
|
||||
throw new NotFound("Entry point '{$name}' not found.");
|
||||
throw new NotFoundSilent("Entry point '{$name}' not found.");
|
||||
}
|
||||
|
||||
$noAuth = false;
|
||||
@@ -75,23 +78,29 @@ class EntryPointManager
|
||||
return $className::$authRequired ?? true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws NotFound
|
||||
*/
|
||||
public function checkNotStrictAuth(string $name): bool
|
||||
{
|
||||
$className = $this->getClassName($name);
|
||||
|
||||
if (!$className) {
|
||||
throw new NotFound("Entry point '{$name}' not found.");
|
||||
throw new NotFoundSilent("Entry point '{$name}' not found.");
|
||||
}
|
||||
|
||||
return $className::$notStrictAuth ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws NotFound
|
||||
*/
|
||||
public function run(string $name, Request $request, Response $response): void
|
||||
{
|
||||
$className = $this->getClassName($name);
|
||||
|
||||
if (!$className) {
|
||||
throw new NotFound("Entry point '{$name}' not found.");
|
||||
throw new NotFoundSilent("Entry point '{$name}' not found.");
|
||||
}
|
||||
|
||||
$entryPoint = $this->injectableFactory->create($className);
|
||||
|
||||
@@ -33,6 +33,7 @@ use Espo\Core\Exceptions\BadRequest;
|
||||
use Espo\Core\Application\Runner\Params as RunnerParams;
|
||||
use Espo\Core\EntryPoint\EntryPointManager;
|
||||
use Espo\Core\ApplicationUser;
|
||||
use Espo\Core\Exceptions\NotFound;
|
||||
use Espo\Core\Portal\Application as PortalApplication;
|
||||
use Espo\Core\Authentication\AuthenticationFactory;
|
||||
use Espo\Core\Authentication\AuthToken\Manager as AuthTokenManager;
|
||||
@@ -89,7 +90,7 @@ class Starter
|
||||
|
||||
/**
|
||||
* @throws BadRequest
|
||||
* @throws \Espo\Core\Exceptions\NotFound
|
||||
* @throws NotFound
|
||||
*/
|
||||
public function start(?string $entryPoint = null, bool $final = false): void
|
||||
{
|
||||
@@ -110,8 +111,19 @@ class Starter
|
||||
throw new BadRequest("No 'entryPoint' param.");
|
||||
}
|
||||
|
||||
$authRequired = $this->entryPointManager->checkAuthRequired($entryPoint);
|
||||
$authNotStrict = $this->entryPointManager->checkNotStrictAuth($entryPoint);
|
||||
$responseWrapped = new ResponseWrapper(new Response());
|
||||
|
||||
try {
|
||||
$authRequired = $this->entryPointManager->checkAuthRequired($entryPoint);
|
||||
$authNotStrict = $this->entryPointManager->checkNotStrictAuth($entryPoint);
|
||||
}
|
||||
catch (NotFound $exception) {
|
||||
$this->errorOutput->processWithBodyPrinting($requestWrapped, $responseWrapped, $exception);
|
||||
|
||||
(new ResponseEmitter())->emit($responseWrapped->getResponse());
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($authRequired && !$authNotStrict && !$final) {
|
||||
$portalId = $this->detectPortalId($requestWrapped);
|
||||
@@ -123,8 +135,6 @@ class Starter
|
||||
}
|
||||
}
|
||||
|
||||
$responseWrapped = new ResponseWrapper(new Response());
|
||||
|
||||
$this->processRequest(
|
||||
$entryPoint,
|
||||
$requestWrapped,
|
||||
|
||||
35
application/Espo/Core/Exceptions/HasLogMessage.php
Normal file
35
application/Espo/Core/Exceptions/HasLogMessage.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2022 Yurii Kuznietsov, Taras Machyshyn, Oleksii 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.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Core\Exceptions;
|
||||
|
||||
interface HasLogMessage
|
||||
{
|
||||
public function getLogMessage(): string;
|
||||
}
|
||||
@@ -32,10 +32,11 @@ namespace Espo\Core\FieldValidation\Exceptions;
|
||||
use Espo\Core\Exceptions\BadRequest;
|
||||
use Espo\Core\Exceptions\Error\Body;
|
||||
|
||||
use Espo\Core\Exceptions\HasLogMessage;
|
||||
use Espo\Core\FieldValidation\Failure;
|
||||
use LogicException;
|
||||
|
||||
class ValidationError extends BadRequest
|
||||
class ValidationError extends BadRequest implements HasLogMessage
|
||||
{
|
||||
private ?Failure $failure = null;
|
||||
|
||||
@@ -75,4 +76,18 @@ class ValidationError extends BadRequest
|
||||
|
||||
return $this->failure;
|
||||
}
|
||||
|
||||
public function getLogMessage(): string
|
||||
{
|
||||
if (!$this->failure) {
|
||||
return "Field validation failure.";
|
||||
}
|
||||
|
||||
$entityType = $this->failure->getEntityType();
|
||||
$field = $this->failure->getField();
|
||||
$type = $this->failure->getType();
|
||||
|
||||
return "Field validation failure; " .
|
||||
"entityType: {$entityType}, field: {$field}, type: {$type}.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +133,8 @@ class Htmlizer
|
||||
string $template,
|
||||
?string $cacheId = null,
|
||||
?array $additionalData = null,
|
||||
bool $skipLinks = false
|
||||
bool $skipLinks = false,
|
||||
bool $skipInlineAttachmentHandling = false
|
||||
): string {
|
||||
|
||||
$template = str_replace('<tcpdf ', '', $template);
|
||||
@@ -188,9 +189,11 @@ class Htmlizer
|
||||
|
||||
$html = $renderer($data);
|
||||
|
||||
$html = str_replace('?entryPoint=attachment&', '?entryPoint=attachment&', $html);
|
||||
if (!$skipInlineAttachmentHandling) {
|
||||
$html = str_replace('?entryPoint=attachment&', '?entryPoint=attachment&', $html);
|
||||
}
|
||||
|
||||
if ($this->entityManager) {
|
||||
if (!$skipInlineAttachmentHandling && $this->entityManager) {
|
||||
/** @var string $html */
|
||||
$html = preg_replace_callback(
|
||||
'/\?entryPoint=attachment\&id=([A-Za-z0-9]*)/',
|
||||
|
||||
@@ -39,25 +39,16 @@ use LogicException;
|
||||
|
||||
class TemplateRenderer
|
||||
{
|
||||
/**
|
||||
* @var ?array<string,mixed>
|
||||
*/
|
||||
/** @var ?array<string,mixed> */
|
||||
private $data = null;
|
||||
|
||||
private ?User $user = null;
|
||||
|
||||
private ?Entity $entity = null;
|
||||
|
||||
private bool $skipRelations = false;
|
||||
|
||||
private bool $skipInlineAttachmentHandling = false;
|
||||
private bool $applyAcl = false;
|
||||
|
||||
private bool $useUserTimezone = false;
|
||||
|
||||
private HtmlizerFactory $htmlizerFactory;
|
||||
|
||||
private ApplicationState $applicationState;
|
||||
|
||||
private ?string $template = null;
|
||||
|
||||
public function __construct(HtmlizerFactory $htmlizerFactory, ApplicationState $applicationState)
|
||||
@@ -107,6 +98,12 @@ class TemplateRenderer
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setSkipInlineAttachmentHandling(bool $skipInlineAttachmentHandling = true): self
|
||||
{
|
||||
$this->skipInlineAttachmentHandling = $skipInlineAttachmentHandling;
|
||||
|
||||
return $this;
|
||||
}
|
||||
public function setApplyAcl(bool $applyAcl = true): self
|
||||
{
|
||||
$this->applyAcl = $applyAcl;
|
||||
@@ -149,7 +146,8 @@ class TemplateRenderer
|
||||
$template,
|
||||
null,
|
||||
$this->data,
|
||||
$this->skipRelations
|
||||
$this->skipRelations,
|
||||
$this->skipInlineAttachmentHandling
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"fields": {
|
||||
"parent": "Genitore",
|
||||
"dateStart": "Data inizio",
|
||||
"dateEnd": "Data termine",
|
||||
"dateStart": "Data Inizio",
|
||||
"dateEnd": "Data Fine",
|
||||
"duration": "Durata",
|
||||
"status": "Stato",
|
||||
"reminders": "Promemoria",
|
||||
"dateStartDate": "Data inizio (tutto il giorno)",
|
||||
"dateEndDate": "Data fine (tutto il giorno)",
|
||||
"dateStartDate": "Data Inizio (tutto il giorno)",
|
||||
"dateEndDate": "Data Fine (tutto il giorno)",
|
||||
"isAllDay": "È tutto il giorno"
|
||||
},
|
||||
"links": {
|
||||
@@ -22,8 +22,8 @@
|
||||
},
|
||||
"labels": {
|
||||
"Create {entityType}": "Crea {entityTypeTranslated}",
|
||||
"Schedule {entityType}": "Pianificazione {entityTypeTranslated}",
|
||||
"Log {entityType}": "Registro {entityTypeTranslated}",
|
||||
"Schedule {entityType}": "Pianifica {entityTypeTranslated}",
|
||||
"Log {entityType}": "Registra {entityTypeTranslated}",
|
||||
"Set Held": "Effettuata",
|
||||
"Set Not Held": "Non Effettuata"
|
||||
},
|
||||
|
||||
@@ -305,8 +305,17 @@ class Util
|
||||
*/
|
||||
private static function arrayToObjectInternal($value)
|
||||
{
|
||||
if (is_array($value)) {
|
||||
return (object) array_map(fn($v) => self::arrayToObjectInternal($v), $value);
|
||||
if (!is_array($value)) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
// @todo Change to `array_is_list` when PHP 8.1 is the min supported.
|
||||
$isList = $value === array_values($value);
|
||||
|
||||
$value = array_map(fn($v) => self::arrayToObjectInternal($v), $value);
|
||||
|
||||
if (!$isList) {
|
||||
$value = (object) $value;
|
||||
}
|
||||
|
||||
return $value;
|
||||
|
||||
@@ -111,6 +111,7 @@ class Attachment implements EntryPoint
|
||||
$response
|
||||
->setHeader('Pragma', 'public')
|
||||
->setHeader('Content-Length', (string) $size)
|
||||
->setHeader('Content-Security-Policy', "default-src 'self'")
|
||||
->setBody($stream);
|
||||
}
|
||||
|
||||
|
||||
@@ -75,10 +75,14 @@ class Avatar extends Image implements Di\MetadataAware
|
||||
$sum += ord($hash[$i]);
|
||||
}
|
||||
|
||||
$x = intval($sum % 128) + 1;
|
||||
$x = $sum % 128 + 1;
|
||||
|
||||
$colorList = $this->metadata->get(['app', 'avatars', 'colorList']) ?? $this->colorList;
|
||||
|
||||
if ($x === 128) {
|
||||
$x--;
|
||||
}
|
||||
|
||||
$index = intval($x * count($colorList) / 128);
|
||||
|
||||
return $colorList[$index];
|
||||
|
||||
@@ -174,6 +174,7 @@ class Invitations
|
||||
$subjectTpl,
|
||||
'invitation-email-subject-' . $entity->getEntityType(),
|
||||
$data,
|
||||
true,
|
||||
true
|
||||
);
|
||||
|
||||
@@ -182,7 +183,8 @@ class Invitations
|
||||
$bodyTpl,
|
||||
'invitation-email-body-' . $entity->getEntityType(),
|
||||
$data,
|
||||
false
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
||||
$email->set('subject', $subject);
|
||||
|
||||
@@ -13,12 +13,12 @@
|
||||
"campaign": "Campagna",
|
||||
"targetLists": "Liste di destinazione",
|
||||
"targetList": "Lista di destinazione",
|
||||
"originalLead": "Iniziativa originale",
|
||||
"originalLead": "Lead Originale",
|
||||
"contactIsInactive": "Inattivo"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Contatti",
|
||||
"opportunities": "Opportunita'",
|
||||
"opportunities": "Opportunità",
|
||||
"cases": "Ticket",
|
||||
"documents": "Documenti",
|
||||
"meetingsPrimary": "Riunioni (ampliato)",
|
||||
@@ -29,7 +29,8 @@
|
||||
"campaignLogRecords": "Log campagna",
|
||||
"campaign": "Campagna",
|
||||
"portalUsers": "Utenti portale",
|
||||
"originalLead": "Iniziativa originale"
|
||||
"originalLead": "Lead Originale",
|
||||
"contactsPrimary": "Contatti (primari)"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"Create": "Crea",
|
||||
"Shared": "Diviso",
|
||||
"Add User": "Aggiungi Utente",
|
||||
"current": "Attuale",
|
||||
"current": "In Corso",
|
||||
"time": "ora",
|
||||
"User List": "Elenco utenti",
|
||||
"Manage Users": "Gestione utenti",
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
"name": "Nome",
|
||||
"parent": "Genitore",
|
||||
"status": "Stato",
|
||||
"dateStart": "Data inizio",
|
||||
"dateEnd": "Data termine",
|
||||
"dateStart": "Data Inizio",
|
||||
"dateEnd": "Data Fine",
|
||||
"direction": "Direzione",
|
||||
"duration": "Durata",
|
||||
"description": "Descrizione",
|
||||
"users": "Utenti",
|
||||
"contacts": "Contatti",
|
||||
"reminders": "Promemoria",
|
||||
"acceptanceStatus": "Stato accettazione"
|
||||
"acceptanceStatus": "Stato Accettazione"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"excludingTargetLists": "Esclusioni da liste di destinazione",
|
||||
"accounts": "Account",
|
||||
"contacts": "Contatti",
|
||||
"opportunities": "Opportunita'",
|
||||
"opportunities": "Opportunità",
|
||||
"massEmails": "Email massiva",
|
||||
"contactsTemplate": "Modello contatti",
|
||||
"leadsTemplate": "Modello Leads",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"object": "Oggetto",
|
||||
"application": "Applicazione",
|
||||
"queueItem": "Articolo in coda",
|
||||
"isTest": "E'Test"
|
||||
"isTest": "È un Test"
|
||||
},
|
||||
"links": {
|
||||
"queueItem": "Articolo in coda",
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"url": "Il destinatario sara' reindirizzato a questa posizione dopo aver seguito il link."
|
||||
"url": "Il destinatario sarà reindirizzato a questa posizione dopo aver seguito il link.",
|
||||
"message": "Il messaggio verrà mostrato al destinatario dopo che avrà seguito il link. Il Markdown è supportato."
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"status": "Stato",
|
||||
"contact": "Contatti",
|
||||
"contacts": "Contatti",
|
||||
"priority": "Priorita'",
|
||||
"priority": "Priorità",
|
||||
"type": "Tipo",
|
||||
"description": "Descrizione",
|
||||
"attachments": "Allegati",
|
||||
|
||||
@@ -7,19 +7,19 @@
|
||||
"accountType": "Tipo di Account",
|
||||
"doNotCall": "Non chiamare",
|
||||
"address": "Indirizzo",
|
||||
"opportunityRole": "Ruolo opportunità",
|
||||
"opportunityRole": "Ruolo Opportunità",
|
||||
"description": "Descrizione",
|
||||
"targetLists": "Liste di destinazione",
|
||||
"targetList": "Lista di destinazione",
|
||||
"originalLead": "Lead originale",
|
||||
"acceptanceStatus": "Stato accettazione",
|
||||
"acceptanceStatus": "Stato Accettazione",
|
||||
"accountIsInactive": "Account inattivo",
|
||||
"acceptanceStatusMeetings": "Stato accettazione (riunioni)",
|
||||
"acceptanceStatusCalls": "Stato accettazione (chiamate)",
|
||||
"acceptanceStatusMeetings": "Stato Accettazione (Riunioni)",
|
||||
"acceptanceStatusCalls": "Stato Accettazione (Chiamate)",
|
||||
"title": "Titolo Account"
|
||||
},
|
||||
"links": {
|
||||
"opportunities": "Opportunita'",
|
||||
"opportunities": "Opportunità",
|
||||
"cases": "Ticket",
|
||||
"targetLists": "Liste di destinazione",
|
||||
"campaignLogRecords": "Log campagna",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
},
|
||||
"links": {
|
||||
"accounts": "Account",
|
||||
"opportunities": "Opportunita'",
|
||||
"opportunities": "Opportunità",
|
||||
"folder": "Cartella",
|
||||
"contacts": "Contatti"
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"Create Task": "Crea Compito",
|
||||
"Create Case": "Crea Caso",
|
||||
"Add to Contact": "Aggiungi al contatto",
|
||||
"Add to Lead": "Aggiungi all'iniziativa"
|
||||
"Add to Lead": "Aggiungi al Lead"
|
||||
},
|
||||
"fields": {
|
||||
"tasks": "Compiti"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"attemptCount": "Prove",
|
||||
"emailAddress": "Indirizzo email",
|
||||
"massEmail": "Email massiva",
|
||||
"isTest": "E' un test"
|
||||
"isTest": "È un test"
|
||||
},
|
||||
"links": {
|
||||
"massEmail": "Email massiva"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"links": {
|
||||
"parent": "Genitore",
|
||||
"contacts": "Contatti",
|
||||
"opportunities": "Opportunita'",
|
||||
"opportunities": "Opportunità",
|
||||
"meetings": "Riunioni",
|
||||
"calls": "Chiamate",
|
||||
"tasks": "Compiti",
|
||||
@@ -35,7 +35,7 @@
|
||||
"scopeNamesPlural": {
|
||||
"Account": "Account",
|
||||
"Contact": "Contatti",
|
||||
"Opportunity": "Opportunita'",
|
||||
"Opportunity": "Opportunità",
|
||||
"Meeting": "Riunioni",
|
||||
"Calendar": "Calendario",
|
||||
"Call": "Chiamate",
|
||||
@@ -43,7 +43,7 @@
|
||||
"Case": "Tickets",
|
||||
"Document": "Documenti",
|
||||
"DocumentFolder": "Cartella documenti",
|
||||
"Campaign": "Campagna",
|
||||
"Campaign": "Campagne",
|
||||
"TargetList": "Liste di destinazione",
|
||||
"MassEmail": "Email massive",
|
||||
"EmailQueueItem": "Elementi della coda e-mail",
|
||||
@@ -54,14 +54,14 @@
|
||||
},
|
||||
"dashlets": {
|
||||
"Leads": "I miei Lead",
|
||||
"Opportunities": "Le mie opportunità",
|
||||
"Opportunities": "Le mie Opportunità",
|
||||
"Tasks": "I miei Compiti",
|
||||
"Cases": "I miei Tickets",
|
||||
"Calendar": "Calendario",
|
||||
"Calls": "Le mie chiamate",
|
||||
"Meetings": "Le mie riunioni",
|
||||
"OpportunitiesByStage": "Opportunità di stage",
|
||||
"OpportunitiesByLeadSource": "Opportunità per Lead Source",
|
||||
"OpportunitiesByStage": "Opportunità per Stadio",
|
||||
"OpportunitiesByLeadSource": "Opportunità per Provenienza Lead",
|
||||
"SalesByMonth": "Vendite per Mese",
|
||||
"SalesPipeline": "Canale di vendita",
|
||||
"Activities": "Le mie attività"
|
||||
@@ -74,16 +74,16 @@
|
||||
"Schedule Meeting": "Pianifica Riunione",
|
||||
"Schedule Call": "Pianifica chiamata",
|
||||
"Compose Email": "Componi email",
|
||||
"Log Meeting": "Registro riunione",
|
||||
"Log Call": "Registro chiamata",
|
||||
"Archive Email": "Archivio Email",
|
||||
"Log Meeting": "Registra Riunione",
|
||||
"Log Call": "Registra Chiamata",
|
||||
"Archive Email": "Archivia Email",
|
||||
"Create Task": "Crea Compito",
|
||||
"Tasks": "Compiti",
|
||||
"Scheduler": "Pianificatore"
|
||||
},
|
||||
"fields": {
|
||||
"billingAddressCity": "Citta'",
|
||||
"addressCity": "Citta'",
|
||||
"billingAddressCity": "Città",
|
||||
"addressCity": "Città",
|
||||
"billingAddressCountry": "Nazione",
|
||||
"addressCountry": "Nazione",
|
||||
"billingAddressPostalCode": "Codice Postale",
|
||||
@@ -92,7 +92,7 @@
|
||||
"addressState": "Provincia",
|
||||
"billingAddressStreet": "Via",
|
||||
"addressStreet": "Via",
|
||||
"shippingAddressCity": "Citta' (Spedizione)",
|
||||
"shippingAddressCity": "Città (Spedizione)",
|
||||
"shippingAddressStreet": "Via (Spedizione)",
|
||||
"shippingAddressCountry": "Nazione (Spedizione)",
|
||||
"shippingAddressState": "Stato (Spedizione)",
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
"links": {
|
||||
"cases": "Tickets",
|
||||
"opportunities": "Opportunita'",
|
||||
"opportunities": "Opportunità",
|
||||
"categories": "Categorie",
|
||||
"portals": "Portali"
|
||||
},
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
"address": "Indirizzo",
|
||||
"status": "Stato",
|
||||
"source": "Provenienza",
|
||||
"opportunityAmount": "Importo opportunità",
|
||||
"opportunityAmountConverted": "Importo opportunità (convertito)",
|
||||
"opportunityAmount": "Importo Opportunità",
|
||||
"opportunityAmountConverted": "Importo Opportunità (convertito)",
|
||||
"description": "Descrizione",
|
||||
"createdContact": "Contatti",
|
||||
"createdOpportunity": "Opportunità",
|
||||
@@ -24,10 +24,10 @@
|
||||
"targetLists": "Liste di destinazione",
|
||||
"targetList": "Lista di destinazione",
|
||||
"industry": "Settore",
|
||||
"acceptanceStatus": "Stato accettazione",
|
||||
"acceptanceStatus": "Stato Accettazione",
|
||||
"opportunityAmountCurrency": "Valuta dell'importo della proposta",
|
||||
"acceptanceStatusMeetings": "Stato accettazione (riunioni)",
|
||||
"acceptanceStatusCalls": "Stato accettazione (chiamate)",
|
||||
"acceptanceStatusMeetings": "Stato Accettazione (Riunioni)",
|
||||
"acceptanceStatusCalls": "Stato Accettazione (Chiamate)",
|
||||
"convertedAt": "Convertito a"
|
||||
},
|
||||
"links": {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Nome",
|
||||
"status": "Stato",
|
||||
"storeSentEmails": "Archivia email inviate",
|
||||
"startAt": "Data inizio",
|
||||
"startAt": "Data Inizio",
|
||||
"fromAddress": "Indirizzo mittente",
|
||||
"fromName": "Dal nome",
|
||||
"replyToAddress": "Rispondi aa Indirizzo",
|
||||
@@ -50,7 +50,7 @@
|
||||
"storeSentEmails": "Le email verranno salvate nel CRM"
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Attuale",
|
||||
"actual": "In Corso",
|
||||
"complete": "Completo"
|
||||
}
|
||||
}
|
||||
@@ -3,23 +3,23 @@
|
||||
"name": "Nome",
|
||||
"parent": "Genitore",
|
||||
"status": "Stato",
|
||||
"dateStart": "Data inizio",
|
||||
"dateEnd": "Data termine",
|
||||
"dateStart": "Data Inizio",
|
||||
"dateEnd": "Data Fine",
|
||||
"duration": "Durata",
|
||||
"description": "Descrizione",
|
||||
"users": "Utenti",
|
||||
"contacts": "Contatti",
|
||||
"leads": "Iniziative",
|
||||
"reminders": "Promemoria",
|
||||
"acceptanceStatus": "Stato accettazione",
|
||||
"dateStartDate": "Data inizio (tutto il giorno)",
|
||||
"dateEndDate": "Data fine (tutto il giorno)",
|
||||
"acceptanceStatus": "Stato Accettazione",
|
||||
"dateStartDate": "Data Inizio (tutto il giorno)",
|
||||
"dateEndDate": "Data Fine (tutto il giorno)",
|
||||
"isAllDay": "È tutto il giorno",
|
||||
"Acceptance": "Accettazione"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Pianificato",
|
||||
"Planned": "Pianificata",
|
||||
"Held": "Effettuata",
|
||||
"Not Held": "Non Effettuata"
|
||||
},
|
||||
@@ -27,7 +27,7 @@
|
||||
"None": "Nessuno",
|
||||
"Accepted": "Accettato",
|
||||
"Declined": "Declinato",
|
||||
"Tentative": "Tentativo"
|
||||
"Tentative": "Provvisorio"
|
||||
}
|
||||
},
|
||||
"massActions": {
|
||||
@@ -44,12 +44,13 @@
|
||||
"All-Day": "Tutto il giorno\n"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Pianificato",
|
||||
"held": "Effettuata",
|
||||
"planned": "Pianificate",
|
||||
"held": "Effettuate",
|
||||
"todays": "Di oggi"
|
||||
},
|
||||
"messages": {
|
||||
"nothingHasBeenSent": "Nulla è stato inviato",
|
||||
"selectAcceptanceStatus": "Imposta il tuo stato di accettazione."
|
||||
"selectAcceptanceStatus": "Imposta il tuo stato di accettazione.",
|
||||
"sendInvitationsConfirmation": "Invia email di invito ai partecipanti?"
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@
|
||||
"Television": "Televisione"
|
||||
},
|
||||
"targetStatus": {
|
||||
"Opted Out": "Cancellato iscrizione",
|
||||
"Opted Out": "Iscrizione Cancellata",
|
||||
"Listed": "Elencato"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
"name": "Nome",
|
||||
"parent": "Genitore",
|
||||
"status": "Stato",
|
||||
"dateStart": "Data inizio",
|
||||
"dateStart": "Data Inizio",
|
||||
"dateEnd": "Data di scadenza",
|
||||
"dateStartDate": "Data inizio (tutto il giorno)",
|
||||
"dateEndDate": "Data termine (tutto il giorno)",
|
||||
"priority": "Priorita'",
|
||||
"dateStartDate": "Data Inizio (tutto il giorno)",
|
||||
"dateEndDate": "Data Fine (tutto il giorno)",
|
||||
"priority": "Priorità",
|
||||
"description": "Descrizione",
|
||||
"isOverdue": "In ritardo",
|
||||
"dateCompleted": "Completato in data",
|
||||
@@ -36,11 +36,11 @@
|
||||
},
|
||||
"labels": {
|
||||
"Create Task": "Crea Compito",
|
||||
"Complete": "Completo",
|
||||
"Complete": "Completato",
|
||||
"overdue": "in ritardo"
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Attuale",
|
||||
"actual": "In Corso",
|
||||
"completed": "Completato",
|
||||
"todays": "Di oggi",
|
||||
"overdue": "In ritardo",
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
"targetLists": "Liste di destinazione"
|
||||
},
|
||||
"fields": {
|
||||
"acceptanceStatus": "Stato accettazione",
|
||||
"acceptanceStatusMeetings": "Stato accettazione (riunioni)",
|
||||
"acceptanceStatusCalls": "Stato accettazione (chiamate)"
|
||||
"acceptanceStatus": "Stato Accettazione",
|
||||
"acceptanceStatusMeetings": "Stato Accettazione (Riunioni)",
|
||||
"acceptanceStatusCalls": "Stato Accettazione (Chiamate)"
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,10 @@
|
||||
"scope": "Opportunity",
|
||||
"field": "leadSource"
|
||||
},
|
||||
"Account.options.industry": {
|
||||
"scope": "Lead",
|
||||
"field": "industry"
|
||||
},
|
||||
"Meeting": {
|
||||
"scope": "Call"
|
||||
}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
"entityDefs.Lead.fields.source.options": {
|
||||
"scope": "Opportunity",
|
||||
"field": "leadSource"
|
||||
},
|
||||
"entityDefs.Account.fields.industry.options": {
|
||||
"scope": "Lead",
|
||||
"field": "industry"
|
||||
}
|
||||
},
|
||||
"frontendHiddenPathList": [
|
||||
|
||||
@@ -66,6 +66,8 @@
|
||||
"type": "enum",
|
||||
"view": "crm:views/lead/fields/industry",
|
||||
"customizationOptionsDisabled": true,
|
||||
"optionsPath": "entityDefs.Account.fields.industry.options",
|
||||
"translation": "Account.options.industry",
|
||||
"default": "",
|
||||
"isSorted": true
|
||||
},
|
||||
|
||||
@@ -147,7 +147,7 @@ class RelationDefs
|
||||
{
|
||||
if (!$this->hasForeignEntityType()) {
|
||||
throw new RuntimeException(
|
||||
"No 'entity' paramater defined in the relation '{$this->name}'."
|
||||
"No 'entity' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ class RelationDefs
|
||||
{
|
||||
if (!$this->hasForeignRelationName()) {
|
||||
throw new RuntimeException(
|
||||
"No 'foreign' paramater defined in the relation '{$this->name}'."
|
||||
"No 'foreign' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -193,7 +193,7 @@ class RelationDefs
|
||||
{
|
||||
if (!$this->hasForeignKey()) {
|
||||
throw new RuntimeException(
|
||||
"No 'foreignKey' paramater defined in the relation '{$this->name}'."
|
||||
"No 'foreignKey' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ class RelationDefs
|
||||
{
|
||||
if (!$this->hasKey()) {
|
||||
throw new RuntimeException(
|
||||
"No 'key' paramater defined in the relation '{$this->name}'."
|
||||
"No 'key' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -224,7 +224,7 @@ class RelationDefs
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether a mid key is defined. For Many-to-Many relationships only.
|
||||
* Whether a mid-key is defined. For Many-to-Many relationships only.
|
||||
*/
|
||||
public function hasMidKey(): bool
|
||||
{
|
||||
@@ -232,14 +232,14 @@ class RelationDefs
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a mid key. For Many-to-Many relationships only.
|
||||
* Get a mid-key. For Many-to-Many relationships only.
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function getMidKey(): string
|
||||
{
|
||||
if (!$this->hasMidKey()) {
|
||||
throw new RuntimeException(
|
||||
"No 'midKey' paramater defined in the relation '{$this->name}'."
|
||||
"No 'midKey' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -247,7 +247,7 @@ class RelationDefs
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether a foreign mid key is defined. For Many-to-Many relationships only.
|
||||
* Whether a foreign mid-key is defined. For Many-to-Many relationships only.
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function hasForeignMidKey(): bool
|
||||
@@ -256,14 +256,14 @@ class RelationDefs
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a foreign mid key. For Many-to-Many relationships only.
|
||||
* Get a foreign mid-key. For Many-to-Many relationships only.
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function getForeignMidKey(): string
|
||||
{
|
||||
if (!$this->hasForeignMidKey()) {
|
||||
throw new RuntimeException(
|
||||
"No 'foreignMidKey' paramater defined in the relation '{$this->name}'."
|
||||
"No 'foreignMidKey' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ class RelationDefs
|
||||
{
|
||||
if (!$this->hasRelationshipName()) {
|
||||
throw new RuntimeException(
|
||||
"No 'relationName' paramater defined in the relation '{$this->name}'."
|
||||
"No 'relationName' parameter defined in the relation '{$this->name}'."
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"Posted": "Zasláno",
|
||||
"Linked": "Nalinkováno",
|
||||
"Unlinked": "Odlinkováno",
|
||||
"Done": "Hovoto",
|
||||
"Done": "Hotovo",
|
||||
"Access denied": "Přístup odepřen",
|
||||
"Access": "Přístup",
|
||||
"Are you sure?": "Jste si jisti?",
|
||||
|
||||
@@ -271,7 +271,8 @@
|
||||
"Field": "Field",
|
||||
"Resolution": "Resolution",
|
||||
"Resolve Conflict": "Resolve Conflict",
|
||||
"Download": "Download"
|
||||
"Download": "Download",
|
||||
"Global Search": "Global Search"
|
||||
},
|
||||
"messages": {
|
||||
"pleaseWait": "Please wait...",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"fields": {
|
||||
"createdAt": "Data",
|
||||
"targetType": "Tipo di Obiettivo",
|
||||
"authToken": "Token di autenticazione",
|
||||
"authLogRecord": "Record di log auth",
|
||||
"userType": "Tipologia di utente"
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
"Currency": "Valuta",
|
||||
"Integrations": "Integrazioni",
|
||||
"Extensions": "Estensioni",
|
||||
"Upload": "Caricamento",
|
||||
"Installing...": "Installazione...",
|
||||
"Upgrading...": "Aggiornamento...",
|
||||
"Upgraded successfully": "Aggiornamento completato",
|
||||
@@ -64,14 +63,17 @@
|
||||
"Permissions": "Permessi",
|
||||
"Success": "Successo",
|
||||
"Fail": "Fallito",
|
||||
"is recommended": "E' raccomandato",
|
||||
"is recommended": "È consigliato",
|
||||
"extension is missing": "Manca l'estensione",
|
||||
"PDF Templates": "Modelli PDF",
|
||||
"Webhooks": "Webhooks\n",
|
||||
"Email Addresses": "Indirizzi Email",
|
||||
"Phone Numbers": "Telefono",
|
||||
"Phone Numbers": "Numeri di Telefono",
|
||||
"Messaging": "Messaggistica",
|
||||
"Misc": "Varie"
|
||||
"Misc": "Varie",
|
||||
"Job Settings": "Impostazioni Job",
|
||||
"Configuration Instructions": "Istruzioni di Configurazione",
|
||||
"Formula Sandbox": "Sandbox Formule"
|
||||
},
|
||||
"layouts": {
|
||||
"list": "Elenco",
|
||||
@@ -175,7 +177,11 @@
|
||||
"codeType": "Tipo Codice",
|
||||
"lastChar": "Ultimo Carattere",
|
||||
"listPreviewSize": "Dimensione Anteprima in Vista Elenco",
|
||||
"onlyDefaultCurrency": "Solo valuta predefinita"
|
||||
"onlyDefaultCurrency": "Solo valuta predefinita",
|
||||
"dynamicLogicInvalid": "Condizioni che rendono il campo non valido",
|
||||
"conversionDisabled": "Disattiva la Conversione",
|
||||
"decimalPlaces": "Posizioni Decimali",
|
||||
"globalRestrictions": "Restrizioni Globali"
|
||||
},
|
||||
"messages": {
|
||||
"selectEntityType": "Scegli il tipo di entità dal menu di sinistra.",
|
||||
@@ -194,9 +200,10 @@
|
||||
"upgradeDone": "EspoCRM è stato aggiornato alla versione **{version}**.",
|
||||
"downloadUpgradePackage": "Scarica i pacchetti di aggiornamento [qui]({url}).",
|
||||
"upgradeInfo": "Controlla la [documentazione]({url}) su come aggiornare l'istanza di EspoCRM.",
|
||||
"upgradeRecommendation": "Questo modo di aggiornamento non è raccomandato. È meglio eseguire l'aggiornamento dalla CLI.",
|
||||
"upgradeRecommendation": "Questo modo di aggiornamento non è consigliato. È meglio eseguire l'aggiornamento dalla CLI.",
|
||||
"newVersionIsAvailable": "È disponibile la nuova versione di EspoCRM {latestVersion}. Seguire le [istruzioni](https://www.espocrm.com/documentation/administration/upgrading/) per aggiornare l'istanza.",
|
||||
"formulaFunctions": "Più funzioni possono essere trovate nella [documentazione]({documentationUrl})."
|
||||
"formulaFunctions": "Più funzioni possono essere trovate nella [documentazione]({documentationUrl}).",
|
||||
"rebuildRequired": "È necessario eseguire la ricostruzione da CLI."
|
||||
},
|
||||
"descriptions": {
|
||||
"settings": "Impostazioni di sistema dell'applicazione.",
|
||||
@@ -230,7 +237,7 @@
|
||||
"labelManager": "Personalizza etichette dell'applicazione",
|
||||
"authLog": "Cronologia login.",
|
||||
"leadCapture": "Punti di ingresso API per Web-to-Lead.",
|
||||
"attachments": "Tutti gli allegati di file memorizzati nel sistema.",
|
||||
"attachments": "Tutti gli allegati memorizzati nel sistema.",
|
||||
"templateManager": "Personalizza i modelli di messaggi.\n",
|
||||
"systemRequirements": "Requisiti di sistema per EspoCRM.\n",
|
||||
"apiUsers": "Utenti separati per integrazione.\n\n",
|
||||
@@ -238,7 +245,11 @@
|
||||
"pdfTemplates": "Modelli per la stampa in PDF.",
|
||||
"webhooks": "Gestisci i webhook.",
|
||||
"dashboardTemplates": "Distribuire dashboard agli utenti.",
|
||||
"phoneNumbers": "Tutti i numeri telefonici sono archiviati nel sistema."
|
||||
"phoneNumbers": "Tutti i numeri telefonici archiviati nel sistema.",
|
||||
"emailAddresses": "Tutti gli indirizzi email memorizzati nel sistema.",
|
||||
"layoutSets": "Raccolte di layout che possono essere assegnati a team e portali.",
|
||||
"sms": "Impostazioni SMS.",
|
||||
"formulaSandbox": "Scrivi e testa gli script delle formule."
|
||||
},
|
||||
"logicalOperators": {
|
||||
"and": "And"
|
||||
@@ -262,15 +273,18 @@
|
||||
"notePostNoParent": "Nota su post (nessun genitore)",
|
||||
"noteStatus": "Nota sull'aggiornamento dello stato",
|
||||
"passwordChangeLink": "Collegamento per la modifica della password",
|
||||
"noteEmailReceived": "Nota sull'e-mail ricevuta"
|
||||
"noteEmailReceived": "Nota sull'e-mail ricevuta",
|
||||
"twoFactorCode": "Codice 2FA"
|
||||
},
|
||||
"strings": {
|
||||
"rebuildRequired": "E' richiesta la ricostruzione"
|
||||
"rebuildRequired": "È richiesta la ricostruzione"
|
||||
},
|
||||
"keywords": {
|
||||
"userInterface": "ui,tema,schede,logo,dashboard",
|
||||
"authLog": "storico log",
|
||||
"authTokens": "storico log di accesso",
|
||||
"templateManager": "notifiche"
|
||||
"entityManager": "campi,relazioni,rapporti",
|
||||
"templateManager": "notifiche",
|
||||
"authentication": "password,sicurezza,ldap"
|
||||
}
|
||||
}
|
||||
@@ -8,14 +8,14 @@
|
||||
"denialReason": "Ragione Negazione",
|
||||
"portal": "Portale",
|
||||
"user": "Utente",
|
||||
"authToken": "Token autorizzazione creato",
|
||||
"authToken": "Token di Autorizzazione Creato",
|
||||
"requestUrl": "Url di richiesta",
|
||||
"requestMethod": "Metodo di richiesta",
|
||||
"authTokenIsActive": "Il token di autorizzazione è attivo",
|
||||
"authenticationMethod": "Metodo di autenticazione"
|
||||
},
|
||||
"links": {
|
||||
"authToken": "Token di autorizzazione creato",
|
||||
"authToken": "Token di Autorizzazione Creato",
|
||||
"user": "Utente",
|
||||
"portal": "Portale",
|
||||
"actionHistoryRecords": "Cronologia delle azioni"
|
||||
|
||||
@@ -1 +1,164 @@
|
||||
{}
|
||||
{
|
||||
"names": {
|
||||
"AED": "Dirham degli Emirati Arabi Uniti",
|
||||
"AFN": "Afgano Afghani",
|
||||
"ALL": "Lek Albanese",
|
||||
"AMD": "Dram Armeno",
|
||||
"ANG": "Fiorino delle Antille Olandesi",
|
||||
"AOA": "Kwanza Angolano",
|
||||
"ARS": "Peso Argentino",
|
||||
"AUD": "Dollaro Australiano",
|
||||
"AWG": "Fiorino Arubano",
|
||||
"AZN": "Manat Azero",
|
||||
"BAM": "Marco Bosniaco",
|
||||
"BBD": "Dollaro Barbadiano",
|
||||
"BDT": "Taka Bengalese",
|
||||
"BGN": "Lev Bulgaro",
|
||||
"BHD": "Dinaro del Bahrein",
|
||||
"BIF": "Franco del Burundi",
|
||||
"BMD": "Dollaro Bermudiano",
|
||||
"BND": "Dollaro del Brunei",
|
||||
"BOB": "Boliviano",
|
||||
"BRL": "Real Brasiliano",
|
||||
"BSD": "Dollaro delle Bahamas",
|
||||
"BTN": "Ngultrum del Bhutan",
|
||||
"BWP": "Pula del Botswana",
|
||||
"BYN": "Rublo Bielorusso",
|
||||
"BZD": "Dollaro del Belize",
|
||||
"CAD": "Dollaro Canadese",
|
||||
"CDF": "Franco Congolese",
|
||||
"CHF": "Franco Svizzero",
|
||||
"CHW": "WIR Franco",
|
||||
"CLF": "Unità di conto cilena (UF)",
|
||||
"CLP": "Peso Cileno",
|
||||
"CNH": "Yuan Cinese (offshore)",
|
||||
"CNY": "Yuan Cinese",
|
||||
"COP": "Peso Colombiano",
|
||||
"COU": "Unità di Valore Reale Colombiano",
|
||||
"CRC": "Colón Costaricano",
|
||||
"CUC": "Peso Cubano Convertibile",
|
||||
"CUP": "Peso Cubano",
|
||||
"CVE": "Escudo Capoverdiano",
|
||||
"CZK": "Corona Ceca",
|
||||
"DJF": "Franco Gibutiano",
|
||||
"DKK": "Corona Danese",
|
||||
"DOP": "Peso Dominicano",
|
||||
"DZD": "Dinaro Algerino",
|
||||
"EGP": "Sterlina Egiziana",
|
||||
"ERN": "Nacfa Eritreo",
|
||||
"ETB": "Birr Etiope",
|
||||
"FJD": "Dollaro delle Figi",
|
||||
"FKP": "Sterlina delle Falkland",
|
||||
"GBP": "Sterlina Britannica",
|
||||
"GEL": "Lari Georgiano",
|
||||
"GHS": "Cedi Ghanese",
|
||||
"GIP": "Sterlina di Gibilterra",
|
||||
"GMD": "Dalasi Gambese",
|
||||
"GNF": "Franco Guineano",
|
||||
"GTQ": "Quetzal Guatemalteco",
|
||||
"GYD": "Dollaro della Guyana",
|
||||
"HKD": "Dollaro di Hong Kong",
|
||||
"HNL": "Lempira Honduregna",
|
||||
"HRK": "Kuna Croata",
|
||||
"HTG": "Gourde Haitiano",
|
||||
"HUF": "Fiorino Ungherese",
|
||||
"IDR": "Rupia Indonesiana",
|
||||
"ILS": "Nuovo Shekel Israeliano",
|
||||
"INR": "Rupia Indiana",
|
||||
"IQD": "Dinaro Iracheno",
|
||||
"IRR": "Riyal Iraniano",
|
||||
"ISK": "Corona Islandese",
|
||||
"JMD": "Dollaro Giamaicano",
|
||||
"JOD": "Dinaro Giordano",
|
||||
"JPY": "Yen Giapponese",
|
||||
"KES": "Scellino Keniota",
|
||||
"KGS": "Som Kirghiso",
|
||||
"KHR": "Riel Cambogiano",
|
||||
"KMF": "Franco delle Comore",
|
||||
"KPW": "Won Nordcoreano",
|
||||
"KRW": "Won Sudcoreano",
|
||||
"KWD": "Dinaro Kuwaitiano",
|
||||
"KYD": "Dollaro delle Cayman",
|
||||
"KZT": "Tenge Kazako",
|
||||
"LAK": "Kip Laotiano",
|
||||
"LBP": "Lira Libanese",
|
||||
"LKR": "Rupia Singalese",
|
||||
"LRD": "Dollaro Liberiano",
|
||||
"LSL": "Loti Lesothiano",
|
||||
"LYD": "Dinaro Libico",
|
||||
"MAD": "Dirham Marocchino",
|
||||
"MDL": "Leu Moldavo",
|
||||
"MGA": "Ariary Malgascio",
|
||||
"MKD": "Dinaro Macedone",
|
||||
"MMK": "Kyat Birmano",
|
||||
"MNT": "Tugrik Mongolo",
|
||||
"MOP": "Pataca di Macao",
|
||||
"MRO": "Ouguiya Mauritana",
|
||||
"MUR": "Rupia Mauriziana",
|
||||
"MWK": "Kwacha Malawiano",
|
||||
"MXN": "Peso Messicano",
|
||||
"MYR": "Ringgit Malaysiano",
|
||||
"MZN": "Metical Mozambicano",
|
||||
"NAD": "Dollaro Namibiano",
|
||||
"NGN": "Naira Nigeriana",
|
||||
"NIO": "Córdoba Nicaraguense",
|
||||
"NOK": "Corona Norvegese",
|
||||
"NPR": "Rupia Nepalese",
|
||||
"NZD": "Dollaro Neozelandese",
|
||||
"OMR": "Riyal dell'Oman",
|
||||
"PAB": "Balboa Panamense",
|
||||
"PEN": "Nuevo Sol Peruviano",
|
||||
"PGK": "Kina Papuana",
|
||||
"PHP": "Peso Filippino",
|
||||
"PKR": "Rupia Pakistana",
|
||||
"PLN": "Złoty Polacco",
|
||||
"PYG": "Guaraní Paraguaiano",
|
||||
"QAR": "Riyal del Qatar",
|
||||
"RON": "Leu Romeno",
|
||||
"RSD": "Dinaro Serbo",
|
||||
"RUB": "Rublo Russo",
|
||||
"RWF": "Franco Ruandese",
|
||||
"SAR": "Riyal Saudita",
|
||||
"SBD": "Dollaro delle Salomone",
|
||||
"SCR": "Rupia delle Seychelles",
|
||||
"SDG": "Sterlina Sudanese",
|
||||
"SEK": "Corona Svedese",
|
||||
"SGD": "Dollaro di Singapore",
|
||||
"SHP": "Sterlina di Sant'Elena",
|
||||
"SLL": "Leone Sierraleonese",
|
||||
"SOS": "Scellino Somalo",
|
||||
"SRD": "Dollaro Surinamese",
|
||||
"SSP": "Sterlina Sudsudanese",
|
||||
"STN": "Dobra di São Tomé e Príncipe (2018)",
|
||||
"SYP": "Lira Siriana",
|
||||
"SZL": "Lilangeni dell'eSwatini",
|
||||
"SVC": "Colón Salvadoregno",
|
||||
"THB": "Baht Thailandese",
|
||||
"TJS": "Somoni Tagiko",
|
||||
"TND": "Dinaro Tunisino",
|
||||
"TOP": "Paʻanga Tongano",
|
||||
"TRY": "Lira Turca",
|
||||
"TTD": "Dollaro di Trinidad e Tobago",
|
||||
"TWD": "Dollaro Taiwanese",
|
||||
"TZS": "Scellino Tanzaniano",
|
||||
"UAH": "Grivnia Ucraina",
|
||||
"UGX": "Scellino Ugandese",
|
||||
"USD": "Dollaro Statunitense",
|
||||
"USN": "Dollaro Statunitense (Next day)",
|
||||
"UYI": "Peso uruguaiano (Indexed Units)",
|
||||
"UYU": "Peso Uruguaiano",
|
||||
"UZS": "Som Uzbeko",
|
||||
"VEF": "Bolívar Venezuelano",
|
||||
"VND": "Dong Vietnamita",
|
||||
"VUV": "Vatu Vanuatu",
|
||||
"WST": "Tālā Samoano",
|
||||
"XAF": "Franco CFA BEAC",
|
||||
"XCD": "Dollaro dei Caraibi Orientali",
|
||||
"XOF": "Franco CFA BCEAO",
|
||||
"XPF": "Franco CFP",
|
||||
"YER": "Riyal Yemenita",
|
||||
"ZAR": "Rand Sudafricano",
|
||||
"ZMW": "Kwacha Zambiano",
|
||||
"ZWL": "Dollaro Zimbabwese"
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,10 @@
|
||||
"dateFrom": "Data da",
|
||||
"dateTo": "Data a",
|
||||
"autorefreshInterval": "Intervallo di aggiornamento automatico",
|
||||
"displayRecords": "Visualizza i record",
|
||||
"displayRecords": "Record da Visualizzare",
|
||||
"isDoubleHeight": "Altezza 2x",
|
||||
"mode": "Modo",
|
||||
"enabledScopeList": "Cose da visualizzare",
|
||||
"mode": "Modalità",
|
||||
"enabledScopeList": "Cosa visualizzare",
|
||||
"users": "Utenti",
|
||||
"entityType": "Tipo di entità",
|
||||
"primaryFilter": "Filtro primario",
|
||||
|
||||
@@ -18,7 +18,10 @@
|
||||
"contains": "Contiene",
|
||||
"has": "Contiene",
|
||||
"notContains": "Non contiene",
|
||||
"notHas": "Non contiene"
|
||||
"notHas": "Non contiene",
|
||||
"startsWith": "Inizia Con",
|
||||
"endsWith": "Finisce Con",
|
||||
"matches": "Corrispondenze (regex)"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
|
||||
@@ -47,7 +47,12 @@
|
||||
"replyToEmailAddresses": "Rispondi-a indirizzo email",
|
||||
"fromEmailAddress": "Dall'indirizzo (collegamento)",
|
||||
"replyToName": "Rispondi a Nome",
|
||||
"replyToAddress": "Indirizzo di risposta"
|
||||
"replyToAddress": "Indirizzo di risposta",
|
||||
"icsContents": "Contenuti ICS",
|
||||
"icsEventData": "Data Evento ICS",
|
||||
"icsEventUid": "Evento ICS UID",
|
||||
"event": "Evento",
|
||||
"icsEventDateStart": "Data Inizio Evento ICS"
|
||||
},
|
||||
"links": {
|
||||
"replied": "Risposto",
|
||||
@@ -74,8 +79,8 @@
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Email": "Archivio email",
|
||||
"Archive Email": "Archivio email",
|
||||
"Create Email": "Archivia Email",
|
||||
"Archive Email": "Archivia Email",
|
||||
"Compose": "Componi",
|
||||
"Reply": "Rispondi",
|
||||
"Reply to All": "Rispondi a tutti",
|
||||
@@ -91,7 +96,7 @@
|
||||
"Mark Read": "Contrassegna come letto",
|
||||
"Sending...": "Invio...",
|
||||
"Save Draft": "Salva Bozza",
|
||||
"Mark all as read": "Contrassegna tutti come letto",
|
||||
"Mark all as read": "Contrassegna tutte come lette",
|
||||
"Show Plain Text": "Visualizza testo normale",
|
||||
"Mark as Important": "Contrassegna come Importante",
|
||||
"Unmark Importance": "Deselezione come Importante",
|
||||
@@ -102,7 +107,8 @@
|
||||
"Folders": "Cartelle",
|
||||
"View Users": "Visualizza utenti",
|
||||
"No Subject": "Nessun Oggetto",
|
||||
"Insert Field": "Inserisci Campo"
|
||||
"Insert Field": "Inserisci Campo",
|
||||
"Event": "Evento"
|
||||
},
|
||||
"messages": {
|
||||
"testEmailSent": "L'email di prova è stata inviata",
|
||||
@@ -112,7 +118,7 @@
|
||||
"noSmtpSetup": "SMTP non configurato: {link}",
|
||||
"sendConfirm": "Invia email?",
|
||||
"removeSelectedRecordsConfirmation": "Sei sicuro di voler rimuovere le mail selezionate?\n\nSaranno rimosse anche per gli altri utenti.",
|
||||
"removeRecordConfirmation": "Sei sicuro di voler rimuovere la mail selezionata?\n\nSara' rimossa anche per gli altri utenti."
|
||||
"removeRecordConfirmation": "Sei sicuro di voler rimuovere la mail selezionata?\n\nSarà rimossa anche per gli altri utenti."
|
||||
},
|
||||
"presetFilters": {
|
||||
"sent": "Inviato",
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
},
|
||||
"tooltips": {
|
||||
"monitoredFolders": "Cartelle multiple devono essere separate dalla virgola.\n\nÈ possibile aggiungere una cartella \"Inviata\" per sincronizzare le email inviate da un client di posta elettronica esterno.",
|
||||
"storeSentEmails": "Le e-mail inviate verranno archiviate sul server IMAP. Il campo Indirizzo e-mail deve corrispondere all'indirizzo da cui verranno inviate le e-mail."
|
||||
"storeSentEmails": "Le e-mail inviate verranno archiviate sul server IMAP. Il campo Indirizzo e-mail deve corrispondere all'indirizzo da cui verranno inviate le e-mail.",
|
||||
"useSmtp": "La possibilità di inviare email.",
|
||||
"emailAddress": "Il record utente (utente assegnato) deve avere lo stesso indirizzo email per poter utilizzare questo account di posta elettronica per l'invio."
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,8 @@
|
||||
"body": "Corpo",
|
||||
"subject": "Oggetto",
|
||||
"attachments": "Allegato",
|
||||
"category": "Categoria"
|
||||
"category": "Categoria",
|
||||
"insertField": "Segnaposti"
|
||||
},
|
||||
"labels": {
|
||||
"Create EmailTemplate": "Crea Modello email",
|
||||
@@ -15,12 +16,16 @@
|
||||
"oneOff": "Controllare se avete intenzione di utilizzare questo modello una sola volta. Per esempio. per Email Massive."
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Attuale"
|
||||
"actual": "Attivo"
|
||||
},
|
||||
"placeholderTexts": {
|
||||
"optOutLink": "Un link di cancellazione dell'iscrizione",
|
||||
"today": "Data odierna",
|
||||
"now": "Data e ora attuali\n\n",
|
||||
"currentYear": "Anno corrente"
|
||||
"now": "Data e ora attuali",
|
||||
"currentYear": "Anno corrente",
|
||||
"optOutUrl": "URL per un link di disiscrizione"
|
||||
},
|
||||
"messages": {
|
||||
"infoText": "placeholders disponibili:\n\n{optOutUrl} – URL per un link di disiscrizione;\n\n{optOutLink} – un link di disiscrizione."
|
||||
}
|
||||
}
|
||||
@@ -38,10 +38,10 @@
|
||||
"options": {
|
||||
"type": {
|
||||
"": "Nessuno",
|
||||
"Person": "Persone",
|
||||
"Person": "Persona",
|
||||
"CategoryTree": "Albero delle Categorie",
|
||||
"Event": "Evento",
|
||||
"Company": "Compagnia"
|
||||
"Company": "Azienda"
|
||||
},
|
||||
"linkType": {
|
||||
"manyToMany": "Molti-a-molti",
|
||||
@@ -61,7 +61,7 @@
|
||||
"entityCreated": "L'Entità è stata creata",
|
||||
"linkAlreadyExists": "Nome del link in conflitto.",
|
||||
"linkConflict": "Conflitto: link o campo con lo stesso nome già esistente",
|
||||
"confirmRemove": "Sei sicuro di voler rimuovere questo tipo di entita' dal sistema?"
|
||||
"confirmRemove": "Sei sicuro di voler rimuovere questo tipo di entità dal sistema?"
|
||||
},
|
||||
"tooltips": {
|
||||
"statusField": "Gli aggiornamenti a questo campo verranno registrati nel flusso attività.",
|
||||
|
||||
@@ -4,5 +4,9 @@
|
||||
"exportAllFields": "Esporta tutti i campi",
|
||||
"format": "Formato",
|
||||
"status": "Stato"
|
||||
},
|
||||
"messages": {
|
||||
"exportProcessed": "L'esportazione è stata elaborata. Scarica il [file]({url}).",
|
||||
"infoText": "L'esportazione è in fase di elaborazione in idle da parte di cron. Può richiedere un po' di tempo per essere completata. La chiusura di questa finestra di dialogo non influirà sul processo di esecuzione."
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,12 @@
|
||||
"javascript: return this.dateTime.getDateShiftedFromToday(10, 'months');": "+10 mesi",
|
||||
"javascript: return this.dateTime.getDateShiftedFromToday(11, 'months');": "+11 mesi",
|
||||
"javascript: return this.dateTime.getDateShiftedFromToday(1, 'year');": "+1 anno"
|
||||
},
|
||||
"globalRestrictions": {
|
||||
"forbidden": "Vietato",
|
||||
"internal": "Interno",
|
||||
"onlyAdmin": "Solo Admin",
|
||||
"readOnly": "Solo Lettura"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
@@ -76,7 +82,16 @@
|
||||
"readOnly": "Il valore del campo non può essere specificato dall'utente. Ma può essere calcolato da una formula.",
|
||||
"maxFileSize": "Se vuoto o 0 allora nessun limite.",
|
||||
"fileAccept": "Quali tipi di file accettare. È possibile aggiungere elementi personalizzati.",
|
||||
"barcodeLastChar": "Per tipo EAN-13."
|
||||
"barcodeLastChar": "Per tipo EAN-13.",
|
||||
"conversionDisabled": "L'azione di conversione della valuta non verrà applicata a questo campo.",
|
||||
"cutHeight": "Un testo maggiore di un valore specificato verrà troncato e verrà visualizzato il pulsante 'Mostra altro'.",
|
||||
"urlStrip": "Rimuove il protocollo e lo slash finale.",
|
||||
"pattern": "Un'espressione regolare per verificare il valore di un campo. Definire un'espressione o selezionarne una predefinita.",
|
||||
"options": "Un elenco di possibili valori e delle rispettive etichette.",
|
||||
"optionsArray": "Un elenco di possibili valori e delle rispettive etichette. Se vuoto, il campo consente di inserire valori personalizzati.",
|
||||
"maxCount": "Numero massimo di elementi selezionabili.",
|
||||
"displayAsList": "Ogni elemento è inserito in una nuova riga.",
|
||||
"optionsVarchar": "Un elenco di valori per il completamento automatico."
|
||||
},
|
||||
"fieldParts": {
|
||||
"address": {
|
||||
@@ -90,7 +105,8 @@
|
||||
"personName": {
|
||||
"salutation": "Saluto",
|
||||
"first": "Primo",
|
||||
"last": "Ultimo"
|
||||
"last": "Ultimo",
|
||||
"middle": "Secondo Nome"
|
||||
},
|
||||
"currency": {
|
||||
"converted": "(Convertito)",
|
||||
@@ -102,8 +118,27 @@
|
||||
},
|
||||
"fieldInfo": {
|
||||
"varchar": "Una singola linea di testo.",
|
||||
"enum": "Selectbox, si può selezionare un solo valore.",
|
||||
"text": "Un testo multilinea con supporto markdown.",
|
||||
"date": "Data senza ora",
|
||||
"datetime": "Data e ora",
|
||||
"linkParent": "Un record collegato tramite una relazione Belongs-To-Parent. Puo' essere di tipi di entita' differenti."
|
||||
"currency": "Un importo in valuta. Un numero float con un codice di valuta.",
|
||||
"int": "Un numero intero.",
|
||||
"float": "Un numero con una parte decimale.",
|
||||
"bool": "Un checkbox. Due valori possibili: true e false.",
|
||||
"multiEnum": "Un elenco di valori; è possibile selezionare più valori. L'elenco è ordinato.",
|
||||
"checklist": "Un elenco di checkbox.",
|
||||
"array": "Un elenco di valori, simile al campo Multi-Enum.",
|
||||
"address": "Un indirizzo con via, città, regione, codice postale e nazione.",
|
||||
"url": "Per la memorizzazione dei link.",
|
||||
"wysiwyg": "Un testo con supporto HTML.",
|
||||
"attachmentMultiple": "Consente il caricamento di più file.",
|
||||
"number": "Un numero autoincrementante di tipo stringa con un possibile prefisso e una lunghezza specifica.",
|
||||
"autoincrement": "Un numero intero di sola lettura e autoincrementante.",
|
||||
"barcode": "Un codice a barre. Può essere stampato in PDF.",
|
||||
"email": "Un insieme di indirizzi email con i relativi parametri: Opted-out, Invalido, Primario.",
|
||||
"phone": "Un insieme di numeri di telefono con i relativi parametri: Tipo, Opted-out, Invalido, Primario.",
|
||||
"foreign": "Campo di un record correlato. Di Sola Lettura.",
|
||||
"linkParent": "Un record collegato tramite una relazione Belongs-To-Parent. Può essere di tipi di entità differenti."
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,21 @@
|
||||
{
|
||||
"labels": {
|
||||
"Check Syntax": "Controlla Sintassi",
|
||||
"Run": "Avvia"
|
||||
},
|
||||
"fields": {
|
||||
"target": "Destinatario",
|
||||
"targetType": "Tipo di Obiettivo",
|
||||
"error": "Errore"
|
||||
},
|
||||
"messages": {
|
||||
"runSuccess": "Eseguito con successo.",
|
||||
"runError": "Errore",
|
||||
"checkSyntaxSuccess": "La Sintassi è corretta",
|
||||
"checkSyntaxError": "Errore di Sintassi"
|
||||
"checkSyntaxError": "Errore di Sintassi",
|
||||
"emptyScript": "Lo script è vuoto."
|
||||
},
|
||||
"tooltips": {
|
||||
"output": "Mostra i risultati con la funzione `output\\printLine`."
|
||||
}
|
||||
}
|
||||
@@ -19,12 +19,12 @@
|
||||
"Attachment": "Allegato",
|
||||
"EmailFolder": "Casella Email",
|
||||
"PortalUser": "Utente portale",
|
||||
"ScheduledJobLogRecord": "Registro registro lavori pianificato",
|
||||
"ScheduledJobLogRecord": "Registro lavoro pianificato",
|
||||
"PasswordChangeRequest": "Richiesta di cambio password",
|
||||
"ActionHistoryRecord": "Record di cronologia delle azioni",
|
||||
"AuthToken": "Token di autenticazione",
|
||||
"UniqueId": "ID univoco",
|
||||
"LastViewed": "Ultima visualizzazione",
|
||||
"LastViewed": "Ultima Visualizzazione",
|
||||
"Settings": "Impostazioni",
|
||||
"FieldManager": "Gestione campo",
|
||||
"Integration": "Integrazione",
|
||||
@@ -45,9 +45,11 @@
|
||||
"ArrayValue": "Valore di matrice",
|
||||
"ApiUser": "Utente API",
|
||||
"DashboardTemplate": "Modello di dashboard",
|
||||
"Currency": "Divisa",
|
||||
"Currency": "Valuta",
|
||||
"LayoutSet": "Layout",
|
||||
"Mass Action": "Azione Massiva"
|
||||
"Mass Action": "Azione Massiva",
|
||||
"Note": "Nota",
|
||||
"ImportError": "Errore di importazione"
|
||||
},
|
||||
"scopeNamesPlural": {
|
||||
"Email": "Email",
|
||||
@@ -69,14 +71,14 @@
|
||||
"Attachment": "Allegato",
|
||||
"EmailFolder": "Caselle Email",
|
||||
"PortalUser": "Utenti portale",
|
||||
"ScheduledJobLogRecord": "Record registro lavori pianificati",
|
||||
"ScheduledJobLogRecord": "Record registro lavoro pianificato",
|
||||
"PasswordChangeRequest": "Richiesta di cambio password",
|
||||
"ActionHistoryRecord": "Storico azioni",
|
||||
"AuthToken": "Tokens di autenticazione",
|
||||
"UniqueId": "ID univoci",
|
||||
"LastViewed": "Ultima visualizzazione",
|
||||
"LastViewed": "Ultime Visualizzazioni",
|
||||
"AuthLogRecord": "Auth log",
|
||||
"AuthFailLogRecord": "Registro fallito autent",
|
||||
"AuthFailLogRecord": "Registro Autenticazioni Fallite",
|
||||
"EmailTemplateCategory": "Categorie Modeli Email",
|
||||
"Import": "Importa",
|
||||
"LeadCapture": "Cattura Lead",
|
||||
@@ -86,8 +88,10 @@
|
||||
"DashboardTemplate": "Modelli di dashboard",
|
||||
"EmailAddress": "Indirizzo Email",
|
||||
"PhoneNumber": "Telefono",
|
||||
"Currency": "Divisa",
|
||||
"LayoutSet": "Layout Set"
|
||||
"Currency": "Valuta",
|
||||
"LayoutSet": "Layout Set",
|
||||
"Note": "Note",
|
||||
"ImportError": "Errori di importazione"
|
||||
},
|
||||
"labels": {
|
||||
"Misc": "Varie",
|
||||
@@ -103,6 +107,7 @@
|
||||
"Loading...": "Caricamento in corso...",
|
||||
"Uploading...": "Caricamento...",
|
||||
"Sending...": "Invio...",
|
||||
"Merging...": "Unione in corso...",
|
||||
"Merged": "Fusione",
|
||||
"Removed": "Rimosso",
|
||||
"Posted": "Postato",
|
||||
@@ -115,13 +120,13 @@
|
||||
"Are you sure?": "Sei sicuro?",
|
||||
"Record has been removed": "Il record è stato rimosso",
|
||||
"Wrong username/password": "I dati forniti non sono corretti",
|
||||
"Post cannot be empty": "Il Post puo' essere vuoto",
|
||||
"Removing...": "Cancellazione...",
|
||||
"Post cannot be empty": "Il post non può essere vuoto",
|
||||
"Removing...": "Rimozione...",
|
||||
"Unlinking...": "Disconnessione...",
|
||||
"Username can not be empty!": "L'Username non può essere vuota!",
|
||||
"Cache is not enabled": "Cache non abilitata",
|
||||
"Cache has been cleared": "Cache gia' liberata",
|
||||
"Rebuild has been done": "Rebuild gia' concluso",
|
||||
"Cache has been cleared": "La cache è stata svuotata",
|
||||
"Rebuild has been done": "Ricostruzione effettuata",
|
||||
"Saving...": "Salvataggio...",
|
||||
"Modified": "Modificato",
|
||||
"Created": "Creato",
|
||||
@@ -131,28 +136,31 @@
|
||||
"Details": "Dettagli",
|
||||
"Add Field": "Aggiungi Campo",
|
||||
"Add Dashlet": "Aggiungi Dashlet",
|
||||
"Filter": "Filtro",
|
||||
"Edit Dashboard": "Modifica Dashboard",
|
||||
"Add": "Aggiungi",
|
||||
"Add Item": "Aggiungi articolo",
|
||||
"More": "Altro",
|
||||
"Search": "Cerca",
|
||||
"Only My": "Solo il mio",
|
||||
"Only My": "Solo i miei",
|
||||
"Open": "Aperto",
|
||||
"Admin": "Admministratore",
|
||||
"About": "A riguardo",
|
||||
"Refresh": "Ricarica",
|
||||
"Remove": "Elimina",
|
||||
"Options": "Opzioni",
|
||||
"Log Out": "Esci",
|
||||
"Preferences": "Preferenze",
|
||||
"State": "Provincia",
|
||||
"Street": "Via",
|
||||
"Country": "Nazione",
|
||||
"City": "Citta'",
|
||||
"PostalCode": "Codici Postale",
|
||||
"City": "Città",
|
||||
"PostalCode": "Codice Postale",
|
||||
"Followed": "Segui",
|
||||
"Follow": "Segui",
|
||||
"Clear Local Cache": "Cancella la cache locale",
|
||||
"Clear Local Cache": "Svuota La Cache Locale",
|
||||
"Actions": "Azioni",
|
||||
"Delete": "Cancellare",
|
||||
"Delete": "Elimina",
|
||||
"Update": "Aggiorna",
|
||||
"Save": "Salva",
|
||||
"Edit": "Modifica",
|
||||
@@ -168,12 +176,13 @@
|
||||
"Active": "Attivo",
|
||||
"Inactive": "Inattivo",
|
||||
"Write your comment here": "Scrivi il tuo commento qui",
|
||||
"Post": "Pubblica",
|
||||
"Stream": "Flusso attività",
|
||||
"Show more": "Mostra altro",
|
||||
"Dashlet Options": "Opzioni dashlet",
|
||||
"Full Form": "Modulo completo",
|
||||
"Insert": "Inserisci",
|
||||
"Person": "Persone",
|
||||
"Person": "Persona",
|
||||
"First Name": "Nome",
|
||||
"Last Name": "Cognome",
|
||||
"Original": "Originale",
|
||||
@@ -182,19 +191,19 @@
|
||||
"change": "modifica",
|
||||
"Change": "Modifica",
|
||||
"Primary": "Primario",
|
||||
"Save Filter": "Salva filtro",
|
||||
"Save Filter": "Salva Filtro",
|
||||
"Administration": "Amministrazione",
|
||||
"Run Import": "Avvia importazione",
|
||||
"Duplicate": "Duplicato",
|
||||
"Duplicate": "Duplica",
|
||||
"Notifications": "Notifiche",
|
||||
"Mark all read": "Contrassegna tutti come letto",
|
||||
"Mark all read": "Contrassegna tutte come lette",
|
||||
"See more": "Vedi altro",
|
||||
"Today": "Oggi",
|
||||
"Tomorrow": "Domani",
|
||||
"Yesterday": "Ieri",
|
||||
"Submit": "Invio",
|
||||
"Close": "Chiudi",
|
||||
"Yes": "Si",
|
||||
"Yes": "Sì",
|
||||
"Value": "Valore",
|
||||
"Current version": "Versione in uso",
|
||||
"List View": "Vista elenco",
|
||||
@@ -206,8 +215,8 @@
|
||||
"From": "Da",
|
||||
"To": "A",
|
||||
"Create Post": "Crea Post",
|
||||
"Previous Entry": "Anteprima Accesso",
|
||||
"Next Entry": "Prossimo accesso",
|
||||
"Previous Entry": "Voce Precedente",
|
||||
"Next Entry": "Voce Successiva",
|
||||
"View List": "Visualizza elenco",
|
||||
"Attach File": "Allega File",
|
||||
"Skip": "Salta",
|
||||
@@ -230,13 +239,17 @@
|
||||
"Restore": "Ripristina",
|
||||
"View Followers": "Visualizza follower",
|
||||
"Convert Currency": "Converti valuta",
|
||||
"Middle Name": "Secondo Nome",
|
||||
"View on Map": "Vedi su Mappa",
|
||||
"Attached": "Allegato",
|
||||
"Preview": "Anteprima",
|
||||
"Save & Continue Editing": "Salva e continua a modificare",
|
||||
"Save & New": "Salva & Nuovo",
|
||||
"Field": "Campo",
|
||||
"Resolution": "Risoluzione"
|
||||
"Resolution": "Risoluzione",
|
||||
"Resolve Conflict": "Risolvere i conflitti",
|
||||
"Sort": "Ordina",
|
||||
"Global Search": "Ricerca Globale"
|
||||
},
|
||||
"messages": {
|
||||
"pleaseWait": "Attendere...",
|
||||
@@ -300,11 +313,28 @@
|
||||
"fieldExceedsMaxCount": "Il conteggio supera il massimo consentito {maxCount}",
|
||||
"notUpdated": "Non aggiornato",
|
||||
"maintenanceMode": "L'applicazione è attualmente in modalità manutenzione. Solo gli utenti amministratori hanno accesso.\n\nLa modalità di manutenzione può essere disabilitata in Amministrazione → Impostazioni.",
|
||||
"fieldInvalid": "{field} non è valido"
|
||||
"fieldInvalid": "{field} non è valido",
|
||||
"resolveSaveConflict": "Il record è stato modificato. È necessario risolvere il conflitto prima di poter salvare il record.",
|
||||
"massActionProcessed": "L'azione di massa è stata elaborata.",
|
||||
"fieldUrlExceedsMaxLength": "L'URL codificato supera la lunghezza massima di {maxLength}",
|
||||
"fieldNotMatchingPattern": "{field} non corrisponde al pattern `{pattern}`",
|
||||
"fieldNotMatchingPattern$noBadCharacters": "{field} contiene caratteri non ammessi",
|
||||
"fieldNotMatchingPattern$noAsciiSpecialCharacters": "{field} non dovrebbe contenere caratteri speciali ASCII",
|
||||
"fieldNotMatchingPattern$latinLetters": "{field} può contenere solo lettere latine",
|
||||
"fieldNotMatchingPattern$latinLettersDigits": "{field} può contenere solo lettere latine e numeri.",
|
||||
"fieldNotMatchingPattern$latinLettersDigitsWhitespace": "{field} può contenere solo lettere latine, numeri e spazi vuoti",
|
||||
"fieldNotMatchingPattern$latinLettersWhitespace": "{field} può contenere solo lettere latine e spazi vuoti",
|
||||
"fieldNotMatchingPattern$digits": "{field} può contenere solo numeri",
|
||||
"fieldPhoneInvalidCharacters": "Sono consentite solo numeri, lettere latine e caratteri `-+_@:#().`.",
|
||||
"arrayItemMaxLength": "L'elemento non dovrebbe essere più lungo di {max} caratteri",
|
||||
"validationFailure": "Errore di convalida nel backend.\n\nCampo: `{field}`\nConvalida: `{type}`",
|
||||
"confirmAppRefresh": "L'applicazione è stata aggiornata. Si consiglia di aggiornare la pagina per garantirne il corretto funzionamento.",
|
||||
"error404": "L'url richiesto non può essere elaborato.",
|
||||
"error403": "Non hai l'accesso a quest'area."
|
||||
},
|
||||
"boolFilters": {
|
||||
"onlyMy": "Solo il mio",
|
||||
"followed": "Seguito",
|
||||
"onlyMy": "Solo i miei",
|
||||
"followed": "Seguiti",
|
||||
"onlyMyTeam": "My team"
|
||||
},
|
||||
"presetFilters": {
|
||||
@@ -355,7 +385,8 @@
|
||||
"targetListIsOptedOut": "È stato cancellato (lista target)",
|
||||
"type": "Tipo",
|
||||
"phoneNumberIsOptedOut": "Il numero di telefono è Opted-Ou",
|
||||
"types": "Modello"
|
||||
"types": "Modello",
|
||||
"middleName": "Secondo Nome"
|
||||
},
|
||||
"links": {
|
||||
"assignedUser": "Utente assegnato",
|
||||
@@ -377,12 +408,12 @@
|
||||
"entityRemoved": "{user} Ha rimosso {entityType} {entity}"
|
||||
},
|
||||
"streamMessages": {
|
||||
"post": "{user} Ha pubblicato {entityType} {entity}",
|
||||
"post": "{user} ha scritto {entityType} {entity}",
|
||||
"attach": "{user} Ha allegato a {entityType} {entity}",
|
||||
"status": "{user} Ha aggiornato {field} di {entityType} {entity}",
|
||||
"update": "{user} Ha aggiornato {entityType} {entity}",
|
||||
"postTargetTeam": "{user} Ha pubblicato al team {target}",
|
||||
"postTargetTeams": "{user} Ha pubblicato ai team {target}",
|
||||
"status": "{user} ha aggiornato {field} di {entityType} {entity}",
|
||||
"update": "{user} ha aggiornato {entityType} {entity}",
|
||||
"postTargetTeam": "{user} ha scritto al team {target}",
|
||||
"postTargetTeams": "{user} ha scritto ai team {target}",
|
||||
"postTargetPortal": "{user} Ha postato sul portale {target}",
|
||||
"postTargetPortals": "{user} Ha postato sui portali {target}",
|
||||
"postTarget": "{user} Ha postato a {target}",
|
||||
@@ -395,20 +426,20 @@
|
||||
"mentionYouInPostTarget": "{user} Ti ha menzionato in un post riguardante {target}",
|
||||
"mentionYouInPostTargetAll": "{user} Ti ha menzionato in un post visibile a tutti",
|
||||
"mentionYouInPostTargetNoTarget": "{user} Ti ha menzionato in un post",
|
||||
"create": "{user} Creato {entityType} {entity}",
|
||||
"createThis": "{user} Ha creato {entityType}",
|
||||
"createAssignedThis": "{user} Ha creato {entity} assegnandolo a {assignee}",
|
||||
"createAssigned": "{user} Ha creato {entityType} {entity} assegnato a {assignee}",
|
||||
"create": "{user} ha creato {entityType} {entity}",
|
||||
"createThis": "{user} ha creato {entityType}",
|
||||
"createAssignedThis": "{user} ha creato {entityType} assegnandolo a {assignee}",
|
||||
"createAssigned": "{user} ha creato {entityType} {entity} assegnato a {assignee}",
|
||||
"assign": "{user} Ha assegnato {entityType} {entity} a {assignee}",
|
||||
"assignThis": "{user} Ha assegnato {entityType} a {assignee}",
|
||||
"postThis": "{user} Pubblicato",
|
||||
"postThis": "{user} ha scritto",
|
||||
"attachThis": "{user} Ha allegato",
|
||||
"statusThis": "{user} Ha aggiornato {field}",
|
||||
"updateThis": "{user} Ha aggiornato {entityType}",
|
||||
"createRelatedThis": "{user} Ha creato {relatedEntityType} {relatedEntity} correlato al {entityType}",
|
||||
"createRelated": "{user} Ha creato {relatedEntityType} {relatedEntity} correlato al {entityType} {entity}",
|
||||
"relate": "{user} Si è collegato a {relatedEntityType} {relatedEntity} con {entityType} {entity}",
|
||||
"relateThis": "{user} Si è collegato a {relatedEntityType} {relatedEntity} con {entityType}",
|
||||
"statusThis": "{user} ha aggiornato {field}",
|
||||
"updateThis": "{user} ha aggiornato {entityType}",
|
||||
"createRelatedThis": "{user} ha creato {relatedEntityType} {relatedEntity} correlato al {entityType}",
|
||||
"createRelated": "{user} ha creato {relatedEntityType} {relatedEntity} correlato al {entityType} {entity}",
|
||||
"relate": "{user} si è collegato a {relatedEntityType} {relatedEntity} con {entityType} {entity}",
|
||||
"relateThis": "{user} si è collegato a {relatedEntityType} {relatedEntity} con {entityType}",
|
||||
"emailReceivedFromThis": "Email ricevuta da {from}",
|
||||
"emailReceivedInitialFromThis": "Email ricevuta da {from}, {entityType} è stato creato",
|
||||
"emailReceivedThis": "Email ricevuta",
|
||||
@@ -418,13 +449,13 @@
|
||||
"emailReceivedInitialFrom": "Email ricevuta da {from}, {entityType} {entity} creata",
|
||||
"emailReceived": "Email ricevute in relazione a {entityType} {entity}",
|
||||
"emailReceivedInitial": "Email ricevuta: {entityType} {entity} creato",
|
||||
"emailSent": "{by} Email inviata relativa a {entityType} {entity}",
|
||||
"emailSentThis": "{by} Email inviata",
|
||||
"postTargetSelf": "{user} Auto-pubblicato",
|
||||
"postTargetSelfAndOthers": "{user} Ha pubblicato a {target}",
|
||||
"createAssignedYou": "{user} Ha creato {entityType} {entity} e lo ha assegnato a te",
|
||||
"createAssignedThisSelf": "{user} Ha creato questo {entityType} e lo ha auto-assegnato",
|
||||
"createAssignedSelf": "{user} Ha creato {entityType} {entity} e lo ha auto-assegnato",
|
||||
"emailSent": "{by} ha inviato un'email relativa a {entityType} {entity}",
|
||||
"emailSentThis": "{by} ha inviato un'email",
|
||||
"postTargetSelf": "{user} si è autopubblicato",
|
||||
"postTargetSelfAndOthers": "{user} ha scritto su {target} e a se stesso",
|
||||
"createAssignedYou": "{user} ha creato {entityType} {entity} e lo ha assegnato a te",
|
||||
"createAssignedThisSelf": "{user} ha creato questo {entityType} e lo ha auto-assegnato",
|
||||
"createAssignedSelf": "{user} ha creato {entityType} {entity} e lo ha auto-assegnato",
|
||||
"assignYou": "{user} Ha assegnato {entityType} {entity} a te",
|
||||
"assignThisVoid": "{user} Ha revocato questo {entityType}",
|
||||
"assignVoid": "{user} Ha revocato {entityType} {entity}",
|
||||
@@ -496,16 +527,17 @@
|
||||
"before": "Prima",
|
||||
"between": "Fra",
|
||||
"today": "Oggi",
|
||||
"past": "Passato",
|
||||
"future": "Futuro",
|
||||
"currentMonth": "Mese in corso",
|
||||
"lastMonth": "Ultimo mese",
|
||||
"currentQuarter": "Trimestre in corso",
|
||||
"lastQuarter": "Ultimo trimestre",
|
||||
"currentYear": "Anno in corso",
|
||||
"lastYear": "Ultimo anno",
|
||||
"lastSevenDays": "Ultimi 7 giorni",
|
||||
"lastXDays": "Ultimi X giorni",
|
||||
"nextXDays": "Successivi X giorni",
|
||||
"currentMonth": "Mese Corrente",
|
||||
"lastMonth": "Ultimo Mese",
|
||||
"currentQuarter": "Trimestre in Corso",
|
||||
"lastQuarter": "Ultimo Trimestre",
|
||||
"currentYear": "Anno in Corso",
|
||||
"lastYear": "Ultimo Anno",
|
||||
"lastSevenDays": "Ultimi 7 Giorni",
|
||||
"lastXDays": "Ultimi X Giorni",
|
||||
"nextXDays": "Successivi X Giorni",
|
||||
"ever": "Mai",
|
||||
"isEmpty": "Vuoto",
|
||||
"olderThanXDays": "Più vecchio di X giorni",
|
||||
@@ -513,7 +545,7 @@
|
||||
"nextMonth": "Prossimo mese",
|
||||
"currentFiscalYear": "Anno fiscale corrente",
|
||||
"lastFiscalYear": "L'ultimo anno fiscale",
|
||||
"currentFiscalQuarter": "Attuale trimestre fiscale",
|
||||
"currentFiscalQuarter": "Trimestre fiscale In Corso",
|
||||
"lastFiscalQuarter": "Ultimo trimestre fiscale\n"
|
||||
},
|
||||
"searchRanges": {
|
||||
@@ -546,8 +578,8 @@
|
||||
"notEquals": "Diverso",
|
||||
"greaterThan": "Maggiore di",
|
||||
"lessThan": "Minore di",
|
||||
"greaterThanOrEquals": "Maggiore-uguale a ",
|
||||
"lessThanOrEquals": "Minore di o uguale a",
|
||||
"greaterThanOrEquals": "Maggiore di o Uguale a",
|
||||
"lessThanOrEquals": "Minore di o Uguale a",
|
||||
"between": "Fra",
|
||||
"isEmpty": "È vuoto",
|
||||
"isNotEmpty": "Non vuoto"
|
||||
@@ -671,5 +703,25 @@
|
||||
},
|
||||
"listViewModes": {
|
||||
"list": "Lista"
|
||||
},
|
||||
"themes": {
|
||||
"Dark": "Scuro",
|
||||
"Violet": "Violetto",
|
||||
"Hazyblue": "Blu Nebuloso",
|
||||
"Glass": "Vetro"
|
||||
},
|
||||
"themeNavbars": {
|
||||
"side": "Navbar Verticale",
|
||||
"top": "Navbar Orizzontale"
|
||||
},
|
||||
"fieldValidations": {
|
||||
"required": "Richiesto",
|
||||
"maxLength": "Lunghezza Massima",
|
||||
"emailAddress": "Indirizzo Email Valido",
|
||||
"phoneNumber": "Numero di Telefono Valido",
|
||||
"arrayOfString": "Array di Stringhe",
|
||||
"valid": "Valido",
|
||||
"max": "Valore Max",
|
||||
"min": "Valore Min"
|
||||
}
|
||||
}
|
||||
@@ -13,11 +13,11 @@
|
||||
"Show records": "Mostra i record",
|
||||
"Remove Duplicates": "Rimuovi duplicati",
|
||||
"importedCount": "Importato (count)",
|
||||
"duplicateCount": "Duplicato (count)",
|
||||
"duplicateCount": "Duplicati (count)",
|
||||
"updatedCount": "Aggiornato (conteggio)",
|
||||
"Create Only": "Crea Solo",
|
||||
"Create Only": "Crea Solamente",
|
||||
"Create and Update": "Crea & Aggiorna",
|
||||
"Update Only": "Aggiorna solo",
|
||||
"Update Only": "Aggiorna solamente",
|
||||
"Update by": "Aggiorna da",
|
||||
"Set as Not Duplicate": "Imposta come non duplicati",
|
||||
"First Row Value": "Primo valore di riga",
|
||||
@@ -49,7 +49,8 @@
|
||||
"Import Results": "Risultati Importazioni",
|
||||
"Silent Mode": "Modalità silenziosa",
|
||||
"New import with same params": "Nuovo import con gli stessi parametri",
|
||||
"Run Manually": "Avvia Manualmente"
|
||||
"Run Manually": "Avvia Manualmente",
|
||||
"Export": "Esporta"
|
||||
},
|
||||
"messages": {
|
||||
"utf8": "Dovrebbe avere codifica UTF-8",
|
||||
@@ -60,7 +61,8 @@
|
||||
"confirmRevert": "Questa operazione rimuoverà tutti i record importati definitivamente. Sei sicuro?",
|
||||
"confirmRemoveDuplicates": "Questo rimuoverà permanentemente tutti i record importati che sono stati riconosciuti come duplicati. Sei sicuro?",
|
||||
"removeImportLog": "Questo rimuoverà il registro di importazione. Tutti i record importati verranno mantenuti. Usalo se sei sicuro che l'importazione va bene.",
|
||||
"confirmRemoveImportLog": "Cosi' facendo rimuoverai il log di importazione. Tutti i record importati rimarranno a sistema. Non sarai in grado di ripristinare i risultati di importazione. Sei sicuro?"
|
||||
"confirmRemoveImportLog": "Così facendo rimuoverai il log di importazione. Tutti i record importati rimarranno a sistema. Non sarai in grado di ripristinare i risultati di importazione. Sei sicuro?",
|
||||
"noErrors": "Nessun errore."
|
||||
},
|
||||
"fields": {
|
||||
"entityType": "Tipo di entità",
|
||||
@@ -78,11 +80,20 @@
|
||||
"personNameFormat": {
|
||||
"f l": "Nome",
|
||||
"l f": "Cognome",
|
||||
"f m l": "Nome Secondo Nome Cognome",
|
||||
"l f m": "Cognome Nome Secondo Nome",
|
||||
"l, f": "Cognome, Nome"
|
||||
}
|
||||
},
|
||||
"strings": {
|
||||
"commandToRun": "Comando da eseguire (da CLI)",
|
||||
"saveAsDefault": "Salva come predefinito"
|
||||
},
|
||||
"tooltips": {
|
||||
"manualMode": "Se questa opzione è selezionata, sarà necessario eseguire l'importazione manualmente da CLI. Il comando verrà mostrato dopo aver impostato l'importazione.",
|
||||
"silentMode": "La maggior parte degli script after-save verrà saltata, le note dello stream non verranno create. L'importazione sarà più veloce."
|
||||
},
|
||||
"links": {
|
||||
"errors": "Errori"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,16 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"type": "Tipo",
|
||||
"import": "Importa",
|
||||
"lineNumber": "Linea Numero",
|
||||
"exportLineNumber": "Numero della linea di esportazione",
|
||||
"row": "Riga"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Validation": "Convalida",
|
||||
"Access": "Accesso",
|
||||
"Not-Found": "Non Trovato"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,7 +48,8 @@
|
||||
"monitoredFolders": "Se più cartelle, devono essere separate da virgola",
|
||||
"smtpIsShared": "Se selezionato, gli utenti saranno in grado di inviare e-mail utilizzando questo SMTP. La disponibilità è controllata dai ruoli tramite l'autorizzazione dell'account e-mail di gruppo.",
|
||||
"smtpIsForMassEmail": "Se selezionato, SMTP sarà disponibile per l'e-mail di massa.",
|
||||
"storeSentEmails": "Le email inviate saranno memorizzate sul server IMAP"
|
||||
"storeSentEmails": "Le email inviate saranno memorizzate sul server IMAP",
|
||||
"useSmtp": "La possibilità di inviare email."
|
||||
},
|
||||
"links": {
|
||||
"filters": "Filtri",
|
||||
@@ -72,7 +73,8 @@
|
||||
},
|
||||
"labels": {
|
||||
"Create InboundEmail": "Crea un Account Email",
|
||||
"Actions": "Azioni"
|
||||
"Actions": "Azioni",
|
||||
"Main": "Principale"
|
||||
},
|
||||
"messages": {
|
||||
"couldNotConnectToImap": "Impossibile connettersi al server IMAP"
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
{
|
||||
"fields": {
|
||||
"status": "Stato",
|
||||
"executeTime": "Esegui a",
|
||||
"executeTime": "Esegui il",
|
||||
"attempts": "Tentativi rimasti",
|
||||
"failedAttempts": "Tentativo fallito",
|
||||
"failedAttempts": "Tentativi falliti",
|
||||
"serviceName": "Servizio",
|
||||
"methodName": "Metodo",
|
||||
"scheduledJob": "Lavoro programmato",
|
||||
"method": "Metodo",
|
||||
"scheduledJobJob": "Nome lavoro programmato",
|
||||
"executedAt": "Eseguito a",
|
||||
"executedAt": "Eseguito il",
|
||||
"startedAt": "Iniziato alle",
|
||||
"targetType": "Tipo di obiettivo",
|
||||
"targetType": "Tipo di Obiettivo",
|
||||
"targetId": "ID target",
|
||||
"number": "Numero",
|
||||
"queue": "Coda",
|
||||
"job": "Lavoro",
|
||||
"group": "Gruppo"
|
||||
"group": "Gruppo",
|
||||
"className": "Nome Classe"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
|
||||
@@ -8,7 +8,12 @@
|
||||
"sticked": "Fissato",
|
||||
"isLarge": "Misura carattere grande",
|
||||
"dynamicLogicVisible": "Condizioni che rendono visibile il pannello",
|
||||
"hidden": "Nascosto"
|
||||
"hidden": "Nascosto",
|
||||
"dynamicLogicStyled": "Condizioni che applicano lo stile.",
|
||||
"widthPx": "Larghezza (px)",
|
||||
"noLabel": "Nessuna Etichetta",
|
||||
"tabLabel": "Etichetta Scheda",
|
||||
"tabBreak": "Interruzione Scheda"
|
||||
},
|
||||
"options": {
|
||||
"align": {
|
||||
@@ -28,6 +33,18 @@
|
||||
},
|
||||
"tooltips": {
|
||||
"link": "Se selezionato, verrà visualizzato un valore di campo come collegamento che punta alla vista di dettaglio del record. Di solito è usato per i campi *Nome*.",
|
||||
"panelStyle": "Un colore per il pannello"
|
||||
"hiddenPanel": "È necessario fare clic su \"Mostra altro\" per visualizzare il pannello.",
|
||||
"sticked": "Il pannello sarà attaccato a quello sovrastante. Non ci saranno spazi tra i pannelli.",
|
||||
"panelStyle": "Un colore per il pannello",
|
||||
"dynamicLogicVisible": "Se impostato, il pannello sarà nascosto a meno che la condizione non sia soddisfatta.",
|
||||
"dynamicLogicStyled": "Un colore verrà applicato se viene soddisfatta una condizione specifica. Il colore è definito dal parametro *Stile*.",
|
||||
"tabBreak": "Una scheda separata per il pannello e per tutti i pannelli successivi fino alla successiva interruzione di scheda.",
|
||||
"notSortable": "Disabilita la possibilità di ordinare per colonna.",
|
||||
"width": "Larghezza della colonna in percentuale. Si consiglia di avere una colonna con la larghezza non impostata, di solito è il campo *Nome*.",
|
||||
"widthPx": "Larghezza della colonna in pixel. Ha effetto solo se il valore (%) non è impostato. Rende fissa la larghezza della colonna."
|
||||
},
|
||||
"messages": {
|
||||
"cantBeEmpty": "Il layout non può essere vuoto.",
|
||||
"fieldsIncompatible": "I campi non possono essere presenti contemporaneamente nel layout: {fields}."
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,9 @@
|
||||
{
|
||||
"fields": {
|
||||
"layoutList": "Layout"
|
||||
},
|
||||
"labels": {
|
||||
"Create LayoutSet": "Crea gruppo di layout",
|
||||
"Edit Layouts": "Modifica i layout"
|
||||
}
|
||||
}
|
||||
@@ -8,5 +8,8 @@
|
||||
"Running": "In esecuzione",
|
||||
"Failed": "Fallito"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"infoText": "L'azione di massa è in fase di elaborazione in idle da parte di cron. Può richiedere del tempo per essere completata. La chiusura di questa finestra di dialogo non influirà sul processo di esecuzione."
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"fields": {
|
||||
"post": "Posta",
|
||||
"attachments": "Allegato",
|
||||
"users": "Utenti",
|
||||
"portals": "Portali",
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
"layoutSet": "Layout"
|
||||
},
|
||||
"tooltips": {
|
||||
"portalRoles": "I Ruoli specificati verranno applicati a tutti gli utenti di questo portale ."
|
||||
"portalRoles": "I Ruoli specificati verranno applicati a tutti gli utenti di questo portale .",
|
||||
"layoutSet": "Fornisce la possibilità di avere layout diversi da quelli standard."
|
||||
},
|
||||
"labels": {
|
||||
"Create Portal": "Crea Portale",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"Field Level": "Livello del campo"
|
||||
},
|
||||
"fields": {
|
||||
"exportPermission": "Esporta permessi",
|
||||
"exportPermission": "Permessi di Esportazione",
|
||||
"massUpdatePermission": "Autorizzazione per l'aggiornamento di massa"
|
||||
},
|
||||
"tooltips": {
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
"fields": {
|
||||
"name": "Nome",
|
||||
"roles": "Ruoli",
|
||||
"assignmentPermission": "Assegnazione permessi",
|
||||
"assignmentPermission": "Permessi di Assegnazione",
|
||||
"userPermission": "Autorizzazioni utente",
|
||||
"portalPermission": "Autorizzazione portale",
|
||||
"groupEmailAccountPermission": "Permesso account email di gruppo",
|
||||
"exportPermission": "Esporta permessi",
|
||||
"exportPermission": "Permessi di Esportazione",
|
||||
"dataPrivacyPermission": "Autorizzazione privacy dati",
|
||||
"massUpdatePermission": "Autorizzazione per l'aggiornamento di massa"
|
||||
"massUpdatePermission": "Autorizzazione per l'aggiornamento di massa",
|
||||
"followerManagementPermission": "Permessi di Gestione dei Follower"
|
||||
},
|
||||
"links": {
|
||||
"users": "Utenti"
|
||||
@@ -20,7 +21,8 @@
|
||||
"groupEmailAccountPermission": "Definisce un accesso agli account di posta elettronica di gruppo, una possibilità di inviare e-mail dal gruppo SMTP.",
|
||||
"dataPrivacyPermission": "Consente di visualizzare e cancellare i dati personali.",
|
||||
"exportPermission": "Definisce se gli utenti hanno la possibilità di esportare record.",
|
||||
"massUpdatePermission": "Definisce se gli utenti hanno la possibilità di eseguire aggiornamenti di massa dei record."
|
||||
"massUpdatePermission": "Definisce se gli utenti hanno la possibilità di eseguire aggiornamenti di massa dei record.",
|
||||
"followerManagementPermission": "Permette di gestire i follower dei record."
|
||||
},
|
||||
"labels": {
|
||||
"Access": "Accesso",
|
||||
@@ -38,7 +40,7 @@
|
||||
"all": "Tutti",
|
||||
"contact": "Contatto",
|
||||
"own": "proprio",
|
||||
"yes": "Si",
|
||||
"yes": "Sì",
|
||||
"not-set": "Non impostato"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
},
|
||||
"labels": {
|
||||
"Create ScheduledJob": "Crea un Job schedulato",
|
||||
"As often as possible": "Il piu' spesso possibile"
|
||||
"As often as possible": "Il più spesso possibile"
|
||||
},
|
||||
"options": {
|
||||
"job": {
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"tabList": "Elenco schede",
|
||||
"quickCreateList": "Elenco creazione rapida",
|
||||
"exportDelimiter": "Delimitatore esportazione",
|
||||
"globalSearchEntityList": "Ricerca globale entità - elenco",
|
||||
"globalSearchEntityList": "Elenco Entità Ricerca Globale",
|
||||
"authenticationMethod": "Metodo di autenticazione",
|
||||
"ldapAccountCanonicalForm": "Account Form",
|
||||
"ldapAccountDomainName": "Account Nome di Dominio",
|
||||
@@ -38,7 +38,7 @@
|
||||
"ldapOptReferrals": "Scegliere rinvii",
|
||||
"exportDisabled": "Disabilita esporta (sarà consentito solo all'admin)",
|
||||
"b2cMode": "Modalità B2C",
|
||||
"avatarsDisabled": "Disabilita avatars",
|
||||
"avatarsDisabled": "Disabilita avatar",
|
||||
"displayListViewRecordCount": "Mostra totale trovati (in vista elenco)",
|
||||
"theme": "Tema",
|
||||
"userThemesDisabled": "Disabilita scelta tema agli utenti",
|
||||
@@ -67,11 +67,11 @@
|
||||
"assignmentNotificationsEntityList": "Entità da notificare al momento dell'assegnazione",
|
||||
"assignmentEmailNotifications": "Notifiche al momento dell'assegnazione.",
|
||||
"assignmentEmailNotificationsEntityList": "Ambiti di notifica assegnazione email",
|
||||
"streamEmailNotifications": "Notifica gli aggiornamenti nel flusso attività per gli utenti interni",
|
||||
"portalStreamEmailNotifications": "Notifica gli aggiornamenti nel flusso attività per gli utenti del portale",
|
||||
"streamEmailNotificationsEntityList": "Notifiche email flusso scopi",
|
||||
"streamEmailNotifications": "Notifiche sugli aggiornamenti nello Stream per gli utenti interni",
|
||||
"portalStreamEmailNotifications": "Notifiche sugli aggiornamenti nello Stream per gli utenti del portale",
|
||||
"streamEmailNotificationsEntityList": "Scopi Notifiche Email Flusso Attività",
|
||||
"calendarEntityList": "Elenco calendario delle entità",
|
||||
"mentionEmailNotifications": "Notifica via email in caso di menzioni nei posts",
|
||||
"mentionEmailNotifications": "Notifica via email in caso di menzioni nei post",
|
||||
"massEmailDisableMandatoryOptOutLink": "Disabilita il link obbligatorio di cancellazione dell'iscrizione",
|
||||
"activitiesEntityList": "Elenco attività delle entità",
|
||||
"historyEntityList": "Elenco storico delle entità",
|
||||
@@ -80,7 +80,7 @@
|
||||
"followCreatedEntities": "Segui i record creati",
|
||||
"aclAllowDeleteCreated": "Consenti di rimuovere i record creati\n",
|
||||
"adminNotifications": "Notifiche di sistema nel pannello di amministrazione",
|
||||
"adminNotificationsNewVersion": "Mostra notifica quando è disponibile la nuova versione di EspoCRM",
|
||||
"adminNotificationsNewVersion": "Mostra una notifica quando è disponibile una nuova versione di EspoCRM",
|
||||
"massEmailMaxPerHourCount": "Numero massimo di messaggi di posta elettronica inviati per ora.",
|
||||
"maxEmailAccountCount": "Numero massimo di account email personali per utente",
|
||||
"streamEmailNotificationsTypeList": "Cosa notificare",
|
||||
@@ -91,21 +91,21 @@
|
||||
"textFilterUseContainsForVarchar": "Utilizza l'operatore ' Contains ' quando si filtrano i campi varchar",
|
||||
"emailAddressIsOptedOutByDefault": "Contrassegni i nuovi indirizzi del email come cancellati dall'iscrizione",
|
||||
"outboundEmailBccAddress": "CCN indirizzi per client esterni",
|
||||
"adminNotificationsNewExtensionVersion": "Mostra notifica quando sono disponibili nuove versioni di estensioni",
|
||||
"adminNotificationsNewExtensionVersion": "Mostra una notifica quando sono disponibili nuove versioni delle estensioni",
|
||||
"cleanupDeletedRecords": "Pulisci i record eliminati",
|
||||
"ldapPortalUserLdapAuth": "Utilizza l'autenticazione LDAP per gli utenti del portale",
|
||||
"ldapPortalUserPortals": "Portali predefiniti per un utente del portale",
|
||||
"ldapPortalUserRoles": "Ruoli predefiniti per un utente del portale\n",
|
||||
"addressCountryList": "Elenco paese completamento automatico elenco",
|
||||
"addressCountryList": "Elenco Paesi Completamento Automatico",
|
||||
"fiscalYearShift": "Inizio dell'anno fiscale\n",
|
||||
"jobRunInParallel": "I lavori vengono eseguiti in parallelo",
|
||||
"jobRunInParallel": "Lavori Eseguiti in Parallelo",
|
||||
"jobMaxPortion": "Porzione massima di lavori",
|
||||
"jobPoolConcurrencyNumber": "Numero di concorrenza del pool di lavori",
|
||||
"daemonInterval": "Intervallo Daemon",
|
||||
"daemonMaxProcessNumber": "Numero massimo di processi Daemon",
|
||||
"daemonProcessTimeout": "Timeout Processo Daemon",
|
||||
"addressCityList": "Elenco di completamento automatico della città dell'indirizzo",
|
||||
"addressStateList": "Elenco stato completamento indirizzo automatico",
|
||||
"addressCityList": "Elenco Città Completamento Automatico",
|
||||
"addressStateList": "Elenco Province Completamento Automatico",
|
||||
"cronDisabled": "Disabilita cron",
|
||||
"maintenanceMode": "Modalità manutenzione",
|
||||
"useWebSocket": "Usa WebSocket",
|
||||
@@ -121,8 +121,16 @@
|
||||
"auth2FA": "Abilita autenticazione a 2 fattori",
|
||||
"auth2FAMethodList": "Metodi 2FA disponibili\n",
|
||||
"personNameFormat": "Formato nome persona",
|
||||
"newNotificationCountInTitle": "Visualizza il numero delle nuove notifiche nel titolo della pagina",
|
||||
"massEmailVerp": "Usa VERP",
|
||||
"smsProvider": "Provider SMS"
|
||||
"passwordRecoveryForInternalUsersDisabled": "Disabilita il recupero della password per gli utenti interni",
|
||||
"passwordRecoveryNoExposure": "Evita l'esposizione dell'indirizzo email nel modulo di recupero della password",
|
||||
"auth2FAForced": "Forza gli utenti normali a impostare la 2FA",
|
||||
"smsProvider": "Provider SMS",
|
||||
"outboundSmsFromNumber": "SMS Dal Numero",
|
||||
"recordsPerPageSelect": "Elementi per pagina (Selezione)",
|
||||
"attachmentUploadMaxSize": "Dimensione Massima di Upload (Mb)",
|
||||
"attachmentUploadChunkSize": "Dimensione del blocco di Upload (Mb)"
|
||||
},
|
||||
"tooltips": {
|
||||
"recordsPerPage": "Numero di records inizialmente mostrati in vista elenco .",
|
||||
@@ -157,7 +165,7 @@
|
||||
"outboundEmailIsShared": "Consenti agli utenti di inviare e-mail da questo indirizzo.\n",
|
||||
"aclAllowDeleteCreated": "Gli utenti saranno in grado di rimuovere i record che hanno creato anche se non dispongono dell'accesso all'eliminazione.",
|
||||
"textFilterUseContainsForVarchar": "Se non selezionata, viene utilizzato l'operatore ' inizia con '. È possibile utilizzare il carattere jolly '%'.",
|
||||
"streamEmailNotificationsEntityList": "Notifiche e-mail sugli aggiornamenti di flusso dei record seguiti. Gli utenti riceveranno notifiche e-mail solo per i tipi di entità specificati.",
|
||||
"streamEmailNotificationsEntityList": "Notifiche via Email sugli aggiornamenti del flusso attività dei record seguiti. Gli utenti riceveranno notifiche via e-mail solo per i tipi di entità specificati.",
|
||||
"authTokenPreventConcurrent": "Gli utenti non potranno essere collegati simultaneamente su più dispositivi.",
|
||||
"emailAddressIsOptedOutByDefault": "Quando si crea un nuovo record di email addess sarà contrassegnato come opt-out.",
|
||||
"cleanupDeletedRecords": "I record rimossi verranno eliminati dal database dopo un po' di tempo.",
|
||||
@@ -167,13 +175,34 @@
|
||||
"jobRunInParallel": "I lavori verranno eseguiti in processi paralleli.",
|
||||
"jobPoolConcurrencyNumber": "Numero massimo di processi eseguiti contemporaneamente.",
|
||||
"jobMaxPortion": "Numero massimo di lavori elaborati per una esecuzione.",
|
||||
"daemonInterval": "Intervallo tra process cron viene eseguito in secondi.",
|
||||
"daemonInterval": "Intervallo tra le esecuzioni del processo cron, in secondi.",
|
||||
"daemonMaxProcessNumber": "Numero massimo di processi cron eseguiti contemporaneamente.",
|
||||
"daemonProcessTimeout": "Tempo di esecuzione massimo (in secondi) allocato per un singolo processo cron",
|
||||
"cronDisabled": "Cron non funzionerà.",
|
||||
"maintenanceMode": "Solo gli amministratori avranno accesso al sistema.",
|
||||
"ldapAccountCanonicalForm": "Il tipo di modulo canonico del tuo account. Ci sono 4 opzioni:\n\n- \"Dn\": il modulo nel formato \"CN = tester, OU = espocrm, DC = test, DC = lan\".\n\n- \"Nome utente\": il modulo \"tester\".\n\n- \"Barra rovesciata\": il modulo \"AZIENDA \\ tester\".\n\n- \"Principal\": il modulo \"tester@company.com\".",
|
||||
"useWebSocket": "WebSocket permette una comunicazione interattiva bidirezionale tra un server e un browser. Richiede la configurazione del daemon WebSocket sul tuo server. Controlla la documentazione per maggiori informazioni."
|
||||
"massEmailVerp": "Variable envelope Return Path. Per una migliore gestione dei messaggi respinti. Assicurarsi che il proprio provider SMTP lo supporti.",
|
||||
"displayListViewRecordCount": "Il numero totale di record sarà visualizzato nella vista elenco.",
|
||||
"currencyList": "Quali valute saranno disponibili nel sistema.",
|
||||
"activitiesEntityList": "Quali record saranno disponibili nel pannello Attività.",
|
||||
"historyEntityList": "Quali record saranno disponibili nel pannello Storico.",
|
||||
"calendarEntityList": "Quali record saranno disponibili nel Calendario.",
|
||||
"addressStateList": "Suggerimenti di Stato per i campi degli indirizzi.",
|
||||
"addressCityList": "Suggerimenti per le città per i campi degli indirizzi.",
|
||||
"addressCountryList": "Suggerimenti per i Paesi per i campi degli indirizzi.",
|
||||
"exportDisabled": "Gli utenti non saranno in grado di esportare i record. Solo gli amministratori potranno farlo.",
|
||||
"globalSearchEntityList": "Quali record si possono ricercare con la Ricerca globale.",
|
||||
"siteUrl": "L'URL di quest'istanza di EspoCRM. È necessario cambiarlo nel caso in cui ci si sposti su un altro dominio.",
|
||||
"useCache": "Non è consigliabile disabilitarlo, a meno che non sia per scopi di sviluppo.",
|
||||
"useWebSocket": "WebSocket permette una comunicazione interattiva bidirezionale tra un server e un browser. Richiede la configurazione del daemon WebSocket sul tuo server. Controlla la documentazione per maggiori informazioni.",
|
||||
"passwordRecoveryForInternalUsersDisabled": "Solo gli utenti dei portali potranno recuperare la password.",
|
||||
"passwordRecoveryNoExposure": "Non sarà possibile determinare se uno specifico indirizzo email è registrato nel sistema.",
|
||||
"emailAddressLookupEntityTypeList": "Per il riempimento automatico degli indirizzi e-mail.",
|
||||
"emailNotificationsDelay": "Un messaggio può essere modificato entro l'intervallo di tempo specificato prima dell'invio della notifica.",
|
||||
"outboundEmailFromAddress": "L'indirizzo email del sistema.",
|
||||
"smtpServer": "Se vuoto, verrà utilizzato l'account e-mail di gruppo con l'indirizzo email corrispondente.",
|
||||
"busyRangesEntityList": "Cosa viene preso in considerazione quando vengono mostrati gli intervalli di tempo occupati nello scheduler e nella timeline.",
|
||||
"recordsPerPageSelect": "Numero di record visualizzati inizialmente quando si selezionano i record."
|
||||
},
|
||||
"labels": {
|
||||
"System": "Sistema",
|
||||
@@ -181,16 +210,17 @@
|
||||
"In-app Notifications": "Notifiche In-app",
|
||||
"Email Notifications": "Notifiche Email",
|
||||
"Currency Settings": "Impostazioni di valuta",
|
||||
"Currency Rates": "Tasso di Cambio",
|
||||
"Currency Rates": "Tassi di Cambio",
|
||||
"Mass Email": "Email massiva",
|
||||
"Test Connection": "Prova della connessione",
|
||||
"Connecting": "Connessione...",
|
||||
"Activities": "Attività",
|
||||
"Admin Notifications": "Notifiche di amministratore",
|
||||
"Admin Notifications": "Notifiche Admin",
|
||||
"Search": "Ricerca",
|
||||
"Misc": "Varie",
|
||||
"2-Factor Authentication": "Autenticazione a 2 fattori",
|
||||
"Group Tab": "Gruppo Schede"
|
||||
"Group Tab": "Gruppo Schede",
|
||||
"Attachments": "Allegati"
|
||||
},
|
||||
"messages": {
|
||||
"ldapTestConnection": "La connessione è stata stabilita con successo"
|
||||
@@ -207,7 +237,9 @@
|
||||
},
|
||||
"personNameFormat": {
|
||||
"firstLast": "Nome",
|
||||
"lastFirst": "Cognome"
|
||||
"lastFirst": "Cognome",
|
||||
"firstMiddleLast": "Nome Secondo Nome Cognome",
|
||||
"lastFirstMiddle": "Cognome Nome Secondo Nome"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"messages": {
|
||||
"infoMention": "Digita **@nome utente** per menzionare l'utente nel post.",
|
||||
"infoSyntax": "Sintassi di markdown disponibile"
|
||||
"infoSyntax": "Sintassi di markdown disponibile",
|
||||
"couldNotAddFollowerUserHasNoAccessToStream": "Impossibile aggiungere l'utente '{userName}' ai follower. L'utente non ha accesso allo 'stream' del record."
|
||||
},
|
||||
"syntaxItems": {
|
||||
"code": "Codice",
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
},
|
||||
"tooltips": {
|
||||
"roles": "Ruoli di accesso. Gli utenti di questo team hanno ottenuto il livello di controllo per i ruoli selezionati.",
|
||||
"positionList": "Posizioni disponibili in questa squadra. E.g. Venditore, Manager."
|
||||
"positionList": "Posizioni disponibili in questa squadra. E.g. Venditore, Manager.",
|
||||
"layoutSet": "Fornisce la possibilità di avere layout diversi da quelli standard. Il set di layout verrà applicato agli utenti che hanno impostato questo team come Team Predefinito."
|
||||
},
|
||||
"labels": {
|
||||
"Create Team": "Crea Team"
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
"position": "Posizione nel team",
|
||||
"ipAddress": "Indirizzo IP",
|
||||
"passwordPreview": "Mostra password",
|
||||
"isSuperAdmin": "E' super amministratore",
|
||||
"isSuperAdmin": "È Super Amministratore",
|
||||
"lastAccess": "Ultimo accesso",
|
||||
"type": "Genere",
|
||||
"type": "Tipo",
|
||||
"secretKey": "Chiave segreta",
|
||||
"authMethod": "Metodo di autenticazione",
|
||||
"yourPassword": "La tua password attuale",
|
||||
@@ -43,7 +43,8 @@
|
||||
"contact": "Contatti",
|
||||
"account": "Account (Primario}",
|
||||
"tasks": "Compiti",
|
||||
"dashboardTemplate": "Modello di dashboard"
|
||||
"dashboardTemplate": "Modello di dashboard",
|
||||
"userData": "Dati Utente"
|
||||
},
|
||||
"labels": {
|
||||
"Create User": "Crea Utente",
|
||||
@@ -67,6 +68,7 @@
|
||||
"Security": "Sicurezza",
|
||||
"Reset 2FA": "Ripristina 2FA",
|
||||
"Secret": "Segreto",
|
||||
"Send Password Change Link": "Invia Link per il Cambio Password",
|
||||
"Send Code": "Invia Codice"
|
||||
},
|
||||
"tooltips": {
|
||||
@@ -102,10 +104,18 @@
|
||||
"generateAndSendNewPassword": "Una nuova password verrà generata e inviata all'indirizzo e-mail dell'utente.",
|
||||
"security2FaResetConfimation": "Sei sicuro di voler ripristinare le attuali impostazioni 2FA?",
|
||||
"ldapUserInEspoNotFound": "Utente non trovato in EspoCRM. Contatta l’amministratore di sistema per creare un utente.",
|
||||
"auth2FARequiredHeader": "Autenticazione a 2 fattori richiesta"
|
||||
"auth2FARequiredHeader": "Autenticazione a 2 fattori richiesta",
|
||||
"auth2FARequired": "È necessario impostare l'autenticazione a due fattori. Usa un'applicazione di autenticazione sul tuo cellulare (ad esempio, Google Authenticator).",
|
||||
"sendPasswordChangeLinkConfirmation": "Verrà inviata una mail con un link univoco che consentirà all'utente di modificare la propria password. Il link scadrà dopo un determinato periodo di tempo.",
|
||||
"yourAuthenticationCode": "Codice di autenticazione: {code}.",
|
||||
"choose2FaSmsPhoneNumber": "Seleziona un numero di telefono da utilizzare per la 2FA.",
|
||||
"choose2FaEmailAddress": "Seleziona un indirizzo email che verrà utilizzato per la 2FA. Si consiglia di utilizzare un indirizzo email non principale.",
|
||||
"enterCodeSentInEmail": "Inserisci il codice inviato al tuo indirizzo email.",
|
||||
"enterCodeSentBySms": "Inserisci il codice inviato via SMS al tuo numero di telefono.",
|
||||
"passwordChangeRequestNotFound": "La richiesta di modifica della password non è stata trovata. Potrebbe essere scaduta. Prova ad avviare un nuovo recupero della password dalla [Pagina di Login]({url})."
|
||||
},
|
||||
"boolFilters": {
|
||||
"onlyMyTeam": "Solo per il mio Team"
|
||||
"onlyMyTeam": "Solo il mio Team"
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Attivo",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"isSystem": true
|
||||
},
|
||||
"uriOptionalProtocol": {
|
||||
"pattern": "((a-zA-Z0-9)\\:\\/\\/)?[a-zA-Z0-9%\\.\\/\\?\\:@\\-_=#]+\\.([a-zA-Z0-9%\\&\\.\\/\\?\\:@\\-_=#])*",
|
||||
"pattern": "((a-zA-Z0-9)\\:\\/\\/)?[a-zA-Z0-9%\\.\\/\\?\\:@\\-_=#$!+*\\(\\)',]+\\.([a-zA-Z0-9%\\&\\.\\/\\?\\:@\\-_=#$!+*\\(\\)',])*",
|
||||
"isSystem": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
"related": {
|
||||
"type": "linkParent",
|
||||
"noLoad": true,
|
||||
"view": "views/attachment/fields/parent"
|
||||
"view": "views/attachment/fields/parent",
|
||||
"validatorClassName": "Espo\\Classes\\FieldValidators\\Attachment\\Related"
|
||||
},
|
||||
"sourceId": {
|
||||
"type": "varchar",
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"name": {
|
||||
"type": "varchar",
|
||||
"required": true,
|
||||
"trim": true
|
||||
"trim": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"subject": {
|
||||
"type": "varchar",
|
||||
@@ -19,7 +20,8 @@
|
||||
"notStorable": true,
|
||||
"textFilterDisabled": true,
|
||||
"layoutFiltersDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"fromAddress": {
|
||||
"type": "varchar",
|
||||
@@ -27,15 +29,18 @@
|
||||
"notStorable": true,
|
||||
"textFilterDisabled": true,
|
||||
"layoutFiltersDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"fromString": {
|
||||
"type": "varchar",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"replyToString": {
|
||||
"type": "varchar",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"replyToName": {
|
||||
"type": "varchar",
|
||||
@@ -43,7 +48,8 @@
|
||||
"notStorable": true,
|
||||
"textFilterDisabled": true,
|
||||
"layoutFiltersDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"replyToAddress": {
|
||||
"type": "varchar",
|
||||
@@ -51,7 +57,8 @@
|
||||
"notStorable": true,
|
||||
"textFilterDisabled": true,
|
||||
"layoutFiltersDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"addressNameMap": {
|
||||
"type": "jsonObject",
|
||||
@@ -65,7 +72,8 @@
|
||||
"required": true,
|
||||
"view": "views/email/fields/from-address-varchar",
|
||||
"textFilterDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"to": {
|
||||
"type": "varchar",
|
||||
@@ -74,28 +82,32 @@
|
||||
"view": "views/email/fields/email-address-varchar",
|
||||
"textFilterDisabled": true,
|
||||
"validatorClassName": "Espo\\Classes\\FieldValidators\\Email\\EmailAddresses",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"cc": {
|
||||
"type": "varchar",
|
||||
"notStorable": true,
|
||||
"view": "views/email/fields/email-address-varchar",
|
||||
"customizationDisabled": true,
|
||||
"textFilterDisabled": true
|
||||
"textFilterDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"bcc": {
|
||||
"type": "varchar",
|
||||
"notStorable": true,
|
||||
"view": "views/email/fields/email-address-varchar",
|
||||
"customizationDisabled": true,
|
||||
"textFilterDisabled": true
|
||||
"textFilterDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"replyTo": {
|
||||
"type": "varchar",
|
||||
"notStorable": true,
|
||||
"view": "views/email/fields/email-address-varchar",
|
||||
"textFilterDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"personStringData": {
|
||||
"type": "varchar",
|
||||
@@ -151,7 +163,8 @@
|
||||
"notStorable": true,
|
||||
"default": null,
|
||||
"textFilterDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"isUsers": {
|
||||
"type": "bool",
|
||||
@@ -200,44 +213,52 @@
|
||||
"maxLength": 300,
|
||||
"readOnly": true,
|
||||
"textFilterDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"emailAddress": {
|
||||
"type": "base",
|
||||
"notStorable": true,
|
||||
"view": "views/email/fields/email-address",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"fromEmailAddress": {
|
||||
"type": "link",
|
||||
"view": "views/email/fields/from-email-address",
|
||||
"textFilterDisabled": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"toEmailAddresses": {
|
||||
"type": "linkMultiple",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"ccEmailAddresses": {
|
||||
"type": "linkMultiple",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"replyToEmailAddresses": {
|
||||
"type": "linkMultiple",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"bodyPlain": {
|
||||
"type": "text",
|
||||
"seeMoreDisabled": true,
|
||||
"clientReadOnly": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"body": {
|
||||
"type": "wysiwyg",
|
||||
"view": "views/email/fields/body",
|
||||
"attachmentField": "attachments",
|
||||
"useIframe": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"isHtml": {
|
||||
"type": "bool",
|
||||
@@ -262,12 +283,14 @@
|
||||
},
|
||||
"attachments": {
|
||||
"type": "attachmentMultiple",
|
||||
"sourceList": ["Document"]
|
||||
"sourceList": ["Document"],
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"hasAttachment": {
|
||||
"type": "bool",
|
||||
"readOnly": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"parent": {
|
||||
"type": "linkParent",
|
||||
@@ -280,7 +303,8 @@
|
||||
},
|
||||
"dateSent": {
|
||||
"type": "datetime",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"deliveryDate": {
|
||||
"type": "datetime",
|
||||
@@ -412,33 +436,38 @@
|
||||
"layoutListDisabled": true,
|
||||
"layoutMassUpdateDisabled": true,
|
||||
"dbType": "text",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"icsEventData": {
|
||||
"type": "jsonObject",
|
||||
"readOnly": true,
|
||||
"directAccessDisabled": true,
|
||||
"notStorable": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"icsEventUid": {
|
||||
"type": "varchar",
|
||||
"maxLength": 255,
|
||||
"index": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"icsEventDateStart": {
|
||||
"type": "datetimeOptional",
|
||||
"readOnly": true,
|
||||
"notStorable": true,
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"createEvent": {
|
||||
"type": "base",
|
||||
"disabled": true,
|
||||
"notStorable": true,
|
||||
"view": "views/email/fields/create-event",
|
||||
"customizationDisabled": true
|
||||
"customizationDisabled": true,
|
||||
"layoutAvailabilityList": []
|
||||
},
|
||||
"createdEvent": {
|
||||
"type": "linkParent",
|
||||
@@ -446,7 +475,8 @@
|
||||
"view": "views/email/fields/created-event",
|
||||
"fieldManagerParamList": [
|
||||
"tooltipText"
|
||||
]
|
||||
],
|
||||
"layoutAvailabilityList": []
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
@@ -551,7 +581,8 @@
|
||||
"type": "varchar",
|
||||
"len": "4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"bccEmailAddresses": {
|
||||
"type": "hasMany",
|
||||
@@ -565,7 +596,8 @@
|
||||
"type": "varchar",
|
||||
"len": "4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"layoutDefaultSidePanelDisabled": true
|
||||
},
|
||||
"replyToEmailAddresses": {
|
||||
"type": "hasMany",
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
"monitoredFolders": {
|
||||
"type": "array",
|
||||
"default": ["INBOX"],
|
||||
"options": ["INBOX"],
|
||||
"view": "views/email-account/fields/folders",
|
||||
"displayAsList": true,
|
||||
"noEmptyString": true,
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"monitoredFolders": {
|
||||
"type": "array",
|
||||
"default": ["INBOX"],
|
||||
"options": ["INBOX"],
|
||||
"view": "views/inbound-email/fields/folders",
|
||||
"displayAsList": true,
|
||||
"noEmptyString": true,
|
||||
|
||||
@@ -68,8 +68,9 @@
|
||||
},
|
||||
"leadSource": {
|
||||
"type": "enum",
|
||||
"view": "crm:views/opportunity/fields/lead-source",
|
||||
"customizationOptionsDisabled": true,
|
||||
"optionsPath": "entityDefs.Lead.fields.source.options",
|
||||
"translation": "Lead.options.source",
|
||||
"default": "Web Site"
|
||||
},
|
||||
"apiKey": {
|
||||
|
||||
@@ -235,7 +235,6 @@
|
||||
},
|
||||
"language": {
|
||||
"type": "enum",
|
||||
"options": ["en_US"],
|
||||
"default": "en_US",
|
||||
"view": "views/settings/fields/language",
|
||||
"isSorted": true
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
{
|
||||
"assignmentNotificatorClassName": "Espo\\Classes\\AssignmentNotificators\\Email",
|
||||
"readLoaderClassNameList": [
|
||||
"Espo\\Classes\\FieldProcessing\\Email\\AddressDataLoader",
|
||||
"Espo\\Classes\\FieldProcessing\\Email\\UserColumnsLoader"
|
||||
],
|
||||
"listLoaderClassNameList": [
|
||||
"Espo\\Classes\\FieldProcessing\\Email\\StringDataLoader"
|
||||
],
|
||||
"massActions": {
|
||||
"update": {
|
||||
"allowed": true
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"chartColorAlternativeList": ["#7492cc", "#c29c4a", "#a1404a", "#6a5f96", "#b07e53"],
|
||||
"calendarColors": {
|
||||
"": "#a58dc7a0",
|
||||
"Meeting": "#6680b3",
|
||||
"Meeting": "#697da5",
|
||||
"Call": "#a1404a",
|
||||
"Task": "#5d8a55"
|
||||
},
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
"logo": {
|
||||
"param": "navbar",
|
||||
"valueMap": {
|
||||
"side": "client/img/logo-39.png",
|
||||
"top": "client/img/logo-39.png"
|
||||
"side": "client/img/logo.svg",
|
||||
"top": "client/img/logo.svg"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -158,7 +158,7 @@ class Attachment extends Record
|
||||
unset($data->parentId);
|
||||
unset($data->relatedId);
|
||||
|
||||
$isBeingUploaded = (bool) $data->isBeingUploaded;
|
||||
$isBeingUploaded = (bool) ($data->isBeingUploaded ?? false);
|
||||
|
||||
$contents = '';
|
||||
|
||||
@@ -283,6 +283,18 @@ class Attachment extends Record
|
||||
}
|
||||
}
|
||||
|
||||
private function getFieldType(AttachmentEntity $attachment): ?string
|
||||
{
|
||||
$field = $attachment->getTargetField();
|
||||
$entityType = $attachment->getParentType() ?? $attachment->getRelatedType();
|
||||
|
||||
if (!$field || !$entityType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->metadata->get(['entityDefs', $entityType, 'fields', $field, 'type']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Forbidden
|
||||
*/
|
||||
@@ -295,10 +307,8 @@ class Attachment extends Record
|
||||
return;
|
||||
}
|
||||
|
||||
$fieldType = $this->metadata->get(['entityDefs', $entityType, 'fields', $field, 'type']);
|
||||
|
||||
if (
|
||||
$fieldType === self::FIELD_TYPE_IMAGE ||
|
||||
$this->getFieldType($attachment) === self::FIELD_TYPE_IMAGE ||
|
||||
$attachment->getRole() === AttachmentEntity::ROLE_INLINE_ATTACHMENT
|
||||
) {
|
||||
$this->checkAttachmentTypeImage($attachment);
|
||||
@@ -306,7 +316,7 @@ class Attachment extends Record
|
||||
return;
|
||||
}
|
||||
|
||||
$extension = self::getFileExtension($attachment) ?? '';
|
||||
$extension = strtolower(self::getFileExtension($attachment) ?? '');
|
||||
|
||||
$mimeType = $this->getMimeTypeUtil()->getMimeTypeByExtension($extension) ??
|
||||
$attachment->getType();
|
||||
@@ -759,13 +769,15 @@ class Attachment extends Record
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$this->checkAttachmentTypeImage($attachment, $filePath);
|
||||
}
|
||||
catch (Forbidden $e) {
|
||||
$this->entityManager->removeEntity($attachment);
|
||||
if ($this->getFieldType($attachment) === self::FIELD_TYPE_IMAGE) {
|
||||
try {
|
||||
$this->checkAttachmentTypeImage($attachment, $filePath);
|
||||
}
|
||||
catch (Forbidden $e) {
|
||||
$this->entityManager->removeEntity($attachment);
|
||||
|
||||
throw new ForbiddenSilent($e->getMessage());
|
||||
throw new ForbiddenSilent($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
$attachment->set('isBeingUploaded', false);
|
||||
|
||||
@@ -179,6 +179,8 @@ class Kanban
|
||||
|
||||
$repository = $this->entityManager->getRDBRepository($this->entityType);
|
||||
|
||||
$hasMore = false;
|
||||
|
||||
foreach ($statusList as $status) {
|
||||
if (in_array($status, $statusIgnoreList)) {
|
||||
continue;
|
||||
@@ -248,6 +250,8 @@ class Kanban
|
||||
$totalSub = -1;
|
||||
|
||||
unset($collectionSub[count($collectionSub) - 1]);
|
||||
|
||||
$hasMore = true;
|
||||
}
|
||||
else {
|
||||
$totalSub = -2;
|
||||
@@ -277,14 +281,7 @@ class Kanban
|
||||
$total = $repository->clone($query)->count();
|
||||
}
|
||||
else {
|
||||
if ($maxSize && count($collection) > $maxSize) {
|
||||
$total = -1;
|
||||
|
||||
unset($collection[count($collection) - 1]);
|
||||
}
|
||||
else {
|
||||
$total = -2;
|
||||
}
|
||||
$total = $hasMore ? -1 : -2;
|
||||
}
|
||||
|
||||
return new Result($collection, $total, $additionalData);
|
||||
@@ -310,7 +307,7 @@ class Kanban
|
||||
protected function getStatusList(): array
|
||||
{
|
||||
assert(is_string($this->entityType));
|
||||
|
||||
|
||||
$statusField = $this->getStatusField();
|
||||
|
||||
$statusList = $this->metadata->get(['entityDefs', $this->entityType, 'fields', $statusField, 'options']);
|
||||
|
||||
@@ -730,6 +730,12 @@ class LeadCapture
|
||||
$lead->set('campaignId', $leadCapture->getCampaignId());
|
||||
}
|
||||
|
||||
$teamId = $leadCapture->getTargetTeamId();
|
||||
|
||||
if ($teamId) {
|
||||
$lead->addLinkMultipleId('teams', $teamId);
|
||||
}
|
||||
|
||||
// Skipping the 'required' validation.
|
||||
$validationParams = FieldValidationParams::create()->withTypeSkipFieldList('required', $fieldList);
|
||||
|
||||
|
||||
22
client/img/logo.svg
Normal file
22
client/img/logo.svg
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="318" height="78" enable-background="new 0 0 307.813 75" overflow="visible" version="1.1" viewBox="0 0 318 78" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||||
|
||||
<switch transform="matrix(1.089 0 0 1.089 -.89733 -.52658)">
|
||||
<foreignObject width="1" height="1" requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
|
||||
</foreignObject>
|
||||
<g transform="matrix(.96767 0 0 .96767 3.9659 -1.2011)">
|
||||
|
||||
<path d="m169.53 21.864c-7.453 2.972-9.569 11.987-9.005 19.212 1.587 2.982 3.845 5.562 5.783 8.312l4.262-1.083c-1.796-4.447-1.689-9.424-0.806-14.066 0.585-3.001 2.309-6.476 5.634-7.032 5.307-0.847 10.733-0.271 16.088-0.369 0.091-2.196 0.115-4.392 0.107-6.585-7.333 0.387-15.043-1.038-22.063 1.611zm52.714-1.294c-8.12-0.952-16.332-0.149-24.492-0.387-0.021 6.43-3e-3 12.854 0.078 19.274 2.625-0.849 5.251-1.739 7.909-2.532 0.042-3.272 0.028-6.527-0.071-9.789 4.869-0.029 9.874-0.757 14.639 0.451 1.838 0.298 2.051 2.25 2.687 3.641 2.541-0.891 5.111-1.717 7.672-2.574-0.703-4.246-4.129-7.633-8.422-8.084zm23.522-0.593c-3.954 0.072-7.912 0.064-11.864 0.047 0.051 2.544 0.063 5.074 0.072 7.617 4.263-1.482 8.553-2.889 12.848-4.268-0.35-1.128-0.706-2.268-1.056-3.396z" fill="#fff"/>
|
||||
<path d="m161.96 69.125c7.886-3.717 15.757-7.463 23.72-11.018 5.563 0.359 11.146 0.021 16.722 0.193 1.14-0.036 2.292-0.061 3.432-0.088-0.011-3.195-0.025-6.38-0.082-9.564 3.428-1.502 10.227-4.623 10.227-4.623l15.215 13.941 11.096 0.106-0.715-26.236 0.803-0.211 9.005 26.344 8.834-0.066 8.99-28.394-0.308 28.434 8.074-0.021-0.231-37.932-9.279 0.071 30.625-14.141s-37.593 14.279-56.404 21.385c-2.996 1.022-5.878 2.315-8.853 3.394-2.278 0.867-4.558 1.713-6.834 2.58-20.071 7.526-39.945 15.604-60.126 22.803-6.777-10.522-15.314-19.854-21.768-30.585zm72.116-17.961c-0.108 0.154-0.324 0.458-0.429 0.611-3.448-3.018-6.765-6.189-10.21-9.205 1.745-1.096 3.47-2.242 5.026-3.597 1.625-1.386 3.479-2.469 5.345-3.499 0.293 5.227 0.258 10.452 0.268 15.69zm23.942-9.67c-0.857 2.578-1.825 5.137-2.793 7.682-1.644-6.217-3.94-12.238-5.856-18.383-0.119-0.52-0.366-1.574-0.487-2.093 3.428-1.709 10.585-4.854 15.229-6.815-1.647 5.969-4.306 14.029-6.093 19.609z" fill="#ffb300"/>
|
||||
|
||||
<g fill="#fff">
|
||||
<path d="m45.672 58.148h-18.526c-2.861 0-5.614-0.651-8.257-1.953-2.861-1.409-5.043-3.651-6.547-6.725-1.503-3.074-2.254-6.455-2.254-10.145 0-3.652 0.724-6.961 2.173-9.926 1.594-3.219 3.803-5.569 6.628-7.052 1.557-0.795 3.052-1.355 4.482-1.682 1.43-0.325 3.07-0.488 4.917-0.488h17.168v6.789h-15.886c-1.415 0-2.602 0.187-3.563 0.558-0.961 0.372-1.912 1.037-2.855 1.994s-1.597 1.887-1.959 2.791c-0.363 0.902-0.543 2.027-0.543 3.375h25.023v6.789h-25.025c0 1.24 0.164 2.325 0.491 3.256 0.327 0.93 0.919 1.887 1.776 2.871 0.856 0.985 1.749 1.732 2.677 2.242 0.929 0.512 2.03 0.767 3.306 0.767h16.774z"/>
|
||||
<path d="m76.499 49.519c0 2.397-0.771 4.449-2.312 6.154-1.541 1.706-3.49 2.56-5.846 2.56h-18.653v-5.113h15.326c1.087 0 2.001-0.272 2.744-0.817s1.115-1.327 1.115-2.345c0-2.362-1.595-3.543-4.783-3.543h-7.825c-1.666 0-3.278-0.79-4.836-2.369-1.559-1.58-2.336-3.287-2.336-5.119 0-2.585 0.579-4.667 1.738-6.248 1.34-1.794 3.313-2.692 5.922-2.692h17.928v5.364h-15.938c-0.614 0-1.147 0.289-1.599 0.868s-0.677 1.235-0.677 1.972c0 0.807 0.298 1.498 0.896 2.076 0.597 0.579 1.311 0.867 2.144 0.867h8.415c2.643 0 4.733 0.79 6.271 2.369 1.536 1.579 2.306 3.584 2.306 6.016z"/>
|
||||
<path d="m109.29 43.414c0 4.495-1.166 8.074-3.497 10.738s-5.395 3.996-9.188 3.996h-8.186v10.309h-7.627v-38.472h15.09c4.27 0 7.6 1.269 9.989 3.806 2.279 2.428 3.419 5.637 3.419 9.623zm-7.627 0.405c0-2.356-0.754-4.286-2.262-5.793-1.509-1.505-3.388-2.258-5.641-2.258h-5.341v16.429h5.886c2.179 0 3.951-0.771 5.313-2.313 1.363-1.54 2.045-3.562 2.045-6.065z"/>
|
||||
<path d="m145.1 43.967c0 4.896-1.557 8.65-4.669 11.261-2.86 2.394-6.751 3.591-11.673 3.591-4.923 0-8.742-1.087-11.456-3.264-3.15-2.502-4.724-6.401-4.724-11.696 0-4.424 1.701-7.906 5.104-10.446 3.04-2.283 6.786-3.427 11.238-3.427 4.887 0 8.805 1.225 11.754 3.673s4.426 5.884 4.426 10.308zm-8.382-0.065c0-2.285-0.716-4.197-2.146-5.738-1.432-1.54-3.379-2.312-5.841-2.312-2.246 0-4.103 0.79-5.57 2.366-1.467 1.577-2.2 3.563-2.2 5.955 0 2.756 0.743 4.949 2.228 6.581s3.405 2.448 5.76 2.448c2.679 0 4.673-0.852 5.977-2.557 1.193-1.557 1.792-3.805 1.792-6.743z"/>
|
||||
</g>
|
||||
</g>
|
||||
</switch>
|
||||
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
@@ -591,6 +591,7 @@ define('crm:views/calendar/calendar', ['view', 'lib!full-calendar'], function (D
|
||||
timezone: this.getDateTime().timeZone,
|
||||
longPressDelay: 300,
|
||||
eventColor: this.colors[''],
|
||||
nowIndicator: true,
|
||||
windowResize: () => {
|
||||
this.adjustSize();
|
||||
},
|
||||
|
||||
@@ -56,19 +56,24 @@ define('crm:views/campaign/record/detail-bottom', 'views/record/detail-bottom',
|
||||
index: -1,
|
||||
});
|
||||
|
||||
this.listenTo(this.model, 'change', function () {
|
||||
this.listenTo(this.model, 'change', () => {
|
||||
this.manageMassEmails();
|
||||
}, this);
|
||||
});
|
||||
},
|
||||
|
||||
afterRender: function () {
|
||||
Dep.prototype.setupPanels.call(this);
|
||||
Dep.prototype.afterRender.call(this);
|
||||
|
||||
this.manageMassEmails();
|
||||
},
|
||||
|
||||
manageMassEmails: function () {
|
||||
var parentView = this.getParentView();
|
||||
if (!parentView) return;
|
||||
|
||||
if (!parentView) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (~['Email', 'Newsletter'].indexOf(this.model.get('type'))) {
|
||||
parentView.showPanel('massEmails');
|
||||
parentView.showPanel('trackingUrls');
|
||||
|
||||
@@ -26,17 +26,7 @@
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
Espo.define('crm:views/lead/fields/industry', 'views/fields/enum', function (Dep) {
|
||||
|
||||
return Dep.extend({
|
||||
|
||||
setup: function () {
|
||||
this.params.options = this.getMetadata().get('entityDefs.Account.fields.industry.options');
|
||||
this.params.translation = 'Account.options.industry';
|
||||
|
||||
Dep.prototype.setup.call(this);
|
||||
}
|
||||
|
||||
});
|
||||
define('crm:views/lead/fields/industry', ['views/fields/enum'], function (Dep) {
|
||||
|
||||
return Dep.extend({});
|
||||
});
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
<h4>{{{title}}}</h4>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="button-container">
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
<button class="btn btn-default" data-action="resetToDefault">{{translate 'Reset to Default' scope='Admin'}}</button>
|
||||
<button class="btn btn-primary btn-xs-wide" data-action="save">{{translate 'Save'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
<button class="btn btn-default btn-xs-wide" data-action="resetToDefault"
|
||||
>{{translate 'Reset to Default' scope='Admin'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if hasSubject}}
|
||||
<div class="subject-field">{{{subjectField}}}</div>
|
||||
{{/if}}
|
||||
<div class="body-field">{{{bodyField}}}</div>
|
||||
<div class="body-field">{{{bodyField}}}</div>
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
<span class="fas fa-paperclip small text-muted" title="{{translate 'hasAttachment' category='fields' scope='Email'}}"></span>
|
||||
</span>
|
||||
{{/if}}
|
||||
{{#unless isRead}}<strong>{{/unless}}
|
||||
<a href="#{{scope}}/view/{{model.id}}" class="link{{#if isImportant}} text-warning{{/if}}{{#if inTrash}} text-muted{{/if}}" data-id="{{model.id}}" title="{{value}}">{{value}}</a>
|
||||
{{#unless isRead}}</strong>{{/unless}}
|
||||
<a
|
||||
href="#{{scope}}/view/{{model.id}}"
|
||||
class="link{{#if isImportant}} text-warning{{/if}}{{#if inTrash}} text-muted{{/if}}{{#unless isRead}} text-bold{{/unless}}"
|
||||
data-id="{{model.id}}"
|
||||
title="{{value}}"
|
||||
>{{value}}</a>
|
||||
|
||||
|
||||
6
client/res/templates/fields/array/list-link.tpl
Normal file
6
client/res/templates/fields/array/list-link.tpl
Normal file
@@ -0,0 +1,6 @@
|
||||
<a
|
||||
href="#{{scope}}/view/{{model.id}}"
|
||||
class="link"
|
||||
data-id="{{model.id}}"
|
||||
title="{{value}}"
|
||||
>{{#if value}}{{{value}}}{{else}}{{translate 'None'}}{{/if}}</a>
|
||||
@@ -970,7 +970,7 @@ function (
|
||||
resolve(options);
|
||||
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
this.requestUserData(data => {
|
||||
options = data;
|
||||
|
||||
@@ -766,7 +766,7 @@
|
||||
return new Promise((resolve, reject) => {
|
||||
this.require(
|
||||
subject,
|
||||
() => resolve(),
|
||||
(...args) => resolve(...args),
|
||||
() => reject()
|
||||
);
|
||||
});
|
||||
|
||||
@@ -599,6 +599,8 @@ define('utils', [], function () {
|
||||
getKeyFromKeyEvent: function (e) {
|
||||
let key = e.code;
|
||||
|
||||
key = keyMap[key] || key;
|
||||
|
||||
if (e.shiftKey) {
|
||||
key = 'Shift+' + key;
|
||||
}
|
||||
@@ -615,6 +617,10 @@ define('utils', [], function () {
|
||||
},
|
||||
};
|
||||
|
||||
const keyMap = {
|
||||
'NumpadEnter': 'Enter',
|
||||
};
|
||||
|
||||
/**
|
||||
* @deprecated Use `Espo.Utils`.
|
||||
*/
|
||||
|
||||
@@ -437,7 +437,7 @@ function (marked, DOMPurify, /** typeof Handlebars */Handlebars) {
|
||||
return value.indexOf(name) !== -1;
|
||||
}
|
||||
|
||||
return value === name;
|
||||
return value === name || !value && !name;
|
||||
};
|
||||
|
||||
options.hash = options.hash || {};
|
||||
|
||||
@@ -739,7 +739,7 @@ define('views/admin/entity-manager/edit', ['view', 'model'], function (Dep, Mode
|
||||
|
||||
if (
|
||||
this.getMetadata()
|
||||
.get(['entityDefs', foreignEntityType, 'fields', item, 'foreingAccessDisabled'])
|
||||
.get(['entityDefs', foreignEntityType, 'fields', item, 'foreignAccessDisabled'])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
define('views/admin/layouts/base', 'view', function (Dep) {
|
||||
define('views/admin/layouts/base', ['view'], function (Dep) {
|
||||
|
||||
return Dep.extend({
|
||||
|
||||
|
||||
@@ -36,10 +36,35 @@ define('views/admin/layouts/bottom-panels-detail', ['views/admin/layouts/side-pa
|
||||
|
||||
TAB_BREAK_KEY: '_tabBreak_{n}',
|
||||
|
||||
setup: function () {
|
||||
Dep.prototype.setup.call(this);
|
||||
|
||||
this.on('update-item', (name, attributes) => {
|
||||
|
||||
|
||||
if (this.isTabName(name)) {
|
||||
let $li = $("#layout ul > li[data-name='" + name + "']");
|
||||
|
||||
$li.find('.left > span')
|
||||
.text(this.composeTabBreakLabel(attributes));
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
composeTabBreakLabel: function (item) {
|
||||
let label = '. . . ' + this.translate('tabBreak', 'fields', 'LayoutManager');
|
||||
|
||||
if (item.tabLabel) {
|
||||
label += ' : ' + item.tabLabel;
|
||||
}
|
||||
|
||||
return label;
|
||||
},
|
||||
|
||||
readDataFromLayout: function (layout) {
|
||||
var panelListAll = [];
|
||||
var labels = {};
|
||||
var params = {};
|
||||
let panelListAll = [];
|
||||
let labels = {};
|
||||
let params = {};
|
||||
|
||||
layout = Espo.Utils.cloneDeep(layout);
|
||||
|
||||
@@ -84,7 +109,7 @@ define('views/admin/layouts/bottom-panels-detail', ['views/admin/layouts/side-pa
|
||||
if (item.tabBreak) {
|
||||
panelListAll.push(name);
|
||||
|
||||
labels[name] = '. . . ' + this.translate('tabBreak', 'fields', 'LayoutManager');
|
||||
labels[name] = this.composeTabBreakLabel(item);
|
||||
|
||||
params[name] = {
|
||||
name: item.name,
|
||||
@@ -254,23 +279,39 @@ define('views/admin/layouts/bottom-panels-detail', ['views/admin/layouts/side-pa
|
||||
},
|
||||
|
||||
onDrop: function () {
|
||||
let tabBreakIndex = 0;
|
||||
let tabBreakIndex = -1;
|
||||
|
||||
let $tabBreak = null;
|
||||
|
||||
this.$el.find('ul.enabled').children().each((i, li) => {
|
||||
let $li = $(li);
|
||||
|
||||
let name = $li.attr('data-name');
|
||||
|
||||
if (this.isTabName(name)) {
|
||||
if (name === this.TAB_BREAK_KEY) {
|
||||
$tabBreak = $li.clone();
|
||||
if (name !== this.TAB_BREAK_KEY) {
|
||||
let itemIndex = parseInt(name.split('_')[2]);
|
||||
|
||||
$li.attr('data-name', this.TAB_BREAK_KEY.slice(0, -3) + tabBreakIndex);
|
||||
if (itemIndex > tabBreakIndex) {
|
||||
tabBreakIndex = itemIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
tabBreakIndex++;
|
||||
tabBreakIndex++;
|
||||
|
||||
this.$el.find('ul.enabled').children().each((i, li) => {
|
||||
let $li = $(li);
|
||||
let name = $li.attr('data-name');
|
||||
|
||||
if (this.isTabName(name) && name === this.TAB_BREAK_KEY) {
|
||||
$tabBreak = $li.clone();
|
||||
|
||||
let realName = this.TAB_BREAK_KEY.slice(0, -3) + tabBreakIndex;
|
||||
|
||||
$li.attr('data-name', realName);
|
||||
|
||||
delete this.itemsData[realName];
|
||||
}
|
||||
});
|
||||
|
||||
@@ -326,9 +367,11 @@ define('views/admin/layouts/bottom-panels-detail', ['views/admin/layouts/side-pa
|
||||
|
||||
newLayout[name] = layout[name];
|
||||
|
||||
if (this.isTabName(name) && this.itemsData[name]) {
|
||||
if (this.isTabName(name) && name !== this.TAB_BREAK_KEY /*&& this.itemsData[name]*/) {
|
||||
let data = this.itemsData[name] || {};
|
||||
|
||||
newLayout[name].tabBreak = true;
|
||||
newLayout[name].tabLabel = this.itemsData[name].tabLabel;
|
||||
newLayout[name].tabLabel = data.tabLabel;
|
||||
}
|
||||
else {
|
||||
delete newLayout[name].tabBreak;
|
||||
|
||||
@@ -26,14 +26,18 @@
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
define('views/email-account/fields/folders', 'views/fields/array', function (Dep) {
|
||||
define('views/email-account/fields/folders', ['views/fields/array'], function (Dep) {
|
||||
|
||||
return Dep.extend({
|
||||
|
||||
getFoldersUrl: 'EmailAccount/action/getFolders',
|
||||
|
||||
setupOptions: function () {
|
||||
this.params.options = ['INBOX'];
|
||||
},
|
||||
|
||||
fetchFolders: function () {
|
||||
return new Promise(function (resolve) {
|
||||
return new Promise(resolve => {
|
||||
var data = {
|
||||
host: this.model.get('host'),
|
||||
port: this.model.get('port'),
|
||||
@@ -52,54 +56,45 @@ define('views/email-account/fields/folders', 'views/fields/array', function (Dep
|
||||
}
|
||||
|
||||
Espo.Ajax.postRequest(this.getFoldersUrl, data)
|
||||
.then(
|
||||
function (folders) {
|
||||
resolve(folders);
|
||||
}.bind(this)
|
||||
)
|
||||
.fail(
|
||||
function (xhr) {
|
||||
Espo.Ui.error(this.translate('couldNotConnectToImap', 'messages', 'EmailAccount'));
|
||||
.then(folders => {
|
||||
resolve(folders);
|
||||
})
|
||||
.catch(xhr =>{
|
||||
Espo.Ui.error(this.translate('couldNotConnectToImap', 'messages', 'EmailAccount'));
|
||||
|
||||
xhr.errorIsHandled = true;
|
||||
xhr.errorIsHandled = true;
|
||||
|
||||
resolve(["INBOX"]);
|
||||
}.bind(this)
|
||||
);
|
||||
}.bind(this));
|
||||
resolve(["INBOX"]);
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
actionAddItem: function () {
|
||||
Espo.Ui.notify(this.translate('loading', 'messages'));
|
||||
|
||||
this.fetchFolders()
|
||||
.then(
|
||||
function (options) {
|
||||
Espo.Ui.notify(false);
|
||||
.then(options => {
|
||||
Espo.Ui.notify(false);
|
||||
|
||||
this.createView( 'addModal', this.addItemModalView, {options: options})
|
||||
.then(
|
||||
function (view) {
|
||||
view.render();
|
||||
this.createView( 'addModal', this.addItemModalView, {options: options})
|
||||
.then(view => {
|
||||
view.render();
|
||||
|
||||
view.once('add', function (item) {
|
||||
this.addValue(item);
|
||||
view.once('add', item =>{
|
||||
this.addValue(item);
|
||||
|
||||
view.close();
|
||||
}.bind(this));
|
||||
view.close();
|
||||
});
|
||||
|
||||
view.once('add-mass', function (items) {
|
||||
items.forEach(function (item) {
|
||||
this.addValue(item);
|
||||
}.bind(this));
|
||||
|
||||
view.close();
|
||||
}.bind(this));
|
||||
}.bind(this)
|
||||
);
|
||||
}.bind(this)
|
||||
);
|
||||
view.once('add-mass', items => {
|
||||
items.forEach(item => {
|
||||
this.addValue(item);
|
||||
});
|
||||
|
||||
view.close();
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user