Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "composer"
directory: "/"
schedule:
interval: "daily"
target-branch: "dev"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
target-branch: "dev"
15 changes: 15 additions & 0 deletions .github/workflows/translations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: translate

on:
workflow_dispatch:
push:
branches:
- dev

jobs:
auto-translate:
runs-on: ubuntu-latest
steps:
- uses: Mips2648/plugins-translations@main
with:
deepl_api_key: ${{ secrets.DEEPL_API_KEY }}
14 changes: 6 additions & 8 deletions core/ajax/digiaction.ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,6 @@
// throw new Exception(__('401 - Accès non autorisé', __FILE__));
// }

/* Fonction permettant l'envoi de l'entête 'Content-Type: application/json'
En V3 : indiquer l'argument 'true' pour contrôler le token d'accès Jeedom
En V4 : autoriser l'exécution d'une méthode 'action' en GET en indiquant le(s) nom(s) de(s) action(s) dans un tableau en argument
*/
//ajax::init();
switch (init('action')) {
case 'updateCmdConfig':
/*
Expand Down Expand Up @@ -74,17 +69,19 @@
break;

case 'getAvailableMode':
/** @var digiaction $eqLogic */
$eqLogic = digiaction::byId(init('eqId'));
$modes = $eqLogic->getAvailableModeHTML();
ajax::success(json_encode($modes));
break;

case 'verifUser':
/** @var digiaction $eqLogic */
$eqLogic = digiaction::byId(init('eqId'));
$eqLogic->checkAndUpdateCmd('digimessage', '');
list($verif, $userName, $isPanic) = $eqLogic->verifCodeUser(init('userCode'), init('cmdId'));
if (!$verif) {
$txtKO = $eqLogic->getConfiguration('textCodeKO', 'Code inconnu');
$txtKO = $eqLogic->getConfiguration('textCodeKO', __('Code inconnu', __FILE__));
$eqLogic->checkAndUpdateCmd('digimessage', $txtKO);
$data = "ko";
} else {
Expand All @@ -93,7 +90,7 @@
$verifPreCheck = $eqLogic->doPreCheck($digiCmd->getLogicalId());

if (!$verifPreCheck) {
$eqLogic->checkAndUpdateCmd('digimessage', 'Contrôle(s) en échec');
$eqLogic->checkAndUpdateCmd('digimessage', __('Contrôle(s) en échec', __FILE__));
digiaction::addLogTemplate('PRE-CHECK FAILED - PROCEED WITH ERROR ACTION', true);
$eqLogic->doAction($digiCmd->getLogicalId(), 'preCheckActionError');
$data = "ko";
Expand All @@ -106,11 +103,12 @@
break;

case 'verifUserAndDoAction':
/** @var digiaction $eqLogic */
$eqLogic = digiaction::byId(init('eqId'));
$eqLogic->checkAndUpdateCmd('digimessage', '');
list($verif, $userName, $isPanic) = $eqLogic->verifCodeUser(init('userCode'), init('cmdId'));
if (!$verif) {
$txtKO = $eqLogic->getConfiguration('textCodeKO', 'Code inconnu');
$txtKO = $eqLogic->getConfiguration('textCodeKO', __('Code inconnu', __FILE__));
$eqLogic->checkAndUpdateCmd('digimessage', $txtKO);
$data = "code inconnu";
} else {
Expand Down
101 changes: 2 additions & 99 deletions core/class/digiaction.class.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,6 @@ class digiaction extends eqLogic {
public function __construct() {
$this->_log_trace = self::getTrace();
}
/* * *************************Attributs****************************** */

/*
* Permet de définir les possibilités de personnalisation du widget (en cas d'utilisation de la fonction 'toHtml' par exemple)
* Tableau multidimensionnel - exemple: array('custom' => true, 'custom::layout' => false)
public static $_widgetPossibility = array();
*/

/* * ***********************Methode static*************************** */

/*
* Fonction exécutée automatiquement toutes les minutes par Jeedom
public static function cron() {
}
*/

/*
* Fonction exécutée automatiquement toutes les 5 minutes par Jeedom
Expand All @@ -50,35 +35,6 @@ public static function cron5() {
}
}

/*
* Fonction exécutée automatiquement toutes les 10 minutes par Jeedom
public static function cron10() {
}
*/

/*
* Fonction exécutée automatiquement toutes les 15 minutes par Jeedom
public static function cron15() {
}
*/

/*
* Fonction exécutée automatiquement toutes les 30 minutes par Jeedom
public static function cron30() {
}
*/

/*
* Fonction exécutée automatiquement toutes les heures par Jeedom
public static function cronHourly() {
}
*/

/*
* Fonction exécutée automatiquement tous les jours par Jeedom
public static function cronDaily() {
}
*/



Expand All @@ -90,26 +46,6 @@ public function preInsert() {
$this->setIsEnable(1);
}

// Fonction exécutée automatiquement après la création de l'équipement
public function postInsert() {
}

// Fonction exécutée automatiquement avant la mise à jour de l'équipement
public function preUpdate() {
}

// Fonction exécutée automatiquement après la mise à jour de l'équipement
public function postUpdate() {
}

// Fonction exécutée automatiquement avant la suppression de l'équipement
public function preRemove() {
}

// Fonction exécutée automatiquement après la suppression de l'équipement
public function postRemove() {
}

// Fonction exécutée automatiquement après la sauvegarde (création ou mise à jour) de l'équipement
public function preSave() {

Expand Down Expand Up @@ -463,13 +399,6 @@ public function doAction($_mode, $_type, $is_panic = false) {
return $checkAction;
}

/*
* Non obligatoire : permet de modifier l'affichage du widget (également utilisable par les commandes)
public function toHtml($_version = 'dashboard') {

}
*/

public function toHtml($_version = 'dashboard') {

$replace = $this->preToHtml($_version);
Expand All @@ -495,6 +424,7 @@ public function toHtml($_version = 'dashboard') {
$replace['#modeAvailable#'] = $this->getAvailableModeHTML();
$replace['#currentMode#'] = $this->getCmd(null, 'currentMode')->execCmd();
// $replace['#message#'] = $this->getCmd(null, 'digimessage')->execCmd();
$replace['#randomkeys#'] = $this->getConfiguration('randomkeys', 0);

return $this->postToHtml($_version, template_replace($replace, getTemplate('core', $version, 'digiaction', 'digiaction')));
}
Expand Down Expand Up @@ -778,37 +708,9 @@ public static function addLogTemplate($msg = null, $inter = false, $level = 'deb
log::add('digiaction', $level, '└────────────────────────────────────');
}
}

/*
* Non obligatoire : permet de déclencher une action après modification de variable de configuration
public static function postConfig_<Variable>() {
}
*/

/*
* Non obligatoire : permet de déclencher une action avant modification de variable de configuration
public static function preConfig_<Variable>() {
}
*/

/* * **********************Getteur Setteur*************************** */
}

class digiactionCmd extends cmd {
/* * *************************Attributs****************************** */

/*
public static $_widgetPossibility = array();
*/

/* * ***********************Methode static*************************** */


/* * *********************Methode d'instance************************* */

/*
* Non obligatoire permet de demander de ne pas supprimer les commandes même si elles ne sont pas dans la nouvelle configuration de l'équipement envoyé en JS
*/
public function dontRemoveCmd() {
return true;
}
Expand Down Expand Up @@ -860,6 +762,7 @@ public function execute($_options = array()) {

default:
digiaction::addLogTemplate('CMD EXEC');
/** @var digiaction $eqLogic */
$eqLogic = $this->getEqLogic();

$currentMode = $eqLogic->getCmd(null, 'currentMode');
Expand Down
128 changes: 128 additions & 0 deletions core/i18n/de_DE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{
"plugins\/digiaction\/core\/ajax\/digiaction.ajax.php": {
"401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff",
"Aucune méthode correspondante à : ": "Keine passende Methode zu :",
"Code inconnu": "Unbekannter Code",
"Contrôle(s) en échec": "Kontrolle(n) fehlgeschlagen"
},
"plugins\/digiaction\/core\/class\/digiaction.class.php": {
". Détails : ": ". Details :",
"Aucun nouveau mot de passe indiqué (champ \"message\")": "Kein neues Passwort angegeben (Feld \"Nachricht\")",
"Aucun utilisateur indiqué (champs \"titre\")": "Kein Benutzer angegeben (Felder \"Titel\")",
"Changer code utilisateur": "Benutzercode ändern",
"Code non valide": "Ungültiger Code",
"Erreur lors de l\\'éxecution de ": "Fehler bei der Ausführung von",
"La commande de mode courant est introuvable": "Der Befehl für den aktuellen Modus wurde nicht gefunden",
"MaJ Message": "MaJ Nachricht",
"Message": "Nachricht",
"Mode": "Mode",
"Nouveau code": "Neuer Code",
"Utilisateur": "Nutzer"
},
"plugins\/digiaction\/core\/template\/dashboard\/digiaction.html": {
"Annuler": "Abbrechen"
},
"plugins\/digiaction\/desktop\/js\/digiaction.js": {
" erreurs ": " fehler",
"Action d\\'Alerte": "Alert Action",
"Action(s)": "Aktion(en)",
"Action(s) d\\'Alerte": "Aktion(en) von Alert",
"Action(s) si mauvaises code ": "Aktion(en) bei schlechtem Code",
"Cocher pour réaliser l\\'action seulement en cas d\\'utilisation d\\'un code panic": "Kreuzen Sie an, dass die Aktion nur bei Verwendung eines Panikcodes ausgeführt werden soll",
"Code de l\\'utilisateur": "Benutzercode",
"Confirmer l\\'activation de ce mode par mot de passe": "Bestätigen Sie die Aktivierung dieses Modus mit einem Passwort",
"Décocher pour désactiver l\\'action": "Auswählen, um die Aktion zu deaktivieren",
"Décocher pour désactiver le test": "Haken entfernen, um den Test zu deaktivieren",
"Délai avant l\\'activation du mode": "Verzögerung bis zur Aktivierung des Modus",
"Délais (en sec)": "Fristen (in Sek.)",
"Icône": "Symbol",
"Mode Disponible": "Verfügbarer Modus",
"Nom": "Name",
"Nom de l\\'utilisateur": "Name des Benutzers",
"Nom du mode ?": "Name des Modus?",
"Nouveau nom ?": "Neuer Name?",
"Pré-check (test)": "Pre-Check (Test)",
"Pré-check Erreurs (action)": "Pre-Check Fehler (Aktion)",
"Supprimer": "Entfernen",
"Sécurité": "Sicherheit",
"Sélectionner un mot-clé": "Schlüsselwort auswählen",
"Sélectionner une commande action": "Auswählen eines Aktionsbefehls",
"Sélectionner une commande info": "Auswählen eines Info-Befehls",
"durée (en min)": "dauer (in Min.)",
"dès qu'il y a plus de ": "sobald mehr als",
"délais": "fristen",
"jamais": "nie",
"nb": "nb",
"toutes les ": "alle"
},
"plugins\/digiaction\/desktop\/php\/digiaction.php": {
"(en minutes)<br\/>si vide, alors infini": "(in Minuten)<br\/>wenn leer, dann unendlich",
"-1 illimité \/ 10sec par défaut": "-1 unbegrenzt \/ 10sec Standard",
"401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff",
"Actif": "Aktiviert",
"Actions": "Lager",
"Actions réalisées pour #modeName#": "Ausgeführte Aktionen für #modeName#",
"Activer": "Aktivieren",
"Ajouter": "Addieren",
"Ajouter mode": "Modus hinzufügen",
"Ajouter un code utilisateur": "Hinzufügen eines Benutzercodes",
"Aléatoire": "Zufällig",
"Arrière-plan": "Hintergrund",
"Aucun": "Nein",
"Autoriser": "Zulassen",
"Catégorie": "Kategorie",
"Changement de mode réalisé": "Moduswechsel durchgeführt",
"Chaque mode s'auto-appelle": "Jeder Modus nennt sich selbst",
"Code": "CODE",
"Code inconnu": "Unbekannter Code",
"Community": "Community",
"Configuration": "Konfiguration",
"Configuration avancée": "Erweiterte Konfiguration",
"Couleur que prendra le mode actif": "Farbe, die der aktive Modus annimmt",
"Couleur que prendra un mode si aucun icône n'est défini": "Farbe, die ein Modus annimmt, wenn kein Symbol festgelegt ist",
"Couleurs": "Farbe",
"Créer un post Community": "Erstellen eines Community-Posts",
"Disposition des touches du clavier": "Anordnung der Tasten auf der Tastatur",
"Dupliquer": "Duplikat",
"Durée": "Dauer",
"Début": "Anfang",
"Début de validité": "Beginn der Gültigkeit",
"Exemple": "Beispiel",
"Fin de validité": "Ende der Gültigkeit",
"Gestion": "Management",
"Général": "Allgemein",
"Informations": "Information",
"Mauvais code saisi": "Falscher Code eingegeben",
"Mes DigiActions": "Meine DigiActions",
"Nom": "Name",
"Nom de l'équipement": "Name des Geräts",
"Objet parent": "Übergeordnetes Objekt",
"Option aléatoire permet d'avoir un clavier différent à chaque utilisation.<br\/>Les touches de 0 à 9 seront aléatoirement mélangées pour plus de sécurité": "Zufallsoption ermöglicht es Ihnen, bei jeder Verwendung eine andere Tastatur zu verwenden.<br\/>Die Tasten von 0 bis 9 werden zur Sicherheit zufällig gemischt",
"Options": "Optionen",
"Panic": "Panic",
"Par défaut": "Standard",
"Paramètres": "Die Einstellungen",
"Personnalisation": "Personalisierung",
"Pour les options des commandes dans les rappels, vous pouvez utiliser les tags suivants qui seront automatiquement remplacés lors de l'action": "Für Befehlsoptionen in Erinnerungen können Sie die folgenden Tags verwenden, die bei einer Aktion automatisch ersetzt werden",
"Rechercher": "Suchen nach",
"Reinitialer avec les couleurs par défaut": "Mit Standardfarben zurücksetzen",
"Sauvegarder": "Zu schützen",
"Si le mode est actif": "Wenn der Modus aktiv ist",
"Si non renseigné, actif immédiatement": "Wenn nicht ausgefüllt, sofort aktiv",
"Spécifie l'utilisateur\/code à utiliser pour activer les opérations correspondant aux actions 'panic'": "Gibt den Benutzer\/Code an, der verwendet werden soll, um Operationen zu aktivieren, die den 'Panik'-Aktionen entsprechen",
"Standard": "Standard",
"Supprimer": "Entfernen",
"Temps d'affichage des messages": "Zeit für die Anzeige von Nachrichten",
"Texte": "Text",
"Textes": "Texte",
"Uniquement A ou B ou chiffres de 0 à 9": "Nur A oder B oder Zahlen von 0 bis 9",
"Utilisateurs": "Benutzer",
"Visible": "Sichtbar",
"en secondes": "in Sekunden",
"Équipement": "Ausstattung"
},
"plugins\/digiaction\/plugin_info\/configuration.php": {
"Activer plus de log": "Mehr Log aktivieren",
"Permet de mettre plus de log sur certaines fonctions": "Ermöglicht es, mehr Log auf bestimmte Funktionen zu legen"
}
}
Loading