1"use strict";(self.webpackChunkzyg0m4t1k_github_io=self.webpackChunkzyg0m4t1k_github_io||[]).push([[282],{9536(e,s,t){t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>a});const n=JSON.parse('{"id":"plugins/tools/changelog","title":"Changelog","description":"2026-08-16","source":"@site/docs/plugins/tools/changelog.mdx","sourceDirName":"plugins/tools","slug":"/plugins/tools/changelog","permalink":"/en/docs/plugins/tools/changelog","draft":false,"unlisted":false,"editUrl":"https://github.com/Zyg0m4t1k/Zyg0m4t1k.github.io/tree/master/docs/plugins/tools/changelog.mdx","tags":[],"version":"current","sidebarPosition":99,"frontMatter":{"title":"Changelog","hide_title":true,"sidebar_position":99},"sidebar":"tutorialSidebar","previous":{"title":"Tools","permalink":"/en/docs/plugins/tools/"},"next":{"title":"WhatWatt","permalink":"/en/docs/plugins/whatwatt/"}}');var i=t(4848),l=t(8453);const o={title:"Changelog",hide_title:!0,sidebar_position:99},r=void 0,d={},a=[{value:"2026-08-16",id:"2026-08-16",level:2},{value:"2026-08-15",id:"2026-08-15",level:2},{value:"2026-06-05",id:"2026-06-05",level:2}];function c(e){const s={code:"code",h2:"h2",li:"li",ul:"ul",...(0,l.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"2026-08-16",children:"2026-08-16"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Correction migration master \u2192 beta : utilisation du logicalId pour les r\xe9f\xe9rences de templates"}),"\n",(0,i.jsx)(s.li,{children:"G\xe9n\xe9ration automatique du logicalId s'il est absent (compatibilit\xe9 master)"}),"\n",(0,i.jsxs)(s.li,{children:["Migration des r\xe9f\xe9rences ",(0,i.jsx)(s.code,{children:"tools::nom"})," \u2192 ",(0,i.jsx)(s.code,{children:"tools::logicalId"})," lors de la mise \xe0 jour"]}),"\n",(0,i.jsx)(s.li,{children:"Avertissement pour les widgets obsol\xe8tes supprim\xe9s (overview_tools, sonde_tools, weather_clock, squeeze, battery_jeedom, anemo_tools)"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"2026-08-15",children:"2026-08-15"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsx)(s.li,{children:"Refonte compl\xe8te de la page principale : suppression des 5 onglets, page standard plugin avec \xe9quipements group\xe9s par accord\xe9on"}),"\n",(0,i.jsx)(s.li,{children:"Ajout d'un panneau Administration s\xe9par\xe9 (Personnalisation, Logs, Droits, Listeners, Plugins)"}),"\n",(0,i.jsx)(s.li,{children:"Nouvel onglet Plugins : vue transversale des plugins actifs avec gestion des \xe9quipements et commandes"}),"\n",(0,i.jsx)(s.li,{children:"S\xe9lecteurs card-based pour \xe9quipements et commandes (remplacement de getSelectModal)"}),"\n",(0,i.jsx)(s.li,{children:"S\xe9lecteur d'\xe9quipement source pour les templates avec pr\xe9visualisation multi-commandes"}),"\n",(0,i.jsx)(s.li,{children:"Syst\xe8me de backup/restore des templates et images utilisateur lors des mises \xe0 jour"}),"\n",(0,i.jsx)(s.li,{children:"S\xe9curisation des actions AJAX : validation des entr\xe9es, protection contre les injections, v\xe9rification des droits"}),"\n",(0,i.jsx)(s.li,{children:"Optimisation du scan des logs (lecture tail + cache 30s)"}),"\n",(0,i.jsx)(s.li,{children:"Suppression de l'API inutilis\xe9e et du m\xe9canisme de backup legacy"}),"\n",(0,i.jsx)(s.li,{children:"Ajout du bouton Community pour cr\xe9er un post de support pr\xe9-rempli"}),"\n",(0,i.jsx)(s.li,{children:"Avertissement dans l'\xe9diteur CodeMirror pour les probl\xe8mes d'affichage"}),"\n",(0,i.jsx)(s.li,{children:"Bandeau d'avertissement dans le panneau Administration"}),"\n",(0,i.jsx)(s.li,{children:"D\xe9sactivation temporaire de l'import de template (en cours de validation)"}),"\n",(0,i.jsx)(s.li,{children:"Suppression du code mort et des fichiers obsol\xe8tes"}),"\n",(0,i.jsx)(s.li,{children:"R\xe9\xe9criture compl\xe8te de la documentation"}),"\n"]}),"\n",(0,i.jsx)(s.h2,{id:"2026-06-05",children:"2026-06-05"}),"\n",(0,i.jsxs)(s.ul,{children:["\n",(0,i.jsxs)(s.li,{children:["G\xe9n\xe9ration de la documentation MDX Tools depuis ",(0,i.jsx)(s.code,{children:"tools_export.zip"})]}),"\n",(0,i.jsx)(s.li,{children:"Ajout de la section MyHome compl\xe8te"}),"\n",(0,i.jsx)(s.li,{children:"Ajout des pages projet, th\xe8mes, menus, palette, pages et sous-plans"}),"\n",(0,i.jsxs)(s.li,{children:["Ajout de la liste des widgets compatibles MyHome depuis ",(0,i.jsx)(s.code,{children:"widget.json"})]}),"\n",(0,i.jsx)(s.li,{children:"Ajout d'une page MDX par widget compatible MyHome"}),"\n",(0,i.jsx)(s.li,{children:"Ajout de la liste des cards \xe9quipement d\xe9tect\xe9es"}),"\n",(0,i.jsx)(s.li,{children:"Ajout d'une page MDX par card"}),"\n",(0,i.jsx)(s.li,{children:"Ajout d'une page g\xe9n\xe9rale sur les templates builtin"}),"\n"]})]})}function u(e={}){const{wrapper:s}={...(0,l.R)(),...e.components};return s?(0,i.jsx)(s,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},8453(e,s,t){t.d(s,{R:()=>o,x:()=>r});var n=t(6540);const i={},l=n.createContext(i);function o(e){const s=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(l.Provider,{value:s},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.