Skip to content

Commit

Permalink
Merge pull request #2965 from jeedom/alpha
Browse files Browse the repository at this point in the history
beta
  • Loading branch information
zoic21 authored Oct 30, 2024
2 parents 56d1451 + a3b941e commit 7b367f7
Show file tree
Hide file tree
Showing 21 changed files with 46 additions and 40 deletions.
27 changes: 11 additions & 16 deletions core/class/listener.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,8 @@ public static function clean() {
if (count($events) > 0) {
$listener->emptyEvent();
foreach ($events as $event) {
if ($event == '#*#') {
$listener->addEvent('#*#');
} else {
$cmd = cmd::byId(str_replace('#', '', $event));
if (is_object($cmd)) {
$listener->addEvent($cmd->getId());
}
if (strpos($event, '*') !== false || strpos($event, '::') !== false || is_object(cmd::byId(trim($event, '#')))) {
$listener->addEvent($event);
}
}
$listener->save();
Expand All @@ -54,11 +49,11 @@ public static function clean() {
$listener->remove();
}
}
$sql = 'SELECT '.DB::buildField(__CLASS__).'
FROM listener GROUP BY class, function, event, option
$sql = 'SELECT ' . DB::buildField(__CLASS__) . '
FROM listener GROUP BY class, function, event, option
HAVING count(*) > 1';
$duplicateds = DB::Prepare($sql, array(), DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
if(count($duplicateds) > 0){
if (count($duplicateds) > 0) {
foreach ($duplicateds as $duplicated) {
$value = array(
'class' => $duplicated->getClass(),
Expand All @@ -73,7 +68,7 @@ public static function clean() {
AND `option`=:option
AND `event`=:event';
$listeners = DB::Prepare($sql, $value, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
for($i=1;$i<count($listeners);$i++){
for ($i = 1; $i < count($listeners); $i++) {
$listeners[$i]->remove();
}
}
Expand Down Expand Up @@ -206,11 +201,11 @@ public static function searchEvent($_event) {
return DB::Prepare($sql, $value, DB::FETCH_TYPE_ALL, PDO::FETCH_CLASS, __CLASS__);
}

public static function check($_event, $_value, $_datetime = null,$_object = null) {
public static function check($_event, $_value, $_datetime = null, $_object = null) {
$listeners = self::searchEvent($_event);
if (is_array($listeners) && count($listeners) > 0) {
foreach ($listeners as $listener) {
$listener->run(str_replace('#', '', $_event), $_value, $_datetime,$_object);
$listener->run(str_replace('#', '', $_event), $_value, $_datetime, $_object);
}
}
}
Expand All @@ -233,13 +228,13 @@ public function getName() {

/* * *********************Méthodes d'instance************************* */

public function run($_event, $_value, $_datetime = null,$_object = null) {
public function run($_event, $_value, $_datetime = null, $_object = null) {
$option = array();
if (count($this->getOption()) > 0) {
$option = $this->getOption();
}
if (isset($option['background']) && $option['background'] == false) {
$this->execute($_event, $_value, $_datetime,$_object);
$this->execute($_event, $_value, $_datetime, $_object);
} else {
$cmd = __DIR__ . '/../php/jeeListener.php';
$cmd .= ' listener_id=' . $this->getId() . ' event_id=' . $_event . ' "value=' . escapeshellarg($_value) . '"';
Expand All @@ -250,7 +245,7 @@ public function run($_event, $_value, $_datetime = null,$_object = null) {
}
}

public function execute($_event, $_value, $_datetime = '',$_object = null) {
public function execute($_event, $_value, $_datetime = '', $_object = null) {
try {
$option = array();
if (count($this->getOption()) > 0) {
Expand Down
1 change: 1 addition & 0 deletions core/i18n/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Nicht autorisierter Zugriff",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Sie sind nicht berechtigt, diese Aktion durchzuführen",
"Message inconnu. Vérifiez l\\'ID": "Unbekannte Nachricht. Überprüfen Sie die ID",
"Aucune méthode correspondante à :": "Keine Methode entsprechend:"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Unauthorized access",
"Vous n\\'êtes pas autorisé à effectuer cette action": "You are not allowed to perform this action",
"Message inconnu. Vérifiez l\\'ID": "Unknown message. Check the ID",
"Aucune méthode correspondante à :": "No method corresponding to:"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Acceso no autorizado",
"Vous n\\'êtes pas autorisé à effectuer cette action": "No estás autorizado a realizar esta acción",
"Message inconnu. Vérifiez l\\'ID": "Mensaje desconocido. Verifica el ID",
"Aucune méthode correspondante à :": "Ningún método correspondiente a:"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/fr_FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Accès non autorisé",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Vous n\\'êtes pas autorisé à effectuer cette action",
"Message inconnu. Vérifiez l\\'ID": "Message inconnu. Vérifiez l\\'ID",
"Aucune méthode correspondante à :": "Aucune méthode correspondante à :"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/id_ID.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Akses tidak sah",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Vous n\\'êtes pas autorisé à effectuer cette action",
"Message inconnu. Vérifiez l\\'ID": "Message inconnu. Vérifiez l\\'ID",
"Aucune méthode correspondante à :": "Aucune methode correspondante à :"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Accesso non autorizzato",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Vous n\\'êtes pas autorisé à effectuer cette action",
"Message inconnu. Vérifiez l\\'ID": "Messaggio sconosciuto. Controlla l'ID",
"Aucune méthode correspondante à :": "Nessun metodo corrispondente a:"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/ja_JP.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401-不正アクセス",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Vous n\\'êtes pas autorisé à effectuer cette action",
"Message inconnu. Vérifiez l\\'ID": "不明なメッセージ。 IDを確認してください",
"Aucune méthode correspondante à :": "以下に対応するメソッドはありません:"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/pt_PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Acesso não autorizado",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Você não está autorizado a realizar esta ação",
"Message inconnu. Vérifiez l\\'ID": "Mensagem desconhecida. Verifique o ID",
"Aucune méthode correspondante à :": "Nenhum método correspondente a:"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/ru_RU.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Несанкционированный доступ",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Vous n\\'êtes pas autorisé à effectuer cette action",
"Message inconnu. Vérifiez l\\'ID": "Message inconnu. Vérifiez l\\'ID",
"Aucune méthode correspondante à :": "Aucune methode correspondante à :"
},
Expand Down
1 change: 1 addition & 0 deletions core/i18n/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -4078,6 +4078,7 @@
},
"core\/ajax\/message.ajax.php": {
"401 - Accès non autorisé": "401 - Yetkisiz erişim",
"Vous n\\'êtes pas autorisé à effectuer cette action": "Vous n\\'êtes pas autorisé à effectuer cette action",
"Message inconnu. Vérifiez l\\'ID": "Message inconnu. Vérifiez l\\'ID",
"Aucune méthode correspondante à :": "Aşağıdakilere karşılık gelen bir yöntem yok:"
},
Expand Down
2 changes: 1 addition & 1 deletion docs/de_DE/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,4 @@
>**WICHTIG**
>
> Wiederherstellen eines Backups 4.4 kann in bestimmten Fällen Probleme verursachen und mit {{ in der Weboberfläche enden. Rien de grave cela peut facilement ce corriger il suffit de faire : `cd /tmp;wgUnd https://github.com/jeedom/core/archive/refs/tags/4.4.18.zip;unzip 4.4.18.zip;cd core-4.4.18;cp -rf * /var/www/html/;rm -rf /tmp/master.zip;rm -rf /tmp/core-master;`. Sie können dies über die Jeedom-Rettungsschnittstelle (fügen Sie &rescue=1 in der URL hinzu) oder direkt über ssh tun.
> Wiederherstellen eines Backups 4.4 kann in bestimmten Fällen Probleme verursachen und zu Fehlern in der Weboberfläche führen. Rien de grave cela peut facilement ce corriger il suffit de faire : `cd /tmp;wgUnd https://github.com/jeedom/core/archive/refs/tags/4.4.19.zip;unzip 4.4.19.zip;cd core-4.4.19;cp -rf * /var/www/html/;rm -rf /tmp/master.zip;rm -rf /tmp/core-4.4.19;`. Sie können dies über die Jeedom-Rettungsschnittstelle (fügen Sie &rescue=1 in der URL hinzu) oder direkt über ssh tun.
2 changes: 1 addition & 1 deletion docs/en_US/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,4 @@
>**IMPORTANT**
>
> Restoring a backup 4.4 can in some cases cause problems and end with {{ in the web interface. Rien de grave cela peut facilement ce corriger il suffit de faire : `cd /tmp;wgAnd https://github.com/jeedom/core/archive/refs/tags/4.4.18.zip;unzip 4.4.18.zip;cd core-4.4.18;cp -rf * /var/www/html/;rm -rf /tmp/master.zip;rm -rf /tmp/core-master;`. You can do this from the jeedom rescue interface (add &rescue=1 in the url), or directly in ssh.
> Restoring a backup 4.4 can in some cases cause problems and end up with errors in the web interface. Rien de grave cela peut facilement ce corriger il suffit de faire : `cd /tmp;wgAnd https://github.com/jeedom/core/archive/refs/tags/4.4.19.zip;unzip 4.4.19.zip;cd core-4.4.19;cp -rf * /var/www/html/;rm -rf /tmp/master.zip;rm -rf /tmp/core-4.4.19;`. You can do this from the jeedom rescue interface (add &rescue=1 in the url), or directly in ssh.
2 changes: 1 addition & 1 deletion docs/es_ES/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,4 @@
>**IMPORTANTE**
>
> Restaurar una copia de seguridad 4.4 puede en ciertos casos causar problemas y terminar con {{ en la interfaz web. Rien de grave cela peut facilement ce corriger il suffit de faire : `cd /tmp;wgY https://github.com/jeedom/core/archive/refs/tags/4.4.18.zip;descomprimir 4.4.18.zip;cd core-4.4.18;cp -rf * /var/www/html/;rm -rf /tmp/master.zip;rm -rf /tmp/core-master;`. Puedes hacer esto desde la interfaz de rescate de jeedom (agrega &rescue=1 en la URL) o directamente a través de ssh.
> Restaurar una copia de seguridad 4.4 puede en ciertos casos causar problemas y terminar con errores en la interfaz web. Rien de grave cela peut facilement ce corriger il suffit de faire : `cd /tmp;wgY https://github.com/jeedom/core/archive/refs/tags/4.4.19.zip;descomprimir 4.4.19.zip;cd core-4.4.19;cp -rf * /var/www/html/;rm -rf /tmp/master.zip;rm -rf /tmp/core-4.4.19;`. Puedes hacer esto desde la interfaz de rescate de jeedom (agrega &rescue=1 en la URL) o directamente a través de ssh.
1 change: 1 addition & 0 deletions docs/fr_FR/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@
- Correction d'un bug avec la fonction time_diff [LIEN](https://github.com/jeedom/core/issues/2915)
- Correction de bug sur la gestion de dépendances composer [LIEN](https://github.com/jeedom/core/issues/2920)
- En cas de commande vide Jeedom force le retour en fonction du sous type de la commande (donc 0 pour numerique et binaire) [LIEN](https://github.com/jeedom/core/commit/442d47246373e4f52b1dde7d1c7fdc9f67ea143e)
- Prise en charge des évènements personnalisés de type #pluginClass::*# ou #pluginClass::customId# [LIEN](https://github.com/jeedom/core/pull/2964)

>**IMPORTANT**
>
Expand Down
8 changes: 4 additions & 4 deletions docs/i18n/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -1383,11 +1383,11 @@
"Dû à la refonte des logs et la réinternalisation de bibliothèques, lors de la mise à jour vous pouvez avoir une erreur type": "Aufgrund der Überarbeitung der Protokolle und der Reinternalisierung der Bibliotheken kann es beim Update zu einem Standardfehler kommen",
"rien de grave) il suffit de relancer la mise à jour": "nichts Ernstes) Starten Sie einfach das Update neu",
"La restoration d'un backup 4": "Wiederherstellen eines Backups 4",
"4 peut dans certain cas poser soucis et finir par des {{ dans l'interface web": "4 kann in bestimmten Fällen Probleme verursachen und mit {{ in der Weboberfläche enden",
"zip;unzip 4.4.18": "zip;unzip 4.4.18",
"4 peut dans certain cas poser soucis et finir par des erreurs dans l'interface web": "4 kann in bestimmten Fällen Probleme verursachen und zu Fehlern in der Weboberfläche führen",
"zip;unzip 4.4.19": "zip;unzip 4.4.19",
"zip;cd core-4.4": "zip;cd core-4.4",
"18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-master;`": "zip;rm -rf \/tmp\/core-master;`",
"19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-4.4.19;`": "zip;rm -rf \/tmp\/core-4.4.19;`",
"Vous pouvez ca depuis l'interface rescue de jeedom (ajouter &rescue=1 dans l'url), ou directement en ssh": "Sie können dies über die Jeedom-Rettungsschnittstelle (fügen Sie &rescue=1 in der URL hinzu) oder direkt über ssh tun",
" LIEN.": " LINK.",
" LIEN?": " LINK?",
Expand Down
8 changes: 4 additions & 4 deletions docs/i18n/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -1383,11 +1383,11 @@
"Dû à la refonte des logs et la réinternalisation de bibliothèques, lors de la mise à jour vous pouvez avoir une erreur type": "Due to the rework of logs and the re-internalization of libraries, when updating you may have an error type",
"rien de grave) il suffit de relancer la mise à jour": "nothing serious) just restart the update",
"La restoration d'un backup 4": "Restoring a backup 4",
"4 peut dans certain cas poser soucis et finir par des {{ dans l'interface web": "4 can in some cases cause problems and end with {{ in the web interface",
"zip;unzip 4.4.18": "zip;unzip 4.4.18",
"4 peut dans certain cas poser soucis et finir par des erreurs dans l'interface web": "4 can in some cases cause problems and end up with errors in the web interface",
"zip;unzip 4.4.19": "zip;unzip 4.4.19",
"zip;cd core-4.4": "zip;cd core-4.4",
"18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-master;`": "zip;rm -rf \/tmp\/core-master;`",
"19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-4.4.19;`": "zip;rm -rf \/tmp\/core-4.4.19;`",
"Vous pouvez ca depuis l'interface rescue de jeedom (ajouter &rescue=1 dans l'url), ou directement en ssh": "You can do this from the jeedom rescue interface (add &rescue=1 in the url), or directly in ssh",
" LIEN.": " LINK.",
" LIEN?": " LINK?",
Expand Down
8 changes: 4 additions & 4 deletions docs/i18n/es_ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -1383,11 +1383,11 @@
"Dû à la refonte des logs et la réinternalisation de bibliothèques, lors de la mise à jour vous pouvez avoir une erreur type": "Debido a la revisión de registros y la reinternalización de bibliotecas, durante la actualización puede aparecer un error estándar",
"rien de grave) il suffit de relancer la mise à jour": "nada grave) simplemente reinicie la actualización",
"La restoration d'un backup 4": "Restaurar una copia de seguridad 4",
"4 peut dans certain cas poser soucis et finir par des {{ dans l'interface web": "4 puede en ciertos casos causar problemas y terminar con {{ en la interfaz web",
"zip;unzip 4.4.18": "zip;descomprimir 4.4.18",
"4 peut dans certain cas poser soucis et finir par des erreurs dans l'interface web": "4 puede en ciertos casos causar problemas y terminar con errores en la interfaz web",
"zip;unzip 4.4.19": "zip;descomprimir 4.4.19",
"zip;cd core-4.4": "zip;cd core-4.4",
"18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-master;`": "zip;rm -rf \/tmp\/core-master;`",
"19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-4.4.19;`": "zip;rm -rf \/tmp\/core-4.4.19;`",
"Vous pouvez ca depuis l'interface rescue de jeedom (ajouter &rescue=1 dans l'url), ou directement en ssh": "Puedes hacer esto desde la interfaz de rescate de jeedom (agrega &rescue=1 en la URL) o directamente a través de ssh",
" LIEN.": " ENLACE.",
" LIEN?": " ENLACE?",
Expand Down
8 changes: 4 additions & 4 deletions docs/i18n/fr_FR.json
Original file line number Diff line number Diff line change
Expand Up @@ -859,11 +859,11 @@
"Dû à la refonte des logs et la réinternalisation de bibliothèques, lors de la mise à jour vous pouvez avoir une erreur type": "Dû à la refonte des logs et la réinternalisation de bibliothèques, lors de la mise à jour vous pouvez avoir une erreur type",
"rien de grave) il suffit de relancer la mise à jour": "rien de grave) il suffit de relancer la mise à jour",
"La restoration d'un backup 4": "La restoration d'un backup 4",
"4 peut dans certain cas poser soucis et finir par des {{ dans l'interface web": "4 peut dans certain cas poser soucis et finir par des {{ dans l'interface web",
"zip;unzip 4.4.18": "zip;unzip 4.4.18",
"4 peut dans certain cas poser soucis et finir par des erreurs dans l'interface web": "4 peut dans certain cas poser soucis et finir par des erreurs dans l'interface web",
"zip;unzip 4.4.19": "zip;unzip 4.4.19",
"zip;cd core-4.4": "zip;cd core-4.4",
"18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-master;`": "zip;rm -rf \/tmp\/core-master;`",
"19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-4.4.19;`": "zip;rm -rf \/tmp\/core-4.4.19;`",
"Vous pouvez ca depuis l'interface rescue de jeedom (ajouter &rescue=1 dans l'url), ou directement en ssh": "Vous pouvez ca depuis l'interface rescue de jeedom (ajouter &rescue=1 dans l'url), ou directement en ssh"
},
"cron.md": {
Expand Down
8 changes: 4 additions & 4 deletions docs/i18n/pt_PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -1383,11 +1383,11 @@
"Dû à la refonte des logs et la réinternalisation de bibliothèques, lors de la mise à jour vous pouvez avoir une erreur type": "Devido à revisão dos logs e à reinternalização das bibliotecas, durante a atualização você pode ter um erro padrão",
"rien de grave) il suffit de relancer la mise à jour": "nada sério) apenas reinicie a atualização",
"La restoration d'un backup 4": "Restaurando um backup 4",
"4 peut dans certain cas poser soucis et finir par des {{ dans l'interface web": "4 pode, em certos casos, causar problemas e acabar com {{ na interface web",
"zip;unzip 4.4.18": "zip;descompacte 4.4.18",
"4 peut dans certain cas poser soucis et finir par des erreurs dans l'interface web": "4 pode, em certos casos, causar problemas e acabar com erros na interface web",
"zip;unzip 4.4.19": "zip;descompacte 4.4.19",
"zip;cd core-4.4": "zip;cd núcleo-4.4",
"18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "18;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-master;`": "zip;rm -rf \/tmp\/core-master;`",
"19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master": "19;cp -rf * \/var\/www\/html\/;rm -rf \/tmp\/master",
"zip;rm -rf \/tmp\/core-4.4.19;`": "zip;rm -rf \/tmp\/core-4.4.19;`",
"Vous pouvez ca depuis l'interface rescue de jeedom (ajouter &rescue=1 dans l'url), ou directement en ssh": "Você pode fazer isso na interface de resgate do Jeedom (adicione &rescue=1 no URL) ou diretamente via ssh",
" LIEN.": " LINK.",
" LIEN?": " LINK?",
Expand Down
Loading

0 comments on commit 7b367f7

Please sign in to comment.