Compare commits

...

17 Commits

Author SHA1 Message Date
yuri 1139cb242b fix dashboard 2015-07-28 17:13:33 +03:00
yuri 796e1894ac added test 2015-07-28 16:03:05 +03:00
yuri 8d15bdab3c fix call layout 2015-07-28 15:11:00 +03:00
yuri 67b56345e6 fix email iOS 2015-07-28 14:36:25 +03:00
yuri 9ac2fe1534 version 2015-07-27 16:39:00 +03:00
yuri 08cf619807 fix attachment acl and bad requests 2015-07-27 16:37:11 +03:00
yuri 380aad2f4d fix import phone 2015-07-27 12:28:33 +03:00
yuri d3a8e57fdf fix loader 2015-07-27 11:58:35 +03:00
yuri faf3350aab vesrion 2015-07-24 16:56:28 +03:00
yuri 9fc4e0b06e fix import 2015-07-24 14:58:00 +03:00
yuri 4c3ecf0b3a fix target list 2015-07-24 14:13:43 +03:00
yuri b1a345963d fix email address field 2015-07-24 12:49:44 +03:00
yuri f62db8b943 fix list 2015-07-23 16:09:51 +03:00
yuri b1aea34137 de_DE 2015-07-23 10:45:25 +03:00
yuri ae6d03ce2b update summernote 2015-07-22 14:50:42 +03:00
yuri fa4b459d58 update jquery 2015-07-22 10:52:58 +03:00
yuri 372a8d0d69 upgrade link change 2015-07-21 12:18:25 +03:00
72 changed files with 1480 additions and 375 deletions
+1 -1
View File
@@ -21,7 +21,7 @@
module.exports = function (grunt) {
var jsFilesToMinify = [
'client/lib/jquery-2.0.2.min.js',
'client/lib/jquery-2.1.4.min.js',
'client/lib/underscore-min.js',
'client/lib/backbone-min.js',
'client/lib/handlebars.js',
+6 -6
View File
@@ -18,7 +18,7 @@
*
* You should have received a copy of the GNU General Public License
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
************************************************************************/
************************************************************************/
namespace Espo\Controllers;
@@ -26,17 +26,17 @@ class Attachment extends \Espo\Core\Controllers\Record
{
public function actionUpload($params, $data)
{
{
list($prefix, $contents) = explode(',', $data);
$contents = base64_decode($contents);
$attachment = $this->getEntityManager()->getEntity('Attachment');
$this->getEntityManager()->saveEntity($attachment);
$this->getEntityManager()->saveEntity($attachment);
$this->getContainer()->get('fileManager')->putContents('data/upload/' . $attachment->id, $contents);
return array(
'attachmentId' => $attachment->id
);
);
}
}
+3 -3
View File
@@ -77,7 +77,7 @@ class Record extends Base
public function actionCreate($params, $data, $request)
{
if (!$request->isPost()) {
throw BadRequest();
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'edit')) {
@@ -96,7 +96,7 @@ class Record extends Base
public function actionUpdate($params, $data, $request)
{
if (!$request->isPut() && !$request->isPatch()) {
throw BadRequest();
throw new BadRequest();
}
if (!$this->getAcl()->check($this->name, 'edit')) {
@@ -185,7 +185,7 @@ class Record extends Base
public function actionDelete($params, $data, $request)
{
if (!$request->isDelete()) {
throw BadRequest();
throw new BadRequest();
}
$id = $params['id'];
+13 -3
View File
@@ -300,9 +300,19 @@ class Importer
$disposition = 'attachment';
}
} else if (strpos($part->ContentDisposition, 'inline') === 0) {
$contentId = trim($part->contentID, '<>');
$fileName = $contentId;
$disposition = 'inline';
if (isset($part->contentID)) {
$contentId = trim($part->contentID, '<>');
$fileName = $contentId;
$disposition = 'inline';
} else {
// hack for iOS not proper attachments
if (empty($fileName)) {
if (preg_match('/filename="?([^"]+)"?/i', $part->ContentDisposition, $m)) {
$fileName = $m[1];
$disposition = 'attachment';
}
}
}
}
}
@@ -10,16 +10,21 @@
"sicCode": "WKN Nummer",
"industry": "Branche",
"type": "Typ",
"contactRole": "Rolle"
"contactRole": "Funktion",
"campaign": "Kampagne"
},
"links": {
"contacts": "Kontakte",
"opportunities": "Verkaufschancen",
"cases": "Fälle",
"documents": "Dokumente",
"meetingsPrimary": "Meetings (intern)",
"callsPrimary": "Anrufe (intern)",
"tasksPrimary": "Aufgaben (intern)"
"meetingsPrimary": "Meetings (erweitert)",
"callsPrimary": "Anrufe (erweitert)",
"tasksPrimary": "Aufgaben (erweitert)",
"emailsPrimary": "E-Mails (erweitert)",
"targetLists": "Kontaktlisten",
"campaignLogRecords": "Kampagnen Log",
"campaign": "Kampagne"
},
"options": {
"type": {
@@ -49,7 +54,7 @@
"Real Estate": "Immobilien",
"Service": "Dienstleistung",
"Sports": "Sport",
"Sofware": "Software",
"Software": "Software",
"Technology": "Technologie",
"Telecommunications": "Telekommunikation",
"Television": "Fernsehen",
@@ -60,5 +65,9 @@
"labels": {
"Create Account": "Firma erstellen",
"Copy Billing": "Rechnungsadresse kopieren"
},
"presetFilters": {
"customers": "Kunden",
"partners": "Partner"
}
}
@@ -1,5 +1,6 @@
{
"layouts": {
"detailConvert": "Interessent umwandeln"
"detailConvert": "Interessent umwandeln",
"listForAccount": "Liste (für Firma)"
}
}
@@ -14,7 +14,8 @@
"reminders": "Erinnerungen",
"account": "Firma"
},
"links": {},
"links": {
},
"options": {
"status": {
"Planned": "Geplant",
@@ -32,6 +33,10 @@
"Tentative": "Mit Vorbehalt"
}
},
"massActions": {
"setHeld": "Auf gehalten setzen",
"setNotHeld": "Auf nicht gehalten setzen"
},
"labels": {
"Create Call": "Anruf erstellen",
"Set Held": "Auf gehalten setzen",
@@ -0,0 +1,55 @@
{
"fields": {
"name": "Name",
"description": "Beschreibung",
"status": "Status",
"type": "Typ",
"startDate": "Startdatum",
"endDate": "Enddatum",
"targetLists": "Kontaktlisten",
"sentCount": "Gesendet",
"openedCount": "Geöffnet",
"clickedCount": "Geklickt",
"optedOutCount": "Keine E-Mails",
"bouncedCount": "Nicht zustellbar",
"hardBouncedCount": "Hard Bounced",
"softBouncedCount": "Soft Bounced",
"leadCreatedCount": "Erstellte Interessenten",
"revenue": "Umsatz",
"revenueConverted": "Umsatz (konvertiert)"
},
"links": {
"targetLists": "Kontaktlisten",
"accounts": "Firmen",
"contacts": "Kontakte",
"leads": "Interessenten",
"opportunities": "Verkaufschancen",
"campaignLogRecords": "Protokoll"
},
"options": {
"type": {
"Email": "E-Mail",
"Web": "Web",
"Television": "Fernsehen",
"Radio": "Radio Button",
"Newsletter": "Newsletter",
"Mail": "Mail"
},
"status": {
"Planning": "Planung",
"Active": "Aktiv",
"Inactive": "Inaktiv",
"Complete": "Fertig"
}
},
"labels": {
"Create Campaign": "Neue Kampagne",
"Target Lists": "Kontaktlisten",
"Statistics": "Statistik",
"hard": "hart",
"soft": "weich"
},
"presetFilters": {
"active": "Aktiv"
}
}
@@ -0,0 +1,24 @@
{
"fields": {
"action": "Aktion",
"actionDate": "Datum",
"data": "Daten",
"campaign": "Kampagne",
"parent": "Zielkontakt",
"object": "Objekt",
"application": "Applikation"
},
"options": {
"action": {
"Sent": "Gesendet",
"Opened": "Geöffnet",
"Opted Out": "Keine E-Mails",
"Bounced": "Nicht zustellbar",
"Clicked": "Geklickt",
"Lead Created": "Interessent erstellt"
}
},
"labels": {
"All": "Alle"
}
}
@@ -9,7 +9,8 @@
"type": "Typ",
"description": "Beschreibung"
},
"links": {},
"links": {
},
"options": {
"status": {
"New": "Neu",
@@ -19,7 +20,7 @@
"Rejected": "Abgelehnt",
"Duplicate": "Duplizieren"
},
"priority": {
"priority" : {
"Low": "Niedrig",
"Normal": "Normal",
"High": "Hoch",
@@ -10,12 +10,18 @@
"doNotCall": "Nicht anrufen",
"address": "Adresse",
"opportunityRole": "Verkaufschance Rolle",
"accountRole": "Rolle",
"description": "Beschreibung"
"accountRole": "Funktion",
"description": "Beschreibung",
"campaign": "Kampagne",
"targetLists": "Kontaktlisten",
"targetList": "Kontaktliste"
},
"links": {
"opportunities": "Verkaufschancen",
"cases": "Fälle"
"cases": "Fälle",
"targetLists": "Kontaktlisten",
"campaignLogRecords": "Kampagnen Log",
"campaign": "Kampagne"
},
"labels": {
"Create Contact": "Kontakt erstellen"
@@ -11,11 +11,14 @@
"source": "Quelle",
"publishDate": "Veröffentlichungsdatum",
"expirationDate": "Ablaufdatum",
"description": "Beschreibung"
"description": "Beschreibung",
"accounts": "Firmen",
"folder": "Ordner"
},
"links": {
"accounts": "Firmen",
"opportunities": "Verkaufschancen"
"opportunities": "Verkaufschancen",
"folder": "Ordner"
},
"options": {
"status": {
@@ -23,6 +26,13 @@
"Draft": "Entwurf",
"Expired": "Abgelaufen",
"Canceled": "Storniert"
},
"type": {
"": "Kein(e)",
"Contract": "Vertrag",
"NDA": "NDA",
"EULA": "EULA",
"License Agreement": "Lizenz Vereinbarung"
}
},
"presetFilters": {
@@ -0,0 +1,9 @@
{
"labels": {
"Create DocumentFolder": "Dokumente Ordner erstellen",
"Manage Categories": "Ordner verwalten"
},
"links": {
"documents": "Dokumente"
}
}
@@ -0,0 +1,8 @@
{
"labels": {
"Create Lead": "Interessent erstellen",
"Create Contact": "Kontakt erstellen",
"Create Task": "Neue Aufgabe",
"Create Case": "Fall erstellen"
}
}
@@ -10,8 +10,10 @@
"Call": "Anruf",
"Task": "Aufgabe",
"Case": "Fall",
"InboundEmail": "Eingehende E-Mails",
"Document": "Dokument"
"Document": "Dokument",
"DocumentFolder": "Dokumente Ordner",
"Campaign": "Kampagne",
"TargetList": "Kontaktliste"
},
"scopeNamesPlural": {
"Account": "Firmen",
@@ -24,8 +26,10 @@
"Call": "Anrufe",
"Task": "Aufgaben",
"Case": "Fälle",
"InboundEmail": "Eingehende E-Mails",
"Document": "Dokumente"
"Document": "Dokumente",
"DocumentFolder": "Dokumente Ordner",
"Campaign": "Kampagnen",
"TargetList": "Kontaktlisten"
},
"dashlets": {
"Leads": "Meine Interessenten",
@@ -38,7 +42,7 @@
"OpportunitiesByStage": "Verkaufschancen nach Verkaufsphase",
"OpportunitiesByLeadSource": "Verkaufschancen nach Quelle",
"SalesByMonth": "Umsätze nach Monat",
"SalesPipeline": "Verkaufspipeline"
"SalesPipeline": "Verkaufspipeline"
},
"labels": {
"Create InboundEmail": "Eingehende E-Mail erstellen",
@@ -58,17 +62,17 @@
"billingAddressCity": "Ort",
"billingAddressCountry": "Land",
"billingAddressPostalCode": "PLZ",
"billingAddressState": "Bundesland\/Kanton",
"billingAddressState": "Bundesland/Kanton",
"billingAddressStreet": "Straße",
"addressCity": "Ort",
"addressStreet": "Straße",
"addressCountry": "Land",
"addressState": "Bundesland\/Kanton",
"addressState": "Bundesland/Kanton",
"addressPostalCode": "PLZ",
"shippingAddressCity": "Ort (Lieferadresse)",
"shippingAddressStreet": "Straße (Lieferadresse)",
"shippingAddressCountry": "Land (Lieferadresse)",
"shippingAddressState": "Bundesland\/Kanton (Lieferadresse)",
"shippingAddressState": "Bundesland/Kanton (Lieferadresse)",
"shippingAddressPostalCode": "PLZ (Lieferadresse)"
},
"links": {
@@ -20,9 +20,16 @@
"description": "Beschreibung",
"createdAccount": "Firma",
"createdContact": "Kontakt",
"createdOpportunity": "Verkaufschance"
"createdOpportunity": "Verkaufschance",
"campaign": "Kampagne",
"targetLists": "Kontaktlisten",
"targetList": "Kontaktliste"
},
"links": {
"targetLists": "Kontaktlisten",
"campaignLogRecords": "Kampagnen Log",
"campaign": "Kampagne"
},
"links": {},
"options": {
"status": {
"New": "Neu",
@@ -33,6 +40,7 @@
"Dead": "'Gestorben'"
},
"source": {
"": "Kein(e)",
"Call": "Anruf",
"Email": "E-Mail",
"Existing Customer": "Bestehender Kunde",
@@ -44,6 +52,7 @@
}
},
"presetFilters": {
"active": "Aktiv"
"active": "Aktiv",
"converted": "Umgewandelt"
}
}
@@ -13,7 +13,8 @@
"reminders": "Erinnerungen",
"account": "Firma"
},
"links": {},
"links": {
},
"options": {
"status": {
"Planned": "Geplant",
@@ -27,13 +28,17 @@
"Tentative": "Mit Vorbehalt"
}
},
"massActions": {
"setHeld": "Auf gehalten setzen",
"setNotHeld": "Auf nicht gehalten setzen"
},
"labels": {
"Create Meeting": "Meeting erstellen",
"Set Held": "Auf gehalten setzen",
"Set Not Held": "Auf nicht gehalten setzen",
"Send Invitations": "Einladungen versenden",
"on time": "Aktuelle Zeit",
"before": "Bevor"
"before": "bevor"
},
"presetFilters": {
"planned": "Geplant",
@@ -11,11 +11,13 @@
"contacts": "Kontakte",
"description": "Beschreibung",
"amountConverted": "Betrag (konvertiert)",
"amountWeightedConverted": "Betrag gewichtet"
"amountWeightedConverted": "Betrag gewichtet",
"campaign": "Kampagne"
},
"links": {
"contacts": "Kontakte",
"documents": "Dokumente"
"documents": "Dokumente",
"campaign": "Kampagne"
},
"options": {
"stage": {
@@ -26,9 +28,9 @@
"Id. Decision Makers": "Entscheider ident.",
"Perception Analysis": "Analyse Sichtweise",
"Proposal/Price Quote": "Preisangebot",
"Negotiation/Review": "Verhandlung\/Überarbeitung",
"Negotiation/Review": "Verhandlung/Überarbeitung",
"Closed Won": "Gewonnen",
"Closed Lost": "Verloren"
"Closed Lost": "Verloren"
}
},
"labels": {
@@ -10,7 +10,8 @@
"address": "Adresse",
"description": "Beschreibung"
},
"links": {},
"links": {
},
"labels": {
"Create Target": "Zielkontakt erstellen",
"Convert to Lead": "Zu Interessent umwandeln"
@@ -0,0 +1,29 @@
{
"fields": {
"name": "Name",
"description": "Beschreibung",
"entryCount": "Eingabezähler",
"campaigns": "Kampagnen",
"endDate": "Enddatum",
"targetLists": "Kontaktlisten"
},
"links": {
"accounts": "Firmen",
"contacts": "Kontakte",
"leads": "Interessenten",
"campaigns": "Kampagnen"
},
"options": {
"type": {
"Email": "E-Mail",
"Web": "Web",
"Television": "Fernsehen",
"Radio": "Radio Button",
"Newsletter": "Newsletter"
}
},
"labels": {
"Create TargetList": "Kontaktliste erstellen",
"Opted Out": "Keine E-Mails"
}
}
@@ -5,19 +5,27 @@
"status": "Status",
"dateStart": "Startdatum",
"dateEnd": "Fällig am",
"dateStartDate": "Startdatum (ganztägig)",
"dateEndDate": "Enddatum (ganztägig)",
"priority": "Priorität",
"description": "Beschreibung",
"isOverdue": "Ist überfällig"
"isOverdue": "Ist überfällig",
"account": "Firma",
"dateCompleted": "Datum erledigt",
"attachments": "Anhänge"
},
"links": {
"attachments": "Anhänge"
},
"links": {},
"options": {
"status": {
"Not Started": "Nicht begonnen",
"Started": "In Bearbeitung",
"Completed": "Abgeschlossen",
"Canceled": "Storniert"
"Canceled": "Storniert",
"Deferred": "Zurückgestellt"
},
"priority": {
"priority" : {
"Low": "Niedrig",
"Normal": "Normal",
"High": "Hoch",
@@ -0,0 +1,5 @@
{
"links": {
"targetLists": "Kontaktlisten"
}
}
@@ -5,7 +5,7 @@
[{"name":"name"},{"name":"parent"}],
[{"name":"status"}, {"name":"direction"}],
[{"name":"dateStart"}, {"name":"reminders"}],
[{"name":"duration"}],
[{"name":"duration"}, false],
[{"name":"description", "fullWidth": true}]
]
}
@@ -8,8 +8,8 @@
"Data": "Daten",
"Customization": "Anpassung",
"Available Fields": "Verfügbare Felder",
"Layout": "Aktuelles Layout",
"Entity Manager": "Entitäts-\/Modulmanager",
"Layout": "Layout",
"Entity Manager": "Entitäts-/Modulmanager",
"Add Panel": "Panel hinzufügen",
"Add Field": "Feld hinzufügen",
"Settings": "Einstellungen",
@@ -41,10 +41,11 @@
"Ready for installation": "Bereit für Installation",
"Uninstalling...": "Deinstalliere...",
"Uninstalled": "Deinstalliert",
"Create Entity": "Entität\/Modul erstellen",
"Edit Entity": "Entität\/Modul bearbeiten",
"Create Entity": "Entität/Modul erstellen",
"Edit Entity": "Entität/Modul bearbeiten",
"Create Link": "Relation erstellen",
"Edit Link": "Relation bearbeiten"
"Edit Link": "Relation bearbeiten",
"Notifications": "Benachrichtigungen"
},
"layouts": {
"list": "Liste",
@@ -66,7 +67,8 @@
"bool": "Bool",
"currency": "Währung",
"date": "Datum",
"datetime": "Datum\/Zeit",
"datetime": "Datum/Zeit",
"datetimeOptional": "Datum/Datum-Zeit",
"email": "E-Mail",
"enum": "Einfachauswahl",
"enumInt": "Einfachauswahl Ganzzahlwerte",
@@ -100,17 +102,21 @@
"min": "Min",
"max": "Max",
"translation": "Übersetzung",
"previewSize": "Vorschau Größe"
"previewSize": "Vorschau Größe",
"noEmptyString": "Keine leere Zeichenkette",
"defaultType": "Standardtyp",
"seeMoreDisabled": "Abschneiden des Texts verhindern",
"entityList": "Entity List"
},
"messages": {
"upgradeVersion": "Ihr EspoCRM wird nun auf Version <strong>{version}<\/strong> aktualisiert. Dies kann einige Zeit dauern.",
"upgradeDone": "Ihr EspoCRM wurde auf Version <strong>{version}<\/strong> aktualisiert. Laden Sie Sie Ihr Browser Fenster neu.",
"upgradeVersion": "Ihr EspoCRM wird nun auf Version <strong>{version}</strong> aktualisiert. Dies kann einige Zeit dauern.",
"upgradeDone": "Ihr EspoCRM wurde auf Version <strong>{version}</strong> aktualisiert.",
"upgradeBackup": "Wir empfehlen, vor der Aktualisierung von EspoCRM das Programmverzeichnis sowie die Datenbank zu sichern.",
"thousandSeparatorEqualsDecimalMark": "Das Tausendertrennzeichen kann nicht gleich dem Dezimaltrennzeichen sein",
"userHasNoEmailAddress": "Der Benutzer hat keine E-Mail Adresse.",
"selectEntityType": "Modul\/Entität links auswählen",
"selectEntityType": "Modul/Entität links auswählen",
"selectUpgradePackage": "Aktualisierungspaket auswählen",
"downloadUpgradePackage": "Benötigte Aktualisierungs Paket(e) <a href=\"https:\/\/sourceforge.net\/projects\/espocrm\/files\/Upgrades\/\">hier<\/a> herunterladen.",
"downloadUpgradePackage": "Download upgrade package(s) <a href=\"{url}\">here</a>.",
"selectLayout": "Layout zum Editieren links auswählen",
"selectExtensionPackage": "Erweiterungspaket auswählen",
"extensionInstalled": "Erweiterung {name} {version} wurde installiert.",
@@ -131,13 +137,14 @@
"emailTemplates": "Vorlagen für ausgehende E-Mails.",
"import": "Datenimport aus CSV Datei.",
"layoutManager": "Layouts anpassen (Liste, Detailansicht, Bearbeitungsansicht, Suche, Massenaktualisierung).",
"entityManager": "Module\/Entitäten selbst erstellen, existente bearbeiten, Felder und Relationen verwalten.",
"entityManager": "Module/Entitäten selbst erstellen, existente bearbeiten, Felder und Relationen verwalten.",
"userInterface": "Benutzeroberfläche anpassen.",
"authTokens": "Aktive Auth Sessions. IP Adresse und letztes Zugriffsdatum,",
"authentication": "Authentifizierungs Einstellungen.",
"currency": "Währungseinstellungen und Kurse",
"extensions": "Erweiterungen installieren oder deinstallieren",
"integrations": "Integration mit Drittanbietern "
"integrations": "Integration mit Drittanbietern ",
"notifications": "In-App und E-Mail Benachrichtigungseinstellungen."
},
"options": {
"previewSize": {
@@ -146,10 +153,5 @@
"medium": "Medium",
"large": "Large"
}
},
"layoutManagerDataAttributes": {
"width": "Breite (%)",
"link": "Link",
"notSortable": "Nicht sortierbar"
}
}
@@ -5,6 +5,14 @@
"dateTo": "Bis Datum",
"autorefreshInterval": "Aktualisierungsintervall",
"displayRecords": "Sätze anzeigen",
"isDoubleHeight": "Zweifache Höhe"
"isDoubleHeight": "Zweifache Höhe",
"mode": "Modus"
},
"options": {
"mode": {
"agendaWeek": "Woche (Agenda)",
"basicWeek": "Woche",
"month": "Monat"
}
}
}
@@ -16,14 +16,18 @@
"fromEmailAddress": "Von Adresse",
"toEmailAddresses": "An Adresse",
"emailAddress": "E-Mail Adresse",
"deliveryDate": "Zustelldatum"
"deliveryDate": "Zustelldatum",
"account": "Firma",
"users": "Benutzer"
},
"links": {
},
"links": {},
"options": {
"Draft": "Entwurf",
"Sending": "Wird gesendet",
"Sent": "Gesendet",
"Archived": "Archiviert"
"Archived": "Archiviert",
"Received": "Empfangen"
},
"labels": {
"Create Email": "E-Mail archivieren",
@@ -35,16 +39,29 @@
"Original message": "Originalnachricht",
"Forwarded message": "Weitergeleitete Nachricht:",
"Email Accounts": "E-Mail Konten",
"Email Templates": "E-Mail Vorlagen",
"Send Test Email": "Test E-Mail senden",
"Send": "Senden",
"Email Address": "E-Mail Adresse"
"Email Address": "E-Mail Adresse",
"Mark Read": "Als gelesen markieren",
"Sending...": "Wird gesendet...",
"Save Draft": "Entwurf speichern",
"Mark all as read": "Als gelesen markieren",
"Show Plain Text": "Als Text zeigen"
},
"messages": {
"noSmtpSetup": "Keine SMTP Einstellungen {link}.",
"testEmailSent": "Eine Test E-Mail wurde gesendet"
"noSmtpSetup": "Keine SMTP Einstellung, {link}. ",
"testEmailSent": "Eine Test E-Mail wurde gesendet",
"emailSent": "E-Mail wurde gesendet",
"savedAsDraft": "Als Entwurf gepeichert"
},
"presetFilters": {
"sent": "Gesendet",
"archived": "Archiviert"
"archived": "Archiviert",
"inbox": "Posteingang",
"drafts": "Entwürfe"
},
"massActions": {
"markAsRead": "Als gelesen markieren"
}
}
@@ -8,9 +8,13 @@
"port": "Port",
"monitoredFolders": "Überwachte Ordner",
"ssl": "SSL",
"fetchSince": "Holen seit"
"fetchSince": "Holen seit",
"emailAddress": "E-Mail Adresse",
"sentFolder": "Gesendet Ordner",
"storeSentEmails": "Gesendete E-Mails speichern"
},
"links": {
},
"links": {},
"options": {
"status": {
"Active": "Aktiv",
@@ -20,9 +24,15 @@
"labels": {
"Create EmailAccount": "E-Mail Konto erstellen",
"IMAP": "IMAP",
"Main": "Wichtig"
"Main": "Wichtig",
"Test Connection": "Verbindung überprüfen"
},
"messages": {
"couldNotConnectToImap": "Kann keine Verbindung zum IMAP Server herstellen"
"couldNotConnectToImap": "Kann keine Verbindung zum IMAP Server herstellen",
"connectionIsOk": "Verbindung ist in Ordnung"
},
"tooltips": {
"monitoredFolders": "Sie können einen 'Gesendet' Ordner hinzufügen um E-Mails zu synchronisieren, die von einem externen Programm gesendet wurden.",
"storeSentEmails": "Gesendete E-Mail werden auf einem IMAP Server gespeichert. Die E-Mail Adresse muss jene sein von der die E-Mail gesendet wurde."
}
}
@@ -6,9 +6,10 @@
"body": "Inhalt",
"subject": "Betreff",
"attachments": "Anhänge",
"insertField": ""
"insertField": "Project-Id-Version: 3.50\nPOT-Creation-Date: 2015-07-22\nPO-Revision-Date: \nLast-Translator: iscon\nLanguage-Team: iscon group <info@iscongroup.net>\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nLanguage: de_DE\n"
},
"links": {
},
"links": {},
"labels": {
"Create EmailTemplate": "E-Mail Vorlage erstellen"
}
@@ -11,27 +11,34 @@
"stream": "Vorgänge",
"label": "Bezeichnung",
"linkType": "Relationstyp",
"entityForeign": "Fremdentität\/-modul",
"linkForeign": "Remdrelation\/-modul",
"entityForeign": "Fremdentität/-modul",
"linkForeign": "Remdrelation/-modul",
"link": "Link",
"labelForeign": "Fremdbezeichnung"
"labelForeign": "Fremdbezeichnung",
"sortBy": "Standardsortierung (Feld)",
"sortDirection": "Standardsortierung (Richtung)"
},
"options": {
"type": {
"": "Kein(e)",
"Base": "Basis",
"Person": "Person"
"Person": "Person",
"CategoryTree": "Kategoriebaum"
},
"linkType": {
"manyToMany": "Viele zu Viele",
"oneToMany": "Eins zu Viele",
"manyToOne": "Viele zu EIns",
"manyToOne": "Viele zu Eins",
"parentToChildren": "Vater zu KInd",
"childrenToParent": "Kind zu Vater"
},
"sortDirection": {
"asc": "Aufsteigend",
"desc": "Absteigend"
}
},
"messages": {
"entityCreated": "Entität wurde erstellt",
"linkAlreadyExists": "Konflikt: Relation besteht bereits"
"linkAlreadyExists": "Konflikt Name Relation"
}
}
@@ -3,5 +3,6 @@
"Connect": "Verbinden",
"Connected": "Verbunden"
},
"help": {}
"help": {
}
}
+242 -187
View File
@@ -12,7 +12,10 @@
"ExternalAccount": "Externes Konto",
"Extension": "Erweiterung",
"Dashboard": "Übersicht",
"Stream": "Vorgänge"
"InboundEmail": "Eingehende E-Mail",
"Stream": "Vorgänge",
"Import": "Import",
"Template": "Vorlage"
},
"scopeNamesPlural": {
"Email": "E-Mails",
@@ -27,7 +30,10 @@
"ExternalAccount": "Externe Konten",
"Extension": "Erweiterungen",
"Dashboard": "Übersicht",
"Stream": "Vorgänge"
"InboundEmail": "Eingehende E-Mails",
"Stream": "Vorgänge",
"Import": "Importergebnis",
"Template": "Vorlagen"
},
"labels": {
"Misc": "Verschiedenes",
@@ -49,11 +55,12 @@
"Posted": "Geposted",
"Linked": "Verlinkt",
"Unlinked": "Verknüpfung gelöscht",
"Done": "Fertig",
"Access denied": "Zugriff verweigert",
"Access": "Zugang",
"Are you sure?": "Sind Sie sicher?",
"Record has been removed": "Datensatz wurde gelöscht",
"Wrong username/password": "Falscher Benutzername\/Passwort",
"Wrong username/password": "Falscher Benutzername/Passwort",
"Post cannot be empty": "Notiz darf nicht leer sein",
"Removing...": "Lösche...",
"Unlinking...": "Lösche Verknüpfung...",
@@ -69,8 +76,10 @@
"create": "erstellen",
"Overview": "Überblick",
"Details": "Details",
"Add Filter": "Filter hinzufügen",
"Add Field": "Feld hinzufügen",
"Add Dashlet": "Dashlet hinzufügen",
"Filter": "Filter",
"Edit Dashboard": "Übersicht bearbeiten",
"Add": "Hinzufügen",
"Reset": "Zurücksetzen",
"Menu": "Menü",
@@ -88,20 +97,23 @@
"Login": "Anmelden",
"Log Out": "Abmelden",
"Preferences": "Benutzereinstellungen",
"State": "Bundesland\/Kanton",
"State": "Bundesland/Kanton",
"Street": "Straße",
"Country": "Land",
"City": "Ort",
"PostalCode": "PLZ",
"Followed": "Beobachtet",
"Follow": "Beobachten",
"Followers": "Beobachter",
"Clear Local Cache": "Lokalen Cache leeren",
"Actions": "Aktionen",
"Delete": "Löschen",
"Update": "Aktualisieren",
"Save": "Speichern",
"Edit": "Bearbeiten",
"View": "Ansehen",
"Cancel": "Abbrechen",
"Apply": "Anwenden",
"Unlink": "Link entfernen",
"Mass Update": "Massenänderung",
"Export": "Exportieren",
@@ -126,7 +138,7 @@
"change": "ändern",
"Change": "Ändern",
"Primary": "Primär",
"Save Filters": "Filter speichern",
"Save Filter": "Filter speichern",
"Administration": "Administration",
"Run Import": "Import durchführen",
"Duplicate": "Duplizieren",
@@ -139,9 +151,20 @@
"Submit": "Ausführen",
"Close": "Schließen",
"Yes": "Ja",
"No": "Nein"
"No": "Nein",
"View": "Ansehen",
"Select All Result": "Alle auswählen",
"Value": "Wert",
"Current version": "Aktuelle Version",
"List View": "Listenansicht",
"Tree View": "Baumansicht",
"Unlink All": "Alle Links entfernen",
"Total": "Gesamt",
"Print to PDF": "Als PDF drucken"
},
"messages": {
"pleaseWait": "Bitte warten...",
"confirmLeaveOutMessage": "Sind Sie sicher dass Sie das Formular verlassen wollen?",
"notModified": "Sie haben den Datensatz nicht geändert",
"duplicate": "Der Datensatz den Sie erstellen wollen, könnte eine Dublette sein",
"fieldIsRequired": "{field} wird benötigt",
@@ -149,7 +172,7 @@
"fieldShouldBeFloat": "{field} muss eine gültige Fließkomma Zahl sein",
"fieldShouldBeInt": "{field} muss eine gültige Ganzzahl sein",
"fieldShouldBeDate": "{field} muss ein gültiges Datum sein",
"fieldShouldBeDatetime": "{field} muss ein gültiges Datum\/Zeit Feld sein",
"fieldShouldBeDatetime": "{field} muss ein gültiges Datum/Zeit Feld sein",
"fieldShouldAfter": "{field} muss nach {otherField} sein",
"fieldShouldBefore": "{field} muss vor {otherField} sein",
"fieldShouldBeBetween": "{field} muss zwischen {min} und {max} sein",
@@ -158,12 +181,13 @@
"fieldBadPasswordConfirm": "{field} falsch bestätigt",
"resetPreferencesDone": "Die Einstellungen wurden auf Standardwerte zurückgesetzt",
"assignmentEmailNotificationSubject": "EspoCRM {entityType}: {Entity.name}",
"assignmentEmailNotificationBody": "{assignerUserName} hat {entityType} '{Entity.name}' an Sie zugewiesen {recordUrl}",
"assignmentEmailNotificationBody": "{assignerUserName} hat Ihnen {entityType} '{Entity.name}' zugewiesen.\n\n{recordUrl}",
"confirmation": "Sind Sie sicher?",
"resetPreferencesConfirmation": "Sind Sie sicher dass Sie die Einstellungen auf Standardwerte zurücksetzen wollen?",
"unlinkAllConfirmation": "Sind Sie sicher, dass Sie die Beziehungen zu allen verbundenen Datensätzen entfernen möchten?",
"resetPreferencesConfirmation": "Sind Sie sicher, dass Sie die Einstellungen auf Standardwerte zurücksetzen wollen?",
"removeRecordConfirmation": "Sind Sie sicher, dass Sie den Eintrag löschen wollen?",
"unlinkRecordConfirmation": "Sind Sie sicher dass Sie diese Beziehung lösen möchten?",
"removeSelectedRecordsConfirmation": "Sind Sie sicher dass Sie die ausgewählten Sätze löschen möchten?",
"unlinkRecordConfirmation": "Sind Sie sicher, dass Sie die Beziehung zu dem verbundenen Datensatz entfernen möchten?",
"removeSelectedRecordsConfirmation": "Sind Sie sicher, dass Sie die ausgewählten Sätze löschen möchten?",
"massUpdateResult": "{count} Einträge wurden aktualisiert",
"massUpdateResultSingle": "{count} Eintrag wurde aktualisiert",
"noRecordsUpdated": "Es wurden keine Einträge aktualisiert",
@@ -171,12 +195,20 @@
"massRemoveResultSingle": "{count} Eintrag wurde gelöscht",
"noRecordsRemoved": "Es wurden keine Einträge gelöscht",
"clickToRefresh": "Klicken um zu aktualisieren",
"streamPostInfo": "Schreiben Sie <strong>@username<\/strong> um Benutzer in der Notiz hervorzuheben.\n\nVerfügbare Syntax:\n`<code>Code<\/code>`\n**<strong>fetter Text<\/strong>**\n*<em>Hervorgehobener Text<\/em>*\n~<del>Durchgestrichen<\/del>~\n> blockquote\n(url)[link]"
"streamPostInfo": "Schreiben Sie <strong>@username</strong> um Benutzer in der Notiz hervorzuheben.\n\nVerfügbare Syntax:\n`<code>Code</code>`\n**<strong>fetter Text</strong>**\n*<em>Hervorgehobener Text</em>*\n~<del>Durchgestrichen</del>~\n> blockquote\n(url)[link]"
},
"boolFilters": {
"onlyMy": "Nur Meine",
"open": "Offen",
"active": "Aktiv"
"followed": "Beobachtet"
},
"presetFilters": {
"followed": "Beobachtet"
},
"massActions": {
"remove": "Löschen",
"merge": "Zusammenführen",
"massUpdate": "Massenänderung",
"export": "Exportieren"
},
"fields": {
"name": "Name",
@@ -193,7 +225,15 @@
"modifiedBy": "Geändert von",
"description": "Beschreibung",
"address": "Adresse",
"phoneNumber": "Telefon"
"phoneNumber": "Telefon",
"phoneNumberMobile": "Telefon (Mobil)",
"phoneNumberHome": "Telefon (Privat)",
"phoneNumberFax": "Telefon (Fax)",
"phoneNumberOffice": "Telefon (Büro)",
"phoneNumberOther": "Telefon (Andere)",
"order": "Position",
"parent": "Bezieht sich auf",
"children": "Kinder"
},
"links": {
"assignedUser": "Zugewiesener Benutzer",
@@ -202,11 +242,17 @@
"team": "Team",
"roles": "Rollen",
"teams": "Teams",
"users": "Benutzer"
"users": "Benutzer",
"parent": "Bezieht sich auf",
"children": "Kinder"
},
"dashlets": {
"Stream": "Vorgänge"
},
"notificationMessages": {
"assign": "{entityType} {entity} wurde Ihnen zugewiesen",
"emailReceived": "E-Mail empfangen von {from}"
},
"streamMessages": {
"create": "{user} hat {entityType} {entity} erstellt",
"createAssigned": "{user} hat {entityType} {entity} erstellt und an {assignee} zugewiesen",
@@ -217,7 +263,7 @@
"update": "{user} hat {entityType} {entity} aktualisiert",
"createRelated": "{user} hat {relatedEntityType} {relatedEntity} verbunden mit {entityType} {entity} erstellt",
"mentionInPost": "{user} erwähnte {mentioned} zu {entityType} {entity}",
"mentionInPost": "{user} bemerkte {mentioned} in {entityType} {entity}",
"createThis": "{user} hat {entityType} erstellt",
"createAssignedThis": "{user} hat {entityType} erstellt und an {assignee} zugewiesen",
@@ -225,112 +271,111 @@
"postThis": "{user} hat notiert",
"attachThis": "{user} hat hinzugefügt",
"statusThis": "{user} hat {field} aktualisiert",
"updateThis": "{user} hat diese(s\/n) {entityType} aktualisiert",
"createRelatedThis": "{user} hat {relatedEntityType} {relatedEntity} verbunden mit diesem (r) {entityType} hinzugefügt",
"updateThis": "{user} hat diese(s/n) {entityType} aktualisiert",
"createRelatedThis": "{user} hat {relatedEntityType} {relatedEntity} verbunden mit dieser/m {entityType} erstellt",
"emailReceivedFromThis": "E-Mail wurde empfangen von {from}",
"emailReceivedInitialFromThis": "E-Mail wurde empfangen von {from} und {entityType} wurde erstellt",
"emailReceivedFromThis": "E-Mail empfangen von {from}",
"emailReceivedInitialFromThis": "E-Mail empfangen von {from}, ein(e) {entityType} wurde erstellt",
"emailReceivedThis": "{entity} wurde empfangen",
"emailReceivedInitialThis": "E-Mail wurde empfangen und {entityType} wurde erstellt",
"emailReceivedThis": "E-Mail empfangen",
"emailReceivedInitialThis": "E-Mail empfangen ein(e) {entityType} wurde erstellt",
"emailReceivedFrom": "E-Mail verbunden mit {entityType} {entity} wurde von {from} empfangen",
"emailReceivedFromInitial": "E-Mail wurde empfangen von {from} und hat {entityType} {entity} erstellt",
"emailReceivedFrom": "E-Mail empfangen von {from}, verbunden mit {entityType} {entity}",
"emailReceivedFromInitial": "E-Mail empfangen von {from}, {entityType} {entity} wurde erstellt",
"emailReceived": "E-Mail verbunden mit {entityType} {entity} wurde empfangen",
"emailReceivedInitial": "E-Mail wurde empfangen und hat {entityType} {entity} erstellt",
"emailReceivedInitialFrom": "E-Mail wurde empfangen von {from} und hat {entityType} {entity} erstellt",
"emailReceived": "E-Mail empfangen verbunden mit {entityType} {entity}",
"emailReceivedInitial": "E-Mail empfangen: {entityType} {entity} wurde erstellt",
"emailReceivedInitialFrom": "E-Mail empfangen von {from}, {entityType} {entity} wurde erstellt",
"emailSent": "{by} hat E-Mail verbunden mit {entityType} {entity} gesendet",
"emailSentThis": "{by} hat E-Mail gesendet"
"emailSent": "{by} hat eine E-Mail verbunden mit {entityType} {entity} gesendet",
"emailSentThis": "{by} hat eine E-Mail gesendet"
},
"lists": {
"monthNames": ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
"monthNamesShort": ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
"dayNames": ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
"dayNamesShort": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
"dayNamesMin": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]
},
"lists": {
"monthNames": ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
"monthNamesShort": ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
"dayNames": ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
"dayNamesShort": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"],
"dayNamesMin": ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]
},
"options": {
"salutationName": {
"Hr.": "Hr.",
"Fr.": "Fr.",
"Dr.": "Dr.",
"Prof.": "Prof."
"Mr.": "Mr.",
"Mrs.": "Mrs.",
"Ms.": "Fr.",
"Dr.": "Dr."
},
"language": {
"af_ZA":"Afrikaans",
"az_AZ":"Aserbaidschanisch",
"be_BY":"Weissrussisch",
"bg_BG":"Bulgarisch",
"bn_IN":"Benglaisch",
"bs_BA":"Bosnisch",
"ca_ES":"Katalanisch",
"cs_CZ":"Tschechisch",
"cy_GB":"Walisisch",
"da_DK":"Dänisch",
"de_DE":"Deutsch",
"el_GR":"Griechisch",
"en_GB":"Englisch (UK)",
"en_US":"Englisch (US)",
"es_ES":"Spanisch (ES)",
"et_EE":"Estnisch",
"eu_ES":"Baskisch",
"fa_IR":"Persisch",
"fi_FI":"Finnisch",
"fo_FO":"Färöisch",
"fr_CA":"Französisch (CN)",
"fr_FR":"Französisch (FR)",
"ga_IE":"Irisch",
"gl_ES":"Galizisch",
"gn_PY":"Guarani",
"he_IL":"Hebräisch",
"hi_IN":"Hindi",
"hr_HR":"Kroatisch",
"hu_HU":"Ungarisch",
"hy_AM":"Armenisch",
"id_ID":"Indonesisch",
"is_IS":"Isländisch",
"it_IT":"Italienisch",
"ja_JP":"Japanisch",
"ka_GE":"Georgisch",
"km_KH":"Khmer",
"ko_KR":"Koreanisch",
"ku_TR":"Kurdisch",
"lt_LT":"Litauisch",
"lv_LV":"Lettisch",
"mk_MK":"Mazedonisch",
"ml_IN":"Malayalam",
"ms_MY":"Malaiisch",
"nb_NO":"Norwegisch Bokmál",
"nn_NO":"Norwegisch Nynorsk",
"ne_NP":"Nepali",
"nl_NL":"Niederländisch",
"pa_IN":"Punjabi",
"pl_PL":"Polnisch",
"ps_AF":"Pashto",
"pt_BR":"Portugiesisch (BR)",
"pt_PT":"Portugiesisch (PT)",
"ro_RO":"Rumänisch",
"ru_RU":"Russisch",
"sk_SK":"Slowakisch",
"sl_SI":"Slowenisch",
"sq_AL":"Albanisch",
"sr_RS":"Serbisch",
"sv_SE":"Schwedisch",
"sw_KE":"Suaheli",
"ta_IN":"Tamil",
"te_IN":"Telugu",
"th_TH":"Thailändisch",
"tl_PH":"Tagalog",
"tr_TR":"Tükisch",
"uk_UA":"Ukrainisch",
"ur_PK":"Urdu",
"vi_VN":"Vietnamesisch",
"zh_CN":"Chinesisch vereinfacht (CN)",
"zh_HK":"Chinesisch traditionell (HK)",
"zh_TW":"Chinesisch traditionell (TW)"
"af_ZA": "Afrikaans",
"az_AZ": "Aserbaidschanisch",
"be_BY": "Weissrussisch",
"bg_BG": "Bulgarisch",
"bn_IN": "Benglaisch",
"bs_BA": "Bosnisch",
"ca_ES": "Katalanisch",
"cs_CZ": "Tschechisch",
"cy_GB": "Walisisch",
"da_DK": "Dänisch",
"de_DE": "Deutsch",
"el_GR": "Griechisch",
"en_GB": "Englisch (UK)",
"en_US": "Englisch (US)",
"es_ES": "Spanisch (ES)",
"et_EE": "Estnisch",
"eu_ES": "Baskisch",
"fa_IR": "Persisch",
"fi_FI": "Finnisch",
"fo_FO": "Färöisch",
"fr_CA": "Französisch (CN)",
"fr_FR": "Französisch (FR)",
"ga_IE": "Irisch",
"gl_ES": "Galizisch",
"gn_PY": "Guarani",
"he_IL": "Hebräisch",
"hi_IN": "Hindi",
"hr_HR": "Kroatisch",
"hu_HU": "Ungarisch",
"hy_AM": "Armenisch",
"id_ID": "Indonesisch",
"is_IS": "Isländisch",
"it_IT": "Italienisch",
"ja_JP": "Japanisch",
"ka_GE": "Georgisch",
"km_KH": "Khmer",
"ko_KR": "Koreanisch",
"ku_TR": "Kurdisch",
"lt_LT": "Litauisch",
"lv_LV": "Lettisch",
"mk_MK": "Mazedonisch",
"ml_IN": "Malayalam",
"ms_MY": "Malaiisch",
"nb_NO": "Norwegisch Bokmál",
"nn_NO": "Norwegisch Nynorsk",
"ne_NP": "Nepali",
"nl_NL": "Niederländisch",
"pa_IN": "Punjabi",
"pl_PL": "Polnisch",
"ps_AF": "Pashto",
"pt_BR": "Portugiesisch (BR)",
"pt_PT": "Portugiesisch (PT)",
"ro_RO": "Rumänisch",
"ru_RU": "Russisch",
"sk_SK": "Slowakisch",
"sl_SI": "Slowenisch",
"sq_AL": "Albanisch",
"sr_RS": "Serbisch",
"sv_SE": "Schwedisch",
"sw_KE": "Suaheli",
"ta_IN": "Tamil",
"te_IN": "Telugu",
"th_TH": "Thailändisch",
"tl_PH": "Tagalog",
"tr_TR": "Tükisch",
"uk_UA": "Ukrainisch",
"ur_PK": "Urdu",
"vi_VN": "Vietnamesisch",
"zh_CN": "Chinesisch vereinfacht (CN)",
"zh_HK": "Chinesisch traditionell (HK)",
"zh_TW": "Chinesisch traditionell (TW)"
},
"dateSearchRanges": {
"on": "Am",
@@ -348,6 +393,16 @@
"currentYear": "Aktuelles Jahr",
"lastYear": "Letztes Jahr"
},
"searchRanges": {
"is": "Ist",
"isEmpty": "Ist leer",
"isNotEmpty": "Ist nicht leer"
},
"varcharSearchRanges": {
"equals": "Gleich",
"startsWith": "Beginnt mit",
"contains": "Enthält"
},
"intSearchRanges": {
"equals": "Gleich",
"notEquals": "Nicht gleich",
@@ -375,104 +430,104 @@
},
"sets": {
"summernote": {
"NOTICE": "Sie finden die Übersetzung hier: https:\/\/github.com\/HackerWins\/summernote\/tree\/master\/lang",
"NOTICE": "Sie finden die Übersetzung hier: https://github.com/HackerWins/summernote/tree/master/lang",
"font":{
"bold":"Fett",
"italic":"Kursiv",
"underline":"Unterstrichen",
"strike":"Durchgestrichen",
"clear":"Font Stil entfernen",
"height":"Zeilenhöhe",
"name":"Schriftfamilie",
"size":"Schriftgröße"
"bold": "Fett",
"italic": "Kursiv",
"underline": "Unterstrichen",
"strike": "Durchgestrichen",
"clear": "Font Stil entfernen",
"height": "Zeilenhöhe",
"name": "Schriftfamilie",
"size": "Schriftgröße"
},
"image":{
"image":"Bild",
"insert":"Bild einfügen",
"resizeFull":"Originalgröße",
"resizeHalf":"Größe 1\/2",
"resizeQuarter":"Größe 1\/4",
"floatLeft":"Linksbündig",
"floatRight":"Rechtsbündig",
"floatNone":"Kein Textfluss",
"dragImageHere":"Ziehen Sie ein Bild mit der Maus hierher",
"selectFromFiles":"Wählen Sie eine Datei aus",
"url":"Grafik URL",
"remove":"Grafik entfernen"
"image": "Bild",
"insert": "Bild einfügen",
"resizeFull": "Originalgröße",
"resizeHalf": "Größe 1/2",
"resizeQuarter": "Größe 1/4",
"floatLeft": "Linksbündig",
"floatRight": "Rechtsbündig",
"floatNone": "Kein Textfluss",
"dragImageHere": "Ziehen Sie ein Bild mit der Maus hierher",
"selectFromFiles": "Wählen Sie eine Datei aus",
"url": "Grafik URL",
"remove": "Grafik entfernen"
},
"link":{
"link":"Link",
"insert":"Link einfügen",
"unlink":"Link entfernen",
"edit":"Bearbeiten",
"textToDisplay":"Anzeigetext",
"url":"Ziel des Links?",
"openInNewWindow":"In einem neuen Fenster öffnen"
"link": "Link",
"insert": "Link einfügen",
"unlink": "Link entfernen",
"edit": "Bearbeiten",
"textToDisplay": "Anzeigetext",
"url": "Ziel des Links?",
"openInNewWindow": "In einem neuen Fenster öffnen"
},
"video":{
"video":"Video",
"videoLink":"Video Link",
"insert":"Video einfügen",
"url":"Video URL?",
"providers":"(YouTube, Vimeo, Vine, Instagram oder DailyMotion)"
"video": "Video",
"videoLink": "Video Link",
"insert": "Video einfügen",
"url": "Video URL?",
"providers": "(YouTube, Vimeo, Vine, Instagram oder DailyMotion)"
},
"table":{
"table":"Tabelle"
"table": "Tabelle"
},
"hr":{
"insert":"Eine horizontale Linie einfügen"
"insert": "Eine horizontale Linie einfügen"
},
"style":{
"style":"Stil",
"normal":"Normal",
"blockquote":"Zitat",
"pre":"Quellcode",
"h1":"Überschrift 1",
"h2":"Überschrift 2",
"h3":"Überschrift 3",
"h4":"Überschrift 4",
"h5":"Überschrift 5",
"h6":"Überschrift 6"
"style": "Stil",
"normal": "Normal",
"blockquote": "Zitat",
"pre": "Quellcode",
"h1": "Überschrift 1",
"h2": "Überschrift 2",
"h3": "Überschrift 3",
"h4": "Überschrift 4",
"h5": "Überschrift 5",
"h6": "Überschrift 6"
},
"lists":{
"unordered":"Unsortierte Liste",
"ordered":"Nummerierte Liste"
"unordered": "Unsortierte Liste",
"ordered": "Nummerierte Liste"
},
"options":{
"help":"Hilfe",
"fullscreen":"Vollbild",
"codeview":"HTML-Code anzeigen"
"help": "Hilfe",
"fullscreen": "Vollbild",
"codeview": "HTML-Code anzeigen"
},
"paragraph":{
"paragraph":"Absatz",
"outdent":"Ausrückung",
"indent":"Einrückung",
"left":"Links ausrichten",
"center":"Zentriert ausrichten",
"right":"Rechts ausrichten",
"justify":"Blocksatz"
"paragraph": "Absatz",
"outdent": "Ausrückung",
"indent": "Einrückung",
"left": "Links ausrichten",
"center": "Zentriert ausrichten",
"right": "Rechts ausrichten",
"justify": "Blocksatz"
},
"color":{
"recent":"Letzte Farbe",
"more":"Mehr Farben",
"background":"Hintergrundfarbe",
"foreground":"Schriftfarbe",
"transparent":"Transparenz",
"setTransparent":"Transparenz setzen",
"reset":"Zurücksetzen",
"resetToDefault":"Zurücksetzen auf Standard"
"recent": "Letzte Farbe",
"more": "Mehr Farben",
"background": "Hintergrundfarbe",
"foreground": "Schriftfarbe",
"transparent": "Transparenz",
"setTransparent": "Transparenz setzen",
"reset": "Zurücksetzen",
"resetToDefault": "Zurücksetzen auf Standard"
},
"shortcut":{
"shortcuts":"Tastaturkürzel",
"close":"Schließen",
"textFormatting":"Textformatierung",
"action":"Aktion",
"paragraphFormatting":"Absatzformatierung",
"documentStyle":"Dokumentenstil"
"shortcuts": "Tastaturkürzel",
"close": "Schließen",
"textFormatting": "Textformatierung",
"action": "Aktion",
"paragraphFormatting": "Absatzformatierung",
"documentStyle": "Dokumentenstil"
},
"history":{
"undo":"Rückgängig",
"redo":"Wiederholen"
"undo": "Rückgängig",
"redo": "Wiederholen"
}
}
}
@@ -1,6 +1,6 @@
{
"labels": {
"Revert": "Zurückkehren",
"Revert Import": "Import rückgängig machen",
"Return to Import": "Zurück zum Import",
"Run Import": "Import durchführen",
"Back": "Zurück",
@@ -10,9 +10,21 @@
"Created": "Erstellt",
"Updated": "Aktualisiert",
"Result": "Resultat",
"Show records": "Datensätze zeigen"
"Show records": "Datensätze zeigen",
"Remove Duplicates": "Duplikate entfernen",
"importedCount": "Importiert (Anzahl)",
"duplicateCount": "Duplicate (Anzahl)",
"updatedCount": "Aktualisiert (Anzahl)"
},
"messages": {
"utf8": "Sollte UTF-8 kodiert sein"
"utf8": "Sollte UTF-8 kodiert sein",
"duplicatesRemoved": "Duplikate entfernt"
},
"fields": {
"file": "Datei",
"entityType": "Entitätstyp",
"imported": "Importierte Datensätze",
"duplicates": "Doppelte Datensätze",
"updated": "Aktualisierte Datensätze"
}
}
@@ -21,15 +21,16 @@
"targetUserPosition": "Position Zielbenutzer"
},
"tooltips": {
"reply": "Absender informieren, dass die E-Mail empfangen wurde.",
"reply": "E-Mail Absender informieren, dass die E-Mail empfangen wurde.\n\nEs wird pro Zeitabschnitt nur eine E-Mail an einen bestimmten Empfänger gesendet um Schleifen zu vermeiden.",
"createCase": "Fall aus eingehender E-Mail automatisch erstellen.",
"replyToAddress": "Geben Sie die E-Mail Adresse dieser Mailbox an um Antworten hier zu empfangen.",
"caseDistribution": "Wie Fälle zugewiesen werden. Entweder direkt dem Benutzer oder im Team.",
"assignToUser": "Benutzer E-Mails\/Fälle werden zugewiesen an",
"team": "Team E-Mails\/Fälle werden verknüpft mit",
"assignToUser": "Benutzer E-Mails/Fälle werden zugewiesen an",
"team": "Team E-Mails/Fälle werden verknüpft mit",
"targetUserPosition": "Bestimmen Sie die Position der Benutzer die Fälle zugewiesen bekommen."
},
"links": {},
"links": {
},
"options": {
"status": {
"Active": "Aktiv",
@@ -42,7 +43,7 @@
}
},
"labels": {
"Create InboundEmail": "Eingehende E-Mail erstellen",
"Create InboundEmail": "E-Mail Konto erstellen",
"IMAP": "IMAP",
"Actions": "Aktionen",
"Main": "Wichtig"
@@ -10,6 +10,6 @@
"noIntegrations": "Keine Integration verfügbar."
},
"help": {
"Google": "<p><b>Holen Sie die OAuth 2.0 Credentials über die Google Developers Console.<\/b><\/p><p>Visit <a href=\"https:\/\/console.developers.google.com\/project\">Google Developers Console<\/a> um OAuth 2.0 Credentials wie eine Client ID und Client Geheimnis zu erhalten die sowohl Google als auch EspoCRM bekannt sind.<\/p>"
"Google": "<p><b>Holen Sie die OAuth 2.0 Credentials über die Google Developers Console.</b></p><p>Visit <a href=\"https://console.developers.google.com/project\">Google Developers Console</a> um OAuth 2.0 Credentials wie eine Client ID und Client Geheimnis zu erhalten die sowohl Google als auch EspoCRM bekannt sind.</p>"
}
}
@@ -0,0 +1,14 @@
{
"fields": {
"width": "Breite (%)",
"link": "Link",
"notSortable": "Nicht sortierbar",
"align": "Ausrichten"
},
"options": {
"align": {
"left": "Links",
"right": "Rechts"
}
}
}
@@ -2,5 +2,10 @@
"fields": {
"post": "Senden",
"attachments": "Anhänge"
},
"filters": {
"all": "Alle",
"posts": "Posts",
"updates": "Aktualisierungen"
}
}
@@ -9,7 +9,6 @@
"defaultCurrency": "Standardwährung",
"currencyList": "Währungsliste",
"language": "Sprache",
"smtpServer": "Server",
"smtpPort": "Port",
"smtpAuth": "Autorisierung",
@@ -18,12 +17,15 @@
"emailAddress": "E-Mail",
"smtpPassword": "Passwort",
"smtpEmailAddress": "E-Mail Adresse",
"exportDelimiter": "Export Trennzeichen",
"receiveAssignmentEmailNotifications": "E-Mail Nachrichten bei Zuweisungen erhalten"
"receiveAssignmentEmailNotifications": "E-Mail Nachrichten bei Zuweisungen erhalten",
"autoFollowEntityTypeList": "Autom. Beobachten",
"signature": "E-Mail Signatur",
"dashboardTabList": "Reiter Liste",
"defaultReminders": "Standarderinnerungen"
},
"links": {
},
"links": {},
"options": {
"weekStart": {
"0": "Sonntag",
@@ -32,5 +34,8 @@
},
"labels": {
"Notifications": "Benachrichtigungen"
},
"tooltips": {
"autoFollowEntityTypeList": "Der Benutzer beobachtet alle neuen Einträge der gewählten Entität, sieht Neuigkeiten in den Vorgängen und erhält Benachrichtigungen."
}
}
@@ -1,12 +1,18 @@
{
"fields": {
"name": "Name",
"roles": "Rollen"
"roles": "Rollen",
"assignmentPermission": "Zuweisungsberechtigungen",
"userPermission": "Benutzerberechtigung"
},
"links": {
"users": "Benutzer",
"teams": "Teams"
},
"tooltips": {
"assignmentPermission": "Ermöglicht das Recht der Zuweisung von Datensätzen an andere Benutzer zu beschränken\n\nAlle - Keine Einschränkung\n\nTeam - Kann an Benutzer des eigenen Teams zuweisen\n\nNein - Kann nur sich selbst zuweisen",
"userPermission": "Erlaubt Benutzern die Aktivitäten anderer Benutzer zu sehen.\n\nAlle - Kann alle sehen\n\nTeam - Kann nur Aktivitäten der Benutzer im eigenen Team sehen\n\nNein - Kann keine anderen Aktivitäten sehen"
},
"labels": {
"Access": "Zugang",
"Create Role": "Rolle erstellen"
@@ -21,7 +27,8 @@
"all": "Alle",
"team": "Team",
"own": "Eigene",
"no": "Nein"
"no": "Nein",
"not-set": "nicht gesetzt"
}
},
"actions": {
@@ -10,12 +10,9 @@
"defaultCurrency": "Standardwährung",
"baseCurrency": "Basiswährung",
"currencyRates": "Wechselkurse",
"currencyList": "Währungsliste",
"language": "Sprache",
"companyLogo": "Firmenlogo",
"smtpServer": "Server",
"smtpPort": "Port",
"smtpAuth": "Autorisierung",
@@ -26,16 +23,12 @@
"outboundEmailFromName": "Von Name",
"outboundEmailFromAddress": "Von Adresse",
"outboundEmailIsShared": "Kann von allen Benutzern verwendet werden",
"recordsPerPage": "Datensätze pro Seite",
"recordsPerPageSmall": "Datensätze pro Seite (Klein)",
"tabList": "Reiter Liste",
"quickCreateList": "Liste Schnellerstellung",
"exportDelimiter": "Export Trennzeichen",
"globalSearchEntityList": "Modul-\/Entitätsliste globale Suche",
"globalSearchEntityList": "Modul-/Entitätsliste globale Suche",
"authenticationMethod": "Authentifizierungs Methode",
"ldapHost": "Host",
"ldapPort": "Port",
@@ -53,10 +46,12 @@
"ldapAccountDomainNameShort": "Domain Name Konto kurz",
"ldapOptReferrals": "Opt Referrals",
"disableExport": "Export deaktivieren (nur Admin ist berechtigt)",
"assignmentNotificationsEntityList": "Entitäten über die bei Zuweisung benachrichtigt werden soll",
"assignmentEmailNotifications": "E-Mail Nachrichten bei Zuweisungen senden",
"assignmentEmailNotificationsEntityList": "Module für Benachrichtigungen",
"assignmentEmailNotificationsEntityList": "Entitäten über die mit E-Mail bei Zuweisung benachrichtigt werden soll",
"b2cMode": "B2C Modus",
"disableAvatars": "Avatare deaktivieren"
"disableAvatars": "Avatare deaktivieren",
"followCreatedEntities": "Erstellten Einträgen beobachten"
},
"options": {
"weekStart": {
@@ -65,14 +60,17 @@
}
},
"tooltips": {
"recordsPerPageSmall": "Anzahl Sätze in Beziehungssubpanels"
"recordsPerPageSmall": "Anzahl Sätze in Beziehungssubpanels",
"outboundEmailIsShared": "Benutzern gestatten, E-Mails über dieses SMTP Konto zu senden",
"followCreatedEntities": "Wenn ein Benutzer einen Datensatz erstellt hat dann folgt er ihm automatisch"
},
"labels": {
"System": "System",
"Locale": "Lokale Einstellungen",
"SMTP": "SMTP",
"Configuration": "Konfiguration",
"Notifications": "Benachrichtigungen",
"In-app Notifications": "In-App Benachrichtigungen",
"Email Notifications": "E-Mail Benachrichtigungen",
"Currency Settings": "Währunsgseinstellungen",
"Currency Rtes": "Währungskurse"
}
@@ -0,0 +1,23 @@
{
"fields": {
"name": "Name",
"body": "Inhalt",
"entityType": "Entitätstyp",
"header": "Kopf",
"footer": "Fuß",
"leftMargin": "Linker Rand",
"topMargin": "Oberer Rand",
"rightMargin": "Rechter Rand",
"bottomMargin": "Unterer Rand",
"printFooter": "Fuß drucken",
"footerPosition": "Position Fuß"
},
"links": {
},
"labels": {
"Create Template": "Vorlage erstellen"
},
"tooltips": {
"footer": "Verwenden Sie den Platzhalter {pageNumber} um eine Seitennummer zu drucken."
}
}
@@ -10,6 +10,7 @@
"roles": "Rollen",
"teamRole": "Position",
"password": "Passwort",
"currentPassword": "Aktuelles Passwort",
"passwordConfirm": "Passwort bestätigen",
"newPassword": "Neues Passwort",
"newPasswordConfirm": "Neues Passwort bestätigen",
@@ -49,11 +50,17 @@
"passwordChangeLinkEmailBody": "Sie können Ihr Passwort über diesen Link {link} ändern Diese eindeutige URL ist nur für kurze Zeit gültig.",
"passwordChanged": "Das Passwort wurde geändert",
"userCantBeEmpty": "Der Benutzername darf nicht leer sein!",
"wrongUsernamePasword": "Falscher Benutzername\/Passwort",
"wrongUsernamePasword": "Falscher Benutzername/Passwort",
"emailAddressCantBeEmpty": "E-Mail Adresse darf nicht leer sein",
"userNameEmailAddressNotFound": "Benutzername oder E-Mail Adresse nicht gefunden",
"forbidden": "Verboten, bitte später nochmals versuchen",
"uniqueLinkHasBeenSent": "Ein einmaliger Link wurde an die angegebene E-Mail Adresse gesendet.",
"passwordChangedByRequest": "Das Passwort wurde geändert"
},
"boolFilters": {
"onlyMyTeam": "Nur mein Team"
},
"presetFilters": {
"active": "Aktiv"
}
}
@@ -116,7 +116,7 @@
"userHasNoEmailAddress": "User has not email address.",
"selectEntityType": "Select entity type in the left menu.",
"selectUpgradePackage": "Select upgrade package",
"downloadUpgradePackage": "Download needed upgrade package(s) <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">here</a>.",
"downloadUpgradePackage": "Download upgrade package(s) <a href=\"{url}\">here</a>.",
"selectLayout": "Select needed layout in the left menu and edit it.",
"selectExtensionPackage": "Select extension package",
"extensionInstalled": "Extension {name} {version} has been installed.",
@@ -96,7 +96,7 @@
"min": "Mínimo",
"max": "Máximo",
"translation": "Traducción",
"previewSize": "Tamaño de vista previa"
"previewSize": "Tamaño de vista previa"
},
"messages": {
"upgradeVersion": "Su EspoCRM será actualizado a la versión <strong>{version}</strong>. Tomará algún tiempo.",
@@ -106,7 +106,7 @@
"userHasNoEmailAddress": "El usuario no tiene dirección de correo electrónico.",
"selectEntityType": "Seleccione el tipo de entidad en el menú de la izquierda.",
"selectUpgradePackage": "Seleccione Actualizar Paquete",
"downloadUpgradePackage": "La descarga necesita paquete(s) actualizados de <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">acá</a>.",
"downloadUpgradePackage": "La descarga necesita paquete(s) actualizados de <a href=\"{url}\">acá</a>.",
"selectLayout": "Seleccione el diseño necesario en el menú de la izquierda y editarlo.",
"selectExtensionPackage": "Seleccionar extensión del paquete",
"extensionInstalled": "La Extensión {name} {version} ha sido instalada",
@@ -112,7 +112,7 @@
"userHasNoEmailAddress": "L'utilisateur n'a pas d'adresse email.",
"selectEntityType": "Sélectionner le type d'entité dans le menu de gauche.",
"selectUpgradePackage": "Sélectionner le pack de mise à jour",
"downloadUpgradePackage": "Téléchargement nécessaire des packs de mise à jour <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">ici</a>.",
"downloadUpgradePackage": "Téléchargement nécessaire des packs de mise à jour <a href=\"{url}\">ici</a>.",
"selectLayout": "Sélectionnez le modèle dans le menu de gauche et modifiez-le.",
"selectExtensionPackage": "Sélectionner un pack d'extension",
"extensionInstalled": "L'extension {name} {version} a été installé.",
@@ -106,7 +106,7 @@
"userHasNoEmailAddress": "Gebruiker heeft geen emailadres.",
"selectEntityType": "Selecteer de eenheid soort in het linker menu.",
"selectUpgradePackage": "Selecteer het upgradebestand",
"downloadUpgradePackage": "Download benodigde upgrade bestanden <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">hier</a>.",
"downloadUpgradePackage": "Download benodigde upgrade bestanden <a href=\"{url}\">hier</a>.",
"selectLayout": "Selecteer de layout in het linker menu en pas deze aan.",
"selectExtensionPackage": "Selecteer extensie bestand",
"extensionInstalled": "Extensie {name} {version} is geinstalleerd.",
@@ -111,7 +111,7 @@
"userHasNoEmailAddress": "Usuário não possui endereço de e-mail.",
"selectEntityType": "Escolha o tipo de entidade no menu a esquerda.",
"selectUpgradePackage": "Selecione o pacote de atualização",
"downloadUpgradePackage": "Download do(s) pacote(s) de atualização <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">aqui</a>.",
"downloadUpgradePackage": "Download do(s) pacote(s) de atualização <a href=\"{url}\">aqui</a>.",
"selectLayout": "Selecione o layout necessário no meu a esquerda e edite ele.",
"selectExtensionPackage": "Selecione o pacote de extensão",
"extensionInstalled": "A extensão {name} {version} foi instalada.",
@@ -107,7 +107,7 @@
"userHasNoEmailAddress": "User has not email address.",
"selectEntityType": "Выберите тип сущности в меню слева.",
"selectUpgradePackage": "Выберите пакет обновления",
"downloadUpgradePackage": "Скачать необходимые обновления <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\"> </a>.",
"downloadUpgradePackage": "Скачать необходимые обновления <a href=\"{url}\"> </a>.",
"selectLayout": "Select needed layout in the left menu and edit it.",
"selectExtensionPackage": "Выберите пакет расширения",
"extensionInstalled": "Расширение {name} {version} установлено.",
@@ -114,7 +114,7 @@
"userHasNoEmailAddress": "Користувач не має адреси електронної пошти.",
"selectEntityType": "Оберіть тип сутности у лівому меню.",
"selectUpgradePackage": "Оберіть пакет оновлення",
"downloadUpgradePackage": "Завантажити необхідні оновлення <a href=\"https://sourceforge.net/projects/espocrm/files/Upgrades/\">тут</a>.",
"downloadUpgradePackage": "Завантажити необхідні оновлення <a href=\"{url}\">тут</a>.",
"selectLayout": "Оберіть потрібний макет у лівому меню та змінюйте його.",
"selectExtensionPackage": "Оберіть пакет розширення",
"extensionInstalled": "Розширення {name} {version} установлено.",
@@ -20,6 +20,11 @@
"edit": "no",
"delete": "no"
},
"Attachment": {
"read": "own",
"edit": "own",
"delete": "own"
},
"PhoneNumber": {
"read": "no",
"edit": "no",
+29 -10
View File
@@ -298,6 +298,9 @@ class Import extends \Espo\Services\Record
continue;
}
$r = $this->importRow($scope, $fields, $arr, $params);
if (empty($r)) {
continue;
}
if (!empty($r['isImported'])) {
$result['importedIds'][] = $r['id'];
}
@@ -334,22 +337,36 @@ class Import extends \Espo\Services\Record
public function importRow($scope, array $fields, array $row, array $params = array())
{
$id = null;
$action = 'create';
if (!empty($params['action'])) {
if ($params['action'] == 'createAndUpdate' && in_array('id', $fields)) {
$i = array_search('id', $fields);
$id = $row[$i];
if (empty($id)) {
$id = null;
}
$action = $params['action'];
}
if (in_array($action, ['createAndUpdate', 'update']) && in_array('id', $fields)) {
$i = array_search('id', $fields);
$id = $row[$i];
if (empty($id)) {
$id = null;
}
}
$recordService = $this->getRecordService($scope);
$entity = $this->getEntityManager()->getEntity($scope, $id);
if (!$entity) {
if (in_array($action, ['createAndUpdate', 'update'])) {
if (!$id) {
return;
}
$entity = $this->getEntityManager()->getEntity($scope, $id);
if (!$entity) {
if ($action == 'createAndUpdate') {
$entity = $this->getEntityManager()->getEntity($scope);
$entity->set('id', $id);
} else {
return;
}
}
} else {
$entity = $this->getEntityManager()->getEntity($scope);
$entity->set('id', $id);
}
$isNew = $entity->isNew();
@@ -431,7 +448,9 @@ class Import extends \Espo\Services\Record
$isPrimary = false;
if (empty($phoneNumberData)) {
$phoneNumberData = [];
$isPrimary = true;
if (!in_array('phoneNumber', $fields)) {
$isPrimary = true;
}
}
$type = str_replace('phoneNumber', '', $field);
$type = str_replace('_', ' ', $type);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.
************************************************************************/
Espo.define('Crm:Views.TargetList.Record.Panels.OptedOut', 'Views.Record.Panels.Relationship', function (Dep) {
Espo.define('Crm:Views.TargetList.Record.Panels.OptedOut', ['Views.Record.Panels.Relationship', 'MultiCollection'], function (Dep, MultiCollection) {
return Dep.extend({
@@ -102,7 +102,7 @@ Espo.define('Crm:Views.TargetList.Record.Panels.OptedOut', 'Views.Record.Panels.
afterRender: function () {
var url = 'TargetList/' + this.model.id + '/' + this.name;
this.collection = new Espo.MultiCollection();
this.collection = new MultiCollection();
this.collection.seeds = this.seeds;
this.collection.url = url;
@@ -17,7 +17,7 @@
<div class="panel-body">
<p class="text-muted">
{{{translate 'downloadUpgradePackage' scope='Admin' category="messages"}}}
{{{downloadMsg}}}
</p>
<div>
<input type="file" name="package" accept="application/zip">
@@ -1,5 +1,4 @@
<link href="client/css/font-awesome.min.css" rel="stylesheet">
<link href="client/css/summernote.css" rel="stylesheet">
<textarea class="main-element form-control summernote" name="{{name}}" {{#if params.maxLength}} maxlength="{{params.maxLength}}"{{/if}} {{#if params.rows}} rows="{{params.rows}}"{{/if}}></textarea>
+1 -1
View File
@@ -64,7 +64,7 @@ var Espo = Espo || {classMap:{}};
var arr = name.split(':');
var namePart = arr[1];
var modulePart = arr[0];
if (modulePart == 'Custom') {
if (modulePart == 'custom') {
path = 'client/custom/src/' + namePart;
} else {
path = 'client/modules/' + modulePart + '/src/' + namePart;
@@ -30,7 +30,8 @@ Espo.define('Views.Admin.Upgrade.Index', 'View', function (Dep) {
data: function () {
return {
versionMsg: this.translate('Current version') + ': ' + this.getConfig().get('version'),
backupsMsg: this.translate('upgradeBackup', 'messages', 'Admin')
backupsMsg: this.translate('upgradeBackup', 'messages', 'Admin'),
downloadMsg: this.translate('downloadUpgradePackage', 'messages', 'Admin').replace('{url}', 'http://www.espocrm.com/download/upgrades')
};
},
+5 -1
View File
@@ -105,7 +105,11 @@ Espo.define('views/dashboard', 'view', function (Dep) {
this.dashboardLayout = defaultLayout;
}
}
var dashboardLayout = this.dashboardLayout;
var dashboardLayout = this.dashboardLayout || [];
if (dashboardLayout.length <= this.currentTab) {
this.currentTab = 0;
}
var tabLayout = dashboardLayout[this.currentTab].layout || [];
@@ -166,12 +166,13 @@ Espo.define('views/email/fields/email-address-varchar', ['views/fields/varchar',
addAddressHtml: function (address, name) {
var conteiner = this.$el.find('.link-container');
var $el = $('<div />').attr('data-address', address).addClass('list-group-item');
$el.html(((name) ? (name + ' <span class="text-muted">&#187;</span> ') : '') + '<span>' + address + '</span>');
$el.append('<a href="javascript:" class="pull-right" data-address="' + address + '" data-action="clearAddress"><span class="glyphicon glyphicon-remove"></a>');
conteiner.append($el);
var html =
'<div data-address="'+address+'" class="list-group-item">' +
'<a href="javascript:" class="pull-right" data-address="' + address + '" data-action="clearAddress"><span class="glyphicon glyphicon-remove"></a>' +
'<span>'+ ((name) ? (name + ' <span class="text-muted">&#187;</span> ') : '') + '<span>'+address+'</span>'+'</span>' +
return $el;
'</div>';
conteiner.append(html);
},
deleteAddress: function (address) {
+41 -12
View File
@@ -36,21 +36,50 @@ Espo.define('Views.Import.Detail', 'Views.Detail', function (Dep) {
setup: function () {
Dep.prototype.setup.call(this);
this.setupMenu();
this.listenTo(this.model, 'change', function () {
this.setupMenu();
if (this.isRendered()) {
this.getView('header').reRender();
}
}, this);
},
setupMenu: function () {
if (this.model.get('importedCount')) {
this.menu.buttons.unshift({
"label": "Revert Import",
"action": "revert",
"style": "danger",
"acl": "edit"
});
var i = 0;
this.menu.buttons.forEach(function (item) {
if (item.action == 'revert') {
i = 1;
}
}, this);
if (!i) {
this.menu.buttons.unshift({
"label": "Revert Import",
"action": "revert",
"style": "danger",
"acl": "edit"
});
}
}
if (this.model.get('duplicateCount')) {
this.menu.buttons.unshift({
"label": "Remove Duplicates",
"action": "removeDuplicates",
"style": "default",
"acl": "edit"
});
var i = 0;
this.menu.buttons.forEach(function (item) {
if (item.action == 'removeDuplicates') {
i = 1;
}
}, this);
if (!i) {
this.menu.buttons.unshift({
"label": "Remove Duplicates",
"action": "removeDuplicates",
"style": "default",
"acl": "edit"
});
}
}
},
+3 -2
View File
@@ -725,6 +725,7 @@ Espo.define('Views.Record.List', 'View', function (Dep) {
this.rows.push(key);
this.getInternalLayout(function (internalLayout) {
internalLayout = Espo.Utils.cloneDeep(internalLayout);
this.prepareInternalLayout(internalLayout, model);
this.createView(key, 'Base', {
@@ -760,7 +761,7 @@ Espo.define('Views.Record.List', 'View', function (Dep) {
}
this.wait(true);
this.getInternalLayout(function (internalLayout) {
//this.getInternalLayout(function (internalLayout) {
var modelList = this.collection.models;
var count = modelList.length;
var built = 0;
@@ -773,7 +774,7 @@ Espo.define('Views.Record.List', 'View', function (Dep) {
}
}.bind(this));
}, this);
}.bind(this));
//}.bind(this)
if (this.pagination) {
this.createView('pagination', 'Record.ListPagination', {
+20
View File
@@ -530,6 +530,25 @@ td.cell-buttons > .btn-group {
right: -11px;
}
.panel.note-editor {
border: 1px solid @input-border;
border-width: 1px;
}
.note-editor .note-toolbar {
border-bottom: 0 !important;
background-color: transparent;
}
.note-editor .panel-heading {
padding: 0px 5px 2px 5px;
}
.note-editor .panel-heading > .btn-group {
right: 0;
top: 0;
}
.panel {
border-width: 2px;
}
@@ -770,6 +789,7 @@ img.avatar.avatar-link {
.link-container .list-group-item {
padding: @padding-base-vertical @padding-base-horizontal;
line-height: @line-height-computed;
}
.note-editable blockquote {
+2 -1
View File
@@ -1,6 +1,7 @@
@import "bootstrap/bootstrap.less";
@import "variables.less";
@import "mixins.less";
@import "custom.less";
@import "misc.less";
@import "custom.less";
@import "bootstrap/utilities.less";
+2 -1
View File
@@ -1,2 +1,3 @@
@import "misc/selectize/selectize.less";
@import "misc/selectize/selectize.bootstrap3.less";
@import "misc/selectize/selectize.bootstrap3.less";
@import "misc/summernote/summernote.less";
@@ -0,0 +1,156 @@
/*---------------------------------------------------
LESS Elements 0.9
---------------------------------------------------
A set of useful LESS mixins
More info at: http://lesselements.com
---------------------------------------------------*/
.gradient(@color: #F5F5F5, @start: #EEE, @stop: #FFF) {
background: @color;
background: -webkit-gradient(linear,
left bottom,
left top,
color-stop(0, @start),
color-stop(1, @stop));
background: -ms-linear-gradient(bottom,
@start,
@stop);
background: -moz-linear-gradient(center bottom,
@start 0%,
@stop 100%);
background: -o-linear-gradient(@stop,
@start);
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@stop,@start));
}
.bw-gradient(@color: #F5F5F5, @start: 0, @stop: 255) {
background: @color;
background: -webkit-gradient(linear,
left bottom,
left top,
color-stop(0, rgb(@start,@start,@start)),
color-stop(1, rgb(@stop,@stop,@stop)));
background: -ms-linear-gradient(bottom,
rgb(@start,@start,@start) 0%,
rgb(@stop,@stop,@stop) 100%);
background: -moz-linear-gradient(center bottom,
rgb(@start,@start,@start) 0%,
rgb(@stop,@stop,@stop) 100%);
background: -o-linear-gradient(rgb(@stop,@stop,@stop),
rgb(@start,@start,@start));
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",rgb(@stop,@stop,@stop),rgb(@start,@start,@start)));
}
.bordered(@top-color: #EEE, @right-color: #EEE, @bottom-color: #EEE, @left-color: #EEE) {
border-top: solid 1px @top-color;
border-left: solid 1px @left-color;
border-right: solid 1px @right-color;
border-bottom: solid 1px @bottom-color;
}
.drop-shadow(@x-axis: 0, @y-axis: 1px, @blur: 2px, @alpha: 0.1) {
-webkit-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
-moz-box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
box-shadow: @x-axis @y-axis @blur rgba(0, 0, 0, @alpha);
}
.rounded(@radius: 2px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
.border-radius(@topright: 0, @bottomright: 0, @bottomleft: 0, @topleft: 0) {
-webkit-border-top-right-radius: @topright;
-webkit-border-bottom-right-radius: @bottomright;
-webkit-border-bottom-left-radius: @bottomleft;
-webkit-border-top-left-radius: @topleft;
-moz-border-radius-topright: @topright;
-moz-border-radius-bottomright: @bottomright;
-moz-border-radius-bottomleft: @bottomleft;
-moz-border-radius-topleft: @topleft;
border-top-right-radius: @topright;
border-bottom-right-radius: @bottomright;
border-bottom-left-radius: @bottomleft;
border-top-left-radius: @topleft;
.background-clip(padding-box);
}
.opacity(@opacity: 0.5) {
-webkit-opacity: @opacity;
-khtml-opacity: @opacity;
-moz-opacity: @opacity;
opacity: @opacity;
@opperc: @opacity * 100;
-ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(opacity=@{opperc})";
filter: ~"alpha(opacity=@{opperc})";
}
.transition-duration(@duration: 0.2s) {
-moz-transition-duration: @duration;
-webkit-transition-duration: @duration;
-o-transition-duration: @duration;
transition-duration: @duration;
}
.transform(...) {
-webkit-transform: @arguments;
-moz-transform: @arguments;
-o-transform: @arguments;
-ms-transform: @arguments;
transform: @arguments;
}
.rotation(@deg:5deg){
.transform(rotate(@deg));
}
.scale(@ratio:1.5){
.transform(scale(@ratio));
}
.transition(@duration:0.2s, @ease:ease-out) {
-webkit-transition: all @duration @ease;
-moz-transition: all @duration @ease;
-o-transition: all @duration @ease;
transition: all @duration @ease;
}
.inner-shadow(@horizontal:0, @vertical:1px, @blur:2px, @alpha: 0.4) {
-webkit-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
-moz-box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
box-shadow: inset @horizontal @vertical @blur rgba(0, 0, 0, @alpha);
}
.box-shadow(@arguments) {
-webkit-box-shadow: @arguments;
-moz-box-shadow: @arguments;
box-shadow: @arguments;
}
.box-sizing(@sizing: border-box) {
-ms-box-sizing: @sizing;
-moz-box-sizing: @sizing;
-webkit-box-sizing: @sizing;
box-sizing: @sizing;
}
.user-select(@argument: none) {
-webkit-user-select: @argument;
-moz-user-select: @argument;
-ms-user-select: @argument;
user-select: @argument;
}
.columns(@colwidth: 250px, @colcount: 0, @colgap: 50px, @columnRuleColor: #EEE, @columnRuleStyle: solid, @columnRuleWidth: 1px) {
-moz-column-width: @colwidth;
-moz-column-count: @colcount;
-moz-column-gap: @colgap;
-moz-column-rule-color: @columnRuleColor;
-moz-column-rule-style: @columnRuleStyle;
-moz-column-rule-width: @columnRuleWidth;
-webkit-column-width: @colwidth;
-webkit-column-count: @colcount;
-webkit-column-gap: @colgap;
-webkit-column-rule-color: @columnRuleColor;
-webkit-column-rule-style: @columnRuleStyle;
-webkit-column-rule-width: @columnRuleWidth;
column-width: @colwidth;
column-count: @colcount;
column-gap: @colgap;
column-rule-color: @columnRuleColor;
column-rule-style: @columnRuleStyle;
column-rule-width: @columnRuleWidth;
}
.translate(@x:0, @y:0) {
.transform(translate(@x, @y));
}
.background-clip(@argument: padding-box) {
-moz-background-clip: @argument;
-webkit-background-clip: @argument;
background-clip: @argument;
}
@@ -0,0 +1,461 @@
@import "elements.less";
/* Theme Variables
------------------------------------------*/
@border-color: #a9a9a9;
@background-color: #f5f5f5;
/* Frame Mode Layout
------------------------------------------*/
.note-editor {
border: 1px solid @border-color;
position: relative;
/* dropzone */
@dropzone-color: lightskyblue;
@dropzone-active-color: darken(@dropzone-color, 30);
.note-dropzone {
position: absolute;
display: none;
z-index: 100;
border: 2px dashed @dropzone-color;
color: @dropzone-color;
background-color: white;
opacity: 0.95;
pointer-event: none;
.note-dropzone-message {
display: table-cell;
vertical-align: middle;
text-align: center;
font-size: 28px;
font-weight: bold;
}
&.hover {
border: 2px dashed @dropzone-active-color;
color: @dropzone-active-color;
}
}
&.dragover .note-dropzone {
display: table;
}
.note-toolbar {
background-color: @background-color;
border-bottom: 1px solid @border-color;
}
/* fullscreen mode */
&.fullscreen {
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 1050; /* bs3 modal-backdrop: 1030, bs2: 1040 */
.note-editable {
background-color: white;
}
.note-resizebar {
display: none;
}
}
/* codeview mode */
&.codeview {
.note-editable {
display: none;
}
.note-codable {
display: block;
}
}
/* statusbar */
.note-statusbar {
background-color: @background-color;
.note-resizebar {
height: 8px;
width: 100%;
border-top: 1px solid @border-color;
cursor: ns-resize;
.note-icon-bar {
width: 20px;
margin: 1px auto;
border-top: 1px solid @border-color;
}
}
}
/* editable */
.note-editable[contenteditable=true]:empty:not(:focus):before {
content:attr(data-placeholder);
color: #a9a9a9;
}
.note-editable {
padding: 10px;
overflow: auto;
outline: none;
}
.note-editable[contenteditable="false"] {
background-color: #e5e5e5;
}
/* codeable */
.note-codable {
display: none;
width: 100%;
padding: 10px;
border: none;
box-shadow: none;
font-family: Menlo, Monaco, monospace, sans-serif;
font-size: 14px;
color: #ccc;
background-color: #222;
resize: none;
/* override BS2 default style */
.box-sizing(border-box);
.rounded(0);
margin-bottom: 0;
}
}
/* Air Mode Layout
------------------------------------------*/
.note-air-editor {
outline: none;
}
/* Popover
------------------------------------------*/
.note-popover .popover {
max-width: none;
.popover-content {
a {
display: inline-block;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; /* for FF */
vertical-align: middle; /* for FF */
}
}
& .arrow {
left: 20px;
}
}
/* Popover and Toolbar (Button container)
------------------------------------------*/
.note-popover .popover .popover-content, .note-toolbar {
margin: 0;
padding: 0 0 5px 5px;
&>.btn-group {
margin-top: 5px;
margin-left: 0;
margin-right: 5px;
}
.btn-group {
.note-table {
min-width: 0;
padding: 5px;
.note-dimension-picker {
font-size: 18px;
.note-dimension-picker-mousecatcher {
position: absolute !important;
z-index: 3;
width: 10em;
height: 10em;
cursor: pointer;
}
.note-dimension-picker-unhighlighted {
position: relative !important;
z-index: 1;
width: 5em;
height: 5em;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;
}
.note-dimension-picker-highlighted {
position: absolute !important;
z-index: 2;
width: 1em;
height: 1em;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat;
}
}
}
}
.note-style {
h1, h2, h3, h4, h5, h6, blockquote {
margin: 0;
}
}
.note-color {
.dropdown-toggle {
width: 20px;
padding-left: 5px;
}
.dropdown-menu {
min-width: 340px;
.btn-group {
margin: 0;
&:first-child {
margin: 0 5px;
}
.note-palette-title {
font-size: 12px;
margin: 2px 7px;
text-align: center;
border-bottom: 1px solid #eee;
}
.note-color-reset {
font-size: 11px;
margin: 3px;
padding: 0 3px;
cursor: pointer;
.rounded(5px);
}
.note-color-row {
height: 20px;
}
.note-color-reset:hover {
background: #eee;
}
}
}
}
.note-para {
.dropdown-menu {
min-width: 216px;
padding: 5px;
&>div:first-child {
margin-right: 5px;
}
}
}
/* dropdown-menu for toolbar and popover */
.dropdown-menu {
min-width: 90px;
/* dropdown-menu right position */
/* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */
&.right {
right: 0;
left: auto;
&::before { right: 9px; left: auto !important; }
&::after { right: 10px; left: auto !important; }
}
/* dropdown-menu for selectbox */
&.note-check {
li a i {
color: deepskyblue;
visibility: hidden;
}
li a.checked i {
visibility: visible;
}
}
}
.note-fontsize-10 {
font-size: 10px;
}
/* color palette for toolbar and popover */
.note-color-palette {
line-height: 1;
div {
.note-color-btn {
width: 20px;
height: 20px;
padding: 0;
margin: 0;
border: 1px solid #fff;
}
.note-color-btn:hover {
border: 1px solid #000;
}
}
}
}
/* Dialog
------------------------------------------*/
.note-dialog {
&>div {
display: none; /* BS2's hide pacth. */
}
.form-group { /* overwrite BS's form-horizontal minus margins */
margin-left: 0;
margin-right: 0;
}
.note-modal-form {
margin: 0; /* overwrite BS2's form margin bottom */
}
.note-image-dialog {
.note-dropzone {
min-height: 100px;
font-size: 30px;
line-height: 4; /* vertical-align */
color: lightgray;
text-align: center;
border: 4px dashed lightgray;
margin-bottom: 10px;
}
}
.note-help-dialog {
@note-shortcut-hl: #dd0;
font-size: 12px;
color: #ccc;
background-color: #222 !important;
.opacity(0.9);
.modal-content {
background: transparent;
border: 1px solid white;
.box-shadow(none);
.rounded(5px);
}
/* BS2's background pacth. */
background: transparent;
border: none;
a {
font-size: 12px;
color: white;
}
.title {
color: white;
font-size: 14px;
font-weight: bold;
padding-bottom: 5px;
margin-bottom: 10px;
border-bottom: white 1px solid;
}
.modal-close {
font-size: 14px;
color: @note-shortcut-hl;
cursor: pointer;
}
.text-center {
margin: 10px 0 0;
}
.note-shortcut {
padding-top: 8px;
padding-bottom: 8px;
&-row {
margin-right: -5px;
margin-left: -5px;
}
&-col {
padding-right: 5px;
padding-left: 5px;
}
&-title {
font-size: 13px;
font-weight: bold;
color: @note-shortcut-hl;
}
&-key {
font-family: "Courier New";
color: @note-shortcut-hl;
text-align: right;
}
}
}
}
/* Handle
------------------------------------------*/
.note-handle {
/* control selection */
.note-control-selection {
position: absolute;
display: none;
border: 1px solid black;
&>div { position: absolute; }
.note-control-selection-bg {
width: 100%;
height: 100%;
background-color: black;
.opacity(0.30)
}
.note-control-handle {
width: 7px;
height: 7px;
border: 1px solid black;
}
.note-control-holder {
.note-control-handle;
}
.note-control-sizing {
.note-control-handle;
background-color: white;
}
.note-control-nw {
top: -5px;
left: -5px;
border-right: none;
border-bottom: none;
}
.note-control-ne {
top: -5px;
right: -5px;
border-bottom: none;
border-left: none;
}
.note-control-sw {
bottom: -5px;
left: -5px;
border-top: none;
border-right: none;
}
.note-control-se {
right: -5px;
bottom: -5px;
cursor: se-resize;
}
.note-control-selection-info {
right: 0;
bottom: 0;
padding: 5px;
margin: 5px;
color: white;
background-color: black;
font-size: 12px;
.rounded(5px);
.opacity(0.7);
}
}
}
+1 -1
View File
@@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="description" content="EspoCRM is Open Source CRM application. Increase profitability through customer loyalty!">
<script type="text/javascript" src="client/lib/jquery-2.0.2.min.js"></script>
<script type="text/javascript" src="client/lib/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="client/lib/underscore-min.js"></script>
<script type="text/javascript" src="client/lib/backbone-min.js"></script>
<script type="text/javascript" src="client/lib/handlebars.js"></script>
+11 -11
View File
@@ -1,7 +1,7 @@
{
"labels": {
"Main page title": "Willkommen bei EspoCRM",
"Main page header": "",
"Main page header": "Project-Id-Version: 3.50\nPOT-Creation-Date: 2015-07-22\nPO-Revision-Date: \nLast-Translator: iscon\nLanguage-Team: iscon group <info@iscongroup.net>\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nLanguage: de_DE\n",
"Start page title": "Lizenz Vereinbarung",
"Step1 page title": "Lizenz Vereinbarung",
"License Agreement": "Lizenz Vereinbarung",
@@ -14,7 +14,7 @@
"Finish page title": "Die Installation ist abgeschlossen",
"Congratulation! Welcome to EspoCRM": "Gratulation! EspoCRM wurde erfolgreich installiert.",
"More Information": "Für mehr Informationen besuchen Sie bitte unseren {BLOG} und/oder folgen Sie und auf {TWITTER}.<br><br>Für Fragen oder Verbesserungsvorschläge besuchen Sie das {FORUM}.",
"share": "Wenn Ihnen EspoCRM gefällt dann teilen Sie! Erzählen Sie allen wie toll und hilfreich Sie das Produkt finden.",
"share": "Wenn Sie EspoCRM gut finden dann erzählen Sie anderen Leuten wie toll Sie das Produkt finden.",
"blog": "Blog",
"twitter": "Twitter",
"forum": "Forum",
@@ -77,11 +77,11 @@
"smtpPassword": "Passwort"
},
"messages": {
"Bad init Permission": "Zugriff für Verzeichnis \"{*}\" verweigert. Bitte setzen Sie 775 für \"{*}\" oder führen Sie dieses Kommando in einem Terminal Fenster aus <pre><b>{C}<\/b><\/pre> Operation nicht erlaubt? Versuchen Sie das: {CSU}",
"Bad init Permission": "Zugriff für Verzeichnis \"{*}\" verweigert. Bitte setzen Sie 775 für \"{*}\" oder führen Sie dieses Kommando in einem Terminal Fenster aus <pre><b>{C}</b></pre> Operation nicht erlaubt? Versuchen Sie das: {CSU}",
"Some errors occurred!": "Es sind Fehler passiert!",
"phpVersion": "Ihre PHP Version wird von EspoCRM nicht unterstützt. Bitte aktualisieren Sie zumindest auf {minVersion}",
"MySQLVersion": "Ihre MySQL Version wird von EspoCRM nicht unterstützt. Bitte aktualisieren Sie zumindest auf MySQL {minVersion}",
"The PHP extension was not found...": "PHP Fehler: Erweiterung <b>{extName}<\/b> wurde nicht gefunden...",
"The PHP extension was not found...": "PHP Fehler: Erweiterung <b>{extName}</b> wurde nicht gefunden...",
"All Settings correct": "Alle Einstellungen sind korrekt",
"Failed to connect to database": "Konnte nicht zur Datenbank verbinden",
"PHP version": "PHP Version",
@@ -96,8 +96,8 @@
"Ajax failed": "Ajax fehlgeschlagen",
"Cannot create user": "Kann einen Benutzer nicht erstellen",
"Permission denied": "Zugriff verweigert",
"permissionInstruction": "<br>Führen Sie das in einem Terminal Fenster aus<pre><b>\"{C}\"<\/b><\/pre>",
"operationNotPermitted": "Operation nicht gestattet? Versuchen Sie das: <br>{CSU}",
"permissionInstruction": "<br>Führen Sie das in einem Terminal Fenster aus<pre><b>\"{C}\"</b></pre>",
"operationNotPermitted" : "Operation nicht gestattet? Versuchen Sie das: <br>{CSU}",
"Permission denied to": "Zugriff verweigert",
"Can not save settings": "Kann Einstellungen nicht speichern",
"Cannot save preferences": "Kann Benutzereinstellungen nicht speichern",
@@ -116,16 +116,16 @@
},
"modRewriteInstruction": {
"apache": {
"linux": "<br><br>Um die RewriteBase Pfad hinzufügen, öffnen Sie eine Datei {API_PATH}.htaccess und ändern Sie die folgende Zeile:<pre># RewriteBase \/<\/pre>To<pre>RewriteBase {ESPO_PATH}{API_PATH}<\/pre><br>Für die .htaccess Unterstützung ändern\/ergänzen Sie die Server Einstellungen innerhalb der &#60;VirtualHost&#62; Sektion (httpd.conf):<pre>&#60;Directory \/PATH_TO_ESPO\/&#62; <b>AllowOverride All<\/b> &#60;\/Directory&#62;<\/pre>Dann führen Sie dieses Kommando in einem Terminalfenster aus:<pre><b>service apache2 restart<\/b><\/pre><br>Um \"mod_rewrite\" zu aktivieren führen Sie diese Kommandos in einem Terminalfenster aus:<pre><b>a2enmod rewrite <br>service apache2 restart<\/b><\/pre>",
"windows": "<br> <pre>1. Finden Sie die httpd.conf Datei (normalerweise in einem Verzeichnis conf, config oder ähnlich)<br> 2. Innerhalb der httpd.conf Datei aktivieren Sie die Zeile LoadModule rewrite_module modules\/mod_rewrite.so (entfernen Sie das # Zeichen vom Anfang der Zeile)<br> 3. Stellen Sie sicher, dass die Zeile ClearModuleList nicht auskommentiert ist, genauso wie die Zeile AddModule mod_rewrite.c. <\/pre>"
"linux": "<br><br>1.Aktivieren Sie \"mod_rewrite\". Führen Sie dazu die folgenden Kommandos in einem Terminalfenster aus:<pre><b>a2enmod rewrite <br>service apache2 restart</b></pre><br>2. .htaccess Unterstützung aktivieren. Bearbeiten Sie die Servereinstellungen (apache2.conf, httpd.conf):<pre>&#60;Directory /PFAD_ZU_ESPO/&#62;\n <b>AllowOverride All</b>\n&#60;/Directory&#62;</pre>\n Anschließend führen Sie dieses Kommando in einem Terminalfenster aus:<pre><b>service apache2 restart</b></pre><br>3. Um den RewriteBase Pfad hinzuzufügen, öffnen Sie die Datei {API_PATH}.htaccess und ersetzen Sie die folgende Zeile:<pre># RewriteBase /</pre>zu<pre>RewriteBase {ESPO_PATH}{API_PATH}</pre>",
"windows": "<br> <pre>1. Finden Sie die httpd.conf Datei (normalerweise in einem Verzeichnis conf, config oder ähnlich)<br> 2. Innerhalb der httpd.conf Datei aktivieren Sie die Zeile LoadModule rewrite_module modules/mod_rewrite.so (entfernen Sie das # Zeichen vom Anfang der Zeile)<br> 3. Stellen Sie sicher, dass die Zeile ClearModuleList nicht auskommentiert ist, genauso wie die Zeile AddModule mod_rewrite.c. </pre>"
},
"microsoft-iis": {
"windows": ""
"windows": "Project-Id-Version: 3.50\nPOT-Creation-Date: 2015-07-22\nPO-Revision-Date: \nLast-Translator: iscon\nLanguage-Team: iscon group <info@iscongroup.net>\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nLanguage: de_DE\n"
}
},
"modRewriteHelp": {
"apache": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: RewriteBase erforderlich, deaktiviertes \"mod_rewrite\" des Apache Servers oder des .htaccess Supports.",
"nginx": "API Fehler: EspoCRM API nicht verfügbar.<br>Fügen Sie diesen Code zu Nginx Host Config (innerhalb des \"server\" Blocks) hinzu:<br> <pre> {0} <\/pre>",
"apache": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliche Probleme: deaktiviertes \"mod_rewrite\" des Apache Servers, nicht aktivierte .htaccess Unterstützung oder ein RewriteBase Fehler.<br>Führen Sie nur die notwendigen Schritte durch. Nach jedem Schritt prüfen Sie bitte, ob das Problem gelöst ist.",
"nginx": "API Fehler: EspoCRM API nicht verfügbar.<br>Fügen Sie diesen Code zu Nginx Host Config (innerhalb des \"server\" Blocks) hinzu:<br> <pre> {0} </pre>",
"microsoft-iis": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: deaktiviertes \"URL Rewrite\". Bitte überprüfen und aktivieren Sie das \"URL Rewrite\" Modul im IIS Server.",
"default": "API Fehler: EspoCRM API nicht verfügbar<br>Mögliches Problem: deaktiviertes Rewrite Modul. Bitte überprüfen und aktivieren Sie das Rewrite Modul (z.B. mod_rewrite im Apache Server) und die .htaccess Unterstützung."
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "espocrm",
"version": "3.5.0",
"version": "3.5.2",
"description": "",
"main": "index.php",
"repository": {
+36
View File
@@ -90,6 +90,42 @@ class UtilTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($result, Util::toUnderScore($input));
}
public function testMerge2()
{
$d1 = array(
'hello' => 'world',
'man' => array(
'test' => [
0 => ['name' => 'test 1'],
1 => ['name' => 'test 2']
]
)
);
$d2 = array(
'test' => []
);
$d3 = array(
'man' => array(
'test' => [
0 => '__APPEND__',
1 => ['name' => 'test 3']
]
)
);
$expected = array(
'hello' => 'world',
'man' => array(
'test' => [
0 => ['name' => 'test 1'],
1 => ['name' => 'test 2'],
2 => ['name' => 'test 3']
]
)
);
$result = Util::merge($d3, Util::merge($d2, $d1));
$this->assertEquals($expected, $result);
}
public function testMerge()
{
$array1= array(