Merge branch 'master' of ssh://172.20.0.1/var/git/espo/backend
This commit is contained in:
@@ -123,14 +123,14 @@ class Htmlizer
|
||||
if ($item instanceof \StdClass) {
|
||||
$v = json_decode(json_encode($v), true);
|
||||
}
|
||||
if (!is_array($v)) {
|
||||
$v = [];
|
||||
}
|
||||
foreach ($v as $k => $w) {
|
||||
$keyRaw = $k . '_RAW';
|
||||
$v[$keyRaw] = $v[$k];
|
||||
$v[$k] = $this->format($v[$k]);
|
||||
if (is_array($v)) {
|
||||
foreach ($v as $k => $w) {
|
||||
$keyRaw = $k . '_RAW';
|
||||
$v[$keyRaw] = $v[$k];
|
||||
$v[$k] = $this->format($v[$k]);
|
||||
}
|
||||
}
|
||||
|
||||
$newList[] = $v;
|
||||
}
|
||||
$data[$field] = $newList;
|
||||
|
||||
@@ -52,7 +52,13 @@ class Entity extends \Espo\ORM\Entity
|
||||
if (!$this->entityManager->hasRepository($parentType)) return;
|
||||
$repository = $this->entityManager->getRepository($parentType);
|
||||
|
||||
$foreignEntity = $repository->select(['id', 'name'])->where(['id' => $parentId])->findOne();
|
||||
$select = ['id', 'name'];
|
||||
if ($parentType === 'Lead') {
|
||||
$select[] = 'accountName';
|
||||
$select[] = 'emailAddress';
|
||||
$select[] = 'phoneNumber';
|
||||
}
|
||||
$foreignEntity = $repository->select($select)->where(['id' => $parentId])->findOne();
|
||||
if ($foreignEntity) {
|
||||
$this->set($field . 'Name', $foreignEntity->get('name'));
|
||||
}
|
||||
@@ -88,6 +94,11 @@ class Entity extends \Espo\ORM\Entity
|
||||
}
|
||||
|
||||
$defs['select'] = ['id', 'name'];
|
||||
if ($foreignEntityType === 'Lead') {
|
||||
$defs['select'][] = 'accountName';
|
||||
$defs['select'][] = 'emailAddress';
|
||||
$defs['select'][] = 'phoneNumber';
|
||||
}
|
||||
|
||||
$hasType = false;
|
||||
if ($this->hasField($field . 'Types')) {
|
||||
|
||||
@@ -41,7 +41,7 @@ class CategoryTree extends \Espo\Core\ORM\Repositories\RDB
|
||||
$query = $this->getEntityManager()->getQuery();
|
||||
|
||||
$parentId = $entity->get('parentId');
|
||||
$pathsTableName = $query->toDb($entity->getEntityType() . 'Path');
|
||||
$pathsTableName = $query->toDb($query->sanitize($entity->getEntityType()) . 'Path');
|
||||
|
||||
if ($entity->isNew()) {
|
||||
if ($parentId) {
|
||||
@@ -93,7 +93,7 @@ class CategoryTree extends \Espo\Core\ORM\Repositories\RDB
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
$query = $this->getEntityManager()->getQuery();
|
||||
|
||||
$pathsTableName = $query->toDb($entity->getEntityType() . 'Path');
|
||||
$pathsTableName = $query->toDb($query->sanitize($entity->getEntityType()) . 'Path');
|
||||
|
||||
$sql = "DELETE FROM `".$pathsTableName."` WHERE descendor_id = ".$pdo->quote($entity->id)."";
|
||||
$pdo->query($sql);
|
||||
|
||||
@@ -1351,7 +1351,7 @@ class Base
|
||||
$GLOBALS['log']->error("Could not create filter {$filterName} implementation.");
|
||||
return;
|
||||
}
|
||||
$impl->applyFilter($filterName, $result);
|
||||
$impl->applyFilter($this->entityType, $filterName, $result, $this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,13 +62,25 @@ class Cleanup extends \Espo\Core\Jobs\Base
|
||||
$this->cleanupActionHistory();
|
||||
$this->cleanupAuthToken();
|
||||
$this->cleanupUpgradeBackups();
|
||||
$this->cleanupUniqueIds();
|
||||
}
|
||||
|
||||
protected function cleanupJobs()
|
||||
{
|
||||
$query = "DELETE FROM `job` WHERE DATE(modified_at) < '".$this->getCleanupJobFromDate()."' AND status <> 'Pending'";
|
||||
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
|
||||
$query = "DELETE FROM `job` WHERE DATE(modified_at) < ".$pdo->quote($this->getCleanupJobFromDate())." AND status <> 'Pending'";
|
||||
|
||||
$sth = $pdo->prepare($query);
|
||||
$sth->execute();
|
||||
}
|
||||
|
||||
protected function cleanupUniqueIds()
|
||||
{
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
|
||||
$query = "DELETE FROM `unique_id` WHERE terminate_at IS NOT NULL AND terminate_at < ".$pdo->quote(date('Y-m-d H:i:s'))."";
|
||||
|
||||
$sth = $pdo->prepare($query);
|
||||
$sth->execute();
|
||||
}
|
||||
@@ -83,29 +95,35 @@ class Cleanup extends \Espo\Core\Jobs\Base
|
||||
while ($row = $sth->fetch(\PDO::FETCH_ASSOC)) {
|
||||
$id = $row['id'];
|
||||
|
||||
$lastRowsSql = "SELECT id FROM scheduled_job_log_record WHERE scheduled_job_id = '".$id."' ORDER BY created_at DESC LIMIT 0,10";
|
||||
$lastRowsSql = "SELECT id FROM scheduled_job_log_record WHERE scheduled_job_id = ".$pdo->quote($id)." ORDER BY created_at DESC LIMIT 0,10";
|
||||
$lastRowsSth = $pdo->prepare($lastRowsSql);
|
||||
$lastRowsSth->execute();
|
||||
$lastRowIds = $lastRowsSth->fetchAll(\PDO::FETCH_COLUMN, 0);
|
||||
|
||||
$delSql = "DELETE FROM `scheduled_job_log_record`
|
||||
WHERE scheduled_job_id = '".$id."'
|
||||
AND DATE(created_at) < '".$this->getCleanupJobFromDate()."'
|
||||
AND id NOT IN ('".implode("', '", $lastRowIds)."')
|
||||
";
|
||||
$pdo->query($delSql);
|
||||
if (count($lastRowIds)) {
|
||||
foreach ($lastRowIds as $i => $v) {
|
||||
$lastRowIds[$i] = $pdo->quote($v);
|
||||
}
|
||||
$delSql = "DELETE FROM `scheduled_job_log_record`
|
||||
WHERE scheduled_job_id = ".$pdo->quote($id)."
|
||||
AND DATE(created_at) < ".$pdo->quote($this->getCleanupJobFromDate())."
|
||||
AND id NOT IN (".implode(',', $lastRowIds).")
|
||||
";
|
||||
$pdo->query($delSql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function cleanupActionHistory()
|
||||
{
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
|
||||
$period = '-' . $this->getConfig()->get('cleanupActionHistoryPeriod', $this->cleanupActionHistoryPeriod);
|
||||
$datetime = new \DateTime();
|
||||
$datetime->modify($period);
|
||||
|
||||
$query = "DELETE FROM `action_history_record` WHERE DATE(created_at) < '" . $datetime->format('Y-m-d') . "'";
|
||||
$query = "DELETE FROM `action_history_record` WHERE DATE(created_at) < " . $pdo->quote($datetime->format('Y-m-d')) . "";
|
||||
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
$sth = $pdo->prepare($query);
|
||||
$sth->execute();
|
||||
}
|
||||
@@ -116,7 +134,7 @@ class Cleanup extends \Espo\Core\Jobs\Base
|
||||
$datetime = new \DateTime();
|
||||
$datetime->modify($period);
|
||||
|
||||
$query = "DELETE FROM `reminder` WHERE DATE(remind_at) < '" . $datetime->format('Y-m-d') . "'";
|
||||
$query = "DELETE FROM `reminder` WHERE DATE(remind_at) < " . $pdo->quote($datetime->format('Y-m-d')) . "";
|
||||
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
$sth = $pdo->prepare($query);
|
||||
@@ -125,13 +143,14 @@ class Cleanup extends \Espo\Core\Jobs\Base
|
||||
|
||||
protected function cleanupAuthToken()
|
||||
{
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
|
||||
$period = '-' . $this->getConfig()->get('cleanupAuthTokenPeriod', $this->cleanupAuthTokenPeriod);
|
||||
$datetime = new \DateTime();
|
||||
$datetime->modify($period);
|
||||
|
||||
$query = "DELETE FROM `auth_token` WHERE DATE(modified_at) < '" . $datetime->format('Y-m-d') . "' AND is_active = 0";
|
||||
$query = "DELETE FROM `auth_token` WHERE DATE(modified_at) < " . $pdo->quote($datetime->format('Y-m-d')) . " AND is_active = 0";
|
||||
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
$sth = $pdo->prepare($query);
|
||||
$sth->execute();
|
||||
}
|
||||
@@ -334,4 +353,3 @@ class Cleanup extends \Espo\Core\Jobs\Base
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -97,6 +97,21 @@ class Invitations
|
||||
'inviteeType' => $invitee->getEntityType(),
|
||||
'link' => $link
|
||||
));
|
||||
|
||||
if ($entity->get('dateEnd')) {
|
||||
$terminateAt = $entity->get('dateEnd');
|
||||
} else {
|
||||
$dt = new \DateTime();
|
||||
$dt->modify('+1 month');
|
||||
$terminateAt = $dt->format('Y-m-d H:i:s');
|
||||
}
|
||||
|
||||
$uid->set([
|
||||
'targetId' => $entity->id,
|
||||
'targetType' => $entity->getEntityType(),
|
||||
'terminateAt' => $terminateAt
|
||||
]);
|
||||
|
||||
$this->getEntityManager()->saveEntity($uid);
|
||||
|
||||
$emailAddress = $invitee->get('emailAddress');
|
||||
|
||||
@@ -56,7 +56,6 @@ class EventConfirmation extends \Espo\Core\EntryPoints\Base
|
||||
|
||||
if (!$uniqueId) {
|
||||
throw new NotFound();
|
||||
return;
|
||||
}
|
||||
|
||||
$data = $uniqueId->get('data');
|
||||
@@ -70,48 +69,53 @@ class EventConfirmation extends \Espo\Core\EntryPoints\Base
|
||||
if (!empty($eventType) && !empty($eventId) && !empty($inviteeType) && !empty($inviteeId) && !empty($link)) {
|
||||
$event = $this->getEntityManager()->getEntity($eventType, $eventId);
|
||||
$invitee = $this->getEntityManager()->getEntity($inviteeType, $inviteeId);
|
||||
if ($event && $invitee) {
|
||||
$status = 'None';
|
||||
$hookMethodName = 'afterConfirmation';
|
||||
if ($action == 'accept') {
|
||||
$status = 'Accepted';
|
||||
} else if ($action == 'decline') {
|
||||
$status = 'Declined';
|
||||
} else if ($action == 'tentative') {
|
||||
$status = 'Tentative';
|
||||
}
|
||||
|
||||
$data = (object) [
|
||||
'status' => $status
|
||||
];
|
||||
$this->getEntityManager()->getRepository($eventType)->updateRelation($event, $link, $invitee->id, $data);
|
||||
|
||||
$actionData = [
|
||||
'eventName' => $event->get('name'),
|
||||
'eventType' => $event->getEntityType(),
|
||||
'eventId' => $event->id,
|
||||
'dateStart' => $event->get('dateStart'),
|
||||
'action' => $action,
|
||||
'status' => $status,
|
||||
'link' => $link,
|
||||
'inviteeType' => $invitee->getEntityType(),
|
||||
'inviteeId' => $invitee->id
|
||||
];
|
||||
|
||||
$this->getEntityManager()->getHookManager()->process($event->getEntityType(), $hookMethodName, $event, [], $actionData);
|
||||
|
||||
$this->getEntityManager()->getRepository('UniqueId')->remove($uniqueId);
|
||||
|
||||
$runScript = "
|
||||
Espo.require('crm:controllers/event-confirmation', function (Controller) {
|
||||
var controller = new Controller(app.baseController.params, app.getControllerInjection());
|
||||
controller.masterView = app.masterView;
|
||||
controller.doAction('confirmEvent', ".json_encode($actionData).");
|
||||
});
|
||||
";
|
||||
|
||||
$this->getClientManager()->display($runScript);
|
||||
if (!$event || !$invitee) {
|
||||
throw new NotFound();
|
||||
}
|
||||
|
||||
if ($event->get('status') === 'Held' || $event->get('status') === 'Not Held') {
|
||||
throw new NotFound();
|
||||
}
|
||||
|
||||
$status = 'None';
|
||||
$hookMethodName = 'afterConfirmation';
|
||||
if ($action == 'accept') {
|
||||
$status = 'Accepted';
|
||||
} else if ($action == 'decline') {
|
||||
$status = 'Declined';
|
||||
} else if ($action == 'tentative') {
|
||||
$status = 'Tentative';
|
||||
}
|
||||
|
||||
$data = (object) [
|
||||
'status' => $status
|
||||
];
|
||||
$this->getEntityManager()->getRepository($eventType)->updateRelation($event, $link, $invitee->id, $data);
|
||||
|
||||
$actionData = [
|
||||
'eventName' => $event->get('name'),
|
||||
'eventType' => $event->getEntityType(),
|
||||
'eventId' => $event->id,
|
||||
'dateStart' => $event->get('dateStart'),
|
||||
'action' => $action,
|
||||
'status' => $status,
|
||||
'link' => $link,
|
||||
'inviteeType' => $invitee->getEntityType(),
|
||||
'inviteeId' => $invitee->id
|
||||
];
|
||||
|
||||
$this->getEntityManager()->getHookManager()->process($event->getEntityType(), $hookMethodName, $event, [], $actionData);
|
||||
|
||||
$runScript = "
|
||||
Espo.require('crm:controllers/event-confirmation', function (Controller) {
|
||||
var controller = new Controller(app.baseController.params, app.getControllerInjection());
|
||||
controller.masterView = app.masterView;
|
||||
controller.doAction('confirmEvent', ".json_encode($actionData).");
|
||||
});
|
||||
";
|
||||
|
||||
$this->getClientManager()->display($runScript);
|
||||
}
|
||||
|
||||
throw new Error();
|
||||
|
||||
@@ -26,10 +26,26 @@
|
||||
"Education": "Educatie",
|
||||
"Electronics": "Electronice",
|
||||
"Finance": "Finante",
|
||||
"Insurance": "Asigurari"
|
||||
"Insurance": "Asigurari",
|
||||
"Technology": "Tehnologie",
|
||||
"Telecommunications": "Telecomunicații",
|
||||
"Television": "Televiziune",
|
||||
"Testing, Inspection & Certification": "Testare, Inspecție & Certificări",
|
||||
"Transportation": "Transport",
|
||||
"Travel": "Călătorit",
|
||||
"Venture Capital": "Capital de risc",
|
||||
"Wholesale": "Angro",
|
||||
"Water": "Apă"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Account": "Creare cont"
|
||||
"Create Account": "Creare cont",
|
||||
"Copy Billing": "Copiați facturarea",
|
||||
"Set Primary": "Setați primar"
|
||||
},
|
||||
"presetFilters": {
|
||||
"customers": "Clienți",
|
||||
"partners": "Parteneri",
|
||||
"recentlyCreated": "Create recent"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,5 @@
|
||||
{}
|
||||
{
|
||||
"layouts": {
|
||||
"listForAccount": "Listă (pentru Cont)"
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,21 @@
|
||||
{
|
||||
"modes": {
|
||||
"month": "Luna",
|
||||
"week": "Saptamana",
|
||||
"agendaWeek": "Saptamana",
|
||||
"month": "Lună",
|
||||
"week": "Săptămână",
|
||||
"agendaWeek": "Săptămână",
|
||||
"day": "Zi",
|
||||
"agendaDay": "Zi"
|
||||
"agendaDay": "Zi",
|
||||
"timeline": "Cronologie"
|
||||
},
|
||||
"labels": {
|
||||
"Today": "Astazi",
|
||||
"Create": "Creaza"
|
||||
"Today": "Astăzi",
|
||||
"Create": "Crează",
|
||||
"Shared": "Partajat",
|
||||
"Add User": "Adăugare utilizator",
|
||||
"current": "actual",
|
||||
"time": "timp",
|
||||
"User List": "Listă Utiliziator",
|
||||
"Manage Users": "Gestionare Utilizatori",
|
||||
"View Calendar": "Vizualizare Calendar"
|
||||
}
|
||||
}
|
||||
@@ -1,35 +1,49 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"parent": "Parinte",
|
||||
"dateStart": "Data inceput",
|
||||
"dateEnd": "Data terminare",
|
||||
"direction": "Directie",
|
||||
"duration": "Durata",
|
||||
"parent": "Părinte",
|
||||
"dateStart": "Dată început",
|
||||
"dateEnd": "Dată terminare",
|
||||
"direction": "Direcție",
|
||||
"duration": "Durată",
|
||||
"description": "Descriere",
|
||||
"users": "Utilizatori",
|
||||
"contacts": "Contacte",
|
||||
"leads": "Lead-uri"
|
||||
"leads": "Lead-uri",
|
||||
"reminders": "Mementouri",
|
||||
"account": "Cont",
|
||||
"acceptanceStatus": "Starea de acceptare"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Planificat",
|
||||
"Held": "Detinut",
|
||||
"Not Held": "Nedetinut"
|
||||
"Held": "Reținut",
|
||||
"Not Held": "Nereșinut"
|
||||
},
|
||||
"direction": {
|
||||
"Outbound": "Iesire",
|
||||
"Outbound": "Ieșire",
|
||||
"Inbound": "Intrare"
|
||||
},
|
||||
"acceptanceStatus": {
|
||||
"None": "Nici unul",
|
||||
"Accepted": "Acceptat",
|
||||
"Declined": "Respins",
|
||||
"Tentative": "Tentativă"
|
||||
}
|
||||
},
|
||||
"massActions": {
|
||||
"setHeld": "Setează ca reținut",
|
||||
"setNotHeld": "Setează ca nereținut"
|
||||
},
|
||||
"labels": {
|
||||
"Create Call": "Creare Apelare",
|
||||
"Set Held": "Setare detinere",
|
||||
"Set Not Held": "Setare nedetinere",
|
||||
"Send Invitations": "Trimite invitatii"
|
||||
"Set Held": "Setează ca reținut",
|
||||
"Set Not Held": "Setează ca nereținut",
|
||||
"Send Invitations": "Trimite invitații"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Planificat",
|
||||
"held": "Detinut"
|
||||
"held": "Reținut",
|
||||
"todays": "Azi"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,65 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"description": "Descriere",
|
||||
"type": "Tip",
|
||||
"startDate": "Dată începere",
|
||||
"endDate": "Dată terminare",
|
||||
"targetLists": "Liste țintă",
|
||||
"excludingTargetLists": "Excluderea listelor țintă",
|
||||
"sentCount": "Trimis",
|
||||
"openedCount": "Deschis",
|
||||
"clickedCount": "Apăsat",
|
||||
"optedOutCount": "Ales să nu",
|
||||
"revenue": "Venituri",
|
||||
"revenueConverted": "Venituri (convertit)",
|
||||
"budget": "Buget",
|
||||
"budgetConverted": "Buget (convertit)"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Liste Țintă",
|
||||
"excludingTargetLists": "Excluderea listelor țintă",
|
||||
"accounts": "Conturi",
|
||||
"contacts": "Contacte",
|
||||
"leads": "Lead-uri",
|
||||
"opportunities": "Oportunități",
|
||||
"campaignLogRecords": "Jurnal",
|
||||
"massEmails": "Email-uri în Masă",
|
||||
"trackingUrls": "Urmărire URL-uri"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Television": "Televiziune"
|
||||
},
|
||||
"status": {
|
||||
"Planning": "Planificare",
|
||||
"Active": "Activ",
|
||||
"Inactive": "Inactiv",
|
||||
"Complete": "Complet"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Campaign": "Crează Campanie",
|
||||
"Target Lists": "Liste Țintă",
|
||||
"Statistics": "Statistici",
|
||||
"hard": "tare",
|
||||
"soft": "ușor",
|
||||
"Unsubscribe": "Dezabonare",
|
||||
"Mass Emails": "Email-uri în Masă",
|
||||
"Email Templates": "Șabloane Email",
|
||||
"Unsubscribe again": "Dezabonare încă o dată",
|
||||
"Subscribe again": "Abonare încă o dată",
|
||||
"Create Target List": "Creați Listă Țintă"
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Activ"
|
||||
},
|
||||
"messages": {
|
||||
"unsubscribed": "V-ați dezabonat din lista noastră de mail-uri",
|
||||
"subscribedAgain": "V-ați abonat încă o dată."
|
||||
},
|
||||
"tooltips": {
|
||||
"targetLists": "Țintele care ar trebui să primească mesaje.",
|
||||
"excludingTargetLists": "Țintele care nu ar trebui să primească mesaje."
|
||||
}
|
||||
}
|
||||
@@ -1 +1,40 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"action": "Acțiune",
|
||||
"actionDate": "Dată",
|
||||
"data": "Date",
|
||||
"campaign": "Campanie",
|
||||
"parent": "Țintă",
|
||||
"object": "Obiect",
|
||||
"application": "Aplicație",
|
||||
"queueItem": "Elementul de așteptare",
|
||||
"stringData": "Șir Date",
|
||||
"stringAdditionalData": "Șir de Date Adiționale",
|
||||
"isTest": "Este Test"
|
||||
},
|
||||
"links": {
|
||||
"queueItem": "Elementul de așteptare",
|
||||
"parent": "Părinte",
|
||||
"object": "Obiect",
|
||||
"campaign": "Campanie"
|
||||
},
|
||||
"options": {
|
||||
"action": {
|
||||
"Sent": "Trimis",
|
||||
"Opened": "Deschis",
|
||||
"Opted Out": "Ales să nu",
|
||||
"Clicked": "Apăsat",
|
||||
"Lead Created": "Lead-ul a fost creat"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"All": "Tot"
|
||||
},
|
||||
"presetFilters": {
|
||||
"sent": "Trimis",
|
||||
"opened": "Deschis",
|
||||
"optedOut": "Ales să nu",
|
||||
"clicked": "Apăsat",
|
||||
"leadCreated": "Lead-ul a fost creat"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,12 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"urlToUse": "Cod pentru inserare, în locul URL",
|
||||
"campaign": "Campanie"
|
||||
},
|
||||
"links": {
|
||||
"campaign": "Campanie"
|
||||
},
|
||||
"labels": {
|
||||
"Create CampaignTrackingUrl": "Creați Urmărire URL"
|
||||
}
|
||||
}
|
||||
@@ -1,35 +1,54 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"number": "Numar",
|
||||
"number": "Număr",
|
||||
"account": "Cont",
|
||||
"contacts": "Contacte",
|
||||
"priority": "Prioritate",
|
||||
"type": "Tip",
|
||||
"description": "Descriere"
|
||||
"description": "Descriere",
|
||||
"inboundEmail": "Grup Cont Email",
|
||||
"attachments": "Atașamente"
|
||||
},
|
||||
"links": {
|
||||
"inboundEmail": "Grup Cont Email",
|
||||
"account": "Cont",
|
||||
"contact": "Contact (Principal)",
|
||||
"Contacts": "Contacte",
|
||||
"meetings": "Întâlniri",
|
||||
"calls": "Apeluri",
|
||||
"tasks": "Sarcini",
|
||||
"emails": "Email-uri",
|
||||
"articles": "Articole Bază de Cunoștință",
|
||||
"attachments": "Atașamente"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"New": "Nou",
|
||||
"Assigned": "Alocat",
|
||||
"Pending": "In asteptare",
|
||||
"Closed": "Inchis",
|
||||
"Pending": "În așteptare",
|
||||
"Closed": "Închis",
|
||||
"Rejected": "Respins",
|
||||
"Duplicate": "Duplicat"
|
||||
},
|
||||
"priority": {
|
||||
"Low": "Scazut",
|
||||
"High": "Inalt"
|
||||
"Low": "Scăzut",
|
||||
"High": "Înalt"
|
||||
},
|
||||
"type": {
|
||||
"Question": "Intrebare",
|
||||
"Problem": "Problema"
|
||||
"Question": "Întrebare",
|
||||
"Problem": "Problemă"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Case": "Creare Caz"
|
||||
"Create Case": "Creare Caz",
|
||||
"Close": "Închis",
|
||||
"Reject": "Respins",
|
||||
"Closed": "Închis",
|
||||
"Rejected": "Respins"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Deschide",
|
||||
"closed": "Inchis"
|
||||
"open": "Deschis",
|
||||
"closed": "Închis"
|
||||
}
|
||||
}
|
||||
@@ -7,15 +7,46 @@
|
||||
"accounts": "Conturi",
|
||||
"phoneNumber": "Telefon",
|
||||
"accountType": "Tip cont",
|
||||
"doNotCall": "Nu sunati",
|
||||
"address": "Adresa",
|
||||
"description": "Descriere"
|
||||
"doNotCall": "Nu sunați",
|
||||
"address": "Adresă",
|
||||
"opportunityRole": "Rol Oportunitate",
|
||||
"description": "Descriere",
|
||||
"campaign": "Campanie",
|
||||
"targetLists": "Liste Țintă",
|
||||
"targetList": "Listă țintă",
|
||||
"portalUser": "Utilizator Portal",
|
||||
"originalLead": "Lead Original",
|
||||
"acceptanceStatus": "Status Acceptare",
|
||||
"accountIsInactive": "Cont Inactiv",
|
||||
"acceptanceStatusMeetings": "Status Acceptare (Întâlniri)",
|
||||
"acceptanceStatusCalls": "Status Acceptare (Apeluri)"
|
||||
},
|
||||
"links": {
|
||||
"opportunities": "Oportunitati",
|
||||
"cases": "Cazuri"
|
||||
"opportunities": "Oportunități",
|
||||
"cases": "Cazuri",
|
||||
"targetLists": "Liste Țintă",
|
||||
"campaignLogRecords": "Jurnal Campanie",
|
||||
"campaign": "Campanie",
|
||||
"account": "Cont (Principal)",
|
||||
"accounts": "Conturi",
|
||||
"casesPrimary": "Cazuri (Principal)",
|
||||
"tasksPrimary": "Sarcini (extins)",
|
||||
"portalUser": "Utilizator Portal",
|
||||
"originalLead": "Lead Original",
|
||||
"documents": "Documente"
|
||||
},
|
||||
"labels": {
|
||||
"Create Contact": "Creare Contact"
|
||||
},
|
||||
"options": {
|
||||
"opportunityRole": {
|
||||
"": "--Nici unul--",
|
||||
"Decision Maker": "Factor de decizie"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"portalUsers": "Utilizatori Portal",
|
||||
"notPortalUsers": "Nu sunt Utilizatori ai Portalului",
|
||||
"accountActive": "Activ"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,39 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Create Document": "Creați Document",
|
||||
"Details": "Detalii"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"file": "Fișier",
|
||||
"type": "Tip",
|
||||
"publishDate": "Publică Dată",
|
||||
"expirationDate": "Data expirării",
|
||||
"description": "Descriere",
|
||||
"accounts": "Conturi",
|
||||
"folder": "Dosar"
|
||||
},
|
||||
"links": {
|
||||
"accounts": "Conturi",
|
||||
"opportunities": "Oportunități",
|
||||
"folder": "Dosar",
|
||||
"leads": "Lead-uri",
|
||||
"contacts": "Contacte"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Active": "Activ",
|
||||
"Draft": "Schiță",
|
||||
"Expired": "Expirat",
|
||||
"Canceled": "Anulat"
|
||||
},
|
||||
"type": {
|
||||
"": "Nici unul",
|
||||
"License Agreement": "Acord de licențiere"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Activ",
|
||||
"draft": "Schiță"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,10 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Create DocumentFolder": "Creați Dosarul Documentului",
|
||||
"Manage Categories": "Gestionare Dosare",
|
||||
"Documents": "Documente"
|
||||
},
|
||||
"links": {
|
||||
"documents": "Documente"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,10 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Create Lead": "Creați Lead",
|
||||
"Create Contact": "Creați Contact",
|
||||
"Add to Contact": "Adăugați la Contacte",
|
||||
"Add to Lead": "Adăugați la Lead",
|
||||
"Create Task": "Creați Sarcină",
|
||||
"Create Case": "Creați Caz"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,28 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"target": "Țintă",
|
||||
"sentAt": "Dată Trimitere",
|
||||
"attemptCount": "Încercări",
|
||||
"emailAddress": "Adresă Email",
|
||||
"massEmail": "Email în Masă",
|
||||
"isTest": "Este test"
|
||||
},
|
||||
"links": {
|
||||
"target": "Țintă",
|
||||
"massEmail": "Email în Masă"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Pending": "În așteptare",
|
||||
"Sent": "Trimis",
|
||||
"Failed": "Eșuat",
|
||||
"Sending": "Se trimite"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"pending": "În așteptare",
|
||||
"sent": "Trimis",
|
||||
"failed": "Eșuat"
|
||||
}
|
||||
}
|
||||
@@ -2,67 +2,104 @@
|
||||
"links": {
|
||||
"parent": "Părinte",
|
||||
"contacts": "Contacte",
|
||||
"opportunities": "Oportunitati",
|
||||
"opportunities": "Oportunități",
|
||||
"leads": "Lead-uri",
|
||||
"meetings": "Intalniri",
|
||||
"meetings": "Întâlniri",
|
||||
"calls": "Apeluri",
|
||||
"tasks": "Activitati",
|
||||
"emails": "Email-uri"
|
||||
"tasks": "Sarcini",
|
||||
"emails": "Email-uri",
|
||||
"accounts": "Conturi",
|
||||
"cases": "Cazuri",
|
||||
"documents": "Documente",
|
||||
"account": "Cont",
|
||||
"opportunity": "Oportunitate"
|
||||
},
|
||||
"scopeNames": {
|
||||
"Account": "Cont",
|
||||
"Target": "Tinta",
|
||||
"Target": "Țintă",
|
||||
"Opportunity": "Oportunitate",
|
||||
"Meeting": "Intalnire",
|
||||
"Meeting": "Întâlnire",
|
||||
"Call": "Apel",
|
||||
"Task": "Activitate",
|
||||
"Case": "Caz"
|
||||
"Task": "Sarcină",
|
||||
"Case": "Caz",
|
||||
"DocumentFolder": "Dosar Document",
|
||||
"Campaign": "Campanie",
|
||||
"TargetList": "Listă Țintă",
|
||||
"MassEmail": "Email în Masă",
|
||||
"EmailQueueItem": "Email Element de așteptare",
|
||||
"CampaignTrackingUrl": "Urmărire URL",
|
||||
"Activities": "Activități",
|
||||
"KnowledgeBaseArticle": "Atricol Bază de Cunoștințe",
|
||||
"KnowledgeBaseCategory": "Categorie Bază de Cunoștințe",
|
||||
"CampaignLogRecord": "Înregistrare Jurnal Campanie"
|
||||
},
|
||||
"scopeNamesPlural": {
|
||||
"Account": "Conturi",
|
||||
"Contact": "Contacte",
|
||||
"Lead": "Lead-uri",
|
||||
"Target": "Tinte",
|
||||
"Opportunity": "Oportunitati",
|
||||
"Meeting": "Intalniri",
|
||||
"Target": "Ținte",
|
||||
"Opportunity": "Oportunități",
|
||||
"Meeting": "Întâlniri",
|
||||
"Call": "Apeluri",
|
||||
"Task": "Activitati",
|
||||
"Case": "Cazuri"
|
||||
"Task": "Sarcini",
|
||||
"Case": "Cazuri",
|
||||
"Document": "Documente",
|
||||
"DocumentFolder": "Dosare Document",
|
||||
"Campaign": "Campanii",
|
||||
"TargetList": "Liste Țintă",
|
||||
"MassEmail": "Email-uri în Masă",
|
||||
"EmailQueueItem": "Email Element de Așteptare",
|
||||
"CampaignTrackingUrl": "Urmărire URL-uri",
|
||||
"Activities": "Activității",
|
||||
"KnowledgeBaseArticle": "Bază de Cunoștințe",
|
||||
"KnowledgeBaseCategory": "Categorii Bază de Cunoștințe",
|
||||
"CampaignLogRecord": "Înregistrări Jurnal Campanie"
|
||||
},
|
||||
"dashlets": {
|
||||
"Leads": "Lead-urile mele",
|
||||
"Opportunities": "Oportunitatile mele",
|
||||
"Tasks": "Activitatile mele",
|
||||
"Opportunities": "Oportunitățile mele",
|
||||
"Tasks": "Sarcinile mele",
|
||||
"Cases": "Cazurile mele",
|
||||
"OpportunitiesByStage": "Oportunitati in functie de stadiu",
|
||||
"OpportunitiesByLeadSource": "Oportunitati in functie de Sursal Lead-ului",
|
||||
"SalesByMonth": "Vanzari pe luna",
|
||||
"SalesPipeline": "Flux Vanzari"
|
||||
"Calls": "Apelurile mele",
|
||||
"Meetings": "Întâlnirile mele",
|
||||
"OpportunitiesByStage": "Oportunități în funcție de stadiu",
|
||||
"OpportunitiesByLeadSource": "Oportunități în funcție de Sursa Lead-ului",
|
||||
"SalesByMonth": "Vânzări pe luna",
|
||||
"SalesPipeline": "Linie de Vanzari",
|
||||
"Activities": "Activitățiile mele"
|
||||
},
|
||||
"labels": {
|
||||
"Create InboundEmail": "Creare Email intrare",
|
||||
"Activities": "Activitati",
|
||||
"Create InboundEmail": "Creare Email Intrare",
|
||||
"Activities": "Activități",
|
||||
"History": "Istoric",
|
||||
"Attendees": "Participanti",
|
||||
"Schedule Meeting": "Programeaza Intalnire",
|
||||
"Schedule Call": "Programeaza Apel",
|
||||
"Attendees": "Participanți",
|
||||
"Schedule Meeting": "Planifică Întâlnire",
|
||||
"Schedule Call": "Planifică Apel",
|
||||
"Compose Email": "Compune Email",
|
||||
"Log Meeting": "Log Intalnire",
|
||||
"Log Call": "Log Apel",
|
||||
"Archive Email": "Arhiveaza Email",
|
||||
"Create Task": "Creaza Activitate",
|
||||
"Tasks": "Activitati"
|
||||
"Log Meeting": "Jurnal Intalnire",
|
||||
"Log Call": "Jurnal Apel",
|
||||
"Archive Email": "Arhivează Email",
|
||||
"Create Task": "Crează Sarcină",
|
||||
"Tasks": "Activități"
|
||||
},
|
||||
"fields": {
|
||||
"billingAddressCity": "Oras",
|
||||
"addressCity": "Oras",
|
||||
"billingAddressCountry": "Tara",
|
||||
"addressCountry": "Tara",
|
||||
"billingAddressPostalCode": "Code Postal ",
|
||||
"addressPostalCode": "Code Postal ",
|
||||
"billingAddressCity": "Oraș",
|
||||
"addressCity": "Oraș",
|
||||
"billingAddressCountry": "Țara",
|
||||
"addressCountry": "Țara",
|
||||
"billingAddressPostalCode": "Cod Poștal",
|
||||
"addressPostalCode": "Cod Poștal",
|
||||
"billingAddressState": "Stat",
|
||||
"addressState": "Stat",
|
||||
"billingAddressStreet": "Strada",
|
||||
"addressStreet": "Strada"
|
||||
"addressStreet": "Strada",
|
||||
"billingAddressMap": "Hartă",
|
||||
"addressMap": "Hartă",
|
||||
"shippingAddressCity": "Oraș (Livrare)",
|
||||
"shippingAddressStreet": "Stradă (Livrare)",
|
||||
"shippingAddressCountry": "Țară (Livrare)",
|
||||
"shippingAddressState": "Stat (Livrare)",
|
||||
"shippingAddressPostalCode": "Cod Poștal (Livrare)",
|
||||
"shippingAddressMap": "Hartă (Livrare)"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,46 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Create KnowledgeBaseArticle": "Creați Articol",
|
||||
"Any": "Oricare",
|
||||
"Send in Email": "Trimite în Email",
|
||||
"Move Up": "Mută Sus",
|
||||
"Move Down": "Mută Jos",
|
||||
"Move to Top": "Mută la Început",
|
||||
"Move to Bottom": "Mută la Sfârșit"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"type": "Tip",
|
||||
"attachments": "Atașamente",
|
||||
"publishDate": "Publică Dată",
|
||||
"expirationDate": "Data Expirării",
|
||||
"description": "Descriere",
|
||||
"body": "Conținut",
|
||||
"categories": "Categorii",
|
||||
"language": "Limbă",
|
||||
"portals": "Portaluri"
|
||||
},
|
||||
"links": {
|
||||
"cases": "Cazuri",
|
||||
"opportunities": "Oportunități",
|
||||
"categories": "Ctegorii",
|
||||
"portals": "Portaluri"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"In Review": "În revizuire",
|
||||
"Draft": "Schiță",
|
||||
"Archived": "Arhivat",
|
||||
"Published": "Publicat"
|
||||
},
|
||||
"type": {
|
||||
"Article": "Articol"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"portals": "Articolul o să fie disponibil doar în portalurile specificate."
|
||||
},
|
||||
"presetFilters": {
|
||||
"published": "Publicat"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,10 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Create KnowledgeBaseCategory": "Creați Categorie",
|
||||
"Manage Categories": "Gestionare Categorii",
|
||||
"Articles": "Articole"
|
||||
},
|
||||
"links": {
|
||||
"articles": "Articole"
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,8 @@
|
||||
"labels": {
|
||||
"Converted To": "Convertit la",
|
||||
"Create Lead": "Creare Lead",
|
||||
"Convert": "Converteste",
|
||||
"convert": "converteste"
|
||||
"Convert": "Convertește",
|
||||
"convert": "convertește"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
@@ -11,34 +11,54 @@
|
||||
"website": "Site Web",
|
||||
"phoneNumber": "Telefon",
|
||||
"accountName": "Nume Cont",
|
||||
"doNotCall": "Nu sunati",
|
||||
"doNotCall": "Nu sunați",
|
||||
"address": "Adresa",
|
||||
"source": "Sursa",
|
||||
"opportunityAmount": "Suma Oportunitate",
|
||||
"opportunityAmount": "Sumă Oportunitate",
|
||||
"opportunityAmountConverted": "Sumă Oportunitate (convertită)",
|
||||
"description": "Descriere",
|
||||
"createdAccount": "Cont",
|
||||
"createdOpportunity": "Oportunitate"
|
||||
"createdOpportunity": "Oportunitate",
|
||||
"campaign": "Campanie",
|
||||
"targetLists": "Liste Țintă",
|
||||
"targetList": "Listă Țintă",
|
||||
"industry": "Industrie",
|
||||
"acceptanceStatus": "Status Acceptare",
|
||||
"opportunityAmountCurrency": "Valută Sumă Oportunitate",
|
||||
"acceptanceStatusMeetings": "Status Acceptare (Întâlniri)",
|
||||
"acceptanceStatusCalls": "Status Acceptare (Apeluri)"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Liste Țintă",
|
||||
"campaignLogRecords": "Jurnal Campanie",
|
||||
"campaign": "Campanie",
|
||||
"createdAccount": "Cont",
|
||||
"createdOpportunity": "Oportunitate",
|
||||
"cases": "Cazuri",
|
||||
"documents": "Documente"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"New": "Nou",
|
||||
"Assigned": "Alocat",
|
||||
"In Process": "In Proces",
|
||||
"Assigned": "Atribuit",
|
||||
"In Process": "În Proces",
|
||||
"Converted": "Convertit",
|
||||
"Recycled": "Reciclat",
|
||||
"Dead": "Inactiv"
|
||||
},
|
||||
"source": {
|
||||
"": "Nici unul",
|
||||
"Call": "Apel",
|
||||
"Existing Customer": "Client Existent",
|
||||
"Partner": "Partener",
|
||||
"Public Relations": "Relatii Publice",
|
||||
"Public Relations": "Relații Publice",
|
||||
"Web Site": "Site Web",
|
||||
"Campaign": "Campanie",
|
||||
"Other": "Altele"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Activ"
|
||||
"active": "Activ",
|
||||
"converted": "Convertit"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,55 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"storeSentEmails": "Stocați email-urile trimise",
|
||||
"startAt": "Data Începerii",
|
||||
"fromAddress": "Din Adresă",
|
||||
"fromName": "Din Nume",
|
||||
"replyToAddress": "Răspundeți la Adresă",
|
||||
"replyToName": "Răspundeți la Nume",
|
||||
"campaign": "Campanie",
|
||||
"emailTemplate": "Șablon Email",
|
||||
"inboundEmail": "Cont Email",
|
||||
"targetLists": "Liste Țintă",
|
||||
"excludingTargetLists": "Excluderea listelor țintă",
|
||||
"smtpAccount": "Cont SMTP"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Liste Țintă",
|
||||
"excludingTargetLists": "Excluderea listelor țintă",
|
||||
"queueItems": "Elemente de Așteptare",
|
||||
"campaign": "Campanie",
|
||||
"emailTemplate": "Șablon Email",
|
||||
"inboundEmail": "Cont Email"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Draft": "Schiță",
|
||||
"Pending": "În așteptare",
|
||||
"In Process": "În proces",
|
||||
"Complete": "Terminat",
|
||||
"Canceled": "Anulat",
|
||||
"Failed": "Eșuat"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create MassEmail": "Creați Email în Masă",
|
||||
"Send Test": "Trimite Test",
|
||||
"System SMTP": "Sistem SMTP",
|
||||
"system": "sistem",
|
||||
"group": "grup"
|
||||
},
|
||||
"messages": {
|
||||
"selectAtLeastOneTarget": "Selectați cel puțin o țintă.",
|
||||
"testSent": "Email(uri) test care ar trebui să fie trimise"
|
||||
},
|
||||
"tooltips": {
|
||||
"optOutEntirely": "Adresele de email ale destinatarilor care s-au dezabonat, vor fi marcate ca fiind oprite și nu vor mai primi email-uri în masă ",
|
||||
"targetLists": "Țintele care ar trebui să primească mesaje.",
|
||||
"excludingTargetLists": "Țintele care nu ar trebui să primească mesaje.",
|
||||
"storeSentEmails": "Email-urile o să fie stocate în CRM."
|
||||
},
|
||||
"presetFilters": {
|
||||
"complete": "Terminat"
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,49 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"parent": "Parinte",
|
||||
"dateStart": "Data inceput",
|
||||
"dateEnd": "Data terminare",
|
||||
"duration": "Durata",
|
||||
"parent": "Părinte",
|
||||
"dateStart": "Dată Început",
|
||||
"dateEnd": "Dată Terminare",
|
||||
"duration": "Durată",
|
||||
"description": "Descriere",
|
||||
"users": "Utilizatori",
|
||||
"contacts": "Contacte",
|
||||
"leads": "Lead-uri"
|
||||
"leads": "Lead-uri",
|
||||
"reminders": "Mementouri",
|
||||
"account": "Cont",
|
||||
"acceptanceStatus": "Status Acceptare"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Planificat",
|
||||
"Held": "Detinut",
|
||||
"Not Held": "Nedetinut"
|
||||
"Held": "Reținut",
|
||||
"Not Held": "Nereținut"
|
||||
},
|
||||
"acceptanceStatus": {
|
||||
"None": "Nici unul",
|
||||
"Accepted": "Acceptat",
|
||||
"Declined": "Respins",
|
||||
"Tentative": "Tentativă"
|
||||
}
|
||||
},
|
||||
"massActions": {
|
||||
"setHeld": "Setat ca reținut",
|
||||
"setNotHeld": "Setat ca nereținut"
|
||||
},
|
||||
"labels": {
|
||||
"Create Meeting": "Creare Intalnire",
|
||||
"Set Held": "Setare detinere",
|
||||
"Set Not Held": "Setare nedetinere",
|
||||
"Send Invitations": "Trimite invitatii"
|
||||
"Create Meeting": "Creare Întâlnire",
|
||||
"Set Held": "Setat ca reținut",
|
||||
"Set Not Held": "Setat ca nereținut",
|
||||
"Send Invitations": "Trimite Invitații",
|
||||
"on time": "la timp",
|
||||
"before": "înainte"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Planificat",
|
||||
"held": "Detinut"
|
||||
"held": "Reținut",
|
||||
"todays": "Astăzi"
|
||||
},
|
||||
"messages": {
|
||||
"nothingHasBeenSent": "Nu a fost trimis nimic"
|
||||
}
|
||||
}
|
||||
@@ -3,37 +3,48 @@
|
||||
"name": "Nume",
|
||||
"account": "Cont",
|
||||
"stage": "Stadiu",
|
||||
"amount": "Suma",
|
||||
"amount": "Sumă",
|
||||
"probability": "Probabilitate, %",
|
||||
"leadSource": "Sursa Lead",
|
||||
"doNotCall": "Nu sunati",
|
||||
"closeDate": "Data Inchiderii",
|
||||
"leadSource": "Sursă Lead",
|
||||
"doNotCall": "Nu sunați",
|
||||
"closeDate": "Data Închiderii",
|
||||
"contacts": "Contacte",
|
||||
"description": "Descriere"
|
||||
"description": "Descriere",
|
||||
"amountConverted": "Sumă (convertit)",
|
||||
"amountWeightedConverted": "Suma ponderată",
|
||||
"campaign": "Campanie",
|
||||
"originalLead": "Lead Original",
|
||||
"amountCurrency": "Sumă Valută",
|
||||
"contactRole": "Rol Contact"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Contacte"
|
||||
"contacts": "Contacte",
|
||||
"documents": "Documente",
|
||||
"campaign": "Campanie",
|
||||
"originalLead": "Lead Original"
|
||||
},
|
||||
"options": {
|
||||
"stage": {
|
||||
"Prospecting": "Prospectare",
|
||||
"Qualification": "Calificari",
|
||||
"Qualification": "Calificări",
|
||||
"Proposal": "Propunere",
|
||||
"Negotiation": "Negociere",
|
||||
"Needs Analysis": "Necesita Analiza",
|
||||
"Value Proposition": "Valoare Propunere",
|
||||
"Needs Analysis": "Necesită Analiză",
|
||||
"Value Proposition": "Propunere Valoare",
|
||||
"Id. Decision Makers": "Id. Factori de Decizie",
|
||||
"Perception Analysis": "Analiza Perceptiei",
|
||||
"Proposal/Price Quote": "Propunere/Oferta Pret",
|
||||
"Perception Analysis": "Analiză Percepției",
|
||||
"Proposal/Price Quote": "Propunere/Preț Ofertă",
|
||||
"Negotiation/Review": "Negociere/Revizuire",
|
||||
"Closed Won": "Inchide ca Castigat",
|
||||
"Closed Lost": "Inchide ca Pierdut"
|
||||
"Closed Won": "Închide Câștigat",
|
||||
"Closed Lost": "Închide Pierdut"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Opportunity": "Creare Oportunitate"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Deschide"
|
||||
"open": "Deschide",
|
||||
"won": "Câștigat",
|
||||
"lost": "Pierdut"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,5 @@
|
||||
{}
|
||||
{
|
||||
"links": {
|
||||
"articles": "Articole Bază de Cunoștință"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,8 @@
|
||||
{}
|
||||
{
|
||||
"options": {
|
||||
"job": {
|
||||
"ProcessMassEmail": "Trimite Email-uri în Masă",
|
||||
"ControlKnowledgeBaseArticleStatus": "Controlează Statusul Articolelor Bază de Cunoștințe"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +1,30 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"description": "Descriere",
|
||||
"entryCount": "Numără Intrări",
|
||||
"campaigns": "Campanii",
|
||||
"endDate": "Dată Terminare",
|
||||
"targetLists": "Liste Țintă",
|
||||
"includingActionList": "Include",
|
||||
"excludingActionList": "Exclude"
|
||||
},
|
||||
"links": {
|
||||
"accounts": "Conturi",
|
||||
"contacts": "Contacte",
|
||||
"leads": "Lead-uri",
|
||||
"campaigns": "Campanii",
|
||||
"massEmails": "Email-uri în Masă"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Television": "Televiziune"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create TargetList": "Creați Listă Țintă",
|
||||
"Opted Out": "Ales să nu",
|
||||
"Cancel Opt-Out": "Anulează alegerea de ieșire",
|
||||
"Opt-Out": "Aleg să nu"
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,44 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"parent": "Parinte",
|
||||
"dateStart": "Data inceput",
|
||||
"dateEnd": "Data scadenta",
|
||||
"parent": "Părinte",
|
||||
"dateStart": "Dată Începere",
|
||||
"dateEnd": "Dată Scadență",
|
||||
"dateStartDate": "Dată Începere (toată ziua)",
|
||||
"dateEndDate": "Dată Terminare (toată ziua)",
|
||||
"priority": "Prioritate",
|
||||
"description": "Descriere",
|
||||
"isOverdue": "Este Restant"
|
||||
"isOverdue": "Este Restant",
|
||||
"account": "Cont",
|
||||
"dateCompleted": "Dată Terminare",
|
||||
"attachments": "Atașamente",
|
||||
"reminders": "Mementouri"
|
||||
},
|
||||
"links": {
|
||||
"attachments": "Atașamente",
|
||||
"account": "Cont"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Not Started": "Ne inceput",
|
||||
"Started": "Inceput",
|
||||
"Completed": "Completat",
|
||||
"Canceled": "Anulat"
|
||||
"Not Started": "Nu a început",
|
||||
"Started": "Început",
|
||||
"Completed": "Terminat",
|
||||
"Canceled": "Anulat",
|
||||
"Deferred": "Amânat"
|
||||
},
|
||||
"priority": {
|
||||
"Low": "Scazut",
|
||||
"High": "Inalt"
|
||||
"Low": "Scăzut",
|
||||
"High": "Înalt"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Task": "Creaza Activitate"
|
||||
"Create Task": "Crează Sarcine",
|
||||
"Complete": "Terminat"
|
||||
},
|
||||
"presetFilters": {
|
||||
"completed": "Completat"
|
||||
"completed": "Terminat",
|
||||
"deferred": "Amânat",
|
||||
"todays": "Astăzi",
|
||||
"overdue": "Restant"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,10 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"acceptanceStatus": "Stare Acceptare",
|
||||
"acceptanceStatusMeetings": "Stare Acceptare (Întâlniri)",
|
||||
"acceptanceStatusCalls": "Stare Acceptare (Apeluri)"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Liste Țintă"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
[
|
||||
{"name":"name", "link":true},
|
||||
{"name":"entryCount", "width": 25, "notSortable": true}
|
||||
]
|
||||
@@ -58,6 +58,9 @@
|
||||
"rowActionsView": "views/record/row-actions/empty",
|
||||
"select": false,
|
||||
"create": false
|
||||
},
|
||||
"targetLists": {
|
||||
"layout": "listForTarget"
|
||||
}
|
||||
},
|
||||
"filterList": [
|
||||
|
||||
@@ -85,7 +85,8 @@
|
||||
},
|
||||
"targetLists": {
|
||||
"create": false,
|
||||
"rowActionsView": "views/record/row-actions/relationship-unlink-only"
|
||||
"rowActionsView": "views/record/row-actions/relationship-unlink-only",
|
||||
"layout": "listForTarget"
|
||||
}
|
||||
},
|
||||
"boolFilterList": [
|
||||
|
||||
@@ -118,7 +118,8 @@
|
||||
},
|
||||
"targetLists":{
|
||||
"create":false,
|
||||
"rowActionsView":"views/record/row-actions/relationship-unlink-only"
|
||||
"rowActionsView":"views/record/row-actions/relationship-unlink-only",
|
||||
"layout": "listForTarget"
|
||||
}
|
||||
},
|
||||
"filterList":[
|
||||
|
||||
@@ -49,7 +49,7 @@ class Import extends \Espo\Core\ORM\Repositories\RDB
|
||||
{
|
||||
$entityType = $entity->get('entityType');
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
$table = $this->getEntityManager()->getQuery()->toDb($entityType);
|
||||
$table = $this->getEntityManager()->getQuery()->toDb($this->getEntityManager()->getQuery()->sanitize($entityType));
|
||||
|
||||
$part = "0";
|
||||
switch ($link) {
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
"replyTo": "Răspunde la",
|
||||
"replyToString": "Răspunde la (Șir)",
|
||||
"isHtml": "În format Html",
|
||||
"body": "Corp",
|
||||
"bodyPlain": "Corp (Simplu)",
|
||||
"body": "Conținut",
|
||||
"bodyPlain": "Conținut (Simplu)",
|
||||
"subject": "Subiect",
|
||||
"attachments": "Atașamente",
|
||||
"selectTemplate": "Selectează Șablon",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"from": "De la",
|
||||
"to": "Către",
|
||||
"subject": "Subiect",
|
||||
"bodyContains": "Corpul Conține",
|
||||
"bodyContains": "Conținutul Conține",
|
||||
"action": "Acțiune",
|
||||
"isGlobal": "Este Global",
|
||||
"emailFolder": "Dosar"
|
||||
@@ -21,7 +21,7 @@
|
||||
"tooltips": {
|
||||
"name": "Dă-i filtrului un nume descriptiv.",
|
||||
"subject": "Folosește un wildcard *:\n\ntext* - începe cu text,\n*text* - conține text,\n*text - se termină cu text. ",
|
||||
"bodyContains": "Corpul email-ului conține unul dintre cuvintele sau frazele specificate.",
|
||||
"bodyContains": "Conținutul email-ului conține unul dintre cuvintele sau frazele specificate.",
|
||||
"from": "Email-urile trimise de la adresa specificată. Dacă nu este necesar, lasă gol. Poți folosi un wildcard *.",
|
||||
"to": "Email-urile trimise de la adresa specificată. Dacă nu este necesar, lasă gol. Poți folosi un wildcard *.",
|
||||
"isGlobal": "Aplică acest filtru la toate email-urile primite în sistem."
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"isHtml": "În format Html",
|
||||
"body": "Corp",
|
||||
"body": "Conținutul",
|
||||
"subject": "Subiect",
|
||||
"attachments": "Atașamente",
|
||||
"insertField": "Inserează Câmp",
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
"LastViewed": "Ultima Vizualizare"
|
||||
},
|
||||
"labels": {
|
||||
"Misc": "Amestecat",
|
||||
"Merge": "Îmbina",
|
||||
"None": "Nici unul",
|
||||
"Home": "Acasă",
|
||||
@@ -476,24 +477,109 @@
|
||||
"eu_ES": "Bască",
|
||||
"fa_IR": "Persană",
|
||||
"fi_FI": "Finlandeză",
|
||||
"ro_RO": "Romana"
|
||||
"fo_FO": "Feroeză",
|
||||
"fr_CA": "Franceză (Canada)",
|
||||
"fr_FR": "Franceză (Franța)",
|
||||
"ga_IE": "Irlandeză",
|
||||
"gl_ES": "Galiciană",
|
||||
"he_IL": "Ebraică",
|
||||
"hi_IN": "Hindusă",
|
||||
"hr_HR": "Croată",
|
||||
"hu_HU": "Maghiară",
|
||||
"hy_AM": "Armeană",
|
||||
"id_ID": "Indoneziană",
|
||||
"is_IS": "Islandeză",
|
||||
"it_IT": "Italiană",
|
||||
"ja_JP": "Japoneză",
|
||||
"ka_GE": "Georgiană",
|
||||
"km_KH": "Khmeră",
|
||||
"ko_KR": "Coreană",
|
||||
"ku_TR": "Curdă",
|
||||
"lt_LT": "Lituaniană",
|
||||
"lv_LV": "Letonă",
|
||||
"mk_MK": "Macedoneană",
|
||||
"ms_MY": "Malai",
|
||||
"nb_NO": "Norvegiană Bokmål",
|
||||
"nn_NO": "Norvegiană Nynorsk",
|
||||
"ne_NP": "Nepaleză",
|
||||
"nl_NL": "Olandeză",
|
||||
"pl_PL": "Poloneză",
|
||||
"pt_BR": "Portugheză (Brazilia)",
|
||||
"pt_PT": "Portugheză (Portugalia)",
|
||||
"ro_RO": "Română",
|
||||
"ru_RU": "Rusă",
|
||||
"sk_SK": "Slovacă",
|
||||
"sl_SI": "Slovenă",
|
||||
"sq_AL": "Albaneză",
|
||||
"sr_RS": "Sârbă",
|
||||
"sv_SE": "Suedeză",
|
||||
"ta_IN": "Tamilă",
|
||||
"th_TH": "Tailandeză",
|
||||
"tl_PH": "Tagalogă",
|
||||
"tr_TR": "Turcă",
|
||||
"uk_UA": "Ucraineană",
|
||||
"vi_VN": "Vietnameză",
|
||||
"zh_CN": "Chineză Simplificată (China)",
|
||||
"zh_HK": "Chineză Tradițională (Honk Kong)",
|
||||
"zh_TW": "Chineză Tradițională (Taiwan)"
|
||||
},
|
||||
"dateSearchRanges": {
|
||||
"on": "Pornit",
|
||||
"notOn": "Oprit",
|
||||
"after": "Dupa",
|
||||
"before": "Inainte",
|
||||
"between": "Intre",
|
||||
"today": "Astazi"
|
||||
"after": "După",
|
||||
"before": "Înainte",
|
||||
"between": "Între",
|
||||
"today": "Astăzi",
|
||||
"past": "În trecut",
|
||||
"future": "În viitor",
|
||||
"currentMonth": "Luna curentă",
|
||||
"lastMonth": "Luna trecută",
|
||||
"nextMonth": "Luna viitoare",
|
||||
"currentQuarter": "Trimestru actual",
|
||||
"lastQuarter": "Trimestrul trecut",
|
||||
"currentYear": "Anul curent",
|
||||
"lastYear": "Anul trecut",
|
||||
"lastSevenDays": "În ultimele 7 zile",
|
||||
"lastXDays": "Ultimele X zile",
|
||||
"nextXDays": "Următoarele X zile",
|
||||
"ever": "Vreodată",
|
||||
"isEmpty": "Este gol",
|
||||
"olderThanXDays": "Mai vechi decât X zile",
|
||||
"afterXDays": "După X zile"
|
||||
},
|
||||
"searchRanges": {
|
||||
"is": "Este",
|
||||
"isEmpty": "Este gol",
|
||||
"isNotEmpty": "Nu este gol",
|
||||
"isOneOf": "Oricare dintre",
|
||||
"anyOf": "Oricare dintre",
|
||||
"isFromTeams": "Face parte din echipa",
|
||||
"isNot": "Nu este",
|
||||
"isNotOneOf": "Nici unul dintre",
|
||||
"noneOf": "Nici unul dintre"
|
||||
},
|
||||
"varcharSearchRanges": {
|
||||
"equals": "Egal",
|
||||
"like": "Este ca (%)",
|
||||
"notLike": "Nu este ca (%)",
|
||||
"startsWith": "Începe cu",
|
||||
"endsWith": "Se termină cu",
|
||||
"contains": "Conține",
|
||||
"notContains": "Nu Conține",
|
||||
"isEmpty": "Este gol",
|
||||
"isNotEmpty": "Nu este gol",
|
||||
"notEquals": "Nu este egal"
|
||||
},
|
||||
"intSearchRanges": {
|
||||
"equals": "Egal",
|
||||
"notEquals": "Inegal",
|
||||
"greaterThan": "Mai mare de",
|
||||
"lessThan": "Mai mic de",
|
||||
"notEquals": "Nu este egal",
|
||||
"greaterThan": "Mai mare decât",
|
||||
"lessThan": "Mai mic decât",
|
||||
"greaterThanOrEquals": "Mai mare sau egal",
|
||||
"lessThanOrEquals": "Mai mic sau egal",
|
||||
"between": "Intre"
|
||||
"between": "Între",
|
||||
"isEmpty": "Este gol",
|
||||
"isNotEmpty": "Nu este gol"
|
||||
},
|
||||
"autorefreshInterval": {
|
||||
"0": "Nici unul",
|
||||
@@ -504,89 +590,105 @@
|
||||
"0.5": "30 secunde"
|
||||
},
|
||||
"phoneNumber": {
|
||||
"Mobile": "Mobil",
|
||||
"Office": "Birou",
|
||||
"Home": "Acasă",
|
||||
"Other": "Altele"
|
||||
}
|
||||
},
|
||||
"sets": {
|
||||
"summernote": {
|
||||
"NOTICE": "Puteti gasi traducerea aici: https://github.com/HackerWins/summernote/tree/master/lang",
|
||||
"NOTICE": "Puteți găsi traducerea aici: https://github.com/HackerWins/summernote/tree/master/lang",
|
||||
"font": {
|
||||
"underline": "Subliniat",
|
||||
"clear": "Sterge stil font",
|
||||
"height": "Inaltime linie",
|
||||
"name": "Familie Font ",
|
||||
"size": "Marime Font"
|
||||
"strike": "Tăiat",
|
||||
"clear": "Șterge stil font",
|
||||
"height": "Înălțime linie",
|
||||
"name": "Familie Font",
|
||||
"size": "Mărime Font"
|
||||
},
|
||||
"image": {
|
||||
"image": "Imagine",
|
||||
"insert": "Inserare Imagine",
|
||||
"resizeFull": "Redimensionare completa",
|
||||
"resizeFull": "Redimensionare completă",
|
||||
"resizeHalf": "Redimensionare la jumatate",
|
||||
"resizeQuarter": "Redimensionare la sfert",
|
||||
"floatLeft": "Aliniere la stanga",
|
||||
"floatRight": "Aliniere la dreapta",
|
||||
"floatNone": "Fara aliniere",
|
||||
"dragImageHere": "Trage imaginea aici",
|
||||
"selectFromFiles": "Selecteaza din fisiere",
|
||||
"floatLeft": "Plutire la stânga",
|
||||
"floatRight": "Plutire la dreapta",
|
||||
"floatNone": "Fără plutire",
|
||||
"dragImageHere": "Trage o imaginea aici",
|
||||
"selectFromFiles": "Selectează din fișiere",
|
||||
"url": "URL Imagine",
|
||||
"remove": "Stergere imagine"
|
||||
"remove": "Ștergere imagine"
|
||||
},
|
||||
"link": {
|
||||
"insert": "Inserare Link",
|
||||
"unlink": "Dezleaga",
|
||||
"unlink": "Dezleagă",
|
||||
"edit": "Editare",
|
||||
"textToDisplay": "Text de afisat",
|
||||
"openInNewWindow": "Deschidere in fereastra noua"
|
||||
"textToDisplay": "Text de afișat",
|
||||
"url": "Către ce URL să ducă acest link?",
|
||||
"openInNewWindow": "Deschidere în fereastră noua"
|
||||
},
|
||||
"video": {
|
||||
"videoLink": "Link Video ",
|
||||
"insert": "Inserare Video"
|
||||
"videoLink": "Link Video",
|
||||
"insert": "Inserare Video",
|
||||
"url": "URL Video?",
|
||||
"providers": "(YouTube, Vimeo, Vine, Instagram, sau DailyMotion)"
|
||||
},
|
||||
"table": {
|
||||
"table": "Tabel"
|
||||
},
|
||||
"hr": {
|
||||
"insert": "Inserare Linie Orizontala"
|
||||
"insert": "Inserare Linie Orizontală"
|
||||
},
|
||||
"style": {
|
||||
"style": "Stil",
|
||||
"blockquote": "Citat",
|
||||
"blockquote": "Ofertă",
|
||||
"pre": "Cod"
|
||||
},
|
||||
"lists": {
|
||||
"unordered": "Lista neordonata",
|
||||
"ordered": "Lista ordonata"
|
||||
"unordered": "Listă neordonată",
|
||||
"ordered": "Listă ordonată"
|
||||
},
|
||||
"options": {
|
||||
"help": "Ajutor",
|
||||
"fullscreen": "Ecran complet",
|
||||
"fullscreen": "Pe tot ecranul",
|
||||
"codeview": "Vizualizare cod"
|
||||
},
|
||||
"paragraph": {
|
||||
"paragraph": "Paragraf",
|
||||
"outdent": "Neindentat",
|
||||
"indent": "Indentat",
|
||||
"left": "Aliniere stanga",
|
||||
"left": "Aliniere stânga",
|
||||
"center": "Aliniere centru",
|
||||
"right": "Aliniere dreapta",
|
||||
"justify": "Justify complet"
|
||||
},
|
||||
"color": {
|
||||
"recent": "Culoarea recenta",
|
||||
"recent": "Culoarea recentă",
|
||||
"more": "Mai multe culori",
|
||||
"background": "Culoare fundal",
|
||||
"foreground": "Culoare font",
|
||||
"setTransparent": "Setare transparenta",
|
||||
"resetToDefault": "Reinitializare setari"
|
||||
"setTransparent": "Setare transparență",
|
||||
"reset": "Resetare",
|
||||
"resetToDefault": "Resetare la implicit"
|
||||
},
|
||||
"shortcut": {
|
||||
"shortcuts": "Scurtaturi taste",
|
||||
"close": "Inchide",
|
||||
"shortcuts": "Scurtături tastatură",
|
||||
"close": "Închide",
|
||||
"textFormatting": "Formatare Text",
|
||||
"action": "Actiune",
|
||||
"action": "Acțiune",
|
||||
"paragraphFormatting": "Formatare Paragraf",
|
||||
"documentStyle": "Stil Document "
|
||||
"documentStyle": "Stil Document"
|
||||
},
|
||||
"history": {
|
||||
"undo": "Anulează",
|
||||
"redo": "Reface"
|
||||
}
|
||||
}
|
||||
},
|
||||
"themes": {
|
||||
"Hazyblue": "Azur",
|
||||
"HazyblueVertical": "Azur w/ sidebar "
|
||||
}
|
||||
}
|
||||
@@ -1 +1,69 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Return to Import": "Revenire la importare",
|
||||
"Run Import": "Rulează Importarea",
|
||||
"Back": "Înapoi",
|
||||
"Field Mapping": "Câmp mapare",
|
||||
"Default Values": "Valori implicite",
|
||||
"Add Field": "Adăugare Câmp",
|
||||
"Created": "Creat",
|
||||
"Updated": "Actualizat",
|
||||
"Result": "Rezultat",
|
||||
"Show records": "Arată înregistrările",
|
||||
"Remove Duplicates": "Elimină duplicatele",
|
||||
"importedCount": "Importat (numără)",
|
||||
"duplicateCount": "Duplicate (numără)",
|
||||
"updatedCount": "Actualizat (numără)",
|
||||
"Create Only": "Doar crearea",
|
||||
"Create and Update": "Creare % Actualizare",
|
||||
"Update Only": "Doar actualizare",
|
||||
"Update by": "Actualizat de",
|
||||
"Set as Not Duplicate": "Setat ca Nu Duplicat",
|
||||
"File (CSV)": "Fișier (CSV)",
|
||||
"First Row Value": "Prima Valoare Rând",
|
||||
"Skip": "Sări",
|
||||
"Header Row Value": "Valoarea Header Rând",
|
||||
"Field": "Câmp",
|
||||
"What to Import?": "Ce să se importe?",
|
||||
"Entity Type": "Tip Entitate",
|
||||
"What to do?": "Ce să se întâmple?",
|
||||
"Properties": "Proprietăți",
|
||||
"Header Row": "Rând Header",
|
||||
"Person Name Format": "Format Nume Persoană",
|
||||
"Field Delimiter": "Delimitator Câmp",
|
||||
"Date Format": "Format Dată",
|
||||
"Decimal Mark": "Marcaj zecimal",
|
||||
"Text Qualifier": "Textul calificare",
|
||||
"Time Format": "Format timp",
|
||||
"Currency": "Valută",
|
||||
"Preview": "Previzualizare",
|
||||
"Next": "Următorul",
|
||||
"Step 1": "Pasul 1",
|
||||
"Step 2": "Pasul 2",
|
||||
"Double Quote": "Ofertă dublă",
|
||||
"Single Quote": "Ofertă unică",
|
||||
"Imported": "Importat",
|
||||
"Duplicates": "Duplicate",
|
||||
"Skip searching for duplicates": "Sări peste căutarea duplicatelor",
|
||||
"Timezone": "Fus orar"
|
||||
},
|
||||
"messages": {
|
||||
"utf8": "Ar trebui să fie codificat UTF-8",
|
||||
"duplicatesRemoved": "Duplicatele au fost înlăturate",
|
||||
"inIdle": "Executați în modul inactiv (pentru date mari; via crom)"
|
||||
},
|
||||
"fields": {
|
||||
"file": "Fișier",
|
||||
"entityType": "Tip Entitate",
|
||||
"imported": "Înregistrări Importate",
|
||||
"duplicates": "Înregistrări duplicate",
|
||||
"updated": "Înregistrări actualizate"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Failed": "Nu s-a reușit",
|
||||
"In Process": "În Proces",
|
||||
"Complete": "Terminat"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,58 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"team": "Echipa",
|
||||
"emailAddress": "Adresă Email",
|
||||
"team": "Echipa Țintă",
|
||||
"assignToUser": "Atribuie utilizatorului",
|
||||
"host": "Gazda",
|
||||
"host": "Gazdă",
|
||||
"username": "Nume Utilizator",
|
||||
"password": "Parola",
|
||||
"password": "Parolă",
|
||||
"monitoredFolders": "Directoare Monitorizate",
|
||||
"trashFolder": "Gunoi",
|
||||
"trashFolder": "Coș de Gunoi",
|
||||
"createCase": "Creare Caz",
|
||||
"reply": "Raspunde",
|
||||
"reply": "Răspunde",
|
||||
"caseDistribution": "Distribuire Caz",
|
||||
"replyEmailTemplate": "Template Raspuns Email ",
|
||||
"replyFromAddress": "Raspunde cu Adresa",
|
||||
"replyFromName": "Raspunde cu Numele"
|
||||
"replyEmailTemplate": "Șablon Răspuns Email ",
|
||||
"replyFromAddress": "Răspunde din Adresa",
|
||||
"replyToAddress": "Răspunde la Adresa",
|
||||
"replyFromName": "Răspunde din Nume",
|
||||
"targetUserPosition": "Poziția Țintă a Utiliztorului",
|
||||
"fetchSince": "Fetch începând cu",
|
||||
"addAllTeamUsers": "Pentru toți utilizatorii echipei",
|
||||
"teams": "Echipe",
|
||||
"sentFolder": "Trimite dosar",
|
||||
"storeSentEmails": "Stochează Email-uri trimisw",
|
||||
"useImap": "Fetch email-uri",
|
||||
"useSmtp": "Folosește SMTP",
|
||||
"smtpHost": "Gazdă SMTP",
|
||||
"smtpPort": "Port SMTP",
|
||||
"smtpAuth": "Autentificare SMTP",
|
||||
"smtpSecurity": "SEcuritate SMTP",
|
||||
"smtpUsername": "Nume utilizator SMTP",
|
||||
"smtpPassword": "Parolă SMTP",
|
||||
"fromName": "De la Nume",
|
||||
"smtpIsShared": "SMTP este partajat",
|
||||
"smtpIsForMassEmail": "SMTP este din Email-uri în Masă"
|
||||
},
|
||||
"tooltips": {
|
||||
"reply": "Notificați expeditorii că email-urile lor au fost primite.\n\n Doar un email va fi trimis unui anumit destinatar într-o anumită perioadă de timp pentru a preveni looping.",
|
||||
"createCase": "Creați cazul automat din email-urile primite",
|
||||
"replyToAddress": "Specificați adresa de email a acestei căsuțe poștale pentru a redirecționa răspunsurile aici.",
|
||||
"caseDistribution": "Cum o să fie atribuite cazurile. Atribuite direct utilizatorului sau în rândul echipei.",
|
||||
"assignToUser": "Cazurile utilizatorului o să fie atribuite.",
|
||||
"team": "Cazurile echipei o să fie atribuite.",
|
||||
"teams": "Email-urile echipei o să fie atribuite.",
|
||||
"targetUserPosition": "Utilizatoriilor cu poziția specificată o să le fie distribuite cazurile.",
|
||||
"addAllTeamUsers": "Email-urile o să apară în căsuța poștală a tuturor utilizatorilor din echipele specificate.",
|
||||
"monitoredFolders": "Dosarele multiple ar trebui separate prin virgulă",
|
||||
"smtpIsShared": "Dacă este bifat, utiliatorii o să poată trimite email-uri folosind SMTP. Disponibilitatea este controlată de Roluri prin intermediul permisiunilor din Grupul Contului Email.",
|
||||
"smtpIsForMassEmail": "Dacă este bifat, SMTP o să fie disponibil pentru Email în Masă.",
|
||||
"storeSentEmails": "Email-urile trimise o să fie stocate pe server-ul IMAP"
|
||||
},
|
||||
"links": {
|
||||
"filters": "Filtre",
|
||||
"emails": "Email-uri",
|
||||
"assignToUser": "Atribuit Utilizatorului"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
@@ -21,16 +60,16 @@
|
||||
"Inactive": "Inactiv"
|
||||
},
|
||||
"caseDistribution": {
|
||||
"Direct-Assignment": "Atribuire directa",
|
||||
"Least-Busy": "Cel putin, Ocupat"
|
||||
"": "Nici unul",
|
||||
"Direct-Assignment": "Atribuire directă"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create InboundEmail": "Creare Email intrare",
|
||||
"Actions": "Actiuni",
|
||||
"Create InboundEmail": "Creare Cont Email",
|
||||
"Actions": "Acțiuni",
|
||||
"Main": "Principal"
|
||||
},
|
||||
"messages": {
|
||||
"couldNotConnectToImap": "Could neconectat la server-ul IMAP"
|
||||
"couldNotConnectToImap": "Nu s-a putut conecta la server-ul IMAP"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,14 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"enabled": "Activat",
|
||||
"redirectUri": "Redirecționare URI",
|
||||
"apiKey": "Cheie API"
|
||||
},
|
||||
"messages": {
|
||||
"selectIntegration": "Selectați o integrare din meniu",
|
||||
"noIntegrations": "Nu este disponibilă nici o integrare"
|
||||
},
|
||||
"help": {
|
||||
"GoogleMaps": "<p>Obține cheia API <a href=\"https://developers.google.com/maps/documentation/javascript/get-api-key\">here</a>.</p>"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,21 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"executeTime": "Execută la",
|
||||
"attempts": "Încercări rămase",
|
||||
"failedAttempts": "Încercări nereușite",
|
||||
"serviceName": "Serviciu",
|
||||
"method": "Metodă (depreciată)",
|
||||
"methodName": "Metodă",
|
||||
"scheduledJob": "Activitate Planificată",
|
||||
"scheduledJobJob": "Nume Activitate Planificată",
|
||||
"data": "Date"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Pending": "În așteptare",
|
||||
"Success": "Succes",
|
||||
"Running": "Rulează",
|
||||
"Failed": "Eșuat"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1 +1,27 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"width": "Lăţime (%)",
|
||||
"notSortable": "Nu se poate sorta",
|
||||
"align": "Aliniere",
|
||||
"panelName": "Nume Panou",
|
||||
"style": "Stil",
|
||||
"sticked": "Lipit"
|
||||
},
|
||||
"options": {
|
||||
"align": {
|
||||
"left": "Stânga",
|
||||
"right": "Dreapta"
|
||||
},
|
||||
"style": {
|
||||
"default": "Implicit",
|
||||
"success": "Succes",
|
||||
"danger": "Pericol",
|
||||
"warning": "Avertisment",
|
||||
"primary": "Primar"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"New panel": "Panou nou",
|
||||
"Layout": "Aspect"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,41 @@
|
||||
{
|
||||
"fields": {
|
||||
"post": "Publica",
|
||||
"attachments": "Atasamente"
|
||||
"post": "Publică",
|
||||
"attachments": "Atașamente",
|
||||
"targetType": "Țintă",
|
||||
"teams": "Echipe",
|
||||
"users": "Utilizatori",
|
||||
"portals": "Portale",
|
||||
"type": "Tip",
|
||||
"isGlobal": "Este Global",
|
||||
"isInternal": "Este Intern (nu pentru utilizatori interni)",
|
||||
"related": "Legat",
|
||||
"createdByGender": "Creat de genul",
|
||||
"data": "Date",
|
||||
"number": "Număr"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Tot",
|
||||
"posts": "Postări",
|
||||
"updates": "Actualizări"
|
||||
},
|
||||
"options": {
|
||||
"targetType": {
|
||||
"self": "către mine",
|
||||
"users": "către utilizatori anume",
|
||||
"teams": "către echipe anume",
|
||||
"all": "către toți utilizatorii interni",
|
||||
"portals": "către utilizatorii portalului"
|
||||
},
|
||||
"type": {
|
||||
"Post": "Postare"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"writeMessage": "Scrieți mesajul aici"
|
||||
},
|
||||
"links": {
|
||||
"superParent": "Super Părinte",
|
||||
"related": "Legat"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,33 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"portalRoles": "Roluri",
|
||||
"isActive": "Este Activ",
|
||||
"isDefault": "Este Implicit",
|
||||
"tabList": "Listă filă",
|
||||
"quickCreateList": "Crează listă rapidă",
|
||||
"theme": "Temă",
|
||||
"language": "Limbă",
|
||||
"dashboardLayout": "Aspect bord",
|
||||
"dateFormat": "Format dată",
|
||||
"timeFormat": "Format oră",
|
||||
"timeZone": "Fus orar",
|
||||
"weekStart": "Prima zi a săptămânii",
|
||||
"defaultCurrency": "Valută implicită",
|
||||
"customUrl": "URL particularizat",
|
||||
"customId": "ID particularizat"
|
||||
},
|
||||
"links": {
|
||||
"users": "Utilizatori",
|
||||
"portalRoles": "Roluri",
|
||||
"notes": "Note"
|
||||
},
|
||||
"tooltips": {
|
||||
"portalRoles": "Rolurile specificate ale portalului o să fie aplicate la toți utilizatorii portalului."
|
||||
},
|
||||
"labels": {
|
||||
"Create Portal": "Crați portal",
|
||||
"User Interface": "Interfață utilizator",
|
||||
"Settings": "Setări"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,17 @@
|
||||
{}
|
||||
{
|
||||
"fields": {
|
||||
"exportPermission": "Permisiune de exportare"
|
||||
},
|
||||
"links": {
|
||||
"users": "Utilizatori"
|
||||
},
|
||||
"tooltips": {
|
||||
"exportPermission": "Definiți dacă utilizatorii portalului au abilitatea să exporte înregistrările."
|
||||
},
|
||||
"labels": {
|
||||
"Access": "Acces",
|
||||
"Create PortalRole": "Creați Rolul Portalului",
|
||||
"Scope Level": "Nivel Domeniu",
|
||||
"Field Level": "Nivel câmp"
|
||||
}
|
||||
}
|
||||
@@ -1 +1,5 @@
|
||||
{}
|
||||
{
|
||||
"labels": {
|
||||
"Create PortalUser": "Creați Utilizator Portal"
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,46 @@
|
||||
{
|
||||
"fields": {
|
||||
"dateFormat": "Format Data ",
|
||||
"timeFormat": "Format Timp",
|
||||
"timeZone": "Zone Timp",
|
||||
"weekStart": "Prima zi a saptamanii",
|
||||
"dateFormat": "Format Dată",
|
||||
"timeFormat": "Format oră",
|
||||
"timeZone": "Fus orar",
|
||||
"weekStart": "Prima zi a săptămânii",
|
||||
"thousandSeparator": "Separator mii",
|
||||
"decimalMark": "Semn zecimal",
|
||||
"defaultCurrency": "Valuta initiala",
|
||||
"currencyList": "Lista valute",
|
||||
"language": "Limba",
|
||||
"decimalMark": "Marcaj zecimal",
|
||||
"defaultCurrency": "Valută implicită",
|
||||
"currencyList": "Listă valute",
|
||||
"language": "Limbă",
|
||||
"smtpAuth": "Autorizare",
|
||||
"smtpSecurity": "Securitate",
|
||||
"smtpUsername": "Nume Utilizator",
|
||||
"smtpPassword": "Parola",
|
||||
"smtpEmailAddress": "Adresa Email",
|
||||
"exportDelimiter": "Delimitator Export"
|
||||
"smtpPassword": "Parolă",
|
||||
"smtpEmailAddress": "Adresă Email",
|
||||
"exportDelimiter": "Delimitator Exportare",
|
||||
"receiveAssignmentEmailNotifications": "Notificări email pentru sarcină",
|
||||
"receiveMentionEmailNotifications": "Notificări email despre mențiuni în postări",
|
||||
"receiveStreamEmailNotifications": "Notificări email despre postări și actualizare statusului",
|
||||
"autoFollowEntityTypeList": "Auto-urmărire globală",
|
||||
"signature": "Semnătură Email",
|
||||
"dashboardTabList": "Listă filă",
|
||||
"tabList": "Listă filă",
|
||||
"theme": "Temă",
|
||||
"useCustomTabList": "Listă Personalizată Personalizată",
|
||||
"emailReplyToAllByDefault": "Răspunde cu un email la tot, în mod implicit",
|
||||
"dashboardLayout": "Aspect bord",
|
||||
"emailReplyForceHtml": "Răspunde la email în HTML",
|
||||
"followEntityOnStreamPost": "După publicare în Stream, auto-urmărește înregistrarea",
|
||||
"followCreatedEntities": "Auto-urmărire înregistrări create",
|
||||
"followCreatedEntityTypeList": "Auto-urmărire înregistrări create sau anumite tipuri de entitate"
|
||||
},
|
||||
"options": {
|
||||
"weekStart": {
|
||||
"0": "Duminica",
|
||||
"0": "Duminică",
|
||||
"1": "Luni"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Notifications": "Notificări",
|
||||
"User Interface": "Interfață utilizator",
|
||||
"Misc": "Amestecat",
|
||||
"Locale": "Local"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"roles": "Roluri"
|
||||
"roles": "Roluri",
|
||||
"assignmentPermission": "Permisiuni Sarcină",
|
||||
"userPermission": "Permisiuni Utilizator",
|
||||
"portalPermission": "Permisiuni Portal"
|
||||
},
|
||||
"links": {
|
||||
"users": "Utilizatori",
|
||||
@@ -9,24 +12,30 @@
|
||||
},
|
||||
"labels": {
|
||||
"Access": "Acces",
|
||||
"Create Role": "Creare Rol"
|
||||
"Create Role": "Creare Rol",
|
||||
"Scope Level": "Nivel Domeniu",
|
||||
"Field Level": "Nivel Câmp"
|
||||
},
|
||||
"options": {
|
||||
"accessList": {
|
||||
"not-set": "ne setat",
|
||||
"not-set": "nu a fost setat",
|
||||
"enabled": "activat",
|
||||
"disabled": "dezactivat"
|
||||
},
|
||||
"levelList": {
|
||||
"all": "toate",
|
||||
"team": "echipa",
|
||||
"account": "cont",
|
||||
"own": "personal",
|
||||
"no": "nu"
|
||||
"no": "nu",
|
||||
"yes": "da",
|
||||
"not-set": "nu a fost setat"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"read": "Citeste",
|
||||
"read": "Citește",
|
||||
"edit": "Editare",
|
||||
"delete": "Sterge"
|
||||
"delete": "Șterge",
|
||||
"create": "Creați"
|
||||
}
|
||||
}
|
||||
@@ -2,10 +2,13 @@
|
||||
"fields": {
|
||||
"name": "Nume",
|
||||
"job": "Activitate",
|
||||
"scheduling": "Scheduling (crontab notation)"
|
||||
"scheduling": "Planificare"
|
||||
},
|
||||
"links": {
|
||||
"log": "Jurnal"
|
||||
},
|
||||
"labels": {
|
||||
"Create ScheduledJob": "Creare activiate programata"
|
||||
"Create ScheduledJob": "Creați activiate planificată"
|
||||
},
|
||||
"options": {
|
||||
"job": {
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
"useCache": "Foloseste Cache",
|
||||
"dateFormat": "Format Data ",
|
||||
"timeFormat": "Format Timp",
|
||||
"timeZone": "Zone Timp",
|
||||
"weekStart": "Prima zi a saptamanii",
|
||||
"timeZone": "Fus orar",
|
||||
"weekStart": "Prima zi a săptămânii",
|
||||
"thousandSeparator": "Separator mii",
|
||||
"decimalMark": "Semn zecimal",
|
||||
"defaultCurrency": "Valuta initiala",
|
||||
"decimalMark": "Marcaj zecimal",
|
||||
"defaultCurrency": "Valută implicită",
|
||||
"baseCurrency": "Valută de Bază",
|
||||
"currencyList": "Lista valute",
|
||||
"language": "Limba",
|
||||
"companyLogo": "Logo Companie",
|
||||
|
||||
@@ -22,10 +22,27 @@
|
||||
"Preferences": "Preferinte",
|
||||
"Change Password": "Schimbare Parola"
|
||||
},
|
||||
"tooltips": {
|
||||
"portals": "Portalurile la care are acces acest utilizator."
|
||||
},
|
||||
"messages": {
|
||||
"passwordWillBeSent": "Parola va fi trimisa in email-ul utilizatorului.",
|
||||
"accountInfoEmailSubject": "Informatii cont",
|
||||
"accountInfoEmailBody": "Your account information:\n\nUsername: {userName}\nPassword: {password}\n\n{siteUrl}",
|
||||
"passwordChanged": "Parola a fost schimbata"
|
||||
"passwordWillBeSent": "Parola va fi trimisă in email-ul utilizatorului.",
|
||||
"accountInfoEmailSubject": "Informații Acces Utilizator EspoCRM",
|
||||
"accountInfoEmailBody": "Informațiile tale de acces :\n\nUsername: {userName}\nPassword: {password}\n\n{siteUrl}",
|
||||
"passwordChangeLinkEmailSubject": "Cerere Schimbare Parolă",
|
||||
"passwordChanged": "Parola a fost schimbată",
|
||||
"userCantBeEmpty": "Numele de utilizator nu poate fi necompletat",
|
||||
"wrongUsernamePasword": "Nume utilizator/parolă greșit(e).",
|
||||
"emailAddressCantBeEmpty": "Adresa de Email nu poate fi necompletată",
|
||||
"userNameEmailAddressNotFound": "Nume utilizator/Adresă de email nu a(u) fost găsi(e)",
|
||||
"forbidden": "Înterzis, încercați mai târziu",
|
||||
"passwordChangedByRequest": "Parola a fost schimbată.",
|
||||
"setupSmtpBefore": "Pentru a face sistemul să poată trimite parola în email , trebui să setați <a href=\"{url}\">setările SMTP</a>.",
|
||||
"userNameExists": "Acest nume de utilizator există deja"
|
||||
},
|
||||
"options": {
|
||||
"gender": {
|
||||
"": "Nu este setat"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,12 +15,21 @@
|
||||
"createdBy": {
|
||||
"type": "link",
|
||||
"readOnly": true
|
||||
},
|
||||
"terminateAt": {
|
||||
"type": "datetime"
|
||||
},
|
||||
"target": {
|
||||
"type": "linkParent"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"createdBy": {
|
||||
"type": "belongsTo",
|
||||
"entity": "User"
|
||||
},
|
||||
"target": {
|
||||
"type": "belongsToParent"
|
||||
}
|
||||
},
|
||||
"collection": {
|
||||
|
||||
@@ -230,7 +230,12 @@ class Notification extends \Espo\Services\Record
|
||||
|
||||
if (!empty($ids)) {
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
$sql = "UPDATE notification SET `read` = 1 WHERE id IN ('" . implode("', '", $ids) ."')";
|
||||
$idQuotedList = [];
|
||||
foreach ($ids as $id) {
|
||||
$idQuotedList[] = $pdo->quote($id);
|
||||
}
|
||||
|
||||
$sql = "UPDATE notification SET `read` = 1 WHERE id IN (" . implode(', ', $idQuotedList) .")";
|
||||
|
||||
$s = $pdo->prepare($sql);
|
||||
$s->execute();
|
||||
|
||||
@@ -213,8 +213,13 @@ class Stream extends \Espo\Core\Services\Base
|
||||
|
||||
$pdo = $this->getEntityManager()->getPDO();
|
||||
|
||||
$userIdQuotedList = [];
|
||||
foreach ($userIdList as $userId) {
|
||||
$userIdQuotedList[] = $pdo->quote($userId);
|
||||
}
|
||||
|
||||
$sql = "
|
||||
DELETE FROM subscription WHERE user_id IN ('".implode("', '", $userIdList)."') AND entity_id = ".$pdo->quote($entity->id) . "
|
||||
DELETE FROM subscription WHERE user_id IN (".implode(', ', $userIdQuotedList).") AND entity_id = ".$pdo->quote($entity->id) . "
|
||||
";
|
||||
$pdo->query($sql);
|
||||
|
||||
@@ -225,7 +230,7 @@ class Stream extends \Espo\Core\Services\Base
|
||||
";
|
||||
foreach ($userIdList as $userId) {
|
||||
$arr[] = "
|
||||
(".$pdo->quote($entity->id) . ", " . $pdo->quote($entity->getEntityName()) . ", " . $pdo->quote($userId).")
|
||||
(".$pdo->quote($entity->id) . ", " . $pdo->quote($entity->getEntityType()) . ", " . $pdo->quote($userId).")
|
||||
";
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2018 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
|
||||
* Website: http://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
define('dynamic-handler', [], function () {
|
||||
|
||||
var DynamicHandler = function (recordView) {
|
||||
this.recordView = recordView;
|
||||
this.model = recordView.model;
|
||||
}
|
||||
|
||||
_.extend(DynamicHandler.prototype, {
|
||||
|
||||
init: function () {},
|
||||
|
||||
onChange: function (model, o) {}
|
||||
});
|
||||
|
||||
DynamicHandler.extend = Backbone.Router.extend;
|
||||
|
||||
return DynamicHandler;
|
||||
});
|
||||
+5
-6
@@ -51,7 +51,7 @@ Espo.define('utils', [], function () {
|
||||
return hasAccess;
|
||||
},
|
||||
|
||||
checkAccessDataList: function (dataList, acl, user, entity) {
|
||||
checkAccessDataList: function (dataList, acl, user, entity, allowAllForAdmin) {
|
||||
if (!dataList || !dataList.length) {
|
||||
return true;
|
||||
}
|
||||
@@ -76,7 +76,7 @@ Espo.define('utils', [], function () {
|
||||
}
|
||||
}
|
||||
if (item.teamIdList) {
|
||||
if (user) {
|
||||
if (user && !(allowAllForAdmin && user.isAdmin())) {
|
||||
var inTeam = false;
|
||||
user.getLinkMultipleIdList('teams').forEach(function (teamId) {
|
||||
if (~item.teamIdList.indexOf(teamId)) {
|
||||
@@ -87,7 +87,7 @@ Espo.define('utils', [], function () {
|
||||
}
|
||||
}
|
||||
if (item.portalIdList) {
|
||||
if (user) {
|
||||
if (user && !(allowAllForAdmin && user.isAdmin())) {
|
||||
var inPortal = false;
|
||||
user.getLinkMultipleIdList('portals').forEach(function (portalId) {
|
||||
if (~item.portalIdList.indexOf(portalId)) {
|
||||
@@ -98,13 +98,13 @@ Espo.define('utils', [], function () {
|
||||
}
|
||||
}
|
||||
if (item.isPortalOnly) {
|
||||
if (user) {
|
||||
if (user && !(allowAllForAdmin && user.isAdmin())) {
|
||||
if (!user.isPortal()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else if (item.inPortalDisabled) {
|
||||
if (user) {
|
||||
if (user && !(allowAllForAdmin && user.isAdmin())) {
|
||||
if (user.isPortal()) {
|
||||
return false;
|
||||
}
|
||||
@@ -119,7 +119,6 @@ Espo.define('utils', [], function () {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
|
||||
@@ -48,7 +48,12 @@ Espo.define('views/dashlets/fields/records/primary-filter', 'views/fields/enum',
|
||||
this.params.options = [];
|
||||
|
||||
filterList.forEach(function (item) {
|
||||
if (typeof item === 'object' && item.name) {
|
||||
if (typeof item === 'object' && item.name) {
|
||||
if (item.accessDataList) {
|
||||
if (!Espo.Utils.checkAccessDataList(item.accessDataList, this.getAcl(), this.getUser(), null, true)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
this.params.options.push(item.name);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -69,6 +69,9 @@ Espo.define('views/fields/link-multiple-with-role', 'views/fields/link-multiple'
|
||||
|
||||
getDetailLinkHtml: function (id, name) {
|
||||
name = name || this.nameHash[id];
|
||||
if (!name && id) {
|
||||
name = this.translate(this.foreignScope, 'scopeNames');
|
||||
}
|
||||
|
||||
var role = (this.columns[id] || {})[this.columnName] || '';
|
||||
var roleHtml = '';
|
||||
|
||||
@@ -298,6 +298,9 @@ Espo.define('views/fields/link-multiple', 'views/fields/base', function (Dep) {
|
||||
|
||||
getDetailLinkHtml: function (id) {
|
||||
var name = this.nameHash[id] || id;
|
||||
if (!name && id) {
|
||||
name = this.translate(this.foreignScope, 'scopeNames');
|
||||
}
|
||||
return '<a href="#' + this.foreignScope + '/view/' + id + '">' + this.getHelper().stripTags(name) + '</a>';
|
||||
},
|
||||
|
||||
|
||||
@@ -59,12 +59,16 @@ Espo.define('views/fields/link-parent', 'views/fields/base', function (Dep) {
|
||||
searchTypeList: ['is', 'isEmpty', 'isNotEmpty'],
|
||||
|
||||
data: function () {
|
||||
var nameValue = this.model.has(this.nameName) ? this.model.get(this.nameName) : this.model.get(this.idName);
|
||||
if (!nameValue && this.model.get(this.idName) && this.model.get(this.typeName)) {
|
||||
nameValue = this.translate(this.model.get(this.typeName), 'scopeNames');
|
||||
}
|
||||
return _.extend({
|
||||
idName: this.idName,
|
||||
nameName: this.nameName,
|
||||
typeName: this.typeName,
|
||||
idValue: this.model.get(this.idName),
|
||||
nameValue: this.model.has(this.nameName) ? this.model.get(this.nameName) : this.model.get(this.idName),
|
||||
nameValue: nameValue,
|
||||
typeValue: this.model.get(this.typeName),
|
||||
foreignScope: this.foreignScope,
|
||||
foreignScopeList: this.foreignScopeList,
|
||||
|
||||
@@ -61,6 +61,9 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) {
|
||||
if (nameValue === null) {
|
||||
nameValue = this.model.get(this.idName);
|
||||
}
|
||||
if (this.mode === 'detail' && !nameValue && this.model.get(this.idName)) {
|
||||
nameValue = this.translate(this.foreignScope, 'scopeNames');
|
||||
}
|
||||
return _.extend({
|
||||
idName: this.idName,
|
||||
nameName: this.nameName,
|
||||
|
||||
@@ -753,6 +753,41 @@ Espo.define('views/record/detail', ['views/record/base', 'view-record-helper'],
|
||||
this.initDynamicLogic();
|
||||
|
||||
this.setupFieldLevelSecurity();
|
||||
|
||||
this.initDynamicHandler();
|
||||
},
|
||||
|
||||
initDynamicHandler: function () {
|
||||
var dynamicHandlerClassName = this.dynamicHandlerClassName || this.getMetadata().get(['clientDefs', this.model.name, 'dynamicHandler']);
|
||||
if (dynamicHandlerClassName) {
|
||||
this.addReadyCondition(function () {
|
||||
return !!this.dynamicHandler;
|
||||
}.bind(this));
|
||||
|
||||
require(dynamicHandlerClassName, function (DynamicHandler) {
|
||||
this.dynamicHandler = new DynamicHandler(this);
|
||||
|
||||
this.listenTo(this.model, 'change', function (model, o) {
|
||||
if ('onChange' in this.dynamicHandler) {
|
||||
this.dynamicHandler.onChange(model, o);
|
||||
}
|
||||
|
||||
var changedAttributes = model.changedAttributes();
|
||||
for (var attribute in changedAttributes) {
|
||||
var methodName = 'onChange' + Espo.Utils.upperCaseFirst(attribute);
|
||||
if (methodName in this.dynamicHandler) {
|
||||
this.dynamicHandler[methodName](model, changedAttributes[attribute], o);
|
||||
}
|
||||
}
|
||||
}, this);
|
||||
|
||||
if ('init' in this.dynamicHandler) {
|
||||
this.dynamicHandler.init();
|
||||
}
|
||||
|
||||
this.tryReady();
|
||||
}.bind(this));
|
||||
}
|
||||
},
|
||||
|
||||
setupFinal: function () {
|
||||
|
||||
@@ -179,4 +179,42 @@ describe('utils', function () {
|
||||
}
|
||||
], acl, user)).toBe(true);
|
||||
});
|
||||
|
||||
|
||||
it('#checkAccessDataList should check access 3', function () {
|
||||
var user = {
|
||||
isPortal: function () {},
|
||||
getLinkMultipleIdList: function () {},
|
||||
isAdmin: function () {}
|
||||
};
|
||||
var acl = {
|
||||
check: function () {},
|
||||
checkScope: function () {}
|
||||
};
|
||||
var entity = {
|
||||
name: 'Account'
|
||||
};
|
||||
spyOn(user, 'getLinkMultipleIdList').and.callFake(function (link) {
|
||||
if (link === 'teams') {
|
||||
return ['team1', 'team2'];
|
||||
}
|
||||
if (link === 'portals') {
|
||||
return ['portal1', 'portal2'];
|
||||
}
|
||||
});
|
||||
spyOn(user, 'isPortal').and.returnValue(false);
|
||||
spyOn(user, 'isAdmin').and.returnValue(true);
|
||||
|
||||
expect(Utils.checkAccessDataList([
|
||||
{
|
||||
portalIdList: ['portal3']
|
||||
}
|
||||
], acl, user, null, true)).toBe(true);
|
||||
|
||||
expect(Utils.checkAccessDataList([
|
||||
{
|
||||
teamIdList: ['team3']
|
||||
}
|
||||
], acl, user, null, true)).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
"Errors page title": "Erori",
|
||||
"Finish page title": "Instalare finalizata",
|
||||
"Congratulation! Welcome to EspoCRM": "Felicitari! EspoCRM a fost instalat cu succes.",
|
||||
"twitter": "twiter",
|
||||
"Installation Guide": "Instrucțiuni de instalare",
|
||||
"Locale": "Localizare",
|
||||
"Outbound Email Configuration": "Configurari trimitere email",
|
||||
|
||||
Reference in New Issue
Block a user