Compare commits

..

23 Commits

Author SHA1 Message Date
yuri 5f376304ce portal entryPoint changes 2016-02-18 11:41:56 +02:00
yuri dbb29f25ab portal fixes 2016-02-17 17:31:10 +02:00
yuri da059b2589 portal changes 2016-02-17 16:54:53 +02:00
yuri fee64fd5ac fix lang 2016-02-17 12:48:30 +02:00
yuri 85de9f7a6f entryPoint data 2016-02-17 12:47:16 +02:00
yuri 5beb7641af portal folder 2016-02-17 12:35:19 +02:00
yuri 249852c3d7 baseBath 2016-02-16 17:27:45 +02:00
yuri 223d07579b display total count by default 2016-02-16 12:01:20 +02:00
yuri 74fb359740 pdf fontface in config 2016-02-16 10:48:40 +02:00
yuri f7ffadc76f fix template vars sorting 2016-02-16 10:40:19 +02:00
yuri fc03141dee calendar: fix issue with date w/o time 2016-02-16 10:25:38 +02:00
yuri 8d29014811 added cs_CZ lang 2016-02-15 16:18:52 +02:00
yuri 7dcbbcb98d version 2016-02-15 12:36:33 +02:00
yuri 60b9200247 fix vertical theme pagination issue 2016-02-15 12:19:02 +02:00
yuri fa4d1d70d5 naming fix 2016-02-15 12:01:05 +02:00
yuri de6cc1f9bb currency rounding 2016-02-15 11:52:20 +02:00
yuri 5fb6abe0e1 keep history in converted laed 2016-02-15 11:41:38 +02:00
yuri 94073b8aad account filters layout change 2016-02-15 11:16:40 +02:00
yuri 0e83e21aa0 use wildcard in address search 2016-02-15 11:14:56 +02:00
yuri 63bbf72942 fix company logo 403 error 2016-02-15 11:12:54 +02:00
yuri dbaa41b161 refresh list view after create / edit 2016-02-15 10:53:25 +02:00
yuri ed673dbe0d fix portal isDefault 2016-02-15 10:39:18 +02:00
yuri d54ccb0c9e fix config 2016-02-12 18:40:23 +02:00
873 changed files with 2480 additions and 251 deletions
+6 -7
View File
@@ -6,15 +6,14 @@
/data/config.php
/build
/node_modules
/client
/test.php
/main.html
/frontend/client/css/espo.css
/frontend/client/css/espo-vertical.css
/frontend/client/css/sakura.css
/frontend/client/css/sakura-vertical.css
/frontend/client/css/violet.css
/frontend/client/css/violet-vertical.css
/client/css/espo.css
/client/css/espo-vertical.css
/client/css/sakura.css
/client/css/sakura-vertical.css
/client/css/violet.css
/client/css/violet-vertical.css
/tests/testData/cache/*
composer.phar
vendor/
+11 -10
View File
@@ -65,7 +65,7 @@ module.exports = function (grunt) {
yuicompress: true,
},
files: {
'frontend/client/css/espo.css': 'frontend/less/espo/main.less',
'client/css/espo.css': 'frontend/less/espo/main.less',
}
},
espoVertical: {
@@ -73,7 +73,7 @@ module.exports = function (grunt) {
yuicompress: true,
},
files: {
'frontend/client/css/espo-vertical.css': 'frontend/less/espo-vertical/main.less',
'client/css/espo-vertical.css': 'frontend/less/espo-vertical/main.less',
}
},
sakura: {
@@ -81,7 +81,7 @@ module.exports = function (grunt) {
yuicompress: true,
},
files: {
'frontend/client/css/sakura.css': 'frontend/less/sakura/main.less',
'client/css/sakura.css': 'frontend/less/sakura/main.less',
}
},
sakuraVertical: {
@@ -89,7 +89,7 @@ module.exports = function (grunt) {
yuicompress: true,
},
files: {
'frontend/client/css/sakura-vertical.css': 'frontend/less/sakura-vertical/main.less',
'client/css/sakura-vertical.css': 'frontend/less/sakura-vertical/main.less',
}
},
violet: {
@@ -97,7 +97,7 @@ module.exports = function (grunt) {
yuicompress: true,
},
files: {
'frontend/client/css/violet.css': 'frontend/less/violet/main.less',
'client/css/violet.css': 'frontend/less/violet/main.less',
}
},
violetVertical: {
@@ -105,7 +105,7 @@ module.exports = function (grunt) {
yuicompress: true,
},
files: {
'frontend/client/css/violet-vertical.css': 'frontend/less/violet-vertical/main.less',
'client/css/violet-vertical.css': 'frontend/less/violet-vertical/main.less',
}
}
},
@@ -113,7 +113,7 @@ module.exports = function (grunt) {
minify: {
files: {
'build/tmp/client/css/espo.css': [
'frontend/client/css/espo.css',
'client/css/espo.css',
]
}
},
@@ -124,13 +124,13 @@ module.exports = function (grunt) {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
},
'build/tmp/client/espo.min.js': jsFilesToMinify.map(function (item) {
return 'frontend/' + item;
return '' + item;
})
},
copy: {
frontendFolders: {
expand: true,
cwd: 'frontend/client',
cwd: 'client',
src: [
'src/**',
'res/**',
@@ -151,7 +151,7 @@ module.exports = function (grunt) {
frontendLib: {
expand: true,
dot: true,
cwd: 'frontend/client/lib',
cwd: 'client/lib',
src: '**',
dest: 'build/tmp/client/lib/',
},
@@ -164,6 +164,7 @@ module.exports = function (grunt) {
'custom/**',
'data/.data',
'install/**',
'portal/**',
'vendor/**',
'html/**',
'bootstrap.php',
-4
View File
@@ -28,12 +28,8 @@ Never update composer dependencies if you are going to contribute code back.
Now you can build. Build will create compiled css files.
If your repository is accessible via a web server then you can run EspoCRM by url `http://PROJECT_URL/frontend`.
To compose a proper config.php and populate database you can run install by opening `http(s)://{YOUR_CRM_URL}/install` location in a browser. Then open `data/config.php` file and add `isDeveloperMode => true`.
### How to build
You need to have nodejs and Grunt CLI installed.
+5 -1
View File
@@ -29,7 +29,11 @@
require_once('../../../bootstrap.php');
$portalId = explode('/', $_SERVER['REQUEST_URI'])[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1];
if (!empty($_GET['portalId'])) {
$portalId = $_GET['portalId'];
} else {
$portalId = explode('/', $_SERVER['REQUEST_URI'])[count(explode('/', $_SERVER['SCRIPT_NAME'])) - 1];
}
$app = new \Espo\Core\Portal\Application($portalId);
$app->run();
+4
View File
@@ -40,6 +40,10 @@ class Attachment extends \Espo\Core\Acl\Base
return true;
}
if ($entity->get('parentType') === 'Settings') {
return true;
}
$parent = null;
$hasParent = false;
if ($entity->get('parentId') && $entity->get('parentType')) {
@@ -40,6 +40,10 @@ class Attachment extends \Espo\Core\AclPortal\Base
return true;
}
if ($entity->get('parentType') === 'Settings') {
return true;
}
$parent = null;
$hasParent = false;
if ($entity->get('parentId') && $entity->get('parentType')) {
@@ -28,6 +28,7 @@
************************************************************************/
namespace Espo\Controllers;
use \Espo\Core\Exceptions\Error;
use \Espo\Core\Exceptions\Forbidden;
use \Espo\Core\Exceptions\BadRequest;
+41 -7
View File
@@ -93,7 +93,7 @@ class Application
$this->getContainer()->get('clientManager')->display();
}
public function runEntryPoint($entryPoint)
public function runEntryPoint($entryPoint, $data = array(), $final = false)
{
if (empty($entryPoint)) {
throw new \Error();
@@ -102,18 +102,27 @@ class Application
$slim = $this->getSlim();
$container = $this->getContainer();
$slim->get('/', function() {});
$slim->post('/', function() {});
$slim->any('.*', function() {});
$entryPointManager = new \Espo\Core\EntryPointManager($container);
try {
$auth = new \Espo\Core\Utils\Auth($this->container, $entryPointManager->checkNotStrictAuth($entryPoint));
$apiAuth = new \Espo\Core\Utils\Api\Auth($auth, $entryPointManager->checkAuthRequired($entryPoint), true);
$authRequired = $entryPointManager->checkAuthRequired($entryPoint);
$authNotStrict = $entryPointManager->checkNotStrictAuth($entryPoint);
if ($authRequired && !$authNotStrict) {
if (!$final && $portalId = $this->detectedPortalId()) {
$app = new \Espo\Core\Portal\Application($portalId);
$app->setBasePath($this->getBasePath());
$app->runEntryPoint($entryPoint, $data, true);
exit;
}
}
$auth = new \Espo\Core\Utils\Auth($this->container, $authNotStrict);
$apiAuth = new \Espo\Core\Utils\Api\Auth($auth, $authRequired, true);
$slim->add($apiAuth);
$slim->hook('slim.before.dispatch', function () use ($entryPoint, $entryPointManager, $container) {
$entryPointManager->run($entryPoint);
$slim->hook('slim.before.dispatch', function () use ($entryPoint, $entryPointManager, $container, $data) {
$entryPointManager->run($entryPoint, $data);
});
$slim->run();
@@ -289,5 +298,30 @@ class Application
$classLoader->register(true);
}
public function setBasePath($basePath)
{
$this->getContainer()->get('clientManager')->setBasePath($basePath);
}
public function getBasePath()
{
return $this->getContainer()->get('clientManager')->getBasePath();
}
public function detectedPortalId()
{
if (!empty($_GET['portalId'])) {
return $_GET['portalId'];
}
if (!empty($_COOKIE['auth-token'])) {
$token = $this->getContainer()->get('entityManager')->getRepository('AuthToken')->where(array('token'=>$_COOKIE['auth-token']))->findOne();
if ($token && $token->get('portalId')) {
return $token->get('portalId');
}
}
return null;
}
}
+2 -2
View File
@@ -90,7 +90,7 @@ class EntryPointManager
return $className::$notStrictAuth;
}
public function run($name)
public function run($name, $data = array())
{
$className = $this->getClassName($name);
if (!$className) {
@@ -98,7 +98,7 @@ class EntryPointManager
}
$entryPoint = new $className($this->container);
$entryPoint->run();
$entryPoint->run($data);
}
protected function getClassName($name)
@@ -106,7 +106,5 @@ abstract class Base
$this->container = $container;
}
abstract public function run();
}
-18
View File
@@ -39,33 +39,19 @@ class Slim extends \Slim\Slim
*/
public function run()
{
//set_error_handler(array('\Slim\Slim', 'handleErrors')); //Espo: no needs to use this handler
//Apply final outer middleware layers
if ($this->config('debug')) {
//Apply pretty exceptions only in debug to avoid accidental information leakage in production
//$this->add(new \Slim\Middleware\PrettyExceptions()); //Espo: no needs to use this handler
}
//Invoke middleware and application stack
$this->middleware[0]->call();
//Fetch status, header, and body
list($status, $headers, $body) = $this->response->finalize();
// Serialize cookies (with optional encryption)
\Slim\Http\Util::serializeCookies($headers, $this->response->cookies, $this->settings);
//Send headers
if (headers_sent() === false) {
//Send status
if (strpos(PHP_SAPI, 'cgi') === 0) {
header(sprintf('Status: %s', \Slim\Http\Response::getMessageForCode($status)));
} else {
header(sprintf('HTTP/%s %s', $this->config('http.version'), \Slim\Http\Response::getMessageForCode($status)));
}
//Send headers
foreach ($headers as $name => $value) {
$hValues = explode("\n", $value);
foreach ($hValues as $hVal) {
@@ -74,12 +60,9 @@ class Slim extends \Slim\Slim
}
}
//Send body, but only if it isn't a HEAD request
if (!$this->request->isHead()) {
echo $body;
}
//restore_error_handler(); //Espo: no needs to use this handler
}
public function printError($error, $status)
@@ -87,5 +70,4 @@ class Slim extends \Slim\Slim
echo static::generateTemplateMarkup($status, '<p>'.$error.'</p><a href="' . $this->request->getRootUri() . '/">Visit the Home Page</a>');
}
}
@@ -41,6 +41,8 @@ class ClientManager
protected $runScript = "app.start();";
protected $basePath = '';
public function __construct(Config $config, ThemeManager $themeManager)
{
$this->config = $config;
@@ -57,6 +59,16 @@ class ClientManager
return $this->config;
}
public function setBasePath($basePath)
{
$this->basePath = $basePath;
}
public function getBasePath()
{
return $this->basePath;
}
public function display($runScript = null, $htmlFilePath = null, $vars = array())
{
if (is_null($runScript)) {
@@ -80,6 +92,7 @@ class ClientManager
$html = str_replace('{{useCache}}', $this->getConfig()->get('useCache') ? 'true' : 'false' , $html);
$html = str_replace('{{stylesheet}}', $this->getThemeManager()->getStylesheet(), $html);
$html = str_replace('{{runScript}}', $runScript , $html);
$html = str_replace('{{basePath}}', $this->basePath , $html);
echo $html;
exit;
+11 -1
View File
@@ -53,6 +53,13 @@ class Config
*/
protected $adminItems = array();
protected $associativeArrayAttributeList = [
'currencyRates',
'database',
'logger',
'defaultPermissions',
];
/**
* Contains content of config
@@ -124,6 +131,9 @@ class Config
}
foreach ($name as $key => $value) {
if (in_array($key, $this->associativeArrayAttributeList) && is_object($value)) {
$value = (array) $value;
}
$this->data[$key] = $value;
if (!$dontMarkDirty) {
$this->changedData[$key] = $value;
@@ -244,7 +254,7 @@ class Config
$values = array();
foreach ($data as $key => $item) {
if (!in_array($key, $restrictItems)) {
$values[$key]= $item;
$values[$key] = $item;
}
}
@@ -63,6 +63,7 @@ return array (
'smtpPassword' => '',
'languageList' => [
'en_US',
'cs_CZ',
'de_DE',
'es_ES',
'fr_FR',
@@ -112,6 +113,7 @@ return array (
'authTokenLifetime' => 0,
'authTokenMaxIdleTime' => 120,
'userNameRegularExpression' => '[^a-z0-9\-@_\.\s]',
'displayListViewRecordCount' => true,
'dashboardLayout' => [
(object) [
'name' => 'My Espo',
+1 -1
View File
@@ -36,7 +36,7 @@ use \Espo\Core\Exceptions\Error;
class Avatar extends Image
{
public static $authRequired = true;
public static $authRequired = false;
public static $notStrictAuth = true;
+4 -1
View File
@@ -37,10 +37,12 @@ class Portal extends \Espo\Core\EntryPoints\Base
{
public static $authRequired = false;
public function run()
public function run($data = array())
{
if (!empty($_GET['id'])) {
$id = $_GET['id'];
} else if (!empty($data['id'])) {
$id = $data['id'];
} else {
$id = $this->getConfig()->get('defaultPortalId');
if (!$id) {
@@ -49,6 +51,7 @@ class Portal extends \Espo\Core\EntryPoints\Base
}
$application = new \Espo\Core\Portal\Application($id);
$application->setBasePath($this->getContainer()->get('clientManager')->getBasePath());
$application->runClient();
}
}
@@ -0,0 +1,73 @@
{
"fields": {
"name": "Název",
"emailAddress": "Email",
"website": "Web",
"phoneNumber": "Telefon",
"billingAddress": "Fakturační adresa",
"shippingAddress": "Doručovací adresa",
"description": "Popis",
"sicCode": "IČ",
"industry": "Průmysl",
"type": "Typ",
"contactRole": "Pozice",
"campaign": "Kampaň"
},
"links": {
"contacts": "Kontakty",
"opportunities": "Případy",
"cases": "Události",
"documents": "Dokumenty",
"meetingsPrimary": "Schůzky (rozšířené)",
"callsPrimary": "Volání (rozšířené)",
"tasksPrimary": "Úkoly (rozšířené)",
"emailsPrimary": "Emaily (rozšířené)",
"targetLists": "Cílové seznamy",
"campaignLogRecords": "Log kampaně",
"campaign": "Kampaň"
},
"options": {
"type": {
"Customer": "Zákazník",
"Investor": "Investor",
"Partner": "Partner",
"Reseller": "Prodejce"
},
"industry": {
"Agriculture": "Zeměděltví",
"Advertising": "Reklama",
"Apparel & Accessories": "Oblečení a doplňky",
"Automotive": "Automotive",
"Banking": "Bankovnictví",
"Biotechnology": "Biotechnologie",
"Chemical": "Chemie",
"Computer": "Počítače",
"Education": "Vzdělání",
"Electronics": "Elektronika",
"Entertainment & Leisure": "Zábava a volný čas",
"Finance": "Finance",
"Food & Beverage": "Stravování a nápoje",
"Grocery": "Potraviny",
"Insurance": "Pojištění",
"Legal": "Právo",
"Publishing": "Vydavatelství",
"Real Estate": "Nemovitosti",
"Service": "Služby",
"Sports": "Sport",
"Software": "Software",
"Technology": "Technologie",
"Telecommunications": "Telekomunikace",
"Television": "TV",
"Transportation": "Doprava",
"Venture Capital": "Rizikový kapitál"
}
},
"labels": {
"Create Account": "Vytvořit organizaci",
"Copy Billing": "Zkopírovat fakturační údaje"
},
"presetFilters": {
"customers": "Zákazníci",
"partners": "Partneři"
}
}
@@ -0,0 +1,6 @@
{
"layouts": {
"detailConvert": "Konvertovat stopu",
"listForAccount": "Seznam (pro organizace)"
}
}
@@ -0,0 +1,13 @@
{
"modes": {
"month": "Měsíc",
"week": "Týden",
"day": "Den",
"agendaWeek": "Týden",
"agendaDay": "Den"
},
"labels": {
"Today": "Dnes",
"Create": "Vytvořit"
}
}
@@ -0,0 +1,51 @@
{
"fields": {
"name": "Název",
"parent": "Rodič",
"status": "Status",
"dateStart": "Datum zahájení",
"dateEnd": "Datum ukončení",
"direction": "Směr",
"duration": "Trvání",
"description": "Popis",
"users": "Uživatelé",
"contacts": "Kontakty",
"leads": "Stopy",
"reminders": "Připomenutí",
"account": "Organizace"
},
"links": {
},
"options": {
"status": {
"Planned": "Plánovaný",
"Held": "Uskutečněný",
"Not Held": "Neuskutečněný"
},
"direction": {
"Outbound": "Odchozí",
"Inbound": "Příchozí"
},
"acceptanceStatus": {
"None": "None",
"Accepted": "Přijatý",
"Declined": "Odmítnutý",
"Tentative": "Předběžný"
}
},
"massActions": {
"setHeld": "Nastavit jako uskutečněný",
"setNotHeld": "Nastavit jako neuskutečněný"
},
"labels": {
"Create Call": "Vytvořit volání",
"Set Held": "Nastavit jako uskutečněný",
"Set Not Held": "Nastavit jako neuskutečněný",
"Send Invitations": "Poslat pozvánky"
},
"presetFilters": {
"planned": "Plánovaný",
"held": "Uskutečněný",
"todays": "Dnešní"
}
}
@@ -0,0 +1,55 @@
{
"fields": {
"name": "Název",
"description": "Popis",
"status": "Status",
"type": "Typ",
"startDate": "Datum zahájení",
"endDate": "Datum ukončení",
"targetLists": "Cílové seznamy",
"sentCount": "Poslané",
"openedCount": "Otevřené",
"clickedCount": "Kliknuté",
"optedOutCount": "Odhlášené",
"bouncedCount": "Odmítnuté",
"hardBouncedCount": "Tvrdě odmítnuté",
"softBouncedCount": "Měkce odmítnuté",
"leadCreatedCount": "Vytvořených stop",
"revenue": "Příjem",
"revenueConverted": "příjem (konvertováno)"
},
"links": {
"targetLists": "Cílové seznamy",
"accounts": "Organizace",
"contacts": "Kontakty",
"leads": "Stopy",
"opportunities": "Případy",
"campaignLogRecords": "Log"
},
"options": {
"type": {
"Email": "Email",
"Web": "Web",
"Television": "TV",
"Radio": "Rádio",
"Newsletter": "Newsletter",
"Mail": "Email"
},
"status": {
"Planning": "Plánované",
"Active": "Aktivní",
"Inactive": "Neaktivní",
"Complete": "Kompletní"
}
},
"labels": {
"Create Campaign": "Vytvořit kampaň",
"Target Lists": "Cílové seznamy",
"Statistics": "Statistiky",
"hard": "těžký",
"soft": "měkký"
},
"presetFilters": {
"active": "Aktivní"
}
}
@@ -0,0 +1,24 @@
{
"fields": {
"action": "Akce",
"actionDate": "Datum",
"data": "Data",
"campaign": "Kampaň",
"parent": "Cíl",
"object": "Objekt",
"application": "Aplikace"
},
"options": {
"action": {
"Sent": "Poslané",
"Opened": "Otevřené",
"Opted Out": "Odhlášené",
"Bounced": "Odmítnuté",
"Clicked": "Kliknuté",
"Lead Created": "Vytvořeno stop"
}
},
"labels": {
"All": "Vše"
}
}
@@ -0,0 +1,42 @@
{
"fields": {
"name": "Název",
"number": "Číslo",
"status": "Status",
"account": "Organizace",
"contact": "Kontakt",
"priority": "Priorita",
"type": "Typ",
"description": "Popis"
},
"links": {
},
"options": {
"status": {
"New": "Nový",
"Assigned": "Přiřazený",
"Pending": "Čekající",
"Closed": "Uzavřený",
"Rejected": "Odmítnutý",
"Duplicate": "Duplikovaný"
},
"priority" : {
"Low": "Malá",
"Normal": "Normální",
"High": "Vysoká",
"Urgent": "Urgentní"
},
"type": {
"Question": "Otázka",
"Incident": "Incident",
"Problem": "Problém"
}
},
"labels": {
"Create Case": "Vytvořit událost"
},
"presetFilters": {
"open": "Otevřený",
"closed": "Zavřený"
}
}
@@ -0,0 +1,37 @@
{
"fields": {
"name": "Název",
"emailAddress": "Email",
"title": "Pozice",
"account": "Organizace",
"accounts": "Organizace",
"phoneNumber": "Telefon",
"accountType": "Typ organizace",
"doNotCall": "Nevolat",
"address": "Adresa",
"opportunityRole": "Pozice vzhledem k případu",
"accountRole": "Pozice",
"description": "Popis",
"campaign": "Kampaň",
"targetLists": "Cílové seznamy",
"targetList": "Cílový seznam"
},
"links": {
"opportunities": "Případy",
"cases": "Události",
"targetLists": "Cílové seznamy",
"campaignLogRecords": "Log kampaně",
"campaign": "Kampaň"
},
"labels": {
"Create Contact": "Vytvořit kontakt"
},
"options": {
"opportunityRole": {
"": "--",
"Decision Maker": "Rozhoduje",
"Evaluator": "Hodnotí",
"Influencer": "Má vliv"
}
}
}
@@ -0,0 +1,42 @@
{
"labels": {
"Create Document": "Vytvořit dokument",
"Details": "Detaily"
},
"fields": {
"name": "Název",
"status": "Status",
"file": "Soubor",
"type": "Typ",
"source": "Zdroj",
"publishDate": "Datum publikace",
"expirationDate": "Datum expirace",
"description": "Popis",
"accounts": "Organizace",
"folder": "Složka"
},
"links": {
"accounts": "Organizace",
"opportunities": "Případy",
"folder": "Složka"
},
"options": {
"status": {
"Active": "Aktivní",
"Draft": "Draft",
"Expired": "Expirovaný",
"Canceled": "Zrušený"
},
"type": {
"": "-",
"Contract": "Kontrakt",
"NDA": "NDA",
"EULA": "EULA",
"License Agreement": "Licenční smlouva"
}
},
"presetFilters": {
"active": "Aktivní",
"draft": "Draft"
}
}
@@ -0,0 +1,9 @@
{
"labels": {
"Create DocumentFolder": "Vytvořit složku",
"Manage Categories": "Spravovat složky"
},
"links": {
"documents": "Dokumenty"
}
}
@@ -0,0 +1,8 @@
{
"labels": {
"Create Lead": "Vytvořit stopu",
"Create Contact": "Vytvořit kontakt",
"Create Task": "Vytvořit úkol",
"Create Case": "Vytvořit událost"
}
}
@@ -0,0 +1,100 @@
{
"scopeNames": {
"Account": "Organizace",
"Contact": "Kontakt",
"Lead": "Stopa",
"Target": "Cíl",
"Opportunity": "Případ",
"Meeting": "Schůzka",
"Calendar": "Kalendář",
"Call": "Volání",
"Task": "Úkol",
"Case": "Událost",
"Document": "Dokument",
"DocumentFolder": "Složka dokumentů",
"Campaign": "Kampaň",
"TargetList": "Cílový seznam"
},
"scopeNamesPlural": {
"Account": "Organizace",
"Contact": "Kontakty",
"Lead": "Stopy",
"Target": "Cíle",
"Opportunity": "Případy",
"Meeting": "Schůzky",
"Calendar": "Kalendáře",
"Call": "Volání",
"Task": "Úkoly",
"Case": "Události",
"Document": "Dokumenty",
"DocumentFolder": "Složky dokumentů",
"Campaign": "Kampaně",
"TargetList": "Cílové seznamy"
},
"dashlets": {
"Leads": "Moje stopy",
"Opportunities": "Moje případy",
"Tasks": "Moje úkoly",
"Cases": "Moje události",
"Calendar": "Kalendář",
"Calls": "Moje volání",
"Meetings": "Moje schůzky",
"OpportunitiesByStage": "Případy podle stavu",
"OpportunitiesByLeadSource": "Případy podle zdroje",
"SalesByMonth": "Prodeje za měsíc",
"SalesPipeline": "Prodejní pipeline"
},
"labels": {
"Create InboundEmail": "Vytvořit příchodí email",
"Activities": "Aktivity",
"History": "Historie",
"Attendees": "Účastníci",
"Schedule Meeting": "Plánovaná schůzka",
"Schedule Call": "Plánované volání",
"Compose Email": "Sestavit email",
"Log Meeting": "Zapsat schůzku",
"Log Call": "Zapsat volání",
"Archive Email": "Archivovat email",
"Create Task": "Vytvořit úkol",
"Tasks": "Úkoly"
},
"fields": {
"billingAddressCity": "Město",
"billingAddressCountry": "Země",
"billingAddressPostalCode": "PSČ",
"billingAddressState": "Kraj",
"billingAddressStreet": "Ulice",
"addressCity": "Město",
"addressStreet": "Ulice",
"addressCountry": "Země",
"addressState": "Kraj",
"addressPostalCode": "PSČ",
"shippingAddressCity": "Město (doručovací)",
"shippingAddressStreet": "Ulice (doručovací)",
"shippingAddressCountry": "Země (doručovací)",
"shippingAddressState": "Kraj (doručovací)",
"shippingAddressPostalCode": "PSČ (doručovací)"
},
"links": {
"contacts": "Kontakty",
"opportunities": "Případy",
"leads": "Stopy",
"meetings": "Schůzky",
"calls": "Volání",
"tasks": "Úkoly",
"emails": "Emaily",
"accounts": "Organizace",
"cases": "Události",
"documents": "Dokumenty",
"account": "Organizace",
"opportunity": "Případ",
"contact": "Kontakt",
"parent": "Rodič"
},
"options": {
"reminderTypes": {
"Popup": "Vyskakovací",
"Email": "Email"
}
}
}
@@ -0,0 +1,58 @@
{
"labels": {
"Converted To": "Konvertováno do",
"Create Lead": "Vytvořit stopu",
"Convert": "Konvertovat"
},
"fields": {
"name": "Název",
"emailAddress": "Email",
"title": "Pozice",
"website": "Web",
"phoneNumber": "Telefon",
"accountName": "Název organizace",
"doNotCall": "Nevolat",
"address": "Adresa",
"status": "Status",
"source": "Zdroj",
"opportunityAmount": "Částka případu",
"opportunityAmountConverted": "Částka případu (konvertováno)",
"description": "Popis",
"createdAccount": "Organizace",
"createdContact": "Kontakt",
"createdOpportunity": "Případ",
"campaign": "Kampaň",
"targetLists": "Cílové seznamy",
"targetList": "Cílový seznam"
},
"links": {
"targetLists": "Cílové seznamy",
"campaignLogRecords": "Log kampaně",
"campaign": "Kampaň"
},
"options": {
"status": {
"New": "Nový",
"Assigned": "Přiřazený",
"In Process": "V procesu",
"Converted": "Konvertovaný",
"Recycled": "Recyklovaný",
"Dead": "Mrtvý"
},
"source": {
"": "-",
"Call": "Volání",
"Email": "Email",
"Existing Customer": "Existující zákazník",
"Partner": "Partner",
"Public Relations": "Veřejné vztahy",
"Web Site": "Web",
"Campaign": "Kampaň",
"Other": "Ostatní"
}
},
"presetFilters": {
"active": "Aktivní",
"converted": "Konvertovaný"
}
}
@@ -0,0 +1,48 @@
{
"fields": {
"name": "Název",
"parent": "Rodič",
"status": "Status",
"dateStart": "Datum zahájení",
"dateEnd": "Datum ukončení",
"duration": "Trvání",
"description": "Popis",
"users": "Uživatelé",
"contacts": "Kontakty",
"leads": "Stopy",
"reminders": "Připomenutí",
"account": "Organizace"
},
"links": {
},
"options": {
"status": {
"Planned": "Planovaný",
"Held": "Uskutečněný",
"Not Held": "Neuskutečněný"
},
"acceptanceStatus": {
"None": "-",
"Accepted": "Přijatý",
"Declined": "Odmítnutý",
"Tentative": "Předběžný"
}
},
"massActions": {
"setHeld": "Nastavit jako uskutečněný",
"setNotHeld": "Nastavit jako neuskutečněný"
},
"labels": {
"Create Meeting": "Vytvořit schůzku",
"Set Held": "Nastavit jako uskutečněný",
"Set Not Held": "Nastavit jako neuskutečněný",
"Send Invitations": "Odeslat pozvánky",
"on time": "na čas",
"before": "před"
},
"presetFilters": {
"planned": "Plánovaný",
"held": "Uskutečněný",
"todays": "Dnešní"
}
}
@@ -0,0 +1,42 @@
{
"fields": {
"name": "Název",
"account": "Organizace",
"stage": "Stav",
"amount": "Částka",
"probability": "Pravděpodobnost, %",
"leadSource": "Zdrojová stopa",
"doNotCall": "Nevolat",
"closeDate": "Deadline",
"contacts": "Kontakty",
"description": "Popis",
"amountConverted": "Částka (konvertováno)",
"amountWeightedConverted": "Vážená částka",
"campaign": "Kampaň"
},
"links": {
"contacts": "Kontakty",
"documents": "Dokumenty",
"campaign": "Kampaň"
},
"options": {
"stage": {
"Request": "Poptávka",
"Quote": "Nabídka",
"Order": "Objednávka",
"ToProduction": "Čeká na výrobu",
"InProduction": "Vyrábí se...",
"Dispatch": "Expedice",
"Delivered": "Dodáno",
"Closed Won": "VYFAKTUROVÁNO",
"Closed Lost": "ODMÍTNUTO"
}
},
"labels": {
"Create Opportunity": "Vytvořit případ"
},
"presetFilters": {
"open": "Otevřený",
"won": "Vyhraný"
}
}
@@ -0,0 +1,10 @@
{
"options": {
"job": {
"CheckInboundEmails": "Zkontrolovat příchozí emaily",
"CheckEmailAccounts": "Zkontrolovat emaily",
"SendEmailReminders": "Připomenutí emaiů k poslání"
}
}
}
@@ -0,0 +1,19 @@
{
"fields": {
"name": "Název",
"emailAddress": "Email",
"title": "Pozice",
"website": "Web",
"accountName": "Jméno organizace",
"phoneNumber": "Telefon",
"doNotCall": "Nevolat",
"address": "Adresa",
"description": "Popis"
},
"links": {
},
"labels": {
"Create Target": "Vytvořit cíl",
"Convert to Lead": "Konvertovat na stopu"
}
}
@@ -0,0 +1,29 @@
{
"fields": {
"name": "Název",
"description": "Popis",
"entryCount": "Počet vstupů",
"campaigns": "Kampaně",
"endDate": "Datum ukončení",
"targetLists": "Cílové seznamy"
},
"links": {
"accounts": "Organizace",
"contacts": "Kontakty",
"leads": "Stopy",
"campaigns": "Kampaně"
},
"options": {
"type": {
"Email": "Email",
"Web": "Web",
"Television": "TV",
"Radio": "Radio",
"Newsletter": "Newsletter"
}
},
"labels": {
"Create TargetList": "Vytvořit cílový seznam",
"Opted Out": "Odhlášené"
}
}
@@ -0,0 +1,45 @@
{
"fields": {
"name": "Název",
"parent": "Rodič",
"status": "Status",
"dateStart": "Datum zahájení",
"dateEnd": "Datum dokončení",
"dateStartDate": "Datum zahájení (celý den)",
"dateEndDate": "Datum ukončení (celý den)",
"priority": "Priorita",
"description": "Popis",
"isOverdue": "Je zpozděné",
"account": "Organizace",
"dateCompleted": "Datum dokončení",
"attachments": "Přílohy"
},
"links": {
"attachments": "Přílohy"
},
"options": {
"status": {
"Not Started": "Nezahájeno",
"Started": "Zahájeno",
"Completed": "Dokončeno",
"Canceled": "Zrušeno",
"Deferred": "Odloženo"
},
"priority" : {
"Low": "Malá",
"Normal": "Normální",
"High": "Vysoká",
"Urgent": "Urgentní"
}
},
"labels": {
"Create Task": "Vytvořit úkol",
"Complete": "Dokončit"
},
"presetFilters": {
"actual": "Aktuální",
"completed": "Dokončené",
"todays": "Dnešní",
"overdue": "Zpožděné"
}
}
@@ -0,0 +1,5 @@
{
"links": {
"targetLists": "Cílové seznamy"
}
}
@@ -20,7 +20,7 @@
"calls": "Calls",
"tasks": "Tasks",
"emails": "Emails",
"articles": "Knlowledge Base Articles"
"articles": "Knowledge Base Articles"
},
"options": {
"status": {
@@ -2,11 +2,12 @@
"assignedUser",
"billingAddress",
"createdAt",
"description",
"emailAddress",
"industry",
"phoneNumber",
"targetLists",
"type",
"description",
"teams"
"teams",
"shippingAddress"
]
@@ -82,7 +82,7 @@ class Activities extends \Espo\Core\Services\Base
return in_array($scope, ['Contact', 'Lead', 'User']);
}
protected function getUserMeetingQuery($id, $op = 'IN', $statusList = null)
protected function getUserMeetingQuery($entity, $op = 'IN', $statusList = null)
{
$selectManager = $this->getSelectManagerFactory()->create('Meeting');
@@ -102,7 +102,7 @@ class Activities extends \Espo\Core\Services\Base
],
'leftJoins' => [['users', 'usersLeft']],
'whereClause' => array(
'usersLeftMiddle.userId' => $id
'usersLeftMiddle.userId' => $entity->id
)
);
@@ -121,7 +121,7 @@ class Activities extends \Espo\Core\Services\Base
return $sql;
}
protected function getUserCallQuery($id, $op = 'IN', $statusList = null)
protected function getUserCallQuery($entity, $op = 'IN', $statusList = null)
{
$selectManager = $this->getSelectManagerFactory()->create('Call');
@@ -141,7 +141,7 @@ class Activities extends \Espo\Core\Services\Base
],
'leftJoins' => [['users', 'usersLeft']],
'whereClause' => array(
'usersLeftMiddle.userId' => $id
'usersLeftMiddle.userId' => $entity->id
)
);
@@ -160,7 +160,7 @@ class Activities extends \Espo\Core\Services\Base
return $sql;
}
protected function getUserEmailQuery($id, $op = 'IN', $statusList = null)
protected function getUserEmailQuery($entity, $op = 'IN', $statusList = null)
{
$selectManager = $this->getSelectManagerFactory()->create('Email');
@@ -180,7 +180,7 @@ class Activities extends \Espo\Core\Services\Base
],
'leftJoins' => [['users', 'usersLeft']],
'whereClause' => array(
'usersLeftMiddle.userId' => $id
'usersLeftMiddle.userId' => $entity->id
)
);
@@ -199,11 +199,14 @@ class Activities extends \Espo\Core\Services\Base
return $sql;
}
protected function getMeetingQuery($scope, $id, $op = 'IN', $statusList = null)
protected function getMeetingQuery($entity, $op = 'IN', $statusList = null)
{
$scope = $entity->getEntityType();
$id = $entity->id;
$methodName = 'get' .$scope . 'MeetingQuery';
if (method_exists($this, $methodName)) {
return $this->$methodName($id, $op, $statusList);
return $this->$methodName($entity, $op, $statusList);
}
$selectManager = $this->getSelectManagerFactory()->create('Meeting');
@@ -247,6 +250,18 @@ class Activities extends \Espo\Core\Services\Base
)
)
);
} else if ($scope == 'Lead' && $entity->get('createdAccountId')) {
$selectParams['whereClause'][] = array(
'OR' => array(
array(
'parentId' => $id,
'parentType' => 'Lead'
),
array(
'accountId' => $entity->get('createdAccountId')
)
)
);
} else {
$selectParams['whereClause']['parentId'] = $id;
$selectParams['whereClause']['parentType'] = $scope;
@@ -291,11 +306,14 @@ class Activities extends \Espo\Core\Services\Base
return $sql;
}
protected function getCallQuery($scope, $id, $op = 'IN', $statusList = null)
protected function getCallQuery($entity, $op = 'IN', $statusList = null)
{
$scope = $entity->getEntityType();
$id = $entity->id;
$methodName = 'get' .$scope . 'CallQuery';
if (method_exists($this, $methodName)) {
return $this->$methodName($id, $op, $statusList);
return $this->$methodName($entity, $op, $statusList);
}
$selectManager = $this->getSelectManagerFactory()->create('Call');
@@ -339,6 +357,18 @@ class Activities extends \Espo\Core\Services\Base
)
)
);
} else if ($scope == 'Lead' && $entity->get('createdAccountId')) {
$selectParams['whereClause'][] = array(
'OR' => array(
array(
'parentId' => $id,
'parentType' => 'Lead'
),
array(
'accountId' => $entity->get('createdAccountId')
)
)
);
} else {
$selectParams['whereClause']['parentId'] = $id;
$selectParams['whereClause']['parentType'] = $scope;
@@ -383,11 +413,14 @@ class Activities extends \Espo\Core\Services\Base
return $sql;
}
protected function getEmailQuery($scope, $id, $op = 'IN', $statusList = null)
protected function getEmailQuery($entity, $op = 'IN', $statusList = null)
{
$scope = $entity->getEntityType();
$id = $entity->id;
$methodName = 'get' .$scope . 'EmailQuery';
if (method_exists($this, $methodName)) {
return $this->$methodName($id, $op, $statusList);
return $this->$methodName($entity, $op, $statusList);
}
$selectManager = $this->getSelectManagerFactory()->create('Email');
@@ -431,6 +464,18 @@ class Activities extends \Espo\Core\Services\Base
)
)
);
} else if ($scope == 'Lead' && $entity->get('createdAccountId')) {
$selectParams['whereClause'][] = array(
'OR' => array(
array(
'parentId' => $id,
'parentType' => 'Lead'
),
array(
'accountId' => $entity->get('createdAccountId')
)
)
);
} else {
$selectParams['whereClause']['parentId'] = $id;
$selectParams['whereClause']['parentType'] = $scope;
@@ -580,10 +625,10 @@ class Activities extends \Espo\Core\Services\Base
$parts = array();
if ($this->getAcl()->checkScope('Meeting')) {
$parts['Meeting'] = ($fetchAll || $params['scope'] == 'Meeting') ? $this->getMeetingQuery($scope, $id, 'NOT IN', ['Held', 'Not Held']) : [];
$parts['Meeting'] = ($fetchAll || $params['scope'] == 'Meeting') ? $this->getMeetingQuery($entity, 'NOT IN', ['Held', 'Not Held']) : [];
}
if ($this->getAcl()->checkScope('Call')) {
$parts['Call'] = ($fetchAll || $params['scope'] == 'Call') ? $this->getCallQuery($scope, $id, 'NOT IN', ['Held', 'Not Held']) : [];
$parts['Call'] = ($fetchAll || $params['scope'] == 'Call') ? $this->getCallQuery($entity, 'NOT IN', ['Held', 'Not Held']) : [];
}
return $this->getResultFromQueryParts($parts, $scope, $id, $params);
}
@@ -598,13 +643,13 @@ class Activities extends \Espo\Core\Services\Base
$parts = array();
if ($this->getAcl()->checkScope('Meeting')) {
$parts['Meeting'] = ($fetchAll || $params['scope'] == 'Meeting') ? $this->getMeetingQuery($scope, $id, 'IN', ['Held', 'Not Held']) : [];
$parts['Meeting'] = ($fetchAll || $params['scope'] == 'Meeting') ? $this->getMeetingQuery($entity, 'IN', ['Held', 'Not Held']) : [];
}
if ($this->getAcl()->checkScope('Call')) {
$parts['Call'] = ($fetchAll || $params['scope'] == 'Call') ? $this->getCallQuery($scope, $id, 'IN', ['Held', 'Not Held']) : [];
$parts['Call'] = ($fetchAll || $params['scope'] == 'Call') ? $this->getCallQuery($entity, 'IN', ['Held', 'Not Held']) : [];
}
if ($this->getAcl()->checkScope('Email')) {
$parts['Email'] = ($fetchAll || $params['scope'] == 'Email') ? $this->getEmailQuery($scope, $id, 'IN', ['Archived', 'Sent']) : [];
$parts['Email'] = ($fetchAll || $params['scope'] == 'Email') ? $this->getEmailQuery($entity, 'IN', ['Archived', 'Sent']) : [];
}
$result = $this->getResultFromQueryParts($parts, $scope, $id, $params);
+5 -2
View File
@@ -52,10 +52,13 @@ class Portal extends \Espo\Core\ORM\Repositories\RDB
if ($entity->has('isDefault')) {
if ($entity->get('isDefault')) {
$this->getConfig()->set('defaultPortalId', $entity->id);
$this->getConfig()->save();
} else {
$this->getConfig()->set('defaultPortalId', null);
if ($entity->isAttributeChanged('isDefault')) {
$this->getConfig()->set('defaultPortalId', null);
$this->getConfig()->save();
}
}
$this->getConfig()->save();
}
}
}
@@ -0,0 +1,156 @@
{
"labels": {
"Enabled": "Povoleno",
"Disabled": "Zakázáno",
"System": "Systém",
"Users": "Uživatelé",
"Email": "Email",
"Data": "Data",
"Customization": "Přizpůsobení",
"Available Fields": "Dostupná pole",
"Layout": "Layout",
"Entity Manager": "Správa entit",
"Add Panel": "Přidat panel",
"Add Field": "Přidat pole",
"Settings": "Nastavení",
"Scheduled Jobs": "Naplánované akce",
"Upgrade": "Upgrade",
"Clear Cache": "Vyčistit cache",
"Rebuild": "Přestavět",
"Teams": "Týmy",
"Roles": "Role",
"Outbound Emails": "Odchozí emaily",
"Inbound Emails": "Příchozí emaily",
"Email Templates": "Šablony emailů",
"Import": "Import",
"Layout Manager": "Správa layoutu",
"User Interface": "Uživatelské rozhraní",
"Auth Tokens": "Autentizační tokeny",
"Authentication": "Autentizace",
"Currency": "Měna",
"Integrations": "Integrace",
"Extensions": "Rozšíření",
"Upload": "Nahrát",
"Installing...": "Instaluji...",
"Upgrading...": "Upgraduji...",
"Upgraded successfully": "Úspěšně upgradováno",
"Installed successfully": "Úspěšně nainstalováno",
"Ready for upgrade": "Připraveno k upgradu",
"Run Upgrade": "Spustit upgrade",
"Install": "Instalovat",
"Ready for installation": "Připraveno k instalaci",
"Uninstalling...": "Odebírám...",
"Uninstalled": "Odebráno",
"Create Entity": "Vytvořit entitu",
"Edit Entity": "Upravit entitu",
"Create Link": "Vytvořit link",
"Edit Link": "Upravit link",
"Notifications": "Upozornění"
},
"layouts": {
"list": "Seznam",
"detail": "Detail",
"listSmall": "Seznam (malý)",
"detailSmall": "Detail (malý)",
"filters": "Vyhledávací filtry",
"massUpdate": "Hromadný update",
"relationships": "Vztah"
},
"fieldTypes": {
"address": "Adresa",
"array": "Pole",
"foreign": "Zahraniční",
"duration": "Trvání",
"password": "Heslo",
"parsonName": "Jméno",
"autoincrement": "Auto-increment",
"bool": "Boolean",
"currency": "Měna",
"date": "Datum",
"datetime": "DateTime",
"datetimeOptional": "Datum/DateTime",
"email": "Email",
"enum": "Enum",
"enumInt": "Enum Integer",
"enumFloat": "Enum Float",
"float": "Float",
"int": "Int",
"link": "Link",
"linkMultiple": "Vícenásobný link",
"linkParent": "Rodičovský link",
"multienim": "Multienum",
"phone": "Telefon",
"text": "Text",
"url": "Url",
"varchar": "Varchar",
"file": "Soubor",
"image": "Obrázenk",
"multiEnum": "Vícenásobný Enum"
},
"fields": {
"type": "Typ",
"name": "Jméno",
"label": "Popisek",
"required": "Povinné",
"default": "Výchozí",
"maxLength": "Maximální délka",
"options": "Možnosti",
"after": "Po (pole)",
"before": "Před (pole)",
"link": "Link",
"field": "Pole",
"min": "Min",
"max": "Max",
"translation": "Překlad",
"previewSize": "Velikost náhledu",
"noEmptyString": "Neprázdný řetězec",
"defaultType": "Výchozí typ",
"seeMoreDisabled": "Zakázat ořez textu"
},
"messages": {
"upgradeVersion": "EspoCRM bude upgradováno na verzi <strong>{version}</strong>. Toto může chvíli trvat.",
"upgradeDone": "EspoCRM bylo upgradováno na verzi <strong>{version}</strong>.",
"upgradeBackup": "Doporučujeme zálohovat soubory a data EspoCRM před upgradem.",
"thousandSeparatorEqualsDecimalMark": "Oddělovač tisíců nemůže být stejný jako desetinný symbol.",
"userHasNoEmailAddress": "Uživatel nemá emailovou adresu.",
"selectEntityType": "Vybrat entitu v levém menu.",
"selectUpgradePackage": "Vybrat upgrade balíček",
"downloadUpgradePackage": "Stáhnout upgradovací balíčky na <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">tomto odkaze</a>.",
"selectLayout": "Vybrat požadovaný layout v levém menu a upravit ho.",
"selectExtensionPackage": "Vybrat rozšiřující balíček",
"extensionInstalled": "Rozšíření {name} {version} bylo nainstalováno.",
"installExtension": "Rozšíření {name} {version} je připraveno k instalaci.",
"uninstallConfirmation": "Opravdu odinstalovat vybrané rozšíření?"
},
"descriptions": {
"settings": "Systémová nastavení aplikace.",
"scheduledJob": "Činnosti vykonávané CRONem.",
"upgrade": "Upgradovat EspoCRM.",
"clearCache": "Vyčistit veškerou cache.",
"rebuild": "Přestavě backend a vyčistit cache.",
"users": "Správa uživatelů.",
"teams": "Správa týmů.",
"roles": "Správa rolí.",
"outboundEmails": "Nastavení SMTP pro odchozí emaily.",
"inboundEmails": "Skupinové IMAP účty. Email import a Email-to-Case.",
"emailTemplates": "Šablony pro odchozí emaily.",
"import": "Importovat data z CSV souboru.",
"layoutManager": "Přizpůsobit layouty (seznam, detail, upravit, hledat, hromadný update).",
"entityManager": "Vytvořit vlastní entity, úpravit existující. Správa polí a vztahů.",
"userInterface": "Nastavit uživatelské rozhraní.",
"authTokens": "Aktivní autentizační sessions. IP adresa a datum posledního přístupu.",
"authentication": "Nastavení autentizace.",
"currency": "Nastavení měn a kurzů.",
"extensions": "Instalovat a odebrat rozšíření.",
"integrations": "Integrace se službami třetích stran.",
"notifications": "Nastavení In-app a emailových upozornění."
},
"options": {
"previewSize": {
"x-small": "Extra-malý",
"small": "Malý",
"medium": "Střední",
"large": "Velký"
}
}
}
@@ -0,0 +1,9 @@
{
"fields": {
"user": "Uživatel",
"ipAddress": "IP adresa",
"lastAccess": "Datum posledního přístupu",
"createdAt": "Datum přihlášení"
}
}
@@ -0,0 +1,18 @@
{
"fields": {
"title": "Titulek",
"dateFrom": "Datum od",
"dateTo": "Datum do",
"autorefreshInterval": "Interval automatického obnovení",
"displayRecords": "Zobrazit záznamů",
"isDoubleHeight": "Výška 2x",
"mode": "Mód"
},
"options": {
"mode": {
"agendaWeek": "Týden (agenda)",
"basicWeek": "Týden",
"month": "Měsíc"
}
}
}
@@ -0,0 +1,66 @@
{
"fields": {
"name": "Jméno",
"parent": "Rodič",
"status": "Status",
"dateSent": "Datum odeslání",
"from": "Od",
"to": "Komu",
"cc": "Kopie",
"bcc": "Skrytá kopie",
"isHtml": "Je HTML",
"body": "Tělo",
"subject": "Předmět",
"attachments": "Přílohy",
"selectTemplate": "Vybrat šablonu",
"fromEmailAddress": "Adresa od",
"toEmailAddresses": "Adresa komu",
"emailAddress": "Emailová adresa",
"deliveryDate": "Datum doručení",
"account": "Účet",
"users": "Uživatelé"
},
"links": {
},
"options": {
"Draft": "Draft",
"Sending": "Posílání",
"Sent": "Posláno",
"Archived": "Archivováno",
"Received": "Obdrženo"
},
"labels": {
"Create Email": "Vytvořit email",
"Archive Email": "Archivovat email",
"Compose": "Složit",
"Reply": "Odpovědět",
"Reply to All": "Odpovědět všem",
"Forward": "Přeposlat",
"Original message": "Původní zpráva",
"Forwarded message": "Přeposlaná zpráva",
"Email Accounts": "Emailové účty",
"Send Test Email": "Poslat testovací email",
"Send": "Poslat",
"Email Address": "Emailová adresa",
"Mark Read": "Označit jako přečtěné",
"Sending...": "Posílání...",
"Save Draft": "Uložit draft",
"Mark all as read": "Označit vše jako přečtené",
"Show Plain Text": "Zobrazit Plain Text"
},
"messages": {
"noSmtpSetup": "Chybí SMTP nastavení. {link}.",
"testEmailSent": "Testovací email byl poslán",
"emailSent": "Email byl odeslán",
"savedAsDraft": "Uloženo jako draft"
},
"presetFilters": {
"sent": "Odesláné",
"archived": "Archivované",
"inbox": "Doručené",
"drafts": "Drafty"
},
"massActions": {
"markAsRead": "Označit jako přečtené"
}
}
@@ -0,0 +1,35 @@
{
"fields": {
"name": "Jméno",
"status": "Status",
"host": "Server",
"username": "Uživatelské jméno",
"password": "Heslo",
"port": "Port",
"monitoredFolders": "Synchronizované složky",
"ssl": "SSL",
"fetchSince": "Nastaveno od",
"emailAddress": "Emailová adresa"
},
"links": {
},
"options": {
"status": {
"Active": "Aktivní",
"Inactive": "Neaktivní"
}
},
"labels": {
"Create EmailAccount": "Vytvořit emailový účet",
"IMAP": "IMAP",
"Main": "Hlavní",
"Test Connection": "Test spojení"
},
"messages": {
"couldNotConnectToImap": "Nemohu se připojit k IMAP serveru",
"connectionIsOk": "Spojení je OK"
},
"tooltips": {
"monitoredFolders": "Můžete přidat složku 'Odeslané' k synchronizaci externím emailovým klientem."
}
}
@@ -0,0 +1,7 @@
{
"labels": {
"Primary": "Primární",
"Opted Out": "Odhlášené",
"Invalid": "Neplatné"
}
}
@@ -0,0 +1,16 @@
{
"fields": {
"name": "Jméno",
"status": "Status",
"isHtml": "Je HTML",
"body": "Tělo",
"subject": "Předmět",
"attachments": "Přílohy",
"insertField": ""
},
"links": {
},
"labels": {
"Create EmailTemplate": "Vytvořit šablonu"
}
}
@@ -0,0 +1,44 @@
{
"labels": {
"Fields": "Pole",
"Relationships": "Vztahy"
},
"fields": {
"name": "Jméno",
"type": "Typ",
"labelSingular": "Popisek jednotného čísla",
"labelPlural": "Popisek množného čísla",
"stream": "Stream",
"label": "Popisek",
"linkType": "Typ linku",
"entityForeign": "Cizí entita",
"linkForeign": "Cizí link",
"link": "Link",
"labelForeign": "Cizí popisek",
"sortBy": "Výchozí řazení (pole)",
"sortDirection": "Výchozí řazení (směr)"
},
"options": {
"type": {
"": "",
"Base": "Báze",
"Person": "Osoba",
"CategoryTree": "Strom kategorií"
},
"linkType": {
"manyToMany": "N-N",
"oneToMany": "1-N",
"manyToOne": "N-1",
"parentToChildren": "Rodič-Potomek",
"childrenToParent": "Potomek-Rodič"
},
"sortDirection": {
"asc": "Vzestupně",
"desc": "Sestupně"
}
},
"messages": {
"entityCreated": "Entita byla vytvořena",
"linkAlreadyExists": "Konflikt: link již existuje."
}
}
@@ -0,0 +1,15 @@
{
"fields": {
"name": "Jméno",
"version": "Verze",
"description": "Popis",
"isInstalled": "Instalováno"
},
"labels": {
"Uninstall": "Odebrat",
"Install": "Nainstalovat"
},
"messages": {
"uninstalled": "Rozšíření {name} bylo odebráno"
}
}
@@ -0,0 +1,8 @@
{
"labels": {
"Connect": "Připojit",
"Connected": "Připojeno"
},
"help": {
}
}
@@ -0,0 +1,531 @@
{
"scopeNames": {
"Email": "Email",
"User": "Uživatel",
"Team": "Tým",
"Role": "Role",
"EmailTemplate": "Emailová šablona",
"EmailAccount": "Emailový účet",
"EmailAccountScope": "Emailový účet",
"OutboundEmail": "Odchozí email",
"ScheduledJob": "Naplánovaná činnost",
"ExternalAccount": "Externí účet",
"Extension": "Rozšíření",
"Dashboard": "Nástěnka",
"InboundEmail": "Účet příchozích emailů",
"Stream": "Stream",
"Import": "Import"
},
"scopeNamesPlural": {
"Email": "Emaily",
"User": "Uživatelé",
"Team": "Týmy",
"Role": "Role",
"EmailTemplate": "Emailové šablony",
"EmailAccount": "Emailové účty",
"EmailAccountScope": "Emailové účty",
"OutboundEmail": "Odchozí emaily",
"ScheduledJob": "Naplánované činnosti",
"ExternalAccount": "Externí účty",
"Extension": "Rozšíření",
"Dashboard": "Nástěnka",
"InboundEmail": "Účty příchozích emailů",
"Stream": "Stream",
"Import": "Výsledky importu"
},
"labels": {
"Misc": "Různé",
"Merge": "Sloučit",
"None": "-",
"by": "dle",
"Saved": "Uloženo",
"Error": "Chyba",
"Select": "Vybrat",
"Not valid": "Neplatné",
"Please wait...": "Prosím počkejte...",
"Please wait": "Prosím počkejte",
"Loading...": "Nahrávání...",
"Uploading...": "Uploaduje se...",
"Sending...": "Posíláse...",
"Merging...": "Slučuje se...",
"Merged": "Sloučeno",
"Removed": "Odstraněno",
"Posted": "Zasláno",
"Linked": "Nalinkováno",
"Unlinked": "Odlinkováno",
"Done": "Hovoto",
"Access denied": "Přístup odepřen",
"Access": "Přístup",
"Are you sure?": "Jste si jisti?",
"Record has been removed": "Záznam byl odstraněn",
"Wrong username/password": "Neplatné přihlašovací jméno/heslo",
"Post cannot be empty": "Příspěvek nemůže být prázdný",
"Removing...": "Odstraňování...",
"Unlinking...": "Odlinkování...",
"Posting...": "Zasílání...",
"Username can not be empty!": "Přihlašovací jméno nemůže být prázdné!",
"Cache is not enabled": "Cache není povolena",
"Cache has been cleared": "Cache byla vyčištěna",
"Rebuild has been done": "Přestavba byla dokončena",
"Saving...": "Ukládání...",
"Modified": "Modifikováno",
"Created": "Vytvořeno",
"Create": "Vytvořit",
"create": "vytvořit",
"Overview": "Přehled",
"Details": "Detaily",
"Add Field": "Přidat pole",
"Add Dashlet": "Přidat panel",
"Filter": "Filtr",
"Edit Dashboard": "Upravit nástěnku",
"Add": "Přidat",
"Reset": "Reset",
"Menu": "Menu",
"More": "Více",
"Search": "Hledat",
"Only My": "Pouze moje",
"Open": "Otevřený",
"Admin": "Admin",
"About": "O EspoCRM",
"Refresh": "Obnovit",
"Remove": "Odebrat",
"Options": "Možnosti",
"Username": "Uživatelské jméno",
"Password": "heslo",
"Login": "Přihlásit",
"Log Out": "Odhlásit",
"Preferences": "Předvolby",
"State": "Kraj",
"Street": "Ulice",
"Country": "Země",
"City": "Město",
"PostalCode": "PSČ",
"Followed": "Sledováno",
"Follow": "Sledovat",
"Followers": "Sledující",
"Clear Local Cache": "Vyčistit lokální cache",
"Actions": "Akce",
"Delete": "Smazat",
"Update": "Aktualizovat",
"Save": "Uložit",
"Edit": "Upravit",
"View": "Zobrazit",
"Cancel": "Zrušit",
"Apply": "Použít",
"Unlink": "Odlinkovat",
"Mass Update": "Hromadný update",
"Export": "Export",
"No Data": "Žádná data",
"No Access": "Nepřístupno",
"All": "Vše",
"Active": "Aktivní",
"Inactive": "Neaktivní",
"Write your comment here": "Napište Vás komentář",
"Post": "Poslat",
"Stream": "Stream",
"Show more": "Ukázat více",
"Dashlet Options": "Možnosti panelu",
"Full Form": "Plný formulář",
"Insert": "Vlořiz",
"Person": "Osoba",
"First Name": "Křestní jméno",
"Last Name": "Příjmení",
"Original": "Originál",
"You": "Vy",
"you": "vy",
"change": "změna",
"Change": "Změna",
"Primary": "Primární",
"Save Filter": "Uložit filtr",
"Administration": "Administrace",
"Run Import": "Spustit import",
"Duplicate": "Duplikovat",
"Notifications": "Upozornění",
"Mark all read": "Označit jako přečtené",
"See more": "Zobrazit více",
"Today": "Dnes",
"Tomorrow": "Zítra",
"Yesterday": "Včera",
"Submit": "Vložit",
"Close": "Zavřít",
"Yes": "Ano",
"No": "Ne",
"View": "Zobrazit",
"Select All Result": "Vybrat celý výsledek",
"Value": "Hodnota",
"Current version": "Současná verze",
"List View": "Seznamový pohled",
"Tree View": "Stromový pohled",
"Unlink All": "Odlinkovat vše",
"Total": "Celkem"
},
"messages": {
"pleaseWait": "Prosím počkejte...",
"confirmLeaveOutMessage": "Opravdu chcete opustit formulář?",
"notModified": "Záznam nebyl upraven",
"duplicate": "Vytvářený záznam je duplicitní",
"fieldIsRequired": "{field} je povinné",
"fieldShouldBeEmail": "{field} má být platný email",
"fieldShouldBeFloat": "{field} má být platný float",
"fieldShouldBeInt": "{field} má být platný integer",
"fieldShouldBeDate": "{field} má být platné datum",
"fieldShouldBeDatetime": "{field} má být platné date/time",
"fieldShouldAfter": "{field} má být po {otherField}",
"fieldShouldBefore": "{field} má být před {otherField}",
"fieldShouldBeBetween": "{field} má být mezi {min} a {max}",
"fieldShouldBeLess": "{field} má být menší než {value}",
"fieldShouldBeGreater": "{field} má být většá než {value}",
"fieldBadPasswordConfirm": "{field} není správně potvrzeno",
"resetPreferencesDone": "Předvolby byly resetovány na výchozí.",
"assignmentEmailNotificationSubject": "EspoCRM {entityType}: {Entity.name}",
"assignmentEmailNotificationBody": "{assignerUserName} Ti přiřadil {entityType} '{Entity.name}'.\n\n{recordUrl}",
"confirmation": "Opravdu to chcete?",
"unlinkAllConfirmation": "Opravdu chcete odlinkovat všechny související záznamy?",
"resetPreferencesConfirmation": "Opravdu chcete resetovat předvolby na výchozí?",
"removeRecordConfirmation": "Opravdu chcete smazat záznam?",
"unlinkRecordConfirmation": "Opravdu chcete odlinkovat všechny související záznamy?",
"removeSelectedRecordsConfirmation": "Opravdu chcete odebrat vybrané záznamy?",
"massUpdateResult": "{count} záznamů bylo upraveno",
"massUpdateResultSingle": "{count} záznam byl upraven",
"noRecordsUpdated": "Žádné záznamy nebyly upraveny",
"massRemoveResult": "{count} záznamů bylo odstraněno",
"massRemoveResultSingle": "{count} záznam byl odstraněn",
"noRecordsRemoved": "Žádné záznamy nebyly odstraněny",
"clickToRefresh": "Kliknout pro obnovení",
"streamPostInfo": "Napište <strong>@username</strong> pro zmínění uživatelů v příspěvku.\n\nDostupná syntaxe:\n`<code>code</code>`\n**<strong>tučný text</strong>**\n*<em>kurzíva</em>*\n~<del>smazaný text</del>~\n> citace\n(url)[link]"
},
"boolFilters": {
"onlyMy": "Pouze moje",
"followed": "Sledované"
},
"presetFilters": {
"followed": "Sledované"
},
"massActions": {
"remove": "Odstranit",
"merge": "Sloučit",
"massUpdate": "Hromadně upravit",
"export": "Export"
},
"fields": {
"name": "Název",
"firstName": "Křestní jméno",
"lastName": "Příjmení",
"salutationName": "Oslovení",
"assignedUser": "Přiřazený uživatel",
"emailAddress": "Email",
"assignedUserName": "Přiřazená uživatelská jména",
"teams": "Týmy",
"createdAt": "Vytvořeno",
"modifiedAt": "Upraveno",
"createdBy": "Vytvořil",
"modifiedBy": "Upravil",
"description": "Popis",
"address": "Adresa",
"phoneNumber": "Telefon",
"phoneNumberMobile": "Telefon (Mobil)",
"phoneNumberHome": "Telefon (Domácí)",
"phoneNumberFax": "Telefon (Fax)",
"phoneNumberOffice": "Telefon (Kancelář)",
"phoneNumberOther": "Telefon (Další)",
"order": "Pořadí",
"parent": "Rodič",
"children": "Potomek"
},
"links": {
"assignedUser": "Přiřazený uživatel",
"createdBy": "Vytvořil",
"modifiedBy": "Upravil",
"team": "Tým",
"roles": "Role",
"teams": "Týmy",
"users": "Uživatelé",
"parent": "Rodič",
"children": "Potomek"
},
"dashlets": {
"Stream": "Stream"
},
"notificationMessages": {
"assign": "{entityType} {entity} Ti byla přiřazena.",
"emailReceived": "Email přijat od {from}"
},
"streamMessages": {
"create": "{user} vytvořil {entityType} {entity}",
"createAssigned": "{user} vytvořil {entityType} {entity} přiřazené {assignee}",
"assign": "{user} přiřadil {entityType} {entity} {assignee}",
"post": "{user} poslal {entityType} {entity}",
"attach": "{user} připojený {entityType} {entity}",
"status": "{user} upravil {field} k {entityType} {entity}",
"update": "{user} upravil {entityType} {entity}",
"createRelated": "{user} vytvořil {relatedEntityType} {relatedEntity} související s {entityType} {entity}",
"mentionInPost": "{user} zmínil {mentioned} v {entityType} {entity}",
"createThis": "{user} vytvořil {entityType}",
"createAssignedThis": "{user} vytvořil {entityType} přiřazené {assignee}",
"assignThis": "{user} přiřadil {entityType} {assignee}",
"postThis": "{user} poslal",
"attachThis": "{user} připojil",
"statusThis": "{user} upravil {field}",
"updateThis": "{user} upravil {entityType}",
"createRelatedThis": "{user} vytvořil {relatedEntityType} {relatedEntity} související s {entityType}",
"emailReceivedFromThis": "Email přijat od {from}",
"emailReceivedInitialFromThis": "Tento email byl přijat od {from}, vytvořen {entityType}",
"emailReceivedThis": "Email přijat",
"emailReceivedInitialThis": "Email přijat, vytvořen {entityType}",
"emailReceivedFrom": "Email přijat od {from}, související s {entityType} {entity}",
"emailReceivedFromInitial": "Email přijat od {from}, vytvořeno {entityType} {entity}",
"emailReceived": "Email přijat, související s {entityType} {entity}",
"emailReceivedInitial": "Email přijat: {entityType} {entity} vytvořeno",
"emailReceivedInitialFrom": "Email přijak od {from}, vytvořeno {entityType} {entity}",
"emailSent": "{by} poslal email související s {entityType} {entity}",
"emailSentThis": "{by} poslal email"
},
"lists": {
"monthNames": ["Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"],
"monthNamesShort": ["Led", "Úno", "Bře", "Dub", "Kvě", "Črv", "Črc", "Srp", "Zář", "Říj", "Lis", "Pro"],
"dayNames": ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"],
"dayNamesShort": ["Ned", "Pon", "Úte", "Stř", "Čtv", "Pát", "Sob"],
"dayNamesMin": ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"]
},
"options": {
"salutationName": {
"Mr.": "Pan",
"Mrs.": "Paní",
"Ms.": "Slečna",
"Dr.": "Doktor(ka)"
},
"language": {
"af_ZA":"Afrikaans",
"az_AZ":"Azerbaijani",
"be_BY":"Belarusian",
"bg_BG":"Bulgarian",
"bn_IN":"Bengali",
"bs_BA":"Bosnian",
"ca_ES":"Catalan",
"cs_CZ":"Czech",
"cy_GB":"Welsh",
"da_DK":"Danish",
"de_DE":"German",
"el_GR":"Greek",
"en_GB":"English (UK)",
"en_US":"English (US)",
"es_ES":"Spanish (Spain)",
"et_EE":"Estonian",
"eu_ES":"Basque",
"fa_IR":"Persian",
"fi_FI":"Finnish",
"fo_FO":"Faroese",
"fr_CA":"French (Canada)",
"fr_FR":"French (France)",
"ga_IE":"Irish",
"gl_ES":"Galician",
"gn_PY":"Guarani",
"he_IL":"Hebrew",
"hi_IN":"Hindi",
"hr_HR":"Croatian",
"hu_HU":"Hungarian",
"hy_AM":"Armenian",
"id_ID":"Indonesian",
"is_IS":"Icelandic",
"it_IT":"Italian",
"ja_JP":"Japanese",
"ka_GE":"Georgian",
"km_KH":"Khmer",
"ko_KR":"Korean",
"ku_TR":"Kurdish",
"lt_LT":"Lithuanian",
"lv_LV":"Latvian",
"mk_MK":"Macedonian",
"ml_IN":"Malayalam",
"ms_MY":"Malay",
"nb_NO":"Norwegian Bokmål",
"nn_NO":"Norwegian Nynorsk",
"ne_NP":"Nepali",
"nl_NL":"Dutch",
"pa_IN":"Punjabi",
"pl_PL":"Polish",
"ps_AF":"Pashto",
"pt_BR":"Portuguese (Brazil)",
"pt_PT":"Portuguese (Portugal)",
"ro_RO":"Romanian",
"ru_RU":"Russian",
"sk_SK":"Slovak",
"sl_SI":"Slovene",
"sq_AL":"Albanian",
"sr_RS":"Serbian",
"sv_SE":"Swedish",
"sw_KE":"Swahili",
"ta_IN":"Tamil",
"te_IN":"Telugu",
"th_TH":"Thai",
"tl_PH":"Tagalog",
"tr_TR":"Turkish",
"uk_UA":"Ukrainian",
"ur_PK":"Urdu",
"vi_VN":"Vietnamese",
"zh_CN":"Simplified Chinese (China)",
"zh_HK":"Traditional Chinese (Hong Kong)",
"zh_TW":"Traditional Chinese (Taiwan)"
},
"dateSearchRanges": {
"on": "Dne",
"notOn": "Jiného dne než",
"after": "Po",
"before": "Před",
"between": "Mezi",
"today": "Dnes",
"past": "Minulé",
"future": "Budoucí",
"currentMonth": "Tento měsíc",
"lastMonth": "Minulý měsíc",
"currentQuarter": "Toto kvartál",
"lastQuarter": "Minulý kvartál",
"currentYear": "Tento rok",
"lastYear": "Minulý rok"
},
"searchRanges": {
"is": "Je",
"isEmpty": "Je prázdné",
"isNotEmpty": "Není prázdné"
},
"varcharSearchRanges": {
"equals": "Rovná se",
"startsWith": "Začíná",
"contains": "Obsahuje"
},
"intSearchRanges": {
"equals": "Rovná se",
"notEquals": "Nerovná se",
"greaterThan": "Větší než",
"lessThan": "Menší než",
"greaterThanOrEquals": "Větší než nebo se rovná",
"lessThanOrEquals": "Menší než nebo se rovná",
"between": "Mezi"
},
"autorefreshInterval": {
"0": "Není",
"0.5": "30 sekund",
"1": "1 minuta",
"2": "2 minuty",
"5": "5 minuty",
"10": "10 minut"
},
"phoneNumber": {
"Mobile": "Mobilní",
"Office": "Kancelář",
"Fax": "Fax",
"Home": "Domácí",
"Other": "Další"
}
},
"sets": {
"summernote": {
"UPOZORNĚNÍ": "Překlady lze najít zde: https://github.com/HackerWins/summernote/tree/master/lang",
"font":{
"bold":"Tučné",
"italic":"Kurzíva",
"underline":"Podtržené",
"strike":"Přeškrtnuté",
"clear":"Odebrat styl písma",
"height":"Velikost řádku",
"name":"Rodina písma",
"size":"Velikost písma"
},
"image":{
"image":"Obrázek",
"insert":"Vložit obrázek",
"resizeFull":"Změna velikost 1/1",
"resizeHalf":"Změna velikosti 1/2",
"resizeQuarter":"Změna velikosti 1/4",
"floatLeft":"Plavat vlevo",
"floatRight":"Plavat vpravo",
"floatNone":"Neplavat",
"dragImageHere":"Přesunout obrázek sem.",
"selectFromFiles":"Vybrat ze souboru",
"url":"URL obrázku",
"remove":"Odebrat obrázek"
},
"link":{
"link":"Link",
"insert":"Vložit link",
"unlink":"Odebrat link",
"edit":"Upravit",
"textToDisplay":"Text k zobrazení",
"url":"Na jaké URL má link směřovat?",
"openInNewWindow":"Otevřít v novém okně"
},
"video":{
"video":"Video",
"videoLink":"Video link",
"insert":"Vložit video",
"url":"Video URL?",
"providers":"(YouTube, Vimeo, Vine, Instagram, nebo DailyMotion)"
},
"table":{
"table":"Tabulka"
},
"hr":{
"insert":"Vložit horizontální čáru"
},
"style":{
"style":"Styl",
"normal":"Normální",
"blockquote":"Citace",
"pre":"Kód",
"h1":"Nadpis 1",
"h2":"Nadpis 2",
"h3":"Nadpis 3",
"h4":"Nadpis 4",
"h5":"Nadpis 5",
"h6":"Nadpis 6"
},
"lists":{
"unordered":"Neřazený seznam",
"ordered":"Řazený seznam"
},
"options":{
"help":"Nápověda",
"fullscreen":"Celá obrazovka",
"codeview":"Zobrazit kód"
},
"paragraph":{
"paragraph":"Odstavec",
"outdent":"Předsadit",
"indent":"Odsadit",
"left":"Zarovnat vlevo",
"center":"Zarovnat na střed",
"right":"Zarovnat vpravo",
"justify":"Zarovnat do bloku"
},
"color":{
"recent":"Nedávná baarva",
"more":"Víc barev",
"background":"Barva pozadí",
"foreground":"Barva písma",
"transparent":"Průhlednost",
"setTransparent":"Nastavení průhlednosti",
"reset":"Resetovat",
"resetToDefault":"Resetovat na výchozí"
},
"shortcut":{
"shortcuts":"Klávesové zkratky",
"close":"Zavřít",
"textFormatting":"Formát textu",
"action":"Akce",
"paragraphFormatting":"Formát odstavce",
"documentStyle":"Styl dokumentu"
},
"history":{
"undo":"Zpět",
"redo":"Znovu"
}
}
}
}
@@ -0,0 +1,30 @@
{
"labels": {
"Revert Import": "Reverzní import",
"Return to Import": "Návrat do importu",
"Run Import": "Spustit import",
"Back": "Zpět",
"Field Mapping": "Mapování polí",
"Default Values": "Výchozí hodnoty",
"Add Field": "Přidat pole",
"Created": "Vytvořeno",
"Updated": "Aktualizováno",
"Result": "Výsledek",
"Show records": "Zobrazit záznamy",
"Remove Duplicates": "Odebrat duplicity",
"importedCount": "Naimportováno (počet)",
"duplicateCount": "Duplicity (počet)",
"updatedCount": "Aktualizováno (počet)"
},
"messages": {
"utf8": "Mělo by být v UTF-8 kódování",
"duplicatesRemoved": "Duplicity odstraněny"
},
"fields": {
"file": "Soubor",
"entityType": "Typ entity",
"imported": "Naimportované záznamy",
"duplicates": "Duplicitní záznamy",
"updated": "Aktualizované záznamy"
}
}
@@ -0,0 +1,54 @@
{
"fields": {
"name": "Jméno",
"team": "Tým",
"status": "Status",
"assignToUser": "Přiřadit k uživateli",
"host": "Server",
"username": "Uživatelské jméno",
"password": "Heslo",
"port": "Port",
"monitoredFolders": "Synchronizované složky",
"trashFolder": "Koš",
"ssl": "SSL",
"createCase": "Vytvořit událost",
"reply": "Auto-odpověď",
"caseDistribution": "Distribuce událostí",
"replyEmailTemplate": "Odpověď: Šablona",
"replyFromAddress": "Odpověď: Od",
"replyToAddress": "Odpověď: Komu",
"replyFromName": "Odpověď: Jméno",
"targetUserPosition": "Pozice cílového uživatele"
},
"tooltips": {
"reply": "Upozornit odesílatele emailů, že jejich emaily byly přijaty.\n\n Pro potlačení zacyklení, pouze jeden email za časové období bude poslán každému příjemci.",
"createCase": "Automaticky vytvořit událost z příchozích emailů.",
"replyToAddress": "Specifikovat emailovou adresu této schánky, aby sem chodily odpovědi.",
"caseDistribution": "Nastavení, jak budou události přiřazovány - přímo uživateli nebo dle týmů.",
"assignToUser": "Emaily/události přiřadit uživateli.",
"team": "Emaily/události přiřadit týmu.",
"targetUserPosition": "Definice pozice uživatelů, kterým budou redistribuovány události."
},
"links": {
},
"options": {
"status": {
"Active": "Aktivní",
"Inactive": "Neaktivní"
},
"caseDistribution": {
"Direct-Assignment": "Přímé přiřazení",
"Round-Robin": "Round-Robin",
"Least-Busy": "Poslední zaneprázdněný"
}
},
"labels": {
"Create InboundEmail": "Vytvořit emailový účet",
"IMAP": "IMAP",
"Actions": "Akce",
"Main": "Hlavní"
},
"messages": {
"couldNotConnectToImap": "Nelze se připojit k IMAP serveru"
}
}
@@ -0,0 +1,15 @@
{
"fields": {
"enabled": "Povoleno",
"clientId": "Client ID",
"clientSecret": "Client Secret",
"redirectUri": "Přesměrování URI"
},
"messages": {
"selectIntegration": "Vybrat integraci z menu.",
"noIntegrations": "Žádné integrace nejsou dostupné."
},
"help": {
"Google": "<p><b>Obtain OAuth 2.0 credentials from the Google Developers Console.</b></p><p>Visit <a href=\"https://console.developers.google.com/project\">Google Developers Console</a> to obtain OAuth 2.0 credentials such as a Client ID and Client Secret that are known to both Google and EspoCRM application.</p>"
}
}
@@ -0,0 +1,14 @@
{
"fields": {
"width": "Šířka (%)",
"link": "Link",
"notSortable": "Neřaditelné",
"align": "Zarovnání"
},
"options": {
"align": {
"left": "Vlevo",
"right": "Vpravo"
}
}
}
@@ -0,0 +1,6 @@
{
"fields": {
"post": "Post",
"attachments": "Přílohy"
}
}
@@ -0,0 +1,41 @@
{
"fields": {
"dateFormat": "Formát data",
"timeFormat": "Formát času",
"timeZone": "Časové pásmo",
"weekStart": "Začátek týdne",
"thousandSeparator": "Oddělovač tisíců",
"decimalMark": "Desetinný oddělovač",
"defaultCurrency": "Výchozí měna",
"currencyList": "Seznam měn",
"language": "Jazyk",
"smtpServer": "Server",
"smtpPort": "Port",
"smtpAuth": "Auth",
"smtpSecurity": "Zabezpečení",
"smtpUsername": "Username",
"emailAddress": "Email",
"smtpPassword": "Heslo",
"smtpEmailAddress": "Emailová adresa",
"exportDelimiter": "Export Delimiter",
"receiveAssignmentEmailNotifications": "Dostávat emailová upozornění dle přiřazení",
"autoFollowEntityTypeList": "Auto-Follow",
"signature": "Emailový podpis",
"dashboardTabList": "Seznam záložek",
"defaultReminders": "Výchozí upozornění"
},
"links": {
},
"options": {
"weekStart": {
"0": "Neděle",
"1": "Pondělí"
}
},
"labels": {
"Notifications": "Upozornění"
},
"tooltips": {
"autoFollowEntityTypeList": "Uživatel bude automaticky sledovat všechny nové záznamy vybraných entit, uvidí informace ve streamu a bude dostávat upozornění."
}
}
@@ -0,0 +1,42 @@
{
"fields": {
"name": "Jméno",
"roles": "Role",
"assignmentPermission": "Přiřazení oprávnění",
"userPermission": "Uživatelská oprávnění"
},
"links": {
"users": "Uživatelé",
"teams": "Týmy"
},
"tooltips": {
"assignmentPermission": "Povolit omezení přiřazení záznamů ostatním uživatelům.n\nvše - bez omezení\n\ntým - povoluje přiřadit uživatelům ze svého týmu\n\nne - povoluje přiřadit pouze sobě",
"userPermission": "Povolit omezení zobrazení aktivit ostatních uživatelů.\n\nvše - viditelné vše\n\ntým - viditelné u uživatelů ze svého týmu\n\nne - není viditelné"
},
"labels": {
"Access": "Přístup",
"Create Role": "Vytvořit roli"
},
"options": {
"accessList": {
"not-set": "není nastaveno",
"enabled": "povoleno",
"disabled": "zakázáno"
},
"levelList": {
"all": "vše",
"team": "tým",
"own": "vlastní",
"no": "ne",
"not-set": "není nastaveno"
}
},
"actions": {
"read": "Číst",
"edit": "Upravit",
"delete": "Smazat"
},
"messages": {
"changesAfterClearCache": "Všechny změny v nastavení ACL budou aplikovány po vyčištění cache."
}
}
@@ -0,0 +1,29 @@
{
"fields": {
"name": "Jméno",
"status": "Status",
"job": "Činnost",
"scheduling": "Plánování (crontab notace)"
},
"links": {
"log": "Log"
},
"labels": {
"Create ScheduledJob": "Vytvořit naplánovanou činnost"
},
"options": {
"job": {
"Cleanup": "Vyčistit"
},
"cronSetup": {
"linux": "Poznámka: přidejte tento řádek do crontab souboru pro spuštění ESPO naplánovaných činností:",
"mac": "Poznámka: přidejte tento řádek do crontab souboru pro spuštění ESPO naplánovaných činností:",
"windows": "Poznánmka: Vytvořte batch soubor s následujícími příkazy pro spuštění ESPO naplánovaných činností pomocí Windows Scheduled Tasks:",
"default": "Poznámka: přidejte tento příkaz do Cron Job (Scheduled Task):"
},
"status": {
"Active": "Active",
"Inactive": "Inactive"
}
}
}
@@ -0,0 +1,6 @@
{
"fields": {
"status": "Status",
"executionTime": "Čas vykonání"
}
}
@@ -0,0 +1,78 @@
{
"fields": {
"useCache": "Použít cache",
"dateFormat": "Formát data",
"timeFormat": "Formát času",
"timeZone": "Časové pásmo",
"weekStart": "První den v týdnu",
"thousandSeparator": "Oddělovač tisíců",
"decimalMark": "Desetinný oddělovač",
"defaultCurrency": "Výchozí měna",
"baseCurrency": "Bázová měna",
"currencyRates": "Kurzy měn",
"currencyList": "Seznam měn",
"language": "Jazyk",
"companyLogo": "Logo společnosti",
"smtpServer": "Server",
"smtpPort": "Port",
"smtpAuth": "Auth",
"smtpSecurity": "Zabezpečení",
"smtpUsername": "Uživatelské jméno",
"emailAddress": "Email",
"smtpPassword": "Heslo",
"outboundEmailFromName": "Od (jméno)",
"outboundEmailFromAddress": "Od (adresa)",
"outboundEmailIsShared": "Sdílení",
"recordsPerPage": "Záznamy na stránku",
"recordsPerPageSmall": "Záznamy na stránku (malý)",
"tabList": "Seznam záložek",
"quickCreateList": "Rychlé odkazy",
"exportDelimiter": "Export Delimiter",
"globalSearchEntityList": "Global Search Entity List",
"authenticationMethod": "Autentizační metoda",
"ldapHost": "Host",
"ldapPort": "Port",
"ldapAuth": "Auth",
"ldapUsername": "Uživatelské jméno",
"ldapPassword": "Heslo",
"ldapBindRequiresDn": "Přiřazení vyžaduje Dn",
"ldapBaseDn": "Bázové Dn",
"ldapAccountCanonicalForm": "Account Canonical Form",
"ldapAccountDomainName": "Account Domain Name",
"ldapTryUsernameSplit": "Zkuste rozdělit uživatelské jméno",
"ldapCreateEspoUser": "Vytvořit uživatele v EspoCRM",
"ldapSecurity": "Zabezpečení",
"ldapUserLoginFilter": "Filtr uživatelského přihlášení",
"ldapAccountDomainNameShort": "Account Domain Name krátké",
"ldapOptReferrals": "Opt Referrals",
"disableExport": "Zakázat export (povolenou pouze adminovi)",
"assignmentNotificationsEntityList": "Entity k upozornění podle přiřazení",
"assignmentNotificationsEntityList": "Entity k upozornění podle přiřazení",
"assignmentEmailNotifications": "Poslat emailová upozornění podle přiřazení",
"assignmentEmailNotificationsEntityList": "Entity k upozornění emailem podle přiřazení",
"b2cMode": "B2C Mode",
"disableAvatars": "Zakázat avatary",
"followCreatedEntities": "Sledovat vytvořené entity"
},
"options": {
"weekStart": {
"0": "Neděle",
"1": "Pondělí"
}
},
"tooltips": {
"recordsPerPageSmall": "Počet záznamů v panelu vztahů.",
"outboundEmailIsShared": "Povolit posílání emailů uživatelům pomocí SMTP.",
"followCreatedEntities": "Pokud uživatel vytvoří záznam, bude jej sledovat automaticky."
},
"labels": {
"System": "Systém",
"Locale": "Locale",
"SMTP": "SMTP",
"Configuration": "Konfigurace",
"In-app Notifications": "In-app notifikace",
"Email Notifications": "Email notifikace",
"Currency Settings": "Nastavení měn",
"Currency Rates": "Kurzy měn"
}
}
@@ -0,0 +1,17 @@
{
"fields": {
"name": "Jméno",
"roles": "Role",
"positionList": "Seznam pozic"
},
"links": {
"users": "Uživatelé"
},
"tooltips": {
"roles": "Access Roles. Users of this team obtain access control level from selected roles.",
"positionList": "Available positions in this team. E.g. Salesperson, Manager."
},
"labels": {
"Create Team": "Vytvořit tým"
}
}
@@ -0,0 +1,65 @@
{
"fields": {
"name": "Jméno",
"userName": "Uživatelské jméno",
"title": "Title",
"isAdmin": "Je admin",
"defaultTeam": "Výchozí tým",
"emailAddress": "Email",
"phoneNumber": "Telefon",
"roles": "Role",
"teamRole": "Pozice",
"password": "Heslo",
"passwordConfirm": "Potvrzení hesla",
"newPassword": "Nové heslo",
"newPasswordConfirm": "Potvrzení nového hesla",
"avatar": "Avatar",
"isActive": "Je aktivní"
},
"links": {
"teams": "Týmy",
"roles": "Role"
},
"labels": {
"Create User": "Vytvořit uživatele",
"Generate": "Generovat",
"Access": "Přístup",
"Preferences": "Předvolby",
"Change Password": "Změnit heslo",
"Teams and Access Control": "Týmy a kontrola přístupu",
"Forgot Password?": "Zapomenuté heslo?",
"Password Change Request": "Požadavek na změnu hesla",
"Email Address": "Emailová adresa",
"External Accounts": "Externí účty",
"Email Accounts": "Emailové účty"
},
"tooltips": {
"defaultTeam": "All records created by this user will be related to this team by default.",
"userName": "Letters a-z, numbers 0-9 and underscores are allowed.",
"isAdmin": "Admin user can access everything.",
"isActive": "If unchecked then user won't be able to login.",
"teams": "Teams which this user belongs to. Access control level is inherited from team's roles.",
"roles": "Additional access roles. Use it if user doesn't belong to any team or you need to extend access control level only for this user."
},
"messages": {
"passwordWillBeSent": "Heslo bude posláno na emailovou adresu uživatele.",
"accountInfoEmailSubject": "EspoCRM Informace k uživatelskému přístupu",
"accountInfoEmailBody": "Vaše přístupové informace jsou:\n\nPřihlašovací jméno: {userName}\nHeslo: {password}\n\n{siteUrl}",
"passwordChangeLinkEmailSubject": "Požadavek na změnu hesla",
"passwordChangeLinkEmailBody": "Můžete změnit Vaše heslo pomocí tohoto odkazu {link}, tato url adresa z bezpečnostních důvodů brzy vyprší.",
"passwordChanged": "Heslo bylo změněno",
"userCantBeEmpty": "Uživatelské jméno nemůže být prázdné",
"wrongUsernamePasword": "Nesprávné uživatelské jmén/heslo",
"emailAddressCantBeEmpty": "Emailová adresa nemůže zůstat prázdná",
"userNameEmailAddressNotFound": "Uživatelské jméno/heslo nebylo nalezeno",
"forbidden": "Tato operace není povolena, prosím zkuste to později",
"uniqueLinkHasBeenSent": "Unikátní link byl poslán na zadanou emailovou adresu.",
"passwordChangedByRequest": "Heslo bylo změněo."
},
"boolFilters": {
"onlyMyTeam": "Pouze můj tým"
},
"presetFilters": {
"active": "Aktivní"
}
}
+3 -2
View File
@@ -92,13 +92,14 @@ class Pdf extends \Espo\Core\Services\Base
$pdf = new \Espo\Core\Pdf\Tcpdf();
$pdf->setFont($this->fontFace, '', $this->fontSize, '', true);
$fontFace = $this->getConfig()->get('pdfFontFace', $this->fontFace);
$pdf->setFont($fontFace, '', $this->fontSize, '', true);
$pdf->setPrintHeader(false);
$pdf->setAutoPageBreak(true, $template->get('bottomMargin'));
$pdf->setMargins($template->get('leftMargin'), $template->get('topMargin'), $template->get('rightMargin'));
if ($template->get('printFooter')) {
$htmlFooter = $htmlizer->render($entity, $template->get('footer'));
$pdf->setFooterPosition($template->get('footerPosition'));
+7 -2
View File
@@ -33,6 +33,8 @@ use \Espo\ORM\Entity;
class Portal extends Record
{
protected $getEntityBeforeUpdate = true;
public function loadAdditionalFields(Entity $entity)
{
parent::loadAdditionalFields($entity);
@@ -48,11 +50,14 @@ class Portal extends Record
protected function loadUrlField(Entity $entity)
{
$siteUrl = $this->getConfig()->get('siteUrl');
$url = $siteUrl . '?entryPoint=portal';
$siteUrl = rtrim($siteUrl , '/') . '/';
$url = $siteUrl . 'portal';
if ($entity->id === $this->getConfig()->get('defaultPortalId')) {
$entity->set('isDefault', true);
$entity->setFetched('isDefault', true);
} else {
$url .= '&id=' . $entity->id;
$url .= '?id=' . $entity->id;
$entity->setFetched('isDefault', false);
}
$entity->set('url', $url);
}

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 248 KiB

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Before

Width:  |  Height:  |  Size: 613 B

After

Width:  |  Height:  |  Size: 613 B

Some files were not shown because too many files have changed in this diff Show More