diff --git a/.gitignore b/.gitignore index 1ff04ba..5cddda2 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,6 @@ build/ .idea/ *.swp *.swo + +dev/ +.claude/ diff --git a/README.md b/README.md index e47472b..3406fd5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ *English version below* -**Version:** 1.5\ +**Version:** 1.6\ **Auteur:** Charles-Arthur DAVID\ **Plateforme:** Distech Controls Designer\ **Compatibilité:** Automates Eclypse (Version V1.19)\ @@ -19,6 +19,7 @@ Ce projet offre une navigation structurée par catégories de points (entrées/s ## Fonctionnalités - **Navigation par catégories** : Organisation automatique des points BACnet par type + - Favoris (Favorites) - Entrées Analogiques (Analog Input) - Sorties Analogiques (Analog Output) - Valeurs Analogiques (Analog Value) @@ -32,6 +33,7 @@ Ce projet offre une navigation structurée par catégories de points (entrées/s - Dérogations (Override) - Alarmes (Alarms) +- **Favoris** : Récupération automatique des favoris configurés dans l'automate (fichier `Project.gfx`) et affichage regroupé par groupe de favoris - **Support multilingue** : Interface disponible en Français et Anglais - **Thème clair/sombre** : Personnalisation de l'apparence selon les préférences - **Interface responsive** : Adaptation automatique à différentes tailles d'écran @@ -49,7 +51,8 @@ Ce projet offre une navigation structurée par catégories de points (entrées/s Téléchargez la version souhaitée dans la section Paquets: -[cadMyDC_V1.5.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.5/cadMyDC_V1.5.zip) +- [cadMyDC_V1.6.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.6/cadMyDC_V1.6.zip) (avec Favoris) +- [cadMyDC_V1.5.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.5/cadMyDC_V1.5.zip) (sans Favoris) ### 2. Importation dans Designer @@ -84,11 +87,17 @@ cadMyDC/ ├── pages/ # Pages spécialisées │ ├── alarms.dg5 # Gestion des alarmes │ ├── loadingPage.dg5 # Page de chargement +│ ├── menuFavorites.dg5 # Menu des favoris (regroupement par groupe) │ ├── noData.dg5 # Page sans données │ ├── override.dg5 # Gestion des dérogations │ ├── schedule.dg5 # Gestion des programmes horaires │ ├── showData.dg5 # Affichage des données +│ ├── showDataFav.dg5 # Affichage des points favoris │ └── trend.dg5 # Affichage des tendances +├── js/ # Scripts et bibliothèques +│ ├── getFavorites.dg5 # Récupération/parsing des favoris depuis Project.gfx +│ └── libraries/ # Bibliothèques tierces (jQuery, JSZip) pour la décompression +├── data/ # Fichiers CSV générés (favoris, utilisateurs, groupes) ├── palette/ # Widgets personnalisés (vide actuellement) └── fonts/ # Polices personnalisées ``` @@ -122,6 +131,7 @@ L'interface présente un menu latéral avec toutes les catégories de points dé ### Visualisation des données +- Les **favoris** (Favorites) affichent les points marqués comme favoris dans l'automate, regroupés par groupe de favoris - Les **points standards** (AI, AO, AV, BI, BO, BV, MSI, MSV) affichent leurs valeurs et permettent les modifications (selon les droits) - Les **tendances** (Trend Log) affichent les graphiques historiques - Les **programmes** (Schedule) permettent la visualisation et modification des plannings @@ -174,7 +184,11 @@ Toute demande de support adressée à Distech Controls concernant ce projet sera ## Historique des versions -### Version 1.5 (Actuelle) +### Version 1.6 (Actuelle) +- Nouvelle catégorie **Favoris** : récupération automatique des favoris depuis le `Project.gfx` de l'automate, affichage regroupé par groupe de favoris +- Correction des libellés français du menu (« Entrées Digitales », « Entrées Multi-états ») + +### Version 1.5 - Interface de navigation structurée par catégories - Support multilingue FR/EN (via paramètre URL) - Thèmes clair/sombre @@ -186,7 +200,7 @@ Toute demande de support adressée à Distech Controls concernant ce projet sera # cadMyDC - MyDC Controls of Equivalence -**Version:** 1.5\ +**Version:** 1.6\ **Author:** Charles-Arthur DAVID\ **Platform:** Distech Controls Designer\ **Compatibility:** Eclypse Controllers (Version V1.19)\ @@ -203,6 +217,7 @@ This project offers structured navigation by point categories (analog/digital/mu ## Features - **Navigation by categories**: Automatic organization of BACnet points by type + - Favorites - Analog Inputs - Analog Outputs - Analog Values @@ -216,6 +231,7 @@ This project offers structured navigation by point categories (analog/digital/mu - Overrides - Alarms +- **Favorites**: Automatic retrieval of the favorites configured in the controller (`Project.gfx` file) and display grouped by favorite group - **Multilingual support**: Interface available in French and English - **Light/Dark theme**: Appearance customization according to preferences - **Responsive interface**: Automatic adaptation to different screen sizes @@ -233,7 +249,8 @@ This project offers structured navigation by point categories (analog/digital/mu Download the desired version from the Packages section: -[cadMyDC_V1.5.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.5/cadMyDC_V1.5.zip) +- [cadMyDC_V1.6.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.6/cadMyDC_V1.6.zip) (with Favorites) +- [cadMyDC_V1.5.zip](https://git.cadjou.net/api/packages/DistechControls/generic/cadMyDC/1.5/cadMyDC_V1.5.zip) (without Favorites) ### 2. Import into Designer @@ -268,11 +285,17 @@ cadMyDC/ ├── pages/ # Specialized pages │ ├── alarms.dg5 # Alarm management │ ├── loadingPage.dg5 # Loading page +│ ├── menuFavorites.dg5 # Favorites menu (grouped by group) │ ├── noData.dg5 # No data page │ ├── override.dg5 # Override management │ ├── schedule.dg5 # Schedule management │ ├── showData.dg5 # Data display +│ ├── showDataFav.dg5 # Favorite points display │ └── trend.dg5 # Trend display +├── js/ # Scripts and libraries +│ ├── getFavorites.dg5 # Favorites retrieval/parsing from Project.gfx +│ └── libraries/ # Third-party libraries (jQuery, JSZip) for unzipping +├── data/ # Generated CSV files (favorites, users, groups) ├── palette/ # Custom widgets (currently empty) └── fonts/ # Custom fonts ``` @@ -306,6 +329,7 @@ The interface presents a side menu with all automatically detected point categor ### Data Visualization +- **Favorites** display the points marked as favorites in the controller, grouped by favorite group - **Standard points** (AI, AO, AV, BI, BO, BV, MSI, MSV) display their values and allow modifications (according to rights) - **Trends** (Trend Log) display historical graphs - **Schedules** allow visualization and modification of schedules @@ -358,10 +382,42 @@ Any support request sent to Distech Controls regarding this project will be refu ## Version History -### Version 1.5 (Current) +### Version 1.6 (Current) +- New **Favorites** category: automatic retrieval of favorites from the controller's `Project.gfx`, displayed grouped by favorite group +- Fixed French menu labels (« Entrées Digitales », « Entrées Multi-états ») + +### Version 1.5 - Structured navigation interface by categories - Multilingual support FR/EN (via URL parameter) - Light/dark themes - Specialized pages for alarms, trends, schedules, overrides - Auto-discovery of BACnet points - Compatible with Eclypse V1.19+ + +--- + +## Changelog + +Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/). + +### [1.6] - 2026-06-10 + +#### Ajouté +- Catégorie **Favoris** dans la navigation principale. +- `js/getFavorites.dg5` : téléchargement du `Project.gfx` de l'automate, décompression côté navigateur (JSZip) et extraction de `Favorites.xml` vers `data/Favorites.csv`. +- `js/libraries/` : bibliothèques tierces (jQuery, JSZip, `getZip.html`, `dgframe.js`) pour la décompression. +- `pages/menuFavorites.dg5` : menu des favoris regroupés par groupe. +- `pages/showDataFav.dg5` : affichage des points d'un groupe de favoris. + +#### Corrigé +- Libellés français du menu (`index.dg5`) : « Entrées Digitales » et « Entrées Multi-états ». + +### [1.5] + +#### Ajouté +- Interface de navigation structurée par catégories de points BACnet. +- Support multilingue FR/EN (via paramètre URL). +- Thèmes clair/sombre. +- Pages spécialisées pour les alarmes, tendances, programmes horaires et dérogations. +- Auto-découverte des points BACnet. +- Compatibilité Eclypse V1.19+. diff --git a/cadMyDC/_proj.json b/cadMyDC/_proj.json index f1754da..a6d6879 100644 --- a/cadMyDC/_proj.json +++ b/cadMyDC/_proj.json @@ -10,7 +10,7 @@ "isLibrary" : false, "category" : null, "description" : "MyDC Controls of Equivalence by Charles-Arthur DAVID", - "version" : "1.5", + "version" : "1.6", "firstDayOfWeek" : 0, "loadExternalConfig" : false, "protected" : false, diff --git a/cadMyDC/index.dg5 b/cadMyDC/index.dg5 index 2fbe04b..34bc05c 100644 --- a/cadMyDC/index.dg5 +++ b/cadMyDC/index.dg5 @@ -1 +1 @@ -{"@type":"group","Left_Layout":{"@type":"symbol","width":"100%","height":"100%","creationPolicy":"onDisplay","symbol":"lib/dcWidgets/palette/widgets:Navigation.Layout_B","tabLabels":"Tab1,Tab2,Tab3","paths":"pages/charts.dg5,pages/gagues.dg5,pages/text.dg5","!paletteIcon":"assets/widgetIcons/LayoutSide.png","initialIndex":0,"!df":true,"!label":"Layout Side","Initial_Index":0,"Default_Tab":0,"Enabled":true,"Logo":"lib/dcWidgets/assets/logos/distech.svg","Logo_Padding":10,"Dark_Theme":false,"Data":["tableColumnMapping1.output"],"tableColumnMapping1":{"@type":"tableColumnMapping","!ps":["input","retainColumns","0","1","2","3","4","5","6","7","output"],"!x":1544,"!y":494,"input":["@parent.tableJoin4.output"],"!w":100,"@array":["label",["@parent.if.output"],"path","path","icons","icons","dataPath","dataPath"]},"if":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":1273,"!y":581,"op":"endsWith","then":"fr","else":"label","@array":[["@parent.webDocument.search"],"fr"]},"tableJoin4":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":1408,"!y":396,"input1":["@parent.csvParser.output"],"input2":["@parent.table.data"],"join":"left","!w":93,"field1":"label","field2":"label"},"webDocument":{"@type":"webDocument","!ps":["title","width","height","url","hash","search","language","platform","userAgent","appName","zoom","initialScale","lockScale"],"!x":1053,"!y":500,"!w":148},"csvParser":{"@type":"csvParser","!ps":["input","withHeader","delimiter","parseError","output"],"!x":1265,"!y":297,"input":["@parent.replace.output"],"withHeader":true},"table":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"label","meta":{"name":"label"}},{"name":"fr","meta":{"name":"fr"}}],"rows":[[0,"Analog Input","Entrées Analogiques"],[1,"Analog Output","Sorties Analogiques"],[2,"Analog Value","Valeurs Analogiques"],[3,"Binary Input","Entrée Digitales"],[4,"Binary Output","Sorties Digitales"],[5,"Binary Value","Valeurs Digitales"],[6,"Multi State Input","Entrée Multi-états"],[7,"Multi State Value","Valeurs Multi-états"],[8,"Trend Log","Tendances"],[9,"Schedule","Programmes Horaires"],[10,"Override","Dérogation"],[11,"Alarms","Alarmes"]]},"!ps":["data"],"!x":1264,"!y":438},"replace":{"@type":"replace","!ps":["input","regexp","0","1","2","3","4","5","6","7","8","9","output"],"!x":1105,"!y":223,"input":["@parent.csvWriter.output"],"regexp":true,"@array":["Schedule,\\d+","Schedule,pages/schedule.dg5","Trend Log,\\d+","Trend Log,pages/trend.dg5","\\d+","pages/showData.dg5","Override,\\d+","Override,pages/override.dg5","Alarms,\\d+","Alarms,pages/Alarms.dg5"]},"csvWriter":{"@type":"csvWriter","!ps":["input","withHeader","output"],"!x":955,"!y":194,"input":["@parent.tableColumnMapping.output"],"withHeader":true},"tableColumnMapping":{"@type":"tableColumnMapping","!ps":["input","retainColumns","0","1","2","3","4","5","6","7","output"],"!x":790,"!y":35,"input":["@parent.tableJoin5.output"],"@array":["label","name","path","row","icons","null","dataPath","path"]},"tableJoin5":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":564,"!y":699,"input1":["@parent.tableJoin2.output"],"input2":["@parent.table1.data"],"join":"union","!w":100},"tableJoin2":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":563,"!y":543,"input1":["@parent.tableJoin3.output"],"input2":["@parent.tableSearch4.output"],"join":"union","!w":100},"table1":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"name","meta":{"name":"name"}},{"name":"path","meta":{"name":"path"}},{"name":"hasChildren","type":"bool","meta":{"name":"hasChildren","type":"bool"}},{"name":"hasValue","type":"bool","meta":{"name":"hasValue","type":"bool"}},{"name":"hasHistory","type":"bool","meta":{"name":"hasHistory","type":"bool"}},{"name":"type","meta":{"name":"type"}},{"name":"icon","type":"String","meta":{"name":"icon","type":"String"}},{"name":"unit","type":"String","meta":{"name":"unit","type":"String"}},{"name":"enum","type":"String","meta":{"name":"enum","type":"String"}}],"rows":[[0,"Alarms",null,null,null,null,null,null,null,null],[1,"Override","/Data/Local+Device/Analog+Input",true,false,false,null,null,null,null]]},"!ps":["data"],"!x":351,"!y":717},"tableJoin3":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":563,"!y":359,"input1":["@parent.tableJoin1.output"],"input2":["@parent.tableSearch3.output"],"join":"union"},"tableSearch4":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Sche","!ps":["table","column","search","is","output"],"!x":347,"!y":554},"tableJoin1":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":560,"!y":191,"input1":["@parent.tableJoin.output"],"input2":["@parent.tableSearch2.output"],"join":"union","!w":93},"tableSearch3":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Trend","!ps":["table","column","search","is","output"],"!x":350,"!y":418},"Local_Device":{"@type":"getChildren","path":"/Data/Local+Device","autoRun":true,"!ps":["path","output","error"],"!x":32,"!y":208},"tableJoin":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":557,"!y":28,"input1":["@parent.tableSearch.output"],"input2":["@parent.tableSearch1.output"],"join":"union","!w":109},"tableSearch2":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Multi","!ps":["table","column","search","is","output"],"!x":352,"!y":284},"tableSearch":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Analog","!ps":["table","column","search","is","output"],"!x":352,"!y":23},"tableSearch1":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Binary","!ps":["table","column","search","is","output"],"!x":352,"!y":154},"tabData1":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"label","meta":{"name":"v1"}},{"name":"path","meta":{"name":"v2"}},{"name":"icons","meta":{"name":"icons"}},{"name":"dataPath","meta":{"name":"dataPath"}}],"rows":[[0,"Home","samplePath/index.dg5","lib/dcWidgets/assets/icons/home-darkBlue.svg",""],[1,"Alarms","samplePath/pages/Schedules.dg5","lib/dcWidgets/assets/icons/bell-darkBlue.svg",""],[2,"Schedule","samplePath/pages/Alarms.dg5","lib/dcWidgets/assets/icons/calendar-darkBlue.svg",""],[3,"Trends","samplePath/pages/Trends.dg5","lib/dcWidgets/assets/icons/trend-darkBlue.svg",""]]},"!ps":["data"],"!x":34,"!y":30},"Default":0,"autoSize":true,"Alarm_Count_Enabled":true,"User_Image_1":"assets/weather_icons/dark/01d.png","User_Image_2":"assets/weather_icons/dark/01d.png","User_Label_1":"Label 1","User_Value_1":"Value 1","User_Label_2":"Label 2","User_Value_2":"Value 2","Language":"en","Main_Nav_Width":180,"Follow_Global_Theme":true,"thisProject":"lib/cadMyDC/","Add_Local_Device_tree":{"@type":"invokeAction","path":"/Data","action":"Add Local Device tree","!ps":["invoke","path","action"],"!x":31,"!y":101,"!actProps":[],"autoRun":true},"flexGrow":0,"hCenter":"","tableFilter":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":1691,"!y":709,"input":["@parent.tableColumnMapping1.output"],"condition":["@parent.concat.output"]},"concat":{"@type":"concat","!ps":["0","1","strict","output"],"!x":1545,"!y":748,"@array":["row == ",["@parent.Selected"]]}},"Text":{"@type":"text","width":"100.0%","cornerRadius":0,"multiline":false,"fontSize":"36","border":{"@type":"fill","gradient":{"@type":"gradient","@array":[{"ratio":0,"color":"#000000","alpha":1},{"ratio":100,"color":"#ffffff","alpha":1}]},"color":16777215},"text":["@parent.Left_Layout.tableFilter.output.0_label"],"color":["props.fontColor"],"fontWeight":"bold","paddingLeft":10,"paddingRight":10,"paddingTop":10,"paddingBottom":10,"keepEqualPaddings":true,"clickThrough":true,"props":{"@type":"propertyHub","hubMode":"readWrite","autoRun":true,"!ps":["invoke","hubMode","hubInstance","outputAll","bgColor","fontColor","shadowColor","callOutBG","bellIcon"],"!x":506,"!y":74,"!var":[{"n":"bgColor","t":"fill"},{"n":"fontColor","t":"fill"},{"n":"shadowColor","t":"fill"},{"n":"callOutBG","t":"fill"},{"n":"bellIcon","t":"string"}],"titleColor":{"@type":"fill","fillType":"solid","color":3355443},"gridLineColor":{"@type":"fill","fillType":"solid","color":12830664},"trackColor":{"@type":"fill","fillType":"solid","color":16119546},"pointerColor":{"@type":"fill","fillType":"solid","color":4741221},"minMax":{"@type":"fill","fillType":"solid","color":10066329},"hubInstance":["@parent.setTheme.output"]},"setTheme":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":242,"!y":415,"op":"=","then":["@parent.darkMode.hubInstance"],"else":["@parent.lightMode.hubInstance"],"!w":115,"@array":[["@parent.globalTheme.output"],"true"]},"globalTheme":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":275,"!y":241,"then":["@stage.Left_Layout.Dark_Theme"],"else":["@parent.setAutoTheme.output"],"@array":[["@stage.Left_Layout.Follow_Global_Theme"],"false"]},"darkMode":{"@type":"propertyHub","hubMode":"main","autoRun":true,"!ps":["invoke","hubMode","hubInstance","outputAll","bgColor","shadowColor","callOutBG","bellIcon","fontColor"],"!x":76,"!y":232,"!var":[{"n":"bgColor","t":"fill"},{"n":"shadowColor","t":"fill"},{"n":"callOutBG","t":"fill"},{"n":"bellIcon","t":"string"},{"n":"fontColor","t":"fill"}],"bgColor":{"@type":"fill","fillType":"solid","color":2370611},"titleColor":{"@type":"fill","fillType":"solid","color":3355443},"shadowColor":{"@type":"fill","fillType":"solid","color":4741221},"gridLineColor":{"@type":"fill","fillType":"solid","color":12830664},"fontColor":{"@type":"fill","fillType":"solid","color":16777215},"trackColor":{"@type":"fill","fillType":"solid","color":16119546},"pointerColor":{"@type":"fill","fillType":"solid","color":4741221},"minMax":{"@type":"fill","fillType":"solid","color":10066329},"callOutBG":{"@type":"fill","fillType":"solid","color":3358280},"bellIcon":"assets/icons/alarm-light.svg"},"lightMode":{"@type":"propertyHub","hubMode":"main","autoRun":true,"!ps":["invoke","hubMode","hubInstance","outputAll","bgColor","shadowColor","callOutBG","bellIcon","fontColor"],"!x":76,"!y":16,"!var":[{"n":"bgColor","t":"fill"},{"n":"shadowColor","t":"fill"},{"n":"callOutBG","t":"fill"},{"n":"bellIcon","t":"string"},{"n":"fontColor","t":"fill"}],"bgColor":{"@type":"fill","fillType":"solid","color":16777215},"titleColor":{"@type":"fill","fillType":"solid","color":3355443},"shadowColor":{"@type":"fill","fillType":"solid","color":15527410},"gridLineColor":{"@type":"fill","fillType":"solid","color":12830664},"fontColor":{"@type":"fill","fillType":"solid","color":3289650},"trackColor":{"@type":"fill","fillType":"solid","color":16119546},"pointerColor":{"@type":"fill","fillType":"solid","color":4741221},"minMax":{"@type":"fill","fillType":"solid","color":10066329},"callOutBG":{"@type":"fill","fillType":"solid","color":16777215},"bellIcon":"assets/icons/alarm-dark.svg","valueFontType":"Roboto-Regular.ttf","labelFontType":"Roboto-Regular.ttf"},"setAutoTheme":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":274,"!y":80,"then":"true","else":"false","@array":[["@parent.autoTheme.theme"],"dark"]},"autoTheme":{"@type":"projectInfo","!ps":["theme"],"!x":272,"!y":16},"!df":true},"width":"100%","height":"100%","clipContent":true,"@array":[["Left_Layout"],["Text"]],"@symbols":{"@df":{"tableSearch":{"@type":"dfcontent","tableFilter_RC1":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":394,"!y":148,"input":["@parent.@params.table"],"condition":["@parent.concat.output"],"!w":101},"concat":{"@type":"concat","!ps":["0","1","2","3","4","5","strict","output"],"!x":221,"!y":34,"strict":true,"@array":[["@parent.@params.column"],".toLowerCase().indexOf('",["@parent.@params.search"],"'.toLowerCase())",["@parent.if.output"],"-1"]},"if":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":50,"!y":15,"then":">","else":"==","@array":[["@parent.@params.is"],"true"]},"!df":true,"@params":{"!var":[{"n":"table","t":"tabledata"},{"n":"column","t":"string"},{"n":"search","t":"string"},{"n":"is","t":"bool"},{"n":"output","t":"tabledata","isOutput":true}],"output":["@parent.tableFilter_RC1.output"],"is":true}}}},"@ver":10232} \ No newline at end of file +{"@type":"group","Left_Layout":{"@type":"symbol","width":"100%","height":"100%","creationPolicy":"onDisplay","symbol":"lib/dcWidgets/palette/widgets:Navigation.Layout_B","tabLabels":"Tab1,Tab2,Tab3","paths":"pages/charts.dg5,pages/gagues.dg5,pages/text.dg5","!paletteIcon":"assets/widgetIcons/LayoutSide.png","initialIndex":0,"!df":true,"!label":"Layout Side","Initial_Index":0,"Default_Tab":0,"Enabled":true,"Logo":"lib/dcWidgets/assets/logos/distech.svg","Logo_Padding":10,"Dark_Theme":false,"Data":["tableColumnMapping1.output"],"tableColumnMapping1":{"@type":"tableColumnMapping","!ps":["input","retainColumns","0","1","2","3","4","5","6","7","output"],"!x":1541,"!y":746,"input":["@parent.tableJoin4.output"],"!w":100,"@array":["label",["@parent.if.output"],"path","path","icons","icons","dataPath","dataPath"]},"if":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":1270,"!y":833,"op":"endsWith","then":"fr","else":"label","@array":[["@parent.webDocument.search"],"fr"]},"tableJoin4":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":1405,"!y":648,"input1":["@parent.csvParser.output"],"input2":["@parent.table.data"],"join":"left","!w":93,"field1":"label","field2":"label"},"webDocument":{"@type":"webDocument","!ps":["title","width","height","url","hash","search","language","platform","userAgent","appName","zoom","initialScale","lockScale"],"!x":1050,"!y":752,"!w":148},"csvParser":{"@type":"csvParser","!ps":["input","withHeader","delimiter","parseError","output"],"!x":1262,"!y":549,"input":["@parent.replace.output"],"withHeader":true},"table":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"label","meta":{"name":"label"}},{"name":"fr","meta":{"name":"fr"}}],"rows":[[0,"Analog Input","Entrées Analogiques"],[1,"Analog Output","Sorties Analogiques"],[2,"Analog Value","Valeurs Analogiques"],[3,"Binary Input","Entrées Digitales"],[4,"Binary Output","Sorties Digitales"],[5,"Binary Value","Valeurs Digitales"],[6,"Multi State Input","Entrées Multi-états"],[7,"Multi State Value","Valeurs Multi-états"],[8,"Trend Log","Tendances"],[9,"Schedule","Programmes Horaires"],[10,"Override","Dérogation"],[11,"Alarms","Alarmes"],[12,"Favorites","Favoris"]]},"!ps":["data"],"!x":1261,"!y":690},"replace":{"@type":"replace","!ps":["input","regexp","0","1","2","3","4","5","6","7","8","9","10","11","output"],"!x":1099,"!y":409,"input":["@parent.csvWriter.output"],"regexp":true,"@array":["Schedule,\\d+","Schedule,pages/schedule.dg5","Trend Log,\\d+","Trend Log,pages/trend.dg5","\\d+","pages/showData.dg5","Override,\\d+","Override,pages/override.dg5","Alarms,\\d+","Alarms,pages/alarms.dg5","Favorites,\\d+","Favorites,pages/menuFavorites.dg5"]},"csvWriter":{"@type":"csvWriter","!ps":["input","withHeader","output"],"!x":952,"!y":411,"input":["@parent.tableColumnMapping.output"],"withHeader":true},"tableColumnMapping":{"@type":"tableColumnMapping","!ps":["input","retainColumns","0","1","2","3","4","5","6","7","output"],"!x":787,"!y":287,"input":["@parent.tableJoin5.output"],"@array":["label","name","path","row","icons","null","dataPath","path"]},"tableJoin5":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":561,"!y":951,"input1":["@parent.tableJoin2.output"],"input2":["@parent.table1.data"],"join":"union","!w":100},"tableJoin2":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":560,"!y":795,"input1":["@parent.tableJoin3.output"],"input2":["@parent.tableSearch4.output"],"join":"union","!w":100},"table1":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"name","meta":{"name":"name"}},{"name":"path","meta":{"name":"path"}},{"name":"hasChildren","type":"bool","meta":{"name":"hasChildren","type":"bool"}},{"name":"hasValue","type":"bool","meta":{"name":"hasValue","type":"bool"}},{"name":"hasHistory","type":"bool","meta":{"name":"hasHistory","type":"bool"}},{"name":"type","meta":{"name":"type"}},{"name":"icon","type":"String","meta":{"name":"icon","type":"String"}},{"name":"unit","type":"String","meta":{"name":"unit","type":"String"}},{"name":"enum","type":"String","meta":{"name":"enum","type":"String"}}],"rows":[[0,"Alarms",null,null,null,null,null,null,null,null],[1,"Override","/Data/Local+Device/Analog+Input",true,false,false,null,null,null,null]]},"!ps":["data"],"!x":348,"!y":969},"tableJoin3":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":560,"!y":611,"input1":["@parent.tableJoin1.output"],"input2":["@parent.tableSearch3.output"],"join":"union"},"tableSearch4":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Sche","!ps":["table","column","search","is","output"],"!x":344,"!y":806},"tableJoin1":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":557,"!y":443,"input1":["@parent.tableJoin.output"],"input2":["@parent.tableSearch2.output"],"join":"union","!w":93},"tableSearch3":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Trend","!ps":["table","column","search","is","output"],"!x":347,"!y":670},"Local_Device":{"@type":"getChildren","path":"/Data/Local+Device","autoRun":true,"!ps":["path","output","error"],"!x":29,"!y":460},"tableJoin":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":554,"!y":280,"input1":["@parent.if1.output"],"input2":["@parent.tableSearch1.output"],"join":"union","!w":109},"tableSearch2":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Multi","!ps":["table","column","search","is","output"],"!x":349,"!y":536},"if1":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":736,"!y":15,"op":">","then":["@parent.tableJoin6.output"],"else":["@parent.tableJoin6.input2"],"@array":[["@parent.length.output"],"0"]},"tableSearch1":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Binary","!ps":["table","column","search","is","output"],"!x":349,"!y":406},"tableSearch":{"@type":"dfsymbol","symbol":"tableSearch","table":["@parent.Local_Device.output"],"column":"name","search":"Analog","!ps":["table","column","search","is","output"],"!x":349,"!y":275},"tabData1":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"label","meta":{"name":"v1"}},{"name":"path","meta":{"name":"v2"}},{"name":"icons","meta":{"name":"icons"}},{"name":"dataPath","meta":{"name":"dataPath"}}],"rows":[[0,"Home","samplePath/index.dg5","lib/dcWidgets/assets/icons/home-darkBlue.svg",""],[1,"Alarms","samplePath/pages/Schedules.dg5","lib/dcWidgets/assets/icons/bell-darkBlue.svg",""],[2,"Schedule","samplePath/pages/Alarms.dg5","lib/dcWidgets/assets/icons/calendar-darkBlue.svg",""],[3,"Trends","samplePath/pages/Trends.dg5","lib/dcWidgets/assets/icons/trend-darkBlue.svg",""]]},"!ps":["data"],"!x":31,"!y":282},"Default":0,"autoSize":true,"Alarm_Count_Enabled":true,"User_Image_1":"assets/weather_icons/dark/01d.png","User_Image_2":"assets/weather_icons/dark/01d.png","User_Label_1":"Label 1","User_Value_1":"Value 1","User_Label_2":"Label 2","User_Value_2":"Value 2","Language":"en","Main_Nav_Width":180,"Follow_Global_Theme":true,"thisProject":"lib/cadMyDC/","Add_Local_Device_tree":{"@type":"invokeAction","path":"/Data","action":"Add Local Device tree","!ps":["invoke","path","action"],"!x":28,"!y":353,"!actProps":[],"autoRun":true},"flexGrow":0,"hCenter":"","tableFilter":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":1688,"!y":961,"input":["@parent.tableColumnMapping1.output"],"condition":["@parent.concat.output"]},"concat":{"@type":"concat","!ps":["0","1","strict","output"],"!x":1542,"!y":1000,"@array":["row == ",["@parent.Selected"]]},"length":{"@type":"length","!ps":["input","output"],"!x":347,"!y":11,"input":["@parent.tableFilter1.output"]},"tableJoin6":{"@type":"tableJoin","!ps":["input1","input2","field1","field2","join","output"],"!x":511,"!y":70,"input1":["@parent.table2.data"],"input2":["@parent.tableSearch.output"],"join":"union","!w":109},"tableFilter1":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":191,"!y":11,"input":["@parent.listFiles.output"],"condition":"name===\"Favorites.csv\""},"table2":{"@type":"table","data":{"@type":"tabledata","cols":[{"name":"row","type":"number","meta":{"name":"row","type":"number"}},{"name":"name","meta":{"name":"name"}},{"name":"path","meta":{"name":"path"}},{"name":"hasChildren","type":"bool","meta":{"name":"hasChildren","type":"bool"}},{"name":"hasValue","type":"bool","meta":{"name":"hasValue","type":"bool"}},{"name":"hasHistory","type":"bool","meta":{"name":"hasHistory","type":"bool"}},{"name":"type","meta":{"name":"type"}},{"name":"icon","type":"String","meta":{"name":"icon","type":"String"}},{"name":"unit","type":"String","meta":{"name":"unit","type":"String"}},{"name":"enum","type":"String","meta":{"name":"enum","type":"String"}}],"rows":[[0,"Favorites","",null,null,null,null,null,null,null]]},"!ps":["data"],"!x":340,"!y":91,"!w":100},"listFiles":{"@type":"listFiles","autoRun":true,"!ps":["invoke","path","filter","mode","output"],"!x":35,"!y":11,"path":"data","invoke":["@parent.stopwatch.onLoop"]},"stopwatch":{"@type":"stopwatch","interval":1,"step":1,"!ps":["enabled","interval","step","output"],"!x":33,"!y":144,"enabled":true,"modulo":10,"loop":false}},"Text":{"@type":"text","width":"100.0%","cornerRadius":0,"multiline":false,"fontSize":"36","border":{"@type":"fill","gradient":{"@type":"gradient","@array":[{"ratio":0,"color":"#000000","alpha":1},{"ratio":100,"color":"#ffffff","alpha":1}]},"color":16777215},"text":["@parent.Left_Layout.tableFilter.output.0_label"],"color":["props.fontColor"],"props":{"@type":"propertyHub","hubMode":"readWrite","autoRun":true,"!ps":["invoke","hubMode","hubInstance","outputAll","bgColor","fontColor","shadowColor","callOutBG","bellIcon"],"!x":506,"!y":74,"!var":[{"n":"bgColor","t":"fill"},{"n":"fontColor","t":"fill"},{"n":"shadowColor","t":"fill"},{"n":"callOutBG","t":"fill"},{"n":"bellIcon","t":"string"}],"titleColor":{"@type":"fill","fillType":"solid","color":3355443},"gridLineColor":{"@type":"fill","fillType":"solid","color":12830664},"trackColor":{"@type":"fill","fillType":"solid","color":16119546},"pointerColor":{"@type":"fill","fillType":"solid","color":4741221},"minMax":{"@type":"fill","fillType":"solid","color":10066329},"hubInstance":["@parent.setTheme.output"]},"setTheme":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":242,"!y":415,"op":"=","then":["@parent.darkMode.hubInstance"],"else":["@parent.lightMode.hubInstance"],"!w":115,"@array":[["@parent.globalTheme.output"],"true"]},"fontWeight":"bold","paddingLeft":10,"paddingRight":10,"paddingTop":10,"paddingBottom":10,"keepEqualPaddings":true,"clickThrough":true,"globalTheme":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":275,"!y":241,"then":["@stage.Left_Layout.Dark_Theme"],"else":["@parent.setAutoTheme.output"],"@array":[["@stage.Left_Layout.Follow_Global_Theme"],"false"]},"darkMode":{"@type":"propertyHub","hubMode":"main","autoRun":true,"!ps":["invoke","hubMode","hubInstance","outputAll","bgColor","shadowColor","callOutBG","bellIcon","fontColor"],"!x":76,"!y":232,"!var":[{"n":"bgColor","t":"fill"},{"n":"shadowColor","t":"fill"},{"n":"callOutBG","t":"fill"},{"n":"bellIcon","t":"string"},{"n":"fontColor","t":"fill"}],"bgColor":{"@type":"fill","fillType":"solid","color":2370611},"titleColor":{"@type":"fill","fillType":"solid","color":3355443},"shadowColor":{"@type":"fill","fillType":"solid","color":4741221},"gridLineColor":{"@type":"fill","fillType":"solid","color":12830664},"fontColor":{"@type":"fill","fillType":"solid","color":16777215},"trackColor":{"@type":"fill","fillType":"solid","color":16119546},"pointerColor":{"@type":"fill","fillType":"solid","color":4741221},"minMax":{"@type":"fill","fillType":"solid","color":10066329},"callOutBG":{"@type":"fill","fillType":"solid","color":3358280},"bellIcon":"assets/icons/alarm-light.svg"},"lightMode":{"@type":"propertyHub","hubMode":"main","autoRun":true,"!ps":["invoke","hubMode","hubInstance","outputAll","bgColor","shadowColor","callOutBG","bellIcon","fontColor"],"!x":76,"!y":16,"!var":[{"n":"bgColor","t":"fill"},{"n":"shadowColor","t":"fill"},{"n":"callOutBG","t":"fill"},{"n":"bellIcon","t":"string"},{"n":"fontColor","t":"fill"}],"bgColor":{"@type":"fill","fillType":"solid","color":16777215},"titleColor":{"@type":"fill","fillType":"solid","color":3355443},"shadowColor":{"@type":"fill","fillType":"solid","color":15527410},"gridLineColor":{"@type":"fill","fillType":"solid","color":12830664},"fontColor":{"@type":"fill","fillType":"solid","color":3289650},"trackColor":{"@type":"fill","fillType":"solid","color":16119546},"pointerColor":{"@type":"fill","fillType":"solid","color":4741221},"minMax":{"@type":"fill","fillType":"solid","color":10066329},"callOutBG":{"@type":"fill","fillType":"solid","color":16777215},"bellIcon":"assets/icons/alarm-dark.svg","valueFontType":"Roboto-Regular.ttf","labelFontType":"Roboto-Regular.ttf"},"setAutoTheme":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":274,"!y":80,"then":"true","else":"false","@array":[["@parent.autoTheme.theme"],"dark"]},"autoTheme":{"@type":"projectInfo","!ps":["theme"],"!x":272,"!y":16},"!df":true},"width":"100%","height":"100%","clipContent":true,"Page_Include":{"@type":"pageInclude","width":0,"height":0,"creationPolicy":"onDisplay","path":"js/getFavorites.dg5"},"@array":[["Left_Layout"],["Text"],["Page_Include"]],"@symbols":{"@df":{"tableSearch":{"@type":"dfcontent","tableFilter_RC1":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":394,"!y":148,"input":["@parent.@params.table"],"condition":["@parent.concat.output"],"!w":101},"concat":{"@type":"concat","!ps":["0","1","2","3","4","5","strict","output"],"!x":221,"!y":34,"strict":true,"@array":[["@parent.@params.column"],".toLowerCase().indexOf('",["@parent.@params.search"],"'.toLowerCase())",["@parent.if.output"],"-1"]},"if":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":50,"!y":15,"then":">","else":"==","@array":[["@parent.@params.is"],"true"]},"!df":true,"@params":{"!var":[{"n":"table","t":"tabledata"},{"n":"column","t":"string"},{"n":"search","t":"string"},{"n":"is","t":"bool"},{"n":"output","t":"tabledata","isOutput":true}],"output":["@parent.tableFilter_RC1.output"],"is":true}}}},"@ver":10284} \ No newline at end of file diff --git a/cadMyDC/js/getFavorites.dg5 b/cadMyDC/js/getFavorites.dg5 new file mode 100644 index 0000000..fab4022 --- /dev/null +++ b/cadMyDC/js/getFavorites.dg5 @@ -0,0 +1 @@ +{"@type":"group","refresh":{"@type":"img","src":"lib/dcIcons/assets/Light Theme/Actions/refresh.svg","width":50,"height":50,"tilingOpt":{"@type":"tilingOpt","fillType":"image","tiling":"contain","hAlign":"center","vAlign":"middle","angle":0},"display":["@parent.getFavorites.loading"],"rotate":["stopwatch.output"],"stopwatch":{"@type":"stopwatch","interval":0.02,"step":5,"!ps":["enabled","interval","step","output"],"!x":55,"!y":36,"enabled":["@parent.display"],"modulo":360},"!df":true},"width":"100%","height":"100%","focusType":"isolate","clipContent":true,"getFavorites":{"@type":"symbol","symbol":"getFavorites","width":0,"height":0,"autoUpdate":true},"@array":[["getFavorites"],["refresh"]],"@symbols":{"unzip":{"@type":"iframe","width":0,"scrolling":true,"height":0,"url":"js/libraries/getZip.html","@params":{"!reuse":true,"!var":[{"n":"zipSource","t":"textarea"},{"n":"fileContent","t":"textarea"},{"n":"blacklistFiles","t":"string"}],"!layout":{"type":"vbox","children":["zipSource","fileContent","blacklistFiles"]}}},"getFavorites":{"@type":"symbol","symbol":"unzip","width":261,"height":126,"zipSource":["strLoader.output"],"strLoader":{"@type":"strLoader","autoRun":true,"!ps":["invoke","path","status","output"],"!x":909,"!y":813,"path":["@parent.concat.output"],"method":"GET","sendCookies":true,"outputFormat":"binary","headers":"Content-Type=application/json","data":"{}"},"concat":{"@type":"concat","!ps":["0","1","2","3","strict","output"],"!x":743,"!y":817,"strict":true,"@array":[["@parent.webDocument.protocol"],"//",["@parent.webDocument.host"],["@parent.if1.output"]]},"webDocument":{"@type":"webDocument","!ps":["protocol","host"],"!x":572,"!y":824},"if1":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":405,"!y":797,"then":["@parent.if.output"],"!w":123,"op":"!=","@array":[["@parent.if.0"],"niagara"]},"if":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":226,"!y":798,"then":"/api/rest/v1/files/common/localDevice/project/Project.gfx?encode=bin","else":"/api/rest/v2/services/gfx/files/project/Project.gfx?content=media","!w":123,"@array":[["@parent.projectInfo.serverType"],"eclypse1"]},"projectInfo":{"@type":"projectInfo","!ps":["serverType"],"!x":50,"!y":795},"fileContent":"","jsonParser":{"@type":"jsonParser","!ps":["input","output","parseError","selector"],"!x":47,"!y":229,"input":["@parent.fileContent"],"selector":"","drillDownFilter":"","!w":125},"!df":true,"script":{"@type":"script","!ps":["invoke","script","output","print","xml","tableFavorites"],"!x":55,"!y":371,"script":"var xml = XML.parse(@.xml)\n\nvar groups = xml.queryAll(\"Group\");\n\nvar headers = [\"group\", \"type\", \"index\", \"name\", \"typeId\", \"networkInstance\"];\n\nif (groups.length > 0) {\n tableSet(@.tableFavorites, [], headers);\n\n for (var i = 0; i < groups.length; i++) {\n var group = groups[i];\n var groupName = group.getAttribute(\"name\") || \"\";\n\n var favorites = group.queryAll(\"Favorite\");\n\n for (var j = 0; j < favorites.length; j++) {\n var item = favorites[j];\n var favType = item.getAttribute(\"type\") || \"\";\n var favIndex = item.getAttribute(\"index\") || \"\";\n var favName = item.getAttribute(\"name\") || \"\";\n var favTypeId = item.getAttribute(\"typeId\") || \"\";\n var favNetworkInstance = item.getAttribute(\"networkInstance\") || \"\";\n\n tableAddRows(@.tableFavorites, [[\"\",groupName, favType, favIndex, favName, favTypeId, favNetworkInstance]]);\n }\n }\n}","autoRun":true,"!var":[{"n":"xml","t":"string"},{"n":"tableFavorites","t":"tabledata"}],"xml":["@parent.tableFilter.output.0_content"],"!w":191},"tableFilter":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":234,"!y":229,"input":["@parent.jsonParser.output"],"condition":"name===\"Favorites.xml\""},"script1":{"@type":"script","!ps":["invoke","script","output","print","xml","tableUsers","tableGroups"],"!x":56,"!y":535,"script":"var xml = XML.parse(@.xml)\r\n\r\n// --- Table Users ---\r\nvar users = xml.queryAll(\"User\");\r\nvar headersUsers = [\"Name\", \"AccessRight\", \"Password\"];\r\n\r\nif (users.length > 0) {\r\n tableSet(@.tableUsers, [], headersUsers);\r\n\r\n for (var i = 0; i < users.length; i++) {\r\n var item = users[i];\r\n var uName = item.getAttribute(\"Name\") || \"\";\r\n var uAccessRight = item.getAttribute(\"AccessRight\") || \"\";\r\n var uPassword = item.getAttribute(\"Password\") || \"\";\r\n\r\n tableAddRows(@.tableUsers, [[\"\",uName, uAccessRight, uPassword]]);\r\n }\r\n}\r\n\r\n// --- Table Groups ---\r\nvar groups = xml.queryAll(\"Group\");\r\nvar headersGroups = [\"Name\", \"Read\", \"ReadWrite\"];\r\n\r\nif (groups.length > 0) {\r\n tableSet(@.tableGroups, [], headersGroups);\r\n\r\n for (var i = 0; i < groups.length; i++) {\r\n var item = groups[i];\r\n var gName = item.getAttribute(\"Name\") || \"\";\r\n var gRead = item.getAttribute(\"Read\") || \"\";\r\n var gReadWrite = item.getAttribute(\"ReadWrite\") || \"\";\r\n\r\n tableAddRows(@.tableGroups, [[\"\",gName, gRead, gReadWrite]]);\r\n }\r\n}","autoRun":true,"!var":[{"n":"xml","t":"string"},{"n":"tableUsers","t":"tabledata"},{"n":"tableGroups","t":"tabledata"}],"xml":["@parent.tableFilter1.output.0_content"],"!w":191},"tableFilter1":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":395,"!y":229,"input":["@parent.tableFilter.input"],"condition":"name===\"FavoritesGroupsSecurity.xml\""},"tableFilter2":{"@type":"tableFilter","!ps":["input","condition","output"],"!x":558,"!y":229,"input":["@parent.tableFilter1.input"],"condition":"name===\"Image150.png\""},"strUploader":{"@type":"strUploader","!ps":["invoke","enabled","path","data","deleteEmptyFile"],"!x":1226,"!y":353,"path":"data/Favorites.csv","data":["@parent.if3.then"],"invoke":["@parent.delay1.1"],"enabled":["@parent.length.output"]},"if3":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":637,"!y":342,"op":"=","then":["@parent.length.input"],"else":"","@array":[["@parent.@params.autoUpdate"],"true"]},"delay1":{"@type":"delay","!ps":["invoke","delay","mode","0","1"],"!x":1074,"!y":286,"delay":0.1,"@array":[["@parent.if2.output"],null]},"length":{"@type":"length","!ps":["input","output"],"!x":486,"!y":352,"input":["@parent.csvWriter.output"]},"if2":{"@type":"if","!ps":["op","0","1","then","else","output"],"!x":944,"!y":287,"op":">","then":["@parent.hub.output"],"else":"","@array":[["@parent.length.output"],"0"]},"csvWriter":{"@type":"csvWriter","!ps":["input","withHeader","output"],"!x":334,"!y":371,"input":["@parent.script.tableFavorites"],"withHeader":true},"hub":{"@type":"hub","ignoreNull":true,"!ps":["0","1","output","onChange"],"!x":807,"!y":285,"index":"0","@array":[["@parent.if3.output"],["@parent.@params.onSave"]]},"strUploader1":{"@type":"strUploader","!ps":["invoke","enabled","path","data","deleteEmptyFile"],"!x":817,"!y":508,"path":"data/Users.csv","data":["@parent.csvWriter1.output"],"invoke":["@parent.delay2.1"],"enabled":["@parent.length1.output"]},"csvWriter1":{"@type":"csvWriter","!ps":["input","withHeader","output"],"!x":337,"!y":525,"input":["@parent.script1.tableUsers"],"withHeader":true},"delay2":{"@type":"delay","!ps":["invoke","delay","mode","0","1"],"!x":503,"!y":457,"delay":0.1,"@array":[["@parent.strUploader.onComplete"],null]},"length1":{"@type":"length","!ps":["input","output"],"!x":622,"!y":553,"input":["@parent.csvWriter1.output"]},"strUploader2":{"@type":"strUploader","!ps":["invoke","enabled","path","data","deleteEmptyFile"],"!x":809,"!y":664,"path":"data/Groups.csv","data":["@parent.csvWriter2.output"],"invoke":["@parent.delay3.1"],"enabled":["@parent.length2.output"]},"csvWriter2":{"@type":"csvWriter","!ps":["input","withHeader","output"],"!x":340,"!y":663,"input":["@parent.script1.tableGroups"],"withHeader":true},"delay3":{"@type":"delay","!ps":["invoke","delay","mode","0","1"],"!x":508,"!y":610,"delay":0.1,"@array":[["@parent.strUploader1.onComplete"],null]},"length2":{"@type":"length","!ps":["input","output"],"!x":660,"!y":677,"input":["@parent.csvWriter2.output"]},"changeState":{"@type":"changeState","!ps":["invoke","revert","enabled","duration","durationBack","0","1"],"!x":59,"!y":7,"invoke":["@parent.@onCreate"],"@array":["@parent.@params.loading",{"@type":"stateItem","value":true,"disableSerialization":true,"original":false}]},"changeState1":{"@type":"changeState","!ps":["invoke","revert","enabled","duration","durationBack","0","1"],"!x":418,"!y":0,"invoke":["@parent.delay.1"],"@array":["@parent.@params.loading",{"@type":"stateItem","value":false,"disableSerialization":true,"original":true}]},"delay":{"@type":"delay","!ps":["invoke","delay","mode","0","1"],"!x":257,"!y":14,"@array":[["@parent.jsonParser.input"],null]},"blacklistFiles":"Main.xml","@params":{"!reuse":true,"!var":[{"n":"onSave","t":"trigger"},{"n":"loading","t":"bool","isOutput":true},{"n":"autoUpdate","t":"bool"}],"loading":false,"!layout":{"type":"vbox","children":["autoUpdate","onSave",{"type":"section","children":["loading"],"label":"information"}]},"autoUpdate":false},"@W":261,"@H":126},"@df":{"treeData":{"@type":"dfcontent","concat":{"@type":"concat","!ps":["0","1","2","strict","output"],"!x":160,"!y":36,"strict":true,"@array":["group == \"",["@parent.@params.input.0_value"],"\""]},"!df":true,"split":{"@type":"split","!ps":["input","separator","output"],"!x":400,"!y":92,"input":["@parent.concat.1"]},"@params":{"!var":[{"n":"input","t":"tabledata"},{"n":"output","t":"tabledata"}],"output":["@parent.split.output"]}}}},"@ver":10322} \ No newline at end of file diff --git a/cadMyDC/js/libraries/dgframe.js b/cadMyDC/js/libraries/dgframe.js new file mode 100644 index 0000000..3ce368f --- /dev/null +++ b/cadMyDC/js/libraries/dgframe.js @@ -0,0 +1,37 @@ +// test if a parameter value is designer table +let dgIframeId; +function dgIsParamTable(val){ +return (val !== null && typeof(val)=='object' && val.hasOwnProperty('cols') +&& val.hasOwnProperty('rows')); +} +// interface to the dglux5 application +function onDGFrameMessage(e){ +var data = e.data; +if (typeof(data)=='object'){ +if (data.hasOwnProperty('dgIframeInit')){ +dgIframeId = data['dgIframeInit']; +console.log(dgIframeId); +if (window.parent !== null){ +// the first post back shouldn't contain any data change +window.parent.postMessage({'dgIframe':dgIframeId},'*'); +} +} else if (data.hasOwnProperty('dgIframeUpdate')){ +var updates = data['updates']; +if (typeof(updates)=='object'){ +if (typeof(dgParams) == 'object'){ +for (key in dgParams){ +if (updates.hasOwnProperty(key)){ +dgParams[key](updates[key]); +}}} +if (typeof(dgParamsUpdated) == 'function'){ +dgParamsUpdated(); +}}}}} +window.addEventListener('message',onDGFrameMessage); +// push parameter changes back to dglux +function dgUpdateParams(changes) { +if (dgIframeId !== null) { +window.parent.postMessage({'dgIframe':dgIframeId, changes:changes},'*'); +} else { +throw 'dgUpdateParams failed, handshake not finished'; +} +} \ No newline at end of file diff --git a/cadMyDC/js/libraries/getZip.html b/cadMyDC/js/libraries/getZip.html new file mode 100644 index 0000000..0ca1cea --- /dev/null +++ b/cadMyDC/js/libraries/getZip.html @@ -0,0 +1,154 @@ + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/cadMyDC/js/libraries/jquery-3.7.1.min.js b/cadMyDC/js/libraries/jquery-3.7.1.min.js new file mode 100644 index 0000000..7f37b5d --- /dev/null +++ b/cadMyDC/js/libraries/jquery-3.7.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<