Compare commits

...

12 Commits
7.2.0 ... 7.2.2

Author SHA1 Message Date
Yuri Kuznetsov
beb4435ee0 diff closest 2022-09-12 15:07:32 +03:00
Yuri Kuznetsov
6a4c78c1cb fix language settings 2022-09-12 14:51:05 +03:00
Yuri Kuznetsov
dc7f5d8e66 fix grunt zip 2022-09-12 14:06:54 +03:00
Yuri Kuznetsov
872a4c2f2c fix typo 2022-09-12 12:35:27 +03:00
Yuri Kuznetsov
8a5204bc4c css fix 2022-09-12 12:03:26 +03:00
Yuri Kuznetsov
acbf6a1742 v 2022-09-12 11:22:07 +03:00
Yuri Kuznetsov
b2d3d56a85 attachment-multiple link 2022-09-12 11:20:48 +03:00
Yuri Kuznetsov
8b83fa640f note relate icon 2022-09-12 10:45:16 +03:00
Yuri Kuznetsov
5a95abed73 v 2022-09-12 09:05:25 +03:00
Yuri Kuznetsov
ca1d689c3a it_IT 2022-09-12 09:04:35 +03:00
Yuri Kuznetsov
0c750789b1 auth cookie fallback 2022-09-11 16:01:04 +03:00
Yuri Kuznetsov
ccb6c19c72 url field fix encode 2022-09-10 09:59:44 +03:00
44 changed files with 466 additions and 78 deletions

View File

@@ -381,7 +381,7 @@ module.exports = grunt => {
});
grunt.registerTask('upgrade', () => {
cp.execSync("node diff --all --vendor", {stdio: 'inherit'});
cp.execSync("node diff --closest", {stdio: 'inherit'});
});
grunt.registerTask('unit-tests-run', () => {
@@ -396,7 +396,7 @@ module.exports = grunt => {
cp.execSync("composer run-script setConfigParams", {stdio: 'ignore'});
});
grunt.registerTask('zip', () => {
grunt.registerTask('zip', function () { // Don't change to arrow-function.
const archiver = require('archiver');
let resolve = this.async();
@@ -425,8 +425,9 @@ module.exports = grunt => {
archive
.directory(currentPath + '/build/' + folder, folder)
.pipe(zipOutput)
.finalize();
.pipe(zipOutput);
archive.finalize();
});
grunt.registerTask('npm-install', () => {

View File

@@ -89,7 +89,7 @@ class Auth
$hasAuthData = (bool) ($username || $authenticationMethod);
if (!$hasAuthData && $this->isEntryPoint) {
if (!$hasAuthData) {
$password = $this->obtainTokenFromCookies($request);
if ($password) {

View File

@@ -22,8 +22,8 @@
},
"labels": {
"Create {entityType}": "Crea {entityTypeTranslated}",
"Schedule {entityType}": "Pianificazione {entityTypeTranslated}",
"Log {entityType}": "Registro {entityTypeTranslated}",
"Schedule {entityType}": "Pianifica {entityTypeTranslated}",
"Log {entityType}": "Registra {entityTypeTranslated}",
"Set Held": "Effettuata",
"Set Not Held": "Non Effettuata"
},

View File

@@ -29,7 +29,8 @@
"campaignLogRecords": "Log campagna",
"campaign": "Campagna",
"portalUsers": "Utenti portale",
"originalLead": "Iniziativa originale"
"originalLead": "Iniziativa originale",
"contactsPrimary": "Contatti (primari)"
},
"options": {
"type": {

View File

@@ -12,7 +12,7 @@
"Create": "Crea",
"Shared": "Diviso",
"Add User": "Aggiungi Utente",
"current": "Attuale",
"current": "In Corso",
"time": "ora",
"User List": "Elenco utenti",
"Manage Users": "Gestione utenti",

View File

@@ -18,6 +18,7 @@
}
},
"tooltips": {
"url": "Il destinatario sara' reindirizzato a questa posizione dopo aver seguito il link."
"url": "Il destinatario sara' reindirizzato a questa posizione dopo aver seguito il link.",
"message": "Il messaggio verrà mostrato al destinatario dopo che avrà seguito il link. Il Markdown è supportato."
}
}

View File

@@ -74,8 +74,8 @@
"Schedule Meeting": "Pianifica Riunione",
"Schedule Call": "Pianifica chiamata",
"Compose Email": "Componi email",
"Log Meeting": "Registro riunione",
"Log Call": "Registro chiamata",
"Log Meeting": "Registra Riunione",
"Log Call": "Registra Chiamata",
"Archive Email": "Archivio Email",
"Create Task": "Crea Compito",
"Tasks": "Compiti",

View File

@@ -50,7 +50,7 @@
"storeSentEmails": "Le email verranno salvate nel CRM"
},
"presetFilters": {
"actual": "Attuale",
"actual": "In Corso",
"complete": "Completo"
}
}

View File

@@ -50,6 +50,7 @@
},
"messages": {
"nothingHasBeenSent": "Nulla è stato inviato",
"selectAcceptanceStatus": "Imposta il tuo stato di accettazione."
"selectAcceptanceStatus": "Imposta il tuo stato di accettazione.",
"sendInvitationsConfirmation": "Invia email di invito ai partecipanti?"
}
}

View File

@@ -40,7 +40,7 @@
"overdue": "in ritardo"
},
"presetFilters": {
"actual": "Attuale",
"actual": "In Corso",
"completed": "Completato",
"todays": "Di oggi",
"overdue": "In ritardo",

View File

@@ -175,7 +175,9 @@
"codeType": "Tipo Codice",
"lastChar": "Ultimo Carattere",
"listPreviewSize": "Dimensione Anteprima in Vista Elenco",
"onlyDefaultCurrency": "Solo valuta predefinita"
"onlyDefaultCurrency": "Solo valuta predefinita",
"conversionDisabled": "Disattiva la Conversione",
"decimalPlaces": "Posizioni Decimali"
},
"messages": {
"selectEntityType": "Scegli il tipo di entità dal menu di sinistra.",
@@ -196,7 +198,8 @@
"upgradeInfo": "Controlla la [documentazione]({url}) su come aggiornare l'istanza di EspoCRM.",
"upgradeRecommendation": "Questo modo di aggiornamento non è raccomandato. È meglio eseguire l'aggiornamento dalla CLI.",
"newVersionIsAvailable": "È disponibile la nuova versione di EspoCRM {latestVersion}. Seguire le [istruzioni](https://www.espocrm.com/documentation/administration/upgrading/) per aggiornare l'istanza.",
"formulaFunctions": "Più funzioni possono essere trovate nella [documentazione]({documentationUrl})."
"formulaFunctions": "Più funzioni possono essere trovate nella [documentazione]({documentationUrl}).",
"rebuildRequired": "È necessario eseguire la ricostruzione da CLI."
},
"descriptions": {
"settings": "Impostazioni di sistema dell'applicazione.",
@@ -238,7 +241,11 @@
"pdfTemplates": "Modelli per la stampa in PDF.",
"webhooks": "Gestisci i webhook.",
"dashboardTemplates": "Distribuire dashboard agli utenti.",
"phoneNumbers": "Tutti i numeri telefonici sono archiviati nel sistema."
"phoneNumbers": "Tutti i numeri telefonici sono archiviati nel sistema.",
"emailAddresses": "Tutti gli indirizzi email memorizzati nel sistema.",
"layoutSets": "Raccolte di layout che possono essere assegnati a team e portali.",
"sms": "Impostazioni SMS.",
"formulaSandbox": "Scrivi e testa gli script delle formule."
},
"logicalOperators": {
"and": "And"
@@ -262,7 +269,8 @@
"notePostNoParent": "Nota su post (nessun genitore)",
"noteStatus": "Nota sull'aggiornamento dello stato",
"passwordChangeLink": "Collegamento per la modifica della password",
"noteEmailReceived": "Nota sull'e-mail ricevuta"
"noteEmailReceived": "Nota sull'e-mail ricevuta",
"twoFactorCode": "Codice 2FA"
},
"strings": {
"rebuildRequired": "E' richiesta la ricostruzione"
@@ -271,6 +279,8 @@
"userInterface": "ui,tema,schede,logo,dashboard",
"authLog": "storico log",
"authTokens": "storico log di accesso",
"templateManager": "notifiche"
"entityManager": "campi,relazioni,rapporti",
"templateManager": "notifiche",
"authentication": "password,sicurezza,ldap"
}
}

