code`\n**strong text**\n*emphasized text*\n~code`\n```multiline code```\n**strong text**\n*emphasized text*\n~~Gaukite įgaliojimus OAuth 2.0 iš \"Google Developers Console\". b> p>
Apsilankykite \"Google Developers\" Konsolė a>, norint gauti \"OAuth 2.0\" kredencialus, pvz., \"Client ID\" ir \"Client Secret\", kurie yra žinomi tiek \"Google\", tiek \"EspoCRM\" programai. P>",
+ "GoogleMaps": " Gaukite API raktą čia . p>"
+ },
+ "titles": {
+ "GoogleMaps": "Google žemėlapiai"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Job.json b/application/Espo/Resources/i18n/lt_LT/Job.json
index 064414e401..cc85c678cf 100644
--- a/application/Espo/Resources/i18n/lt_LT/Job.json
+++ b/application/Espo/Resources/i18n/lt_LT/Job.json
@@ -1,12 +1,20 @@
{
"fields": {
"status": "Statusas",
+ "executeTime": "Vykdyti",
+ "attempts": "Liko bandymų",
+ "failedAttempts": "Nepavykę bandymai",
+ "serviceName": "Paslauga",
+ "methodName": "Metodas",
"scheduledJob": "Suplanuoti darbai",
"data": "Duomenys"
},
"options": {
"status": {
- "Pending": "Vykdoma"
+ "Pending": "Vykdoma",
+ "Success": "Pavyko",
+ "Running": "Vykdoma",
+ "Failed": "Nepavyko"
}
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/LayoutManager.json b/application/Espo/Resources/i18n/lt_LT/LayoutManager.json
index ca74cbe0a1..4c85ce3a42 100644
--- a/application/Espo/Resources/i18n/lt_LT/LayoutManager.json
+++ b/application/Espo/Resources/i18n/lt_LT/LayoutManager.json
@@ -1,12 +1,29 @@
{
"fields": {
+ "width": "Ilgis (%)",
"link": "Nuoroda",
- "style": "Stilius"
+ "notSortable": "Nerūšiuojama",
+ "align": "Lygiuoti",
+ "panelName": "Panelės pavadinimas",
+ "style": "Stilius",
+ "sticked": "Prikabinta"
},
"options": {
+ "align": {
+ "left": "Kairėje",
+ "right": "Dešinėje"
+ },
"style": {
"default": "Numatytas",
+ "success": "Sėminga",
+ "danger": "Pavojus",
+ "info": "Informacija",
+ "warning": "Įspėjimas",
"primary": "Pirminis"
}
+ },
+ "labels": {
+ "New panel": "Nauja panelė",
+ "Layout": "Išdėtymas"
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Note.json b/application/Espo/Resources/i18n/lt_LT/Note.json
index d3a03ee908..3ceecc6f85 100644
--- a/application/Espo/Resources/i18n/lt_LT/Note.json
+++ b/application/Espo/Resources/i18n/lt_LT/Note.json
@@ -2,14 +2,31 @@
"fields": {
"post": "Paskelbti",
"attachments": "Prisegtukai",
- "targetType": "Tikslas",
+ "targetType": "Adresatas",
"teams": "Komandos",
"users": "Vartotojai",
+ "portals": "Portalai",
"type": "Tipas",
+ "isInternal": "Yra vidinis (vidiniams vartotojams)",
+ "createdByGender": "Sukurta pagal lytį",
"data": "Duomenys",
"number": "Numeris"
},
"filters": {
- "all": "Visi"
+ "all": "Visi",
+ "posts": "Pranešimai",
+ "updates": "Atnaujinimai"
+ },
+ "messages": {
+ "writeMessage": "Žinutę rašykite čia"
+ },
+ "options": {
+ "targetType": {
+ "self": "sau",
+ "users": "konkrečiam vartotojui (ams)",
+ "teams": "konkrečiai komandai (oms)",
+ "all": "visiems vidiniams vartotojams",
+ "portals": "konkretiems vartotojams"
+ }
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Portal.json b/application/Espo/Resources/i18n/lt_LT/Portal.json
index 742cf2c22e..10bf9094c2 100644
--- a/application/Espo/Resources/i18n/lt_LT/Portal.json
+++ b/application/Espo/Resources/i18n/lt_LT/Portal.json
@@ -1,22 +1,36 @@
{
"fields": {
"name": "Vardas",
+ "logo": "Logotipas",
+ "companyLogo": "Logotipas",
"portalRoles": "Rolės",
+ "isActive": "Aktyvus",
+ "isDefault": "Numatytasis",
"tabList": "Tabų sąrašas",
"quickCreateList": "Greitai sukurti sąrašą",
+ "theme": "Tema",
"language": "Kalba",
+ "dashboardLayout": "Prietaisų skydelio išdėstymas",
"dateFormat": "Datos formatas",
"timeFormat": "Laiko formatas",
"timeZone": "Laiko zona",
"weekStart": "Pirma savaitės diena",
- "defaultCurrency": "Pagrindinė valiuta"
+ "defaultCurrency": "Pagrindinė valiuta",
+ "customUrl": "Pritaikytas URL",
+ "customId": "Pritaikytas ID"
},
"links": {
"users": "Vartotojai",
- "portalRoles": "Rolės"
+ "portalRoles": "Rolės",
+ "notes": "Pastabos"
+ },
+ "tooltips": {
+ "portalRoles": "Nurodyti portalo vaidmenys bus taikomi visiems šio portalo naudotojams."
},
"labels": {
+ "Create Portal": "Sukurti portalą",
"User Interface": "Vartotojo sąsaja",
+ "General": "Pagrindinis",
"Settings": "Nustatymai"
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/PortalRole.json b/application/Espo/Resources/i18n/lt_LT/PortalRole.json
index eb705dd85a..0a6674fc8f 100644
--- a/application/Espo/Resources/i18n/lt_LT/PortalRole.json
+++ b/application/Espo/Resources/i18n/lt_LT/PortalRole.json
@@ -3,6 +3,15 @@
"users": "Vartotojai"
},
"labels": {
- "Access": "Prieiga"
+ "Access": "Prieiga",
+ "Create PortalRole": "Sukurti portalo rolę",
+ "Scope Level": "Taikymo lygis",
+ "Field Level": "Laukelio lygis"
+ },
+ "fields": {
+ "exportPermission": "Eksportuoti leidimą"
+ },
+ "tooltips": {
+ "exportPermission": "Nustato kurie portalo vartotojai turi galimybę eksportuoti įrašus."
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/PortalUser.json b/application/Espo/Resources/i18n/lt_LT/PortalUser.json
index 9e26dfeeb6..aac1222971 100644
--- a/application/Espo/Resources/i18n/lt_LT/PortalUser.json
+++ b/application/Espo/Resources/i18n/lt_LT/PortalUser.json
@@ -1 +1,5 @@
-{}
\ No newline at end of file
+{
+ "labels": {
+ "Create PortalUser": "Sukurti portalo vartotoją"
+ }
+}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Preferences.json b/application/Espo/Resources/i18n/lt_LT/Preferences.json
index 826619386a..82dedde75b 100644
--- a/application/Espo/Resources/i18n/lt_LT/Preferences.json
+++ b/application/Espo/Resources/i18n/lt_LT/Preferences.json
@@ -10,16 +10,28 @@
"currencyList": "Valiutų sąrašas",
"language": "Kalba",
"smtpServer": "Serveris",
- "smtpPort": "Port",
- "smtpAuth": "Auth",
+ "smtpPort": "Prievadas",
"smtpSecurity": "Sauga",
"smtpUsername": "Vartotojo vardas",
"emailAddress": "El. paštas",
"smtpPassword": "Slaptažodis",
"smtpEmailAddress": "El. pašto adresas",
"exportDelimiter": "Eksporto delimiteris",
+ "signature": "El. pašto parašas",
"dashboardTabList": "Tabų sąrašas",
- "tabList": "Tabų sąrašas"
+ "tabList": "Tabų sąrašas",
+ "defaultReminders": "Numatyti priminimai",
+ "theme": "Tema",
+ "useCustomTabList": "Pritaikytas lentelių sąrašas",
+ "receiveStreamEmailNotifications": "Pranešimai el. paštu apie įrašus ir būsenos pasikeitimus",
+ "dashboardLayout": "Prietaisų skydelio išdėstymas",
+ "emailReplyForceHtml": "Siųsti atsakymą HTML formatu",
+ "autoFollowEntityTypeList": "Globalus auto-sekimas",
+ "emailReplyToAllByDefault": "Atsakyti visiems pagal numatytus nustatymus",
+ "doNotFillAssignedUserIfNotRequired": "Neužpildykite priskirto vartotojo įrašų kūrimo metu",
+ "followEntityOnStreamPost": "Automatiškai sekti įrašus, paskelbus \"Sraute\"",
+ "followCreatedEntities": "Automatiškai sekti sukurtus įrašus",
+ "followCreatedEntityTypeList": "Automatiškai sekti specialių vedinių tipų sukurtus įrašus"
},
"options": {
"weekStart": {
@@ -30,8 +42,11 @@
"labels": {
"Notifications": "Pranešimai",
"User Interface": "Vartotojo sąsaja",
- "SMTP": "SMTP",
- "Misc": "Įvairūs",
- "Locale": "Locale"
+ "Misc": "Įvairūs"
+ },
+ "tooltips": {
+ "autoFollowEntityTypeList": "Automatiškai sekti visus naujus sukurtus įrašus (sukurtus bet kurio vartotojo) pasirinktų vedinių tipų, kad galėtumėte matyti sraute esančią informaciją ir gauti pranešimus apie visus sistemos įrašus.",
+ "doNotFillAssignedUserIfNotRequired": "Kurdamas įrašą priskirtas vartotojas nebus užpildytas, nebent laukelis yra privalomas.",
+ "followCreatedEntities": "Vartotojai kurdami naujus įrašus bus automatiškai priskirti sekti eigą, net jeigu patys priskirs kitą vartotoją."
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Role.json b/application/Espo/Resources/i18n/lt_LT/Role.json
index f77b11b0ac..0a209ac02f 100644
--- a/application/Espo/Resources/i18n/lt_LT/Role.json
+++ b/application/Espo/Resources/i18n/lt_LT/Role.json
@@ -1,15 +1,29 @@
{
"fields": {
"name": "Vardas",
- "roles": "Rolės"
+ "roles": "Rolės",
+ "assignmentPermission": "Priskyrimo leidimas",
+ "userPermission": "Vartotojo leidimas",
+ "portalPermission": "Portalo leidimas",
+ "groupEmailAccountPermission": "Grupės el. pašto paskyros leidimas",
+ "exportPermission": "Eksportuoti leidimą"
},
"links": {
"users": "Vartotojai",
"teams": "Komandos"
},
+ "tooltips": {
+ "assignmentPermission": "Leidžia apriboti galimybę priskirti įrašus ir siųsti pranešimus kitiems vartotojams.\n\nvisi - jokių apribojimų\n\nkomanda - gali priskirti tik komandos narius ir skelbti tik komandos nariams\n\nne - gali priskirti save ir skelbti tik sau",
+ "userPermission": "Leidžia apriboti vartotojų galimybę peržiūrėti kitų vartotojų veiklą, kalendorių ir srautą.\n\nvisi - gali peržiūrėti visus\n\nkomanda - gali matyti tik komandos narių veiklą\n\nNe - negali peržiūrėti",
+ "portalPermission": "Nurodo prieigą prie portalo informacijos, galimybė skelbti pranešimus portalo vartotojams.",
+ "groupEmailAccountPermission": "Nurodo prieigą prie grupės el. pašto abonementų, galimybę siųsti el. laiškus iš grupės SMTP.",
+ "exportPermission": "Nustato kurie vartotojai turi galimybę eksportuoti įrašus."
+ },
"labels": {
"Access": "Prieiga",
- "Create Role": "Sukurti rolę"
+ "Create Role": "Sukurti rolę",
+ "Scope Level": "Taikymo lygis",
+ "Field Level": "Laukelių lygis"
},
"options": {
"accessList": {
@@ -20,8 +34,11 @@
"levelList": {
"all": "visi",
"team": "komanda",
+ "account": "paskyra",
+ "contact": "kontaktai",
"own": "mano",
"no": "ne",
+ "yes": "taip",
"not-set": "Nenustatyta"
}
},
@@ -31,5 +48,8 @@
"delete": "Ištrinti",
"stream": "Srautas",
"create": "Sukurti"
+ },
+ "messages": {
+ "changesAfterClearCache": "Visi prieigos kontrolės pakeitimai bus taikomi, kai išvaloma talpyklos atmintinė."
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/ScheduledJob.json b/application/Espo/Resources/i18n/lt_LT/ScheduledJob.json
index ef76a88dbb..d63dbd8b96 100644
--- a/application/Espo/Resources/i18n/lt_LT/ScheduledJob.json
+++ b/application/Espo/Resources/i18n/lt_LT/ScheduledJob.json
@@ -2,17 +2,20 @@
"fields": {
"name": "Vardas",
"status": "Statusas",
- "job": "Darbas"
- },
- "links": {
- "log": "Log"
+ "job": "Darbas",
+ "scheduling": "Planavimas"
},
"labels": {
"Create ScheduledJob": "Sukurkite numatytą darbą"
},
"options": {
"job": {
- "Cleanup": "Išvalytis"
+ "Cleanup": "Išvalytis",
+ "CheckInboundEmails": "Patikrinkite grupės el. pašto paskyras",
+ "CheckEmailAccounts": "Patikrinkite asmenines el. pašto paskyras",
+ "SendEmailReminders": "Siųsti priminimus el. paštu",
+ "AuthTokenControl": "Autentikavimo žymės kontrolė",
+ "SendEmailNotifications": "Siųsti pranešimus el. paštu"
},
"cronSetup": {
"linux": "Pastaba: įtraukite šią eilutę į crontab failą, kad paleistumėte \"Espo Suplanuoti darbai\":",
@@ -24,5 +27,8 @@
"Active": "Aktyvus",
"Inactive": "Neaktyvus"
}
+ },
+ "tooltips": {
+ "scheduling": "Cron užduočių žymėjimas. Nurodo darbo eigos dažnumą.\n\n* / 5 * * * * - kas 5 minutes\n\n0 * / 2 * * * - kas 2 valandas\n\n30 1 * * * - tokiu laiku 01:30 kartą per dieną\n\n0 0 1 * * - pirmąją mėnesio dieną"
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/ScheduledJobLogRecord.json b/application/Espo/Resources/i18n/lt_LT/ScheduledJobLogRecord.json
index 86ec7952c5..414b94da3d 100644
--- a/application/Espo/Resources/i18n/lt_LT/ScheduledJobLogRecord.json
+++ b/application/Espo/Resources/i18n/lt_LT/ScheduledJobLogRecord.json
@@ -2,6 +2,6 @@
"fields": {
"status": "Statusas",
"executionTime": "Vykdymo laikas",
- "target": "Tikslas"
+ "target": "Adresatas"
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Settings.json b/application/Espo/Resources/i18n/lt_LT/Settings.json
index 8b38985159..eb3c5cdff8 100644
--- a/application/Espo/Resources/i18n/lt_LT/Settings.json
+++ b/application/Espo/Resources/i18n/lt_LT/Settings.json
@@ -7,15 +7,15 @@
"weekStart": "Pirma savaitės diena",
"thousandSeparator": "Tūkstančių atskyriklis",
"decimalMark": "Dešimtainis ženklas",
- "defaultCurrency": "Pagrindinė valiuta",
+ "defaultCurrency": "Numatytoji valiuta",
+ "baseCurrency": "Pagrindinė valiuta",
+ "currencyRates": "Valiutų kursas",
"currencyList": "Valiutų sąrašas",
"language": "Kalba",
"companyLogo": "įmonės logotipas",
"smtpServer": "Serveris",
- "smtpPort": "Port",
- "ldapPort": "Port",
- "smtpAuth": "Auth",
- "ldapAuth": "Auth",
+ "smtpPort": "Prievadas",
+ "ldapPort": "Prievadas",
"smtpSecurity": "Sauga",
"ldapSecurity": "Sauga",
"smtpUsername": "Vartotojo vardas",
@@ -38,8 +38,46 @@
"ldapCreateEspoUser": "Sukurti vartotoją programoje EspoCRM",
"ldapUserLoginFilter": "Vartotojo prisijungimo filtras",
"ldapAccountDomainNameShort": "Trumpas paskyros domeno vardas",
- "ldapOptReferrals": "Opt Referrals",
- "exportDisabled": "Išjungti eksportavimą (leidžiama tik admionistratoriui)"
+ "exportDisabled": "Išjungti eksportavimą (leidžiama tik admionistratoriui)",
+ "b2cMode": "B2C režimas",
+ "avatarsDisabled": "Išjungti piktogramas",
+ "theme": "Tema",
+ "userThemesDisabled": "Išjungti naudotojo temas",
+ "emailMessageMaxSize": "Maksimalus el. laiško dydis (Mb)",
+ "massEmailMaxPerHourCount": "Maksimalus per valandą siunčiamų el. laiškų skaičius",
+ "personalEmailMaxPortionSize": "Maksimalus el. pašto siuntimo dydis asmeninei paskyrai",
+ "inboundEmailMaxPortionSize": "Maksimalus el. laiškų kiekis grupės paskyrai laikomas",
+ "maxEmailAccountCount": "Maksimalus el. pašto paskyrų kiekis vienam vartotojui",
+ "authTokenLifetime": "Autentikavimo žymės gyvavimas (valandomis)",
+ "authTokenMaxIdleTime": "Autentikavimo žymės maksimalus laikas (valandomis)",
+ "dashboardLayout": "Prietaisų skydelio išdėstymas (numatytas)",
+ "siteUrl": "Tinklapio adresas",
+ "addressPreview": "Adreso peržiūra",
+ "addressFormat": "Adreso formatas",
+ "notificationSoundsDisabled": "Išjungti prenešimų garsus",
+ "applicationName": "Aplikacijos pavadinimas",
+ "ldapUsername": "Pilnas vartotojo DN",
+ "ldapUserNameAttribute": "Vartotojo prisijungimo vardo savybė",
+ "ldapUserTitleAttribute": "Vartotojo kreipinio savybė",
+ "ldapUserFirstNameAttribute": "Vartotojo vardo savybė",
+ "ldapUserLastNameAttribute": "Vartotojo pavardės savybė",
+ "ldapUserEmailAddressAttribute": "Vartotojo el. pašto adreso savybė",
+ "ldapUserTeams": "Vartotojo komandos",
+ "ldapUserDefaultTeam": "Vartotojo numatytoji komanda",
+ "ldapUserPhoneNumberAttribute": "Vartotojo telefono nr. savybė",
+ "assignmentNotificationsEntityList": "Vedinys pranešti apie priskyrimą",
+ "assignmentEmailNotifications": "Pranešimai apie priskyrimą",
+ "assignmentEmailNotificationsEntityList": "Pranešimų el. paštu priskyrimo taikymo sritis",
+ "streamEmailNotifications": "Pranešimai apie \"Srauto\" naujinius vidiniams naudotojams",
+ "portalStreamEmailNotifications": "\nPranešimai apie naujinius \"Sraute\" portalo naudotojams",
+ "streamEmailNotificationsEntityList": "\"Srauto\" pranešimai el. paštu taikymo sritis",
+ "calendarEntityList": "Kalendoriaus vedinių sąrašas",
+ "massEmailDisableMandatoryOptOutLink": "Išjungti privalomą atsisakymo nuorodą",
+ "currencyFormat": "Valiutos formatas",
+ "currencyDecimalPlaces": "Valiutos dešimtainiai skaičiai",
+ "aclStrictMode": "ACL griežtas režimas",
+ "followCreatedEntities": "Sekti sukurtus įrašus",
+ "aclAllowDeleteCreated": "Leisti pašalinti sukurtus įrašus"
},
"options": {
"weekStart": {
@@ -47,12 +85,46 @@
"1": "Pirmadienis"
}
},
+ "tooltips": {
+ "recordsPerPage": "Iš pradžių rodomas įrašų skaičius sąrašo rodinyje.",
+ "recordsPerPageSmall": "Įrašų skaičius rodomas sąsajų skiltyje",
+ "followCreatedEntities": "Vartotojai automatiškai seks įrašus, kuriuos jie sukūrė.",
+ "emailMessageMaxSize": "Visi gaunami laiškai, viršijantys numatytą dydį, bus laikomi be turinio ir prisegtukų.",
+ "authTokenLifetime": "Nurodo, kiek laiko gali egzistuoti žymės.\n0 - tai reiškia galioja be pabaigos.",
+ "authTokenMaxIdleTime": "Nurodo, kiek laiko gali egzistuoti žymės nuo paskutinio prisijungimo.\n0 - means no expiration. ",
+ "userThemesDisabled": "Jei pažymėsite, vartotojai negalės pasirinkti kitos temos.",
+ "ldapPassword": "Slaptažodis prieigai prie LDAP serverio.",
+ "ldapUserNameAttribute": "Savybė identifikuoti vartotojui.\nPvz. \"userPrincipalName\" arba \"sAMAccountName\" Active Directory, \"uid\" OpenLDAP.",
+ "ldapAccountCanonicalForm": "Jūsų paskyros kanoninės formos tipas. Yra 4 variantai: "+e+"
- 'Dn' - forma formatu 'CN = tester, OU = espocrm, DC = test, DC = lan'.
- \"Vartotojo vardas\" - forma \"testeris\".
- \"Backslash\" - forma \"COMPANY \\ tester\".
- \"Principal\" - forma \"tester@company.com\".",
+ "ldapBaseDn": "Numatytoji DN bazė, naudojama vartotojų paieškai. Pavyzdžiui \"OU = vartotojai, OU = espocrm, DC = testas, DC = lan\".",
+ "ldapCreateEspoUser": "Ši parinktis leidžia EspoCRM sukurti naudotoją iš LDAP.",
+ "ldapUserEmailAddressAttribute": "LDAP savybė, kuri naudojama vartotojo el. pašto adresui nustatyti. Pavyzdžiui \"paštas\".",
+ "ldapUserPhoneNumberAttribute": "LDAP savybė, kuri naudojama vartotojo telefono numeriui nustatyti. Pavyzdžiui \"telefono nr.\".",
+ "ldapUserLoginFilter": "Filtras, leidžiantis apriboti vartotojus, kurie gali naudoti EspoCRM. Pavyzdžiui \"memberOf = CN = espoGroup, OU = groups, OU = espocrm, DC = test, DC = lan\".",
+ "ldapAccountDomainName": "Domenas, kuris naudojamas įgalioti LDAP serverį.",
+ "ldapAccountDomainNameShort": "Trumpasis Ddomenas, kuris naudojamas įgalioti LDAP serverį.",
+ "ldapUserTeams": "Komandos sukurtam vartotojui. Jei norite daugiau, žiūrėkite vartotojo profilį.",
+ "ldapUserDefaultTeam": "Numatytoji komanda sukurtam vartotojui. Jei norite daugiau, žiūrėkite vartotojo profilį.",
+ "b2cMode": "Pagal nutylėjimą EspoCRM pritaikytas B2B. Galite jį perjungti į B2C.",
+ "currencyDecimalPlaces": "Dešimtainių skaičių kiekis. Jei tuščia, bus rodomas visos netuščios dešimtosios dalys.",
+ "aclStrictMode": "Įjungta: prieiga prie taikymo sričių bus uždrausta, jei ji nenurodyta rolėse.\nNeleidžiama: prieiga prie taikymo sričių bus leidžiama, jei ji nenurodyta rolėse.",
+ "outboundEmailIsShared": "Leiskite vartotojams siųsti el. laiškus iš šio adreso.",
+ "aclAllowDeleteCreated": "Vartotojai galės pašalinti įrašus, kuriuos jie sukūrė, net jei jie neturi pašalinimo galimybės."
+ },
"labels": {
"System": "Sistema",
- "Locale": "Locale",
- "SMTP": "SMTP",
"Configuration": "Konfigūravimas",
+ "In-app Notifications": "Pranešimai programoje",
+ "Email Notifications": "El. laiškų pranešimai",
+ "Currency Settings": "Caliutų nustatymai",
+ "Currency Rates": "Valiutų kursai",
+ "Mass Email": "Masiniai el. laiškai",
"Test Connection": "Patikrinti ryšį",
- "Activities": "Veikla"
+ "Connecting": "Prisijungiama...",
+ "Activities": "Veikla",
+ "Admin Notifications": "Administratoriaus priminimai"
+ },
+ "messages": {
+ "ldapTestConnection": "Prisijungėte sėkmingai. Ryšys veikia."
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/Team.json b/application/Espo/Resources/i18n/lt_LT/Team.json
index 7c66e668ff..775c2cfa0e 100644
--- a/application/Espo/Resources/i18n/lt_LT/Team.json
+++ b/application/Espo/Resources/i18n/lt_LT/Team.json
@@ -1,11 +1,18 @@
{
"fields": {
"name": "Vardas",
- "roles": "Rolės"
+ "roles": "Rolės",
+ "positionList": "Pozicijų sąrašas"
},
"links": {
"users": "Vartotojai",
- "roles": "Rolės"
+ "notes": "Pastabos",
+ "roles": "Rolės",
+ "inboundEmails": "Grupės el. pašto paskyros"
+ },
+ "tooltips": {
+ "roles": "Prieigos rolės. Šios komandos vartotojai gauna prieigos kontrolės lygį iš pasirinktų rolių.",
+ "positionList": "Galimos pozicijos šioje komandoje. Pavyzdžiui pardavėjas, vadybininkas.\n"
},
"labels": {
"Create Team": "Sukurti komandą"
diff --git a/application/Espo/Resources/i18n/lt_LT/Template.json b/application/Espo/Resources/i18n/lt_LT/Template.json
index facb847a55..93d416ece6 100644
--- a/application/Espo/Resources/i18n/lt_LT/Template.json
+++ b/application/Espo/Resources/i18n/lt_LT/Template.json
@@ -1,6 +1,22 @@
{
"fields": {
"name": "Vardas",
- "body": "Laiško tekstas"
+ "body": "Laiško tekstas",
+ "entityType": "Vedinio tipas",
+ "header": "Antraštė",
+ "footer": "Poraštė",
+ "leftMargin": "Kairė paraštė",
+ "topMargin": "Viršutinė paraštė",
+ "rightMargin": "Dešinė paraštė",
+ "bottomMargin": "Apatinė paraštė",
+ "printFooter": "Spausdinti poraštę",
+ "footerPosition": "Poraštės pozicija",
+ "variables": "Galimi sandoriai"
+ },
+ "labels": {
+ "Create Template": "Sukurti šabloną"
+ },
+ "tooltips": {
+ "footer": "Naudokite {page Number}, jei norite spausdinti puslapio numerį."
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/i18n/lt_LT/User.json b/application/Espo/Resources/i18n/lt_LT/User.json
index 17f4f2b145..1e3adda456 100644
--- a/application/Espo/Resources/i18n/lt_LT/User.json
+++ b/application/Espo/Resources/i18n/lt_LT/User.json
@@ -8,18 +8,37 @@
"emailAddress": "El. paštas",
"phoneNumber": "Telefonas",
"roles": "Rolės",
+ "portals": "Portalai",
+ "portalRoles": "Portalų rolės",
+ "teamRole": "Pozicija",
"password": "Slaptažodis",
+ "currentPassword": "Esamas lapažodis",
"passwordConfirm": "Patvirtinti slaptažodį",
"newPassword": "Naujas slaptažodis",
+ "newPasswordConfirm": "Patvirtinkite naują slaptažodį",
+ "avatar": "Kriptograma",
+ "isActive": "Aktyvus",
+ "isPortalUser": "Portalo vartotojas",
"contact": "Kontaktas",
"accounts": "Įmonės",
- "ipAddress": "IP Adresss"
+ "account": "Paskyra (pirminė)",
+ "sendAccessInfo": "Siųsti el. laišką su prieigos informacija vartotojui",
+ "portal": "Portalas",
+ "gender": "Lytis",
+ "position": "Pozicija komandoje",
+ "ipAddress": "IP Adresss",
+ "passwordPreview": "Slaptažodžio peržiūra",
+ "isSuperAdmin": "Yra superadministratorius"
},
"links": {
"teams": "Komandos",
"roles": "Rolės",
+ "notes": "Pastabos",
+ "portals": "Portalai",
+ "portalRoles": "Portalo rolės",
"contact": "Kontaktas",
"accounts": "Įmonės",
+ "account": "Paskyra (pirminė)",
"tasks": "Užduotys"
},
"labels": {
@@ -28,14 +47,54 @@
"Access": "Prieiga",
"Preferences": "Nustatymai",
"Change Password": "Pakeisti slaptažodį",
- "Email Address": "El. pašto adresas"
+ "Teams and Access Control": "Komandos ir prieigos kontrolė",
+ "Forgot Password?": "Pamiršote slaptažodį?",
+ "Password Change Request": "Slaptažodžio keitimo prašymas",
+ "Email Address": "El. pašto adresas",
+ "External Accounts": "Išorinės paskyros",
+ "Email Accounts": "El. pašto paskyros",
+ "Portal": "Portalas",
+ "Create Portal User": "Sukurti portalo vartotoją",
+ "Proceed w/o Contact": "Pereiti prie kontaktų"
+ },
+ "tooltips": {
+ "defaultTeam": "Visi šio naudotojo sukurti įrašai bus susiję su šia komanda pagal nutylėjimą.",
+ "userName": "Leidžiami raidės a-z, skaičiai 0-9, taškai, brūkšniai, @ -žymėjimai ir pabraukimai.",
+ "isAdmin": "Administratorius turi prieigą prie visko",
+ "isActive": "Jei nepažymėta, vartotojas negalės prisijungti.",
+ "teams": "Komandos,kurioms priklauso šis naudotojas. Prieigos kontrolės lygis yra perimtas iš komandos rolės.",
+ "roles": "Papildomos prieigos vaidmenys. Naudokite jį, jei naudotojas nepriklauso jokiai komandai arba jums reikia išplėsti prieigos kontrolės lygį tik šiam vartotojui.",
+ "portalRoles": "Papildomos portalo rolės. Naudokite ją, kad galėtumėte išplėsti prieigos kontrolės lygį tik šiam vartotojui.",
+ "portals": "Portalai, prie kurių šis vartotojas turi prieigą."
},
"messages": {
"passwordWillBeSent": "Slaptažodis bus išsiųstas vartotojo el. pašto adresu.",
+ "accountInfoEmailSubject": "EspoCRM vartotojo prieigos informacija",
+ "accountInfoEmailBody": "Jūsų prisijungimo informacija:\n\nVartotojo vardas: {userName}\nSlaptažodis: {password}\n\n{siteUrl}",
+ "passwordChangeLinkEmailSubject": "Slaptažodžio keitimo prašymas",
"passwordChanged": "Slpatažodis buvo pakeistas",
- "wrongUsernamePasword": "Neteisingas prisijungimo vardas/slaptažodis"
+ "userCantBeEmpty": "Vartotojo vardas negali būti tuščias",
+ "wrongUsernamePasword": "Neteisingas prisijungimo vardas/slaptažodis",
+ "emailAddressCantBeEmpty": "El. pašto adresas negali būti tuščias",
+ "userNameEmailAddressNotFound": "Vartotojo vardas/el. pašto adresas nerastas",
+ "forbidden": "Draudžiama, prašome pabandyti vėliau",
+ "uniqueLinkHasBeenSent": "Unikalus URL buvo išsiųstas nurodytu el. pašto adresu.",
+ "passwordChangedByRequest": "Slaptažodis pakeistas.",
+ "setupSmtpBefore": "Jūs turite nustatyti SMTP nustatymus , kad sistema galėtų išsiųsti slaptažodį el. paštu."
+ },
+ "boolFilters": {
+ "onlyMyTeam": "Tik mano komanda"
},
"presetFilters": {
- "active": "Aktyvus"
+ "active": "Aktyvus",
+ "activePortal": "Aktyvus portalas"
+ },
+ "options": {
+ "gender": {
+ "": "Nenustatyta",
+ "Male": "Vyras",
+ "Female": "Moteris",
+ "Neutral": "Neutrali lytis"
+ }
}
}
\ No newline at end of file
diff --git a/application/Espo/Resources/metadata/entityDefs/Note.json b/application/Espo/Resources/metadata/entityDefs/Note.json
index 0f70bc9c28..d085ce0fb9 100644
--- a/application/Espo/Resources/metadata/entityDefs/Note.json
+++ b/application/Espo/Resources/metadata/entityDefs/Note.json
@@ -2,7 +2,7 @@
"fields": {
"post": {
"type": "text",
- "rows": 8
+ "rows": 30
},
"data": {
"type": "jsonObject",
diff --git a/application/Espo/Resources/metadata/entityDefs/User.json b/application/Espo/Resources/metadata/entityDefs/User.json
index ed7cf60782..0dc7bb499b 100644
--- a/application/Espo/Resources/metadata/entityDefs/User.json
+++ b/application/Espo/Resources/metadata/entityDefs/User.json
@@ -129,6 +129,7 @@
"acceptanceStatus": {
"type": "varchar",
"notStorable": true,
+ "exportDisabled": true,
"disabled": true
},
"acceptanceStatusMeetings": {
@@ -137,6 +138,7 @@
"layoutListDisabled": true,
"layoutDetailDisabled": true,
"layoutMassUpdateDisabled": true,
+ "exportDisabled": true,
"view": "crm:views/lead/fields/acceptance-status",
"link": "meetings",
"column": "status"
@@ -147,6 +149,7 @@
"layoutListDisabled": true,
"layoutDetailDisabled": true,
"layoutMassUpdateDisabled": true,
+ "exportDisabled": true,
"view": "crm:views/lead/fields/acceptance-status",
"link": "calls",
"column": "status"
diff --git a/application/Espo/Resources/metadata/fields/foreign.json b/application/Espo/Resources/metadata/fields/foreign.json
index f730bec152..8cba217156 100644
--- a/application/Espo/Resources/metadata/fields/foreign.json
+++ b/application/Espo/Resources/metadata/fields/foreign.json
@@ -13,6 +13,7 @@
"required": true
}
],
+ "fieldTypeList": ["varchar", "enum", "enumInt", "enumFloat", "int", "float", "website", "date", "datetime", "text"],
"filter": true,
"notCreatable": false,
"fieldDefs": {
diff --git a/application/Espo/Resources/metadata/fields/text.json b/application/Espo/Resources/metadata/fields/text.json
index 25bd101b40..604849097d 100644
--- a/application/Espo/Resources/metadata/fields/text.json
+++ b/application/Espo/Resources/metadata/fields/text.json
@@ -21,7 +21,7 @@
{
"name": "rows",
"type": "int",
- "default": 4,
+ "default": 30,
"min": 1
},
{
diff --git a/application/Espo/Services/Note.php b/application/Espo/Services/Note.php
index 13f8b684fd..b13a841a35 100644
--- a/application/Espo/Services/Note.php
+++ b/application/Espo/Services/Note.php
@@ -60,7 +60,7 @@ class Note extends Record
return parent::createEntity($data);
}
- protected function afterCreateEntity(iEntity $entity, $data)
+ protected function afterCreateEntity(Entity $entity, $data)
{
parent::afterCreateEntity($entity, $data);
diff --git a/application/Espo/Services/Record.php b/application/Espo/Services/Record.php
index 25bc091cea..a87680996f 100644
--- a/application/Espo/Services/Record.php
+++ b/application/Espo/Services/Record.php
@@ -1395,6 +1395,13 @@ class Record extends \Espo\Core\Services\Base
$fieldList = $params['fieldList'];
}
+ foreach ($fieldList as $i => $field) {
+ if ($this->getMetadata()->get(['entityDefs', $this->entityType, 'fields', $field, 'exportDisabled'])) {
+ unset($fieldList[$i]);
+ }
+ }
+ $fieldList = array_values($fieldList);
+
if (is_null($attributeList)) {
$attributeList = [];
$seed = $this->getEntityManager()->getEntity($this->entityType);
diff --git a/client/lib/marked.min.js b/client/lib/marked.min.js
new file mode 100644
index 0000000000..e4c3205560
--- /dev/null
+++ b/client/lib/marked.min.js
@@ -0,0 +1,6 @@
+/**
+ * marked - a markdown parser
+ * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
+ * https://github.com/chjj/marked
+ */
+(function(){function e(e){this.tokens=[],this.tokens.links={},this.options=e||a.defaults,this.rules=p.normal,this.options.gfm&&(this.options.tables?this.rules=p.tables:this.rules=p.gfm)}function t(e,t){if(this.options=t||a.defaults,this.links=e,this.rules=u.normal,this.renderer=this.options.renderer||new n,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=u.breaks:this.rules=u.gfm:this.options.pedantic&&(this.rules=u.pedantic)}function n(e){this.options=e||{}}function r(e){this.tokens=[],this.token=null,this.options=e||a.defaults,this.options.renderer=this.options.renderer||new n,this.renderer=this.options.renderer,this.renderer.options=this.options}function s(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function i(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function l(e,t){return e=e.source,t=t||"",function n(r,s){return r?(s=s.source||s,s=s.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,s),n):new RegExp(e,t)}}function o(){}function h(e){for(var t,n,r=1;r"+s(c.message+"",!0)+"
";throw c}}var p={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:o,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:o,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:o,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};p.bullet=/(?:[*+-]|\d+\.)/,p.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,p.item=l(p.item,"gm")(/bull/g,p.bullet)(),p.list=l(p.list)(/bull/g,p.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+p.def.source+")")(),p.blockquote=l(p.blockquote)("def",p.def)(),p._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",p.html=l(p.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/
\n":"'+(n?e:s(e,!0))+"\n
"},n.prototype.blockquote=function(e){return""+(n?e:s(e,!0))+"\n\n"+e+"
\n"},n.prototype.html=function(e){return e},n.prototype.heading=function(e,t,n){return"
\n":"
\n"},n.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+""+n+">\n"},n.prototype.listitem=function(e){return"\n\n"+e+"\n\n"+t+"\n
\n"},n.prototype.tablerow=function(e){return"\n"+e+" \n"},n.prototype.tablecell=function(e,t){var n=t.header?"th":"td",r=t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">";return r+e+""+n+">\n"},n.prototype.strong=function(e){return""+e+""},n.prototype.em=function(e){return""+e+""},n.prototype.codespan=function(e){return""+e+""},n.prototype.br=function(){return this.options.xhtml?"
":"
"},n.prototype.del=function(e){return""+e+""},n.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(i(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(s){return""}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:")||0===r.indexOf("data:"))return""}var l='"+n+""},n.prototype.image=function(e,t,n){var r='":">"},n.prototype.text=function(e){return e},r.parse=function(e,t,n){var s=new r(t,n);return s.parse(e)},r.prototype.parse=function(e){this.inline=new t(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var n="";this.next();)n+=this.tok();return n},r.prototype.next=function(){return this.token=this.tokens.pop()},r.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},r.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},r.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,s,i="",l="";for(n="",e=0;e
';
+ this.mdBeforeList = [
+ {
+ regex: /\["?(.*?)"?\]\((.*?)\)/g,
+ value: '$1'
},
- function (s, string) {
- return '' + string.replace(/\*/g, '*').replace(/\~/g, '~') + '' + string.replace(/\*/g, '*').replace(/\~/g, '~') + '';
+ {
+ regex: /\&\#x60;\&\#x60;\&\#x60;\n?([\s\S]*?)\&\#x60;\&\#x60;\&\#x60;/g,
+ value: function (s, string) {
+ return '
';
+ }
},
- '$2',
- '$2',
- '' + string.replace(/\*/g, '*').replace(/\~/g, '~') + '$1'
+ {
+ regex: /\&\#x60;([\s\S]*?)\&\#x60;/g,
+ value: function (s, string) {
+ return '' + string.replace(/\*/g, '*').replace(/\~/g, '~') + '';
+ }
+ }
];
+
+ marked.setOptions({
+ breaks: true
+ });
}
_.extend(ViewHelper.prototype, {
@@ -78,47 +80,6 @@ Espo.define('view-helper', [], function () {
return text;
},
- tranformTextMarkdown: function (text) {
- var newline = text.indexOf('\r\n') != -1 ? '\r\n' : text.indexOf('\n') != -1 ? '\n' : '';
-
- if (newline != '') {
- var d = [];
- var r = [];
-
- var p = text.split(newline);
- p.push('');
-
- var isBlockLevel = false;
- p.forEach(function (item, i) {
- if (item.length >= 5 && item.indexOf('> ') === 0) {
- if (!isBlockLevel) {
- d = [];
- isBlockLevel = true;
- }
- d.push(item.replace(/> /gm, ''));
-
- } else {
- if (isBlockLevel) {
- r.push('' + d.join(newline) + '
' + item)
- } else {
- r.push(item);
- }
- isBlockLevel = false;
- }
- }, this);
-
- if (r.slice(-1)[0] == '') {
- r.pop();
- }
-
- var t = r.join(newline);
-
- return t;
- }
-
- return text;
- },
-
_registerHandlebarsHelpers: function () {
var self = this;
@@ -219,21 +180,19 @@ Espo.define('view-helper', [], function () {
Handlebars.registerHelper('complexText', function (text) {
text = text || ''
- text = text.replace(self.urlRegex, '$1[$2]($2)');
+ text = text.replace(this.urlRegex, '$1[$2]($2)');
- text = Handlebars.Utils.escapeExpression(text);
+ text = Handlebars.Utils.escapeExpression(text).replace(/>+/g, '>');
- self.mdSearch.forEach(function (re, i) {
- text = text.replace(re, self.mdReplace[i]);
+ this.mdBeforeList.forEach(function (item) {
+ text = text.replace(item.regex, item.value);
});
- text = self.tranformTextMarkdown(text);
-
- text = text.replace(/(\r\n|\n|\r)/gm, '
');
+ text = marked(text);
text = text.replace('[#see-more-text]', ' ' + self.language.translate('See more')) + '';
return new Handlebars.SafeString(text);
- });
+ }.bind(this));
Handlebars.registerHelper('translateOption', function (name, options) {
var scope = options.hash.scope || null;
diff --git a/client/src/views/admin/field-manager/fields/foreign/field.js b/client/src/views/admin/field-manager/fields/foreign/field.js
index de264a0f02..b0616c3b47 100644
--- a/client/src/views/admin/field-manager/fields/foreign/field.js
+++ b/client/src/views/admin/field-manager/fields/foreign/field.js
@@ -30,8 +30,6 @@ Espo.define('views/admin/field-manager/fields/foreign/field', 'views/fields/enum
return Dep.extend({
- typeList: ['varchar', 'enum', 'enumInt', 'enumFloat', 'int', 'float', 'website', 'date', 'datetime'],
-
setup: function () {
Dep.prototype.setup.call(this);
if (!this.model.isNew()) {
@@ -53,6 +51,8 @@ Espo.define('views/admin/field-manager/fields/foreign/field', 'views/fields/enum
},
setupOptionsByLink: function () {
+ this.typeList = this.getMetadata().get(['fields', 'foreign', 'fieldTypeList']);
+
var link = this.model.get('link');
if (!link) {
@@ -116,6 +116,8 @@ Espo.define('views/admin/field-manager/fields/foreign/field', 'views/fields/enum
this.viewValue = 'views/fields/foreign-date';
} else if (type == 'datetime') {
this.viewValue = 'views/fields/foreign-datetime';
+ } else if (type == 'text') {
+ this.viewValue = 'views/fields/foreign-text';
} else {
this.viewValue = null;
}
diff --git a/client/src/views/export/record/record.js b/client/src/views/export/record/record.js
index 926a4f692c..1bf48a39e6 100644
--- a/client/src/views/export/record/record.js
+++ b/client/src/views/export/record/record.js
@@ -51,6 +51,7 @@ Espo.define('views/export/record/record', 'views/record/base', function (Dep) {
if (defs.disabled) return;
if (defs.exportDisabled) return;
if (defs.type === 'map') return;
+ if (defs.type === 'attachmentMultiple') return;
return true;
}, this);
diff --git a/client/src/views/fields/foreign-text.js b/client/src/views/fields/foreign-text.js
new file mode 100644
index 0000000000..676371ac7f
--- /dev/null
+++ b/client/src/views/fields/foreign-text.js
@@ -0,0 +1,36 @@
+/************************************************************************
+ * This file is part of EspoCRM.
+ *
+ * EspoCRM - Open Source CRM application.
+ * Copyright (C) 2014-2017 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
+ * Website: http://www.espocrm.com
+ *
+ * EspoCRM is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * EspoCRM is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with EspoCRM. If not, see http://www.gnu.org/licenses/.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of this program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU General Public License version 3.
+ *
+ * In accordance with Section 7(b) of the GNU General Public License version 3,
+ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
+ ************************************************************************/
+
+Espo.define('views/fields/foreign-text', 'views/fields/text', function (Dep) {
+
+ return Dep.extend({
+
+ type: 'foreign'
+
+ });
+});
diff --git a/client/src/views/fields/text.js b/client/src/views/fields/text.js
index 68284dcf29..66b3da93ee 100644
--- a/client/src/views/fields/text.js
+++ b/client/src/views/fields/text.js
@@ -46,7 +46,9 @@ Espo.define('views/fields/text', 'views/fields/base', function (Dep) {
seeMoreText: false,
- rowsDefault: 4,
+ rowsDefault: 10,
+
+ rowsMin: 2,
searchTypeList: ['contains', 'startsWith', 'equals', 'endsWith', 'like', 'notContains', 'notLike', 'isEmpty', 'isNotEmpty'],
@@ -61,6 +63,12 @@ Espo.define('views/fields/text', 'views/fields/base', function (Dep) {
Dep.prototype.setup.call(this);
this.params.rows = this.params.rows || this.rowsDefault;
this.detailMaxLength = this.params.lengthOfCut || this.detailMaxLength;
+
+ this.autoHeightDisabled = this.options.autoHeightDisabled || this.params.autoHeightDisabled || this.autoHeightDisabled;
+
+ if (this.params.rows < this.rowsMin) {
+ this.rowsMin = this.params.rows;
+ }
},
setupSearch: function () {
@@ -88,6 +96,13 @@ Espo.define('views/fields/text', 'views/fields/base', function (Dep) {
this.searchData.value = this.searchParams.value;
}
}
+ if (this.mode === 'edit') {
+ if (this.autoHeightDisabled) {
+ data.rows = this.params.rows;
+ } else {
+ data.rows = this.rowsMin;
+ }
+ }
return data;
},
@@ -126,6 +141,30 @@ Espo.define('views/fields/text', 'views/fields/base', function (Dep) {
return text || '';
},
+ controlTextareaHeight: function (lastHeight) {
+ var scrollHeight = this.$element.prop('scrollHeight');
+ var clientHeight = this.$element.prop('clientHeight');
+
+ if (typeof lastHeight === 'undefined' && clientHeight === 0) {
+ setTimeout(this.controlTextareaHeight.bind(this), 10);
+ return;
+ }
+
+ if (clientHeight === lastHeight) return;
+
+ if (scrollHeight > clientHeight) {
+ var rows = this.$element.prop('rows');
+
+ if (this.params.rows && rows >= this.params.rows) return;
+
+ this.$element.attr('rows', rows + 1);
+ this.controlTextareaHeight(clientHeight);
+ }
+ if (this.$element.val().length === 0) {
+ this.$element.attr('rows', this.rowsMin);
+ }
+ },
+
afterRender: function () {
Dep.prototype.afterRender.call(this);
if (this.mode == 'edit') {
@@ -138,6 +177,13 @@ Espo.define('views/fields/text', 'views/fields/base', function (Dep) {
var type = this.$el.find('select.search-type').val();
this.handleSearchType(type);
}
+
+ if (this.mode === 'edit' && !this.autoHeightDisabled) {
+ this.controlTextareaHeight();
+ this.$element.on('input', function () {
+ this.controlTextareaHeight();
+ }.bind(this));
+ }
},
fetchSearch: function () {
diff --git a/client/src/views/fields/wysiwyg.js b/client/src/views/fields/wysiwyg.js
index eb11e425be..7ca2d2bf7b 100644
--- a/client/src/views/fields/wysiwyg.js
+++ b/client/src/views/fields/wysiwyg.js
@@ -38,7 +38,7 @@ Espo.define('views/fields/wysiwyg', ['views/fields/text', 'lib!Summernote'], fun
height: 250,
- rowsDefault: 10,
+ rowsDefault: 15,
setup: function () {
Dep.prototype.setup.call(this);
diff --git a/client/src/views/stream/panel.js b/client/src/views/stream/panel.js
index 304cccefdf..005a88e597 100644
--- a/client/src/views/stream/panel.js
+++ b/client/src/views/stream/panel.js
@@ -150,30 +150,13 @@ Espo.define('views/stream/panel', ['views/record/panels/relationship', 'lib!Text
this.storageAttachmentsKey = 'stream-post-attachments-' + this.model.name + '-' + this.model.id;
this.on('remove', function () {
- if (this.$textarea && this.$textarea.size()) {
- var text = this.$textarea.val();
- if (text.length) {
- this.getSessionStorage().set(this.storageTextKey, text);
- } else {
- if (this.hasStoredText) {
- this.getSessionStorage().clear(this.storageTextKey);
- }
- }
-
- var attachmetIdList = this.seed.get('attachmentsIds') || [];
-
- if (attachmetIdList.length) {
- this.getSessionStorage().set(this.storageAttachmentsKey, {
- idList: attachmetIdList,
- names: this.seed.get('attachmentsNames') || {}
- });
- } else {
- if (this.hasStoredAttachments) {
- this.getSessionStorage().clear(this.storageAttachmentsKey);
- }
- }
- }
+ this.storeControl();
+ $(window).off('beforeunload.stream-'+ this.cid);
}, this);
+ $(window).off('beforeunload.stream-'+ this.cid);
+ $(window).on('beforeunload.stream-'+ this.cid, function () {
+ this.storeControl();
+ }.bind(this));
var storedAttachments = this.getSessionStorage().get(this.storageAttachmentsKey);
@@ -193,6 +176,32 @@ Espo.define('views/stream/panel', ['views/record/panels/relationship', 'lib!Text
}, this);
},
+ storeControl: function () {
+ if (this.$textarea && this.$textarea.size()) {
+ var text = this.$textarea.val();
+ if (text.length) {
+ this.getSessionStorage().set(this.storageTextKey, text);
+ } else {
+ if (this.hasStoredText) {
+ this.getSessionStorage().clear(this.storageTextKey);
+ }
+ }
+
+ var attachmetIdList = this.seed.get('attachmentsIds') || [];
+
+ if (attachmetIdList.length) {
+ this.getSessionStorage().set(this.storageAttachmentsKey, {
+ idList: attachmetIdList,
+ names: this.seed.get('attachmentsNames') || {}
+ });
+ } else {
+ if (this.hasStoredAttachments) {
+ this.getSessionStorage().clear(this.storageAttachmentsKey);
+ }
+ }
+ }
+ },
+
createCollection: function (callback, context) {
this.getCollectionFactory().create('Note', function (collection) {
this.collection = collection;
diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less
index b1a1b6a6f0..c1af8f0476 100644
--- a/frontend/less/espo/custom.less
+++ b/frontend/less/espo/custom.less
@@ -13,6 +13,7 @@
blockquote {
font-size: @font-size-base;
+ border-left-width: 3px;
}
.pagination-sm > li > a {
@@ -1175,6 +1176,58 @@ table.table td.cell .complex-text {
white-space: normal;
}
+.complex-text {
+ h1:first-child,
+ h2:first-child,
+ h3:first-child,
+ h4:first-child,
+ h5:first-child,
+ h6:first-child,
+ p:first-child,
+ ul:first-child,
+ ol:first-child,
+ blockquote:first-child {
+ margin-top: 0 !important;
+ }
+ h1 {
+ font-weight: bold;
+ margin-top: @line-height-computed;
+ margin-bottom: (@line-height-computed / 2);
+ }
+ h2, h3 {
+ font-weight: bold;
+ margin-top: (@line-height-computed / 2);
+ margin-bottom: (@line-height-computed / 2);
+ }
+ h4, h5, h6 {
+ font-weight: normal;
+ margin-top: (@line-height-computed / 2);
+ margin-bottom: (@line-height-computed / 2);
+ }
+ h1 {
+ font-size: floor(@font-size-base * 1.1);
+ }
+ h2, h3, h4, h5, h6 {
+ font-size: floor(@font-size-base);
+ }
+
+ p,
+ ul,
+ ol,
+ pre,
+ blockquote {
+ margin-top: @line-height-computed / 2;
+ }
+
+ ul > li {
+ list-style-type: disc;
+ }
+
+ ul, ol {
+ padding-left: 30px;
+ }
+}
+
#popup-notifications-container {
overflow-y: auto;
overflow-x: hidden;
diff --git a/install/core/i18n/lt_LT/install.json b/install/core/i18n/lt_LT/install.json
index e71b8fc980..831dc4b39c 100644
--- a/install/core/i18n/lt_LT/install.json
+++ b/install/core/i18n/lt_LT/install.json
@@ -12,30 +12,39 @@
"Errors page title": "Klaidos",
"Finish page title": "Diegimas baigtas",
"Congratulation! Welcome to EspoCRM": "Sveikiname! EspoCRM buvo sėkmingai įdiegtas.",
- "admin": "admin",
- "localhost": "localhost",
- "port": "3306",
- "Locale": "Locale",
+ "More Information": "Jei reikia daugiau informacijos, apsilankykite mūsų {BLOG} svetainėje, Sekite mus {TWITTER}.
Jei turite kokių nors pasiūlymų ar klausimų, kreipkitės į {FORUM}.",
+ "share": "Jei jums patiko EspoCRM, pasidalinkite tai su draugais. Praneškite jiems apie šį produktą.",
+ "blog": "blogas",
+ "twitter": "twitter ",
+ "forum": "forumas",
+ "Installation Guide": "Diegimo vedlys",
"Outbound Email Configuration": "Nustatymai išsiunčiamiems laiškams",
- "SMTP": "SMTP",
"Start": "Pradžia",
"Back": "Atgal",
"Next": "Kitas",
"Go to EspoCRM": "Eiti į EspoCRM",
"Re-check": "Pakartotinai patikrinti",
+ "Version": "Versija",
"Test settings": "Patikrinti ryšį",
"Database Settings Description": "Įveskite MySQL duomeno bazės prisijungimo informaciją (kompiuterio pavadinim?, vartotojo vardą ir slaptažodį). Galite nurodyti serverio prievadą, skirtą kompiuterio pavadinimui, pvz., Localhost: 3306.",
+ "Install": "Diegimas",
+ "SetupConfirmation page title": "Rekomenduojami nustatymai",
+ "PHP Configuration": "Rekomenduojami PHP nustatymai",
+ "MySQL Configuration": "MySQL konfigūracija",
+ "Configuration Instructions": "Konfigūracijos instrukcijos",
"phpVersion": "PHP versija",
+ "mysqlVersion": "MySQL versija",
"dbHostName": "Serverio pavadinimas",
"dbName": "Duomenų bazės pavadinimas",
- "dbUserName": "Duomenų bazės vartotojo vardas"
+ "dbUserName": "Duomenų bazės vartotojo vardas",
+ "OK": "Gerai"
},
"fields": {
"Choose your language": "Pasirinkite kalb?",
"Database Name": "Duomenų bazės pavadinimas",
"Host Name": "Serverio pavadinimas",
- "Port": "Port",
- "smtpPort": "Port",
+ "Port": "Prievadas",
+ "smtpPort": "Prievadas",
"Database User Name": "Duomenų bazės vartotojo vardas",
"Database User Password": "Duomenų bazės vartotojo slaptažodis",
"Database driver": "Duomenų bazės tvarkyklė",
@@ -56,16 +65,19 @@
"Currency List": "Valiutų sąrašas",
"Language": "Kalba",
"smtpServer": "Serveris",
- "smtpAuth": "Auth",
"smtpSecurity": "Sauga",
"smtpUsername": "Vartotojo vardas",
"emailAddress": "El. paštas"
},
"messages": {
+ "1045": "Vartotojui prieiga yra uždrausta ",
"1049": "Nežinoma duomenų bazė",
"2005": "Nežinomas MySQL serverio kompiuteris",
+ "Bad init Permission": "Leidimas nesuteiktas \"{*}\" katalogui. Prašome nustatyti 775 teises \"{*}\" arba tiesiog paleiskite šią komandą į terminalą (C) b> pre>\nOperacija neleidžiama? Išbandykite šį: {CSU}",
"Some errors occurred!": "Įvyko kelios klaidos!",
"phpVersion": "EspoCRM nepalaiko jūsų PHP versijos, bent jau atnaujinkite iki PHP {minVersion}",
+ "MySQLVersion": "Jūsų \"MySQL\" versija nepalaikoma EspoCRM, prašome atnaujinti bent iki \"MySQL\" (minVersion)",
+ "The PHP extension was not found...": "PHP klaida: plėtinys {extName} b> nerastas.",
"All Settings correct": "Visi nustatymai yra teisingi",
"Failed to connect to database": "Nepavyko prisijungti prie duomenų bazės",
"PHP version": "PHP versija",
@@ -74,21 +86,38 @@
"Enable mod_rewrite in Apache server": "Įgalinti mod_rewrite \"Apache\" serveryje",
"checkWritable error": "checkWritable klaida",
"applySett error": "applySett klaida",
+ "buildDatabase error": "Kuriamos duomenų bazės klaida",
"createUser error": "createUser klaida",
"checkAjaxPermission error": "checkAjaxPermission klaida",
"Ajax failed": "Ajax nepavyko",
+ "Cannot create user": "Negalima sukurti vartotojo",
"Permission denied": "Leidimas nesuteiktas",
"Permission denied to": "Leidimas nesuteiktas",
"permissionInstruction": "
Paleiskite tai terminale\"{C}\"",
"operationNotPermitted": "Operacija neleidžiamaa? Išbandykite šį:
{CSU}",
"Can not save settings": "Nepavyko išsaugoti nustatymų",
"Cannot save preferences": "Negalima išsaugoti nuostatų",
- "Thousand Separator and Decimal Mark equal": "Tūkstančių atskyriklis ir dešimtainis ženklas negali būti vienodi"
+ "Thousand Separator and Decimal Mark equal": "Tūkstančių atskyriklis ir dešimtainis ženklas negali būti vienodi",
+ "extension": "Trūksta {0} plėtinio",
+ "option": "Rekomenduojama vertė yra {0} ",
+ "mysqlSettingError": "EspoCRM reikalauja, kad MySQL nustatymas \"{NAME}\" būtų nustatytas į \"{VALUE}\""
},
"options": {
- "db driver": {
- "mysqli": "MySQLi",
- "pdo_mysql": "PDO MySQL"
+ "modRewriteInstruction": {
+ "apache": {
+ "windows": "
1. Suraskite httpd.conf failą (paprastai jį rasite aplanke, pavadintame conf, config arba kažką panašaus į šias eilutes)
\n2. Failo httpd.conf viduje atkomentuokite eilutę LoadModule rewrite_module modules / mod_rewrite.so (priešais liniją nuimkite ženkliuką \"#\")
\n3. Taip pat raskite eilutę ClearModuleList yra nekomentuotų, tada suraskite ir įsitikinkite, kad eilutė AddModule mod_rewrite.c nėra komentuojama.\n pre>",
+ "linux": "
1. Įgalinti \"mod_rewrite\". Norėdami tai padaryti, paleiskite tas komandas terminale: (APACHE1) pre>
2. Įgalinti .htaccess palaikymą. Pridėti / redaguoti serverio konfigūracijos nustatymus (/etc/apache/apache2.conf, /etc/httpd/conf/httpd.conf): (APACHE2) pre> \nVėliau paleiskite šią komandą į terminalą:
(APACHE3) pre>
3. Pabandykite įtraukti RewriteBase kelią, atidarykite failą {API_PATH} .htaccess ir pakeiskite šią eilutę: (APACHE4) pre> to
(APACHE5) pre>
Daugiau informacijos rasite apsilankę EspoCRM konfigūracija \"Apache\" .
"
+ },
+ "nginx": {
+ "linux": "
\n\n{NGINX}\n pre>
Daugiau informacijos rasite Nginx serverio konfigūracijoje EspoCRM a>.
",
+ "windows": "
\n\n{NGINX}\n pre>
Daugiau informacijos rasite Nginx serverio konfigūracijoje EspoCRM a>.
"
+ }
+ },
+ "modRewriteTitle": {
+ "apache": "API Klaida: EspoCRM API nepasiekiamas.
Galimos problemos: išjungta \"mod_rewrite\" \"Apache\" serveryje, išjungtas .htaccess palaikymas arba \"RewriteBase\" problema.
Atlikite tik būtinus veiksmus. Po kiekvieno žingsnio patikrinkite, ar problema išspręsta.",
+ "nginx": "API Klaida: EspoCRM API nepasiekiamas.
Pridėti šį kodą į jūsų Nginx serverio blokų konfigūracijos failą (/ etc / nginx / sites-available / YOUR_SITE) \"serverio\" skyriuje:",
+ "microsoft-iis": "API Klaida: EspoCRM API nepasiekiamas.
Galima problema: išjungta \"URL Rewrite\". Patikrinkite ir įjunkite \"URL Rewrite\" modulį IIS serveryje",
+ "default": "API Klaida: EspoCRM API nepasiekiamas.
Galima problema: neįgalintas Rewrite Module. Patikrinkite ir įjunkite \"Rewrite Module\" savo serveryje (pvz., Mod_rewrite \"Apache\") ir .htaccess palaikymą."
}
}
}
\ No newline at end of file
diff --git a/package.json b/package.json
index 7b6a497f8e..582d012703 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "espocrm",
- "version": "4.9.0",
+ "version": "5.0.0",
"description": "",
"main": "index.php",
"repository": {
diff --git a/tests/unit/Espo/Core/Formula/FormulaTest.php b/tests/unit/Espo/Core/Formula/FormulaTest.php
index c174245e41..365ad59824 100644
--- a/tests/unit/Espo/Core/Formula/FormulaTest.php
+++ b/tests/unit/Espo/Core/Formula/FormulaTest.php
@@ -2620,6 +2620,40 @@ class FormulaTest extends \PHPUnit_Framework_TestCase
$this->assertEquals('test', $actual);
}
+ function testLowerCase()
+ {
+ $item = json_decode('
+ {
+ "type": "string\\\\lowerCase",
+ "value": [
+ {
+ "type": "value",
+ "value": " TeSt "
+ }
+ ]
+ }
+ ');
+ $actual = $this->formula->process($item, $this->entity);
+ $this->assertEquals(' test ', $actual);
+ }
+
+ function testUpperCase()
+ {
+ $item = json_decode('
+ {
+ "type": "string\\\\upperCase",
+ "value": [
+ {
+ "type": "value",
+ "value": "test"
+ }
+ ]
+ }
+ ');
+ $actual = $this->formula->process($item, $this->entity);
+ $this->assertEquals('TEST', $actual);
+ }
+
function testSubstring()
{
$item = json_decode('