From 5f4ae01c85b0ec68e1d7a4996b8606ab64c49d65 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 30 Sep 2023 14:50:19 +0300 Subject: [PATCH 01/12] layout manager fix --- client/src/views/admin/layouts/index.js | 43 +++++++++++++++++++++---- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/client/src/views/admin/layouts/index.js b/client/src/views/admin/layouts/index.js index 02d6150a09..87b1f69b4e 100644 --- a/client/src/views/admin/layouts/index.js +++ b/client/src/views/admin/layouts/index.js @@ -97,7 +97,12 @@ class LayoutIndexView extends View { }); if (this.em && this.scope) { - this.scopeList = [this.scope]; + if (this.scopeList.includes(this.scope)) { + this.scopeList = [this.scope]; + } + else { + this.scopeList = []; + } } this.on('after:render', () => { @@ -107,14 +112,38 @@ class LayoutIndexView extends View { this.renderLayoutHeader(); if (!this.options.scope || !this.options.type) { + this.checkLayout(); + this.renderDefaultPage(); } + if (this.scope && this.options.type) { + this.checkLayout(); + this.openLayout(this.options.scope, this.options.type); } }); } + checkLayout() { + const scope = this.options.scope; + const type = this.options.type; + + if (!scope) { + return; + } + + const item = this.getLayoutScopeDataList().find(item => item.scope === scope); + + if (!item) { + throw new Espo.Exceptions.NotFound("Layouts not available for entity type."); + } + + if (type && !item.typeList.includes(type)) { + throw new Espo.Exceptions.NotFound("The layout type is not available for the entity type."); + } + } + afterRender() { this.controlActiveButton(); } @@ -381,10 +410,10 @@ class LayoutIndexView extends View { } getLayoutScopeDataList() { - let dataList = []; + const dataList = []; - this.scopeList.forEach(scope =>{ - let item = {}; + this.scopeList.forEach(scope => { + const item = {}; let typeList = Espo.Utils.clone(this.typeList); @@ -412,9 +441,9 @@ class LayoutIndexView extends View { typeList.push('kanban'); } - let additionalLayouts = this.getMetadata().get(['clientDefs', scope, 'additionalLayouts']) || {}; + const additionalLayouts = this.getMetadata().get(['clientDefs', scope, 'additionalLayouts']) || {}; - for (let aItem in additionalLayouts) { + for (const aItem in additionalLayouts) { typeList.push(aItem); } @@ -423,7 +452,7 @@ class LayoutIndexView extends View { .get(['clientDefs', scope, 'layout' + Espo.Utils.upperCaseFirst(name) + 'Disabled']) }); - let typeDataList = []; + const typeDataList = []; typeList.forEach(type => { let url = this.baseUrl + '/scope=' + scope + '&type=' + type; From 512c45c9b57adf4805a5caf3d0d6bb19ab0905b6 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 30 Sep 2023 14:53:33 +0300 Subject: [PATCH 02/12] jsdoc fix --- client/src/views/admin/entity-manager/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/views/admin/entity-manager/index.js b/client/src/views/admin/entity-manager/index.js index 37f1d1f29f..3f1bee836e 100644 --- a/client/src/views/admin/entity-manager/index.js +++ b/client/src/views/admin/entity-manager/index.js @@ -81,7 +81,7 @@ class EntityManagerIndexView extends View { scopeList = scopeListSorted; scopeList.forEach(scope => { - let d = /** @type Object.*/this.getMetadata().get('scopes.' + scope); + let d = /** @type {Object.} */this.getMetadata().get('scopes.' + scope); let isRemovable = !!d.isCustom; From b317f9919608aea90ea2274e039baa0a175187f5 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 30 Sep 2023 15:18:52 +0300 Subject: [PATCH 03/12] em not customizable guard --- .../templates/admin/link-manager/index.tpl | 18 ++++--- client/src/views/admin/entity-manager/edit.js | 10 ++-- .../src/views/admin/entity-manager/formula.js | 5 ++ .../src/views/admin/entity-manager/scope.js | 4 ++ client/src/views/admin/field-manager/edit.js | 6 +++ client/src/views/admin/field-manager/list.js | 4 +- client/src/views/admin/link-manager/index.js | 49 ++++++++++--------- 7 files changed, 63 insertions(+), 33 deletions(-) diff --git a/client/res/templates/admin/link-manager/index.tpl b/client/res/templates/admin/link-manager/index.tpl index dd037f14e6..294b425e3e 100644 --- a/client/res/templates/admin/link-manager/index.tpl +++ b/client/res/templates/admin/link-manager/index.tpl @@ -11,10 +11,12 @@
- + {{#if isCreatable}} + + {{/if}}
{{#if linkDataList.length}} @@ -80,9 +82,11 @@ {{translate entityForeign category='scopeNames'}} - - {{translate 'Edit'}} - + {{#if isEditable}} + + {{translate 'Edit'}} + + {{/if}} {{#if isRemovable}} diff --git a/client/src/views/admin/entity-manager/edit.js b/client/src/views/admin/entity-manager/edit.js index 313444f279..d604b56e09 100644 --- a/client/src/views/admin/entity-manager/edit.js +++ b/client/src/views/admin/entity-manager/edit.js @@ -335,16 +335,20 @@ class EntityManagerEditView extends View { } setup() { - let scope = this.scope = this.options.scope || false; + const scope = this.scope = this.options.scope || false; this.isNew = !scope; - let model = this.model = new Model(); - model.name = 'EntityManager'; + this.model = new Model(); + this.model.name = 'EntityManager'; if (!this.isNew) { this.isCustom = this.getMetadata().get(['scopes', scope, 'isCustom']) } + if (this.scope && !this.getMetadata().get(`scopes.${scope}.customizable`)) { + throw new Espo.Exceptions.NotFound("The entity type is not customizable."); + } + this.setupData(); this.setupDefs(); diff --git a/client/src/views/admin/entity-manager/formula.js b/client/src/views/admin/entity-manager/formula.js index 6ff3c81e3a..5595260a06 100644 --- a/client/src/views/admin/entity-manager/formula.js +++ b/client/src/views/admin/entity-manager/formula.js @@ -61,6 +61,11 @@ class EntityManagerFormulaView extends View { throw Error("No scope or type."); } + + if (!this.getMetadata().get(['scopes', this.scope, 'customizable'])) { + throw new Espo.Exceptions.NotFound("Entity type is not customizable."); + } + if (!['beforeSaveCustomScript', 'beforeSaveApiScript'].includes(this.type)) { Espo.Ui.error('No allowed formula type.', true); diff --git a/client/src/views/admin/entity-manager/scope.js b/client/src/views/admin/entity-manager/scope.js index 8228e551a7..96c9cae890 100644 --- a/client/src/views/admin/entity-manager/scope.js +++ b/client/src/views/admin/entity-manager/scope.js @@ -89,6 +89,10 @@ define('views/admin/entity-manager/scope', ['view'], function (Dep) { this.hasFields = this.isCustomizable; this.hasRelationships = this.isCustomizable; + if (!scopeData.customizable) { + this.isEditable = false; + } + if ('edit' in entityManagerData) { this.isEditable = entityManagerData.edit; } diff --git a/client/src/views/admin/field-manager/edit.js b/client/src/views/admin/field-manager/edit.js index 1ac74a0805..5c83fe4ddb 100644 --- a/client/src/views/admin/field-manager/edit.js +++ b/client/src/views/admin/field-manager/edit.js @@ -398,6 +398,12 @@ define('views/admin/field-manager/edit', ['view', 'model'], function (Dep, Model this.isNew = !this.field; + if (!this.getMetadata().get(['scopes', this.scope, 'customizable'])) { + Espo.Ui.notify(false); + + throw new Espo.Exceptions.NotFound("Entity type is not customizable."); + } + this.wait(true); this.setupFieldData(() => { diff --git a/client/src/views/admin/field-manager/list.js b/client/src/views/admin/field-manager/list.js index 4d9e6daa18..0fc8a9101d 100644 --- a/client/src/views/admin/field-manager/list.js +++ b/client/src/views/admin/field-manager/list.js @@ -55,6 +55,8 @@ define('views/admin/field-manager/list', ['view'], function (Dep) { setup: function () { this.scope = this.options.scope; + this.isCustomizable = !!this.getMetadata().get(`scopes.${this.scope}.customizable`); + this.hasAddField = true; let entityManagerData = this.getMetadata().get(['scopes', this.scope, 'entityManager']) || {}; @@ -89,7 +91,7 @@ define('views/admin/field-manager/list', ['view'], function (Dep) { isCustom: defs.isCustom || false, type: defs.type, label: this.translate(field, 'fields', this.scope), - isEditable: !defs.customizationDisabled, + isEditable: !defs.customizationDisabled && this.isCustomizable, }); }); }); diff --git a/client/src/views/admin/link-manager/index.js b/client/src/views/admin/link-manager/index.js index 96f3e7b5b5..03fb5be383 100644 --- a/client/src/views/admin/link-manager/index.js +++ b/client/src/views/admin/link-manager/index.js @@ -40,6 +40,7 @@ class LinkManagerIndexView extends View { return { linkDataList: this.linkDataList, scope: this.scope, + isCreatable: this.isCustomizable, }; } @@ -51,7 +52,7 @@ class LinkManagerIndexView extends View { this.editLink(link); }, /** @this LinkManagerIndexView */ - 'click button[data-action="createLink"]': function (e) { + 'click button[data-action="createLink"]': function () { this.createLink(); }, /** @this LinkManagerIndexView */ @@ -68,67 +69,70 @@ class LinkManagerIndexView extends View { } computeRelationshipType(type, foreignType) { - if (type == 'hasMany') { - if (foreignType == 'hasMany') { + if (type === 'hasMany') { + if (foreignType === 'hasMany') { return 'manyToMany'; } - else if (foreignType == 'belongsTo') { + else if (foreignType === 'belongsTo') { return 'oneToMany'; } else { - return; + return undefined; } } - else if (type == 'belongsTo') { - if (foreignType == 'hasMany') { + else if (type === 'belongsTo') { + if (foreignType === 'hasMany') { return 'manyToOne'; } - else if (foreignType == 'hasOne') { + else if (foreignType === 'hasOne') { return 'oneToOneRight'; } else { - return; + return undefined; } } - else if (type == 'belongsToParent') { - if (foreignType == 'hasChildren') { + else if (type === 'belongsToParent') { + if (foreignType === 'hasChildren') { return 'childrenToParent' } - return; + return undefined; } - else if (type == 'hasChildren') { - if (foreignType == 'belongsToParent') { + else if (type === 'hasChildren') { + if (foreignType === 'belongsToParent') { return 'parentToChildren' } - return; + return undefined; } else if (type === 'hasOne') { - if (foreignType == 'belongsTo') { + if (foreignType === 'belongsTo') { return 'oneToOneLeft'; } - return; + return undefined; } } setupLinkData() { this.linkDataList = []; - var links = this.getMetadata().get('entityDefs.' + this.scope + '.links'); + this.isCustomizable = !!this.getMetadata().get(`scopes.${this.scope}.customizable`); - var linkList = Object.keys(links).sort((v1, v2) => { + const links = this.getMetadata().get('entityDefs.' + this.scope + '.links'); + + const linkList = Object.keys(links).sort((v1, v2) => { return v1.localeCompare(v2); }); - linkList.forEach((link) => { + linkList.forEach(link => { var d = links[link]; + let type; var linkForeign = d.foreign; if (d.type === 'belongsToParent') { - var type = 'childrenToParent'; + type = 'childrenToParent'; } else { if (!d.entity) { @@ -142,7 +146,7 @@ class LinkManagerIndexView extends View { var foreignType = this.getMetadata() .get('entityDefs.' + d.entity + '.links.' + d.foreign + '.type'); - var type = this.computeRelationshipType(d.type, foreignType); + type = this.computeRelationshipType(d.type, foreignType); } if (!type) { @@ -154,6 +158,7 @@ class LinkManagerIndexView extends View { isCustom: d.isCustom, isRemovable: d.isCustom, customizable: d.customizable, + isEditable: this.isCustomizable, type: type, entityForeign: d.entity, entity: this.scope, From e3ef9391ce0cf948d00d21d16aff50bc833495ca Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 3 Oct 2023 11:28:58 +0300 Subject: [PATCH 04/12] fix link field --- client/src/views/fields/link-multiple.js | 17 ++++++++++++++--- client/src/views/fields/link.js | 19 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/client/src/views/fields/link-multiple.js b/client/src/views/fields/link-multiple.js index 80a7a968d4..407f51455e 100644 --- a/client/src/views/fields/link-multiple.js +++ b/client/src/views/fields/link-multiple.js @@ -981,8 +981,21 @@ class LinkMultipleFieldView extends BaseFieldView { _getSelectFilters() { const handler = this.panelDefs.selectHandler; + const localBoolFilterList = this.getSelectBoolFilterList(); + if (!handler || this.isSearchMode()) { - return Promise.resolve({}); + const boolFilterList = (localBoolFilterList || this.panelDefs.selectBoolFilterList) ? + [ + ...(localBoolFilterList || []), + ...(this.panelDefs.selectBoolFilterList || []), + ] : + undefined; + + return Promise.resolve({ + primary: this.getSelectPrimaryFilterName() || this.panelDefs.selectPrimaryFilterName, + bool: boolFilterList, + advanced: this.getSelectFilters() || undefined, + }); } return new Promise(resolve => { @@ -996,8 +1009,6 @@ class LinkMultipleFieldView extends BaseFieldView { const primaryFilter = this.getSelectPrimaryFilterName() || filters.primary || this.panelDefs.selectPrimaryFilterName; - const localBoolFilterList = this.getSelectBoolFilterList(); - const boolFilterList = (localBoolFilterList || filters.bool || this.panelDefs.selectBoolFilterList) ? [ ...(localBoolFilterList || []), diff --git a/client/src/views/fields/link.js b/client/src/views/fields/link.js index e62074594a..89edc4d1bc 100644 --- a/client/src/views/fields/link.js +++ b/client/src/views/fields/link.js @@ -99,7 +99,7 @@ class LinkFieldView extends BaseFieldView { * @protected * @type {boolean} */ - createButton = true + createButton = false /** * Force create button even is disabled in clientDefs > relationshipPanels. @@ -1084,8 +1084,21 @@ class LinkFieldView extends BaseFieldView { _getSelectFilters() { const handler = this.panelDefs.selectHandler; + const localBoolFilterList = this.getSelectBoolFilterList(); + if (!handler || this.isSearchMode()) { - return Promise.resolve({}); + const boolFilterList = (localBoolFilterList || this.panelDefs.selectBoolFilterList) ? + [ + ...(localBoolFilterList || []), + ...(this.panelDefs.selectBoolFilterList || []), + ] : + undefined; + + return Promise.resolve({ + primary: this.getSelectPrimaryFilterName() || this.panelDefs.selectPrimaryFilterName, + bool: boolFilterList, + advanced: this.getSelectFilters() || undefined, + }); } return new Promise(resolve => { @@ -1099,8 +1112,6 @@ class LinkFieldView extends BaseFieldView { const primaryFilter = this.getSelectPrimaryFilterName() || filters.primary || this.panelDefs.selectPrimaryFilterName; - const localBoolFilterList = this.getSelectBoolFilterList(); - const boolFilterList = (localBoolFilterList || filters.bool || this.panelDefs.selectBoolFilterList) ? [ ...(localBoolFilterList || []), From 1bbc92e4609b4400c944e7f3b6ff00034f51125d Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 3 Oct 2023 11:28:58 +0300 Subject: [PATCH 05/12] fix link field --- client/src/views/fields/link-multiple.js | 17 ++++++++++++++--- client/src/views/fields/link.js | 19 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/client/src/views/fields/link-multiple.js b/client/src/views/fields/link-multiple.js index 80a7a968d4..cce9d744d3 100644 --- a/client/src/views/fields/link-multiple.js +++ b/client/src/views/fields/link-multiple.js @@ -981,8 +981,21 @@ class LinkMultipleFieldView extends BaseFieldView { _getSelectFilters() { const handler = this.panelDefs.selectHandler; + const localBoolFilterList = this.getSelectBoolFilterList(); + if (!handler || this.isSearchMode()) { - return Promise.resolve({}); + const boolFilterList = (localBoolFilterList || this.panelDefs.selectBoolFilterList) ? + [ + ...(localBoolFilterList || []), + ...(this.panelDefs.selectBoolFilterList || []), + ] : + undefined; + + return Promise.resolve({ + primary: this.getSelectPrimaryFilterName() || this.panelDefs.selectPrimaryFilterName, + bool: boolFilterList, + advanced: this.getSelectFilters() || this.panelDefs.selectPrimaryFilterName || undefined, + }); } return new Promise(resolve => { @@ -996,8 +1009,6 @@ class LinkMultipleFieldView extends BaseFieldView { const primaryFilter = this.getSelectPrimaryFilterName() || filters.primary || this.panelDefs.selectPrimaryFilterName; - const localBoolFilterList = this.getSelectBoolFilterList(); - const boolFilterList = (localBoolFilterList || filters.bool || this.panelDefs.selectBoolFilterList) ? [ ...(localBoolFilterList || []), diff --git a/client/src/views/fields/link.js b/client/src/views/fields/link.js index e62074594a..b4bb335419 100644 --- a/client/src/views/fields/link.js +++ b/client/src/views/fields/link.js @@ -99,7 +99,7 @@ class LinkFieldView extends BaseFieldView { * @protected * @type {boolean} */ - createButton = true + createButton = false /** * Force create button even is disabled in clientDefs > relationshipPanels. @@ -1084,8 +1084,21 @@ class LinkFieldView extends BaseFieldView { _getSelectFilters() { const handler = this.panelDefs.selectHandler; + const localBoolFilterList = this.getSelectBoolFilterList(); + if (!handler || this.isSearchMode()) { - return Promise.resolve({}); + const boolFilterList = (localBoolFilterList || this.panelDefs.selectBoolFilterList) ? + [ + ...(localBoolFilterList || []), + ...(this.panelDefs.selectBoolFilterList || []), + ] : + undefined; + + return Promise.resolve({ + primary: this.getSelectPrimaryFilterName() || this.panelDefs.selectPrimaryFilterName, + bool: boolFilterList, + advanced: this.getSelectFilters() || this.panelDefs.selectPrimaryFilterName || undefined, + }); } return new Promise(resolve => { @@ -1099,8 +1112,6 @@ class LinkFieldView extends BaseFieldView { const primaryFilter = this.getSelectPrimaryFilterName() || filters.primary || this.panelDefs.selectPrimaryFilterName; - const localBoolFilterList = this.getSelectBoolFilterList(); - const boolFilterList = (localBoolFilterList || filters.bool || this.panelDefs.selectBoolFilterList) ? [ ...(localBoolFilterList || []), From 539833195659c2f2bee466836fd3823c9c72cd8e Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 3 Oct 2023 14:20:30 +0300 Subject: [PATCH 06/12] style fix --- .../src/views/admin/entity-manager/modals/select-formula.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/src/views/admin/entity-manager/modals/select-formula.js b/client/src/views/admin/entity-manager/modals/select-formula.js index 4200c4bc85..c0ca8fe13a 100644 --- a/client/src/views/admin/entity-manager/modals/select-formula.js +++ b/client/src/views/admin/entity-manager/modals/select-formula.js @@ -36,9 +36,10 @@ define('views/admin/entity-manager/modals/select-formula', ['views/modal'], func */ return Dep.extend(/** @lends module:views/admin/entity-manager/modals/select-formula.Class# */{ + // language=Handlebars templateContent: ` -
- +
+
{{#each typeList}}
From 6cb44e65a6ce6d809e73be39a73f445b9368b1ba Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 4 Oct 2023 10:10:31 +0300 Subject: [PATCH 07/12] calendar week range title fix --- client/modules/crm/src/views/calendar/calendar.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/client/modules/crm/src/views/calendar/calendar.js b/client/modules/crm/src/views/calendar/calendar.js index a6e866610f..33cd4f269b 100644 --- a/client/modules/crm/src/views/calendar/calendar.js +++ b/client/modules/crm/src/views/calendar/calendar.js @@ -69,6 +69,7 @@ class CalendarView extends View { week: 'MMMM YYYY', day: 'dddd, MMMM D, YYYY', } + rangeSeparator = ' – ' /** @private */ fetching = false @@ -381,7 +382,12 @@ class CalendarView extends View { const format = this.titleFormat[viewName]; if (viewName === 'week') { - title = this.calendar.formatRange(view.currentStart, view.currentEnd, format); + const start = this.dateToMoment(view.currentStart).format(format); + const end = this.dateToMoment(view.currentEnd).subtract(1, 'minute').format(format); + + title = start !== end ? + start + this.rangeSeparator + end : + start; } else { title = moment(view.currentStart).format(format); } @@ -738,7 +744,7 @@ class CalendarView extends View { slotLabelFormat: slotLabelFormat, eventTimeFormat: timeFormat, initialView: this.modeViewMap[this.viewMode], - defaultRangeSeparator: ' – ', + defaultRangeSeparator: this.rangeSeparator, weekNumbers: true, weekNumberCalculation: 'ISO', editable: true, From e44b9211430998ad02825bfb9595f0fba05e9660 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 4 Oct 2023 11:30:57 +0300 Subject: [PATCH 08/12] kb article acl level own --- .../Crm/Resources/metadata/scopes/KnowledgeBaseArticle.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/Espo/Modules/Crm/Resources/metadata/scopes/KnowledgeBaseArticle.json b/application/Espo/Modules/Crm/Resources/metadata/scopes/KnowledgeBaseArticle.json index 6d9016295a..d4a9a64d3c 100644 --- a/application/Espo/Modules/Crm/Resources/metadata/scopes/KnowledgeBaseArticle.json +++ b/application/Espo/Modules/Crm/Resources/metadata/scopes/KnowledgeBaseArticle.json @@ -2,8 +2,8 @@ "entity": true, "layouts": true, "tab": true, - "acl": "recordAllTeamNo", - "aclPortal": "recordAllNo", + "acl": true, + "aclPortalLevelList": ["all", "no"], "aclPortalActionList": ["read"], "module": "Crm", "customizable": true, From 9ebad9aad83e3bd74a3b7c137be5b7533339ea79 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 4 Oct 2023 14:38:06 +0300 Subject: [PATCH 09/12] btn icon class --- client/res/templates/header.tpl | 16 ++++++++++++++-- client/src/views/main.js | 1 + schema/metadata/clientDefs.json | 8 ++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/client/res/templates/header.tpl b/client/res/templates/header.tpl index fafba7128d..874dcb9be0 100644 --- a/client/res/templates/header.tpl +++ b/client/res/templates/header.tpl @@ -14,7 +14,13 @@ {{#each data}} data-{{@key}}="{{./this}}"{{/each}} {{#if title}}title="{{title}}"{{/if}} > - {{#if iconHtml}}{{{iconHtml}}}{{/if}} + {{#if iconHtml}} + {{{iconHtml}}} + {{else}} + {{#if iconClass}} + + {{/if}} + {{/if}} {{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label scope=../scope}}{{/if}}{{/if}} {{/each}} @@ -63,7 +69,13 @@ data-action="{{action}}" {{#each data}} data-{{@key}}="{{./this}}"{{/each}} > - {{#if iconHtml}}{{{iconHtml}}} {{/if}} + {{#if iconHtml}} + {{{iconHtml}}} + {{else}} + {{#if iconClass}} + + {{/if}} + {{/if}} {{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label scope=../scope}}{{/if}}{{/if}} {{else}} {{#unless @first}} diff --git a/client/src/views/main.js b/client/src/views/main.js index 6bfd2be91e..278f1d9f86 100644 --- a/client/src/views/main.js +++ b/client/src/views/main.js @@ -65,6 +65,7 @@ class MainView extends View { * @property {Object.} [data] Data attribute values. * @property {string} [title] A title. * @property {string} [iconHtml] An icon HTML. + * @property {string} [iconClass] An icon class. * @property {string} [html] An HTML. * @property {string} [text] A text. * @property {string} [className] An additional class name. Only for buttons. diff --git a/schema/metadata/clientDefs.json b/schema/metadata/clientDefs.json index ca7d12d4f0..bf34729af3 100644 --- a/schema/metadata/clientDefs.json +++ b/schema/metadata/clientDefs.json @@ -630,6 +630,14 @@ ], "description": "A style." }, + "title": { + "type": "string", + "description": "A title." + }, + "iconClass": { + "type": "string", + "description": "An icon class." + }, "data": { "type": "object", "properties": { From 0a9d9018741a9d37e1fb40cf438c3175a3d1318d Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 4 Oct 2023 14:56:20 +0300 Subject: [PATCH 10/12] css fix --- frontend/less/espo/custom.less | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less index fccc91b519..70957ecb7f 100644 --- a/frontend/less/espo/custom.less +++ b/frontend/less/espo/custom.less @@ -3168,6 +3168,13 @@ a.field-info > span.fa-info-circle { padding-right: 3px; } +.header-buttons > .btn { + > .fas, + > .far { + padding-right: 2px; + } +} + .header-buttons > .btn > .fa-plus.fa-sm { position: relative; top: -1px; From 58dbadb869933ea3c32cc8db52195571a3fea886 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 6 Oct 2023 10:33:19 +0300 Subject: [PATCH 11/12] fr lang --- .../Resources/i18n/fr_FR/EntityManager.json | 1 + .../Crm/Resources/i18n/fr_FR/Global.json | 5 ++++ .../Crm/Resources/i18n/fr_FR/Meeting.json | 3 +-- .../i18n/fr_FR/AuthenticationProvider.json | 1 + .../Espo/Resources/i18n/fr_FR/Currency.json | 18 +++++++++++++++ .../Espo/Resources/i18n/fr_FR/Email.json | 1 - .../Resources/i18n/fr_FR/EmailTemplate.json | 1 - .../Espo/Resources/i18n/fr_FR/Formula.json | 1 + .../Espo/Resources/i18n/fr_FR/Global.json | 23 +++++++++++-------- .../i18n/fr_FR/GroupEmailFolder.json | 1 + .../Resources/i18n/fr_FR/ImportError.json | 1 + .../Espo/Resources/i18n/fr_FR/MassAction.json | 1 + .../Espo/Resources/i18n/fr_FR/PortalRole.json | 4 ---- .../Resources/i18n/fr_FR/Preferences.json | 5 ---- .../Espo/Resources/i18n/fr_FR/Role.json | 10 +++----- .../Espo/Resources/i18n/fr_FR/User.json | 2 +- .../i18n/fr_FR/WorkingTimeCalendar.json | 1 + .../i18n/fr_FR/WorkingTimeRange.json | 1 + 18 files changed, 50 insertions(+), 30 deletions(-) create mode 100644 application/Espo/Modules/Crm/Resources/i18n/fr_FR/EntityManager.json create mode 100644 application/Espo/Resources/i18n/fr_FR/AuthenticationProvider.json create mode 100644 application/Espo/Resources/i18n/fr_FR/Formula.json create mode 100644 application/Espo/Resources/i18n/fr_FR/GroupEmailFolder.json create mode 100644 application/Espo/Resources/i18n/fr_FR/ImportError.json create mode 100644 application/Espo/Resources/i18n/fr_FR/MassAction.json create mode 100644 application/Espo/Resources/i18n/fr_FR/WorkingTimeCalendar.json create mode 100644 application/Espo/Resources/i18n/fr_FR/WorkingTimeRange.json diff --git a/application/Espo/Modules/Crm/Resources/i18n/fr_FR/EntityManager.json b/application/Espo/Modules/Crm/Resources/i18n/fr_FR/EntityManager.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Modules/Crm/Resources/i18n/fr_FR/EntityManager.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Global.json b/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Global.json index 35da94d1be..4169953810 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Global.json +++ b/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Global.json @@ -96,5 +96,10 @@ "cases": "Tickets", "account": "Compte", "opportunity": "Opportunité" + }, + "streamMessages": { + "eventConfirmationAcceptedThis": "{invitee} a accepté de participer", + "eventConfirmationDeclinedThis": "{invitee} a refusé de participer", + "eventConfirmationTentativeThis": "{invitee} est hésitant à participer" } } \ No newline at end of file diff --git a/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Meeting.json b/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Meeting.json index 33a1ae7005..67d1a35374 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Meeting.json +++ b/application/Espo/Modules/Crm/Resources/i18n/fr_FR/Meeting.json @@ -11,8 +11,7 @@ "account": "Compte", "dateStartDate": "Date de début (toute la journée)", "dateEndDate": "Date de fin (toute la journée)", - "isAllDay": "Est toute la journée", - "Acceptance": "Acceptation" + "isAllDay": "Est toute la journée" }, "options": { "status": { diff --git a/application/Espo/Resources/i18n/fr_FR/AuthenticationProvider.json b/application/Espo/Resources/i18n/fr_FR/AuthenticationProvider.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/AuthenticationProvider.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/Currency.json b/application/Espo/Resources/i18n/fr_FR/Currency.json index d1268e8269..78218d4c10 100644 --- a/application/Espo/Resources/i18n/fr_FR/Currency.json +++ b/application/Espo/Resources/i18n/fr_FR/Currency.json @@ -4,15 +4,33 @@ "AFN": "Afghani Afghan", "ALL": "Lek Albanais", "AMD": "Dram Arménien", + "ANG": "Florin des Antilles néerlandaises", "AOA": "Kwanza Angolais", "ARS": "Peso Argentin", "AUD": "Dollar Australien", + "AWG": "Florin arubais", + "AZN": "Manat azerbaïdjanais", + "BAM": "Mark convertible de Bosnie-Herzégovine", "BBD": "Dollar Barbadien", + "BDT": "Taka", + "BGN": "Lev bulgare", + "BHD": "Dinar bahreïni", + "BIF": "Franc burundais", + "BMD": "Dollar bermudien", + "BND": "Dollar de Brunei", + "BOB": "Boliviano", + "BRL": "Réal brésilien", + "BSD": "Dollar bahaméen", + "BTN": "Ngultrum", + "BWP": "Pula", + "BYN": "Rouble biélorusse", + "BZD": "Dollar bélizien", "CAD": "Dollar canadien", "CDF": "Franc congolais", "CHE": "Euro WIR", "CHF": "Franc suisse", "CHW": "Franc WIR", + "CLF": "Unité d’investissement chilienne (UF)", "CLP": "Peso chilien", "GNF": "Franc guinéen", "JPY": "Yen japonais", diff --git a/application/Espo/Resources/i18n/fr_FR/Email.json b/application/Espo/Resources/i18n/fr_FR/Email.json index 024bad830f..5858fb4305 100644 --- a/application/Espo/Resources/i18n/fr_FR/Email.json +++ b/application/Espo/Resources/i18n/fr_FR/Email.json @@ -6,7 +6,6 @@ "to": "À", "replyTo": "Répondre à", "replyToString": "Répondre à (texte)", - "isHtml": "Html", "body": "Corps", "subject": "Objet", "attachments": "Pièces-jointes", diff --git a/application/Espo/Resources/i18n/fr_FR/EmailTemplate.json b/application/Espo/Resources/i18n/fr_FR/EmailTemplate.json index 155db42b8c..663d6abfcd 100644 --- a/application/Espo/Resources/i18n/fr_FR/EmailTemplate.json +++ b/application/Espo/Resources/i18n/fr_FR/EmailTemplate.json @@ -2,7 +2,6 @@ "fields": { "name": "Nom", "status": "Statut", - "isHtml": "Html", "body": "Corps", "subject": "Objet", "attachments": "Pièces-jointes", diff --git a/application/Espo/Resources/i18n/fr_FR/Formula.json b/application/Espo/Resources/i18n/fr_FR/Formula.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/Formula.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/Global.json b/application/Espo/Resources/i18n/fr_FR/Global.json index 06d2ce00df..4892a2c530 100644 --- a/application/Espo/Resources/i18n/fr_FR/Global.json +++ b/application/Espo/Resources/i18n/fr_FR/Global.json @@ -80,7 +80,6 @@ "Loading...": "Chargement...", "Uploading...": "Mise en ligne...", "Sending...": "Envoi...", - "Merging...": "Fusion...", "Merged": "Fusionné", "Removed": "Supprimé", "Posted": "Posté", @@ -94,14 +93,10 @@ "Record has been removed": "La donnée a été supprimée", "Wrong username/password": "Mauvaise combinaison nom d'utilisateur/mot de passe", "Post cannot be empty": "La note ne peut pas être laissée vide", - "Removing...": "Suppression...", - "Unlinking...": "Suppression du lien...", - "Posting...": "Mise en ligne...", "Username can not be empty!": "Le nom d'utilisateur ne peut pas être laissé vide!", "Cache is not enabled": "Le cache est désactivé", "Cache has been cleared": "Le cache a été vidé", "Rebuild has been done": "La reconstruction a été faite", - "Saving...": "Sauvegarde...", "Modified": "Modifié", "Created": "Créé", "Create": "Créer", @@ -213,7 +208,6 @@ }, "messages": { "pleaseWait": "Veuillez patienter...", - "posting": "Publication...", "confirmLeaveOutMessage": "Êtes-vous sûr de vouloir quitter le formulaire?", "notModified": "Vous n'avez pas modifié l'enregistrement", "fieldIsRequired": "{field} est requis", @@ -242,8 +236,6 @@ "loading": "Chargement...", "saving": "Sauvegarde...", "fieldMaxFileSizeError": "Le fichier ne doit pas dépasser {max} Mo", - "fieldShouldBeLess": "{field} doit être moins élevé que {value}", - "fieldShouldBeGreater": "{field} doit être plus grand que {value}", "fieldIsUploading": "En cours de téléchargement", "erasePersonalDataConfirmation": "Les champs cochés seront effacés de façon permanente. Êtes-vous sûr?", "massPrintPdfMaxCountError": "Impossible d'imprimer plus que {maxCount} enregistrements.", @@ -253,7 +245,20 @@ "fieldExceedsMaxCount": "Le nombre dépasse le maximum autorisé {maxCount}", "notUpdated": "Pas à jour", "maintenanceMode": "L'application est actuellement en mode maintenance. Seuls les utilisateurs administrateurs ont accès. \n\nLe mode maintenance peut être désactivé dans Administration → Paramètres.", - "fieldInvalid": "{field} n'est pas valide" + "fieldInvalid": "{field} n'est pas valide", + "fieldNotMatchingPattern": "{field} ne correspond pas au modèle `{pattern}`", + "fieldNotMatchingPattern$noBadCharacters": "{field} contient des caractères interdits", + "fieldNotMatchingPattern$noAsciiSpecialCharacters": "{field} ne devrait pas contenir des caractères spéciaux ASCII", + "fieldNotMatchingPattern$latinLetters": "{field} ne peut contenir que des lettres latines", + "fieldNotMatchingPattern$latinLettersDigits": "{field} ne peut contenir que des lettres latines et des chiffres", + "fieldNotMatchingPattern$latinLettersDigitsWhitespace": "{field} ne peut contenir que des lettres latines, des chiffres et des espaces", + "fieldNotMatchingPattern$latinLettersWhitespace": "{field} ne peut contenir que des lettres latines et des espaces", + "fieldNotMatchingPattern$digits": "{field} ne peut contenir que des chiffres", + "confirmAppRefresh": "L'application a été mise à jour. Il est recommandé de rafraîchir la page pour en assurer le bon fonctionnement.", + "fieldShouldBeNumber": "{field} devrait être un nombre valide", + "fieldNotMatchingPattern$uriOptionalProtocol": "{field} doit être une URL valide", + "fieldShouldBeLess": "{field} ne devrait pas être supérieur à {value}", + "fieldShouldBeGreater": "{field} ne devrait pas être inférieur à {value}" }, "boolFilters": { "onlyMy": "Perso", diff --git a/application/Espo/Resources/i18n/fr_FR/GroupEmailFolder.json b/application/Espo/Resources/i18n/fr_FR/GroupEmailFolder.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/GroupEmailFolder.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/ImportError.json b/application/Espo/Resources/i18n/fr_FR/ImportError.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/ImportError.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/MassAction.json b/application/Espo/Resources/i18n/fr_FR/MassAction.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/MassAction.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/PortalRole.json b/application/Espo/Resources/i18n/fr_FR/PortalRole.json index 1ccedca7f8..bf9af33678 100644 --- a/application/Espo/Resources/i18n/fr_FR/PortalRole.json +++ b/application/Espo/Resources/i18n/fr_FR/PortalRole.json @@ -9,9 +9,5 @@ "fields": { "exportPermission": "Permission d'exportation", "massUpdatePermission": "Autorisation de mise à jour en masse" - }, - "tooltips": { - "exportPermission": "Définit si les utilisateurs du portail ont la possibilité d'exporter des enregistrements.", - "massUpdatePermission": "Définit si les utilisateurs du portail ont la possibilité d'effectuer une mise à jour en masse des enregistrements." } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/Preferences.json b/application/Espo/Resources/i18n/fr_FR/Preferences.json index 096ab9a48d..2c78e0ef43 100644 --- a/application/Espo/Resources/i18n/fr_FR/Preferences.json +++ b/application/Espo/Resources/i18n/fr_FR/Preferences.json @@ -9,11 +9,6 @@ "defaultCurrency": "Devise par défaut", "currencyList": "Liste des devises", "language": "Langage", - "smtpServer": "Serveur", - "smtpSecurity": "Sécurité", - "smtpUsername": "Nom d'utilisateur", - "smtpPassword": "Mot de passe", - "smtpEmailAddress": "Adresse email", "exportDelimiter": "Délimitant pour l'export", "signature": "Signature email", "dashboardTabList": "Liste des onglets", diff --git a/application/Espo/Resources/i18n/fr_FR/Role.json b/application/Espo/Resources/i18n/fr_FR/Role.json index 8ccf459718..0e5d703227 100644 --- a/application/Espo/Resources/i18n/fr_FR/Role.json +++ b/application/Espo/Resources/i18n/fr_FR/Role.json @@ -14,13 +14,6 @@ "users": "Utilisateurs", "teams": "Équipes" }, - "tooltips": { - "assignmentPermission": "Permet de restreindre la capacité pour les utilisateurs d'attribuer des enregistrements aux autres utilisateurs.\n\ntous - aucune restriction\n\néquipe - peuvent assigner aux utilisateurs de l'équipe\n\nnon - seulement à soi", - "groupEmailAccountPermission": "Définit un accès aux comptes de messagerie du groupe, une possibilité d'envoyer des courriels à partir du groupe SMTP.", - "dataPrivacyPermission": "Permet d'afficher et d'effacer des données personnelles.", - "exportPermission": "Définit si les utilisateurs ont la possibilité d'exporter des enregistrements.", - "massUpdatePermission": "Définit si les utilisateurs ont la possibilité d'effectuer une mise à jour en masse des enregistrements." - }, "labels": { "Access": "Accès", "Create Role": "Créer un rôle" @@ -51,5 +44,8 @@ }, "messages": { "changesAfterClearCache": "Veuillez vider le cache pour que les changements soient pris en compte." + }, + "tooltips": { + "dataPrivacyPermission": "Permet d'afficher et d'effacer des données personnelles." } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/User.json b/application/Espo/Resources/i18n/fr_FR/User.json index c9a4de69ea..0b6cc4bb40 100644 --- a/application/Espo/Resources/i18n/fr_FR/User.json +++ b/application/Espo/Resources/i18n/fr_FR/User.json @@ -116,4 +116,4 @@ "ApiKey": "clé API" } } -} +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/WorkingTimeCalendar.json b/application/Espo/Resources/i18n/fr_FR/WorkingTimeCalendar.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/WorkingTimeCalendar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/fr_FR/WorkingTimeRange.json b/application/Espo/Resources/i18n/fr_FR/WorkingTimeRange.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/fr_FR/WorkingTimeRange.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 34ce9d68bf96e5b4572c3efb4a4ff02f5996fd77 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 6 Oct 2023 10:34:20 +0300 Subject: [PATCH 12/12] sk lang --- .../Crm/Resources/i18n/sk_SK/Account.json | 7 +-- .../Crm/Resources/i18n/sk_SK/Admin.json | 2 +- .../Crm/Resources/i18n/sk_SK/Call.json | 4 +- .../Crm/Resources/i18n/sk_SK/Campaign.json | 10 ++-- .../i18n/sk_SK/CampaignLogRecord.json | 4 +- .../Crm/Resources/i18n/sk_SK/Case.json | 8 ++-- .../Crm/Resources/i18n/sk_SK/Contact.json | 17 +++---- .../Crm/Resources/i18n/sk_SK/Document.json | 6 +-- .../Crm/Resources/i18n/sk_SK/Email.json | 4 +- .../Resources/i18n/sk_SK/EntityManager.json | 5 ++ .../Crm/Resources/i18n/sk_SK/Global.json | 16 +++---- .../Crm/Resources/i18n/sk_SK/Lead.json | 13 ++--- .../Crm/Resources/i18n/sk_SK/Meeting.json | 4 +- .../Crm/Resources/i18n/sk_SK/Opportunity.json | 8 ++-- .../Crm/Resources/i18n/sk_SK/TargetList.json | 4 +- .../Crm/Resources/i18n/sk_SK/Task.json | 4 +- .../Espo/Resources/i18n/sk_SK/Admin.json | 16 +++++-- .../Espo/Resources/i18n/sk_SK/Attachment.json | 15 ++++++ .../i18n/sk_SK/AuthenticationProvider.json | 1 + .../Espo/Resources/i18n/sk_SK/Currency.json | 5 ++ .../Resources/i18n/sk_SK/DashletOptions.json | 3 ++ .../Espo/Resources/i18n/sk_SK/Email.json | 2 - .../Resources/i18n/sk_SK/EmailAccount.json | 8 +++- .../Resources/i18n/sk_SK/EmailFilter.json | 1 - .../Resources/i18n/sk_SK/EmailTemplate.json | 6 --- .../Resources/i18n/sk_SK/ExternalAccount.json | 4 +- .../Espo/Resources/i18n/sk_SK/Formula.json | 1 + .../Espo/Resources/i18n/sk_SK/Global.json | 19 +++----- .../i18n/sk_SK/GroupEmailFolder.json | 1 + .../Espo/Resources/i18n/sk_SK/Import.json | 1 - .../Resources/i18n/sk_SK/ImportError.json | 1 + .../Espo/Resources/i18n/sk_SK/LayoutSet.json | 1 + .../Resources/i18n/sk_SK/LeadCapture.json | 48 ++++++++++++++++++- .../i18n/sk_SK/LeadCaptureLogRecord.json | 15 +++++- .../Espo/Resources/i18n/sk_SK/MassAction.json | 1 + .../Resources/i18n/sk_SK/PhoneNumber.json | 1 + .../Resources/i18n/sk_SK/Preferences.json | 4 -- .../Espo/Resources/i18n/sk_SK/Role.json | 11 ++--- .../Resources/i18n/sk_SK/ScheduledJob.json | 3 -- .../Espo/Resources/i18n/sk_SK/Settings.json | 24 +++++----- .../Espo/Resources/i18n/sk_SK/Template.json | 3 +- .../Espo/Resources/i18n/sk_SK/User.json | 13 ++--- .../i18n/sk_SK/WorkingTimeCalendar.json | 1 + .../i18n/sk_SK/WorkingTimeRange.json | 1 + install/core/i18n/sk_SK/install.json | 19 +------- 45 files changed, 207 insertions(+), 138 deletions(-) create mode 100644 application/Espo/Modules/Crm/Resources/i18n/sk_SK/EntityManager.json create mode 100644 application/Espo/Resources/i18n/sk_SK/AuthenticationProvider.json create mode 100644 application/Espo/Resources/i18n/sk_SK/Currency.json create mode 100644 application/Espo/Resources/i18n/sk_SK/Formula.json create mode 100644 application/Espo/Resources/i18n/sk_SK/GroupEmailFolder.json create mode 100644 application/Espo/Resources/i18n/sk_SK/ImportError.json create mode 100644 application/Espo/Resources/i18n/sk_SK/LayoutSet.json create mode 100644 application/Espo/Resources/i18n/sk_SK/MassAction.json create mode 100644 application/Espo/Resources/i18n/sk_SK/PhoneNumber.json create mode 100644 application/Espo/Resources/i18n/sk_SK/WorkingTimeCalendar.json create mode 100644 application/Espo/Resources/i18n/sk_SK/WorkingTimeRange.json diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Account.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Account.json index 68f28e0318..855e259309 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Account.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Account.json @@ -13,7 +13,7 @@ "campaign": "Kampaň", "targetLists": "Cieľové zoznamy", "targetList": "Cieľový zoznam", - "originalLead": "Pôvodná stopa", + "originalLead": "Pôvodný prvý kontakt", "contactIsInactive": "Neaktívny" }, "links": { @@ -29,7 +29,8 @@ "campaignLogRecords": "Protokol kampane", "campaign": "Kampaň", "portalUsers": "Používatelia portálu", - "originalLead": "Pôvodná stopa" + "originalLead": "Pôvodný prvý kontakt", + "contactsPrimary": "Kontakty (primárne)" }, "options": { "type": { @@ -89,7 +90,7 @@ } }, "labels": { - "Create Account": "Vytvoriť účet", + "Create Account": "Vytvoriť organizáciu", "Copy Billing": "Kopírovať fakturačnú", "Set Primary": "Nastaviť primárny" }, diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Admin.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Admin.json index 294cb87dd6..e5efa6c174 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Admin.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Admin.json @@ -1,6 +1,6 @@ { "layouts": { - "detailConvert": "Konvertovať stopu", + "detailConvert": "Konvertovať prvý kontakt", "listForAccount": "Zoznam (pre účet)", "listForContact": "Zoznam (pre kontakt)" } diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Call.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Call.json index 7f9167e2c1..b864ad0f1c 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Call.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Call.json @@ -10,9 +10,9 @@ "description": "Popis", "users": "Používatelia", "contacts": "Kontakty", - "leads": "Stopy", + "leads": "Prvé kontakty", "reminders": "Pripomienky", - "account": "Účet", + "account": "Organizácia", "acceptanceStatus": "Akceptačný stav" }, "options": { diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Campaign.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Campaign.json index 8b3d7b4078..f37cdd933d 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Campaign.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Campaign.json @@ -15,13 +15,13 @@ "bouncedCount": "Odrazený", "hardBouncedCount": "Tvrdo odrazený", "softBouncedCount": "Ľahko odrazený", - "leadCreatedCount": "Stopy vytvorené", + "leadCreatedCount": "Prvé kontakty vytvorené", "revenue": "Príjem", "revenueConverted": "Príjem (konvertovaný)", "budget": "Rozpočet", "budgetConverted": "Rozpočet (konvertovaný)", "contactsTemplate": "Šablona kontaktov", - "leadsTemplate": "Šablona stôp", + "leadsTemplate": "Šablona prvých kontaktov", "accountsTemplate": "Šablona účtov", "usersTemplate": "Šablona používateľov", "mailMergeOnlyWithAddress": "Preskoč záznamy bez vyplnenej adresy" @@ -29,15 +29,15 @@ "links": { "targetLists": "Cieľové zoznamy", "excludingTargetLists": "Vylúčiť cieľové zoznamy", - "accounts": "Účty", + "accounts": "Organizácie", "contacts": "Kontakty", - "leads": "Stopy", + "leads": "Prvé kontakty", "opportunities": "Príležitosti", "campaignLogRecords": "Protokol", "massEmails": "Hromadné emaily", "trackingUrls": "Sledovacie URLs", "contactsTemplate": "Šablona kontaktov", - "leadsTemplate": "Šablona stôp", + "leadsTemplate": "Šablona prvých kontaktov", "accountsTemplate": "Šablona účtov", "usersTemplate": "Šablona používateľov" }, diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/CampaignLogRecord.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/CampaignLogRecord.json index a0a71bc55e..60d28065c0 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/CampaignLogRecord.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/CampaignLogRecord.json @@ -25,7 +25,7 @@ "Opted Out": "Odregistrovaný", "Bounced": "Vrátený", "Clicked": "Kliknutý", - "Lead Created": "Stopa vytvorená" + "Lead Created": "Prvý kontakt vytvorený" } }, "labels": { @@ -37,6 +37,6 @@ "optedOut": "Odregistrovaný", "bounced": "Vrátený", "clicked": "Kliknutý", - "leadCreated": "Stopa vytvorená" + "leadCreated": "Prvý kontakt vytvorený" } } \ No newline at end of file diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Case.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Case.json index c684724db5..98d8a652e0 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Case.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Case.json @@ -3,18 +3,18 @@ "name": "Názov", "number": "Číslo", "status": "Stav", - "account": "Účet", + "account": "Organizácia", "contact": "Kontakt", "contacts": "Kontakty", "priority": "Priorita", "type": "Typ", "description": "Popis", - "lead": "Stopa", + "lead": "Prvý kontakt", "attachments": "Prílohy", "inboundEmail": "Skupinový emailový účet" }, "links": { - "account": "Účet", + "account": "Organizácia", "contact": "Kontakt (Primárny)", "Contacts": "Kontakty", "meetings": "Stretnutia", @@ -22,7 +22,7 @@ "tasks": "Úlohy", "emails": "Emaily", "articles": "Článok znalostnej základne", - "lead": "Stopa", + "lead": "Prvý kontakt", "attachments": "Prílohy", "inboundEmail": "Skupinový emailový účet" }, diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Contact.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Contact.json index 08de045d88..924901cd8e 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Contact.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Contact.json @@ -2,10 +2,10 @@ "fields": { "name": "Názov", "accountRole": "Titul", - "account": "Účet", - "accounts": "Účty", + "account": "Organizácia", + "accounts": "Organizácie", "phoneNumber": "Telefón", - "accountType": "Typ účtu", + "accountType": "Typ organizácie", "doNotCall": "Nevolať", "address": "Adresa", "opportunityRole": "Rola príležitosti", @@ -14,11 +14,12 @@ "targetLists": "Zoznamy cieľov", "targetList": "Zoznam cieľov", "portalUser": "Portálový používateľ", - "originalLead": "Pôvodná stopa", + "originalLead": "Pôvodný prvý kontakt", "acceptanceStatus": "Akceptačný status", "accountIsInactive": "Účet neaktívny", "acceptanceStatusMeetings": "Akceptačný stav (stretnutia)", - "acceptanceStatusCalls": "Akceptačný stav (Hovory)" + "acceptanceStatusCalls": "Akceptačný stav (Hovory)", + "title": "Názov spoločnosti" }, "links": { "opportunities": "Príležitosti", @@ -26,11 +27,11 @@ "targetLists": "Zoznamy cieľov", "campaignLogRecords": "Protokol kampane", "campaign": "Kampaň", - "account": "Účet (Primárny)", - "accounts": "Účty", + "account": "Organizácia (Primárna)", + "accounts": "Organizácie", "casesPrimary": "Prípady (Primárne)", "portalUser": "Portálový používateľ", - "originalLead": "Pôvodná stopa", + "originalLead": "Pôvodný prvý kontakt", "documents": "Dokumenty", "tasksPrimary": "Úlohy (rozbalené)" }, diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Document.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Document.json index fcdcf7a503..0e23159133 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Document.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Document.json @@ -11,14 +11,14 @@ "publishDate": "Dátum publikovania", "expirationDate": "Dátum expirácie", "description": "Popis", - "accounts": "Účty", + "accounts": "Organizácie", "folder": "Priečinok" }, "links": { - "accounts": "Účty", + "accounts": "Organizácie", "opportunities": "Príležitosti", "folder": "Priečinok", - "leads": "Stopy", + "leads": "Prvé kontakty", "contacts": "Kontakty" }, "options": { diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Email.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Email.json index b7ef465ed4..19c7f40700 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Email.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Email.json @@ -1,10 +1,10 @@ { "labels": { - "Create Lead": "Vytvoriť stopu", + "Create Lead": "Vytvoriť prvý kontakt", "Create Contact": "Vytvoriť kontakt", "Create Task": "Vytvoriť úlohu", "Create Case": "Vytvoriť prípad", "Add to Contact": "Pridať do kontaktu", - "Add to Lead": "Pridať do stopy" + "Add to Lead": "Pridať do prvého kontaktu" } } \ No newline at end of file diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/EntityManager.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/EntityManager.json new file mode 100644 index 0000000000..e3044d758a --- /dev/null +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/EntityManager.json @@ -0,0 +1,5 @@ +{ + "tooltips": { + "canceledStatusList": "Stavové hodnoty určujúce, že aktivita je zrušená a nebudú sa brať do úvahy v rozsahu voľnosti." + } +} \ No newline at end of file diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Global.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Global.json index 6ed95a4248..f2b01a71e0 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Global.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Global.json @@ -3,22 +3,22 @@ "parent": "Rodič", "contacts": "Kontakty", "opportunities": "Príležitosti", - "leads": "Stopy", + "leads": "Prvé kontakty", "meetings": "Stretnutia", "calls": "Hovory", "tasks": "Úlohy", "emails": "Emaily", - "accounts": "Účty", + "accounts": "Organizácie", "cases": "Prípady", "documents": "Dokumemty", - "account": "Účty", + "account": "Organizácia", "opportunity": "Príležitosti", "contact": "Kontakt" }, "scopeNames": { - "Account": "Účet", + "Account": "Organizácia", "Contact": "Kontakt", - "Lead": "Stopa", + "Lead": "Prvý kontakt", "Target": "Cieľ", "Opportunity": "Príležitosť", "Meeting": "Stretnutie", @@ -39,9 +39,9 @@ "CampaignLogRecord": "Záznam protokolu kampane" }, "scopeNamesPlural": { - "Account": "Účty", + "Account": "Organizácie", "Contact": "Kontakty", - "Lead": "Stopy", + "Lead": "Prvé kontakty", "Target": "Ciele", "Opportunity": "Príležitosti", "Meeting": "Stretnutia", @@ -62,7 +62,7 @@ "CampaignLogRecord": "Záznamy protokolu kampane" }, "dashlets": { - "Leads": "Moje stopy", + "Leads": "Moje prvé kontakty", "Opportunities": "Moje príležitosti", "Tasks": "Moje úlohy", "Cases": "Moje prípady", diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Lead.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Lead.json index 324ce0357f..3603c1b4c5 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Lead.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Lead.json @@ -1,16 +1,16 @@ { "labels": { "Converted To": "Konvertovaný na", - "Create Lead": "Vytvoriť stopu", + "Create Lead": "Vytvoriť prvý kontakt", "Convert": "Konvertovať", "convert": "konvertovať" }, "fields": { "name": "Názov", - "title": "Titul", + "title": "Názov", "website": "Webová stránka", "phoneNumber": "Telefón", - "accountName": "Názov účtu", + "accountName": "Názov organizácie", "doNotCall": "Nevolať", "address": "Adresa", "status": "Stav", @@ -18,7 +18,7 @@ "opportunityAmount": "Obnos príležitosti", "opportunityAmountConverted": "Obnos príležitosti (konvertovaný)", "description": "Popis", - "createdAccount": "Účet", + "createdAccount": "Organizácia", "createdContact": "Kontakt", "createdOpportunity": "Príležitosť", "campaign": "Kampaň", @@ -28,13 +28,14 @@ "acceptanceStatus": "Akceptačný stav", "opportunityAmountCurrency": "Mena obnosu príležitosti", "acceptanceStatusMeetings": "Akceptačný stav (stretnutia)", - "acceptanceStatusCalls": "Akceptačný stav (hovory)" + "acceptanceStatusCalls": "Akceptačný stav (hovory)", + "convertedAt": "Prevedené na" }, "links": { "targetLists": "Cieľové zoznamy", "campaignLogRecords": "Protokol kampane", "campaign": "Kampaň", - "createdAccount": "Účet", + "createdAccount": "Organizácia", "createdContact": "Kontakt", "createdOpportunity": "Príležitosť", "cases": "Prípady", diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Meeting.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Meeting.json index 93a2bdb1ef..78b46d5a2a 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Meeting.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Meeting.json @@ -9,9 +9,9 @@ "description": "Popis", "users": "Používatelia", "contacts": "Kontakty", - "leads": "Stopy", + "leads": "Prvé kontakty", "reminders": "Pripomienky", - "account": "Účet", + "account": "Organizácia", "acceptanceStatus": "Akceptačný stav" }, "options": { diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Opportunity.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Opportunity.json index 226b7ce7a2..82641ab26c 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Opportunity.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Opportunity.json @@ -1,11 +1,11 @@ { "fields": { "name": "Názov", - "account": "Účet", + "account": "Organizácia", "stage": "Fáza", "amount": "Množstvo", "probability": "Uskutočniteľnosť, %", - "leadSource": "Zdroj stopy", + "leadSource": "Zdroj prvého kontaktu", "doNotCall": "Nevolať", "closeDate": "Dátum uzatvorenia", "contacts": "Kontakty", @@ -13,7 +13,7 @@ "amountConverted": "Množstvo (konvertované)", "amountWeightedConverted": "Množstvo vážené", "campaign": "Kampaň", - "originalLead": "Pôvodná stopa", + "originalLead": "Pôvodný prvý kontakt", "amountCurrency": "Mena obnosu", "contactRole": "Rola kontaktu", "lastStage": "Posledné štádium" @@ -22,7 +22,7 @@ "contacts": "Kontakty", "documents": "Dokumenty", "campaign": "Kampaň", - "originalLead": "Pôvodná stopa" + "originalLead": "Pôvodný prvý kontakt" }, "options": { "stage": { diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/TargetList.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/TargetList.json index f122b93e85..ad5b2fa037 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/TargetList.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/TargetList.json @@ -13,9 +13,9 @@ "isOptedOut": "Je vylúčený z odberu" }, "links": { - "accounts": "Účty", + "accounts": "Organizácie", "contacts": "Kontakty", - "leads": "Stopy", + "leads": "Prvé kontakty", "campaigns": "Kampane", "massEmails": "Hromadné emaily" }, diff --git a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Task.json b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Task.json index 55e4f13ead..43b241b39b 100644 --- a/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Task.json +++ b/application/Espo/Modules/Crm/Resources/i18n/sk_SK/Task.json @@ -10,7 +10,7 @@ "priority": "Priorita", "description": "Popis", "isOverdue": "Je prešlý", - "account": "Účet", + "account": "Organizácia", "dateCompleted": "Dátum dokončenia", "attachments": "Prílohy", "reminders": "Pripomienky", @@ -18,7 +18,7 @@ }, "links": { "attachments": "Prílohy", - "account": "Účet", + "account": "Organizácia", "contact": "Kontakt" }, "options": { diff --git a/application/Espo/Resources/i18n/sk_SK/Admin.json b/application/Espo/Resources/i18n/sk_SK/Admin.json index d470dbc70d..68318ecc37 100644 --- a/application/Espo/Resources/i18n/sk_SK/Admin.json +++ b/application/Espo/Resources/i18n/sk_SK/Admin.json @@ -56,7 +56,14 @@ "Action History": "História akcií", "Label Manager": "Správca popiskov", "Auth Log": "Auth protokol", - "Permissions": "Povolenie" + "Lead Capture": "Zachytenie prvého kontaktu", + "Attachments": "Prílohy", + "Template Manager": "Správca šablón", + "System Requirements": "Systémové požiadavky", + "PHP Settings": "PHP nastavenia", + "Database Settings": "Nastavenie databázy", + "Permissions": "Povolenie", + "Success": "Úspech" }, "layouts": { "list": "Zoznam", @@ -144,7 +151,8 @@ "noEmptyString": "Prázdny reťazec nie je povolený", "maxFileSize": "Max. veľkosť súboru (MB)", "isPersonalData": "Sú osobné dáta", - "useIframe": "Použite Iframe" + "useIframe": "Použite Iframe", + "useNumericFormat": "Použiť číselný formát" }, "messages": { "selectEntityType": "Vyber typ entity v ľavom menu", @@ -156,7 +164,6 @@ "upgradeBackup": "Pred aktualizáciou odporúčame urobiť zálohu súborov a dát EspoCRM.", "thousandSeparatorEqualsDecimalMark": "Oddeľovač tisícov nemôže byť rovnaký ako oddeľovač desatinných miest.", "userHasNoEmailAddress": "Používateľ nemá emailovú adresu.", - "newVersionIsAvailable": "Je k dispozícii nová verzia EspoCRM {latestVersion}.", "uninstallConfirmation": "Ste si istý, že chcete rozšírenie odinštalovať?" }, "descriptions": { @@ -189,7 +196,8 @@ "emailFilters": "Emailové správy, ktoré vyhovujú danému filtru, nebudú importované.", "actionHistory": "Protokol používateľských akcií.", "labelManager": "Prispôsobenie popiskov v aplikácii.", - "authLog": "História prihlásení." + "authLog": "História prihlásení.", + "leadCapture": "Vstupné body API pre Web-to-Lead" }, "options": { "previewSize": { diff --git a/application/Espo/Resources/i18n/sk_SK/Attachment.json b/application/Espo/Resources/i18n/sk_SK/Attachment.json index 9d9f8449df..7404804dfe 100644 --- a/application/Espo/Resources/i18n/sk_SK/Attachment.json +++ b/application/Espo/Resources/i18n/sk_SK/Attachment.json @@ -1,5 +1,20 @@ { "insertFromSourceLabels": { "Document": "Vložiť dokument" + }, + "fields": { + "file": "Súbor", + "type": "Typ", + "field": "Pole", + "sourceId": "Zdroj ID", + "size": "Veľkosť (bajty)" + }, + "options": { + "role": { + "Attachment": "Príloha", + "Import File": "Importovať súbor", + "Export File": "Exportovať súbor", + "Mail Merge": "Zlúčiť maily" + } } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/AuthenticationProvider.json b/application/Espo/Resources/i18n/sk_SK/AuthenticationProvider.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/AuthenticationProvider.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Currency.json b/application/Espo/Resources/i18n/sk_SK/Currency.json new file mode 100644 index 0000000000..a0268145a8 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/Currency.json @@ -0,0 +1,5 @@ +{ + "names": { + "CLF": "Čilská účtovná jednotka (UF)" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/DashletOptions.json b/application/Espo/Resources/i18n/sk_SK/DashletOptions.json index 3b074d29dd..7af30b621c 100644 --- a/application/Espo/Resources/i18n/sk_SK/DashletOptions.json +++ b/application/Espo/Resources/i18n/sk_SK/DashletOptions.json @@ -29,5 +29,8 @@ }, "messages": { "selectEntityType": "Vyberte typ entity v možnostiach dashletu." + }, + "tooltips": { + "skipOwn": "Akcie vykonané vaším používateľským účtom sa nezobrazia." } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Email.json b/application/Espo/Resources/i18n/sk_SK/Email.json index ab7fc2dc9a..4ddee56fc4 100644 --- a/application/Espo/Resources/i18n/sk_SK/Email.json +++ b/application/Espo/Resources/i18n/sk_SK/Email.json @@ -8,7 +8,6 @@ "bcc": "Slepá kópia", "replyTo": "Odpovedať", "replyToString": "Odpovedať (String)", - "isHtml": "Je Html", "body": "Telo", "subject": "Predmet", "attachments": "Prílohy", @@ -99,7 +98,6 @@ "Folders": "Priečinky" }, "messages": { - "noSmtpSetup": "Chýba SMTP nastavenie. {link}.", "testEmailSent": "Testovací email bol odoslaný", "emailSent": "Email bol odoslaný", "savedAsDraft": "Uložené ako koncept", diff --git a/application/Espo/Resources/i18n/sk_SK/EmailAccount.json b/application/Espo/Resources/i18n/sk_SK/EmailAccount.json index 102d56da90..6e12e1d9bb 100644 --- a/application/Espo/Resources/i18n/sk_SK/EmailAccount.json +++ b/application/Espo/Resources/i18n/sk_SK/EmailAccount.json @@ -17,7 +17,9 @@ "smtpSecurity": "SMTP bezpečnosť", "smtpUsername": "SMTP používateľské meno", "smtpPassword": "SMTP heslo", - "useImap": "Načítať emaily" + "useImap": "Načítať emaily", + "smtpAuthMechanism": "Mechanizmus SMTP autorizácie", + "security": "Bezpečnosť" }, "links": { "filters": "Filtre", @@ -41,6 +43,8 @@ }, "tooltips": { "monitoredFolders": "Viaceré priečinky majú byť oddelené čiarkou.\n\nMôžete pridať priečinok s odoslanou poštou na synchronizovanie emailov odoslaných exteným emailovým klientom.", - "storeSentEmails": "Odoslané emaily budú uložené na serveri IMAP. Pole s emailovou adresou by sa malo zhodovať s adresou, z ktorej budú emaily odoslané." + "storeSentEmails": "Odoslané emaily budú uložené na serveri IMAP. Pole s emailovou adresou by sa malo zhodovať s adresou, z ktorej budú emaily odoslané.", + "useSmtp": "Schopnosť posielať e-maily.", + "emailAddress": "Záznam používateľa (priradený používateľ) by mal mať rovnakú e-mailovú adresu, aby bolo možné použiť tento e-mailový účet na odosielanie." } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/EmailFilter.json b/application/Espo/Resources/i18n/sk_SK/EmailFilter.json index fa27177bcd..d22c830642 100644 --- a/application/Espo/Resources/i18n/sk_SK/EmailFilter.json +++ b/application/Espo/Resources/i18n/sk_SK/EmailFilter.json @@ -16,7 +16,6 @@ "from": "Emaily odoslané zo špecifikovanej adresy. Ponechaj prázdne nie je potrebné. Môžeš použiť zástupný znak *.", "to": "Emaily odoslané na špecifikovanú adresu. Ponechaj prázdne nie je potrebné. Môžeš použiť zástupný znak *.", "name": "Zadajte filtru popisný názov.", - "subject": "Použite zástupný znak *:\n\ntext* - začína s text,\n*text* - obsahuje text,\n*text - končí na text.", "bodyContains": "Telo emailu obsahuje akékoľvek zadané slová alebo frázy.", "isGlobal": "Aplikuje tento filter na všetky emaily prichádzajúce do systému." }, diff --git a/application/Espo/Resources/i18n/sk_SK/EmailTemplate.json b/application/Espo/Resources/i18n/sk_SK/EmailTemplate.json index 802cc3ff84..42f5ea14ff 100644 --- a/application/Espo/Resources/i18n/sk_SK/EmailTemplate.json +++ b/application/Espo/Resources/i18n/sk_SK/EmailTemplate.json @@ -2,11 +2,9 @@ "fields": { "name": "Názov", "status": "Stav", - "isHtml": "Je Html", "body": "Telo", "subject": "Predmet", "attachments": "Prílohy", - "insertField": "Vlož pole", "category": "Kategória" }, "labels": { @@ -19,11 +17,7 @@ "presetFilters": { "actual": "Aktuálne" }, - "messages": { - "infoText": "Dostupné náhrady:\n\n{optOutUrl} – URL pre odkaz na odregistrovanie;\n\n{optOutLink} – odkaz na odregistrovanie." - }, "placeholderTexts": { - "optOutUrl": "URL pre odkaz na odhlásenie odberu", "optOutLink": "odkaz na odhlásenie odberu" } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/ExternalAccount.json b/application/Espo/Resources/i18n/sk_SK/ExternalAccount.json index 479ed17e7b..6af611b1a0 100644 --- a/application/Espo/Resources/i18n/sk_SK/ExternalAccount.json +++ b/application/Espo/Resources/i18n/sk_SK/ExternalAccount.json @@ -1,6 +1,8 @@ { "labels": { "Connect": "Spojenie", - "Connected": "Spojené" + "Connected": "Spojené", + "Disconnect": "Odpojiť", + "Disconnected": "Odpojené" } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Formula.json b/application/Espo/Resources/i18n/sk_SK/Formula.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/Formula.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Global.json b/application/Espo/Resources/i18n/sk_SK/Global.json index 160827ee52..d0dc12e4f5 100644 --- a/application/Espo/Resources/i18n/sk_SK/Global.json +++ b/application/Espo/Resources/i18n/sk_SK/Global.json @@ -39,7 +39,9 @@ "PhoneNumber": "Telefónne číslo", "AuthLogRecord": "Záznam Auth protokolu", "AuthFailLogRecord": "Záznam Auth chybového protokolu", - "EmailTemplateCategory": "Kategórie emailových šablón" + "EmailTemplateCategory": "Kategórie emailových šablón", + "LeadCapture": "Vstupné body pre zachytenie prvých kontaktov", + "LeadCaptureLogRecord": "Vedenie záznamu denníka zachytenia" }, "scopeNamesPlural": { "Email": "Emaily", @@ -71,7 +73,9 @@ "LastViewed": "Naposledy videné", "AuthLogRecord": "Auth protokol", "AuthFailLogRecord": "Auth chybový protokol", - "EmailTemplateCategory": "Kategórie emailových šablón" + "EmailTemplateCategory": "Kategórie emailových šablón", + "LeadCapture": "Zachytenie prvého kontaktu", + "LeadCaptureLogRecord": "Záznam zachytenia prvého kontaktu" }, "labels": { "Misc": "Rôzne", @@ -88,7 +92,6 @@ "Loading...": "Sťahovanie ...", "Uploading...": "Nahrávanie ...", "Sending...": "Posielanie ...", - "Merging...": "Zlučovanie ...", "Merged": "Zlúčené", "Removed": "Odstránené", "Posted": "Odoslané", @@ -102,14 +105,10 @@ "Record has been removed": "Záznam bol odstránený", "Wrong username/password": "Nesprávne používateľské meno/heslo", "Post cannot be empty": "Príspevok nemôže byť prázdny", - "Removing...": "Odstraňujem ...", - "Unlinking...": "Ruším linku ...", - "Posting...": "Posielam ...", "Username can not be empty!": "Používateľské meno nemôže byť prázdne!", "Cache is not enabled": "Vyrovnávacia pamäť nie je povolená", "Cache has been cleared": "Vyrovnávacia pamäť bola vymazaná", "Rebuild has been done": "Rekompilácia bola dokončená", - "Saving...": "Ukladám ...", "Modified": "Zmenené", "Created": "Vytvorené", "Create": "Vytvoriť", @@ -223,7 +222,6 @@ }, "messages": { "pleaseWait": "Čakajte prosím ...", - "posting": "Odosielam ...", "confirmLeaveOutMessage": "Si si istý, že chceš opustiť formulár?", "notModified": "Nezmenil si záznam", "fieldIsRequired": "{field} je povinné", @@ -272,8 +270,6 @@ "loading": "Nahrávanie...", "saving": "Ukladanie...", "fieldMaxFileSizeError": "Súbor by nemal prekročiť {max} MB", - "fieldShouldBeLess": "{field} by nemalo byť väčšie ako {value}", - "fieldShouldBeGreater": "{field} by nemalo byť menšie ako {value}", "fieldIsUploading": "Prebieha nahrávanie", "erasePersonalDataConfirmation": "Označené polia budú zmazané natrvalo. Ste si istý?", "massPrintPdfMaxCountError": "Nedá sa tlačiť viac ako {maxCount} zázanmov" @@ -455,9 +451,6 @@ "Mrs.": "Pani", "Ms.": "Slečna" }, - "language": { - "sk_SK": "Slovensky" - }, "dateSearchRanges": { "on": "V deň", "notOn": "Nie v deň", diff --git a/application/Espo/Resources/i18n/sk_SK/GroupEmailFolder.json b/application/Espo/Resources/i18n/sk_SK/GroupEmailFolder.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/GroupEmailFolder.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Import.json b/application/Espo/Resources/i18n/sk_SK/Import.json index 0e7013d38e..6756791b56 100644 --- a/application/Espo/Resources/i18n/sk_SK/Import.json +++ b/application/Espo/Resources/i18n/sk_SK/Import.json @@ -60,7 +60,6 @@ "removeDuplicates": "Toto navždy odstráni všetky naimportované záznamy, ktoré boli identofikované ako duplikáty.", "confirmRevert": "Toto odstráni všetky importované záznamy natrvalo. Ste si istý?", "confirmRemoveDuplicates": "Toto navždy odstráni všetky naimportované záznamy, ktoré boli identofikované ako duplikáty. Ste si istý?", - "confirmRemoveImportLog": "Toto odstráni protokol importu. Všetky naimportované záznamy zostanú zachované. Nebudte mať možnosť vrátiť výsledky importu. Ste si istý?", "removeImportLog": "Toto odstráni protokol importu. Všetky importované záznamy budú zachované. Použite to, ak ste si istý, že import je v poriadku." }, "fields": { diff --git a/application/Espo/Resources/i18n/sk_SK/ImportError.json b/application/Espo/Resources/i18n/sk_SK/ImportError.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/ImportError.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/LayoutSet.json b/application/Espo/Resources/i18n/sk_SK/LayoutSet.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/LayoutSet.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/LeadCapture.json b/application/Espo/Resources/i18n/sk_SK/LeadCapture.json index 9e26dfeeb6..8574bc7902 100644 --- a/application/Espo/Resources/i18n/sk_SK/LeadCapture.json +++ b/application/Espo/Resources/i18n/sk_SK/LeadCapture.json @@ -1 +1,47 @@ -{} \ No newline at end of file +{ + "fields": { + "name": "Meno", + "campaign": "Kampaň", + "isActive": "Je aktívny", + "subscribeToTargetList": "Prihláste sa na odber zoznamu cieľov", + "subscribeContactToTargetList": "Prihlásiť sa na odber Kontakt, ak existuje", + "targetList": "Zoznam cieľov", + "fieldList": "Polia užitočného zaťaženia", + "optInConfirmation": "Dvojité prihlásenie", + "optInConfirmationEmailTemplate": "Šablóna e-mailu na potvrdenie súhlasu", + "optInConfirmationLifetime": "Životnosť potvrdenia prihlásenia (hodiny)", + "optInConfirmationSuccessMessage": "Text, ktorý sa zobrazí po potvrdení prihlásenia", + "leadSource": "Zdroj prvého kontaktu", + "apiKey": "API kľúč", + "targetTeam": "Cieľový tím", + "exampleRequestMethod": "Metóda", + "exampleRequestPayload": "Užitočné zaťaženie", + "createLeadBeforeOptInConfirmation": "Pred prvým kontaktom vytvorte potenciálneho zákazníka", + "duplicateCheck": "Duplicitná kontrola", + "skipOptInConfirmationIfSubscribed": "Preskočte potvrdenie, ak je potenciálny zákazník už v zozname cieľov", + "smtpAccount": "SMTP účet", + "inboundEmail": "Skupinový e-mailový účet", + "exampleRequestHeaders": "Hlavičky" + }, + "links": { + "targetList": "Zoznam cieľov", + "campaign": "Kampaň", + "optInConfirmationEmailTemplate": "Šablóna e-mailu na potvrdenie súhlasu", + "targetTeam": "Cieľový tím", + "inboundEmail": "Skupinový e-mailový účet" + }, + "labels": { + "Create LeadCapture": "Vytvorte vstupný bod", + "Generate New API Key": "Vygenerovať nový kľúč API", + "Request": "Žiadosť", + "Confirm Opt-In": "Potvrďte prihlásenie" + }, + "messages": { + "generateApiKey": "Vytvorte nový kľúč API", + "optInConfirmationExpired": "Platnosť odkazu na potvrdenie prihlásenia vypršala.", + "optInIsConfirmed": "Prihlásenie je potvrdené." + }, + "tooltips": { + "optInConfirmationSuccessMessage": "Markdown je podporovaný." + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/LeadCaptureLogRecord.json b/application/Espo/Resources/i18n/sk_SK/LeadCaptureLogRecord.json index 9e26dfeeb6..060f9c31ee 100644 --- a/application/Espo/Resources/i18n/sk_SK/LeadCaptureLogRecord.json +++ b/application/Espo/Resources/i18n/sk_SK/LeadCaptureLogRecord.json @@ -1 +1,14 @@ -{} \ No newline at end of file +{ + "fields": { + "number": "Číslo", + "data": "Údaje", + "target": "Cieľ", + "leadCapture": "Zachytenie prvého kontaktu", + "createdAt": "Zadané o", + "isCreated": "Je prvý kontakt vytvorený" + }, + "links": { + "leadCapture": "Zachytenie prvého kontaktu", + "target": "Cieľ" + } +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/MassAction.json b/application/Espo/Resources/i18n/sk_SK/MassAction.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/MassAction.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/PhoneNumber.json b/application/Espo/Resources/i18n/sk_SK/PhoneNumber.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/PhoneNumber.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Preferences.json b/application/Espo/Resources/i18n/sk_SK/Preferences.json index a8c08938c7..3cfca5e6db 100644 --- a/application/Espo/Resources/i18n/sk_SK/Preferences.json +++ b/application/Espo/Resources/i18n/sk_SK/Preferences.json @@ -9,10 +9,6 @@ "defaultCurrency": "Predvolená mena", "currencyList": "Zoznam mien", "language": "Jazyk", - "smtpSecurity": "Bezpečnosť", - "smtpUsername": "Používateľské meno", - "smtpPassword": "Heslo", - "smtpEmailAddress": "Emailová adresa", "exportDelimiter": "Oddeľovač exportu", "signature": "Emailový podpis", "dashboardTabList": "Zoznam záložiek", diff --git a/application/Espo/Resources/i18n/sk_SK/Role.json b/application/Espo/Resources/i18n/sk_SK/Role.json index eb4fde0ed4..973bb17c83 100644 --- a/application/Espo/Resources/i18n/sk_SK/Role.json +++ b/application/Espo/Resources/i18n/sk_SK/Role.json @@ -13,13 +13,6 @@ "users": "Používatelia", "teams": "Tímy" }, - "tooltips": { - "assignmentPermission": "Umožňuje obmedziť možnosť priradiť záznam a posielanie správ iným používateľom\n\nall - bez obmedzení\n\nteam - môže priradiť a posielať iba členom tímu\n\nno - môže priradiť a posielať len sebe", - "userPermission": "Umožňuje obmedziť možnosť používateľovi vidieť ativity, kalendár a stream iných používateľov.\n\nall - môže vidieť všetko\n\nteam - môže vidieť aktivity iba vrámci tímu\n\nno - nemôže vidieť", - "portalPermission": "Definuje prístup k portálovej informácii, možnosť posielať správy portálovým používateľom.", - "groupEmailAccountPermission": "Definuje prístup k skupinovým emailovým účtom, možnosť posielať emaily zo skupinového SMTP.", - "dataPrivacyPermission": "Povoľuje prezerať a mazať osobné údaje." - }, "labels": { "Access": "Prístup", "Create Role": "Vytvoriť rolu", @@ -51,5 +44,9 @@ }, "messages": { "changesAfterClearCache": "Všetky zmeny v riadení prístupu budú aplikované po vymazaní vyrovnávacej pamäte." + }, + "tooltips": { + "dataPrivacyPermission": "Povoľuje prezerať a mazať osobné údaje.", + "groupEmailAccountPermission": "Prístup k skupinovým e-mailovým účtom , možnosť odosielať e-maily zo skupinového SMTP." } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/ScheduledJob.json b/application/Espo/Resources/i18n/sk_SK/ScheduledJob.json index aec5115aca..bea94586d7 100644 --- a/application/Espo/Resources/i18n/sk_SK/ScheduledJob.json +++ b/application/Espo/Resources/i18n/sk_SK/ScheduledJob.json @@ -31,8 +31,5 @@ "Active": "Aktívny", "Inactive": "Neaktívny" } - }, - "tooltips": { - "scheduling": "Zápis Crontab. Definuje frekvenciu spúšťania behov.\n\n*/5 * * * * - každých 5 minút\n\n0 */2 * * * - každé 2 hodiny\n\n30 1 * * * - o 01:30 raz za deň\n\n0 0 1 * * - v prvý deň mesiaca" } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Settings.json b/application/Espo/Resources/i18n/sk_SK/Settings.json index c3f1204c0f..4d839cec4a 100644 --- a/application/Espo/Resources/i18n/sk_SK/Settings.json +++ b/application/Espo/Resources/i18n/sk_SK/Settings.json @@ -77,7 +77,6 @@ "historyEntityList": "Zoznam entít histórie", "currencyFormat": "Formát meny", "currencyDecimalPlaces": "Desatinné miesta meny", - "aclStrictMode": "ACL striktný režim", "followCreatedEntities": "Sledovať vytvorené záznamy", "aclAllowDeleteCreated": "Povoliť odstrániť vytvorené záznamy", "adminNotifications": "Systémové upozornenia v administračnom paneli", @@ -93,17 +92,6 @@ "emailAddressIsOptedOutByDefault": "Označiť adresu ako odregistrovanú", "outboundEmailBccAddress": "BCC adresa na externých klientov" }, - "options": { - "weekStart": { - "0": "Nedeľa", - "1": "Pondelok" - }, - "streamEmailNotificationsTypeList": { - "Post": "Príspevky", - "Status": "Aktualizácie stavu", - "EmailReceived": "Prijaté emaily" - } - }, "tooltips": { "recordsPerPage": "Počet záznamov na začiatku zobrazených v zozname.", "recordsPerPageSmall": "Počet záznamov na začiatku zobrazených v paneloch vzťahov.", @@ -140,7 +128,10 @@ "textFilterUseContainsForVarchar": "Ak nie je označené, potom je použitý operátor 'začína s'. Môžete použiť zástupnú znak '%'.", "streamEmailNotificationsEntityList": "Emailové upozornenia o zmenách v streamoch sledovaných záznamov.\nPoužívatelia budú prijímať emailové upozornenia len od daných typov entít.", "authTokenPreventConcurrent": "Používatelia sa nebudú môcť prihlásiť na viacerých zariadeniach súčasne.", - "emailAddressIsOptedOutByDefault": "Keď vytvárate nový záznam, emailová adresa bude označená ako odregistrovaná." + "emailAddressIsOptedOutByDefault": "Keď vytvárate nový záznam, emailová adresa bude označená ako odregistrovaná.", + "ldapAccountCanonicalForm": "Typ kanonického formulára vášho účtu. K dispozícii sú 4 možnosti: \n\n- 'Dn' - formulár vo formáte 'CN=tester,OU=espocrm,DC=test, DC=lan'. \n\n- 'Používateľské meno' - formulár 'tester'. \n\n- 'Spätná lomka' - tvar 'SPOLOČNOSŤ\\tester'. \n\n- 'Principal' - formulár 'tester@company.com'.", + "smtpServer": "Ak je prázdne, použije sa skupinový e-mailový účet s príslušnou e-mailovou adresou.", + "busyRangesEntityList": "Čo sa bude brať do úvahy pri zobrazovaní zaneprázdnených časových rozsahov v plánovači a časovej osi." }, "labels": { "System": "Systém", @@ -158,5 +149,12 @@ }, "messages": { "ldapTestConnection": "Spojenie bolo úspešne vytvorené." + }, + "options": { + "streamEmailNotificationsTypeList": { + "Post": "Príspevky", + "Status": "Aktualizácie stavu", + "EmailReceived": "Prijaté emaily" + } } } \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/Template.json b/application/Espo/Resources/i18n/sk_SK/Template.json index 7edcaf65ed..5e56550e71 100644 --- a/application/Espo/Resources/i18n/sk_SK/Template.json +++ b/application/Espo/Resources/i18n/sk_SK/Template.json @@ -13,7 +13,8 @@ "footerPosition": "Pozícia päty", "variables": "Dostupné náhrady", "pageOrientation": "Orientácia stránky", - "pageFormat": "Formát papiera" + "pageFormat": "Formát papiera", + "fontFace": "Písmo" }, "labels": { "Create Template": "Vytvoriť šablónu" diff --git a/application/Espo/Resources/i18n/sk_SK/User.json b/application/Espo/Resources/i18n/sk_SK/User.json index baf7aee62a..9481460ab1 100644 --- a/application/Espo/Resources/i18n/sk_SK/User.json +++ b/application/Espo/Resources/i18n/sk_SK/User.json @@ -18,8 +18,8 @@ "isActive": "Je aktívny", "isPortalUser": "Je portálový používateľ", "contact": "Konktakt", - "accounts": "Účty", - "account": "Účet (primárny)", + "accounts": "Organizácie", + "account": "Organizácia (primárna)", "sendAccessInfo": "Poslať používateľovi email s informáciou o prístupe", "portal": "Portál", "gender": "Pohlavie", @@ -36,8 +36,8 @@ "portals": "Portály", "portalRoles": "Portálové role", "contact": "Kontakt", - "accounts": "Účty", - "account": "Účet (Primárny)", + "accounts": "Organizácie", + "account": "Organizácia (Primárna)", "tasks": "Úlohy" }, "labels": { @@ -76,7 +76,8 @@ "forbidden": "Odmietnutý prístup, skúste neskôr", "uniqueLinkHasBeenSent": "Jedinečná URL bola odoslaná na uvedenú emailovú adresu.", "passwordChangedByRequest": "Heslo bolo zmenené.", - "userNameExists": "Používateľské meno už existuje" + "userNameExists": "Používateľské meno už existuje", + "passwordRecoverySentIfMatched": "Za predpokladu, že zadané údaje sa zhodujú s ľubovoľným používateľským účtom." }, "boolFilters": { "onlyMyTeam": "Len môj tím" @@ -93,4 +94,4 @@ "Neutral": "Neutrálny" } } -} +} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/WorkingTimeCalendar.json b/application/Espo/Resources/i18n/sk_SK/WorkingTimeCalendar.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/WorkingTimeCalendar.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/application/Espo/Resources/i18n/sk_SK/WorkingTimeRange.json b/application/Espo/Resources/i18n/sk_SK/WorkingTimeRange.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/application/Espo/Resources/i18n/sk_SK/WorkingTimeRange.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/install/core/i18n/sk_SK/install.json b/install/core/i18n/sk_SK/install.json index f9187cf39c..8cd97c88f9 100644 --- a/install/core/i18n/sk_SK/install.json +++ b/install/core/i18n/sk_SK/install.json @@ -90,23 +90,6 @@ "option": "Odporúčaná hodnota je {0}", "mysqlSettingError": "EspoCRM vyžaduje aby nastavenie MySQL \"{NAME}\" bolo nastavené na {VALUE}" }, - "options": { - "modRewriteInstruction": { - "apache": { - "windows": "
1. Nájdite súbor httpd.conf (obyčajne sa nachádza v priečinku s názvom conf, config alebo niečo okolo tých riadkov)
\n2. Vo vnútri httpd.conf odkomentujte riadok {WINDOWS_APACHE1} (odstránte '#' na začiatku riadku)
\n3. Tiež skontrolujte či riadok ClearModuleList je odkomentovany a nájdite a uistite sa že riadok AddModule mod_rewrite.c nie je zakomentovaný.\n
", - "linux": "

1. Povoliť \"mod_rewrite\". Spustite v termináli príkaz:
{APACHE1}

2. Povoliť podporu .htaccess. Pridajte/zmeňte nastavenia v konfigurácii servera ({APACHE2_PATH1}, {APACHE2_PATH2}, {APACHE2_PATH3}):
{APACHE2}
\n Potom spustite tento príkaz v termináli:
{APACHE3}

3. Skúste pridať RewriteBase cestu, otvorte súbor {API_PATH}.htaccess a vymeňte riadok:
{APACHE4}
za
{APACHE5}

Pre viac informácií navštívte Konfigurácia Apache server pre EspoCRM.

" - }, - "nginx": { - "linux": "
Pridajte tento kód do konfiguračného súboru Vášho serveru Nginx {NGINX_PATH} do vnútra sekcie \"server\":
{NGINX}

Pre podrobnejšie informácie prosím navštívte stránku s návodmi Konfigurácia Nginx servera pre EspoCRM.

" - } - }, - "modRewriteTitle": { - "apache": "

Chyba API: EspoCRM API je nedostupné.


Urobte iba nevyhnutné kroky. Po každom kroku skontrolujte, či je problém vyriešený.", - "nginx": "

Chyba API: EspoCRM API je nedostupné.

", - "microsoft-iis": "

Chyba API: EspoCRM API je nedostupné.


Možný problém: zakázaný \"URL Rewrite\". Prosím skontrolujte a povoľte modul \"URL Rewrite\" v IIS serveri", - "default": "

Chyba API: EspoCRM API je nedostupné.


Možný problém: zakázaný Rewrite Module. Prosím skontrolujte a povoľte Rewrite Module vo Vašom serveri (napr. mod_rewrite v Apache) a podporu .htaccess." - } - }, "systemRequirements": { "requiredPhpVersion": "Verzia PHP", "requiredMysqlVersion": "Verzia MySQL", @@ -114,4 +97,4 @@ "dbname": "Názov databázy", "user": "Používateľské meno" } -} +} \ No newline at end of file