Compare commits
5 Commits
ticketdata
...
wip_twine
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ed395d04b | |||
| dd5d361116 | |||
| 4a316b8080 | |||
| 067257e0dd | |||
| 60a7fc2d84 |
@@ -1,16 +0,0 @@
|
|||||||
###
|
|
||||||
# .env
|
|
||||||
# will overwrite standard environment viariables
|
|
||||||
###
|
|
||||||
# set the language variable used in test-runs
|
|
||||||
#test LANG=es-ES
|
|
||||||
#test LANG=it-IT
|
|
||||||
#test LANG=C
|
|
||||||
# set the language variable (overwriting standard Enviroment)
|
|
||||||
#TEST_LANG=de_DE
|
|
||||||
#TEST_LANG=C
|
|
||||||
#RUST_LOG=advotracker=trace
|
|
||||||
RUST_LOG=trace
|
|
||||||
#RUST_LOG=none
|
|
||||||
USERNAME=hiedemann
|
|
||||||
DB_DRIVER=sqlite
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
data/POLLFNR_WOECHENTLICH.txt
|
|
||||||
@@ -9,14 +9,12 @@ edition = "2018"
|
|||||||
default-run = "advotracker"
|
default-run = "advotracker"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
[target.x86_64-pc-windows-gnu]
|
||||||
|
linker = "lld-link"
|
||||||
|
|
||||||
[target.'cfg(windows)'.dependencies]
|
[target.'cfg(windows)'.dependencies]
|
||||||
winapi = { version = "0.3", features = [ "winuser" ] }
|
winapi = { version = "0.3", features = [ "winuser" ] }
|
||||||
#diesel = { version = "1.4", features = [ "postgres", "sqlite" ] }
|
windres = { git = "https://github.com/FaultyRAM/windres-rs", branch = "master" }
|
||||||
|
|
||||||
[target.'cfg(target_os = "windows")'.build-dependencies]
|
|
||||||
winres = { version = "0.1" }
|
|
||||||
# for language constants
|
|
||||||
winapi = { version = "0.3", features = [ "winnt" ] }
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-stream = "~0.2"
|
async-stream = "~0.2"
|
||||||
@@ -26,27 +24,23 @@ clap = { version = "~2.33", features = ["suggestions", "color"] }
|
|||||||
csv = { version = "~1.1" }
|
csv = { version = "~1.1" }
|
||||||
dotenv = { version = "~0.15.0" }
|
dotenv = { version = "~0.15.0" }
|
||||||
envy = { version = "~0.4" }
|
envy = { version = "~0.4" }
|
||||||
#lettre ={ version = "0.10.0-beta.1", features = ["smtp-transport", "native-tls", "hostname", "r2d2", "builder"] }
|
|
||||||
lettre ={ version = "0.10.0-beta.1" }
|
lettre ={ version = "0.10.0-beta.1" }
|
||||||
lazy_static = { version = "~1.4.0" }
|
lazy_static = { version = "~1.4.0" }
|
||||||
log = { version = "~0.4.8" }
|
log = { version = "~0.4.8" }
|
||||||
locales = { version = "~0.1" }
|
|
||||||
maud = { version = "~0.22.1" }
|
maud = { version = "~0.22.1" }
|
||||||
#orbtk = { version = "~0.3.1-alpha4" }
|
orbtk = { git = "https://github.com/redox-os/orbtk.git", branch = "develop" }
|
||||||
#orbtk = { git = "https://github.com/redox-os/orbtk.git", branch = "develop" }
|
#orbtk = { path = "../../../orbtk" }
|
||||||
orbtk = { path = "../../../orbtk" }
|
serde = { version = "~1", features = ["derive"] }
|
||||||
serde = { version = "~1.0", features = ["derive"] }
|
sdl2 = { version = "~0.34", features = ["bundled"] }
|
||||||
sdl2 = { version = "~0.34" }
|
|
||||||
substring = { version = "~1" }
|
substring = { version = "~1" }
|
||||||
#tokio = { version = "~0.2", features = ["macros", "rt-threaded", "stream", "time"] }
|
|
||||||
tracing = { version = "~0.1" }
|
tracing = { version = "~0.1" }
|
||||||
tracing-subscriber = { version = "~0.2.0", features = ["tracing-log"] }
|
tracing-subscriber = { version = "~0.2.0", features = ["tracing-log"] }
|
||||||
viperus = { git = "https://github.com/maurocordioli/viperus", features = ["cache", "fmt-clap", "fmt-env", "global", "watch"] }
|
viperus = { git = "https://github.com/maurocordioli/viperus", features = ["cache", "fmt-clap", "fmt-env", "global", "watch"] }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
winres = { version = "0.1" }
|
winres = { version = "0.1.11" }
|
||||||
|
#twine = { version = "0.3.8" }
|
||||||
#[dev-dependencies]
|
twine = { path = "../../../twine", features = ["serde"] }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
@@ -62,10 +56,6 @@ description = "Supports lawyers to capture relevant data encountered during an o
|
|||||||
[package.metadata.winres]
|
[package.metadata.winres]
|
||||||
LegalCopyright = "Copyright © 2020-2021"
|
LegalCopyright = "Copyright © 2020-2021"
|
||||||
|
|
||||||
#[[bin]]
|
|
||||||
#//name = "policycheck"
|
|
||||||
#path = "src/bin/policycheck.rs"
|
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "advotracker"
|
name = "advotracker"
|
||||||
path = "src/main.rs"
|
path = "src/main.rs"
|
||||||
|
|||||||
@@ -5,14 +5,20 @@
|
|||||||
* SPDX-License-Identifier: (0BSD or MIT)
|
* SPDX-License-Identifier: (0BSD or MIT)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use winres;
|
extern crate winres;
|
||||||
|
|
||||||
|
use twine::build_translations;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
println!("cargo:rerun-if-changed=build.rs");
|
||||||
|
build_translations(&["./src/i18n/localization.ini"], "i18n.rs").unwrap();
|
||||||
|
|
||||||
if cfg!(target_os = "windows") {
|
if cfg!(target_os = "windows") {
|
||||||
let mut res = winres::WindowsResource::new();
|
let mut res = winres::WindowsResource::new();
|
||||||
res.set_icon("assets/icons/adovtracker/advotracker.ico")
|
//res.set_icon(".\assets\icons\adovtracker\advotracker.ico")
|
||||||
|
res.set_icon("advotracker.ico")
|
||||||
.set("InternalName", "ADVOTRACKER.EXE")
|
.set("InternalName", "ADVOTRACKER.EXE")
|
||||||
// manually set version 0.1.5.2
|
// manually set version 0.1.5.2
|
||||||
.set_version_info(winres::VersionInfo::PRODUCTVERSION, 0x0000000100050002);
|
.set_version_info(winres::VersionInfo::PRODUCTVERSION, 0x0000000100050002);
|
||||||
res.compile().unwrap();
|
res.compile().unwrap();
|
||||||
}
|
}
|
||||||
|
|||||||
147
crates/advotracker_client/src/i18n/localization.ini
Normal file
147
crates/advotracker_client/src/i18n/localization.ini
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
[err_lang_not_found]
|
||||||
|
de = Konnte Sprachkode nicht auslesen
|
||||||
|
en = Couldn't read
|
||||||
|
[err_user_not_found]
|
||||||
|
fr = Utilisateur introuvable
|
||||||
|
en = User not found
|
||||||
|
[main_started]
|
||||||
|
de = Programmlogik starten
|
||||||
|
en = Program logic started
|
||||||
|
[main_finished]
|
||||||
|
de = Programmlogik beendet
|
||||||
|
en = Program logic finished
|
||||||
|
[parse_arguments]
|
||||||
|
de = Programmargumente prüfen
|
||||||
|
en = Parsing arguments
|
||||||
|
[parse_environment]
|
||||||
|
de = Umgebungsvariablen prüfen
|
||||||
|
en = Parsing environment
|
||||||
|
[parse_results]
|
||||||
|
de = Ergebnisse der Konfigurationsparameterprüfung
|
||||||
|
en = Config parsing results
|
||||||
|
[config_name]
|
||||||
|
de = Konfigurationswert für
|
||||||
|
en = Config Value for
|
||||||
|
[config_name_lang]
|
||||||
|
de = Sprach-Co
|
||||||
|
en = Language co
|
||||||
|
[config_name_verbositylevel]
|
||||||
|
de = Ausgabe-Ebene
|
||||||
|
en = verbosity level
|
||||||
|
[config_name_environment]
|
||||||
|
de = Umgebungsvariablen
|
||||||
|
en = environment
|
||||||
|
[config_name_configfile]
|
||||||
|
de = Konfigurations-Datei
|
||||||
|
en = config file
|
||||||
|
[config_name_dbdriver]
|
||||||
|
de = Datenbank-Treiber
|
||||||
|
en = database driver
|
||||||
|
[config_name_redis]
|
||||||
|
de = Redis Datenbank
|
||||||
|
en = Redis database
|
||||||
|
[csv_export_started]
|
||||||
|
de = Export in eine CSV Datei starten
|
||||||
|
en = Export to csv file started
|
||||||
|
[csv_export_finished]
|
||||||
|
de = Export in eine CSV Datei beendet
|
||||||
|
en = Export to csv file finished
|
||||||
|
[csv_import_started]
|
||||||
|
de = Import aus einer CSV Datei
|
||||||
|
en = Import from a csv file
|
||||||
|
[csv_import_finished]
|
||||||
|
de = Import aus einer CSV Datei beendet
|
||||||
|
en = Import from a csv file finished
|
||||||
|
[redis_connection_error]
|
||||||
|
de = Es konnte keine Redis Verbindung aufgebaut werden
|
||||||
|
en = Could not establish a redis connection
|
||||||
|
[policy_hashmap_success]
|
||||||
|
de = Hashmap wurde erfolgreich erstellt
|
||||||
|
en = Hashmap creation was successfull
|
||||||
|
[policy_hashmap_failed]
|
||||||
|
de = Hashmap konnte nicht erstellt werden
|
||||||
|
en = Hashmap creation failed
|
||||||
|
[policy_menu_label]
|
||||||
|
de = Menü
|
||||||
|
en = Menu
|
||||||
|
[policy_menu_label_account]
|
||||||
|
de = Aktueller Benutzer
|
||||||
|
en = Active user
|
||||||
|
[policy_menu_label_quit]
|
||||||
|
de = Beenden
|
||||||
|
en = Quit
|
||||||
|
[policy_menu_label_toggle_theme]
|
||||||
|
de = Thema wechseln
|
||||||
|
en = Toggle theme
|
||||||
|
[policy_string_header]
|
||||||
|
de = Validierung Versicherungsnummer
|
||||||
|
en = Policy number validation
|
||||||
|
[policy_string_label_policy_data]
|
||||||
|
de = Importierte Daten
|
||||||
|
en = imported data
|
||||||
|
[policy_string_label_policy_list]
|
||||||
|
de = Versicherungsnummern-Liste
|
||||||
|
en = policy list
|
||||||
|
[policy_string_label_policy_number]
|
||||||
|
de = Versicherungsnummer
|
||||||
|
en = policy number
|
||||||
|
[policy_string_label_result]
|
||||||
|
de = Prüfungsergebnis
|
||||||
|
en = check result
|
||||||
|
[policy_string_data_count]
|
||||||
|
de = Anzahl Prüflistenelemente
|
||||||
|
en = Number of checklist elements
|
||||||
|
[policy_string_import_data]
|
||||||
|
de = Importieren der Prüflisten-Elemente
|
||||||
|
en = Import checklist elements
|
||||||
|
[policy_string_progress_time]
|
||||||
|
de = Bearbeitungszeit
|
||||||
|
en = processing time
|
||||||
|
[policy_string_progress_text]
|
||||||
|
de = Importiere Daten
|
||||||
|
en = Importing data
|
||||||
|
[policy_validation_button_failed]
|
||||||
|
de = ungültig
|
||||||
|
en = invalid
|
||||||
|
[policy_validation_button_success]
|
||||||
|
de = gültig
|
||||||
|
en = valid
|
||||||
|
[policy_validation_failed]
|
||||||
|
de = Die Versicherungsscheinnummber ist ungültig
|
||||||
|
en = The given policy number is invalid
|
||||||
|
[policy_validation_new]
|
||||||
|
de = Neue Prüfung
|
||||||
|
en = New validation
|
||||||
|
[policy_validation_success]
|
||||||
|
de = Die Versicherungsscheinnummber ist gültig
|
||||||
|
en = The given policy number is valid
|
||||||
|
[policy_validation_started]
|
||||||
|
de = Die Prüfung der Versicherungsscheinnummber wurde gestartet
|
||||||
|
en = Validation of the policy number started
|
||||||
|
[policy_validation_finished]
|
||||||
|
de = Die Prüfung der Versicherungsscheinnummber wurde beendet
|
||||||
|
en = Validation of the policy number finished
|
||||||
|
[policy_validation_invalid_input]
|
||||||
|
de = Nur Nummer sind zulässig
|
||||||
|
en = Only numbers are valid
|
||||||
|
[policy_validation_not_found]
|
||||||
|
de = Nummer ist nicht aktiviert
|
||||||
|
en = number isn't marked active
|
||||||
|
[policy_validation_to_long]
|
||||||
|
de = Die Nummer ist zu lang
|
||||||
|
en = Policy number is to long
|
||||||
|
[policy_validation_to_short]
|
||||||
|
de = Die Nummer ist zu kurz
|
||||||
|
en = Policy number is to short
|
||||||
|
[sendticketdata_export_started]
|
||||||
|
de = Versenden von ticket daten via eMail gestartet
|
||||||
|
en = Send ticket data via eMail started
|
||||||
|
[sendticketdata_export_finished]
|
||||||
|
de = Versenden von ticket daten via eMail beendet
|
||||||
|
en = Send ticket data via eMail finished
|
||||||
|
[state_started]
|
||||||
|
de = gestartet
|
||||||
|
en = started
|
||||||
|
[state_finished]
|
||||||
|
de = beended
|
||||||
|
en = finished
|
||||||
@@ -26,6 +26,9 @@
|
|||||||
//! WIP: provide a workflow image
|
//! WIP: provide a workflow image
|
||||||
//!
|
//!
|
||||||
|
|
||||||
|
// i18n: get the macro (t!) accessing translated strings
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/i18n.rs"));
|
||||||
|
|
||||||
// /// The client specific services
|
// /// The client specific services
|
||||||
// pub mod clients;
|
// pub mod clients;
|
||||||
|
|
||||||
|
|||||||
@@ -1,248 +0,0 @@
|
|||||||
{
|
|
||||||
"err.lang.not_found": {
|
|
||||||
"de_DE.UTF-8": "Konnte Sprachkode nicht auslesen",
|
|
||||||
"de_DE": "Konnte Sprachkode nicht auslesen",
|
|
||||||
"C": "Couldn't read LANG"
|
|
||||||
},
|
|
||||||
"err.user.not_found": {
|
|
||||||
"fr": "Utilisateur introuvable: $email, $id",
|
|
||||||
"de_DE.UTF-8": "Anwender nicht gefunden: $email, $id",
|
|
||||||
"de_DE": "Anwender nicht gefunden: $email, $id",
|
|
||||||
"C": "User not found: $email, $id"
|
|
||||||
},
|
|
||||||
"main.started": {
|
|
||||||
"de_DE.UTF-8": "Programmlogik starten",
|
|
||||||
"de_DE": "Programmlogik starten",
|
|
||||||
"C": "Program logic started"
|
|
||||||
},
|
|
||||||
"main.finished": {
|
|
||||||
"de_DE.UTF-8": "Programmlogik beendet",
|
|
||||||
"de_DE": "Programmlogik beendet",
|
|
||||||
"C": "Program logic finished"
|
|
||||||
},
|
|
||||||
"parse.arguments": {
|
|
||||||
"de_DE.UTF-8": "Programmargumente prüfen",
|
|
||||||
"de_DE": "Programmargumente prüfen",
|
|
||||||
"C": "Parsing arguments"
|
|
||||||
},
|
|
||||||
"parse.environment": {
|
|
||||||
"de_DE.UTF-8": "Umgebungsvariablen prüfen",
|
|
||||||
"de_DE": "Umgebungsvariablen prüfen",
|
|
||||||
"C": "Parsing environment"
|
|
||||||
},
|
|
||||||
"parse.results": {
|
|
||||||
"de_DE.UTF-8": "Ergebnisse der Konfigurations-Parameterprüfung",
|
|
||||||
"de_DE": "Ergebnisse der Konfigurationsparameterprüfung",
|
|
||||||
"C": "Config parsing results"
|
|
||||||
},
|
|
||||||
"config.name": {
|
|
||||||
"de_DE.UTF-8": "Konfigurationswert für",
|
|
||||||
"de_DE": "Konfigurationswert für",
|
|
||||||
"C": "Config Value for"
|
|
||||||
},
|
|
||||||
"config.name.lang": {
|
|
||||||
"de_DE.UTF-8": "Sprach-Code_DE",
|
|
||||||
"de_DE": "Sprach-Code_DE",
|
|
||||||
"C": "Language code_DE"
|
|
||||||
},
|
|
||||||
"config.name.verbositylevel": {
|
|
||||||
"de_DE.UTF-8": "Ausgabe-Ebene",
|
|
||||||
"de_DE": "Ausgabe-Ebene",
|
|
||||||
"C": "verbosity level"
|
|
||||||
},
|
|
||||||
"config.name.environment": {
|
|
||||||
"de_DE.UTF-8": "Umgebungsvariablen",
|
|
||||||
"de_DE": "Umgebungsvariablen",
|
|
||||||
"C": "environment"
|
|
||||||
},
|
|
||||||
"config.name.configfile": {
|
|
||||||
"de_DE.UTF-8": "Konfigurations-Datei",
|
|
||||||
"de_DE": "Konfigurations-Datei",
|
|
||||||
"C": "config file"
|
|
||||||
},
|
|
||||||
"config.name.dbdriver": {
|
|
||||||
"de_DE.UTF-8": "Datenbank-Treiber",
|
|
||||||
"de_DE": "Datenbank-Treiber",
|
|
||||||
"C": "database driver"
|
|
||||||
},
|
|
||||||
"config.name.redis": {
|
|
||||||
"de_DE.UTF-8": "Redis Datenbank",
|
|
||||||
"de_DE": "Redis Datenbank",
|
|
||||||
"C": "Redis database"
|
|
||||||
},
|
|
||||||
"csv.export.started": {
|
|
||||||
"de_DE.UTF-8": "Export in eine CSV Datei starten",
|
|
||||||
"de_DE": "Export in eine CSV Datei starten",
|
|
||||||
"C": "Export to csv file started"
|
|
||||||
},
|
|
||||||
"csv.export.finished": {
|
|
||||||
"de_DE.UTF-8": "Export in eine CSV Datei beendet",
|
|
||||||
"de_DE": "Export in eine CSV Datei beendet",
|
|
||||||
"C": "Export to csv file finished"
|
|
||||||
},
|
|
||||||
"csv.import.started": {
|
|
||||||
"de_DE.UTF-8": "Import aus einer CSV Datei",
|
|
||||||
"de_DE": "Import aus einer CSV Datei",
|
|
||||||
"C": "Import from a csv file"
|
|
||||||
},
|
|
||||||
"csv.import.finished": {
|
|
||||||
"de_DE.UTF-8": "Import aus einer CSV Datei beendet",
|
|
||||||
"de_DE": "Import aus einer CSV Datei beendet",
|
|
||||||
"C": "Import from a csv file finished"
|
|
||||||
},
|
|
||||||
"redis.connection.error": {
|
|
||||||
"de_DE.UTF-8": "Es konnte keine Redis Verbindung aufgebaut werden",
|
|
||||||
"de_DE": "Es konnte keine Redis Verbindung aufgebaut werden",
|
|
||||||
"C": "Could not establish a redis connection"
|
|
||||||
},
|
|
||||||
"policy.hashmap.success": {
|
|
||||||
"de_DE.UTF-8": "Hashmap wurde erfolgreich erstellt",
|
|
||||||
"de_DE": "Hashmap wurde erfolgreich erstellt",
|
|
||||||
"C": "Hashmap creation was successfull"
|
|
||||||
},
|
|
||||||
"policy.hashmap.failed": {
|
|
||||||
"de_DE.UTF-8": "Hashmap konnte nicht erstellt werden",
|
|
||||||
"de_DE": "Hashmap konnte nicht erstellt werden",
|
|
||||||
"C": "Hashmap creation failed"
|
|
||||||
},
|
|
||||||
"policy.menu.label": {
|
|
||||||
"de_DE.UTF-8": "Menü",
|
|
||||||
"de_DE": "Menü",
|
|
||||||
"C": "Menu"
|
|
||||||
},
|
|
||||||
"policy.menu.label_account": {
|
|
||||||
"de_DE.UTF-8": "Aktueller Benutzer",
|
|
||||||
"de_DE": "Aktueller Benutzer",
|
|
||||||
"C": "Active user"
|
|
||||||
},
|
|
||||||
"policy.menu.label_quit": {
|
|
||||||
"de_DE.UTF-8": "Beenden",
|
|
||||||
"de_DE": "Beenden",
|
|
||||||
"C": "Quit"
|
|
||||||
},
|
|
||||||
"policy.menu.label_toggle_theme": {
|
|
||||||
"de_DE.UTF-8": "Thema wechseln",
|
|
||||||
"de_DE": "Thema wechseln",
|
|
||||||
"C": "Toggle theme"
|
|
||||||
},
|
|
||||||
"policy.string.header": {
|
|
||||||
"de_DE.UTF-8": "Validierung Versicherungsnummer",
|
|
||||||
"de_DE": "Validierung Versicherungsnummer",
|
|
||||||
"C": "Policy number validation"
|
|
||||||
},
|
|
||||||
"policy.string.label_policy_data": {
|
|
||||||
"de_DE.UTF-8": "Importierte Daten",
|
|
||||||
"de_DE": "Importierte Daten",
|
|
||||||
"C": "imported data"
|
|
||||||
},
|
|
||||||
"policy.string.label_policy_list": {
|
|
||||||
"de_DE.UTF-8": "Versicherungsnummern-Liste",
|
|
||||||
"de_DE": "Versicherungsnummern-Liste",
|
|
||||||
"C": "policy list"
|
|
||||||
},
|
|
||||||
"policy.string.label_policy_number": {
|
|
||||||
"de_DE.UTF-8": "Versicherungsnummer",
|
|
||||||
"de_DE": "Versicherungsnummer",
|
|
||||||
"C": "policy number"
|
|
||||||
},
|
|
||||||
"policy.string.label_result": {
|
|
||||||
"de_DE.UTF-8": "Prüfungsergebnis",
|
|
||||||
"de_DE": "Prüfungsergebnis",
|
|
||||||
"C": "check result"
|
|
||||||
},
|
|
||||||
"policy.string.data_count": {
|
|
||||||
"de_DE.UTF-8": "Anzahl Prüflistenelemente",
|
|
||||||
"de_DE": "Anzahl Prüflistenelemente",
|
|
||||||
"C": "Number of checklist elements"
|
|
||||||
},
|
|
||||||
"policy.string.import_data": {
|
|
||||||
"de_DE.UTF-8": "Importieren der Prüflisten-Elemente",
|
|
||||||
"de_DE": "Importieren der Prüflisten-Elemente",
|
|
||||||
"C": "Import checklist elements"
|
|
||||||
},
|
|
||||||
"policy.string.progress_time": {
|
|
||||||
"de_DE.UTF-8": "Bearbeitungszeit",
|
|
||||||
"de_DE": "Bearbeitungszeit",
|
|
||||||
"C": "processing time"
|
|
||||||
},
|
|
||||||
"policy.string.progress_text": {
|
|
||||||
"de_DE.UTF-8": "Importiere Daten",
|
|
||||||
"de_DE": "Importiere Daten",
|
|
||||||
"C": "Importing data"
|
|
||||||
},
|
|
||||||
"policy.validation.button_failed": {
|
|
||||||
"de_DE.UTF-8": "ungültig",
|
|
||||||
"de_DE": "ungültig",
|
|
||||||
"C": "invalid"
|
|
||||||
},
|
|
||||||
"policy.validation.button_success": {
|
|
||||||
"de_DE.UTF-8": "gültig",
|
|
||||||
"de_DE": "gültig",
|
|
||||||
"C": "valid"
|
|
||||||
},
|
|
||||||
"policy.validation.failed": {
|
|
||||||
"de_DE.UTF-8": "Die Versicherungsscheinnummber ist ungültig",
|
|
||||||
"de_DE": "Die Versicherungsscheinnummber ist ungültig",
|
|
||||||
"C": "The given policy number is invalid"
|
|
||||||
},
|
|
||||||
"policy.validation.new": {
|
|
||||||
"de_DE.UTF-8": "Neue Prüfung",
|
|
||||||
"de_DE": "Neue Prüfung",
|
|
||||||
"C": "New validation"
|
|
||||||
},
|
|
||||||
"policy.validation.success": {
|
|
||||||
"de_DE.UTF-8": "Die Versicherungsscheinnummber ist gültig",
|
|
||||||
"de_DE": "Die Versicherungsscheinnummber ist gültig",
|
|
||||||
"C": "The given policy number is valid"
|
|
||||||
},
|
|
||||||
"policy.validation.started": {
|
|
||||||
"de_DE.UTF-8": "Die Prüfung der Versicherungsscheinnummber wurde gestartet",
|
|
||||||
"de_DE": "Die Prüfung der Versicherungsscheinnummber wurde gestartet",
|
|
||||||
"C": "Validation of the policy number started"
|
|
||||||
},
|
|
||||||
"policy.validation.finished": {
|
|
||||||
"de_DE.UTF-8": "Die Prüfung der Versicherungsscheinnummber wurde beendet",
|
|
||||||
"de_DE": "Die Prüfung der Versicherungsscheinnummber wurde beendet",
|
|
||||||
"C": "Validation of the policy number finished"
|
|
||||||
},
|
|
||||||
"policy.validation.invalid_input": {
|
|
||||||
"de_DE.UTF-8": "Nur Nummer sind zulässig",
|
|
||||||
"de_DE": "Nur Nummer sind zulässig",
|
|
||||||
"C": "Only numbers are valid"
|
|
||||||
},
|
|
||||||
"policy.validation.not_found": {
|
|
||||||
"de_DE.UTF-8": "Nummer ist nicht aktiviert",
|
|
||||||
"de_DE": "Nummer ist nicht aktiviert",
|
|
||||||
"C": "number isn't marked active"
|
|
||||||
},
|
|
||||||
"policy.validation.to_long": {
|
|
||||||
"de_DE.UTF-8": "Die Nummer ist zu lang",
|
|
||||||
"de_DE": "Die Nummer ist zu lang",
|
|
||||||
"C": "Policy number is to long"
|
|
||||||
},
|
|
||||||
"policy.validation.to_short": {
|
|
||||||
"de_DE.UTF-8": "Die Nummer ist zu kurz",
|
|
||||||
"de_DE": "Die Nummer ist zu kurz",
|
|
||||||
"C": "Policy number is to short"
|
|
||||||
},
|
|
||||||
"sendticketdata.export.started":{
|
|
||||||
"de_DE.UTF-8": "Versenden von ticket daten via eMail gestartet",
|
|
||||||
"de_DE": "Versenden von ticket daten via eMail gestartet",
|
|
||||||
"C": "Send ticket data via eMail started"
|
|
||||||
},
|
|
||||||
"sendticketdata.export.finished":{
|
|
||||||
"de_DE.UTF-8": "Versenden von ticket daten via eMail beendet",
|
|
||||||
"de_DE": "Versenden von ticket daten via eMail beendet",
|
|
||||||
"C": "Send ticket data via eMail finished"
|
|
||||||
},
|
|
||||||
"state.started": {
|
|
||||||
"de_DE.UTF-8": "gestartet",
|
|
||||||
"de_DE": "gestartet",
|
|
||||||
"C": "started"
|
|
||||||
},
|
|
||||||
"state.finished": {
|
|
||||||
"de_DE.UTF-8": "beendet",
|
|
||||||
"de_DE": "beended",
|
|
||||||
"C": "finished"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,12 +8,8 @@
|
|||||||
// suppress creation of a new console window on window
|
// suppress creation of a new console window on window
|
||||||
#![windows_subsystem = "windows"]
|
#![windows_subsystem = "windows"]
|
||||||
|
|
||||||
//#[macro_use]
|
|
||||||
//extern crate lazy_static;
|
|
||||||
|
|
||||||
//use chrono::{Local, DateTime};
|
//use chrono::{Local, DateTime};
|
||||||
use dotenv::dotenv;
|
use dotenv::dotenv;
|
||||||
use locales::t;
|
|
||||||
use cfg_if::cfg_if;
|
use cfg_if::cfg_if;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::env;
|
use std::env;
|
||||||
@@ -33,6 +29,9 @@ use orbtk::theme_fluent::{THEME_FLUENT, THEME_FLUENT_COLORS_DARK, THEME_FLUENT_F
|
|||||||
// The Main view
|
// The Main view
|
||||||
use advotracker_client::widgets::main_view;
|
use advotracker_client::widgets::main_view;
|
||||||
|
|
||||||
|
// get the macro (t!) accessing the internationalization strings
|
||||||
|
include!(concat!(env!("OUT_DIR"), "/i18n.rs"));
|
||||||
|
|
||||||
mod parse_args;
|
mod parse_args;
|
||||||
|
|
||||||
/// define valid environment variables provided via .env files
|
/// define valid environment variables provided via .env files
|
||||||
@@ -40,7 +39,7 @@ mod parse_args;
|
|||||||
/// this is primarily used in testing scenarios (eg. debugging)
|
/// this is primarily used in testing scenarios (eg. debugging)
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
struct Environment {
|
struct Environment {
|
||||||
lang: String,
|
lang: Lang,
|
||||||
test_lang: String,
|
test_lang: String,
|
||||||
rust_log: String,
|
rust_log: String,
|
||||||
}
|
}
|
||||||
@@ -60,8 +59,8 @@ static ADVOTRACKER_DE_DE: &str = include_str!("../assets/advotracker/advotracker
|
|||||||
/// Get the active language environment.
|
/// Get the active language environment.
|
||||||
fn get_lang() -> String {
|
fn get_lang() -> String {
|
||||||
// get system environment
|
// get system environment
|
||||||
let mut lang = env::var("LANG").unwrap_or_else(|_| "C".to_string());
|
let mut lang = env::var("LANG").unwrap_or_else(|_| "en".to_string());
|
||||||
lang = lang.substring(0,5).to_string(); // "de_DE.UTF-8" -> "de_DE"
|
lang = lang.substring(0,2).to_string(); // "de_DE.UTF-8" -> "de"
|
||||||
info!("GUI-Language: preset to {:?}", lang);
|
info!("GUI-Language: preset to {:?}", lang);
|
||||||
|
|
||||||
// testing environment: read from .env file
|
// testing environment: read from .env file
|
||||||
@@ -137,37 +136,38 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
// reference: https://tokio.rs/blog/2019-08-tracing/
|
// reference: https://tokio.rs/blog/2019-08-tracing/
|
||||||
let span = tracing::span!(Level::TRACE, "advotracker");
|
let span = tracing::span!(Level::TRACE, "advotracker");
|
||||||
let _enter = span.enter();
|
let _enter = span.enter();
|
||||||
let subscriber = fmt::Subscriber::builder()
|
let collector = fmt::Subscriber::builder()
|
||||||
.with_env_filter(&rust_log)
|
.with_env_filter(&rust_log)
|
||||||
//.with_max_level(tracing::Level::DEBUG)
|
//.with_max_level(tracing::Level::DEBUG)
|
||||||
.finish();
|
.finish();
|
||||||
|
|
||||||
tracing::subscriber::with_default(subscriber, || {
|
tracing::subscriber::with_default(collector, || {
|
||||||
// get system environment
|
// get system environment
|
||||||
let lang = get_lang();
|
//let lang = get_lang();
|
||||||
|
let lang = Lang::De("de");
|
||||||
|
|
||||||
let mut state = t!("state.started", lang);
|
let mut state = t!(state_started => lang);
|
||||||
let mut res = t!("parse.environment", lang);
|
let mut res = t!(parse_environment => lang);
|
||||||
trace!(target: "advotracker", process = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
trace!(target: "advotracker", environment = "system", lang = ?lang);
|
trace!(target: "advotracker", environment = "system", lang = ?lang);
|
||||||
trace!(target: "advotracker", machine = ?&machine_kind);
|
trace!(target: "advotracker", machine = ?&machine_kind);
|
||||||
|
|
||||||
// how to handle unimplemented lang resources??
|
// how to handle unimplemented lang resources??
|
||||||
res = t!("parse.environment", lang);
|
res = t!(parse_environment => lang);
|
||||||
trace!(target: "advotracker", environment = "envy", lang = ?lang);
|
trace!(target: "advotracker", environment = "envy", lang = ?lang);
|
||||||
state = t!("state.finished", lang);
|
state = t!(state_finished => lang);
|
||||||
trace!(target: "advotracker", process = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
|
|
||||||
// initialize viperus structure
|
// initialize viperus structure
|
||||||
let mut viperus = Viperus::new();
|
let mut viperus = Viperus::new();
|
||||||
|
|
||||||
// parse commandline arguments
|
// parse commandline arguments
|
||||||
res = t!("parse.arguments", lang);
|
res = t!(parse_arguments => lang);
|
||||||
state = t!("state.started", lang);
|
state = t!(state_started => lang);
|
||||||
trace!(target: "advotracker", process = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
|
|
||||||
let _ = parse_args(&mut viperus);
|
let _ = parse_args(&mut viperus);
|
||||||
state = t!("state.finished", lang);
|
state = t!(state_finished => lang);
|
||||||
trace!(target: "advotracker", process = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
|
|
||||||
// type conversion (viperus String -> u64)
|
// type conversion (viperus String -> u64)
|
||||||
@@ -175,8 +175,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
trace!(target: "advotracker", test_policy_number = ?test_policy_number);
|
trace!(target: "advotracker", test_policy_number = ?test_policy_number);
|
||||||
|
|
||||||
// main tasks
|
// main tasks
|
||||||
res = t!("main.started", lang);
|
res = t!(main_started => lang);
|
||||||
state = t!("state.started", lang);
|
state = t!(state_started => lang);
|
||||||
trace!(target: "advotracker", process = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
|
|
||||||
// use this only if you want to run it as web application.
|
// use this only if you want to run it as web application.
|
||||||
@@ -185,10 +185,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
// Preset localization and language from given environment.
|
// Preset localization and language from given environment.
|
||||||
// if no dictionary is set for the chosen default language
|
// if no dictionary is set for the chosen default language
|
||||||
// the content of the text property will be drawn.
|
// the content of the text property will be drawn.
|
||||||
//let language = lang.substring(0,5); // "de_DE.UTF-8" -> "de_DE"
|
|
||||||
//info!("GUI-Language: preset to {:?}", language);
|
|
||||||
let localization = RonLocalization::create()
|
let localization = RonLocalization::create()
|
||||||
.language(&lang)
|
.language("de")
|
||||||
.dictionary("de_DE", ADVOTRACKER_DE_DE)
|
.dictionary("de_DE", ADVOTRACKER_DE_DE)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@@ -208,8 +206,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
})
|
})
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
state = t!("state.finished", lang);
|
state = t!(state_finished => lang);
|
||||||
res = t!("main.finished", lang);
|
res = t!(main_finished => lang);
|
||||||
trace!(target: "advotracker", process = ?res, state = ?state);
|
trace!(target: "advotracker", process = ?res, state = ?state);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -6,20 +6,21 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
//use chrono::{Local, DateTime};
|
//use chrono::{Local, DateTime};
|
||||||
use locales::t;
|
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use tracing::trace;
|
use tracing::trace;
|
||||||
|
|
||||||
|
use crate::Lang;
|
||||||
|
|
||||||
/// export as csv format
|
/// export as csv format
|
||||||
/// https://docs.rs/csv/1.1.3/csv/cookbook/index.html
|
/// https://docs.rs/csv/1.1.3/csv/cookbook/index.html
|
||||||
/// https://blog.burntsushi.net/csv/
|
/// https://blog.burntsushi.net/csv/
|
||||||
pub fn export(p: &mut String, lang: &str) -> Result<(), Box<dyn Error>> {
|
pub fn export(p: &mut String, lang: &Lang) -> Result<(), Box<dyn Error>> {
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
//use std::ffi::OsStr;
|
//use std::ffi::OsStr;
|
||||||
|
|
||||||
let mut res = t!("csv.export.started", lang);
|
let mut res = t!(csv_export_started => lang);
|
||||||
let mut state = t!("state.started", lang);
|
let mut state = t!(state_started => lang);
|
||||||
trace!(target: "csv-export", process = ?res, state = ?state);
|
trace!(target: "csv-export", process = ?res, state = ?state);
|
||||||
|
|
||||||
// Note: slash syntax also works on Windows!
|
// Note: slash syntax also works on Windows!
|
||||||
@@ -29,8 +30,8 @@ pub fn export(p: &mut String, lang: &str) -> Result<(), Box<dyn Error>> {
|
|||||||
let file = File::open(path)?;
|
let file = File::open(path)?;
|
||||||
|
|
||||||
trace!(target: "csv.export", extension = ?path.extension(), file = ?file);
|
trace!(target: "csv.export", extension = ?path.extension(), file = ?file);
|
||||||
state = t!("state.finished", lang);
|
state = t!(state_finished => lang);
|
||||||
res = t!("csv.export.finished", lang);
|
res = t!(csv_export_finished => lang);
|
||||||
trace!(target: "csv-export", process = ?res, state = ?state);
|
trace!(target: "csv-export", process = ?res, state = ?state);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -10,18 +10,20 @@ use lettre::{
|
|||||||
Message, SmtpTransport, Transport,
|
Message, SmtpTransport, Transport,
|
||||||
transport::smtp::authentication::Credentials,
|
transport::smtp::authentication::Credentials,
|
||||||
};
|
};
|
||||||
use locales::t;
|
|
||||||
use maud::html;
|
use maud::html;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
//use std::process;
|
//use std::process;
|
||||||
use tracing::{info, trace};
|
use tracing::{info, trace};
|
||||||
|
|
||||||
use crate::data::structures::Email;
|
use crate::{
|
||||||
|
data::structures::Email,
|
||||||
|
Lang,
|
||||||
|
};
|
||||||
|
|
||||||
/// send ticket data via eMail
|
/// send ticket data via eMail
|
||||||
pub fn sendticketdata(email: &Email, lang: &str) -> Result<(), Box<dyn Error>> {
|
pub fn sendticketdata(email: &Email, lang: &Lang) -> Result<(), Box<dyn Error>> {
|
||||||
let mut res = t!("sendticketdata.export.started", lang);
|
let mut res = t!(sendticketdata_export_started => lang);
|
||||||
let mut state = t!("state.started", lang);
|
let mut state = t!(state_started =>lang);
|
||||||
trace!(target: "sendticketdata", process = ?res, state = ?state);
|
trace!(target: "sendticketdata", process = ?res, state = ?state);
|
||||||
|
|
||||||
// The html we want to send.
|
// The html we want to send.
|
||||||
@@ -114,8 +116,8 @@ pub fn sendticketdata(email: &Email, lang: &str) -> Result<(), Box<dyn Error>> {
|
|||||||
// Send the email and catch the error if it isn't successfully
|
// Send the email and catch the error if it isn't successfully
|
||||||
let _result = mailer.send(&message)?;
|
let _result = mailer.send(&message)?;
|
||||||
|
|
||||||
state = t!("state.finished", lang);
|
state = t!(state_finished => lang);
|
||||||
res = t!("sendticketdata.export.finished", lang);
|
res = t!(sendticketdata_export_finished => lang);
|
||||||
trace!(target: "sendticketdata", process = ?res, state = ?state);
|
trace!(target: "sendticketdata", process = ?res, state = ?state);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -6,15 +6,16 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
use chrono::{Local, DateTime};
|
use chrono::{Local, DateTime};
|
||||||
use locales::t;
|
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::time::{Duration, SystemTime};
|
use std::time::{Duration, SystemTime};
|
||||||
use tracing::trace;
|
use tracing::trace;
|
||||||
|
|
||||||
//use crate::db::redis;
|
//use crate::db::redis;
|
||||||
use crate::data::structures::{PolicyCode, PolicyDataList, PolicyData};
|
use crate::{
|
||||||
//use crate::data::structures::PolicyDataList;
|
data::structures::{PolicyCode, PolicyDataList, PolicyData},
|
||||||
|
Lang,
|
||||||
|
};
|
||||||
|
|
||||||
/// import AllianzDirectCall data from a csv delimeted file
|
/// import AllianzDirectCall data from a csv delimeted file
|
||||||
/// save records to redis backend
|
/// save records to redis backend
|
||||||
@@ -22,15 +23,15 @@ use crate::data::structures::{PolicyCode, PolicyDataList, PolicyData};
|
|||||||
/// https://blog.burntsushi.net/csv/
|
/// https://blog.burntsushi.net/csv/
|
||||||
pub fn import(p: &mut String, data_list: &mut PolicyDataList,
|
pub fn import(p: &mut String, data_list: &mut PolicyDataList,
|
||||||
policy_numbers: &mut HashMap<u64, PolicyCode>,
|
policy_numbers: &mut HashMap<u64, PolicyCode>,
|
||||||
policy_data_count: &mut u64,
|
policy_data_count: &mut u64)
|
||||||
lang: &str)
|
|
||||||
-> Result<(u64, Duration), Box<dyn Error>> {
|
-> Result<(u64, Duration), Box<dyn Error>> {
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use std::ffi::OsStr;
|
use std::ffi::OsStr;
|
||||||
|
|
||||||
let mut res = t!("csv.import.started", lang);
|
let lang = Lang::De("");
|
||||||
let mut state = t!("state.started", lang);
|
let mut res = t!(csv_import_started => lang);
|
||||||
|
let mut state = t!(state_started => lang);
|
||||||
let time_start = SystemTime::now();
|
let time_start = SystemTime::now();
|
||||||
let datetime: DateTime<Local> = time_start.into();
|
let datetime: DateTime<Local> = time_start.into();
|
||||||
|
|
||||||
@@ -90,8 +91,8 @@ pub fn import(p: &mut String, data_list: &mut PolicyDataList,
|
|||||||
.expect("Clock may have gone backwards");
|
.expect("Clock may have gone backwards");
|
||||||
trace!(target: "csv-import", record_count = ?count, duration = ?duration);
|
trace!(target: "csv-import", record_count = ?count, duration = ?duration);
|
||||||
|
|
||||||
state = t!("state.finished", lang);
|
state = t!(state_finished => lang);
|
||||||
res = t!("csv.import.finished", lang);
|
res = t!(csv_import_finished => lang);
|
||||||
let datetime: DateTime<Local> = time_end.into();
|
let datetime: DateTime<Local> = time_end.into();
|
||||||
trace!(target: "csv-import", process = ?res, state = ?state, date_stop = ?datetime.to_string());
|
trace!(target: "csv-import", process = ?res, state = ?state, date_stop = ?datetime.to_string());
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
* SPDX-License-Identifier: (0BSD or MIT)
|
* SPDX-License-Identifier: (0BSD or MIT)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use locales::t;
|
|
||||||
use orbtk::prelude::*;
|
use orbtk::prelude::*;
|
||||||
|
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
@@ -19,6 +18,7 @@ use crate::{
|
|||||||
structures::{PolicyCode, PolicyDataList, PolicyList},
|
structures::{PolicyCode, PolicyDataList, PolicyList},
|
||||||
constants::*,
|
constants::*,
|
||||||
},
|
},
|
||||||
|
Lang,
|
||||||
//services::imports::allianzdirectcall::import,
|
//services::imports::allianzdirectcall::import,
|
||||||
services::imports::allianzdirectcall,
|
services::imports::allianzdirectcall,
|
||||||
widgets::global_state::GlobalState,
|
widgets::global_state::GlobalState,
|
||||||
@@ -68,7 +68,7 @@ pub struct PolicycheckState {
|
|||||||
button_menu: Entity,
|
button_menu: Entity,
|
||||||
duration: Duration,
|
duration: Duration,
|
||||||
label_result: Entity,
|
label_result: Entity,
|
||||||
lang: String,
|
lang: Lang,
|
||||||
policy_data_count: u64,
|
policy_data_count: u64,
|
||||||
//policy_number: Entity,
|
//policy_number: Entity,
|
||||||
policy_numbers: HashMap<u64, PolicyCode>,
|
policy_numbers: HashMap<u64, PolicyCode>,
|
||||||
@@ -93,7 +93,7 @@ impl PolicycheckState {
|
|||||||
trace!(target: "advotracker", policy_list = ?policy_list);
|
trace!(target: "advotracker", policy_list = ?policy_list);
|
||||||
|
|
||||||
// create vector to hold imported data
|
// create vector to hold imported data
|
||||||
let res = t!("policy.string.label_policy_data", self.lang);
|
let res = t!(policy_string_label_policy_data => self.lang);
|
||||||
let mut policy_data = PolicyDataList::new(res);
|
let mut policy_data = PolicyDataList::new(res);
|
||||||
trace!(target: "advotracker", policy_data = ?policy_data);
|
trace!(target: "advotracker", policy_data = ?policy_data);
|
||||||
|
|
||||||
@@ -103,8 +103,7 @@ impl PolicycheckState {
|
|||||||
//let mut csv_import_path = v.get::<String>("import_file").unwrap();
|
//let mut csv_import_path = v.get::<String>("import_file").unwrap();
|
||||||
let mut csv_import_path = String::from("POLLFNR_WOECHENTLICH.txt");
|
let mut csv_import_path = String::from("POLLFNR_WOECHENTLICH.txt");
|
||||||
match allianzdirectcall::import(&mut csv_import_path, &mut policy_data,
|
match allianzdirectcall::import(&mut csv_import_path, &mut policy_data,
|
||||||
&mut policy_numbers, &mut self.policy_data_count,
|
&mut policy_numbers, &mut self.policy_data_count) {
|
||||||
&self.lang) {
|
|
||||||
Ok((count, duration)) => {
|
Ok((count, duration)) => {
|
||||||
self.policy_data_count = count;
|
self.policy_data_count = count;
|
||||||
self.duration = duration;
|
self.duration = duration;
|
||||||
@@ -155,7 +154,7 @@ impl PolicycheckState {
|
|||||||
// importing policy code elements from csv-file
|
// importing policy code elements from csv-file
|
||||||
match self.create_hashmap(ctx) {
|
match self.create_hashmap(ctx) {
|
||||||
Ok(()) => {
|
Ok(()) => {
|
||||||
let res = t!("policy.hashmap.success", self.lang);
|
let res = t!(policy_hashmap_success => self.lang);
|
||||||
info!("hashmap has: {:?} entries", self.policy_data_count);
|
info!("hashmap has: {:?} entries", self.policy_data_count);
|
||||||
trace!(target: "advotracker",
|
trace!(target: "advotracker",
|
||||||
hashmap_status = ?res,
|
hashmap_status = ?res,
|
||||||
@@ -166,7 +165,7 @@ impl PolicycheckState {
|
|||||||
|
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
let res = t!("policy.hashmap.failed", self.lang);
|
let res = t!(policy_hashmap_failed => self.lang);
|
||||||
error!("{:?}", res);
|
error!("{:?}", res);
|
||||||
trace!(target: "advotracker", hashmap_status = ?res);
|
trace!(target: "advotracker", hashmap_status = ?res);
|
||||||
}
|
}
|
||||||
@@ -254,7 +253,7 @@ impl PolicycheckState {
|
|||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
// no matching key
|
// no matching key
|
||||||
let res = t!("policy.validation.failed", self.lang);
|
let res = t!(policy_validation_failed => self.lang);
|
||||||
trace!(target: "advotracker", state = ?res, policy_number = ?p);
|
trace!(target: "advotracker", state = ?res, policy_number = ?p);
|
||||||
|
|
||||||
TextBox::foreground_set(&mut ctx.child(ID_POLICY_CHECK_POLICY_NUMBER), String::from("#FF0000"));
|
TextBox::foreground_set(&mut ctx.child(ID_POLICY_CHECK_POLICY_NUMBER), String::from("#FF0000"));
|
||||||
@@ -292,7 +291,7 @@ impl PolicycheckState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if policy_number_length < 10 {
|
if policy_number_length < 10 {
|
||||||
let res = t!("policy.validation.failed", self.lang);
|
let res = t!(policy_validation_failed => self.lang);
|
||||||
trace!(target: "advotracker", state = ?res, reason = "number to short");
|
trace!(target: "advotracker", state = ?res, reason = "number to short");
|
||||||
|
|
||||||
TextBox::foreground_set(&mut ctx.child(ID_POLICY_CHECK_POLICY_NUMBER), String::from("#FF0000"));
|
TextBox::foreground_set(&mut ctx.child(ID_POLICY_CHECK_POLICY_NUMBER), String::from("#FF0000"));
|
||||||
@@ -312,7 +311,7 @@ impl PolicycheckState {
|
|||||||
TextBlock::visibility_set(&mut ctx.child(ID_POLICY_CHECK_LABEL_HINT), Visibility::Visible);
|
TextBlock::visibility_set(&mut ctx.child(ID_POLICY_CHECK_LABEL_HINT), Visibility::Visible);
|
||||||
}
|
}
|
||||||
if policy_number_length > 10 {
|
if policy_number_length > 10 {
|
||||||
let res = t!("policy.validation.failed", self.lang);
|
let res = t!(policy_validation_failed => self.lang);
|
||||||
trace!(target: "advotracker", state = ?res, reason = "number to long");
|
trace!(target: "advotracker", state = ?res, reason = "number to long");
|
||||||
|
|
||||||
TextBox::foreground_set(&mut ctx.child(ID_POLICY_CHECK_POLICY_NUMBER), String::from("#FF0000"));
|
TextBox::foreground_set(&mut ctx.child(ID_POLICY_CHECK_POLICY_NUMBER), String::from("#FF0000"));
|
||||||
@@ -420,7 +419,7 @@ impl PolicycheckState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn update_progress_bar(&self, ctx: &mut Context<'_>) {
|
fn update_progress_bar(&self, ctx: &mut Context<'_>) {
|
||||||
let res = t!("policy.string.progress_time", self.lang);
|
let res = t!(policy_string_progress_time => self.lang);
|
||||||
let string_duration = format!("{}: {:?}", res, self.duration);
|
let string_duration = format!("{}: {:?}", res, self.duration);
|
||||||
|
|
||||||
TextBlock::text_set(&mut ctx.child(ID_POLICY_CHECK_PROGRESS_TIME), string_duration);
|
TextBlock::text_set(&mut ctx.child(ID_POLICY_CHECK_PROGRESS_TIME), string_duration);
|
||||||
@@ -447,7 +446,8 @@ impl State for PolicycheckState {
|
|||||||
trace!(target: "advotracker", policycheck_state = "init", status = "started");
|
trace!(target: "advotracker", policycheck_state = "init", status = "started");
|
||||||
|
|
||||||
// Get language from environment
|
// Get language from environment
|
||||||
self.lang = PolicycheckState::get_lang();
|
// self.lang = PolicycheckState::get_lang();
|
||||||
|
self.lang = Lang::De("");
|
||||||
|
|
||||||
// Initialize required entities
|
// Initialize required entities
|
||||||
self.button_menu = ctx
|
self.button_menu = ctx
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ use crate::{
|
|||||||
services::exports::send_ticketdata::sendticketdata,
|
services::exports::send_ticketdata::sendticketdata,
|
||||||
widgets::ticketdata::ticketdata_view::TicketdataView,
|
widgets::ticketdata::ticketdata_view::TicketdataView,
|
||||||
//widgets::policycheck::policycheck_state::PolicycheckAction,
|
//widgets::policycheck::policycheck_state::PolicycheckAction,
|
||||||
|
Lang,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Valid `actions` that are handled as state changes in the `Ticketdata` widget.
|
/// Valid `actions` that are handled as state changes in the `Ticketdata` widget.
|
||||||
@@ -47,7 +48,7 @@ struct Environment {
|
|||||||
pub struct TicketdataState {
|
pub struct TicketdataState {
|
||||||
actions: Vec<TicketdataAction>,
|
actions: Vec<TicketdataAction>,
|
||||||
button_menu: Entity,
|
button_menu: Entity,
|
||||||
lang: String,
|
lang: Lang,
|
||||||
target: Entity
|
target: Entity
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -113,7 +114,7 @@ impl TicketdataState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn send_form(entity: Entity, ctx: &mut Context<'_>, lang: &str) {
|
pub fn send_form(entity: Entity, ctx: &mut Context<'_>, _lang: Lang) {
|
||||||
info!("TicketdataState: processing entity[{:?}]", entity);
|
info!("TicketdataState: processing entity[{:?}]", entity);
|
||||||
|
|
||||||
let mail_to_index = *TicketdataView::selected_index_ref(&ctx.widget()) as usize;
|
let mail_to_index = *TicketdataView::selected_index_ref(&ctx.widget()) as usize;
|
||||||
@@ -139,6 +140,7 @@ impl TicketdataState {
|
|||||||
trace!("eMail fields: {:?}", email);
|
trace!("eMail fields: {:?}", email);
|
||||||
|
|
||||||
// send email via service
|
// send email via service
|
||||||
|
let lang = Lang::De("");
|
||||||
if let Err(err) = sendticketdata(&email, &lang) {
|
if let Err(err) = sendticketdata(&email, &lang) {
|
||||||
error!("sendticketdata error: {:?}", err);
|
error!("sendticketdata error: {:?}", err);
|
||||||
Button::icon_brush_set(&mut ctx.child(ID_TICKET_DATA_ACTION_BUTTON_SEND), String::from("#008000"));
|
Button::icon_brush_set(&mut ctx.child(ID_TICKET_DATA_ACTION_BUTTON_SEND), String::from("#008000"));
|
||||||
@@ -178,7 +180,8 @@ impl State for TicketdataState {
|
|||||||
.expect("TicketState.init: Can't find resource entity 'target'."));
|
.expect("TicketState.init: Can't find resource entity 'target'."));
|
||||||
|
|
||||||
// Get language from environment
|
// Get language from environment
|
||||||
self.lang = TicketdataState::get_lang();
|
//self.lang = TicketdataState::get_lang();
|
||||||
|
//let self.lang = Lang::De("");
|
||||||
|
|
||||||
Stack::visibility_set(&mut ctx.child(ID_TICKET_DATA_ACTION_STACK), Visibility::Collapsed);
|
Stack::visibility_set(&mut ctx.child(ID_TICKET_DATA_ACTION_STACK), Visibility::Collapsed);
|
||||||
Button::icon_set(&mut ctx.child(ID_TICKET_DATA_ACTION_BUTTON_CLEAR), material_icons_font::MD_CLEAR);
|
Button::icon_set(&mut ctx.child(ID_TICKET_DATA_ACTION_BUTTON_CLEAR), material_icons_font::MD_CLEAR);
|
||||||
@@ -203,7 +206,7 @@ impl State for TicketdataState {
|
|||||||
TicketdataState::clear_form(ctx.entity(), &id, ctx);
|
TicketdataState::clear_form(ctx.entity(), &id, ctx);
|
||||||
}
|
}
|
||||||
TicketdataAction::SendForm() => {
|
TicketdataAction::SendForm() => {
|
||||||
TicketdataState::send_form(ctx.entity(), ctx, &self.lang);
|
TicketdataState::send_form(ctx.entity(), ctx, self.lang);
|
||||||
}
|
}
|
||||||
TicketdataAction::UpdatePolicyCode(id) => {
|
TicketdataAction::UpdatePolicyCode(id) => {
|
||||||
TicketdataState::update_policy_code(ctx.entity(), &id, ctx);
|
TicketdataState::update_policy_code(ctx.entity(), &id, ctx);
|
||||||
|
|||||||
Reference in New Issue
Block a user