Add README, customization snapshot, and snapshot/restore tooling
Provisioning now restores all GUI customizations on reset+reprovision: - create_pod_espocrm.sh: deploy the version-controlled espocrm-custom/ tree (CTag entity, layouts, i18n, clientDefs, custom views, custom CSS) into the pod, then chown www-data and rebuild. Replaces the earlier inline CSS-only step. Adds a live-phase cache rebuild so customizations and the client cacheTimestamp are refreshed on every run. - espocrm-custom/: snapshot of custom/ and client/custom/ (source of truth). - snapshot_espocrm_custom.sh: refresh the snapshot from a running pod. - readme.md: usage, first-time host setup, image-update and reset workflows. - Include the task/instruction notes and plan.md for reference. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "إنشاء {الكيانTypeTranslated}"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Създаване на Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Vytvořit Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Opret Tag "
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"fields": {
|
||||
"cAgentur": "Agentur",
|
||||
"cTags": "Tags"
|
||||
},
|
||||
"links": {
|
||||
"cAgentur": "Agentur",
|
||||
"cTags": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Tag erstellen"
|
||||
},
|
||||
"fields": {
|
||||
"verkaufschancen": "Verkaufschancen",
|
||||
"kontakte": "Kontakte",
|
||||
"firmen": "Firmen"
|
||||
},
|
||||
"links": {
|
||||
"verkaufschancen": "Verkaufschancen",
|
||||
"kontakte": "Kontakte",
|
||||
"firmen": "Firmen"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"fields": {
|
||||
"cTags": "Tags"
|
||||
},
|
||||
"links": {
|
||||
"cTags": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"options": {
|
||||
"stage": {
|
||||
"Interessant": "Interessant",
|
||||
"Abgelehnt": "Abgelehnt",
|
||||
"Angefragt": "Angefragt",
|
||||
"Agentur prüft": "Agentur prüft",
|
||||
"Kunde prüft": "Kunde prüft",
|
||||
"Identifiziert": "Identifiziert",
|
||||
"Brief versendet": "Brief versendet",
|
||||
"Anruf-Wiedervorlage": "Anruf-Wiedervorlage",
|
||||
"Angerufen": "Angerufen",
|
||||
"Ersttermin vereinbart": "Ersttermin vereinbart",
|
||||
"Ersttermin durchgeführt": "Ersttermin durchgeführt",
|
||||
"Angebot": "Angebot",
|
||||
"Verhandlung": "Verhandlung",
|
||||
"Unterschriftsreif": "Unterschriftsreif",
|
||||
"Gewonnen": "Gewonnen",
|
||||
"In Durchführung": "In Durchführung",
|
||||
"Abgeschl. / Bestandsk.": "Abgeschl. / Bestandsk.",
|
||||
"Verloren": "Verloren",
|
||||
"Ghosted": "Ghosted"
|
||||
},
|
||||
"cLeadQuelle": {
|
||||
"Inbound Agentur": "Inbound Agentur",
|
||||
"Inbound Plattform-Lead": "Inbound Plattform-Lead",
|
||||
"Aktive Plattform-Suche": "Aktive Plattform-Suche",
|
||||
"Aktive Akquise": "Aktive Akquise",
|
||||
"Empfehlung / Netzwerk": "Empfehlung / Netzwerk",
|
||||
"Sonstiges": "Sonstiges"
|
||||
},
|
||||
"cVerlustgrund": {
|
||||
"Agentur Absage": "Agentur Absage",
|
||||
"Kunde Absage": "Kunde Absage",
|
||||
"Keine Einigung": "Keine Einigung",
|
||||
"Eigene Absage": "Eigene Absage",
|
||||
"Sonstiges": "Sonstiges",
|
||||
"Agentur Ghosted": "Agentur Ghosted",
|
||||
"Kunde Ghosted": "Kunde Ghosted"
|
||||
},
|
||||
"cVerguetungsmodell": {
|
||||
"Agentur Honorar": "Agentur Honorar",
|
||||
"Direkt Festpreis": "Direkt Festpreis",
|
||||
"Direkt Honorar": "Direkt Honorar",
|
||||
"Direkt Nutzenbasiert": "Direkt Nutzenbasiert"
|
||||
}
|
||||
},
|
||||
"fields": {
|
||||
"cLeadQuelle": "Lead-Quelle",
|
||||
"cVerlustgrund": "Verlustgrund",
|
||||
"cProjektlink": "Projektlink",
|
||||
"cVerguetungsmodell": "Vergütungsmodell",
|
||||
"cAccount1": "Über Agentur",
|
||||
"cTags": "Tags"
|
||||
},
|
||||
"links": {
|
||||
"cAccount1": "Über Agentur",
|
||||
"cTags": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Δημιουργία Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"fields": {
|
||||
"cAgentur": "Agentur",
|
||||
"cTags": "Tags"
|
||||
},
|
||||
"links": {
|
||||
"cAgentur": "Agentur",
|
||||
"cTags": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Create Tag"
|
||||
},
|
||||
"fields": {
|
||||
"verkaufschancen": "Verkaufschancen",
|
||||
"kontakte": "Kontakte",
|
||||
"firmen": "Firmen"
|
||||
},
|
||||
"links": {
|
||||
"verkaufschancen": "Verkaufschancen",
|
||||
"kontakte": "Kontakte",
|
||||
"firmen": "Firmen"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"fields": {
|
||||
"cTags": "Tags"
|
||||
},
|
||||
"links": {
|
||||
"cTags": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"scopeNames": {
|
||||
"CTag": "Tag"
|
||||
},
|
||||
"scopeNamesPlural": {
|
||||
"CTag": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"fields": {
|
||||
"cLeadQuelle": "Lead-Quelle",
|
||||
"cVerlustgrund": "Verlustgrund",
|
||||
"cProjektlink": "Projektlink",
|
||||
"cVerguetungsmodell": "Vergütungsmodell",
|
||||
"cAccount1": "Über Agentur",
|
||||
"cTags": "Tags"
|
||||
},
|
||||
"options": {
|
||||
"cLeadQuelle": {
|
||||
"Inbound Agentur": "Inbound Agentur",
|
||||
"Inbound Plattform-Lead": "Inbound Plattform-Lead",
|
||||
"Aktive Plattform-Suche": "Aktive Plattform-Suche",
|
||||
"Aktive Akquise": "Aktive Akquise",
|
||||
"Empfehlung / Netzwerk": "Empfehlung / Netzwerk",
|
||||
"Sonstiges": "Sonstiges"
|
||||
},
|
||||
"cVerlustgrund": {
|
||||
"Agentur Absage": "Agentur Absage",
|
||||
"Kunde Absage": "Kunde Absage",
|
||||
"Keine Einigung": "Keine Einigung",
|
||||
"Eigene Absage": "Eigene Absage",
|
||||
"Sonstiges": "Sonstiges",
|
||||
"Agentur Ghosted": "Agentur Ghosted",
|
||||
"Kunde Ghosted": "Kunde Ghosted"
|
||||
},
|
||||
"cVerguetungsmodell": {
|
||||
"Agentur Honorar": "Agentur Honorar",
|
||||
"Direkt Festpreis": "Direkt Festpreis",
|
||||
"Direkt Honorar": "Direkt Honorar",
|
||||
"Direkt Nutzenbasiert": "Direkt Nutzenbasiert"
|
||||
}
|
||||
},
|
||||
"links": {
|
||||
"cAccount1": "Über Agentur",
|
||||
"cTags": "Tags"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Crear Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Crear Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "ایجاد Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Créer un Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Napravi Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "{EntityTypeTranslated} létrehozása"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Buat Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Crea Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Tag を作成する"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Sukurti Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Izveidot Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Opprett Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Creëer Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Utwórz Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Criar Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Criar Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Creare Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Создать Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Vytvoriť Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Ustvari Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Napravi Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Skapa Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "สร้าง Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Tag oluştur"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Створити Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "{entityTypetranslated} بنائیں"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "Tạo Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "创建 Tag"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"labels": {
|
||||
"Create CTag": "建立Tag"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user