View File

@@ -1 +1,164 @@
{}
{
"names": {
"AED": "Dirham degli Emirati Arabi Uniti",
"AFN": "Afgano Afghani",
"ALL": "Lek Albanese",
"AMD": "Dram Armeno",
"ANG": "Fiorino delle Antille Olandesi",
"AOA": "Kwanza Angolano",
"ARS": "Peso Argentino",
"AUD": "Dollaro Australiano",
"AWG": "Fiorino Arubano",
"AZN": "Manat Azero",
"BAM": "Marco Bosniaco",
"BBD": "Dollaro Barbadiano",
"BDT": "Taka Bengalese",
"BGN": "Lev Bulgaro",
"BHD": "Dinaro del Bahrein",
"BIF": "Franco del Burundi",
"BMD": "Dollaro Bermudiano",
"BND": "Dollaro del Brunei",
"BOB": "Boliviano",
"BRL": "Real Brasiliano",
"BSD": "Dollaro delle Bahamas",
"BTN": "Ngultrum del Bhutan",
"BWP": "Pula del Botswana",
"BYN": "Rublo Bielorusso",
"BZD": "Dollaro del Belize",
"CAD": "Dollaro Canadese",
"CDF": "Franco Congolese",
"CHF": "Franco Svizzero",
"CHW": "WIR Franco",
"CLF": "Unità di conto cilena (UF)",
"CLP": "Peso Cileno",
"CNH": "Yuan Cinese (offshore)",
"CNY": "Yuan Cinese",
"COP": "Peso Colombiano",
"COU": "Unità di Valore Reale Colombiano",
"CRC": "Colón Costaricano",
"CUC": "Peso Cubano Convertibile",
"CUP": "Peso Cubano",
"CVE": "Escudo Capoverdiano",
"CZK": "Corona Ceca",
"DJF": "Franco Gibutiano",
"DKK": "Corona Danese",
"DOP": "Peso Dominicano",
"DZD": "Dinaro Algerino",
"EGP": "Sterlina Egiziana",
"ERN": "Nacfa Eritreo",
"ETB": "Birr Etiope",
"FJD": "Dollaro delle Figi",
"FKP": "Sterlina delle Falkland",
"GBP": "Sterlina Britannica",
"GEL": "Lari Georgiano",
"GHS": "Cedi Ghanese",
"GIP": "Sterlina di Gibilterra",
"GMD": "Dalasi Gambese",
"GNF": "Franco Guineano",
"GTQ": "Quetzal Guatemalteco",
"GYD": "Dollaro della Guyana",
"HKD": "Dollaro di Hong Kong",
"HNL": "Lempira Honduregna",
"HRK": "Kuna Croata",
"HTG": "Gourde Haitiano",
"HUF": "Fiorino Ungherese",
"IDR": "Rupia Indonesiana",
"ILS": "Nuovo Shekel Israeliano",
"INR": "Rupia Indiana",
"IQD": "Dinaro Iracheno",
"IRR": "Riyal Iraniano",
"ISK": "Corona Islandese",
"JMD": "Dollaro Giamaicano",
"JOD": "Dinaro Giordano",
"JPY": "Yen Giapponese",
"KES": "Scellino Keniota",
"KGS": "Som Kirghiso",
"KHR": "Riel Cambogiano",
"KMF": "Franco delle Comore",
"KPW": "Won Nordcoreano",
"KRW": "Won Sudcoreano",
"KWD": "Dinaro Kuwaitiano",
"KYD": "Dollaro delle Cayman",
"KZT": "Tenge Kazako",
"LAK": "Kip Laotiano",
"LBP": "Lira Libanese",
"LKR": "Rupia Singalese",
"LRD": "Dollaro Liberiano",
"LSL": "Loti Lesothiano",
"LYD": "Dinaro Libico",
"MAD": "Dirham Marocchino",
"MDL": "Leu Moldavo",
"MGA": "Ariary Malgascio",
"MKD": "Dinaro Macedone",
"MMK": "Kyat Birmano",
"MNT": "Tugrik Mongolo",
"MOP": "Pataca di Macao",
"MRO": "Ouguiya Mauritana",
"MUR": "Rupia Mauriziana",
"MWK": "Kwacha Malawiano",
"MXN": "Peso Messicano",
"MYR": "Ringgit Malaysiano",
"MZN": "Metical Mozambicano",
"NAD": "Dollaro Namibiano",
"NGN": "Naira Nigeriana",
"NIO": "Córdoba Nicaraguense",
"NOK": "Corona Norvegese",
"NPR": "Rupia Nepalese",
"NZD": "Dollaro Neozelandese",
"OMR": "Riyal dell'Oman",
"PAB": "Balboa Panamense",
"PEN": "Nuevo Sol Peruviano",
"PGK": "Kina Papuana",
"PHP": "Peso Filippino",
"PKR": "Rupia Pakistana",
"PLN": "Złoty Polacco",
"PYG": "Guaraní Paraguaiano",
"QAR": "Riyal del Qatar",
"RON": "Leu Romeno",
"RSD": "Dinaro Serbo",
"RUB": "Rublo Russo",
"RWF": "Franco Ruandese",
"SAR": "Riyal Saudita",
"SBD": "Dollaro delle Salomone",
"SCR": "Rupia delle Seychelles",
"SDG": "Sterlina Sudanese",
"SEK": "Corona Svedese",
"SGD": "Dollaro di Singapore",
"SHP": "Sterlina di Sant'Elena",
"SLL": "Leone Sierraleonese",
"SOS": "Scellino Somalo",
"SRD": "Dollaro Surinamese",
"SSP": "Sterlina Sudsudanese",
"STN": "Dobra di São Tomé e Príncipe (2018)",
"SYP": "Lira Siriana",
"SZL": "Lilangeni dell'eSwatini",
"SVC": "Colón Salvadoregno",
"THB": "Baht Thailandese",
"TJS": "Somoni Tagiko",
"TND": "Dinaro Tunisino",
"TOP": "Paʻanga Tongano",
"TRY": "Lira Turca",
"TTD": "Dollaro di Trinidad e Tobago",
"TWD": "Dollaro Taiwanese",
"TZS": "Scellino Tanzaniano",
"UAH": "Grivnia Ucraina",
"UGX": "Scellino Ugandese",
"USD": "Dollaro Statunitense",
"USN": "Dollaro Statunitense (Next day)",
"UYI": "Peso uruguaiano (Indexed Units)",
"UYU": "Peso Uruguaiano",
"UZS": "Som Uzbeko",
"VEF": "Bolívar Venezuelano",
"VND": "Dong Vietnamita",
"VUV": "Vatu Vanuatu",
"WST": "Tālā Samoano",
"XAF": "Franco CFA BEAC",
"XCD": "Dollaro dei Caraibi Orientali",
"XOF": "Franco CFA BCEAO",
"XPF": "Franco CFP",
"YER": "Riyal Yemenita",
"ZAR": "Rand Sudafricano",
"ZMW": "Kwacha Zambiano",
"ZWL": "Dollaro Zimbabwese"
}
}

