mirror of
https://github.com/espocrm/espocrm.git
synced 2026-03-09 22:37:02 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
725a2be959 | ||
|
|
08b576105c | ||
|
|
0e19fe087b | ||
|
|
44ddf9b400 | ||
|
|
9509d00fd4 | ||
|
|
70eb562400 | ||
|
|
6f89a01c50 | ||
|
|
2d85106a1f | ||
|
|
a9cad90a02 | ||
|
|
597d83c6f7 | ||
|
|
cbc3c3e921 | ||
|
|
cdcaf7cd24 | ||
|
|
ce782ab8bd |
@@ -166,7 +166,7 @@ class AclManager
|
||||
return true;
|
||||
}
|
||||
$data = $this->getTable($user)->getScopeData($entity->getEntityType());
|
||||
return $this->getImplementation($scope)->checkEntity($user, $entity, $data, $action);
|
||||
return $this->getImplementation($entity->getEntityType())->checkEntity($user, $entity, $data, $action);
|
||||
}
|
||||
|
||||
public function checkScope(User $user, $scope, $action = null, $isOwner = null, $inTeam = null, $entity = null)
|
||||
|
||||
@@ -44,15 +44,18 @@
|
||||
"Computer": "Informationstechnologie",
|
||||
"Education": "Bildungswesen",
|
||||
"Electronics": "Elektronik",
|
||||
"Energy": "Energieerzeuger",
|
||||
"Entertainment & Leisure": "Freizeit- und Unterhaltungsindustrie",
|
||||
"Finance": "Finanzsektor",
|
||||
"Food & Beverage": "Speisen und Getränke",
|
||||
"Grocery": "Einzelhandel",
|
||||
"Healthcare": "Gesundheitswesen",
|
||||
"Insurance": "Versicherung",
|
||||
"Legal": "Rechtswesen",
|
||||
"Manufacturing": "Produktion",
|
||||
"Publishing": "Medien",
|
||||
"Real Estate": "Immobilien",
|
||||
"Service": "Dienstleistung",
|
||||
"Service": "Service",
|
||||
"Sports": "Sport",
|
||||
"Software": "Software",
|
||||
"Technology": "Technologie",
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
"softBouncedCount": "Soft Bounced",
|
||||
"leadCreatedCount": "Erstellte Interessenten",
|
||||
"revenue": "Umsatz",
|
||||
"revenueConverted": "Umsatz (konvertiert)"
|
||||
"revenueConverted": "Umsatz (konvertiert)",
|
||||
"budget": "Budget"
|
||||
},
|
||||
"links": {
|
||||
"targetLists": "Kontaktlisten",
|
||||
|
||||
@@ -5,11 +5,21 @@
|
||||
"status": "Status",
|
||||
"account": "Firma",
|
||||
"contact": "Kontakt",
|
||||
"contacts": "Kontakte",
|
||||
"priority": "Priorität",
|
||||
"type": "Typ",
|
||||
"description": "Beschreibung"
|
||||
"description": "Beschreibung",
|
||||
"inboundEmail": "Eingehende E-Mails"
|
||||
},
|
||||
"links": {
|
||||
"inboundEmail": "Eingehende E-Mails",
|
||||
"account": "Firma",
|
||||
"contact": "Kontakt (Primär)",
|
||||
"Contacts": "Kontakte",
|
||||
"meetings": "Meetings",
|
||||
"calls": "Anrufe",
|
||||
"tasks": "Aufgaben",
|
||||
"emails": "E-Mails"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
|
||||
@@ -21,7 +21,10 @@
|
||||
"cases": "Fälle",
|
||||
"targetLists": "Kontaktlisten",
|
||||
"campaignLogRecords": "Kampagnen Log",
|
||||
"campaign": "Kampagne"
|
||||
"campaign": "Kampagne",
|
||||
"account": "Firma (Primär)",
|
||||
"accounts": "Firmen",
|
||||
"casesPrimary": "Fälle (Primär)"
|
||||
},
|
||||
"labels": {
|
||||
"Create Contact": "Kontakt erstellen"
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
"Log Call": "Anruf erfassen",
|
||||
"Archive Email": "E-Mail archivieren",
|
||||
"Create Task": "Neue Aufgabe",
|
||||
"Tasks": "Aufgaben"
|
||||
"Tasks": "Aufgaben"
|
||||
},
|
||||
"fields": {
|
||||
"billingAddressCity": "Ort",
|
||||
@@ -68,7 +68,7 @@
|
||||
"addressStreet": "Straße",
|
||||
"addressCountry": "Land",
|
||||
"addressState": "Bundesland/Kanton",
|
||||
"addressPostalCode": "PLZ",
|
||||
"addressPostalCode": "PLZ",
|
||||
"shippingAddressCity": "Ort (Lieferadresse)",
|
||||
"shippingAddressStreet": "Straße (Lieferadresse)",
|
||||
"shippingAddressCountry": "Land (Lieferadresse)",
|
||||
@@ -78,7 +78,7 @@
|
||||
"links": {
|
||||
"contacts": "Kontakte",
|
||||
"opportunities": "Verkaufschancen",
|
||||
"leads": "Interessenten",
|
||||
"leads": "Interessenten",
|
||||
"meetings": "Meetings",
|
||||
"calls": "Anrufe",
|
||||
"tasks": "Aufgaben",
|
||||
@@ -87,7 +87,7 @@
|
||||
"cases": "Fälle",
|
||||
"documents": "Dokumente",
|
||||
"account": "Firma",
|
||||
"opportunity": "Verkaufschance",
|
||||
"opportunity": "Verkaufschance",
|
||||
"contact": "Kontakt",
|
||||
"parent": "Bezieht sich auf"
|
||||
},
|
||||
|
||||
@@ -28,7 +28,10 @@
|
||||
"links": {
|
||||
"targetLists": "Kontaktlisten",
|
||||
"campaignLogRecords": "Kampagnen Log",
|
||||
"campaign": "Kampagne"
|
||||
"campaign": "Kampagne",
|
||||
"createdAccount": "Firma",
|
||||
"createdContact": "Kontakt",
|
||||
"createdOpportunity": "Verkaufschance"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"Set Not Held": "Auf nicht gehalten setzen",
|
||||
"Send Invitations": "Einladungen versenden",
|
||||
"on time": "Aktuelle Zeit",
|
||||
"before": "bevor"
|
||||
"before": "Bevor"
|
||||
},
|
||||
"presetFilters": {
|
||||
"planned": "Geplant",
|
||||
|
||||
@@ -231,6 +231,11 @@
|
||||
"foreign": "leads"
|
||||
}
|
||||
},
|
||||
"convertEntityList": [
|
||||
"Account",
|
||||
"Contact",
|
||||
"Opportunity"
|
||||
],
|
||||
"convertFields": {
|
||||
"Contact": {
|
||||
},
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"Data": "Daten",
|
||||
"Customization": "Anpassung",
|
||||
"Available Fields": "Verfügbare Felder",
|
||||
"Layout": "Layout",
|
||||
"Layout": "Aktuelles Layout",
|
||||
"Entity Manager": "Entitäts-/Modulmanager",
|
||||
"Add Panel": "Panel hinzufügen",
|
||||
"Add Field": "Feld hinzufügen",
|
||||
@@ -20,7 +20,7 @@
|
||||
"Teams": "Teams",
|
||||
"Roles": "Rollen",
|
||||
"Outbound Emails": "Ausgehende E-Mails",
|
||||
"Inbound Emails": "Eingehende E-Mails",
|
||||
"Inbound Emails": "Gruppen E-Mail Konten",
|
||||
"Email Templates": "E-Mail Vorlagen",
|
||||
"Import": "Import",
|
||||
"Layout Manager": "Layouts anpassen",
|
||||
@@ -45,7 +45,9 @@
|
||||
"Edit Entity": "Entität/Modul bearbeiten",
|
||||
"Create Link": "Relation erstellen",
|
||||
"Edit Link": "Relation bearbeiten",
|
||||
"Notifications": "Benachrichtigungen"
|
||||
"Notifications": "Benachrichtigungen",
|
||||
"Jobs": "Jobs",
|
||||
"Reset to Default": "Zurücksetzen auf Standard"
|
||||
},
|
||||
"layouts": {
|
||||
"list": "Liste",
|
||||
@@ -85,7 +87,8 @@
|
||||
"varchar": "Text (max. 255)",
|
||||
"file": "Datei",
|
||||
"image": "Bild",
|
||||
"multiEnum": "Mehrfachauswahl"
|
||||
"multiEnum": "Mehrfachauswahl",
|
||||
"attachmentMultiple": "Mehrfach Anhänge"
|
||||
},
|
||||
"fields": {
|
||||
"type": "Typ",
|
||||
@@ -106,17 +109,19 @@
|
||||
"noEmptyString": "Keine leere Zeichenkette",
|
||||
"defaultType": "Standardtyp",
|
||||
"seeMoreDisabled": "Abschneiden des Texts verhindern",
|
||||
"entityList": "Entity List"
|
||||
"entityList": "Entitätsliste",
|
||||
"isSorted": "Sortiert (alphabetisch)",
|
||||
"audited": "Auditiert"
|
||||
},
|
||||
"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.",
|
||||
"upgradeBackup": "Wir empfehlen, vor der Aktualisierung von EspoCRM das Programmverzeichnis sowie die Datenbank zu sichern.",
|
||||
"upgradeBackup": "Wie empfehlen VOR einer Aktualisierung die Espo Dateien 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",
|
||||
"selectUpgradePackage": "Aktualisierungspaket auswählen",
|
||||
"downloadUpgradePackage": "Download upgrade package(s) <a href=\"{url}\">here</a>.",
|
||||
"downloadUpgradePackage": "Aktualisierungspaket(e) <a href=\"{url}\">hier </a>herunterladen.",
|
||||
"selectLayout": "Layout zum Editieren links auswählen",
|
||||
"selectExtensionPackage": "Erweiterungspaket auswählen",
|
||||
"extensionInstalled": "Erweiterung {name} {version} wurde installiert.",
|
||||
|
||||
@@ -38,7 +38,8 @@
|
||||
"Forward": "Weiterleiten",
|
||||
"Original message": "Originalnachricht",
|
||||
"Forwarded message": "Weitergeleitete Nachricht:",
|
||||
"Email Accounts": "E-Mail Konten",
|
||||
"Email Accounts": "Persönliche E-Mail Konten",
|
||||
"Inbound Emails": "Gruppen E-Mail Konten",
|
||||
"Email Templates": "E-Mail Vorlagen",
|
||||
"Send Test Email": "Test E-Mail senden",
|
||||
"Send": "Senden",
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
"fetchSince": "Holen seit",
|
||||
"emailAddress": "E-Mail Adresse",
|
||||
"sentFolder": "Gesendet Ordner",
|
||||
"storeSentEmails": "Gesendete E-Mails speichern"
|
||||
"storeSentEmails": "Gesendete E-Mails speichern",
|
||||
"keepFetchedEmailsUnread": "Geholte E-Mails als ungelesen behalten"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"body": "Inhalt",
|
||||
"subject": "Betreff",
|
||||
"attachments": "Anhänge",
|
||||
"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"
|
||||
"insertField": "Project-Id-Version: \nPOT-Creation-Date: \nPO-Revision-Date: \nLast-Translator: \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\nX-Generator: Poedit 1.8.4\n"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
|
||||
@@ -5,17 +5,18 @@
|
||||
"Team": "Team",
|
||||
"Role": "Rolle",
|
||||
"EmailTemplate": "E-Mail Vorlage",
|
||||
"EmailAccount": "E-Mail Konto",
|
||||
"EmailAccountScope": "E-Mail Konto",
|
||||
"EmailAccount": "Persönliches E-Mail Konto",
|
||||
"EmailAccountScope": "Persönliches E-Mail Konto",
|
||||
"OutboundEmail": "Ausgehende E-Mail",
|
||||
"ScheduledJob": "Geplante Aufgabe",
|
||||
"ExternalAccount": "Externes Konto",
|
||||
"Extension": "Erweiterung",
|
||||
"Dashboard": "Übersicht",
|
||||
"InboundEmail": "Eingehende E-Mail",
|
||||
"InboundEmail": "Gruppen E-Mail Konto",
|
||||
"Stream": "Vorgänge",
|
||||
"Import": "Import",
|
||||
"Template": "Vorlage"
|
||||
"Template": "Vorlage",
|
||||
"Job": "Job"
|
||||
},
|
||||
"scopeNamesPlural": {
|
||||
"Email": "E-Mails",
|
||||
@@ -23,17 +24,18 @@
|
||||
"Team": "Teams",
|
||||
"Role": "Rollen",
|
||||
"EmailTemplate": "E-Mail Vorlagen",
|
||||
"EmailAccount": "E-Mail Konten",
|
||||
"EmailAccountScope": "E-Mail Konten",
|
||||
"EmailAccount": "Persönliche E-Mail Konten",
|
||||
"EmailAccountScope": "Persönliche E-Mail Konten",
|
||||
"OutboundEmail": "Ausgehende E-Mails",
|
||||
"ScheduledJob": "Geplante Jobs",
|
||||
"ExternalAccount": "Externe Konten",
|
||||
"Extension": "Erweiterungen",
|
||||
"Dashboard": "Übersicht",
|
||||
"InboundEmail": "Eingehende E-Mails",
|
||||
"InboundEmail": "Gruppen E-Mail Konten",
|
||||
"Stream": "Vorgänge",
|
||||
"Import": "Importergebnis",
|
||||
"Template": "Vorlagen"
|
||||
"Template": "Vorlagen",
|
||||
"Job": "Jobs"
|
||||
},
|
||||
"labels": {
|
||||
"Misc": "Verschiedenes",
|
||||
@@ -160,7 +162,8 @@
|
||||
"Tree View": "Baumansicht",
|
||||
"Unlink All": "Alle Links entfernen",
|
||||
"Total": "Gesamt",
|
||||
"Print to PDF": "Als PDF drucken"
|
||||
"Print to PDF": "Als PDF drucken",
|
||||
"Default": "Standard"
|
||||
},
|
||||
"messages": {
|
||||
"pleaseWait": "Bitte warten...",
|
||||
@@ -251,7 +254,8 @@
|
||||
},
|
||||
"notificationMessages": {
|
||||
"assign": "{entityType} {entity} wurde Ihnen zugewiesen",
|
||||
"emailReceived": "E-Mail empfangen von {from}"
|
||||
"emailReceived": "E-Mail empfangen von {from}",
|
||||
"entityRemoved": "{user} hat {entityType} {entity} entfernt"
|
||||
},
|
||||
"streamMessages": {
|
||||
"create": "{user} hat {entityType} {entity} erstellt",
|
||||
@@ -391,7 +395,8 @@
|
||||
"currentQuarter": "Aktuelles Quartal",
|
||||
"lastQuarter": "Letztes Quartal",
|
||||
"currentYear": "Aktuelles Jahr",
|
||||
"lastYear": "Letztes Jahr"
|
||||
"lastYear": "Letztes Jahr",
|
||||
"lastSevenDays": "Letzten 7 Tage"
|
||||
},
|
||||
"searchRanges": {
|
||||
"is": "Ist",
|
||||
@@ -480,7 +485,7 @@
|
||||
"style":{
|
||||
"style": "Stil",
|
||||
"normal": "Normal",
|
||||
"blockquote": "Zitat",
|
||||
"blockquote": "Angebot",
|
||||
"pre": "Quellcode",
|
||||
"h1": "Überschrift 1",
|
||||
"h2": "Überschrift 2",
|
||||
@@ -530,5 +535,11 @@
|
||||
"redo": "Wiederholen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"themes": {
|
||||
"Espo": "Espo",
|
||||
"Sakura": "Sakura",
|
||||
"EspoVertical": "Espo (Vertikal)",
|
||||
"SakuraVertical": "Sakura (Vertical)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"fields": {
|
||||
"name": "Name",
|
||||
"emailAddress": "E-Mail Adresse",
|
||||
"team": "Team",
|
||||
"status": "Status",
|
||||
"assignToUser": "Mit Benutzer verknüpfen",
|
||||
|
||||
20
application/Espo/Resources/i18n/de_DE/Job.json
Normal file
20
application/Espo/Resources/i18n/de_DE/Job.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"fields": {
|
||||
"status": "Status",
|
||||
"executeTime": "Ausführen um",
|
||||
"attempts": "Verbleibende Versuche",
|
||||
"failedAttempts": "Fehlgeschlagene Versuche",
|
||||
"serviceName": "Service",
|
||||
"method": "Methode",
|
||||
"scheduledJob": "Geplante Aufgabe",
|
||||
"data": "Daten"
|
||||
},
|
||||
"options": {
|
||||
"status": {
|
||||
"Pending": "Schwebend",
|
||||
"Success": "Erfolg",
|
||||
"Running": "Läuft",
|
||||
"Failed": "Fehlgeschlagen"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,8 @@
|
||||
"autoFollowEntityTypeList": "Autom. Beobachten",
|
||||
"signature": "E-Mail Signatur",
|
||||
"dashboardTabList": "Reiter Liste",
|
||||
"defaultReminders": "Standarderinnerungen"
|
||||
"defaultReminders": "Standarderinnerungen",
|
||||
"theme": "Design"
|
||||
},
|
||||
"links": {
|
||||
},
|
||||
|
||||
@@ -51,7 +51,10 @@
|
||||
"assignmentEmailNotificationsEntityList": "Entitäten über die mit E-Mail bei Zuweisung benachrichtigt werden soll",
|
||||
"b2cMode": "B2C Modus",
|
||||
"avatarsDisabled": "Avatare deaktivieren",
|
||||
"followCreatedEntities": "Erstellten Einträgen beobachten"
|
||||
"followCreatedEntities": "Erstellten Einträgen beobachten",
|
||||
"displayListViewRecordCount": "Gesamtanzahl anzeigen (in Listenansicht)",
|
||||
"theme": "Design",
|
||||
"userThemesDisabled": "Benutzerdesigns deaktivieren"
|
||||
},
|
||||
"options": {
|
||||
"weekStart": {
|
||||
@@ -62,7 +65,7 @@
|
||||
"tooltips": {
|
||||
"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"
|
||||
"followCreatedEntities": "Benutzer folgen automatisch jenen Sätzen die sie erstellt haben"
|
||||
},
|
||||
"labels": {
|
||||
"System": "System",
|
||||
|
||||
@@ -169,7 +169,7 @@ class Stream extends \Espo\Core\Services\Base
|
||||
public function followEntityMass(Entity $entity, array $sourceUserIdList)
|
||||
{
|
||||
if (!$this->getMetadata()->get('scopes.' . $entity->getEntityName() . '.stream')) {
|
||||
throw new Error();
|
||||
return false;
|
||||
}
|
||||
|
||||
$userIdList = [];
|
||||
|
||||
@@ -255,10 +255,11 @@ class User extends Record
|
||||
if ($this->getConfig()->get('userLimit') && !$this->getUser()->get('isSuperAdmin')) {
|
||||
$userCount = $this->getEntityManager()->getRepository('User')->where(array(
|
||||
'isActive' => true,
|
||||
'isSuperAdmin' => false
|
||||
'isSuperAdmin' => false,
|
||||
'id!=' => 'system'
|
||||
))->count();
|
||||
if ($userCount >= $this->getConfig()->get('userLimit')) {
|
||||
throw new Forbidden('User limit is reached.');
|
||||
throw new Forbidden('User limit '.$this->getConfig()->get('userLimit').' is reached.');
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -270,10 +271,11 @@ class User extends Record
|
||||
if (array_key_exists('isActive', $data) && $data['isActive']) {
|
||||
$userCount = $this->getEntityManager()->getRepository('User')->where(array(
|
||||
'isActive' => true,
|
||||
'isSuperAdmin' => false
|
||||
'isSuperAdmin' => false,
|
||||
'id!=' => 'system'
|
||||
))->count();
|
||||
if ($userCount >= $this->getConfig()->get('userLimit')) {
|
||||
throw new Forbidden('User limit is reached.');
|
||||
throw new Forbidden('User limit '.$this->getConfig()->get('userLimit').' is reached.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<div class="page-header">
|
||||
<h3><a href='#Lead'>{{translate scope category='scopeNamesPlural'}}</a>
|
||||
»
|
||||
<a href='#Lead/view/{{this.model.id}}'>{{get this.model 'name'}}</a>
|
||||
»
|
||||
<h3><a href='#Lead'>{{translate scope category='scopeNamesPlural'}}</a>
|
||||
»
|
||||
<a href='#Lead/view/{{this.model.id}}'>{{get this.model 'name'}}</a>
|
||||
»
|
||||
{{translate 'convert' scope='Lead'}}</h3>
|
||||
</div>
|
||||
|
||||
{{#each scopes}}
|
||||
{{#each scopeList}}
|
||||
<div>
|
||||
<label><h4><input type="checkbox" class="check-scope" data-scope="{{./this}}"> {{translate this category='scopeNames'}}</h4></label>
|
||||
<div class="edit-container-{{toDom this}} hide">
|
||||
@@ -16,6 +16,8 @@
|
||||
{{/each}}
|
||||
|
||||
<div class="button-container">
|
||||
<button class="btn btn-primary" data-action="convert">{{translate 'Convert' scope='Lead'}}</button>
|
||||
<button class="btn btn-default" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-primary" data-action="convert">{{translate 'Convert' scope='Lead'}}</button>
|
||||
<button class="btn btn-default" data-action="cancel">{{translate 'Cancel'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,7 +27,7 @@ Espo.define('crm:views/lead/convert', 'View', function (Dep) {
|
||||
|
||||
data: function () {
|
||||
return {
|
||||
scopes: this.scopes,
|
||||
scopeList: this.scopeList,
|
||||
scope: this.model.name,
|
||||
};
|
||||
},
|
||||
@@ -69,18 +69,21 @@ Espo.define('crm:views/lead/convert', 'View', function (Dep) {
|
||||
},
|
||||
|
||||
build: function () {
|
||||
var scopes = this.scopes = [];
|
||||
for (var scope in this.model.defs.convertFields) {
|
||||
if (this.getAcl().check(scope, 'edit')) {
|
||||
scopes.push(scope);
|
||||
var scopeList = this.scopeList = [];
|
||||
(this.getMetadata().get('entityDefs.Lead.convertEntityList') || []).forEach(function (scope) {
|
||||
if (scope == 'Account' && this.getConfig().get('b2cMode')) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (this.getAcl().check(scope, 'edit')) {
|
||||
scopeList.push(scope);
|
||||
}
|
||||
}, this);
|
||||
var i = 0;
|
||||
|
||||
var attributeList = this.getFieldManager().getEntityAttributes(this.model.name);
|
||||
var ignoreAttributeList = ['createdAt', 'modifiedAt', 'modifiedById', 'modifiedByName', 'createdById', 'createdByName'];
|
||||
|
||||
scopes.forEach(function (scope) {
|
||||
scopeList.forEach(function (scope) {
|
||||
this.getModelFactory().create(scope, function (model) {
|
||||
model.populateDefaults();
|
||||
|
||||
@@ -109,27 +112,31 @@ Espo.define('crm:views/lead/convert', 'View', function (Dep) {
|
||||
exit: function () {},
|
||||
}, function (view) {
|
||||
i++;
|
||||
if (i == scopes.length) {
|
||||
if (i == scopeList.length) {
|
||||
this.wait(false);
|
||||
this.notify(false);
|
||||
}
|
||||
}.bind(this));
|
||||
}, this);
|
||||
}, this);
|
||||
|
||||
if (scopeList.length == 0) {
|
||||
this.wait(false);
|
||||
}
|
||||
},
|
||||
|
||||
convert: function () {
|
||||
|
||||
var scopes = [];
|
||||
var scopeList = [];
|
||||
|
||||
this.scopes.forEach(function (scope) {
|
||||
this.scopeList.forEach(function (scope) {
|
||||
var el = this.$el.find('input[data-scope="' + scope + '"]').get(0);
|
||||
if (el && el.checked) {
|
||||
scopes.push(scope);
|
||||
scopeList.push(scope);
|
||||
}
|
||||
}.bind(this));
|
||||
|
||||
if (scopes.length == 0) {
|
||||
if (scopeList.length == 0) {
|
||||
this.notify('Select one or more checkboxes', 'error');
|
||||
return;
|
||||
}
|
||||
@@ -137,11 +144,11 @@ Espo.define('crm:views/lead/convert', 'View', function (Dep) {
|
||||
this.getRouter().confirmLeaveOut = false;
|
||||
|
||||
var notValid = false;
|
||||
scopes.forEach(function (scope) {
|
||||
scopeList.forEach(function (scope) {
|
||||
var editView = this.getView(scope);
|
||||
editView.model.set(editView.fetch());
|
||||
notValid = editView.validate() || notValid;
|
||||
}.bind(this));
|
||||
}, this);
|
||||
|
||||
var self = this;
|
||||
|
||||
@@ -149,7 +156,7 @@ Espo.define('crm:views/lead/convert', 'View', function (Dep) {
|
||||
id: self.model.id,
|
||||
records: {}
|
||||
};
|
||||
scopes.forEach(function (scope) {
|
||||
scopeList.forEach(function (scope) {
|
||||
data.records[scope] = self.getView(scope).model.attributes;
|
||||
});
|
||||
|
||||
@@ -162,9 +169,10 @@ Espo.define('crm:views/lead/convert', 'View', function (Dep) {
|
||||
data: JSON.stringify(data),
|
||||
type: 'POST',
|
||||
success: function () {
|
||||
this.getRouter().confirmLeaveOut = false;
|
||||
self.getRouter().navigate('#Lead/view/' + self.model.id, {trigger: true});
|
||||
self.notify('Converted', 'success');
|
||||
},
|
||||
}.bind(this),
|
||||
error: function () {
|
||||
self.$el.find('[data-action="convert"]').removeClass('disabled');
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
{{#each tabListDefs}}
|
||||
<li data-name="{{name}}"><a href="{{link}}" class="nav-link"><span class="full-label">{{label}}</span><span class="short-label" title="{{label}}">{{shortLabel}}</span></a></li>
|
||||
{{/each}}
|
||||
<li class="dropdown">
|
||||
<li class="dropdown more">
|
||||
<a id="nav-more-tabs-dropdown" class="dropdown-toggle" data-toggle="dropdown" href="#">{{translate 'More'}} <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu" role="menu" aria-labelledby="nav-more-tabs-dropdown"></ul>
|
||||
</li>
|
||||
|
||||
@@ -137,7 +137,9 @@ Espo.define(
|
||||
this.user.defs = this.metadata.get('entityDefs.User');
|
||||
this.preferences.defs = this.metadata.get('entityDefs.Preferences');
|
||||
|
||||
$('#main-stylesheet').attr('href', this.themeManager.getStylesheet());
|
||||
if (this.themeManager.isUserTheme()) {
|
||||
$('#main-stylesheet').attr('href', this.themeManager.getStylesheet());
|
||||
}
|
||||
|
||||
this.loader.addLibsConfig(this.metadata.get('app.jsLibs') || {});
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ Espo.define('theme-manager', [], function () {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
return this.config.get('name');
|
||||
return this.config.get('theme');
|
||||
},
|
||||
|
||||
getStylesheet: function () {
|
||||
|
||||
@@ -23,7 +23,7 @@ Espo.define('views/admin/auth-token/record/list', 'views/record/list', function
|
||||
|
||||
return Dep.extend({
|
||||
|
||||
rowActionsView: 'record/row-actions/remove-only',
|
||||
rowActionsView: 'views/record/row-actions/remove-only',
|
||||
|
||||
massActionList: ['remove'],
|
||||
|
||||
|
||||
@@ -30,13 +30,16 @@ Espo.define('views/email/record/detail', 'views/record/detail', function (Dep) {
|
||||
var isRestricted = false;
|
||||
|
||||
if (this.model.get('status') == 'Sent') {
|
||||
this.layoutName += 'Restricted';
|
||||
isRestricted = true;
|
||||
}
|
||||
|
||||
if (this.model.get('status') == 'Archived' && this.model.get('createdById') == 'system') {
|
||||
if (this.model.get('status') == 'Archived') {
|
||||
if (this.model.get('createdById') == 'system' || !this.model.get('createdById')) {
|
||||
isRestricted = true;
|
||||
}
|
||||
}
|
||||
if (isRestricted) {
|
||||
this.layoutName += 'Restricted';
|
||||
isRestricted = true;
|
||||
}
|
||||
this.isRestricted = isRestricted;
|
||||
}
|
||||
|
||||
@@ -171,6 +171,10 @@ Espo.define('Views.Fields.Base', 'View', function (Dep) {
|
||||
}
|
||||
}
|
||||
|
||||
if (this.options.readOnlyDisabled) {
|
||||
this.readOnly = false;
|
||||
}
|
||||
|
||||
if (this.mode == 'edit' && this.readOnly) {
|
||||
this.mode = 'detail';
|
||||
}
|
||||
|
||||
@@ -121,17 +121,8 @@ Espo.define('Views.Site.Navbar', 'View', function (Dep) {
|
||||
});
|
||||
},
|
||||
|
||||
afterRender: function () {
|
||||
this.selectTab(this.getRouter().getLast().controller);
|
||||
|
||||
if (this.getStorage().get('state', 'layoutMinimized')) {
|
||||
var $body = $('body');
|
||||
$body.addClass('minimized');
|
||||
}
|
||||
|
||||
var self = this;
|
||||
|
||||
$window = $(window);
|
||||
adjust: function () {
|
||||
var $window = $(window);
|
||||
|
||||
var navbarIsVertical = this.getThemeManager().getParam('navbarIsVertical');
|
||||
var navbarStaticItemsHeight = this.getThemeManager().getParam('navbarStaticItemsHeight') || 0;
|
||||
@@ -140,7 +131,8 @@ Espo.define('Views.Site.Navbar', 'View', function (Dep) {
|
||||
|
||||
if (!navbarIsVertical) {
|
||||
var $tabs = this.$el.find('ul.tabs');
|
||||
var $more = $tabs.find('li.dropdown > ul');
|
||||
var $moreDropdown = $tabs.find('li.more');
|
||||
var $more = $tabs.find('li.more > ul');
|
||||
|
||||
$window.on('resize.navbar', function() {
|
||||
updateWidth();
|
||||
@@ -152,28 +144,29 @@ Espo.define('Views.Site.Navbar', 'View', function (Dep) {
|
||||
$one.prependTo($more);
|
||||
};
|
||||
var unhideOneTab = function () {
|
||||
var count = $tabs.children().size();
|
||||
var $one = $more.children().eq(0);
|
||||
if ($one.size()) {
|
||||
$one.insertAfter($tabs.children().eq(count - 2));
|
||||
$one.insertBefore($moreDropdown);
|
||||
}
|
||||
};
|
||||
|
||||
var tabCount = this.tabList.length;
|
||||
var $navbar = $('#navbar .navbar');
|
||||
var navbarNeededHeight = 45;
|
||||
var moreWidth = $('#nav-more-tabs-dropdown').width();
|
||||
|
||||
$moreDd = $('#nav-more-tabs-dropdown');
|
||||
|
||||
|
||||
var updateWidth = function () {
|
||||
var windowWidth = $(window.document).width();
|
||||
|
||||
var windowWidth = window.innerWidth;
|
||||
var moreWidth = $moreDd.width();
|
||||
|
||||
$more.children('li').each(function (i, li) {
|
||||
unhideOneTab();
|
||||
});
|
||||
|
||||
$more.parent().addClass('hide');
|
||||
$more.parent().addClass('hidden');
|
||||
|
||||
if (windowWidth < smallScreenWidth) {
|
||||
return;
|
||||
@@ -182,15 +175,23 @@ Espo.define('Views.Site.Navbar', 'View', function (Dep) {
|
||||
var headerWidth = this.$el.width();
|
||||
|
||||
var maxWidth = headerWidth - 546 - moreWidth;
|
||||
|
||||
var width = $tabs.width();
|
||||
|
||||
var i = 0;
|
||||
while (width > maxWidth) {
|
||||
hideOneTab();
|
||||
width = $tabs.width();
|
||||
i++;
|
||||
if (i >= tabCount) {
|
||||
setTimeout(function () {
|
||||
updateWidth();
|
||||
}, 100);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($more.children().size() > 0) {
|
||||
$more.parent().removeClass('hide');
|
||||
$moreDropdown.removeClass('hidden');
|
||||
}
|
||||
}.bind(this);
|
||||
|
||||
@@ -208,10 +209,12 @@ Espo.define('Views.Site.Navbar', 'View', function (Dep) {
|
||||
};
|
||||
|
||||
if ($navbar.height() <= navbarNeededHeight) {
|
||||
$more.parent().addClass('hide');
|
||||
$more.parent().addClass('hidden');
|
||||
}
|
||||
|
||||
processUpdateWidth();
|
||||
|
||||
|
||||
} else {
|
||||
var $tabs = this.$el.find('ul.tabs');
|
||||
|
||||
@@ -238,7 +241,51 @@ Espo.define('Views.Site.Navbar', 'View', function (Dep) {
|
||||
});
|
||||
updateHeight();
|
||||
}
|
||||
},
|
||||
|
||||
afterRender: function () {
|
||||
this.selectTab(this.getRouter().getLast().controller);
|
||||
|
||||
if (this.getStorage().get('state', 'layoutMinimized')) {
|
||||
var $body = $('body');
|
||||
$body.addClass('minimized');
|
||||
}
|
||||
|
||||
if (this.getThemeManager().getParam('navbarIsVertical')) {
|
||||
var process = function () {
|
||||
if (this.$el.height() < $(window).height() / 2) {
|
||||
setTimeout(function () {
|
||||
process();
|
||||
}.bind(this), 50);
|
||||
return;
|
||||
}
|
||||
if (this.getThemeManager().isUserTheme()) {
|
||||
setTimeout(function () {
|
||||
this.adjust();
|
||||
}.bind(this), 10);
|
||||
return;
|
||||
}
|
||||
this.adjust();
|
||||
}.bind(this);
|
||||
process();
|
||||
} else {
|
||||
var process = function () {
|
||||
if (this.$el.width() < $(window).width() / 2) {
|
||||
setTimeout(function () {
|
||||
process();
|
||||
}.bind(this), 50);
|
||||
return;
|
||||
}
|
||||
if (this.getThemeManager().isUserTheme()) {
|
||||
setTimeout(function () {
|
||||
this.adjust();
|
||||
}.bind(this), 10);
|
||||
return;
|
||||
}
|
||||
this.adjust();
|
||||
}.bind(this);
|
||||
process();
|
||||
}
|
||||
},
|
||||
|
||||
selectTab: function (name) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"labels": {
|
||||
"Main page title": "Willkommen bei EspoCRM",
|
||||
"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",
|
||||
"Main page header": "Project-Id-Version: \nPOT-Creation-Date: \nPO-Revision-Date: \nLast-Translator: \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\nX-Generator: Poedit 1.8.4\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 Sie EspoCRM gut finden dann erzählen Sie anderen Leuten wie toll Sie das Produkt finden.",
|
||||
"share": "Wenn Sie EspoCRM gut finden, dann erzählen Sie Ihren Freunden und anderen Leuten davon!",
|
||||
"blog": "Blog",
|
||||
"twitter": "Twitter",
|
||||
"forum": "Forum",
|
||||
@@ -120,7 +120,7 @@
|
||||
"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": "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"
|
||||
"windows": "Project-Id-Version: \nPOT-Creation-Date: \nPO-Revision-Date: \nLast-Translator: \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\nX-Generator: Poedit 1.8.4\n"
|
||||
}
|
||||
},
|
||||
"modRewriteHelp": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "espocrm",
|
||||
"version": "3.6.1",
|
||||
"version": "3.6.2",
|
||||
"description": "",
|
||||
"main": "index.php",
|
||||
"repository": {
|
||||
|
||||
Reference in New Issue
Block a user