Skip to content

Commit

Permalink
Update v4.3.20250107
Browse files Browse the repository at this point in the history
  • Loading branch information
Wilkware committed Jan 8, 2025
1 parent c3dcaa1 commit cf75673
Show file tree
Hide file tree
Showing 31 changed files with 500 additions and 102 deletions.
12 changes: 9 additions & 3 deletions AbfallNavi/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Version](https://img.shields.io/badge/Symcon-PHP--Modul-red.svg?style=flat-square)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/)
[![Product](https://img.shields.io/badge/Symcon%20Version-6.4-blue.svg?style=flat-square)](https://www.symcon.de/produkt/)
[![Version](https://img.shields.io/badge/Modul%20Version-2.2.20240702-orange.svg?style=flat-square)](https://github.com/Wilkware/WasteManagement)
[![Version](https://img.shields.io/badge/Modul%20Version-2.3.20250107-orange.svg?style=flat-square)](https://github.com/Wilkware/WasteManagement)
[![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg?style=flat-square)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![Actions](https://img.shields.io/github/actions/workflow/status/wilkware/WasteManagement/style.yml?branch=main&label=CheckStyle&style=flat-square)](https://github.com/Wilkware/WasteManagement/actions)

Expand All @@ -15,7 +15,7 @@ IP-Symcon Modul für die Visualisierung von Entsorgungsterminen.
3. [Installation](#user-content-3-installation)
4. [Einrichten der Instanzen in IP-Symcon](#user-content-4-einrichten-der-instanzen-in-ip-symcon)
5. [Statusvariablen und Profile](#user-content-5-statusvariablen-und-profile)
6. [WebFront](#user-content-6-webfront)
6. [Visualisierung](#user-content-6-visualisierung)
7. [PHP-Befehlsreferenz](#user-content-7-php-befehlsreferenz)
8. [Versionshistorie](#user-content-8-versionshistorie)

Expand Down Expand Up @@ -55,6 +55,7 @@ _Einstellungsbereich:_
Name | Beschreibung
----------------------- | ----------------------------------
Anbieter | 'AbfallNavi (regioit.de)'
Land | Landesauswahl (derzeit nur DE)

> Abfallwirtschaft ...
Expand Down Expand Up @@ -99,7 +100,7 @@ Entsorgungsart(en) | String | Abhängig vom Entsorgungsgebiet und den angebot

Es werden keine zusätzlichen Profile benötigt.

### 6. WebFront
### 6. Visualisierung

Man kann die Statusvariablen(Strings) direkt im WF verlinken.
Aber wie bei der Konfiguration beschrieben, muss man aufpassen wenn die Konfiguration geändert wird. Dann müssen gegebenenfalls die Links neu eingerichtet werden.
Expand All @@ -126,6 +127,11 @@ __Beispiel__: `REGIO_Update(12345);`

### 8. Versionshistorie

v2.3.20250107

* _NEU_: Internationalisierte Anbieterauswahl
* _FIX_: Dokumentation verbessert

v2.2.20240702

* _NEU_: Fallback wenn Service fehlschlägt (keine Subdomain)
Expand Down
13 changes: 13 additions & 0 deletions AbfallNavi/form.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,19 @@
"value": "null"
}
]
},
{
"type": "Select",
"name": "serviceCountry",
"caption": "Country:",
"width": "450px",
"onChange": "IPS_RequestAction($id,'OnChangeCountry',$serviceCountry);",
"options": [
{
"label": "Germany",
"value": "de"
}
]
}
]
},
Expand Down
4 changes: 4 additions & 0 deletions AbfallNavi/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
"This module uses the data provided by the Regio IT online service to display upcoming disposal dates.": "Dieses Modul nutzt die vom Online-Dienst Regio IT bereitgestellten Daten zur Darstellung der bevorstehenden Entsorgungstermine.",
"Online service ...": "Online Dienst ...",
"Provider:": "Anbieter:",
"Country:": "Land:",
"Germany": "Deutschland",
"Austria": "Österreich",
"Switzerland": "Schweiz",
"Waste management ...": "Abfallwirtschaft ...",
"Please select ...": "Bitte wählen ...",
"Disposal area:": "Entsorgungsgebiet:",
Expand Down
23 changes: 20 additions & 3 deletions AbfallNavi/module.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ public function Create()
parent::Create();
// Service Provider
$this->RegisterPropertyString('serviceProvider', self::SERVICE_PROVIDER);
$this->RegisterPropertyString('serviceCountry', 'de');
// Waste Management
$this->RegisterPropertyString('clientID', 'null');
$this->RegisterPropertyString('placeID', 'null');
Expand Down Expand Up @@ -105,21 +106,22 @@ public function GetConfigurationForm()
{
// Settings
$activate = $this->ReadPropertyBoolean('settingsActivate');
// Service Values
$country = $this->ReadPropertyString('serviceCountry');
// IO Values
$cId = $this->ReadPropertyString('clientID');
$pId = $this->ReadPropertyString('placeID');
$sId = $this->ReadPropertyString('streetID');
$aId = $this->ReadPropertyString('addonID');
// Debug output
$this->SendDebug(__FUNCTION__, 'clientID=' . $cId . ', placeId=' . $pId . ', streetId=' . $sId . ', addonId=' . $aId);

// Get Basic Form
$jsonForm = json_decode(file_get_contents(__DIR__ . '/form.json'), true);
// Service Provider
$jsonForm['elements'][self::ELEM_PROVI]['items'][0]['options'] = $this->GetProviderOptions();
$jsonForm['elements'][self::ELEM_PROVI]['items'][1]['options'] = $this->GetCountryOptions(self::SERVICE_PROVIDER);
// Waste Management
$jsonForm['elements'][self::ELEM_REGIO]['items'][0]['items'][0]['options'] = $this->GetClientOptions(self::SERVICE_PROVIDER);

$jsonForm['elements'][self::ELEM_REGIO]['items'][0]['items'][0]['options'] = $this->GetClientOptions(self::SERVICE_PROVIDER, $country);
// Prompt
$prompt = ['caption' => $this->Translate('Please select ...') . str_repeat(' ', 79), 'value' => 'null'];
// go throw the whole way
Expand Down Expand Up @@ -460,6 +462,21 @@ public function Update()
}
}

/**
* User has selected a new waste management country.
*
* @param string $id Country ID.
*/
protected function OnChangeCountry($id)
{
$this->SendDebug(__FUNCTION__, $id);
$options = $this->GetClientOptions(self::SERVICE_PROVIDER, $id);
$this->UpdateFormField('clientID', 'options', json_encode($options));
$this->UpdateFormField('clientID', 'visible', true);
$this->UpdateFormField('clientID', 'value', 'null');
$this->OnChangeClient('null');
}

/**
* User has selected a new waste management.
*
Expand Down
17 changes: 13 additions & 4 deletions Abfall_ICS/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![Version](https://img.shields.io/badge/Symcon-PHP--Modul-red.svg?style=flat-square)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/)
[![Product](https://img.shields.io/badge/Symcon%20Version-6.4-blue.svg?style=flat-square)](https://www.symcon.de/produkt/)
[![Version](https://img.shields.io/badge/Modul%20Version-1.1.20240702-orange.svg?style=flat-square)](https://github.com/Wilkware/WasteManagement)
[![Version](https://img.shields.io/badge/Modul%20Version-1.2.20250107-orange.svg?style=flat-square)](https://github.com/Wilkware/WasteManagement)
[![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg?style=flat-square)](https://creativecommons.org/licenses/by-nc-sa/4.0/)
[![Actions](https://img.shields.io/github/actions/workflow/status/wilkware/WasteManagement/style.yml?branch=main&label=CheckStyle&style=flat-square)](https://github.com/Wilkware/WasteManagement/actions)

Expand All @@ -15,7 +15,7 @@ IP-Symcon Modul für die Visualisierung von Entsorgungsterminen.
3. [Installation](#user-content-3-installation)
4. [Einrichten der Instanzen in IP-Symcon](#user-content-4-einrichten-der-instanzen-in-ip-symcon)
5. [Statusvariablen und Profile](#user-content-5-statusvariablen-und-profile)
6. [WebFront](#user-content-6-webfront)
6. [Visualisierung](#user-content-6-visualisierung)
7. [PHP-Befehlsreferenz](#user-content-7-php-befehlsreferenz)
8. [Versionshistorie](#user-content-8-versionshistorie)

Expand Down Expand Up @@ -53,14 +53,17 @@ _Einstellungsbereich:_
Name | Beschreibung
----------------------- | ----------------------------------
Anbieter | 'Abfall.ICS (asmium.de)'
Land | Landesauswahl (derzeit DE, AT)

> Abfallwirtschaft ...
Name | Beschreibung
-------------------------------- | ---------------------------------
Entsorgungsgebiet (vordefiniert) | Liste der vordefinierten Abfallwirtschaften
WEITER | Öffnet im neuen Browser-Fenster die selektierte Abfallwirtschafts-Seite
Download URL (iCal-File) | Link zuum Herunterladen der Kalender-Datei (ICS)
Daten importieren | Auswahl via File oder Link (URL)
Datei auswählen | Auswahl einer Kalender-Datei (ICS) aus dem File-System
Download URL (iCal-File) | Link zum Herunterladen der Kalender-Datei (ICS)
ANALYSIEREN | Analysiert die in der Kalenderdatei enthaltenen Entsorgungsarten
Entsorgungen | Entsorgungsarten, d.h. was wird im Gebiet an Entsorgung angeboten

Expand Down Expand Up @@ -97,7 +100,7 @@ Entsorgungsart(en) | String | Abhängig vom Entsorgungsgebiet und den angebot

Es werden keine zusätzlichen Profile benötigt.

### 6. WebFront
### 6. Visualisierung

Man kann die Statusvariablen(Strings) direkt im WF verlinken.
Aber wie bei der Konfiguration beschrieben, muss man aufpassen wenn die Konfiguration geändert wird. Dann müssen gegebenenfalls die Links neu eingerichtet werden.
Expand Down Expand Up @@ -125,6 +128,12 @@ __Beispiel__: `WMICS_Update(12345);`

### 8. Versionshistorie

v1.2.20250107

* _NEU_: Internationalisierte Anbieterauswahl
* _NEU_: ICS Datei kann vom Filesystem geladen werden
* _FIX_: Dokumentation verbessert

v1.1.20240702

* _NEU_: Vorrausschauende Anzeige
Expand Down
44 changes: 41 additions & 3 deletions Abfall_ICS/form.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,19 @@
"value": "null"
}
]
},
{
"type": "Select",
"name": "serviceCountry",
"caption": "Country:",
"width": "450px",
"onChange": "IPS_RequestAction($id,'OnChangeCountry',$serviceCountry);",
"options": [
{
"label": "Germany",
"value": "de"
}
]
}
]
},
Expand Down Expand Up @@ -74,12 +87,37 @@
{
"type": "RowLayout",
"items": [
{
"type": "Select",
"name": "clientTYPE",
"caption": "Import Data:",
"width": "450px",
"onChange": "IPS_RequestAction($id,'OnChangeType', $clientTYPE);",
"options": [
{
"caption": "From a URL",
"value": 0
},
{
"caption": "From a file",
"value": 1
}
]
},
{
"type": "ValidationTextBox",
"name": "clientURL",
"caption": "Download URL (iCal-File):",
"width": "900px",
"validate": "^(http(s?):\\\/\\\/)?(((www\\.)?[a-zA-Z0-9\\.\\-\\_]+(\\.[a-zA-Z]{2,3})+)(:[0-9]{1,5})?|(\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b))(:[0-9]{1,5})?(\\\/[a-zA-Z0-9\\_\\-\\s\\,\\.\\\/\\?\\%\\#\\&\\=]*)?$"
"visible": false,
"validate": "^(http(s?):\\/\\/)?(((www\\.)?[a-zA-Z0-9\\.\\-\\_]+(\\.[a-zA-Z]{2,3})+)(:[0-9]{1,5})?|(\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b))(:[0-9]{1,5})?(\\/[a-zA-Z0-9\\_\\-\\s\\,\\.\\/\\?\\%\\#\\&\\=]*)?$"
},
{
"type": "SelectFile",
"name": "clientFILE",
"caption": "Choose File",
"extensions": ".ics",
"visible": false
}
]
},
Expand All @@ -89,7 +127,7 @@
{
"type": "Button",
"caption": "Analyse",
"onClick": "IPS_RequestAction($id,'OnChangeLink',$clientURL);"
"onClick": "IPS_RequestAction($id,'OnChangeImport',serialize(['c'=>$clientID, 't'=>$clientTYPE, 'l'=>$clientURL, 'f'=>$clientFILE]));"
},
{
"type": "Label",
Expand Down Expand Up @@ -439,7 +477,7 @@
{
"code": 201,
"icon": "inactive",
"caption": "Please enter a correct URL and analyse the waste types!"
"caption": "Please enter a correct URL or FILE and analyse the waste types!"
},
{
"code": 202,
Expand Down
10 changes: 9 additions & 1 deletion Abfall_ICS/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,17 @@
"This module uses the data provided as an iCalendar file (ICS) to display the upcoming disposal dates.": "Dieses Modul nutzt die als iCalendar Datei (ICS) bereitgestellten Daten zur Darstellung der bevorstehenden Entsorgungstermine.",
"Online service ...": "Online Dienst ...",
"Provider:": "Anbieter:",
"Country:": "Land:",
"Germany": "Deutschland",
"Austria": "Österreich",
"Switzerland": "Schweiz",
"Please select ...": "Bitte wählen ...",
"Disposal area: (predefined)": "Entsorgungsgebiet: (vordefinierte)",
"Waste management ...": "Abfallwirtschaft ...",
"Import Data:": "Daten importieren:",
"From a file": "Von einer Datei",
"From a URL": "Von einer URL",
"Choose File": "Datei auswählen",
"Analyse": "Analysieren",
"More": "Weiter",
"The button is used to analyse the calendar file and display the available waste types.": "Mit Hilfe der Schaltfläche wird die Kalenderdatei analysiert und die zur Verfügung stehenden Abfallarten angezeigt.",
Expand Down Expand Up @@ -58,7 +66,7 @@
"Creating instance.": "Die Instanz wird erstellt.",
"Instance active.": "Instanz ist aktiv.",
"Instance inactive.": "Instanz ist inaktiv.",
"Please enter a correct URL and analyse the waste types!": "Bitte geben sie eine korrekte URL ein und analysieren Sie die Abfallarten!",
"Please enter a correct URL or FILE and analyse the waste types!": "Bitte geben sie eine korrekte URL oder Datei ein und analysieren Sie die Abfallarten!",
"Please select a offered disposals!": "Bitte die angebotenen Entsorgungen auswählen!",
"Could not load json data!": "Konnte JSON Daten nicht laden!",
"No entries in data available!": "Keine Einträge in Daten vorhanden!",
Expand Down
Loading

0 comments on commit cf75673

Please sign in to comment.