View File

@@ -47,7 +47,8 @@
"replyToEmailAddresses": "Rispondi-a indirizzo email",
"fromEmailAddress": "Dall'indirizzo (collegamento)",
"replyToName": "Rispondi a Nome",
"replyToAddress": "Indirizzo di risposta"
"replyToAddress": "Indirizzo di risposta",
"event": "Evento"
},
"links": {
"replied": "Risposto",
@@ -102,7 +103,8 @@
"Folders": "Cartelle",
"View Users": "Visualizza utenti",
"No Subject": "Nessun Oggetto",
"Insert Field": "Inserisci Campo"
"Insert Field": "Inserisci Campo",
"Event": "Evento"
},
"messages": {
"testEmailSent": "L'email di prova è stata inviata",

View File

@@ -46,6 +46,8 @@
},
"tooltips": {
"monitoredFolders": "Cartelle multiple devono essere separate dalla virgola.\n\nÈ possibile aggiungere una cartella \"Inviata\" per sincronizzare le email inviate da un client di posta elettronica esterno.",
"storeSentEmails": "Le e-mail inviate verranno archiviate sul server IMAP. Il campo Indirizzo e-mail deve corrispondere all'indirizzo da cui verranno inviate le e-mail."
"storeSentEmails": "Le e-mail inviate verranno archiviate sul server IMAP. Il campo Indirizzo e-mail deve corrispondere all'indirizzo da cui verranno inviate le e-mail.",
"useSmtp": "La possibilità di inviare email.",
"emailAddress": "Il record utente (utente assegnato) deve avere lo stesso indirizzo email per poter utilizzare questo account di posta elettronica per l'invio."
}
}

View File

@@ -15,12 +15,16 @@
"oneOff": "Controllare se avete intenzione di utilizzare questo modello una sola volta. Per esempio. per Email Massive."
},
"presetFilters": {
"actual": "Attuale"
"actual": "Attivo"
},
"placeholderTexts": {
"optOutLink": "Un link di cancellazione dell'iscrizione",
"today": "Data odierna",
"now": "Data e ora attuali\n\n",
"currentYear": "Anno corrente"
"currentYear": "Anno corrente",
"optOutUrl": "URL per un link di disiscrizione"
},
"messages": {
"infoText": "placeholders disponibili:\n\n{optOutUrl} – URL per un link di disiscrizione;\n\n{optOutLink} – un link di disiscrizione."
}
}

View File

@@ -4,5 +4,9 @@
"exportAllFields": "Esporta tutti i campi",
"format": "Formato",
"status": "Stato"
},
"messages": {
"exportProcessed": "L'esportazione è stata elaborata. Scarica il [file]({url}).",
"infoText": "L'esportazione è in fase di elaborazione in idle da parte di cron. Può richiedere un po' di tempo per essere completata. La chiusura di questa finestra di dialogo non influirà sul processo di esecuzione."
}
}

View File

