Compare commits
110 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e47eab0ce7 | |||
| 17ae5b6b5a | |||
| fa29bf3309 | |||
| 684585278d | |||
| e303be8155 | |||
| f1285f0615 | |||
| 3fd1974d86 | |||
| d48716e65a | |||
| a0432051f4 | |||
| 076c3aa65b | |||
| 92abd16032 | |||
| e6632066a6 | |||
| e2deaf57dd | |||
| 0530d9deb8 | |||
| b57ccf0c6a | |||
| 9ea9cf693d | |||
| 3460931fba | |||
| b743d113cc | |||
| f810371e70 | |||
| bc525f3047 | |||
| 6809181adf | |||
| 2c71a28421 | |||
| 82162e4fe6 | |||
| 03454bc309 | |||
| d975501f29 | |||
| 761356adda | |||
| 824835a28c | |||
| 252ce15973 | |||
| 7f25dba917 | |||
| b5d4b8aa5a | |||
| 39a136295a | |||
| 6d674c007e | |||
| 31f380a03a | |||
| 7e23960196 | |||
| d3b9f2479b | |||
| c211842b52 | |||
| 3e11c0cfc1 | |||
| 6747440b00 | |||
| dc1c4b1e78 | |||
| 26f2fba3ac | |||
| eb481c689b | |||
| 88c3984d35 | |||
| 4eae088973 | |||
| 60ae0fb365 | |||
| ab36f41fc3 | |||
| 98de243e37 | |||
| 0c6ccabbeb | |||
| a66e6111cb | |||
| caf5c8806a | |||
| 0154dfd6a1 | |||
| e545e68877 | |||
| fa24c2b7fe | |||
| df2b7d9659 | |||
| cc395232ff | |||
| 47afb83536 | |||
| 02d1b50b59 | |||
| bd86eb08fa | |||
| b3c1a45b72 | |||
| 15678e59e2 | |||
| 6fe379bab3 | |||
| 39ecb2fd37 | |||
| 988c0059ff | |||
| 61ff31b3b7 | |||
| 7c1a098b89 | |||
| f843593843 | |||
| c34eb915bc | |||
| 9508432294 | |||
| 0959962269 | |||
| e39a91bde6 | |||
| 51f5dbe25c | |||
| 6fd5c6cbe7 | |||
| 6622b09eaa | |||
| 9bb9f066cd | |||
| 03110b47df | |||
| 034e532e05 | |||
| c306af8b4c | |||
| bd4a784676 | |||
| 4ca0a9dc5f | |||
| c6816b01b5 | |||
| bc7583ccb4 | |||
| 318e43aca3 | |||
| ea992f727b | |||
| 5bdb16f98c | |||
| faa06993e6 | |||
| f6e0d017b2 | |||
| 8ea56a74b0 | |||
| d4c9666f85 | |||
| 5f376304ce | |||
| dbb29f25ab | |||
| da059b2589 | |||
| fee64fd5ac | |||
| 85de9f7a6f | |||
| 5beb7641af | |||
| 249852c3d7 | |||
| 223d07579b | |||
| 74fb359740 | |||
| f7ffadc76f | |||
| fc03141dee | |||
| 8d29014811 | |||
| 7dcbbcb98d | |||
| 60b9200247 | |||
| fa4d1d70d5 | |||
| de6cc1f9bb | |||
| 5fb6abe0e1 | |||
| 94073b8aad | |||
| 0e83e21aa0 | |||
| 63bbf72942 | |||
| dbaa41b161 | |||
| ed673dbe0d | |||
| d54ccb0c9e |
+6
-7
@@ -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/
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Before we can merge your pull request you need to accept our CLA [here](https://github.com/espocrm/cla). It's very simple to do.
|
||||
|
||||
[Code Style Guidelines](https://github.com/espocrm/espocrm/wiki/Code-Style-Guidelines).
|
||||
+14
-10
@@ -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',
|
||||
@@ -213,8 +214,11 @@ module.exports = function (grunt) {
|
||||
},
|
||||
src: [
|
||||
'build/EspoCRM-<%= pkg.version %>/install',
|
||||
'build/EspoCRM-<%= pkg.version %>/portal',
|
||||
'build/EspoCRM-<%= pkg.version %>/api',
|
||||
'build/EspoCRM-<%= pkg.version %>/api/v1',
|
||||
'build/EspoCRM-<%= pkg.version %>/api/v1/portal-access',
|
||||
'build/EspoCRM-<%= pkg.version %>',
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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();
|
||||
@@ -5,8 +5,8 @@
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="rule 1G" stopProcessing="true">
|
||||
<match url="^" />
|
||||
<action type="Rewrite" url="index.php" appendQueryString="true" />
|
||||
<match url="^" />
|
||||
<action type="Rewrite" url="index.php" appendQueryString="true" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
@@ -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;
|
||||
|
||||
@@ -175,7 +175,7 @@ class Table
|
||||
public function getLevel($scope, $action)
|
||||
{
|
||||
if (isset($this->data->table->$scope)) {
|
||||
if (isset($this->table->$scope->$action)) {
|
||||
if (isset($this->data->table->$scope->$action)) {
|
||||
return $this->data->table->$scope->$action;
|
||||
}
|
||||
}
|
||||
@@ -189,6 +189,9 @@ class Table
|
||||
$valuePermissionLists->$permission = [];
|
||||
}
|
||||
|
||||
$aclTableList = [];
|
||||
$fieldTableList = [];
|
||||
|
||||
if (!$this->user->isAdmin()) {
|
||||
$roleList = $this->getRoleList();
|
||||
|
||||
@@ -484,6 +487,9 @@ class Table
|
||||
|
||||
foreach (array_merge($mandatoryFieldData, $mandatoryScopeFieldData) as $field => $f) {
|
||||
if (!in_array($field, $fieldList)) continue;
|
||||
if (!isset($fieldTable->$scope)) {
|
||||
$fieldTable->$scope = (object) [];
|
||||
}
|
||||
$fieldTable->$scope->$field = (object) [];
|
||||
foreach ($this->fieldActionList as $action) {
|
||||
$level = 'no';
|
||||
@@ -508,7 +514,7 @@ class Table
|
||||
|
||||
foreach ($this->getScopeList() as $scope) {
|
||||
if ($this->getMetadata()->get('scopes.' . $scope . '.disabled')) {
|
||||
$aclTable->$scope = false;
|
||||
$table->$scope = false;
|
||||
unset($fieldTable->$scope);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ class Table extends \Espo\Core\Acl\Table
|
||||
foreach ($this->getScopeList() as $scope) {
|
||||
$d = $this->getMetadata()->get('scopes.' . $scope);
|
||||
if ($d['disabled'] || $d['portalDisabled']) {
|
||||
$aclTable->$scope = false;
|
||||
$table->$scope = false;
|
||||
unset($fieldTable->$scope);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -460,13 +460,15 @@ class Importer
|
||||
if (preg_match('/filename="?([^"]+)"?/i', $contentDisposition, $m)) {
|
||||
$fileName = $m[1];
|
||||
return $fileName;
|
||||
} else if (preg_match('/filename\*="?([^"]+)"?/i', $contentDisposition, $m)) {
|
||||
} else if (preg_match('/filename\*[01]?="?([^"]+)"?/i', $contentDisposition, $m)) {
|
||||
$fileName = $m[1];
|
||||
if ($fileName && stripos($fileName, "''") !== false) {
|
||||
list($encoding, $fileName) = explode("''", $fileName);
|
||||
$fileName = rawurldecode($fileName);
|
||||
if (strtoupper($encoding) !== 'UTF-8') {
|
||||
$fileName = mb_convert_encoding($fileName, 'UTF-8', $encoding);
|
||||
if ($fileName) {
|
||||
if (stripos($fileName, "''") !== false) {
|
||||
list($encoding, $fileName) = explode("''", $fileName);
|
||||
$fileName = rawurldecode($fileName);
|
||||
if (strtoupper($encoding) !== 'UTF-8') {
|
||||
$fileName = mb_convert_encoding($fileName, 'UTF-8', $encoding);
|
||||
}
|
||||
}
|
||||
return $fileName;
|
||||
}
|
||||
|
||||
@@ -94,9 +94,6 @@ class Entity extends \Espo\ORM\Entity
|
||||
{
|
||||
$columnsField = $field . 'Columns';
|
||||
|
||||
if (!$this->has($columnsField)) {
|
||||
$this->loadLinkMultipleField($field, true);
|
||||
}
|
||||
if (!$this->has($columnsField)) {
|
||||
return;
|
||||
}
|
||||
@@ -125,7 +122,7 @@ class Entity extends \Espo\ORM\Entity
|
||||
|
||||
if (!$this->has($idsField)) {
|
||||
if (!$this->isNew()) {
|
||||
$this->loadLinkMultipleField($field, true);
|
||||
$this->loadLinkMultipleField($field);
|
||||
} else {
|
||||
$this->set($idsField, []);
|
||||
}
|
||||
@@ -148,7 +145,7 @@ class Entity extends \Espo\ORM\Entity
|
||||
|
||||
if (!$this->has($idsField)) {
|
||||
if (!$this->isNew()) {
|
||||
$this->loadLinkMultipleField($field, true);
|
||||
$this->loadLinkMultipleField($field);
|
||||
}
|
||||
}
|
||||
$valueList = $this->get($idsField);
|
||||
@@ -166,7 +163,7 @@ class Entity extends \Espo\ORM\Entity
|
||||
|
||||
if (!$this->has($idsField)) {
|
||||
if (!$this->isNew()) {
|
||||
$this->loadLinkMultipleField($field, true);
|
||||
$this->loadLinkMultipleField($field);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,8 @@ class Application extends \Espo\Core\Application
|
||||
throw new Error("Portal id was not passed to ApplicationPortal.");
|
||||
}
|
||||
|
||||
$GLOBALS['log'] = $this->getContainer()->get('log');
|
||||
|
||||
$portal = $this->getContainer()->get('entityManager')->getEntity('Portal', $portalId);
|
||||
|
||||
if (!$portal) {
|
||||
@@ -58,8 +60,6 @@ class Application extends \Espo\Core\Application
|
||||
|
||||
$this->getContainer()->setPortal($portal);
|
||||
|
||||
$GLOBALS['log'] = $this->getContainer()->get('log');
|
||||
|
||||
$this->initAutoloads();
|
||||
}
|
||||
|
||||
|
||||
@@ -277,7 +277,7 @@ class Base
|
||||
|
||||
$foreignEntity = $defs['entity'];
|
||||
if (empty($foreignEntity)) {
|
||||
continue;
|
||||
return;
|
||||
}
|
||||
|
||||
$pathName = lcfirst($query->sanitize($foreignEntity . 'Path'));
|
||||
@@ -906,6 +906,7 @@ class Base
|
||||
$part[$item['field'] . '='] = null;
|
||||
break;
|
||||
case 'isNotNull':
|
||||
case 'ever':
|
||||
$part[$item['field'] . '!='] = null;
|
||||
break;
|
||||
case 'isTrue':
|
||||
@@ -1068,7 +1069,7 @@ class Base
|
||||
|
||||
public function hasLeftJoin($leftJoin, &$result)
|
||||
{
|
||||
return in_array($leftJoin, $result['leftJoin']);
|
||||
return in_array($leftJoin, $result['leftJoins']);
|
||||
}
|
||||
|
||||
public function addJoin($join, &$result)
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
"fields": {
|
||||
"name": {
|
||||
"type": "varchar",
|
||||
"required": true
|
||||
"required": true,
|
||||
"trim": true
|
||||
},
|
||||
"description": {
|
||||
"type": "text"
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
"fields": {
|
||||
"name": {
|
||||
"type": "varchar",
|
||||
"required": true
|
||||
"required": true,
|
||||
"trim": true
|
||||
},
|
||||
"order": {
|
||||
"type": "int",
|
||||
|
||||
@@ -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,24 @@ class ClientManager
|
||||
return $this->config;
|
||||
}
|
||||
|
||||
public function setBasePath($basePath)
|
||||
{
|
||||
$this->basePath = $basePath;
|
||||
}
|
||||
|
||||
public function getBasePath()
|
||||
{
|
||||
return $this->basePath;
|
||||
}
|
||||
|
||||
protected function getCacheTimestamp()
|
||||
{
|
||||
if (!$this->getConfig()->get('useCache')) {
|
||||
return (string) time();
|
||||
}
|
||||
return $this->getConfig()->get('cacheTimestamp', 0);
|
||||
}
|
||||
|
||||
public function display($runScript = null, $htmlFilePath = null, $vars = array())
|
||||
{
|
||||
if (is_null($runScript)) {
|
||||
@@ -76,10 +96,11 @@ class ClientManager
|
||||
foreach ($vars as $key => $value) {
|
||||
$html = str_replace('{{'.$key.'}}', $value, $html);
|
||||
}
|
||||
$html = str_replace('{{cacheTimestamp}}', $this->getConfig()->get('cacheTimestamp', 0), $html);
|
||||
$html = str_replace('{{cacheTimestamp}}', $this->getCacheTimestamp(), $html);
|
||||
$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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
|
||||
|
||||
use Doctrine\DBAL\Types\BooleanType;
|
||||
|
||||
class Bool extends BooleanType
|
||||
class BoolType extends BooleanType
|
||||
{
|
||||
const BOOL = 'bool';
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
|
||||
|
||||
use Doctrine\DBAL\Types\IntegerType;
|
||||
|
||||
class Int extends IntegerType
|
||||
class IntType extends IntegerType
|
||||
{
|
||||
const INTtype = 'int';
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@
|
||||
|
||||
namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
|
||||
|
||||
class JsonArray extends \Doctrine\DBAL\Types\JsonArrayType
|
||||
class JsonArrayType extends \Doctrine\DBAL\Types\JsonArrayType
|
||||
{
|
||||
const JSON_ARRAY = 'jsonArray';
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@
|
||||
|
||||
namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
|
||||
|
||||
class JsonObject extends \Doctrine\DBAL\Types\ObjectType
|
||||
class JsonObjectType extends \Doctrine\DBAL\Types\ObjectType
|
||||
{
|
||||
const JSON_OBJECT = 'jsonObject';
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
|
||||
|
||||
use Doctrine\DBAL\Types\StringType;
|
||||
|
||||
class Password extends StringType
|
||||
class PasswordType extends StringType
|
||||
{
|
||||
const PASSWORD = 'password';
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ namespace Espo\Core\Utils\Database\DBAL\FieldTypes;
|
||||
|
||||
use Doctrine\DBAL\Types\StringType;
|
||||
|
||||
class Varchar extends StringType
|
||||
class VarcharType extends StringType
|
||||
{
|
||||
const VARCHAR = 'varchar';
|
||||
|
||||
@@ -161,11 +161,11 @@ class Schema
|
||||
|
||||
$typeList = $this->getFileManager()->getFileList($path, false, '\.php$');
|
||||
if ($typeList !== false) {
|
||||
foreach($typeList as $name) {
|
||||
$typeName = preg_replace('/\.php$/i', '', $name);
|
||||
foreach ($typeList as $name) {
|
||||
$typeName = preg_replace('/Type\.php$/i', '', $name);
|
||||
$dbalTypeName = strtolower($typeName);
|
||||
|
||||
$filePath = Util::concatPath($path, $typeName);
|
||||
$filePath = Util::concatPath($path, $typeName . 'Type');
|
||||
$class = Util::getClassName($filePath);
|
||||
|
||||
if( ! Type::hasType($dbalTypeName) ) {
|
||||
|
||||
@@ -308,7 +308,7 @@ class Metadata
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function delete($key1, $key2, $unsets)
|
||||
public function delete($key1, $key2, $unsets = null)
|
||||
{
|
||||
if (!is_array($unsets)) {
|
||||
$unsets = (array) $unsets;
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,10 @@ class Notifications extends \Espo\Core\Hooks\Base
|
||||
$query = $this->getEntityManager()->getQuery();
|
||||
$sql = "
|
||||
DELETE FROM `notification`
|
||||
WHERE related_id = ".$query->quote($entity->id)." AND related_type = ".$query->quote($entity->getEntityType()) ."
|
||||
WHERE
|
||||
(related_id = ".$query->quote($entity->id)." AND related_type = ".$query->quote($entity->getEntityType()) .")
|
||||
OR
|
||||
(related_parent_id = ".$query->quote($entity->id)." AND related_parent_type = ".$query->quote($entity->getEntityType()) .")
|
||||
";
|
||||
$this->getEntityManager()->getPDO()->query($sql);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Modules\Crm\Controllers;
|
||||
|
||||
@@ -43,10 +43,10 @@ class Opportunity extends \Espo\Core\Controllers\Record
|
||||
|
||||
$dateFrom = $request->get('dateFrom');
|
||||
$dateTo = $request->get('dateTo');
|
||||
|
||||
|
||||
return $this->getService('Opportunity')->reportByLeadSource($dateFrom, $dateTo);
|
||||
}
|
||||
|
||||
|
||||
public function actionReportByStage($params, $data, $request)
|
||||
{
|
||||
$level = $this->getAcl()->getLevel('Opportunity', 'read');
|
||||
@@ -56,10 +56,10 @@ class Opportunity extends \Espo\Core\Controllers\Record
|
||||
|
||||
$dateFrom = $request->get('dateFrom');
|
||||
$dateTo = $request->get('dateTo');
|
||||
|
||||
|
||||
return $this->getService('Opportunity')->reportByStage($dateFrom, $dateTo);
|
||||
}
|
||||
|
||||
|
||||
public function actionReportSalesByMonth($params, $data, $request)
|
||||
{
|
||||
$level = $this->getAcl()->getLevel('Opportunity', 'read');
|
||||
@@ -69,10 +69,10 @@ class Opportunity extends \Espo\Core\Controllers\Record
|
||||
|
||||
$dateFrom = $request->get('dateFrom');
|
||||
$dateTo = $request->get('dateTo');
|
||||
|
||||
return $this->getService('Opportunity')->reportSalesByMonth($dateFrom, $dateTo);
|
||||
|
||||
return $this->getService('Opportunity')->reportSalesByMonth($dateFrom, $dateTo);
|
||||
}
|
||||
|
||||
|
||||
public function actionReportSalesPipeline($params, $data, $request)
|
||||
{
|
||||
$level = $this->getAcl()->getLevel('Opportunity', 'read');
|
||||
@@ -82,7 +82,7 @@ class Opportunity extends \Espo\Core\Controllers\Record
|
||||
|
||||
$dateFrom = $request->get('dateFrom');
|
||||
$dateTo = $request->get('dateTo');
|
||||
|
||||
|
||||
return $this->getService('Opportunity')->reportSalesPipeline($dateFrom, $dateTo);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
|
||||
|
||||
class Account extends \Espo\Core\ORM\Repositories\RDB
|
||||
{
|
||||
public function afterSave(Entity $entity, array $options)
|
||||
public function afterSave(Entity $entity, array $options = array())
|
||||
{
|
||||
parent::afterSave($entity, $options);
|
||||
|
||||
|
||||
@@ -33,14 +33,14 @@ use Espo\ORM\Entity;
|
||||
|
||||
class CaseObj extends \Espo\Core\ORM\Repositories\RDB
|
||||
{
|
||||
public function afterSave(Entity $entity, array $options)
|
||||
public function afterSave(Entity $entity, array $options = array())
|
||||
{
|
||||
$result = parent::afterSave($entity, $options);
|
||||
$this->handleAfterSaveContacts($entity, $options);
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function handleAfterSaveContacts(Entity $entity, array $options)
|
||||
protected function handleAfterSaveContacts(Entity $entity, array $options = array())
|
||||
{
|
||||
$contactIdChanged = $entity->has('contactId') && $entity->get('contactId') != $entity->getFetched('contactId');
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ class Contact extends \Espo\Core\ORM\Repositories\RDB
|
||||
";
|
||||
}
|
||||
|
||||
public function afterSave(Entity $entity, array $options)
|
||||
public function afterSave(Entity $entity, array $options = array())
|
||||
{
|
||||
$result = parent::afterSave($entity, $options);
|
||||
$this->handleAfterSaveAccounts($entity, $options);
|
||||
@@ -59,7 +59,7 @@ class Contact extends \Espo\Core\ORM\Repositories\RDB
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function handleAfterSaveAccounts(Entity $entity, array $options)
|
||||
protected function handleAfterSaveAccounts(Entity $entity, array $options = array())
|
||||
{
|
||||
$accountIdChanged = $entity->has('accountId') && $entity->get('accountId') != $entity->getFetched('accountId');
|
||||
$titleChanged = $entity->has('title') && $entity->get('title') != $entity->getFetched('title');
|
||||
|
||||
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
|
||||
|
||||
class Lead extends \Espo\Core\ORM\Repositories\RDB
|
||||
{
|
||||
public function afterSave(Entity $entity, array $options)
|
||||
public function afterSave(Entity $entity, array $options = array())
|
||||
{
|
||||
parent::afterSave($entity, $options);
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ use Espo\ORM\Entity;
|
||||
|
||||
class Meeting extends \Espo\Core\ORM\Repositories\RDB
|
||||
{
|
||||
protected function beforeSave(Entity $entity, array $options)
|
||||
protected function beforeSave(Entity $entity, array $options = array())
|
||||
{
|
||||
parent::beforeSave($entity, $options);
|
||||
|
||||
|
||||
@@ -33,6 +33,16 @@ use Espo\ORM\Entity;
|
||||
|
||||
class Opportunity extends \Espo\Core\ORM\Repositories\RDB
|
||||
{
|
||||
public function beforeSave(Entity $entity, array $options = array())
|
||||
{
|
||||
parent::beforeSave($entity, $options);
|
||||
|
||||
if ($entity->isNew()) {
|
||||
if (!$entity->has('probability') && $entity->get('stage')) {
|
||||
$probability = $this->getMetadata()->get('entityDefs.Opportunity.probabilityMap.' . $entity->get('stage'), 0);
|
||||
$entity->set('probability', $probability);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"links": {
|
||||
"articles": "Knlowledge Base Articles"
|
||||
"articles": "Knowledge Base Articles"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,42 +1,80 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"emailAddress": "Email",
|
||||
"website": "Интернет сайт",
|
||||
"phoneNumber": "Phone",
|
||||
"billingAddress": "Платежный адрес",
|
||||
"shippingAddress": "Почтовый адрес",
|
||||
"description": "Описание",
|
||||
"sicCode": "SicCode",
|
||||
"industry": "Промышленность",
|
||||
"type": "Type",
|
||||
"contactRole": "Роль"
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"emailAddress": "Адрес эл. почты",
|
||||
"website": "Сайт",
|
||||
"phoneNumber": "Телефон",
|
||||
"billingAddress": "Платежный адрес",
|
||||
"shippingAddress": "Почтовый адрес",
|
||||
"description": "Описание",
|
||||
"sicCode": "SIC код",
|
||||
"industry": "Вид деятельности",
|
||||
"type": "Тип",
|
||||
"contactRole": "Должность",
|
||||
"campaign": "Кампания",
|
||||
"targetLists": "Списки целей",
|
||||
"targetList": "Список целей"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Контакты",
|
||||
"opportunities": "Сделки",
|
||||
"cases": "Обращения",
|
||||
"documents": "Документы",
|
||||
"meetingsPrimary": "Встречи (развернуто)",
|
||||
"callsPrimary": "Звонки (развернуто)",
|
||||
"tasksPrimary": "Задачи (развернуто)",
|
||||
"emailsPrimary": "Письма (развернуто)",
|
||||
"targetLists": "Списки целей",
|
||||
"campaignLogRecords": "Журнал кампании",
|
||||
"campaign": "Кампания",
|
||||
"portalUsers": "Пользователи портала"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Customer": "Заказчик",
|
||||
"Investor": "Вкладчик",
|
||||
"Partner": "Партнер",
|
||||
"Reseller": "Посредник"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Контакты",
|
||||
"opportunities": "Сделки",
|
||||
"cases": "Обращения",
|
||||
"documents": "Documents"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Customer": "Заказчик",
|
||||
"Investor": "Вкладчик",
|
||||
"Partner": "Партнер",
|
||||
"Reseller": "Посредник"
|
||||
},
|
||||
"industry": {
|
||||
"Apparel": "Одежда",
|
||||
"Banking": "Банковское дело",
|
||||
"Computer Software": "Программное обеспечение",
|
||||
"Education": "Образование",
|
||||
"Electronics": "Электроника",
|
||||
"Finance": "Финансы",
|
||||
"Insurance": "Страхование"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Account": "Создать контрагента",
|
||||
"Copy Billing": "Copy Billing"
|
||||
"industry": {
|
||||
"Agriculture": "Agriculture",
|
||||
"Advertising": "Advertising",
|
||||
"Apparel & Accessories": "Apparel & Accessories",
|
||||
"Automotive": "Automotive",
|
||||
"Banking": "Banking",
|
||||
"Biotechnology": "Biotechnology",
|
||||
"Building Materials & Equipment": "Building Materials & Equipment",
|
||||
"Chemical": "Chemical",
|
||||
"Computer": "Computer",
|
||||
"Education": "Education",
|
||||
"Electronics": "Electronics",
|
||||
"Energy": "Energy",
|
||||
"Entertainment & Leisure": "Entertainment & Leisure",
|
||||
"Finance": "Finance",
|
||||
"Food & Beverage": "Food & Beverage",
|
||||
"Grocery": "Grocery",
|
||||
"Healthcare": "Healthcare",
|
||||
"Insurance": "Insurance",
|
||||
"Legal": "Legal",
|
||||
"Manufacturing": "Manufacturing",
|
||||
"Publishing": "Publishing",
|
||||
"Real Estate": "Real Estate",
|
||||
"Service": "Service",
|
||||
"Sports": "Sports",
|
||||
"Software": "Software",
|
||||
"Technology": "Technology",
|
||||
"Telecommunications": "Telecommunications",
|
||||
"Television": "Television",
|
||||
"Transportation": "Transportation",
|
||||
"Venture Capital": "Venture Capital"
|
||||
}
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Account": "Создать контрагента",
|
||||
"Copy Billing": "Копировать адрес"
|
||||
},
|
||||
"presetFilters": {
|
||||
"customers": "Заказчики",
|
||||
"partners": "Партнеры"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"layouts": {
|
||||
"detailConvert": "Преобразовать потенциального клиента"
|
||||
}
|
||||
}
|
||||
"layouts": {
|
||||
"detailConvert": "Преобразовать кандидата",
|
||||
"listForAccount": "Список (для контрагента)"
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"modes": {
|
||||
"month": "месяц",
|
||||
"week": "неделя",
|
||||
"day": "день",
|
||||
"agendaWeek": "неделя",
|
||||
"agendaDay": "день"
|
||||
},
|
||||
"labels": {
|
||||
"Today": "Сегодня",
|
||||
"Create": "Создать"
|
||||
}
|
||||
}
|
||||
"modes": {
|
||||
"month": "Месяц",
|
||||
"week": "Неделя",
|
||||
"agendaWeek": "Неделя",
|
||||
"day": "День",
|
||||
"agendaDay": "День"
|
||||
},
|
||||
"labels": {
|
||||
"Today": "Сегодня",
|
||||
"Create": "Создать"
|
||||
}
|
||||
}
|
||||
@@ -1,45 +1,49 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"parent": "Источник",
|
||||
"status": "Статус",
|
||||
"dateStart": "Дата начала",
|
||||
"dateEnd": "Дата окончания",
|
||||
"direction": "Категория",
|
||||
"duration": "Длительность",
|
||||
"description": "Описание",
|
||||
"users": "Пользователи",
|
||||
"contacts": "Контакты",
|
||||
"leads": "Потенциальные клиенты",
|
||||
"reminders": "Напоминания"
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"parent": "Источник",
|
||||
"status": "Статус",
|
||||
"dateStart": "Дата начала",
|
||||
"dateEnd": "Дата окончания",
|
||||
"direction": "Категория",
|
||||
"duration": "Длительность",
|
||||
"description": "Описание",
|
||||
"users": "Пользователи",
|
||||
"contacts": "Контакты",
|
||||
"leads": "Кандидаты",
|
||||
"reminders": "Напоминания",
|
||||
"account": "Контрагент"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Запланирован",
|
||||
"Held": "Состоялся",
|
||||
"Not Held": "Не состоялся"
|
||||
},
|
||||
"links": {
|
||||
"direction": {
|
||||
"Outbound": "Исходящий",
|
||||
"Inbound": "Входящий"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Запланированный",
|
||||
"Held": "Выполнен",
|
||||
"Not Held": "Не состоялся"
|
||||
},
|
||||
"direction": {
|
||||
"Outbound": "Исходящий",
|
||||
"Inbound": "Входящий"
|
||||
},
|
||||
"acceptanceStatus": {
|
||||
"None": "Нет",
|
||||
"Accepted": "Принятый",
|
||||
"Declined": "Отклоненный"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Call": "Новый звонок",
|
||||
"Set Held": "Был выполнен",
|
||||
"Set Not Held": "Set Not Held",
|
||||
"Send Invitations": "Отправить приглашения"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Запланированные",
|
||||
"held": "Завершенные",
|
||||
"todays": "На сегодня"
|
||||
"acceptanceStatus": {
|
||||
"None": "Нет",
|
||||
"Accepted": "Согласен",
|
||||
"Declined": "Не согласен",
|
||||
"Tentative": "Есть сомнения"
|
||||
}
|
||||
}
|
||||
},
|
||||
"massActions": {
|
||||
"setHeld": "Состоялось",
|
||||
"setNotHeld": "Не состоялось"
|
||||
},
|
||||
"labels": {
|
||||
"Create Call": "Создать звонок",
|
||||
"Set Held": "Состоялось",
|
||||
"Set Not Held": "Не состоялось",
|
||||
"Send Invitations": "Отправить приглашения"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Запланированные",
|
||||
"held": "Завершенные",
|
||||
"todays": "На сегодня"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"description": "Описание",
|
||||
"status": "Статус",
|
||||
"type": "Тип",
|
||||
"startDate": "Дата начала",
|
||||
"endDate": "Дата окончания",
|
||||
"targetLists": "Списки целей",
|
||||
"excludingTargetLists": "Исключая списки целей",
|
||||
"sentCount": "Отправлено",
|
||||
"openedCount": "Открыто",
|
||||
"clickedCount": "Проследовало по ссылке",
|
||||
"optedOutCount": "Отписалось",
|
||||
"bouncedCount": "Возвратов писем",
|
||||
"hardBouncedCount": "Жестких возвратов",
|
||||
"softBouncedCount": "Мягких возвратов",
|
||||
"leadCreatedCount": "Кандидатов создано",
|
||||
"revenue": "Доход",
|
||||
"revenueConverted": "Доход (сконвертированный)",
|
||||
"budget": "Бюджет",
|
||||
"budgetConverted": "Бюджет (сконвертированный)"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Списки целей",
|
||||
"excludingTargetLists": "Исключая списки целей",
|
||||
"accounts": "Контрагенты",
|
||||
"contacts": "Контакты",
|
||||
"leads": "Кандидаты",
|
||||
"opportunities": "Сделки",
|
||||
"campaignLogRecords": "Журнал",
|
||||
"massEmails": "Массовые рассылки эл. писем",
|
||||
"trackingUrls": "Целевые URL-адреса"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Email": "Эл. письмо",
|
||||
"Web": "Интернет",
|
||||
"Television": "Телевидение",
|
||||
"Radio": "Радио",
|
||||
"Newsletter": "Информационный бюллетень",
|
||||
"Mail": "Письмо"
|
||||
},
|
||||
"status": {
|
||||
"Planning": "Запланирована",
|
||||
"Active": "Активна",
|
||||
"Inactive": "Не активна",
|
||||
"Complete": "Завершена"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Campaign": "Создать кампанию",
|
||||
"Target Lists": "Списки целей",
|
||||
"Statistics": "Статистика",
|
||||
"hard": "жесткий",
|
||||
"soft": "мягкий",
|
||||
"Unsubscribe": "Отписаться",
|
||||
"Mass Emails": "Массовые рассылки эл. писем",
|
||||
"Email Templates": "Шаблоны эл. писем"
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Активна"
|
||||
},
|
||||
"messages": {
|
||||
"unsubscribed": "Вы были удалены из нашего списка рассылки."
|
||||
},
|
||||
"tooltips": {
|
||||
"targetLists": "Цели которые должны получить сообщения.",
|
||||
"excludingTargetLists": "Цели которые не должны получить сообщения."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"fields": {
|
||||
"action": "Действие",
|
||||
"actionDate": "Дата",
|
||||
"data": "Данные",
|
||||
"campaign": "Кампания",
|
||||
"parent": "Цель",
|
||||
"object": "Объект",
|
||||
"application": "Приложение",
|
||||
"queueItem": "Queue Item",
|
||||
"stringData": "Строка данных",
|
||||
"stringAdditionalData": "Строка дополнительных данных"
|
||||
},
|
||||
"links": {
|
||||
"queueItem": "Queue Item",
|
||||
"parent": "Источник",
|
||||
"object": "Объект"
|
||||
},
|
||||
"options": {
|
||||
"action": {
|
||||
"Sent": "Отправлено",
|
||||
"Opened": "Открыто",
|
||||
"Opted Out": "Отписалось",
|
||||
"Bounced": "Возвратов писем",
|
||||
"Clicked": "Проследовало по ссылке",
|
||||
"Lead Created": "Кандидатов создано"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"All": "Все"
|
||||
},
|
||||
"presetFilters": {
|
||||
"sent": "Отправлено",
|
||||
"opened": "Открыто",
|
||||
"optedOut": "Отписалось",
|
||||
"bounced": "Возвратов писем",
|
||||
"clicked": "Проследовало по ссылке",
|
||||
"leadCreated": "Кандидатов создано"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"fields": {
|
||||
"url": "Целевой URL-адрес",
|
||||
"urlToUse": "Код для подстановки вместо целевого URL-адреса",
|
||||
"campaign": "Кампания"
|
||||
},
|
||||
"links": {
|
||||
"campaign": "Кампания"
|
||||
},
|
||||
"labels": {
|
||||
"Create CampaignTrackingUrl": "Создать целевой URL-адрес"
|
||||
}
|
||||
}
|
||||
@@ -1,42 +1,57 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"number": "Номер",
|
||||
"status": "статус",
|
||||
"account": "Контрагент",
|
||||
"contact": "Контакт",
|
||||
"priority": "Приоритет",
|
||||
"type": "Type",
|
||||
"description": "Описание"
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"number": "Номер",
|
||||
"status": "Статус",
|
||||
"account": "Контрагент",
|
||||
"contact": "Контакт",
|
||||
"contacts": "Контакты",
|
||||
"priority": "Приоритет",
|
||||
"type": "Тип",
|
||||
"description": "Описание",
|
||||
"inboundEmail": "Входящая эл. почта"
|
||||
},
|
||||
"links": {
|
||||
"inboundEmail": "Входящая эл. почта",
|
||||
"account": "Контрагент",
|
||||
"contact": "Контакт (основной)",
|
||||
"Contacts": "Контакты",
|
||||
"meetings": "Встречи",
|
||||
"calls": "Звонки",
|
||||
"tasks": "Задачи",
|
||||
"emails": "Эл. письма",
|
||||
"articles": "Статьи базы знаний"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"New": "Новое",
|
||||
"Assigned": "Назначено",
|
||||
"Pending": "В ожидании",
|
||||
"Closed": "Закрыто",
|
||||
"Rejected": "Отклонено",
|
||||
"Duplicate": "Дубликат"
|
||||
},
|
||||
"links": {
|
||||
"priority": {
|
||||
"Low": "Низкий",
|
||||
"Normal": "Обычный",
|
||||
"High": "Высокий",
|
||||
"Urgent": "Срочно"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"New": "Новый",
|
||||
"Assigned": "На рассмотрении",
|
||||
"Pending": "Текущее",
|
||||
"Closed": "Закрыто",
|
||||
"Rejected": "Отказано",
|
||||
"Duplicate": "Копия"
|
||||
},
|
||||
"priority" : {
|
||||
"Low": "Низкий",
|
||||
"Normal": "Нормальный",
|
||||
"High": "Высокий",
|
||||
"Urgent": "Срочно"
|
||||
},
|
||||
"type": {
|
||||
"Question": "Вопрос",
|
||||
"Incident": "Происшествие",
|
||||
"Problem": "Проблема"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Case": "Создать обращение"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Открытые",
|
||||
"closed": "Закрытые"
|
||||
"type": {
|
||||
"Question": "Вопрос",
|
||||
"Incident": "Происшествие",
|
||||
"Problem": "Проблема"
|
||||
}
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Case": "Создать обращение",
|
||||
"Close": "Закрыть",
|
||||
"Reject": "Отклонить",
|
||||
"Closed": "Закрыто",
|
||||
"Rejected": "Отклонено"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Открытые",
|
||||
"closed": "Закрытые"
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,46 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"emailAddress": "Email",
|
||||
"title": "Название",
|
||||
"account": "Контрагент",
|
||||
"accounts": "Контрагенты",
|
||||
"phoneNumber": "Phone",
|
||||
"accountType": "Тип контрагента",
|
||||
"doNotCall": "Не звонить",
|
||||
"address": "Address",
|
||||
"opportunityRole": "Роль сделки",
|
||||
"accountRole": "Роль",
|
||||
"description": "Описание"
|
||||
},
|
||||
"links": {
|
||||
"opportunities": "Сделки",
|
||||
"cases": "Обращения"
|
||||
},
|
||||
"labels": {
|
||||
"Create Contact": "Создать контакт"
|
||||
},
|
||||
"options": {
|
||||
"opportunityRole": {
|
||||
"": "--Нет--",
|
||||
"Decision Maker": "Принимающий решение",
|
||||
"Evaluator": "Оценщик",
|
||||
"Influencer": "Консультант"
|
||||
}
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"emailAddress": "Адрес эл. почты",
|
||||
"title": "Должность",
|
||||
"accountRole": "Должность",
|
||||
"account": "Контрагент",
|
||||
"accounts": "Контрагенты",
|
||||
"phoneNumber": "Телефон",
|
||||
"accountType": "Тип контрагента",
|
||||
"doNotCall": "Не звонить",
|
||||
"address": "Адрес",
|
||||
"opportunityRole": "Роль в сделке",
|
||||
"description": "Описание",
|
||||
"campaign": "Кампания",
|
||||
"targetLists": "Списки целей",
|
||||
"targetList": "Список целей",
|
||||
"portalUser": "Пользователь портала"
|
||||
},
|
||||
"links": {
|
||||
"opportunities": "Cделки",
|
||||
"cases": "Обращения",
|
||||
"targetLists": "Списки целей",
|
||||
"campaignLogRecords": "Журнал кампании",
|
||||
"campaign": "Кампания",
|
||||
"account": "Контрагент (основной)",
|
||||
"accounts": "Контрагенты",
|
||||
"casesPrimary": "Обращения (основной)",
|
||||
"portalUser": "Пользователь портала"
|
||||
},
|
||||
"labels": {
|
||||
"Create Contact": "Создать контакт"
|
||||
},
|
||||
"options": {
|
||||
"opportunityRole": {
|
||||
"": "Нет",
|
||||
"Decision Maker": "Принимающий решение",
|
||||
"Evaluator": "Оценщик",
|
||||
"Influencer": "Консультант"
|
||||
}
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"portalUsers": "Пользователи порталов",
|
||||
"notPortalUsers": "Не пользователи порталов"
|
||||
}
|
||||
}
|
||||
@@ -1,32 +1,42 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create Document": "Create Document",
|
||||
"Details": "Описание"
|
||||
"labels": {
|
||||
"Create Document": "Создать документ",
|
||||
"Details": "Описание"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"status": "Статус",
|
||||
"file": "Файл",
|
||||
"type": "Тип",
|
||||
"source": "Источник",
|
||||
"publishDate": "Опубликован",
|
||||
"expirationDate": "Актуален до",
|
||||
"description": "Описание",
|
||||
"accounts": "Контрагенты",
|
||||
"folder": "Папка"
|
||||
},
|
||||
"links": {
|
||||
"accounts": "Контрагенты",
|
||||
"opportunities": "Сделки",
|
||||
"folder": "Папка"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Active": "Действующий",
|
||||
"Draft": "Черновик",
|
||||
"Expired": "Просрочен",
|
||||
"Canceled": "Отменен"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"status": "статус",
|
||||
"file": "File",
|
||||
"type": "Type",
|
||||
"source": "Source",
|
||||
"publishDate": "Publish Date",
|
||||
"expirationDate": "Expiration Date",
|
||||
"description": "Описание"
|
||||
},
|
||||
"links": {
|
||||
"accounts": "Контрагенты",
|
||||
"opportunities": "Сделки"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Active": "Активный",
|
||||
"Draft": "Черновик",
|
||||
"Expired": "Expired",
|
||||
"Canceled": "Отменена"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Активный",
|
||||
"draft": "Черновик"
|
||||
"type": {
|
||||
"": "Нет",
|
||||
"Contract": "Contract",
|
||||
"NDA": "NDA",
|
||||
"EULA": "EULA",
|
||||
"License Agreement": "License Agreement"
|
||||
}
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Действующий",
|
||||
"draft": "Черновик"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create DocumentFolder": "Создать папку",
|
||||
"Manage Categories": "Управление папками"
|
||||
},
|
||||
"links": {
|
||||
"documents": "Документы"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create Lead": "Создать кандидата",
|
||||
"Create Contact": "Создать контакт",
|
||||
"Create Task": "Создать задачу",
|
||||
"Create Case": "Создать обращение"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"status": "Статус",
|
||||
"target": "Цель",
|
||||
"sentAt": "Дата отправки",
|
||||
"attemptCount": "Попыток",
|
||||
"emailAddress": "Адрес эл. почты",
|
||||
"massEmail": "Массовая рассылка эл. писем",
|
||||
"isTest": "Тест"
|
||||
},
|
||||
"links": {
|
||||
"target": "Цель",
|
||||
"massEmail": "Массовая рассылка эл. писем"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Pending": "В ожидании",
|
||||
"Sent": "Отправлено",
|
||||
"Failed": "Сбой"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"pending": "В ожидании",
|
||||
"sent": "Отправлено",
|
||||
"failed": "Сбой"
|
||||
}
|
||||
}
|
||||
@@ -1,90 +1,115 @@
|
||||
{
|
||||
"scopeNames": {
|
||||
"Account": "Контрагент",
|
||||
"Contact": "Контакт",
|
||||
"Lead": "Потенциальный клиент",
|
||||
"Target": "Цель",
|
||||
"Opportunity": "Cделка",
|
||||
"Meeting": "Встреча",
|
||||
"Calendar": "Календарь",
|
||||
"Call": "Вызов",
|
||||
"Task": "Задача",
|
||||
"Case": "Обращение",
|
||||
"InboundEmail": "Входящая почта",
|
||||
"Document": "Document"
|
||||
},
|
||||
"scopeNamesPlural": {
|
||||
"Account": "Контрагенты",
|
||||
"Contact": "Контакты",
|
||||
"Lead": "Потенциальные клиенты",
|
||||
"Target": "Цели",
|
||||
"Opportunity": "Сделки",
|
||||
"Meeting": "Встречи",
|
||||
"Calendar": "Календарь",
|
||||
"Call": "Звонки",
|
||||
"Task": "Задачи",
|
||||
"Case": "Обращения",
|
||||
"InboundEmail": "Inbound Emails",
|
||||
"Document": "Documents"
|
||||
},
|
||||
"dashlets": {
|
||||
"Leads": "Мои потенциальные клиенты",
|
||||
"Opportunities": "Мои сделки",
|
||||
"Tasks": "Мои задачи",
|
||||
"Cases": "Мои обращения",
|
||||
"Calendar": "Календарь",
|
||||
"Calls": "Мои звонки",
|
||||
"Meetings": "Мои встречи",
|
||||
"OpportunitiesByStage": "Сделки по стадии",
|
||||
"OpportunitiesByLeadSource": "Сделки по источнику потенциального клиента",
|
||||
"SalesByMonth": "Продажи по месяцам",
|
||||
"SalesPipeline": "Источники продаж"
|
||||
},
|
||||
"labels": {
|
||||
"Create InboundEmail": "Создать входящую почту",
|
||||
"Activities": "Мероприятия",
|
||||
"History": "История",
|
||||
"Attendees": "Участники",
|
||||
"Schedule Meeting": "Запланировать встречу",
|
||||
"Schedule Call": "Запланировать звонок",
|
||||
"Compose Email": "Создать e-mail",
|
||||
"Log Meeting": "Записать встречу",
|
||||
"Log Call": "Записать звонок",
|
||||
"Archive Email": "Отправить письмо в архив",
|
||||
"Create Task": "Создать задачу",
|
||||
"Tasks": "Задачи"
|
||||
},
|
||||
"fields": {
|
||||
"billingAddressCity": "Город",
|
||||
"billingAddressCountry": "Страна",
|
||||
"billingAddressPostalCode": "Почтовый индекс",
|
||||
"billingAddressState": "Регион",
|
||||
"billingAddressStreet": "Улица",
|
||||
"addressCity": "Город",
|
||||
"addressStreet": "Улица",
|
||||
"addressCountry": "Страна",
|
||||
"addressState": "Регион",
|
||||
"addressPostalCode": "Почтовый индекс",
|
||||
"shippingAddressCity": "Город доставки",
|
||||
"shippingAddressStreet": "Улица доставки",
|
||||
"shippingAddressCountry": "Страна доставки",
|
||||
"shippingAddressState": "Регион доставки",
|
||||
"shippingAddressPostalCode": "Почтовый код доставки"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Контакты",
|
||||
"opportunities": "Сделки",
|
||||
"leads": "Потенциальные клиенты",
|
||||
"meetings": "Встречи",
|
||||
"calls": "Звонки",
|
||||
"tasks": "Задачи",
|
||||
"emails": "Письма",
|
||||
"accounts": "Контрагенты",
|
||||
"cases": "Обращения",
|
||||
"documents": "Documents",
|
||||
"account": "Контрагент",
|
||||
"opportunity": "Cделка",
|
||||
"contact": "Контакт",
|
||||
"parent": "Источник"
|
||||
"links": {
|
||||
"parent": "Источник",
|
||||
"contacts": "Контакты",
|
||||
"opportunities": "Сделки",
|
||||
"leads": "Кандидаты",
|
||||
"meetings": "Встречи",
|
||||
"calls": "Звонки",
|
||||
"tasks": "Задачи",
|
||||
"emails": "Эл. письма",
|
||||
"accounts": "Контрагенты",
|
||||
"cases": "Обращения",
|
||||
"documents": "Документы",
|
||||
"account": "Контрагент",
|
||||
"opportunity": "Cделка",
|
||||
"contact": "Контакт"
|
||||
},
|
||||
"scopeNames": {
|
||||
"Account": "Контрагент",
|
||||
"Contact": "Контакт",
|
||||
"Lead": "Кандидат",
|
||||
"Target": "Цель",
|
||||
"Opportunity": "Cделка",
|
||||
"Meeting": "Встреча",
|
||||
"Calendar": "Календарь",
|
||||
"Call": "Звонок",
|
||||
"Task": "Задача",
|
||||
"Case": "Обращение",
|
||||
"Document": "Документ",
|
||||
"DocumentFolder": "Папка с документами",
|
||||
"Campaign": "Кампания",
|
||||
"TargetList": "Список целей",
|
||||
"MassEmail": "Массовая рассылка эл. писем",
|
||||
"EmailQueueItem": "Email Queue Item",
|
||||
"CampaignTrackingUrl": "Целевой URL-адрес",
|
||||
"Activities": "Действия",
|
||||
"KnowledgeBaseArticle": "Статья базы знаний",
|
||||
"KnowledgeBaseCategory": "Категория базы знаний"
|
||||
},
|
||||
"scopeNamesPlural": {
|
||||
"Account": "Контрагенты",
|
||||
"Contact": "Контакты",
|
||||
"Lead": "Кандидаты",
|
||||
"Target": "Цели",
|
||||
"Opportunity": "Сделки",
|
||||
"Meeting": "Встречи",
|
||||
"Calendar": "Календари",
|
||||
"Call": "Звонки",
|
||||
"Task": "Задачи",
|
||||
"Case": "Обращения",
|
||||
"Document": "Документы",
|
||||
"DocumentFolder": "Папки с документами",
|
||||
"Campaign": "Кампании",
|
||||
"TargetList": "Списки целей",
|
||||
"MassEmail": "Массовые рассылки эл. писем",
|
||||
"EmailQueueItem": "Email Queue Items",
|
||||
"CampaignTrackingUrl": "Целевые URL-адреса",
|
||||
"Activities": "Действия",
|
||||
"KnowledgeBaseArticle": "Статьи базы знаний",
|
||||
"KnowledgeBaseCategory": "Категории базы знаний"
|
||||
},
|
||||
"dashlets": {
|
||||
"Leads": "Мои кандидаты",
|
||||
"Opportunities": "Мои сделки",
|
||||
"Tasks": "Мои задачи",
|
||||
"Cases": "Мои обращения",
|
||||
"Calendar": "Календарь",
|
||||
"Calls": "Мои звонки",
|
||||
"Meetings": "Мои встречи",
|
||||
"OpportunitiesByStage": "Сделки по стадиям",
|
||||
"OpportunitiesByLeadSource": "Сделки по источнику кандидатов",
|
||||
"SalesByMonth": "Продажи по месяцам",
|
||||
"SalesPipeline": "Источники продаж",
|
||||
"Activities": "Мои действия"
|
||||
},
|
||||
"labels": {
|
||||
"Create InboundEmail": "Create Inbound Email",
|
||||
"Activities": "Действия",
|
||||
"History": "История",
|
||||
"Attendees": "Участники",
|
||||
"Schedule Meeting": "Запланировать встречу",
|
||||
"Schedule Call": "Запланировать звонок",
|
||||
"Compose Email": "Написать эл. письмо",
|
||||
"Log Meeting": "Записать встречу",
|
||||
"Log Call": "Записать звонок",
|
||||
"Archive Email": "Отправить эл. письмо в архив",
|
||||
"Create Task": "Создать задачу",
|
||||
"Tasks": "Задачи"
|
||||
},
|
||||
"fields": {
|
||||
"billingAddressCity": "Город",
|
||||
"addressCity": "Город",
|
||||
"billingAddressCountry": "Страна",
|
||||
"addressCountry": "Страна",
|
||||
"billingAddressPostalCode": "Индекс",
|
||||
"addressPostalCode": "Индекс",
|
||||
"billingAddressState": "Регион",
|
||||
"addressState": "Регион",
|
||||
"billingAddressStreet": "Улица",
|
||||
"addressStreet": "Улица",
|
||||
"billingAddressMap": "Карта",
|
||||
"addressMap": "Карта",
|
||||
"shippingAddressCity": "Город доставки",
|
||||
"shippingAddressStreet": "Улица доставки",
|
||||
"shippingAddressCountry": "Страна доставки",
|
||||
"shippingAddressState": "Регион доставки",
|
||||
"shippingAddressPostalCode": "Индекс доставки"
|
||||
},
|
||||
"options": {
|
||||
"reminderTypes": {
|
||||
"Popup": "Всплывающее окно",
|
||||
"Email": "Эл. письмо"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create KnowledgeBaseArticle": "Создать статью",
|
||||
"Any": "Любой"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"status": "Статус",
|
||||
"type": "Тип",
|
||||
"attachments": "Вложения",
|
||||
"publishDate": "Опубликована",
|
||||
"expirationDate": "Актуальна до",
|
||||
"description": "Описание",
|
||||
"body": "Тело",
|
||||
"categories": "Категории",
|
||||
"language": "Язык",
|
||||
"portals": "Порталы"
|
||||
},
|
||||
"links": {
|
||||
"cases": "Обращения",
|
||||
"opportunities": "Сделки",
|
||||
"categories": "Категории",
|
||||
"portals": "Порталы"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"In Review": "На рассмотрении",
|
||||
"Draft": "Черновик",
|
||||
"Archived": "В архиве",
|
||||
"Published": "Опубликована"
|
||||
},
|
||||
"type": {
|
||||
"Article": "Статья"
|
||||
}
|
||||
},
|
||||
"tooltips": {
|
||||
"portals": "Если не пусто, то эта статья будет доступна только в указанных порталах. Если пусто, то будет доступна во всех порталах."
|
||||
},
|
||||
"presetFilters": {
|
||||
"published": "Опубликована"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create KnowledgeBaseCategory": "Создать категорию",
|
||||
"Manage Categories": "Управление категориями"
|
||||
},
|
||||
"links": {
|
||||
"articles": "Статьи"
|
||||
}
|
||||
}
|
||||
@@ -1,51 +1,62 @@
|
||||
{
|
||||
"labels": {
|
||||
"Converted To": "Преобразован в",
|
||||
"Create Lead": "Создать потенциального клиента",
|
||||
"Convert": "Преобразовать"
|
||||
"labels": {
|
||||
"Converted To": "Преобразован в",
|
||||
"Create Lead": "Создать кандидата",
|
||||
"Convert": "Преобразовать"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"emailAddress": "Адрес эл. почты",
|
||||
"title": "Должность",
|
||||
"website": "Сайт",
|
||||
"phoneNumber": "Телефон",
|
||||
"accountName": "Контрагент",
|
||||
"doNotCall": "Не звонить",
|
||||
"address": "Адрес",
|
||||
"status": "Статус",
|
||||
"source": "Источник",
|
||||
"opportunityAmount": "Сумма сделки",
|
||||
"opportunityAmountConverted": "Сумма сделки (сконвертированная)",
|
||||
"description": "Описание",
|
||||
"createdAccount": "Контрагент",
|
||||
"createdContact": "Контакт",
|
||||
"createdOpportunity": "Cделка",
|
||||
"campaign": "Кампания",
|
||||
"targetLists": "Списки целей",
|
||||
"targetList": "Список целей"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Списки целей",
|
||||
"campaignLogRecords": "Журнал кампании",
|
||||
"campaign": "Кампания",
|
||||
"createdAccount": "Контрагент",
|
||||
"createdContact": "Контакт",
|
||||
"createdOpportunity": "Cделка"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"New": "Новый",
|
||||
"Assigned": "Назначен",
|
||||
"In Process": "В процессе",
|
||||
"Converted": "Преобразован",
|
||||
"Recycled": "Удален",
|
||||
"Dead": "Мертв"
|
||||
},
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"emailAddress": "Email",
|
||||
"title": "Название",
|
||||
"website": "Интернет сайт",
|
||||
"phoneNumber": "Phone",
|
||||
"accountName": "Имя контрагента",
|
||||
"doNotCall": "Не звонить",
|
||||
"address": "Address",
|
||||
"status": "статус",
|
||||
"source": "Source",
|
||||
"opportunityAmount": "Сумма сделки",
|
||||
"opportunityAmountConverted": "Сумма сделки (конвертирован)",
|
||||
"description": "Описание",
|
||||
"createdAccount": "Контрагент",
|
||||
"createdContact": "Контакт",
|
||||
"createdOpportunity": "Cделка"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"New": "Новый",
|
||||
"Assigned": "На рассмотрении",
|
||||
"In Process": "В процессе",
|
||||
"Converted": "Преобразовано",
|
||||
"Recycled": "Восстановленный",
|
||||
"Dead": "Мертв"
|
||||
},
|
||||
"source": {
|
||||
"Call": "Вызов",
|
||||
"Email": "Email",
|
||||
"Existing Customer": "Existing Customer",
|
||||
"Partner": "Партнер",
|
||||
"Public Relations": "Public Relations",
|
||||
"Web Site": "Web Site",
|
||||
"Campaign": "Campaign",
|
||||
"Other": "Дополнительно"
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Актуальные",
|
||||
"active": "Активные"
|
||||
"source": {
|
||||
"": "Нет",
|
||||
"Call": "Звонок",
|
||||
"Email": "Эл. письмо",
|
||||
"Existing Customer": "Существующий клиент",
|
||||
"Partner": "Партнер",
|
||||
"Public Relations": "Связи с общественностью",
|
||||
"Web Site": "Сайт",
|
||||
"Campaign": "Кампания",
|
||||
"Other": "Другое"
|
||||
}
|
||||
}
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Активный",
|
||||
"actual": "Актуальный",
|
||||
"converted": "Преобразованный"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"status": "Статус",
|
||||
"storeSentEmails": "Сохранять отправленные эл. письма",
|
||||
"startAt": "Дата начала",
|
||||
"fromAddress": "Адрес отправителя",
|
||||
"fromName": "Имя отправителя",
|
||||
"replyToAddress": "Обратный адрес",
|
||||
"replyToName": "Имя для обратного адреса",
|
||||
"campaign": "Кампания",
|
||||
"emailTemplate": "Шаблон эл. письма",
|
||||
"inboundEmail": "Учетная запись эл. почты",
|
||||
"targetLists": "Списки целей",
|
||||
"excludingTargetLists": "Исключая списки целей",
|
||||
"optOutEntirely": "Отписать навсегда"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Списки целей",
|
||||
"excludingTargetLists": "Исключая списки целей",
|
||||
"queueItems": "Queue Items",
|
||||
"campaign": "Кампания",
|
||||
"emailTemplate": "Шаблон эл. письма",
|
||||
"inboundEmail": "Учетная запись эл. почты"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Draft": "Черновик",
|
||||
"Pending": "В ожидании",
|
||||
"In Process": "В процессе",
|
||||
"Complete": "Завершена",
|
||||
"Canceled": "Отменена",
|
||||
"Failed": "Сбой"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create MassEmail": "Создать массовую рассылку эл. писем",
|
||||
"Send Test": "Отправить тестовое эл. письмо"
|
||||
},
|
||||
"messages": {
|
||||
"selectAtLeastOneTarget": "Выберите хотя бы одну цель",
|
||||
"testSent": "Должно отправиться тестовое эл. письмо"
|
||||
},
|
||||
"tooltips": {
|
||||
"optOutEntirely": "Адреса эл. почты получателей, которые отписались будут помечены как отписавшиеся и больше не будут получать массовые рассылки эл. писем.",
|
||||
"targetLists": "Цели которые должны получить сообщения.",
|
||||
"excludingTargetLists": "Цели которые не должны получить сообщения."
|
||||
}
|
||||
}
|
||||
@@ -1,40 +1,46 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"parent": "Источник",
|
||||
"status": "Статус",
|
||||
"dateStart": "Дата начала",
|
||||
"dateEnd": "Дата окончания",
|
||||
"duration": "Длительность",
|
||||
"description": "Описание",
|
||||
"users": "Пользователи",
|
||||
"contacts": "Контакты",
|
||||
"leads": "Потенциальные клиенты",
|
||||
"reminders": "Напоминания"
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"parent": "Источник",
|
||||
"status": "Статус",
|
||||
"dateStart": "Дата начала",
|
||||
"dateEnd": "Дата окончания",
|
||||
"duration": "Длительность",
|
||||
"description": "Описание",
|
||||
"users": "Пользователи",
|
||||
"contacts": "Контакты",
|
||||
"leads": "Кандидаты",
|
||||
"reminders": "Напоминания",
|
||||
"account": "Контрагент"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Запланирована",
|
||||
"Held": "Состоялась",
|
||||
"Not Held": "Не состоялась"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Planned": "Запланированный",
|
||||
"Held": "Выполнен",
|
||||
"Not Held": "Не состоялся"
|
||||
},
|
||||
"acceptanceStatus": {
|
||||
"None": "Нет",
|
||||
"Accepted": "Accepted",
|
||||
"Declined": "Declined"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Meeting": "Создать встречу",
|
||||
"Set Held": "Был выполнен",
|
||||
"Set Not Held": "Set Not Held",
|
||||
"Send Invitations": "Отправить приглашения"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Запланированные",
|
||||
"held": "Завершенные",
|
||||
"todays": "На сегодня"
|
||||
"acceptanceStatus": {
|
||||
"None": "Нет",
|
||||
"Accepted": "Согласен",
|
||||
"Declined": "Не согласен",
|
||||
"Tentative": "Есть сомнения"
|
||||
}
|
||||
}
|
||||
},
|
||||
"massActions": {
|
||||
"setHeld": "Состоялось",
|
||||
"setNotHeld": "Не состоялось"
|
||||
},
|
||||
"labels": {
|
||||
"Create Meeting": "Создать встречу",
|
||||
"Set Held": "Состоялось",
|
||||
"Set Not Held": "Не состоялось",
|
||||
"Send Invitations": "Отправить приглашения",
|
||||
"on time": "во время",
|
||||
"before": "до начала"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Запланированные",
|
||||
"held": "Завершенные",
|
||||
"todays": "На сегодня"
|
||||
}
|
||||
}
|
||||
@@ -1,41 +1,44 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"account": "Контрагент",
|
||||
"stage": "Стадия",
|
||||
"amount": "Сумма",
|
||||
"probability": "Вероятность успеха, %",
|
||||
"leadSource": "Источник потенциального клиента",
|
||||
"doNotCall": "Не звонить",
|
||||
"closeDate": "Дата закрытия",
|
||||
"contacts": "Контакты",
|
||||
"description": "Описание",
|
||||
"amountConverted": "Сумма (сконвертирована)",
|
||||
"amountWeightedConverted": "Amount Weighted"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Контакты",
|
||||
"documents": "Documents"
|
||||
},
|
||||
"options": {
|
||||
"stage": {
|
||||
"Prospecting": "Привлечение клиента",
|
||||
"Qualification": "Оценка возможности",
|
||||
"Needs Analysis": "Требует анализа",
|
||||
"Value Proposition": "Выбор предложения/оферты",
|
||||
"Id. Decision Makers": "Определение ответственного лица",
|
||||
"Perception Analysis": "Проведение анализа",
|
||||
"Proposal/Price Quote": "Отправлено предложение/оферта",
|
||||
"Negotiation/Review": "Согласование/рассмотрение",
|
||||
"Closed Won": "Закрыто - Успех",
|
||||
"Closed Lost": "Закрыто - Провал"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Opportunity": "Создать сделку"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Открыть",
|
||||
"won": "Успешные"
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"account": "Контрагент",
|
||||
"stage": "Стадия",
|
||||
"amount": "Сумма",
|
||||
"probability": "Вероятность успеха, %",
|
||||
"leadSource": "Источник кандидата",
|
||||
"doNotCall": "Не звонить",
|
||||
"closeDate": "Дата закрытия",
|
||||
"contacts": "Контакты",
|
||||
"description": "Описание",
|
||||
"amountConverted": "Сумма (сконвертированная)",
|
||||
"amountWeightedConverted": "Сумма (средневзвешенная)",
|
||||
"campaign": "Кампания"
|
||||
},
|
||||
"links": {
|
||||
"contacts": "Контакты",
|
||||
"documents": "Документы",
|
||||
"campaign": "Кампания"
|
||||
},
|
||||
"options": {
|
||||
"stage": {
|
||||
"Prospecting": "Привлечение клиента",
|
||||
"Qualification": "Оценка возможности",
|
||||
"Needs Analysis": "Требует анализа",
|
||||
"Value Proposition": "Выбор предложения/оферты",
|
||||
"Id. Decision Makers": "Определение ответственного лица",
|
||||
"Perception Analysis": "Проведение анализа",
|
||||
"Proposal/Price Quote": "Отправлено предложение/оферта",
|
||||
"Negotiation/Review": "Согласование/рассмотрение",
|
||||
"Closed Won": "Закрыто - Успех",
|
||||
"Closed Lost": "Закрыто - Провал"
|
||||
}
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Opportunity": "Создать сделку"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Открыть",
|
||||
"won": "Успешные",
|
||||
"lost": "Провальные"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"links": {
|
||||
"articles": "Статьи базы знаний"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"options": {
|
||||
"job": {
|
||||
"ProcessMassEmail": "Отправка массовых рассылок эл. писем",
|
||||
"ControlKnowledgeBaseArticleStatus": "Контроль статуса статей базы знаний"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,17 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"emailAddress": "Email",
|
||||
"title": "Название",
|
||||
"website": "Интернет сайт",
|
||||
"accountName": "Имя контрагента",
|
||||
"phoneNumber": "Phone",
|
||||
"doNotCall": "Не звонить",
|
||||
"address": "Address",
|
||||
"description": "Описание"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
"labels": {
|
||||
"Create Target": "Создать цель",
|
||||
"Convert to Lead": "Преобразовать в потенциального клиента"
|
||||
}
|
||||
}
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"emailAddress": "Адрес эл. почты",
|
||||
"title": "Должность",
|
||||
"website": "Сайт",
|
||||
"accountName": "Контрагент",
|
||||
"phoneNumber": "Телефон",
|
||||
"doNotCall": "Не звонить",
|
||||
"address": "Адрес",
|
||||
"description": "Описание"
|
||||
},
|
||||
"labels": {
|
||||
"Create Target": "Создать цель",
|
||||
"Convert to Lead": "Преобразовать в кандидата"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"description": "Описание",
|
||||
"entryCount": "Количество",
|
||||
"campaigns": "Кампании",
|
||||
"endDate": "Дата окончания",
|
||||
"targetLists": "Списки целей"
|
||||
},
|
||||
"links": {
|
||||
"accounts": "Контрагенты",
|
||||
"contacts": "Контакты",
|
||||
"leads": "Кандидаты",
|
||||
"campaigns": "Кампании",
|
||||
"massEmails": "Массовые рассылки эл. писем"
|
||||
},
|
||||
"options": {
|
||||
"type": {
|
||||
"Email": "Эл. письмо",
|
||||
"Web": "Интернет",
|
||||
"Television": "Телевидение",
|
||||
"Radio": "Радио",
|
||||
"Newsletter": "Информационный бюллетень"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create TargetList": "Создать список целей",
|
||||
"Opted Out": "Отписавшиеся",
|
||||
"Cancel Opt-Out": "Отменить отписку",
|
||||
"Opt-Out": "Отписать"
|
||||
}
|
||||
}
|
||||
@@ -1,38 +1,45 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Имя",
|
||||
"parent": "Источник",
|
||||
"status": "Статус",
|
||||
"dateStart": "Дата начала",
|
||||
"dateEnd": "Date Due",
|
||||
"priority": "Приоритет",
|
||||
"description": "Описание",
|
||||
"isOverdue": "Просрочена"
|
||||
"fields": {
|
||||
"name": "Название",
|
||||
"parent": "Источник",
|
||||
"status": "Статус",
|
||||
"dateStart": "Дата начала",
|
||||
"dateEnd": "Дата окончания",
|
||||
"dateStartDate": "Дата начала (весь день)",
|
||||
"dateEndDate": "Дата окончания (весь день)",
|
||||
"priority": "Приоритет",
|
||||
"description": "Описание",
|
||||
"isOverdue": "Просрочена",
|
||||
"account": "Контрагент",
|
||||
"dateCompleted": "Дата завершения",
|
||||
"attachments": "Вложения"
|
||||
},
|
||||
"links": {
|
||||
"attachments": "Вложения"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Not Started": "Не началась",
|
||||
"Started": "Началась",
|
||||
"Completed": "Завершена",
|
||||
"Canceled": "Отменена",
|
||||
"Deferred": "Отложена"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Not Started": "Не началась",
|
||||
"Started": "Началась",
|
||||
"Completed": "Завершена",
|
||||
"Canceled": "Отменена"
|
||||
},
|
||||
"priority" : {
|
||||
"Low": "Низкий",
|
||||
"Normal": "Нормальный",
|
||||
"High": "Высокий",
|
||||
"Urgent": "Срочно"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Task": "Создать задачу",
|
||||
"Complete": "Завершить"
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Актуальные",
|
||||
"completed": "Завершенные",
|
||||
"todays": "На сегодня",
|
||||
"overdue": "Просроченные"
|
||||
"priority": {
|
||||
"Low": "Низкий",
|
||||
"Normal": "Обычный",
|
||||
"High": "Высокий",
|
||||
"Urgent": "Срочно"
|
||||
}
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
"Create Task": "Создать задачу",
|
||||
"Complete": "Завершить"
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Актуальные",
|
||||
"completed": "Завершенные",
|
||||
"todays": "На сегодня",
|
||||
"overdue": "Просроченные"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"links": {
|
||||
"targetLists": "Списки целей"
|
||||
}
|
||||
}
|
||||
@@ -35,10 +35,10 @@
|
||||
"Mail": "Пошта"
|
||||
},
|
||||
"status": {
|
||||
"Planning": "Планування",
|
||||
"Planning": "Запланований",
|
||||
"Active": "Активний",
|
||||
"Inactive": "Неактивний",
|
||||
"Complete": "Повне"
|
||||
"Complete": "Завершений"
|
||||
}
|
||||
},
|
||||
"labels": {
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"Create Case": "Створити кейс"
|
||||
},
|
||||
"presetFilters": {
|
||||
"open": "Відкрити",
|
||||
"open": "Відкрито",
|
||||
"closed": "Закрито"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
},
|
||||
"labels": {
|
||||
"Create Task": "Створити завдання",
|
||||
"Complete": "Повне"
|
||||
"Complete": "Завершити"
|
||||
},
|
||||
"presetFilters": {
|
||||
"actual": "Актуально",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"label":"",
|
||||
"rows":[
|
||||
[{"name":"name"}],
|
||||
[{"name":"website"}],
|
||||
[{"name":"website"}, {"name": "billingAddressCountry"}],
|
||||
[{"name":"emailAddress"}],
|
||||
[{"name":"phoneNumber"}],
|
||||
[{"name":"type"}, {"name":"industry"}]
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
"assignedUser",
|
||||
"billingAddress",
|
||||
"createdAt",
|
||||
"description",
|
||||
"emailAddress",
|
||||
"industry",
|
||||
"phoneNumber",
|
||||
"targetLists",
|
||||
"type",
|
||||
"description",
|
||||
"teams"
|
||||
"teams",
|
||||
"shippingAddress"
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{"name":"name","width":30,"link":true},
|
||||
{"name":"website", "notSortable": true},
|
||||
{"name":"phoneNumber", "notSortable": true},
|
||||
{"name":"billingAddressCity"}
|
||||
{"name":"name","link":true},
|
||||
{"name":"website", "notSortable": true, "width": 25},
|
||||
{"name":"type", "width": 16},
|
||||
{"name":"billingAddressCountry", "width": 18}
|
||||
]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[
|
||||
{"name":"name","width":50,"link":"true"},
|
||||
{"name":"billingAddressCity"}
|
||||
{"name":"billingAddressCountry"}
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{"name":"name","width":25,"link":true},
|
||||
{"name":"name", "link":true},
|
||||
{"name":"account","width":25},
|
||||
{"name":"emailAddress", "notSortable": true},
|
||||
{"name":"phoneNumber", "notSortable": true}
|
||||
{"name":"emailAddress", "notSortable": true, "width": 20},
|
||||
{"name":"phoneNumber", "notSortable": true, "width": 18}
|
||||
]
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
{"name":"phoneNumber", "fullWidth": true}
|
||||
],
|
||||
[
|
||||
{"name":"accountName", "fullWidth": true}
|
||||
{"name":"accountName"}, {"name":"addressCountry"}
|
||||
],
|
||||
[
|
||||
{"name":"title"}, {"name":"website"}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user