diff --git a/application/Espo/Core/Export/Xlsx.php b/application/Espo/Core/Export/Xlsx.php index 6e6fe3b7e4..7a30e48af2 100644 --- a/application/Espo/Core/Export/Xlsx.php +++ b/application/Espo/Core/Export/Xlsx.php @@ -491,7 +491,14 @@ class Xlsx extends \Espo\Core\Injectable $sheet->setCellValue("$col$rowNumber", $value); } - + } else if ($type == 'multiEnum' || $type == 'array') { + if (!empty($row[$name])) { + $array = json_decode($row[$name]); + if (is_array($array)) { + $value = implode(', ', $array); + $sheet->setCellValue("$col$rowNumber", $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); + } + } } else { if (array_key_exists($name, $row)) { $sheet->setCellValueExplicit("$col$rowNumber", $row[$name], \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); diff --git a/application/Espo/Core/Htmlizer/Htmlizer.php b/application/Espo/Core/Htmlizer/Htmlizer.php index a3a2e8d24d..dbcb182fe0 100644 --- a/application/Espo/Core/Htmlizer/Htmlizer.php +++ b/application/Espo/Core/Htmlizer/Htmlizer.php @@ -147,6 +147,7 @@ class Htmlizer } $type = $entity->getAttributeType($attribute); + $fieldType = $entity->getAttributeParam($attribute, 'fieldType'); if ($type == Entity::DATETIME) { if (!empty($data[$attribute])) { @@ -194,6 +195,14 @@ class Htmlizer unset($data[$attribute]); } + if ($fieldType === 'currency') { + if ($entity->getAttributeParam($attribute, 'attributeRole') === 'currency') { + if ($currencyValue = $data[$attribute]) { + $data[$attribute . 'Symbol'] = $this->metadata->get(['app', 'currency', 'symbolMap', $currencyValue]); + } + } + } + if (array_key_exists($attribute, $data)) { $keyRaw = $attribute . '_RAW'; $data[$keyRaw] = $data[$attribute]; diff --git a/application/Espo/Core/Utils/ClientManager.php b/application/Espo/Core/Utils/ClientManager.php index 0f5aac853b..66dc3c6520 100644 --- a/application/Espo/Core/Utils/ClientManager.php +++ b/application/Espo/Core/Utils/ClientManager.php @@ -108,6 +108,8 @@ class ClientManager $loaderCacheTimestamp = $cacheTimestamp; } + $linkList = $this->getMetadata()->get(['app', 'client', 'linkList'], []); + $scriptsHtml = ''; foreach ($jsFileList as $jsFile) { $src = $this->basePath . $jsFile . '?r=' . $cacheTimestamp; @@ -121,6 +123,22 @@ class ClientManager $additionalStyleSheetsHtml .= "\n "; } + $linksHtml = ''; + foreach ($linkList as $item) { + $href = $this->basePath . $item['href']; + if (empty($item['noTimestamp'])) { + $href .= '?r=' . $cacheTimestamp; + } + $as = $item['as'] ?? ''; + $rel = $item['rel'] ?? ''; + $type = $item['type'] ?? ''; + $additinalPlaceholder = ''; + if (!empty($item['crossorigin'])) { + $additinalPlaceholder .= ' crossorigin'; + } + $linksHtml .= "\n "; + } + $data = [ 'applicationId' => 'espocrm-application-id', 'apiUrl' => 'api/v1', @@ -134,6 +152,7 @@ class ClientManager 'appClientClassName' => 'app', 'scriptsHtml' => $scriptsHtml, 'additionalStyleSheetsHtml' => $additionalStyleSheetsHtml, + 'linksHtml' => $linksHtml, ]; $html = file_get_contents($htmlFilePath); diff --git a/application/Espo/Core/Utils/Database/Orm/Converter.php b/application/Espo/Core/Utils/Database/Orm/Converter.php index 4d88403c68..ebf0c5494b 100644 --- a/application/Espo/Core/Utils/Database/Orm/Converter.php +++ b/application/Espo/Core/Utils/Database/Orm/Converter.php @@ -91,7 +91,7 @@ class Converter 'select' => 'select', 'orderBy' => 'orderBy', 'where' => 'where', - 'storeArrayValues' => 'storeArrayValues' + 'storeArrayValues' => 'storeArrayValues', ); protected $idParams = array( @@ -506,6 +506,10 @@ class Converter } } + if (isset($fieldParams['type'])) { + $values['fieldType'] = $fieldParams['type']; + } + return $values; } diff --git a/application/Espo/Core/Utils/Database/Orm/Fields/Currency.php b/application/Espo/Core/Utils/Database/Orm/Fields/Currency.php index 601c2ac735..3608ad2fd5 100644 --- a/application/Espo/Core/Utils/Database/Orm/Fields/Currency.php +++ b/application/Espo/Core/Utils/Database/Orm/Fields/Currency.php @@ -100,6 +100,8 @@ class Currency extends Base 'sql' => $converedFieldName . " {direction}", 'leftJoins' => $leftJoins, ], + 'attributeRole' => 'valueConverted', + 'fieldType' => 'currency', ]; $defs[$entityType]['fields'][$fieldName]['orderBy'] = [ @@ -108,6 +110,12 @@ class Currency extends Base ]; } + $defs[$entityType]['fields'][$fieldName]['attributeRole'] = 'value'; + $defs[$entityType]['fields'][$fieldName]['fieldType'] = 'currency'; + + $defs[$entityType]['fields'][$fieldName . 'Currency']['attributeRole'] = 'currency'; + $defs[$entityType]['fields'][$fieldName . 'Currency']['fieldType'] = 'currency'; + return $defs; } } diff --git a/application/Espo/Core/Utils/Database/Orm/Fields/Link.php b/application/Espo/Core/Utils/Database/Orm/Fields/Link.php index bf25a637f2..6b008e69a9 100644 --- a/application/Espo/Core/Utils/Database/Orm/Fields/Link.php +++ b/application/Espo/Core/Utils/Database/Orm/Fields/Link.php @@ -35,25 +35,30 @@ class Link extends Base { $fieldParams = $this->getFieldParams(); - $data = array( - $entityName => array ( - 'fields' => array( - $fieldName.'Id' => array( + $data = [ + $entityName => [ + 'fields' => [ + $fieldName.'Id' => [ 'type' => 'foreignId', - 'index' => $fieldName - ), - $fieldName.'Name' => array( + 'index' => $fieldName, + 'attributeRole' => 'id', + 'fieldType' => 'link', + ], + $fieldName.'Name' => [ 'type' => 'varchar', - 'notStorable' => true - ) - ) - ), - 'unset' => array( - $entityName => array( - 'fields.'.$fieldName - ) - ) - ); + 'notStorable' => true, + 'attributeRole' => 'name', + 'fieldType' => 'link', + ] + ] + ], + 'unset' => [ + $entityName => [ + 'fields.' . $fieldName + ] + ] + ]; + if (!empty($fieldParams['notStorable'])) { $data[$entityName]['fields'][$fieldName.'Id']['notStorable'] = true; } @@ -64,4 +69,4 @@ class Link extends Base return $data; } -} \ No newline at end of file +} diff --git a/application/Espo/Core/Utils/Database/Orm/Fields/LinkMultiple.php b/application/Espo/Core/Utils/Database/Orm/Fields/LinkMultiple.php index d977c84dab..d9a65bea83 100644 --- a/application/Espo/Core/Utils/Database/Orm/Fields/LinkMultiple.php +++ b/application/Espo/Core/Utils/Database/Orm/Fields/LinkMultiple.php @@ -41,12 +41,16 @@ class LinkMultiple extends Base 'notStorable' => true, 'isLinkMultipleIdList' => true, 'relation' => $fieldName, - 'isUnordered' => true + 'isUnordered' => true, + 'attributeRole' => 'idList', + 'fieldType' => 'linkMultiple', ], $fieldName.'Names' => [ 'type' => 'jsonObject', 'notStorable' => true, - 'isLinkMultipleNameMap' => true + 'isLinkMultipleNameMap' => true, + 'attributeRole' => 'nameMap', + 'fieldType' => 'linkMultiple', ] ] ], @@ -71,7 +75,8 @@ class LinkMultiple extends Base $data[$entityName]['fields'][$fieldName . 'Columns'] = [ 'type' => 'jsonObject', 'notStorable' => true, - 'columns' => $columns + 'columns' => $columns, + 'attributeRole' => 'columnsMap', ]; } diff --git a/application/Espo/Core/Utils/Database/Orm/Fields/LinkParent.php b/application/Espo/Core/Utils/Database/Orm/Fields/LinkParent.php index 2e2de76f4d..7adebe13d2 100644 --- a/application/Espo/Core/Utils/Database/Orm/Fields/LinkParent.php +++ b/application/Espo/Core/Utils/Database/Orm/Fields/LinkParent.php @@ -33,33 +33,39 @@ class LinkParent extends Base { protected function load($fieldName, $entityName) { - $data = array( - $entityName => array ( - 'fields' => array( - $fieldName.'Id' => array( + $data = [ + $entityName => [ + 'fields' => [ + $fieldName.'Id' => [ 'type' => 'foreignId', - 'index' => $fieldName - ), - $fieldName.'Type' => array( + 'index' => $fieldName, + 'attributeRole' => 'id', + 'fieldType' => 'linkParent', + ], + $fieldName.'Type' => [ 'type' => 'foreignType', 'notNull' => false, 'index' => $fieldName, - 'len' => 100 - ), - $fieldName.'Name' => array( + 'len' => 100, + 'attributeRole' => 'type', + 'fieldType' => 'linkParent', + ], + $fieldName.'Name' => [ 'type' => 'varchar', 'notStorable' => true, 'relation' => $fieldName, - 'isParentName' => true - ) - ) - ), - 'unset' => array( - $entityName => array( + 'isParentName' => true, + 'attributeRole' => 'name', + 'fieldType' => 'linkParent', + ] + ] + ], + 'unset' => [ + $entityName => [ 'fields.'.$fieldName - ) - ) - ); + ] + ] + ]; $fieldParams = $this->getFieldParams(); @@ -72,4 +78,4 @@ class LinkParent extends Base return $data; } -} \ No newline at end of file +} diff --git a/application/Espo/Core/Utils/ThemeManager.php b/application/Espo/Core/Utils/ThemeManager.php index 2016867555..51b6ad27bd 100644 --- a/application/Espo/Core/Utils/ThemeManager.php +++ b/application/Espo/Core/Utils/ThemeManager.php @@ -52,8 +52,6 @@ class ThemeManager public function getStylesheet() { - return $this->metadata->get('themes.' . $this->getName() . '.stylesheet', 'client/css/espo.css'); + return $this->metadata->get(['themes', $this->getName(), 'stylesheet'], 'client/css/espo/espo.css'); } } - - diff --git a/application/Espo/Modules/Crm/Services/Activities.php b/application/Espo/Modules/Crm/Services/Activities.php index 2452de3141..924fbd8a78 100644 --- a/application/Espo/Modules/Crm/Services/Activities.php +++ b/application/Espo/Modules/Crm/Services/Activities.php @@ -104,7 +104,7 @@ class Activities extends \Espo\Core\Services\Base { $selectManager = $this->getSelectManagerFactory()->create('Meeting'); - $selectParams = array( + $selectParams = [ 'select' => [ 'id', 'name', @@ -119,33 +119,31 @@ class Activities extends \Espo\Core\Services\Base 'parentId', 'status', 'createdAt', - ['VALUE:', 'hasAttachment'] + ['VALUE:', 'hasAttachment'], ], - 'leftJoins' => [['users', 'usersLeft']], - 'whereClause' => array( - ), - 'customJoin' => '' - ); + 'leftJoins' => [['MeetingUser', 'usersLeftMiddle', ['usersLeftMiddle.meetingId:' => 'meeting.id']]], + 'whereClause' => [], + ]; - $where = array( + $where = [ 'usersLeftMiddle.userId' => $entity->id - ); + ]; if ($entity->isPortal() && $entity->get('contactId')) { $selectParams['leftJoins'][] = ['contacts', 'contactsLeft']; $selectParams['distinct'] = true; $where['contactsLeftMiddle.contactId'] = $entity->get('contactId'); - $selectParams['whereClause'][] = array( + $selectParams['whereClause'][] = [ 'OR' => $where - ); + ]; } else { $selectParams['whereClause'][] = $where; } if (!empty($statusList)) { - $selectParams['whereClause'][] = array( + $selectParams['whereClause'][] = [ 'status' => $statusList - ); + ]; } $selectManager->applyAccess($selectParams); @@ -176,12 +174,10 @@ class Activities extends \Espo\Core\Services\Base 'parentId', 'status', 'createdAt', - ['VALUE:', 'hasAttachment'] + ['VALUE:', 'hasAttachment'], ], - 'leftJoins' => [['users', 'usersLeft']], - 'whereClause' => [ - ], - 'customJoin' => '' + 'leftJoins' => [['CallUser', 'usersLeftMiddle', ['usersLeftMiddle.callId:' => 'call.id']]], + 'whereClause' => [], ]; $where = [ @@ -225,13 +221,13 @@ class Activities extends \Espo\Core\Services\Base $selectManager = $this->getSelectManagerFactory()->create('Email'); - $selectParams = array( + $selectParams = [ 'select' => [ 'id', 'name', ['dateSent', 'dateStart'], ['VALUE:', 'dateEnd'], - ['VALUE:', 'dateStart'], + ['VALUE:', 'dateStartDate'], ['VALUE:', 'dateEndDate'], ['VALUE:Email', '_scope'], 'assignedUserId', @@ -242,17 +238,17 @@ class Activities extends \Espo\Core\Services\Base 'createdAt', 'hasAttachment' ], - 'leftJoins' => [['users', 'usersLeft']], - 'whereClause' => array( + 'leftJoins' => [['EmailUser', 'usersLeftMiddle', ['usersLeftMiddle.emailId:' => 'email.id']]], + 'whereClause' => [ 'usersLeftMiddle.userId' => $entity->id - ), - 'customJoin' => '' - ); + ], + 'customJoin' => '', + ]; if (!empty($statusList)) { - $selectParams['whereClause'][] = array( + $selectParams['whereClause'][] = [ 'status' => $statusList - ); + ]; } $selectManager->applyAccess($selectParams); @@ -622,10 +618,10 @@ class Activities extends \Espo\Core\Services\Base protected function getResultFromQueryParts($parts, $scope, $id, $params) { if (empty($parts)) { - return array( + return [ 'list' => [], 'total' => 0 - ); + ]; } $pdo = $this->getEntityManager()->getPDO(); @@ -636,29 +632,29 @@ class Activities extends \Espo\Core\Services\Base } if (!$onlyScope) { - $qu = implode(" UNION ", $parts); + $sql = implode(" UNION ", $parts); } else { - $qu = $parts[$onlyScope]; + $sql = $parts[$onlyScope]; } - $countQu = "SELECT COUNT(*) AS 'count' FROM ({$qu}) AS c"; - $sth = $pdo->prepare($countQu); + $sqlCount = "SELECT COUNT(*) AS 'count' FROM ({$sql}) AS c"; + $sth = $pdo->prepare($sqlCount); $sth->execute(); $row = $sth->fetch(PDO::FETCH_ASSOC); $totalCount = $row['count']; - $qu .= " + $sql .= " ORDER BY dateStart DESC, createdAt DESC "; if (!empty($params['maxSize'])) { - $qu .= " + $sql .= " LIMIT :offset, :maxSize "; } - $sth = $pdo->prepare($qu); + $sth = $pdo->prepare($sql); if (!empty($params['maxSize'])) { $offset = 0; @@ -685,10 +681,10 @@ class Activities extends \Espo\Core\Services\Base $list[] = $row; } - return array( + return [ 'list' => $list, 'total' => $totalCount - ); + ]; } protected function accessCheck($entity) diff --git a/application/Espo/Repositories/Email.php b/application/Espo/Repositories/Email.php index 34d5ab9ec7..e418d4927f 100644 --- a/application/Espo/Repositories/Email.php +++ b/application/Espo/Repositories/Email.php @@ -282,7 +282,7 @@ class Email extends \Espo\Core\ORM\Repositories\RDB $this->fillAccount($entity); } - if (!empty($options['isBeingImported'])) { + if (!empty($options['isBeingImported']) || !empty($options['isJustSent'])) { if (!$entity->has('from')) { $this->loadFromField($entity); } @@ -326,6 +326,10 @@ class Email extends \Espo\Core\ORM\Repositories\RDB public function applyUsersFilters(Entity $entity) { foreach ($entity->getLinkMultipleIdList('users') as $userId) { + if ($entity->get('status') === 'Sent') { + if ($entity->get('sentById') && $entity->get('sentById') === $userId) continue; + } + $filter = $this->getEmailFilterManager()->getMatchingFilter($entity, $userId); if ($filter) { $action = $filter->get('action'); diff --git a/application/Espo/Resources/layouts/ActionHistoryRecord/listLastViewed.json b/application/Espo/Resources/layouts/ActionHistoryRecord/listLastViewed.json index e1f49b4d32..bbfe1200b6 100644 --- a/application/Espo/Resources/layouts/ActionHistoryRecord/listLastViewed.json +++ b/application/Espo/Resources/layouts/ActionHistoryRecord/listLastViewed.json @@ -1,5 +1,5 @@ [ {"name":"targetType", "notSortable": true, "width": 22}, {"name":"target", "notSortable": true}, - {"name":"createdAt", "notSortable": true, "width": 20, "align": "right"} + {"name":"createdAt", "notSortable": true, "width": 20, "align": "right", "view": "views/fields/datetime-short"} ] \ No newline at end of file diff --git a/application/Espo/Resources/metadata/app/client.json b/application/Espo/Resources/metadata/app/client.json index e121a0db69..adc0ba13f2 100644 --- a/application/Espo/Resources/metadata/app/client.json +++ b/application/Espo/Resources/metadata/app/client.json @@ -24,5 +24,23 @@ "client/src/loader.js", "client/src/utils.js", "client/src/exceptions.js" + ], + "linkList": [ + { + "href": "client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff2", + "as": "font", + "type": "font/woff2", + "rel": "preload", + "noTimestamp": true, + "crossorigin": true + }, + { + "href": "client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff2", + "as": "font", + "type": "font/woff2", + "rel": "preload", + "noTimestamp": true, + "crossorigin": true + } ] } diff --git a/application/Espo/Resources/metadata/entityDefs/Job.json b/application/Espo/Resources/metadata/entityDefs/Job.json index dadcd4e44e..69bd930683 100644 --- a/application/Espo/Resources/metadata/entityDefs/Job.json +++ b/application/Espo/Resources/metadata/entityDefs/Job.json @@ -104,7 +104,7 @@ "collection": { "orderBy": "number", "order": "desc", - "textFilterFields": ["name", "methodName", "serviceName", "scheduledJobName"] + "textFilterFields": ["name", "methodName", "serviceName", "scheduledJob"] }, "indexes": { "executeTime": { diff --git a/application/Espo/Services/Email.php b/application/Espo/Services/Email.php index 7bcd31b9ae..f00d0a37ba 100644 --- a/application/Espo/Services/Email.php +++ b/application/Espo/Services/Email.php @@ -298,7 +298,7 @@ class Email extends Record $entity->set('isJustSent', true); - $this->getEntityManager()->saveEntity($entity); + $this->getEntityManager()->saveEntity($entity, ['isJustSent' => true]); } protected function applySmtpHandler(string $userId, string $emailAddress, array &$params) diff --git a/application/Espo/Services/LastViewed.php b/application/Espo/Services/LastViewed.php index f3a4ef569f..707a270d45 100644 --- a/application/Espo/Services/LastViewed.php +++ b/application/Espo/Services/LastViewed.php @@ -49,7 +49,7 @@ class LastViewed extends \Espo\Core\Services\Base $scopes = $this->getInjection('metadata')->get('scopes'); $targetTypeList = array_filter(array_keys($scopes), function ($item) use ($scopes) { - return !empty($scopes[$item]['object']); + return !empty($scopes[$item]['object']) || !empty($scopes[$item]['lastViewed']); }); $offset = $params['offset']; diff --git a/client/fonts/open-sans-regular.eot b/client/fonts/open-sans-regular.eot deleted file mode 100644 index c67015670e..0000000000 Binary files a/client/fonts/open-sans-regular.eot and /dev/null differ diff --git a/client/fonts/open-sans-regular.svg b/client/fonts/open-sans-regular.svg deleted file mode 100644 index b79435f392..0000000000 --- a/client/fonts/open-sans-regular.svg +++ /dev/null @@ -1,252 +0,0 @@ - - - - -This is a custom SVG webfont generated by Font Squirrel. -Copyright : Digitized data copyright 20102011 Google Corporation -Foundry : Ascender Corporation -Foundry URL : httpwwwascendercorpcom - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/client/fonts/open-sans-regular.ttf b/client/fonts/open-sans-regular.ttf deleted file mode 100644 index db433349b7..0000000000 Binary files a/client/fonts/open-sans-regular.ttf and /dev/null differ diff --git a/client/fonts/open-sans-regular.woff b/client/fonts/open-sans-regular.woff deleted file mode 100644 index 713dbf1a77..0000000000 Binary files a/client/fonts/open-sans-regular.woff and /dev/null differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.eot b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.eot new file mode 100644 index 0000000000..bd83b8e8c2 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.eot differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.svg b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.svg new file mode 100644 index 0000000000..410561e782 --- /dev/null +++ b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.ttf b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.ttf new file mode 100644 index 0000000000..d8cfadd433 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.ttf differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff new file mode 100644 index 0000000000..55c50a367f Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff2 b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff2 new file mode 100644 index 0000000000..f503d558d5 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600.woff2 differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.eot b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.eot new file mode 100644 index 0000000000..420e898133 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.eot differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.svg b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.svg new file mode 100644 index 0000000000..cce30a7735 --- /dev/null +++ b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.ttf b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.ttf new file mode 100644 index 0000000000..6564b9b042 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.ttf differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.woff b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.woff new file mode 100644 index 0000000000..2eaa468cce Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.woff differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.woff2 b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.woff2 new file mode 100644 index 0000000000..c99aabe803 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-600italic.woff2 differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.eot b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.eot new file mode 100644 index 0000000000..c21c200664 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.eot differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.svg b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.svg new file mode 100644 index 0000000000..8e6b61ade1 --- /dev/null +++ b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.svg @@ -0,0 +1,334 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.ttf b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.ttf new file mode 100644 index 0000000000..a08646721d Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.ttf differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.woff b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.woff new file mode 100644 index 0000000000..18788e84fc Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.woff differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.woff2 b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.woff2 new file mode 100644 index 0000000000..421a1ab25f Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700.woff2 differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.eot b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.eot new file mode 100644 index 0000000000..381bece63c Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.eot differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.svg b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.svg new file mode 100644 index 0000000000..80b563538f --- /dev/null +++ b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.svg @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.ttf b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.ttf new file mode 100644 index 0000000000..9904ea9957 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.ttf differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.woff b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.woff new file mode 100644 index 0000000000..f5f7974eb3 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.woff differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.woff2 b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.woff2 new file mode 100644 index 0000000000..12ce3d20d1 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-700italic.woff2 differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.eot b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.eot new file mode 100644 index 0000000000..c6ee21fb8e Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.eot differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.svg b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.svg new file mode 100644 index 0000000000..e6a951f46e --- /dev/null +++ b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.svg @@ -0,0 +1,349 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.ttf b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.ttf new file mode 100644 index 0000000000..2d9c801d2c Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.ttf differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.woff b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.woff new file mode 100644 index 0000000000..34f3eae862 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.woff differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.woff2 b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.woff2 new file mode 100644 index 0000000000..398b68a085 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-italic.woff2 differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.eot b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.eot new file mode 100644 index 0000000000..db9210bea2 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.eot differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.svg b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.svg new file mode 100644 index 0000000000..78eb653a75 --- /dev/null +++ b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.svg @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.ttf b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.ttf new file mode 100644 index 0000000000..be29eca230 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.ttf differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff new file mode 100644 index 0000000000..799305af21 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff differ diff --git a/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff2 b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff2 new file mode 100644 index 0000000000..8383e94c65 Binary files /dev/null and b/client/fonts/open-sans/open-sans-v16-cyrillic_latin_cyrillic-ext_latin-ext-regular.woff2 differ diff --git a/client/modules/crm/res/templates/calendar/calendar.tpl b/client/modules/crm/res/templates/calendar/calendar.tpl index b23fb81577..d3026f4097 100644 --- a/client/modules/crm/res/templates/calendar/calendar.tpl +++ b/client/modules/crm/res/templates/calendar/calendar.tpl @@ -5,12 +5,12 @@
- - + +
- + - +
@@ -19,10 +19,10 @@
{{#each ../modeDataList}} - + {{/each}}
- +