@@ -60,6 +60,9 @@
"javascript: return this.dateTime.getDateShiftedFromToday(10, 'months');": "+10 mesi",
"javascript: return this.dateTime.getDateShiftedFromToday(11, 'months');": "+11 mesi",
"javascript: return this.dateTime.getDateShiftedFromToday(1, 'year');": "+1 anno"
},
"globalRestrictions": {
"internal": "Interno"
}
},
"tooltips": {
@@ -76,7 +79,16 @@
"readOnly": "Il valore del campo non può essere specificato dall'utente. Ma può essere calcolato da una formula.",
"maxFileSize": "Se vuoto o 0 allora nessun limite.",
"fileAccept": "Quali tipi di file accettare. È possibile aggiungere elementi personalizzati.",
"barcodeLastChar": "Per tipo EAN-13."
"barcodeLastChar": "Per tipo EAN-13.",
"conversionDisabled": "L'azione di conversione della valuta non verrà applicata a questo campo.",
"cutHeight": "Un testo maggiore di un valore specificato verrà troncato e verrà visualizzato il pulsante 'Mostra altro'.",
"urlStrip": "Rimuove il protocollo e lo slash finale.",
"pattern": "Un'espressione regolare per verificare il valore di un campo. Definire un'espressione o selezionarne una predefinita.",
"options": "Un elenco di possibili valori e delle rispettive etichette.",
"optionsArray": "Un elenco di possibili valori e delle rispettive etichette. Se vuoto, il campo consente di inserire valori personalizzati.",
"maxCount": "Numero massimo di elementi selezionabili.",
"displayAsList": "Ogni elemento è inserito in una nuova riga.",
"optionsVarchar": "Un elenco di valori per il completamento automatico."
},
"fieldParts": {
"address": {
@@ -102,8 +114,25 @@
},
"fieldInfo": {
"varchar": "Una singola linea di testo.",
"enum": "Selectbox, si può selezionare un solo valore.",
"text": "Un testo multilinea con supporto markdown.",
"date": "Data senza ora",
"datetime": "Data e ora",
"currency": "Un importo in valuta. Un numero float con un codice di valuta.",
"int": "Un numero intero.",
"float": "Un numero con una parte decimale.",
"bool": "Un checkbox. Due valori possibili: true e false.",
"multiEnum": "Un elenco di valori; è possibile selezionare più valori. L'elenco è ordinato.",
"checklist": "Un elenco di checkbox.",
"array": "Un elenco di valori, simile al campo Multi-Enum.",
"address": "Un indirizzo con via, città, regione, codice postale e nazione.",
"url": "Per la memorizzazione dei link.",
"wysiwyg": "Un testo con supporto HTML.",
"attachmentMultiple": "Consente il caricamento di più file.",
"number": "Un numero autoincrementante di tipo stringa con un possibile prefisso e una lunghezza specifica.",
"autoincrement": "Un numero intero di sola lettura e autoincrementante.",
"barcode": "Un codice a barre. Può essere stampato in PDF.",
"foreign": "Campo di un record correlato. Di Sola Lettura.",
"linkParent": "Un record collegato tramite una relazione Belongs-To-Parent. Puo' essere di tipi di entita' differenti."
}
}

View File

@@ -1,5 +1,6 @@
{
"labels": {
"Check Syntax": "Controlla Sintassi",
"Run": "Avvia"
},
"fields": {
@@ -7,8 +8,13 @@
"error": "Errore"
},
"messages": {
"runSuccess": "Eseguito con successo.",
"runError": "Errore",
"checkSyntaxSuccess": "La Sintassi è corretta",
"checkSyntaxError": "Errore di Sintassi"
"checkSyntaxError": "Errore di Sintassi",
"emptyScript": "Lo script è vuoto."
},
"tooltips": {
"output": "Mostra i risultati con la funzione `output\\printLine`."
}
}

View File

@@ -19,7 +19,7 @@
"Attachment": "Allegato",
"EmailFolder": "Casella Email",
"PortalUser": "Utente portale",
"ScheduledJobLogRecord": "Registro registro lavori pianificato",
"ScheduledJobLogRecord": "Registro lavoro pianificato",
"PasswordChangeRequest": "Richiesta di cambio password",
"ActionHistoryRecord": "Record di cronologia delle azioni",
"AuthToken": "Token di autenticazione",
@@ -47,7 +47,9 @@
"DashboardTemplate": "Modello di dashboard",
"Currency": "Divisa",
"LayoutSet": "Layout",
"Mass Action": "Azione Massiva"
"Mass Action": "Azione Massiva",
"Note": "Nota",
"ImportError": "Errore di importazione"
},
"scopeNamesPlural": {
"Email": "Email",
@@ -69,14 +71,14 @@
"Attachment": "Allegato",
"EmailFolder": "Caselle Email",
"PortalUser": "Utenti portale",
"ScheduledJobLogRecord": "Record registro lavori pianificati",
"ScheduledJobLogRecord": "Record registro lavoro pianificato",
"PasswordChangeRequest": "Richiesta di cambio password",
"ActionHistoryRecord": "Storico azioni",
"AuthToken": "Tokens di autenticazione",
"UniqueId": "ID univoci",
"LastViewed": "Ultima visualizzazione",
"AuthLogRecord": "Auth log",
"AuthFailLogRecord": "Registro fallito autent",
"AuthFailLogRecord": "Registro Autenticazioni Fallite",
"EmailTemplateCategory": "Categorie Modeli Email",
"Import": "Importa",
"LeadCapture": "Cattura Lead",
@@ -87,7 +89,9 @@
"EmailAddress": "Indirizzo Email",
"PhoneNumber": "Telefono",
"Currency": "Divisa",
"LayoutSet": "Layout Set"
"LayoutSet": "Layout Set",
"Note": "Note",
"ImportError": "Errori di importazione"
},
"labels": {
"Misc": "Varie",
@@ -168,6 +172,7 @@
"Active": "Attivo",
"Inactive": "Inattivo",
"Write your comment here": "Scrivi il tuo commento qui",
"Post": "Pubblica",
"Stream": "Flusso attività",
"Show more": "Mostra altro",
"Dashlet Options": "Opzioni dashlet",
@@ -236,7 +241,8 @@
"Save & Continue Editing": "Salva e continua a modificare",
"Save & New": "Salva & Nuovo",
"Field": "Campo",
"Resolution": "Risoluzione"
"Resolution": "Risoluzione",
"Resolve Conflict": "Risolvere i conflitti"
},
"messages": {
"pleaseWait": "Attendere...",
@@ -300,7 +306,24 @@
"fieldExceedsMaxCount": "Il conteggio supera il massimo consentito {maxCount}",
"notUpdated": "Non aggiornato",
"maintenanceMode": "L'applicazione è attualmente in modalità manutenzione. Solo gli utenti amministratori hanno accesso.\n\nLa modalità di manutenzione può essere disabilitata in Amministrazione → Impostazioni.",
"fieldInvalid": "{field} non è valido"
"fieldInvalid": "{field} non è valido",
"resolveSaveConflict": "Il record è stato modificato. È necessario risolvere il conflitto prima di poter salvare il record.",
"massActionProcessed": "L'azione di massa è stata elaborata.",
"fieldUrlExceedsMaxLength": "L'URL codificato supera la lunghezza massima di {maxLength}",
"fieldNotMatchingPattern": "{field} non corrisponde al pattern `{pattern}`",
"fieldNotMatchingPattern$noBadCharacters": "{field} contiene caratteri non ammessi",
"fieldNotMatchingPattern$noAsciiSpecialCharacters": "{field} non dovrebbe contenere caratteri speciali ASCII",
"fieldNotMatchingPattern$latinLetters": "{field} può contenere solo lettere latine",
"fieldNotMatchingPattern$latinLettersDigits": "{field} può contenere solo lettere latine e numeri.",
"fieldNotMatchingPattern$latinLettersDigitsWhitespace": "{field} può contenere solo lettere latine, numeri e spazi vuoti",
"fieldNotMatchingPattern$latinLettersWhitespace": "{field} può contenere solo lettere latine e spazi vuoti",
"fieldNotMatchingPattern$digits": "{field} può contenere solo numeri",
"fieldPhoneInvalidCharacters": "Sono consentite solo numeri, lettere latine e caratteri `-+_@:#().`.",
"arrayItemMaxLength": "L'elemento non dovrebbe essere più lungo di {max} caratteri",
"validationFailure": "Errore di convalida nel backend.\n\nCampo: `{field}`\nConvalida: `{type}`",
"confirmAppRefresh": "L'applicazione è stata aggiornata. Si consiglia di aggiornare la pagina per garantirne il corretto funzionamento.",
"error404": "L'url richiesto non può essere elaborato.",
"error403": "Non hai l'accesso a quest'area."
},
"boolFilters": {
"onlyMy": "Solo il mio",
@@ -513,7 +536,7 @@
"nextMonth": "Prossimo mese",
"currentFiscalYear": "Anno fiscale corrente",
"lastFiscalYear": "L'ultimo anno fiscale",
"currentFiscalQuarter": "Attuale trimestre fiscale",
"currentFiscalQuarter": "Trimestre fiscale In Corso",
"lastFiscalQuarter": "Ultimo trimestre fiscale\n"
},
"searchRanges": {
@@ -671,5 +694,21 @@
},
"listViewModes": {
"list": "Lista"
},
"themes": {
"Dark": "Scuro",
"Violet": "Violetto",
"Hazyblue": "Blu Nebuloso",
"Glass": "Vetro"
},
"themeNavbars": {
"side": "Navbar Verticale",
"top": "Navbar Orizzontale"
},
"fieldValidations": {
"required": "Richiesto",
"maxLength": "Lunghezza Massima",
"emailAddress": "Indirizzo Email Valido",
"phoneNumber": "Numero di Telefono Valido"
}
}

