Merge branch 'fix'

This commit is contained in:
Yuri Kuznetsov
2023-10-06 10:35:58 +03:00
81 changed files with 429 additions and 224 deletions
@@ -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"
}
}
@@ -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": {
@@ -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"
},
@@ -1,6 +1,6 @@
{
"layouts": {
"detailConvert": "Konvertovať stopu",
"detailConvert": "Konvertovať prvý kontakt",
"listForAccount": "Zoznam (pre účet)",
"listForContact": "Zoznam (pre kontakt)"
}
@@ -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": {
@@ -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"
},
@@ -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ý"
}
}
@@ -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"
},
@@ -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é)"
},
@@ -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": {
@@ -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"
}
}
@@ -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."
}
}
@@ -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",
@@ -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",
@@ -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": {
@@ -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": {
@@ -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"
},
@@ -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": {
@@ -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,
@@ -0,0 +1 @@
{}
@@ -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é dinvestissement chilienne (UF)",
"CLP": "Peso chilien",
"GNF": "Franc guinéen",
"JPY": "Yen japonais",
@@ -6,7 +6,6 @@
"to": "À",
"replyTo": "Répondre à",
"replyToString": "Répondre à (texte)",
"isHtml": "Html",
"body": "Corps",
"subject": "Objet",
"attachments": "Pièces-jointes",
@@ -2,7 +2,6 @@
"fields": {
"name": "Nom",
"status": "Statut",
"isHtml": "Html",
"body": "Corps",
"subject": "Objet",
"attachments": "Pièces-jointes",
@@ -0,0 +1 @@
{}
@@ -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",
@@ -0,0 +1 @@
{}
@@ -0,0 +1 @@
{}
@@ -0,0 +1 @@
{}
@@ -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."
}
}
@@ -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",
@@ -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."
}
}
@@ -116,4 +116,4 @@
"ApiKey": "clé API"
}
}
}
}
@@ -0,0 +1 @@
{}
@@ -0,0 +1 @@
{}
@@ -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": {
@@ -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"
}
}
}
@@ -0,0 +1 @@
{}
@@ -0,0 +1,5 @@
{
"names": {
"CLF": "Čilská účtovná jednotka (UF)"
}
}
@@ -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."
}
}
@@ -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",
@@ -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."
}
}
@@ -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."
},
@@ -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"
}
}
@@ -1,6 +1,8 @@
{
"labels": {
"Connect": "Spojenie",
"Connected": "Spojené"
"Connected": "Spojené",
"Disconnect": "Odpojiť",
"Disconnected": "Odpojené"
}
}
@@ -0,0 +1 @@
{}
@@ -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ň",
@@ -0,0 +1 @@
{}
@@ -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": {
@@ -0,0 +1 @@
{}
@@ -0,0 +1 @@
{}
@@ -1 +1,47 @@
{}
{
"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ý."
}
}
@@ -1 +1,14 @@
{}
{
"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ľ"
}
}
@@ -0,0 +1 @@
{}
@@ -0,0 +1 @@
{}
@@ -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",
@@ -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."
}
}
@@ -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"
}
}
@@ -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"
}
}
}
@@ -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"
@@ -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"
}
}
}
}
@@ -0,0 +1 @@
{}
@@ -0,0 +1 @@
{}
@@ -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,
@@ -11,10 +11,12 @@
</div>
<div class="button-container">
<button class="btn btn-default btn-wide" data-action="createLink">
<span class="fas fa-plus"></span>
{{translate 'Create Link' scope='Admin'}}
</button>
{{#if isCreatable}}
<button class="btn btn-default btn-wide" data-action="createLink">
<span class="fas fa-plus"></span>
{{translate 'Create Link' scope='Admin'}}
</button>
{{/if}}
</div>
{{#if linkDataList.length}}
@@ -80,9 +82,11 @@
{{translate entityForeign category='scopeNames'}}
</td>
<td align="right" width="10%">
<a role="button" tabindex="0" data-action="editLink" data-link="{{link}}">
{{translate 'Edit'}}
</a>
{{#if isEditable}}
<a role="button" tabindex="0" data-action="editLink" data-link="{{link}}">
{{translate 'Edit'}}
</a>
{{/if}}
</td>
<td align="right" width="10%">
{{#if isRemovable}}
+14 -2
View File
@@ -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}}
<span class="{{iconClass}}"></span>
{{/if}}
{{/if}}
{{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label scope=../scope}}{{/if}}{{/if}}
</a>
{{/each}}
@@ -63,7 +69,13 @@
data-action="{{action}}"
{{#each data}} data-{{@key}}="{{./this}}"{{/each}}
>
{{#if iconHtml}}{{{iconHtml}}} {{/if}}
{{#if iconHtml}}
{{{iconHtml}}}
{{else}}
{{#if iconClass}}
<span class="{{iconClass}}"></span>
{{/if}}
{{/if}}
{{#if html}}{{{html}}}{{else}}{{#if text}}{{text}}{{else}}{{translate label scope=../scope}}{{/if}}{{/if}}</a></li>
{{else}}
{{#unless @first}}
@@ -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();
@@ -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);
@@ -81,7 +81,7 @@ class EntityManagerIndexView extends View {
scopeList = scopeListSorted;
scopeList.forEach(scope => {
let d = /** @type Object.<string, *>*/this.getMetadata().get('scopes.' + scope);
let d = /** @type {Object.<string, *>} */this.getMetadata().get('scopes.' + scope);
let isRemovable = !!d.isCustom;
@@ -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: `
<div class="no-side-margin">
<table class="table table-bordered table-panel">
<div class="panel no-side-margin">
<table class="table table-bordered">
{{#each typeList}}
<tr>
<td style="width: 40%">
@@ -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;
}
@@ -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(() => {
+3 -1
View File
@@ -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,
});
});
});
+36 -7
View File
@@ -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;
+27 -22
View File
@@ -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,
+14 -3
View File
@@ -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 || []),
+15 -4
View File
@@ -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 || []),
+1
View File
@@ -65,6 +65,7 @@ class MainView extends View {
* @property {Object.<string,string|number|boolean>} [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.
+7
View File
@@ -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;
+1 -18
View File
@@ -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": "<br> <pre>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)<br>\n2. Vo vnútri httpd.conf odkomentujte riadok <code>{WINDOWS_APACHE1}</code> (odstránte '#' na začiatku riadku)<br>\n3. Tiež skontrolujte či riadok ClearModuleList je odkomentovany a nájdite a uistite sa že riadok AddModule mod_rewrite.c nie je zakomentovaný.\n</pre>",
"linux": "<br><br>1. Povoliť \"mod_rewrite\". Spustite v termináli príkaz:<pre>{APACHE1}</pre><br>2. Povoliť podporu .htaccess. Pridajte/zmeňte nastavenia v konfigurácii servera (<code>{APACHE2_PATH1}</code>, <code>{APACHE2_PATH2}</code>, <code>{APACHE2_PATH3}</code>):<pre>{APACHE2}</pre>\n Potom spustite tento príkaz v termináli:<pre>{APACHE3}</pre><br>3. Skúste pridať RewriteBase cestu, otvorte súbor {API_PATH}.htaccess a vymeňte riadok:<pre>{APACHE4}</pre>za<pre>{APACHE5}</pre><br> Pre viac informácií navštívte <a href=\"{APACHE_LINK}\" target=\"_blank\">Konfigurácia Apache server pre EspoCRM</a>.<br><br>"
},
"nginx": {
"linux": "<br> Pridajte tento kód do konfiguračného súboru Vášho serveru Nginx <code>{NGINX_PATH}</code> do vnútra sekcie \"server\":<pre>{NGINX}</pre> <br> Pre podrobnejšie informácie prosím navštívte stránku s návodmi <a href=\"{NGINX_LINK}\" target=\"_blank\">Konfigurácia Nginx servera pre EspoCRM</a>.<br><br>"
}
},
"modRewriteTitle": {
"apache": "<h3>Chyba API: EspoCRM API je nedostupné.</h3><br>Urobte iba nevyhnutné kroky. Po každom kroku skontrolujte, či je problém vyriešený.",
"nginx": "<h3>Chyba API: EspoCRM API je nedostupné.</h3>",
"microsoft-iis": "<h3>Chyba API: EspoCRM API je nedostupné.</h3><br> Možný problém: zakázaný \"URL Rewrite\". Prosím skontrolujte a povoľte modul \"URL Rewrite\" v IIS serveri",
"default": "<h3>Chyba API: EspoCRM API je nedostupné.</h3><br> 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"
}
}
}
+8
View File
@@ -630,6 +630,14 @@
],
"description": "A style."
},
"title": {
"type": "string",
"description": "A title."
},
"iconClass": {
"type": "string",
"description": "An icon class."
},
"data": {
"type": "object",
"properties": {