Mobile: js refactored und datepicker übersetzt
authorSven Schöling <s.schoeling@googlemail.com>
Fri, 19 Mar 2021 17:14:37 +0000 (18:14 +0100)
committerSven Schöling <s.schoeling@googlemail.com>
Fri, 25 Jun 2021 13:51:32 +0000 (15:51 +0200)
SL/Layout/MaterialStyle.pm
js/kivi.Materialize.js [new file with mode: 0644]
js/kivi.js
js/locale/de.js
locale/de/all

index bb224ad..86b18ca 100644 (file)
@@ -9,11 +9,12 @@ sub use_stylesheet {
 }
 
 sub use_javascript {
-  "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js";
+  "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js",
+  "kivi.Materialize.js";
 }
 
 sub javascripts_inline {
-  "M.AutoInit();";
+  "kivi.Materialize.init();"
 }
 
 sub get_stylesheet_for_user {
diff --git a/js/kivi.Materialize.js b/js/kivi.Materialize.js
new file mode 100644 (file)
index 0000000..8232d5b
--- /dev/null
@@ -0,0 +1,80 @@
+namespace("kivi.Materialize", function(ns) {
+  "use strict";
+
+  ns.init = function() {
+    ns.reinit_widgets();
+  }
+
+  ns.build_i18n = function(locale) {
+    return {
+      months: [
+        kivi.t8('January'),
+        kivi.t8('February'),
+        kivi.t8('March'),
+        kivi.t8('April'),
+        kivi.t8('May'),
+        kivi.t8('June'),
+        kivi.t8('July'),
+        kivi.t8('August'),
+        kivi.t8('September'),
+        kivi.t8('October'),
+        kivi.t8('November'),
+        kivi.t8('December')
+      ],
+      monthsShort: [
+        kivi.t8('Jan'),
+        kivi.t8('Feb'),
+        kivi.t8('Mar'),
+        kivi.t8('Apr'),
+        kivi.t8('May'),
+        kivi.t8('Jun'),
+        kivi.t8('Jul'),
+        kivi.t8('Aug'),
+        kivi.t8('Sep'),
+        kivi.t8('Oct'),
+        kivi.t8('Nov'),
+        kivi.t8('Dec')
+      ],
+      weekdays: [
+        kivi.t8('Sunday'),
+        kivi.t8('Monday'),
+        kivi.t8('Tuesday'),
+        kivi.t8('Wednesday'),
+        kivi.t8('Thursday'),
+        kivi.t8('Friday'),
+        kivi.t8('Saturday')
+      ],
+      weekdaysShort: [
+        kivi.t8('Sun'),
+        kivi.t8('Mon'),
+        kivi.t8('Tue'),
+        kivi.t8('Wed'),
+        kivi.t8('Thu'),
+        kivi.t8('Fri'),
+        kivi.t8('Sat')
+      ],
+
+      // Buttons
+      today: kivi.t8('Today'),
+      done: kivi.t8('Ok'),
+      clear: kivi.t8('Clear'),
+      cancel: kivi.t8('Cancel'),
+
+      // Accessibility labels
+      labelMonthNext: kivi.t8('Next month'),
+      labelMonthPrev: kivi.t8('Previous month')
+    }
+  }
+
+  ns.reinit_widgets = function() {
+    $('.sidenav').sidenav();
+    $('.datepicker').datepicker({
+      firstDay: 1,
+      format: kivi.myconfig.dateformat,
+      showClearBtn: true,
+      i18n: ns.build_i18n()
+    });
+    M.updateTextFields();
+  }
+
+});
index 77dfe5c..b43028f 100644 (file)
@@ -371,6 +371,7 @@ namespace("kivi", function(ns) {
     if (ns.Part) ns.Part.reinit_widgets();
     if (ns.CustomerVendor) ns.CustomerVendor.reinit_widgets();
     if (ns.Validator) ns.Validator.reinit_widgets();
+    if (ns.Materialize) ns.Materialize.reinit_widgets();
 
     if (ns.ProjectPicker)
       ns.run_once_for('input.project_autocomplete', 'project_picker', function(elt) {
index 0a77669..e2fb3dc 100644 (file)
@@ -11,13 +11,18 @@ namespace("kivi").setupLocale({
 "Add text block":"Textblock erfassen",
 "Additional articles actions":"Aktionen zu zusätzlichen Artikeln",
 "An error occurred while transferring the file.":"Bei Übertragung der Datei trat ein Fehler auf",
+"Apr":"Apr",
+"April":"April",
 "Are you sure you want to update the selected record template with the current values? This cannot be undone.":"Sind Sie sicher, dass Sie die ausgewählte Belegvorlage mit den aktuellen Daten aktualisieren wollen? Das kann nicht rückgängig gemacht werden.",
 "Are you sure?":"Sind Sie sicher?",
 "Assign invoice":"Rechnung zuweisen",
+"Aug":"Aug",
+"August":"August",
 "Basic settings actions":"Aktionen zu Grundeinstellungen",
 "Cancel":"Abbrechen",
 "Carry over shipping address":"Lieferadresse übernehmen",
 "Chart picker":"Kontenauswahl",
+"Clear":"Löschen",
 "Copy":"Kopieren",
 "Copy requirement spec":"Pflichtenheft kopieren",
 "Copy template":"Vorlage kopieren",
@@ -33,6 +38,8 @@ namespace("kivi").setupLocale({
 "Customer details":"Kundendetails",
 "Customer missing!":"Kundenname fehlt!",
 "Database Connection Test":"Test der Datenbankverbindung",
+"Dec":"Dez",
+"December":"Dezember",
 "Delete":"Löschen",
 "Delete picture":"Bild löschen",
 "Delete quotation/order":"Angebot/Auftrag löschen",
@@ -60,7 +67,11 @@ namespace("kivi").setupLocale({
 "Edit the configuration for periodic invoices":"Konfiguration für wiederkehrende Rechnungen bearbeiten",
 "Enter longdescription":"Langtext eingeben",
 "Error: Name missing":"Fehler: Name fehlt",
+"Feb":"Feb",
+"February":"Februar",
 "File upload":"Datei Upload",
+"Fri":"Fr",
+"Friday":"Freitag",
 "Function block actions":"Funktionsblockaktionen",
 "Generate and print sales delivery orders":"Erzeuge und drucke Lieferscheine",
 "Get one shoporder":"Hole eine Bestellung",
@@ -71,14 +82,31 @@ namespace("kivi").setupLocale({
 "Import documents from #1":"Importiere Dateien von Quelle '#1'",
 "Invoice Date missing!":"Rechnungsdatum fehlt!",
 "Invoice Number missing!":"Rechnungsnummer fehlt!",
+"Jan":"Jan",
+"January":"Januar",
+"Jul":"Jul",
+"July":"Juli",
+"Jun":"Jun",
+"June":"Juni",
 "Map":"Karte",
+"Mar":"März",
+"March":"März",
+"May":"Mai",
+"Mon":"Mo",
+"Monday":"Montag",
 "More than one file selected, please set only one checkbox!":"Mehr als ein Element selektiert, bitte nur eine Box anklicken",
+"Next month":"nächster Monat",
 "No":"Nein",
 "No article has been selected yet.":"Es wurde noch kein Artikel ausgewählt.",
 "No delivery orders have been selected.":"Es wurden keine Lieferscheine ausgewählt.",
 "No entries have been selected.":"Es wurden keine Einträge ausgewählt.",
 "No file selected, please set one checkbox!":"Kein Element selektiert,bitte eine Box anklicken",
 "No invoices have been selected.":"Es wurden keine Rechnungen ausgewählt.",
+"Nov":"Nov",
+"November":"November",
+"Oct":"Okt",
+"October":"Oktober",
+"Ok":"Ok",
 "Part picker":"Artikelauswahl",
 "Paste":"Einfügen",
 "Paste template":"Vorlage einfügen",
@@ -87,6 +115,7 @@ namespace("kivi").setupLocale({
 "Please select a customer.":"Bitte wählen Sie einen Kunden aus.",
 "Please select a delivery date.":"Bitte einen Liefertermin auswählen",
 "Please select a vendor.":"Bitte wählen Sie einen Lieferanten aus.",
+"Previous month":"vorheriger Monat",
 "Price Types":"Preistypen",
 "Print options":"Druckoptionen",
 "Print record":"Beleg drucken",
@@ -100,11 +129,15 @@ namespace("kivi").setupLocale({
 "Requirement spec actions":"Pflichtenheftaktionen",
 "Requirement spec template actions":"Pflichtenheftvorlagen-Aktionen",
 "Revert to version":"Auf Version zurücksetzen",
+"Sat":"Sa",
+"Saturday":"Samstag",
 "Save":"Speichern",
 "Save and keep open":"Speichern und geöffnet lassen",
 "Section/Function block actions":"Abschnitts-/Funktionsblockaktionen",
 "Select template to paste":"Einzufügende Vorlage auswählen",
 "Send email":"E-Mail verschicken",
+"Sep":"Sep",
+"September":"September",
 "Set all source and memo fields":"Alle Beleg-/Memo-Felder setzen",
 "Shop Connection Test":"Shopverbindungstest",
 "Show all details":"Alle Details anzeigen",
@@ -112,6 +145,8 @@ namespace("kivi").setupLocale({
 "Status Shoptransfer":"Status Shoptransfer",
 "Status Shopupload":"Status Shopupload",
 "Subject":"Betreff",
+"Sun":"So",
+"Sunday":"Sonntag",
 "Text block actions":"Textblockaktionen",
 "Text block picture actions":"Aktionen für Textblockbilder",
 "The URL is missing.":"URL fehlt",
@@ -132,16 +167,23 @@ namespace("kivi").setupLocale({
 "This field must not be empty.":"Dieses Feld darf nicht leer sein.",
 "This sales order has an active configuration for periodic invoices. If you save then all subsequently created invoices will contain those changes as well, but not those that have already been created. Do you want to continue?":"Dieser Auftrag besitzt eine aktive Konfiguration für wiederkehrende Rechnungen. Wenn Sie jetzt speichern, so werden alle zukünftig hieraus erzeugten Rechnungen die Änderungen enthalten, nicht aber die bereits erzeugten Rechnungen. Möchten Sie speichern?",
 "This vendor has already a booking with this invoice number, do you really want to add the same invoice number again?":"Es gibt für diesen Lieferant schon einen Beleg mit dieser Rechnungsnummer. Möchten Sie wirklich eine weitere Buchung mit derselben Rechnungsnummer hinzufügen?",
+"Thu":"Do",
+"Thursday":"Donnerstag",
 "Time/cost estimate actions":"Aktionen für Kosten-/Zeitabschätzung",
 "Title":"Titel",
+"Today":"heute",
 "Toggle marker":"Markierung umschalten",
 "Transaction description":"Vorgangsbezeichnung",
+"Tue":"Di",
+"Tuesday":"Dienstag",
 "Update":"Erneuern",
 "Update quotation/order":"Auftrag/Angebot aktualisieren",
 "Upload Status":"Upload-Status",
 "Vendor details":"Lieferantendetails",
 "Vendor missing!":"Lieferant fehlt!",
 "Version actions":"Aktionen für Versionen",
+"Wed":"Mi",
+"Wednesday":"Mittwoch",
 "Wrong date format (#1)":"Falsches Datumsformat (#1)",
 "Wrong number format (#1)":"Falsches Zahlenformat (#1)",
 "Wrong time format (#1)":"Falsches Zeitformat (#1)",
index 714fe21..4550658 100755 (executable)
@@ -649,6 +649,7 @@ $self->{texts} = {
   'Choose a Tax Number'         => 'Bitte eine Steuernummer angeben',
   'Choose bank account for reconciliation' => 'Wählen Sie das Bankkonto für den Kontenabgleich',
   'City'                        => 'Stadt',
+  'Clear'                       => 'Löschen',
   'Clear fields'                => 'Felder leeren',
   'Cleared Balance'             => 'abgeschlossen',
   'Cleared/uncleared only'      => 'Status abgeglichen',
@@ -686,6 +687,7 @@ $self->{texts} = {
   'Compare to'                  => 'Gegenüberstellen zu',
   'Complexities'                => 'Komplexitätsgrade',
   'Complexity'                  => 'Komplexität',
+  'Component Test'              => '',
   'Configuration'               => 'Konfiguration',
   'Configuration of individual TODO items' => 'Konfiguration für die einzelnen Aufgabenlistenpunkte',
   'Configure'                   => 'Konfigurieren',
@@ -1556,6 +1558,8 @@ $self->{texts} = {
   'Free report period'          => 'Freier Zeitraum',
   'Free skonto amount has to be a positive number.' => 'Der freie Skontobetrag muss positiv (absolut) sein.',
   'Free-form text'              => 'Textzeile',
+  'Fri'                         => 'Fr',
+  'Friday'                      => 'Freitag',
   'Fristsetzung'                => 'Fristsetzung',
   'From'                        => 'Von',
   'From Date'                   => 'Von',
@@ -1710,6 +1714,7 @@ $self->{texts} = {
   'Illegal characters have been removed from the following fields: #1' => 'Ungültige Zeichen wurden aus den folgenden Feldern entfernt: #1',
   'Illegal date'                => 'Ungültiges Datum',
   'Image'                       => 'Grafik',
+  'Image Upload'                => '',
   'ImagePreview'                => 'Bildvorschau',
   'Images'                      => 'Bilder',
   'Import'                      => 'Import',
@@ -2044,7 +2049,9 @@ $self->{texts} = {
   'Module'                      => 'Modul',
   'Module home page'            => 'Modul-Webseite',
   'Module name'                 => 'Modulname',
+  'Mon'                         => 'Mo',
   'Monat'                       => 'Monat',
+  'Monday'                      => 'Montag',
   'Month'                       => 'Monat',
   'Month/Year'                  => 'Monat/Jahr',
   'Monthly'                     => 'monatlich',
@@ -2092,6 +2099,7 @@ $self->{texts} = {
   'New shop orders'             => 'Neue Shopbestellungen',
   'New window/tab'              => 'Neues Fenster/Tab',
   'Next Dunning Level'          => 'Nächste Mahnstufe',
+  'Next month'                  => 'nächster Monat',
   'Next run at'                 => 'Nächste Ausführung um',
   'No'                          => 'Nein',
   'No 1:n or n:1 relation'      => 'Keine 1:n oder n:1 Beziehung',
@@ -2521,6 +2529,7 @@ $self->{texts} = {
   'Preset email text for sales quotations' => 'Vorbelegter E-Mail-Text für Angebote',
   'Preview'                     => 'Vorschau',
   'Preview Mode'                => 'Vorschaumodus',
+  'Previous month'              => 'vorheriger Monat',
   'Previous transdate text'     => 'wurde gespeichert am',
   'Previous transnumber text'   => 'Letzte Buchung mit der Buchungsnummer',
   'Price'                       => 'Preis',
@@ -2889,8 +2898,10 @@ $self->{texts} = {
   'Salutation punctuation mark' => 'Zeichensetzungs-Trenner nach der Anrede-Formel (Punkt, Ausrufezeichen, etc)',
   'Same Filename !'             => 'unveränderter Dateiname !',
   'Same as the quote character' => 'Wie Anführungszeichen',
+  'Sat'                         => 'Sa',
   'Sat. Fax'                    => 'Sat. Fax',
   'Sat. Phone'                  => 'Sat. Tel.',
+  'Saturday'                    => 'Samstag',
   'Satz %'                      => 'Satz %',
   'Save'                        => 'Speichern',
   'Save Draft'                  => 'Entwurf speichern',
@@ -3234,6 +3245,8 @@ $self->{texts} = {
   'Sum open amount'             => 'Summierter offener Betrag',
   'Sum per'                     => 'Summe per',
   'Summen- und Saldenliste'     => 'Summen- und Saldenliste',
+  'Sun'                         => 'So',
+  'Sunday'                      => 'Sonntag',
   'Superuser name'              => 'Datenbankadministrator',
   'Supplies'                    => 'Lieferungen',
   'Surname'                     => 'Nachname',
@@ -3785,6 +3798,8 @@ $self->{texts} = {
   'This will set an exact price.' => 'Diese Option setzt einen festen Preis.',
   'Three Options:'              => 'Drei Optionen:',
   'Threshold for warning on quantity difference' => 'Schwellenwert für Warnung bei Mengenabweichung',
+  'Thu'                         => 'Do',
+  'Thursday'                    => 'Donnerstag',
   'Time'                        => 'Zeit',
   'Time Format'                 => 'Uhrzeitformat',
   'Time Recording'              => 'Zeiterfassung',
@@ -3805,6 +3820,7 @@ $self->{texts} = {
   'To import'                   => 'Zu importieren',
   'To upload images: Please create shoppart first' => 'Um Bilder hochzuladen bitte Shopartikel zuerst anlegen',
   'To user login'               => 'Zum Benutzerlogin',
+  'Today'                       => 'heute',
   'Toggle marker'               => 'Markierung umschalten',
   'Too many results (#1 from #2).' => 'Zu viele Artikel (#1 von #2)',
   'Too much recursions in assembly tree (>100)' => 'Zu tiefe Verschachtelung (>100) des Erzeugnisbaum',
@@ -3871,6 +3887,8 @@ $self->{texts} = {
   'Trial Balance'               => 'Summen- und Saldenliste',
   'Trial balance between %s and %s' => 'Summen- und Saldenlisten vom %s bis zum %s',
   'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
+  'Tue'                         => 'Di',
+  'Tuesday'                     => 'Dienstag',
   'Turnover'                    => 'Umsätze',
   'Turnoverstatistic'           => 'Umsatzstatistik',
   'TypAbbreviation'             => 'Abkürzung des Artikel-Typs',
@@ -4095,6 +4113,8 @@ $self->{texts} = {
   'Webshop Import'              => 'Webshop Import',
   'Webshop articles'            => 'Webshop Artikel',
   'Webshops articles'           => 'Webshops Artikel',
+  'Wed'                         => 'Mi',
+  'Wednesday'                   => 'Mittwoch',
   'Weight'                      => 'Gewicht',
   'Weight unit'                 => 'Gewichtseinheit',
   'What <b>term</b> you are looking for?' => 'Nach welchem <b>Begriff</b> wollen Sie suchen?',