View File

@@ -60,7 +60,8 @@
"confirmRevert": "Questa operazione rimuoverà tutti i record importati definitivamente. Sei sicuro?",
"confirmRemoveDuplicates": "Questo rimuoverà permanentemente tutti i record importati che sono stati riconosciuti come duplicati. Sei sicuro?",
"removeImportLog": "Questo rimuoverà il registro di importazione. Tutti i record importati verranno mantenuti. Usalo se sei sicuro che l'importazione va bene.",
"confirmRemoveImportLog": "Cosi' facendo rimuoverai il log di importazione. Tutti i record importati rimarranno a sistema. Non sarai in grado di ripristinare i risultati di importazione. Sei sicuro?"
"confirmRemoveImportLog": "Cosi' facendo rimuoverai il log di importazione. Tutti i record importati rimarranno a sistema. Non sarai in grado di ripristinare i risultati di importazione. Sei sicuro?",
"noErrors": "Nessun errore."
},
"fields": {
"entityType": "Tipo di entità",
@@ -84,5 +85,12 @@
"strings": {
"commandToRun": "Comando da eseguire (da CLI)",
"saveAsDefault": "Salva come predefinito"
},
"tooltips": {
"manualMode": "Se questa opzione è selezionata, sarà necessario eseguire l'importazione manualmente da CLI. Il comando verrà mostrato dopo aver impostato l'importazione.",
"silentMode": "La maggior parte degli script after-save verrà saltata, le note dello stream non verranno create. L'importazione sarà più veloce."
},
"links": {
"errors": "Errori"
}
}

View File

@@ -1 +1,14 @@
{}
{
"fields": {
"lineNumber": "Linea Numero",
"exportLineNumber": "Numero della linea di esportazione",
"row": "Riga"
},
"options": {
"type": {
"Validation": "Convalida",
"Access": "Accesso",
"Not-Found": "Non Trovato"
}
}
}

View File

@@ -48,7 +48,8 @@
"monitoredFolders": "Se più cartelle, devono essere separate da virgola",
"smtpIsShared": "Se selezionato, gli utenti saranno in grado di inviare e-mail utilizzando questo SMTP. La disponibilità è controllata dai ruoli tramite l'autorizzazione dell'account e-mail di gruppo.",
"smtpIsForMassEmail": "Se selezionato, SMTP sarà disponibile per l'e-mail di massa.",
"storeSentEmails": "Le email inviate saranno memorizzate sul server IMAP"
"storeSentEmails": "Le email inviate saranno memorizzate sul server IMAP",
"useSmtp": "La possibilità di inviare email."
},
"links": {
"filters": "Filtri",

View File

@@ -8,7 +8,10 @@
"sticked": "Fissato",
"isLarge": "Misura carattere grande",
"dynamicLogicVisible": "Condizioni che rendono visibile il pannello",
"hidden": "Nascosto"
"hidden": "Nascosto",
"dynamicLogicStyled": "Condizioni che applicano lo stile.",
"widthPx": "Larghezza (px)",
"noLabel": "Nessuna Etichetta"
},
"options": {
"align": {
@@ -28,6 +31,17 @@
},
"tooltips": {
"link": "Se selezionato, verrà visualizzato un valore di campo come collegamento che punta alla vista di dettaglio del record. Di solito è usato per i campi *Nome*.",
"panelStyle": "Un colore per il pannello"
"hiddenPanel": "È necessario fare clic su \"Mostra altro\" per visualizzare il pannello.",
"sticked": "Il pannello sarà attaccato a quello sovrastante. Non ci saranno spazi tra i pannelli.",
"panelStyle": "Un colore per il pannello",
"dynamicLogicVisible": "Se impostato, il pannello sarà nascosto a meno che la condizione non sia soddisfatta.",
"dynamicLogicStyled": "Un colore verrà applicato se viene soddisfatta una condizione specifica. Il colore è definito dal parametro *Stile*.",
"notSortable": "Disabilita la possibilità di ordinare per colonna.",
"width": "Larghezza della colonna in percentuale. Si consiglia di avere una colonna con la larghezza non impostata, di solito è il campo *Nome*.",
"widthPx": "Larghezza della colonna in pixel. Ha effetto solo se il valore (%) non è impostato. Rende fissa la larghezza della colonna."
},
"messages": {
"cantBeEmpty": "Il layout non può essere vuoto.",
"fieldsIncompatible": "I campi non possono essere presenti contemporaneamente nel layout: {fields}."
}
}

View File

@@ -1,5 +1,9 @@
{
"fields": {
"layoutList": "Layout"
},
"labels": {
"Create LayoutSet": "Crea gruppo di layout",
"Edit Layouts": "Modifica i layout"
}
}

View File

@@ -8,5 +8,8 @@
"Running": "In esecuzione",
"Failed": "Fallito"
}
},
"messages": {
"infoText": "L'azione di massa è in fase di elaborazione in idle da parte di cron. Può richiedere del tempo per essere completata. La chiusura di questa finestra di dialogo non influirà sul processo di esecuzione."
}
}

View File

@@ -1,6 +1,5 @@
{
"fields": {
"post": "Posta",
"attachments": "Allegato",
"users": "Utenti",
"portals": "Portali",

View File

@@ -24,7 +24,8 @@
"layoutSet": "Layout"
},
"tooltips": {
"portalRoles": "I Ruoli specificati verranno applicati a tutti gli utenti di questo portale ."
"portalRoles": "I Ruoli specificati verranno applicati a tutti gli utenti di questo portale .",
"layoutSet": "Fornisce la possibilità di avere layout diversi da quelli standard."
},
"labels": {
"Create Portal": "Crea Portale",

View File

@@ -8,7 +8,8 @@
"groupEmailAccountPermission": "Permesso account email di gruppo",
"exportPermission": "Esporta permessi",
"dataPrivacyPermission": "Autorizzazione privacy dati",
"massUpdatePermission": "Autorizzazione per l'aggiornamento di massa"
"massUpdatePermission": "Autorizzazione per l'aggiornamento di massa",
"followerManagementPermission": "Permessi di Gestione dei Seguaci"
},
"links": {
"users": "Utenti"
@@ -20,7 +21,8 @@
"groupEmailAccountPermission": "Definisce un accesso agli account di posta elettronica di gruppo, una possibilità di inviare e-mail dal gruppo SMTP.",
"dataPrivacyPermission": "Consente di visualizzare e cancellare i dati personali.",
"exportPermission": "Definisce se gli utenti hanno la possibilità di esportare record.",
"massUpdatePermission": "Definisce se gli utenti hanno la possibilità di eseguire aggiornamenti di massa dei record."
"massUpdatePermission": "Definisce se gli utenti hanno la possibilità di eseguire aggiornamenti di massa dei record.",
"followerManagementPermission": "Permette di gestire i seguaci dei record."
},
"labels": {
"Access": "Accesso",

View File

@@ -121,8 +121,15 @@
"auth2FA": "Abilita autenticazione a 2 fattori",
"auth2FAMethodList": "Metodi 2FA disponibili\n",
"personNameFormat": "Formato nome persona",
"newNotificationCountInTitle": "Visualizza il numero delle nuove notifiche nel titolo della pagina",
"massEmailVerp": "Usa VERP",
"smsProvider": "Provider SMS"
"passwordRecoveryForInternalUsersDisabled": "Disabilita il recupero della password per gli utenti interni",
"passwordRecoveryNoExposure": "Evita l'esposizione dell'indirizzo email nel modulo di recupero della password",
"auth2FAForced": "Forza gli utenti normali a impostare la 2FA",
"smsProvider": "Provider SMS",
"outboundSmsFromNumber": "SMS Dal Numero",
"attachmentUploadMaxSize": "Dimensione Massima di Upload (Mb)",
"attachmentUploadChunkSize": "Dimensione del blocco di Upload (Mb)"
},
"tooltips": {
"recordsPerPage": "Numero di records inizialmente mostrati in vista elenco .",
@@ -173,7 +180,25 @@
"cronDisabled": "Cron non funzionerà.",
"maintenanceMode": "Solo gli amministratori avranno accesso al sistema.",
"ldapAccountCanonicalForm": "Il tipo di modulo canonico del tuo account. Ci sono 4 opzioni:\n\n- \"Dn\": il modulo nel formato \"CN = tester, OU = espocrm, DC = test, DC = lan\".\n\n- \"Nome utente\": il modulo \"tester\".\n\n- \"Barra rovesciata\": il modulo \"AZIENDA \\ tester\".\n\n- \"Principal\": il modulo \"tester@company.com\".",
"useWebSocket": "WebSocket permette una comunicazione interattiva bidirezionale tra un server e un browser. Richiede la configurazione del daemon WebSocket sul tuo server. Controlla la documentazione per maggiori informazioni."
"displayListViewRecordCount": "Il numero totale di record sarà visualizzato nella vista elenco.",
"currencyList": "Quali valute saranno disponibili nel sistema.",
"activitiesEntityList": "Quali record saranno disponibili nel pannello Attività.",
"historyEntityList": "Quali record saranno disponibili nel pannello Storico.",
"calendarEntityList": "Quali record saranno disponibili nel Calendario.",
"addressStateList": "Suggerimenti di Stato per i campi degli indirizzi.",
"addressCityList": "Suggerimenti per le città per i campi degli indirizzi.",
"addressCountryList": "Suggerimenti per i Paesi per i campi degli indirizzi.",
"exportDisabled": "Gli utenti non saranno in grado di esportare i record. Solo gli amministratori potranno farlo.",
"globalSearchEntityList": "Quali record si possono ricercare con la Ricerca globale.",
"siteUrl": "L'URL di quest'istanza di EspoCRM. È necessario cambiarlo nel caso in cui ci si sposti su un altro dominio.",
"useCache": "Non è consigliabile disabilitarlo, a meno che non sia per scopi di sviluppo.",
"useWebSocket": "WebSocket permette una comunicazione interattiva bidirezionale tra un server e un browser. Richiede la configurazione del daemon WebSocket sul tuo server. Controlla la documentazione per maggiori informazioni.",
"passwordRecoveryForInternalUsersDisabled": "Solo gli utenti dei portali potranno recuperare la password.",
"passwordRecoveryNoExposure": "Non sarà possibile determinare se uno specifico indirizzo email è registrato nel sistema.",
"emailAddressLookupEntityTypeList": "Per il riempimento automatico degli indirizzi e-mail.",
"emailNotificationsDelay": "Un messaggio può essere modificato entro l'intervallo di tempo specificato prima dell'invio della notifica.",
"busyRangesEntityList": "Cosa viene preso in considerazione quando vengono mostrati gli intervalli di tempo occupati nello scheduler e nella timeline.",
"recordsPerPageSelect": "Numero di record visualizzati inizialmente quando si selezionano i record."
},
"labels": {
"System": "Sistema",
@@ -190,7 +215,8 @@
"Search": "Ricerca",
"Misc": "Varie",
"2-Factor Authentication": "Autenticazione a 2 fattori",
"Group Tab": "Gruppo Schede"
"Group Tab": "Gruppo Schede",
"Attachments": "Allegati"
},
"messages": {
"ldapTestConnection": "La connessione è stata stabilita con successo"

View File

@@ -1,7 +1,8 @@
{
"messages": {
"infoMention": "Digita **@nome utente** per menzionare l'utente nel post.",
"infoSyntax": "Sintassi di markdown disponibile"
"infoSyntax": "Sintassi di markdown disponibile",
"couldNotAddFollowerUserHasNoAccessToStream": "Impossibile aggiungere l'utente '{userName}' ai seguaci. L'utente non ha accesso allo 'stream' del record."
},
"syntaxItems": {
"code": "Codice",

View File

@@ -14,7 +14,8 @@
},
"tooltips": {
"roles": "Ruoli di accesso. Gli utenti di questo team hanno ottenuto il livello di controllo per i ruoli selezionati.",
"positionList": "Posizioni disponibili in questa squadra. E.g. Venditore, Manager."
"positionList": "Posizioni disponibili in questa squadra. E.g. Venditore, Manager.",
"layoutSet": "Fornisce la possibilità di avere layout diversi da quelli standard. Il set di layout verrà applicato agli utenti che hanno impostato questo team come Team Predefinito."
},
"labels": {
"Create Team": "Crea Team"

View File

@@ -67,6 +67,7 @@
"Security": "Sicurezza",
"Reset 2FA": "Ripristina 2FA",
"Secret": "Segreto",
"Send Password Change Link": "Invia Link per il Cambio Password",
"Send Code": "Invia Codice"
},
"tooltips": {
@@ -102,7 +103,15 @@
"generateAndSendNewPassword": "Una nuova password verrà generata e inviata all'indirizzo e-mail dell'utente.",
"security2FaResetConfimation": "Sei sicuro di voler ripristinare le attuali impostazioni 2FA?",
"ldapUserInEspoNotFound": "Utente non trovato in EspoCRM. Contatta lamministratore di sistema per creare un utente.",
"auth2FARequiredHeader": "Autenticazione a 2 fattori richiesta"
"auth2FARequiredHeader": "Autenticazione a 2 fattori richiesta",
"auth2FARequired": "È necessario impostare l'autenticazione a due fattori. Usa un'applicazione di autenticazione sul tuo cellulare (ad esempio, Google Authenticator).",
"sendPasswordChangeLinkConfirmation": "Verrà inviata una mail con un link univoco che consentirà all'utente di modificare la propria password. Il link scadrà dopo un determinato periodo di tempo.",
"yourAuthenticationCode": "Codice di autenticazione: {code}.",
"choose2FaSmsPhoneNumber": "Seleziona un numero di telefono da utilizzare per la 2FA.",
"choose2FaEmailAddress": "Seleziona un indirizzo email che verrà utilizzato per la 2FA. Si consiglia di utilizzare un indirizzo email non principale.",
"enterCodeSentInEmail": "Inserisci il codice inviato al tuo indirizzo email.",
"enterCodeSentBySms": "Inserisci il codice inviato via SMS al tuo numero di telefono.",
"passwordChangeRequestNotFound": "La richiesta di modifica della password non è stata trovata. Potrebbe essere scaduta. Prova ad avviare un nuovo recupero della password dalla [Pagina di Login]({url})."
},
"boolFilters": {
"onlyMyTeam": "Solo per il mio Team"

View File

@@ -235,7 +235,6 @@
},
"language": {
"type": "enum",
"options": ["en_US"],
"default": "en_US",
"view": "views/settings/fields/language",
"isSorted": true

View File

@@ -739,7 +739,7 @@ define('views/admin/entity-manager/edit', ['view', 'model'], function (Dep, Mode
if (
this.getMetadata()
.get(['entityDefs', foreignEntityType, 'fields', item, 'foreingAccessDisabled'])
.get(['entityDefs', foreignEntityType, 'fields', item, 'foreignAccessDisabled'])
) {
return false;
}

View File

@@ -343,7 +343,7 @@ function (Dep, FileUpload) {
getEditPreview: function (name, type, id) {
if (!~this.previewTypeList.indexOf(type)) {
return name;
return null;
}
return $('<img>')
@@ -368,11 +368,9 @@ function (Dep, FileUpload) {
if (this.showPreviews) {
let html = this.getEditPreview(name, type, id);
if (!html) {
return $text.get(0).outerHTML;
if (html) {
return html;
}
return html;
}
let url = this.getBasePath() + '?entryPoint=download&id=' + id;

View File

@@ -627,11 +627,9 @@ define('views/fields/file', ['views/fields/link', 'helpers/file-upload'], functi
if (this.showPreview) {
let html = this.getEditPreview(name, type, id);
if (!html) {
return $text.get(0).outerHTML;
if (html) {
return html;
}
return html;
}
let url = this.getBasePath() + '?entryPoint=download&id=' + id;

View File

@@ -103,7 +103,9 @@ define('views/fields/url', ['views/fields/varchar', 'lib!underscore'], function
value = this.strip(value);
}
value = encodeURI(value);
if (value === decodeURI(value)) {
value = encodeURI(value);
}
return value;
},

View File

@@ -37,6 +37,7 @@ define('views/stream/notes/relate', ['views/stream/note'], function (Dep) {
data: function () {
return _.extend({
relatedTypeString: this.translateEntityType(this.entityType),
iconHtml: this.getIconHtml(this.entityType, this.entityId),
}, Dep.prototype.data.call(this));
},

30
diff.js
View File

@@ -47,6 +47,7 @@ let isDev = false;
let isAll = false;
let withVendor = true;
let forceScripts = false;
let isClosest = false;
if (process.argv.length > 1) {
for (let i in process.argv) {
@@ -67,6 +68,10 @@ if (process.argv.length > 1) {
forceScripts = true;
}
if (process.argv[i] === '--closest') {
isClosest = true;
}
if (~process.argv[i].indexOf('--acceptedVersion=')) {
acceptedVersionName = process.argv[i].substr(('--acceptedVersion=').length);
}
@@ -75,22 +80,33 @@ if (process.argv.length > 1) {
let espoPath = path.dirname(fs.realpathSync(__filename));
if (isAll || isClosest) {
acceptedVersionName = null;
}
let diff = new Diff(espoPath, {
isAll: isAll,
isDev: isDev,
withVendor: withVendor,
forceScripts: forceScripts,
acceptedVersionName: !isAll ? acceptedVersionName : null,
acceptedVersionName: acceptedVersionName,
});
if (isAll) {
diff.buildAllUpgradePackages();
}
(() => {
if (isAll) {
diff.buildAllUpgradePackages();
return;
}
if (isClosest) {
diff.buildClosestUpgradePackages();
return;
}
if (!isAll) {
if (!versionFrom) {
throw new Error("No 'version' specified.");
}
diff.buildUpgradePackage(versionFrom);
}
})();

View File

@@ -1045,6 +1045,10 @@ input.global-search-input {
&:last-child {
margin-bottom: 0;
}
> input[type=checkbox] {
margin: 3px 3px 0 0;
}
}
.multi-enum-item-label-container {

View File

@@ -116,5 +116,22 @@
"writable": "Scrivibile",
"readable": "Leggibile",
"requiredMariadbVersion": "Versione MariaDB"
},
"options": {
"modRewriteTitle": {
"apache": "<h3>Errore API: l'API EspoCRM non è disponibile.</h3><br>Esegui solo i passaggi necessari. Dopo ogni passaggio, controlla se il problema è stato risolto.",
"nginx": "<h3>Errore API: l'API EspoCRM non è disponibile.</h3>",
"microsoft-iis": "<h3>Errore API: l'API EspoCRM non è disponibile.</h3><br> Possibile problema: \"URL Rewrite\" disabilitato. Verifica e abilitare il modulo \"URL Rewrite\" nel server IIS",
"default": "<h3>Errore API: l'API EspoCRM non è disponibile.</h3><br> Possibili problemi: modulo Rewrite disabilitato. Controlla e abilita il modulo Rewrite nel tuo server (ad es. mod_rewrite in Apache) ed il supporto .htaccess."
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br><h4>1. Abilita \"mod_rewrite\".</h4>Per abilitare <i>mod_rewrite</i>, esegui questi comandi in un terminale:<br><br><pre>{APACHE1}</pre><hr><h4>2 . Se il passaggio precedente non è stato di aiuto, prova ad abilitare il supporto .htaccess.</h4> Aggiungi/modifica le impostazioni di configurazione del server <code>{APACHE2_PATH1}</code> o <code>{APACHE2_PATH2}</code> (o < codice>{APACHE2_PATH3}</code>):<br><br><pre>{APACHE2}</pre>\n Successivamente esegui questo comando in un terminale:<br><br><pre>{APACHE3}</pre><hr><h4>3. Se il passaggio precedente non è stato di aiuto, prova ad aggiungere il percorso RewriteBase.</h4>Apri un file <code>{API_PATH}.htaccess</code> e sostituisci la seguente riga:<br><br><pre>{ APACHE4}</pre>A<br><br><pre>{APACHE5}</pre><hr>Per ulteriori informazioni, visita le linee guida <a href=\"{APACHE_LINK}\" target=\"_blank\">Configurazione Server Apache per EspoCRM</a>.<br><br>",
"windows": "<br><br> <h4>1. Trova il file httpd.conf.</h4>Di solito può essere trovato in una cartella chiamata \"conf\", \"config\" o qualcosa del genere.<br><br><h4>2. Modifica il file httpd.conf.</h4> All'interno del file httpd.conf decommenta la riga <code>{WINDOWS_APACHE1}</code> (rimuovi il cancelletto '#' davanti alla riga).<br>< br><h4>3. Controlla gli altri parametri.</h4>Controlla anche se la riga <code>ClearModuleList</code> non è commentata e assicurati che la riga <code>AddModule mod_rewrite.c</code> non sia commentata."
},
"nginx": {
"linux": "<br> Aggiungi questo codice al file di configurazione del tuo server Nginx <code>{NGINX_PATH}</code> all'interno della sezione \"server\":<br><br><pre>{NGINX}</pre> <br> Per ulteriori informazioni visita le linee guida <a href=\"{NGINX_LINK}\" target=\"_blank\">Configurazione del server Nginx per EspoCRM</a>.<br><br>"
}
}
}
}

View File

@@ -27,14 +27,12 @@
************************************************************************/
const fs = require('fs');
const sys = require('util');
const cp = require('child_process');
const archiver = require('archiver');
const process = require('process');
const buildUtils = require('./build-utils');
const exec = cp.exec;
const execSync = cp.execSync;
/**
* Builds upgrade packages.
@@ -59,13 +57,19 @@ class Diff
return tagList;
}
buildClosestUpgradePackages() {
let versionFromList = this._getPreviousVersionList(true);
this.buildMultipleUpgradePackages(versionFromList);
}
buildAllUpgradePackages() {
let versionFromList = this._getPreviousVersionList();
this.buildMultipleUpgradePackages(versionFromList);
}
_getPreviousVersionList() {
_getPreviousVersionList(closest) {
let dirInitial = process.cwd();
let version = (require(this.espoPath + '/package.json') || {}).version;
@@ -105,6 +109,12 @@ class Diff
for (let i = 0; i < tagList.length; i++) {
let tag = tagList[i];
let patchVersionNumberI = tag.split('.')[2];
if (closest && parseInt(patchVersionNumberI) !== parseInt(hotfixVersionNumber) - 1) {
break;
}
if (tag === version) {
continue;
}
@@ -112,8 +122,6 @@ class Diff
if (!~tag.indexOf('beta') && !~tag.indexOf('alpha')) {
versionFromList.push(tag);
let patchVersionNumberI = tag.split('.')[2];
if (patchVersionNumberI === '0') {
break;
}
@@ -156,7 +164,7 @@ class Diff
return new Promise(resolve => {
let acceptedVersionName = params.acceptedVersionName || versionFrom;
let isDev = params.isDev;
let withVendor = params.withVendor;
let withVendor = params.withVendor ?? true;
let forceScripts = params.forceScripts;
let version = (require(espoPath + '/package.json') || {}).version;

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "espocrm",
"version": "7.2.0",
"version": "7.2.2",
"lockfileVersion": 2,
"requires": true,
"packages": {

View File

@@ -1,6 +1,6 @@
{
"name": "espocrm",
"version": "7.2.0",
"version": "7.2.2",
"description": "Open-source CRM.",
"repository": {
"type": "git",