parent
54c54d77ca
commit
90f0410c60
@ -0,0 +1 @@ |
|||||||
|
{"Name": "", "Description": "", "Hus": "Charlie", "col-left": [], "col-center": [], "col-right": []} |
@ -1 +0,0 @@ |
|||||||
{"Name": "First example board", "Description": "This is the first example board we have in the database.", "Hus": "Charlie", "col-left": [{"order": 0, "id": "parallel1", "text": "A parallel coordinates plot", "api_url": "..."}], "col-center": [{"order": 0, "id": "grid1", "text": "A grid plot", "api_url": "..."}], "col-right": [{"order": 0, "id": "horizon1", "text": "A horizon plot", "api_url": "..."}]} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "GM", "Description": "", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-580160", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01"}], "col-right": []} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "GY", "Description": "G Yearky", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-405229", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}], "col-right": []} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "HW", "Description": "", "Hus": "Charlie", "col-left": [], "col-center": [], "col-right": [{"order": 0, "id": "horizon-876464", "text": "", "api_url": "horizon/weekly?hus=Charlie&family=MP1_1&type=celsius&year=2023&week=15"}]} |
|
@ -0,0 +1 @@ |
|||||||
|
{"Name": "eee", "Description": "eeee", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-803064", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01&hour=12"}], "col-right": []} |
@ -0,0 +1 @@ |
|||||||
|
{"Name": "ffff", "Description": "ddddd", "Hus": "Charlie", "col-left": [], "col-center": [{"order": 0, "id": "grid-963811", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01&hour=12"}], "col-right": []} |
@ -0,0 +1 @@ |
|||||||
|
{"Name": "my1", "Description": "this is my example", "Hus": "Charlie", "col-left": [{"order": 0, "id": "parallel-6847321", "text": "", "api_url": "parallel/yearly?hus=Charlie&family=MP1_1&type=celsius&year=2023&hour=12&day=1"}, {"order": 1, "id": "parallel-9166361", "text": "wwww", "api_url": "parallel/yearly?hus=Charlie&family=MP1_1&type=celsius&year=2023&hour=12&day=1"}], "col-center": [{"order": 0, "id": "grid-6311", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01&hour=12"}], "col-right": [{"order": 0, "id": "horizon-737361", "text": "", "api_url": "horizon/monthly?hus=Charlie&family=MP1_1&type=celsius&year=2023&month=1"}, {"order": 1, "id": "horizon-767913", "text": "", "api_url": "horizon/monthly?hus=Charlie&family=MP1_1&type=celsius&year=2023&month=1"}]} |
@ -1 +0,0 @@ |
|||||||
{"Name": "test1", "Description": "this is a test", "Hus": "Charlie", "col-left": [{"order": 0, "id": "P-txt-723017", "text": "eeeeeeee", "api_url": null}, {"order": 1, "id": "parallel-4286811", "text": "", "api_url": "parallel/daily?hus=Charlie&family=MP1_1&type=celsius&day=2022-12-15"}], "col-center": [{"order": 0, "id": "G-txt-910177", "text": "err we", "api_url": null}, {"order": 1, "id": "grid-438525", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}], "col-right": [{"order": 0, "id": "H-txt-974001", "text": "rerer er re", "api_url": null}, {"order": 1, "id": "horizon-487744", "text": "", "api_url": "horizon/daily?hus=Charlie&family=MP1_1&type=celsius&day=2023-02-07"}]} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "test2", "Description": "this is exactly like test1", "Hus": "Charlie", "col-left": [{"order": 0, "id": "P-txt-723017", "text": "eeeeeeeeeeeeeeee", "api_url": null}, {"order": 1, "id": "parallel-4286811", "text": "", "api_url": "parallel/daily?hus=Charlie&family=MP1_1&type=celsius&day=2022-12-15"}], "col-center": [{"order": 0, "id": "G-txt-910177", "text": "err weerr we", "api_url": null}, {"order": 1, "id": "grid-438525", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}], "col-right": [{"order": 0, "id": "H-txt-974001", "text": "rerer er rererer er re", "api_url": null}, {"order": 1, "id": "horizon-487744", "text": "", "api_url": "horizon/daily?hus=Charlie&family=MP1_1&type=celsius&day=2023-02-07"}]} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "test3", "Description": "test2 has TXT+Diagram -> 1+2, 1+2 and 1+2", "Hus": "Charlie", "col-left": [{"order": 0, "id": "P-txt-723017", "text": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "api_url": null}, {"order": 1, "id": "parallel-4286811", "text": "", "api_url": "parallel/daily?hus=Charlie&family=MP1_1&type=celsius&day=2022-12-15"}, {"order": 2, "id": "parallel-8519775", "text": "", "api_url": "parallel/yearly?hus=Charlie&family=MP1_1&type=celsius&year=2023"}], "col-center": [{"order": 0, "id": "G-txt-910177", "text": "err weerr weerr weerr we", "api_url": null}, {"order": 1, "id": "grid-438525", "text": "", "api_url": "grid/yearly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023"}, {"order": 2, "id": "grid-628976", "text": "", "api_url": "grid/monthly?hus=Charlie&sensor=Temp_MP1_1_Pos1&type=celsius&year=2023&month=01"}], "col-right": [{"order": 0, "id": "H-txt-974001", "text": "rerer er rererer er rererer er rererer er re", "api_url": null}, {"order": 1, "id": "horizon-487744", "text": "", "api_url": "horizon/daily?hus=Charlie&family=MP1_1&type=celsius&day=2023-02-07"}, {"order": 2, "id": "horizon-138015", "text": "", "api_url": "horizon/weekly?hus=Charlie&family=MP1_1&type=celsius&year=2023&week=14"}]} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "2222222", "Description": "333333333", "Hus": "Pilgatan", "col-left": [], "col-center": [], "col-right": []} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "dddd", "Description": "fff", "Hus": "Pilgatan", "col-left": [], "col-center": [], "col-right": []} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "ee", "Description": "ee", "Hus": "Pilgatan", "col-left": [{"order": 0, "id": "parallel-5047360", "text": "", "api_url": "parallel/daily?hus=Pilgatan&family=SCv1&type=celsius&day=2023-06-06"}], "col-center": [{"order": 0, "id": "grid-175161", "text": "", "api_url": "grid/monthly?hus=Pilgatan&sensor=SCv1-1-Temp&type=celsius&year=2023&month=01"}], "col-right": [{"order": 0, "id": "horizon-970414", "text": "", "api_url": "horizon/daily?hus=Pilgatan&family=SCv1&type=celsius&day=2023-06-05"}]} |
|
@ -1 +0,0 @@ |
|||||||
{"Name": "rr", "Description": "rr", "Hus": "Pilgatan", "col-left": [], "col-center": [], "col-right": []} |
|
@ -0,0 +1,283 @@ |
|||||||
|
Importing House: Charlie |
||||||
|
Deleting and recreating 'Charlie.db'... |
||||||
|
New card: 1; table name: Hus_Charlie_card_1 |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-02.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-08.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-09.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-01.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-11.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-06.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-12.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-03.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-05.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-10.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-07.TXT... |
||||||
|
Processing ../Data/Charlie/1-2022/1-2022-04.TXT... |
||||||
|
New card: 4; table name: Hus_Charlie_card_4 |
||||||
|
Processing ../Data/Charlie/4-2018/4-2018-10.TXT... |
||||||
|
Processing ../Data/Charlie/4-2018/4-2018-12.TXT... |
||||||
|
Processing ../Data/Charlie/4-2018/4-2018-08.TXT... |
||||||
|
Processing ../Data/Charlie/4-2018/4-2018-07.TXT... |
||||||
|
Processing ../Data/Charlie/4-2018/4-2018-09.TXT... |
||||||
|
Processing ../Data/Charlie/4-2018/4-2018-11.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-08.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-07.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-02.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-04.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-03.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-01.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-05.TXT... |
||||||
|
Processing ../Data/Charlie/4-2023/4-2023-06.TXT... |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-06.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-01.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2023/1-2023-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-11.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-01.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-06.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-12.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2021/1-2021-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-07.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-02.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-10.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-04.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-12.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-03.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-01.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-09.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-05.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-11.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-06.TXT... |
||||||
|
Processing ../Data/Charlie/4-2022/4-2022-08.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-09.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-10.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-03.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-01.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-05.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-06.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-02.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-08.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-07.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-12.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-04.TXT... |
||||||
|
Processing ../Data/Charlie/4-2020/4-2020-11.TXT... |
||||||
|
Processing ../Data/Charlie/1-2018/1-2018-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2018/1-2018-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2018/1-2018-12.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2018/1-2018-11.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2018/1-2018-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2018/1-2018-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-12.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-06.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-01.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2019/1-2019-11.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-09.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-07.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-12.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-03.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-11.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-01.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-02.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-05.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-08.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-06.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-04.TXT... |
||||||
|
Processing ../Data/Charlie/4-2019/4-2019-10.TXT... |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-06.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-01.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-11.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-12.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/1-2020/1-2020-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 38 37 |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-03.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-10.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-12.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-06.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-07.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-02.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-01.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-11.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-04.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-09.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-08.TXT... |
||||||
|
Processing ../Data/Charlie/4-2021/4-2021-05.TXT... |
||||||
|
Importing House: Pilgatan |
||||||
|
Deleting and recreating 'Pilgatan.db'... |
||||||
|
New card: v6; table name: Hus_Pilgatan_card_v6 |
||||||
|
Processing ../Data/Pilgatan/v6-2023-08.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-06.TXT... |
||||||
|
New card: v1; table name: Hus_Pilgatan_card_v1 |
||||||
|
Processing ../Data/Pilgatan/v1-2022-10.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2021-12.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2021-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 35 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-06.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2022-03.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2021-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2022-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-07.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-05.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-06.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2021-08.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-01.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2021-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 157 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-08.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2023-10.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-01.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2023-02.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2023-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2021-06.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-05.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-04.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2021-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 157 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-06.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2021-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-11.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2023-03.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2023-09.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2023-01.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-08.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2023-06.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-09.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2022-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2022-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2022-02.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-12.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2022-12.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2022-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2021-12.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2023-07.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2023-10.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2021-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 9 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2021-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 157 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2022-07.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2021-10.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2023-02.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2021-11.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-11.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-09.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-08.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2023-03.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2021-07.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-01.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2023-04.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v6-2023-05.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
||||||
|
Processing ../Data/Pilgatan/v1-2021-09.TXT... |
||||||
|
Processing ../Data/Pilgatan/v1-2022-04.TXT... |
||||||
|
Processing ../Data/Pilgatan/v6-2022-11.TXT... |
||||||
|
- Invalid file format; SKIPPING! 147 185 |
@ -1,93 +0,0 @@ |
|||||||
Trahus Code Report |
|
||||||
2023-10-10 |
|
||||||
--- |
|
||||||
All Files: js/dash.js, ../py/import.py, ../py/main.py, dash.html, home.html, css/dash.css, config/config.js, config/datamap.js, ../py/README.md |
|
||||||
Number of Lines: 3563 |
|
||||||
Number of Variables: 182 |
|
||||||
Number of Functions: 35 |
|
||||||
Number of If Statements: 14 |
|
||||||
Number of Switch Statements: 6 |
|
||||||
Number of ForEach Statements: 12 |
|
||||||
--- |
|
||||||
|
|
||||||
File: js/dash.js |
|
||||||
Number of Lines: 1516 |
|
||||||
Number of Variables: 174 |
|
||||||
Number of Functions: 21 |
|
||||||
Number of If Statements: 14 |
|
||||||
Number of Switch Statements: 6 |
|
||||||
Number of ForEach Statements: 11 |
|
||||||
--- |
|
||||||
|
|
||||||
File: ../py/import.py |
|
||||||
Number of Lines: 101 |
|
||||||
Number of Variables: 12 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
||||||
File: ../py/main.py |
|
||||||
Number of Lines: 469 |
|
||||||
Number of Variables: 15 |
|
||||||
Number of Functions: 14 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
||||||
File: dash.html |
|
||||||
Number of Lines: 1073 |
|
||||||
Number of Variables: 11 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
||||||
File: home.html |
|
||||||
Number of Lines: 89 |
|
||||||
Number of Variables: 8 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 1 |
|
||||||
--- |
|
||||||
|
|
||||||
File: css/dash.css |
|
||||||
Number of Lines: 103 |
|
||||||
Number of Variables: 0 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
||||||
File: config/config.js |
|
||||||
Number of Lines: 12 |
|
||||||
Number of Variables: 5 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
||||||
File: config/datamap.js |
|
||||||
Number of Lines: 80 |
|
||||||
Number of Variables: 3 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
||||||
File: ../py/README.md |
|
||||||
Number of Lines: 120 |
|
||||||
Number of Variables: 0 |
|
||||||
Number of Functions: 0 |
|
||||||
Number of If Statements: 0 |
|
||||||
Number of Switch Statements: 0 |
|
||||||
Number of ForEach Statements: 0 |
|
||||||
--- |
|
||||||
|
|
@ -1,101 +0,0 @@ |
|||||||
import sys |
|
||||||
import re |
|
||||||
|
|
||||||
def analyze_file(file_path): |
|
||||||
with open(file_path, 'r') as file: |
|
||||||
lines = file.readlines() |
|
||||||
|
|
||||||
num_lines = len(lines) |
|
||||||
variables = [] |
|
||||||
functions = 0 |
|
||||||
ifs = 0 |
|
||||||
switches = 0 |
|
||||||
foreachs = 0 |
|
||||||
|
|
||||||
for line in lines: |
|
||||||
line = line.strip() |
|
||||||
|
|
||||||
# Check for variable declarations and add them to the list |
|
||||||
var_declaration_match_js = re.match(r"^(var|let|const)\s+([\w$]+)", line) |
|
||||||
var_declaration_match_py = re.match(r"^(?:.*)?(\w+)\s*=", line) |
|
||||||
if var_declaration_match_js: |
|
||||||
variable = var_declaration_match_js.group(2) |
|
||||||
variables.append(variable) |
|
||||||
elif var_declaration_match_py: |
|
||||||
variable = var_declaration_match_py.group(1) |
|
||||||
variables.append(variable) |
|
||||||
|
|
||||||
# Count the number of function declarations |
|
||||||
function_declaration_match_js = re.match(r"^(function)\s+[\w$]+\(", line) |
|
||||||
function_declaration_match_py = re.match(r"^(?:def)\s+(?:(?:\w+\s*\(.*\))|(?:\w+))", line) |
|
||||||
if function_declaration_match_js or function_declaration_match_py: |
|
||||||
functions += 1 |
|
||||||
|
|
||||||
# Count the number of if statements |
|
||||||
if re.match(r"^(if)\s*\(", line): |
|
||||||
ifs += 1 |
|
||||||
|
|
||||||
# Count the number of switch statements |
|
||||||
if re.match(r"^(switch)\s*\(", line): |
|
||||||
switches += 1 |
|
||||||
|
|
||||||
# Count the number of forEach statements |
|
||||||
if re.match(r"^(.+)\.forEach\s*\(", line): |
|
||||||
foreachs += 1 |
|
||||||
|
|
||||||
return { |
|
||||||
'file': file_path, |
|
||||||
'num_lines': num_lines, |
|
||||||
'num_variables': variables, |
|
||||||
'num_functions': functions, |
|
||||||
'num_ifs': ifs, |
|
||||||
'num_switches': switches, |
|
||||||
'num_foreachs': foreachs |
|
||||||
} |
|
||||||
|
|
||||||
if __name__ == '__main__': |
|
||||||
if len(sys.argv) < 2: |
|
||||||
print('Please provide at least one JavaScript or Python file to analyze.') |
|
||||||
sys.exit(1) |
|
||||||
|
|
||||||
total_lines = 0 |
|
||||||
total_variables = [] |
|
||||||
total_functions = 0 |
|
||||||
total_ifs = 0 |
|
||||||
total_switches = 0 |
|
||||||
total_foreachs = 0 |
|
||||||
|
|
||||||
reports = [] |
|
||||||
|
|
||||||
for file_path in sys.argv[1:]: |
|
||||||
analysis = analyze_file(file_path) |
|
||||||
total_lines += analysis["num_lines"] |
|
||||||
total_variables.extend(analysis["num_variables"]) |
|
||||||
total_functions += analysis["num_functions"] |
|
||||||
total_ifs += analysis["num_ifs"] |
|
||||||
total_switches += analysis["num_switches"] |
|
||||||
total_foreachs += analysis["num_foreachs"] |
|
||||||
|
|
||||||
report = f'File: {analysis["file"]}\n' |
|
||||||
report += f'Number of Lines: {analysis["num_lines"]}\n' |
|
||||||
report += f'Number of Variables: {len(set(analysis["num_variables"]))}\n' |
|
||||||
report += f'Number of Functions: {analysis["num_functions"]}\n' |
|
||||||
report += f'Number of If Statements: {analysis["num_ifs"]}\n' |
|
||||||
report += f'Number of Switch Statements: {analysis["num_switches"]}\n' |
|
||||||
report += f'Number of ForEach Statements: {analysis["num_foreachs"]}\n' |
|
||||||
report += '---\n' |
|
||||||
reports.append(report) |
|
||||||
|
|
||||||
print('Total Report:') |
|
||||||
print('---') |
|
||||||
print(f'All Files: {", ".join(sys.argv[1:])}') |
|
||||||
print(f'Number of Lines: {total_lines}') |
|
||||||
print(f'Number of Variables: {len(set(total_variables))}') |
|
||||||
print(f'Number of Functions: {total_functions}') |
|
||||||
print(f'Number of If Statements: {total_ifs}') |
|
||||||
print(f'Number of Switch Statements: {total_switches}') |
|
||||||
print(f'Number of ForEach Statements: {total_foreachs}') |
|
||||||
print('---\n') |
|
||||||
|
|
||||||
for report in reports: |
|
||||||
print(report) |
|
@ -1,48 +0,0 @@ |
|||||||
<!DOCTYPE html> |
|
||||||
<html> |
|
||||||
<head> |
|
||||||
<title>Horizon Chart Example with Plotly</title> |
|
||||||
<!-- Include the Plotly library --> |
|
||||||
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script> |
|
||||||
</head> |
|
||||||
<body> |
|
||||||
<!-- Create a container for the chart --> |
|
||||||
<div id="horizon-chart"></div> |
|
||||||
|
|
||||||
<script> |
|
||||||
// Function to create a Horizon chart |
|
||||||
function createHorizonChart(dates, values, myid, title) { |
|
||||||
// Create a trace for the Horizon chart |
|
||||||
const trace = { |
|
||||||
x: dates.map(date => new Date(date)), |
|
||||||
y: values, |
|
||||||
type: 'scatter', |
|
||||||
mode: 'lines', |
|
||||||
fill: 'tozeroy', |
|
||||||
name: title, |
|
||||||
hoverinfo: 'x+y', |
|
||||||
}; |
|
||||||
|
|
||||||
// Create a layout for the chart |
|
||||||
const layout = { |
|
||||||
title: title, |
|
||||||
}; |
|
||||||
|
|
||||||
// Plot the chart inside the specified div (myid) |
|
||||||
Plotly.newPlot(myid, [trace], layout); |
|
||||||
} |
|
||||||
|
|
||||||
// Example data |
|
||||||
const exampleDates = [ |
|
||||||
"2023-01-01", "2023-01-02", "2023-01-03", "2023-01-04", "2023-01-05", |
|
||||||
"2023-01-06", "2023-01-07", "2023-01-08", "2023-01-09", "2023-01-10" |
|
||||||
]; |
|
||||||
|
|
||||||
const exampleValues = [0.1, 0.3, 0.5, 0.4, 0.2, -0.1, -0.3, -0.4, -0.2, -0.1]; |
|
||||||
const chartTitle = "Example Horizon Chart"; |
|
||||||
|
|
||||||
// Call the function to create the Horizon chart |
|
||||||
createHorizonChart(exampleDates, exampleValues, 'horizon-chart', chartTitle); |
|
||||||
</script> |
|
||||||
</body> |
|
||||||
</html> |
|
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,61 +0,0 @@ |
|||||||
<!DOCTYPE html> |
|
||||||
<html> |
|
||||||
<head> |
|
||||||
<title>Click to Add Bar Chart</title> |
|
||||||
<style> |
|
||||||
.chart-container { |
|
||||||
display: flex; |
|
||||||
align-items: flex-end; |
|
||||||
height: 300px; |
|
||||||
} |
|
||||||
.bar { |
|
||||||
width: 30px; |
|
||||||
margin: 0 5px; |
|
||||||
background-color: blue; |
|
||||||
} |
|
||||||
</style> |
|
||||||
</head> |
|
||||||
<body> |
|
||||||
<button id="addButton">Add Bar Chart</button> |
|
||||||
<div id="chartContainer" class="chart-container"></div> |
|
||||||
|
|
||||||
<script src="script.js"></script> |
|
||||||
|
|
||||||
<script> |
|
||||||
|
|
||||||
// Function to create the bar chart based on data |
|
||||||
function createBarChart(data) { |
|
||||||
const chartContainer = document.getElementById('chartContainer'); |
|
||||||
chartContainer.innerHTML = ''; // Clear the container before adding new bars |
|
||||||
|
|
||||||
for (const value of data) { |
|
||||||
const bar = document.createElement('div'); |
|
||||||
bar.className = 'bar'; |
|
||||||
bar.style.height = value + 'px'; // Set the bar height based on data |
|
||||||
chartContainer.appendChild(bar); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
// Function to generate random data for the bar chart (for demonstration purposes) |
|
||||||
function generateRandomData(numBars, maxHeight) { |
|
||||||
const data = []; |
|
||||||
for (let i = 0; i < numBars; i++) { |
|
||||||
data.push(Math.floor(Math.random() * maxHeight) + 1); |
|
||||||
} |
|
||||||
return data; |
|
||||||
} |
|
||||||
|
|
||||||
// Add a click event listener to the button |
|
||||||
const addButton = document.getElementById('addButton'); |
|
||||||
addButton.addEventListener('click', function () { |
|
||||||
const numBars = 5; // Number of bars in the chart |
|
||||||
const maxHeight = 200; // Maximum height of the bars |
|
||||||
const data = generateRandomData(numBars, maxHeight); |
|
||||||
createBarChart(data); |
|
||||||
}); |
|
||||||
|
|
||||||
</script> |
|
||||||
|
|
||||||
</body> |
|
||||||
</html> |
|
||||||
|
|
@ -1,36 +0,0 @@ |
|||||||
|
|
||||||
<!DOCTYPE html> |
|
||||||
<html> |
|
||||||
<head> |
|
||||||
<title>Click to Add Block</title> |
|
||||||
<script> |
|
||||||
// Function to create the HTML block element |
|
||||||
function createBlock() { |
|
||||||
const block = document.createElement('div'); |
|
||||||
block.className = 'block'; // You can add CSS classes to style the block |
|
||||||
block.innerHTML = 'This is a new block!'; // You can customize the content here |
|
||||||
return block; |
|
||||||
} |
|
||||||
|
|
||||||
// Function to add the HTML block to the container |
|
||||||
function addBlockToContainer() { |
|
||||||
const container = document.getElementById('container'); |
|
||||||
const block = createBlock(); |
|
||||||
container.appendChild(block); |
|
||||||
} |
|
||||||
|
|
||||||
// Add a click event listener to the button |
|
||||||
const addButton = document.getElementById('addButton'); |
|
||||||
addButton.addEventListener('click', addBlockToContainer); |
|
||||||
|
|
||||||
</script> |
|
||||||
</head> |
|
||||||
<body> |
|
||||||
<button id="addButton">Add Block</button> |
|
||||||
<div id="container"></div> |
|
||||||
|
|
||||||
<script src="script.js"></script> |
|
||||||
</body> |
|
||||||
</html> |
|
||||||
|
|
||||||
|
|
@ -1,151 +0,0 @@ |
|||||||
|
|
||||||
Kalejdash data flexiboard: |
|
||||||
an Infravis.se data visualization & exploration interface and server-API that enables the creation of editable dashboard combining diagrams creation with rich text entries. |
|
||||||
|
|
||||||
############################################## |
|
||||||
|
|
||||||
|
|
||||||
Last ToDo, after v0.9-alpha |
|
||||||
codenae: "Forum Wood Building Nordic 2023" |
|
||||||
|
|
||||||
- Grid and Horizon: make compatible d3js versions to arrange the tooltips bugs. |
|
||||||
- Parallel: |
|
||||||
> Reload/re-render graph when resizing column. |
|
||||||
> Check <g class="c3-grid c3-grid-line" -> this is not getting update, even when swaping windows or unfocus&clic outside the page. |
|
||||||
- Add home page texts to config/confir.json |
|
||||||
|
|
||||||
|
|
||||||
BIG: |
|
||||||
|
|
||||||
> EDIT DIAGRAM function + button (or TEXT) + Form button "open in new window" |
|
||||||
|
|
||||||
> Save current flexiboard as a JSON in the server (!) -> Rafa needs to do the server-site again through the flask API |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#################################################33 |
|
||||||
#################################################33 |
|
||||||
FORM IDs: |
|
||||||
|
|
||||||
|
|
||||||
Parallel -> P |
|
||||||
----------- |
|
||||||
---->Yearly - Y |
|
||||||
<form id="PY"> |
|
||||||
<input id="PYTitle" name="PYTitle" |
|
||||||
<select id="PYSensor" name="PYSensor" |
|
||||||
<input id="PYYear" name="PYYear" |
|
||||||
<input id="PYTime" name="PYTime" |
|
||||||
|
|
||||||
---->Monthly -> M |
|
||||||
<form id="PM"> |
|
||||||
<input id="PMTitle" name="PMTitle" |
|
||||||
<select id="PMFamSensor" name="PMFamSensor" |
|
||||||
<select id="PMParameter" name="PMParameter" |
|
||||||
<input id="PMYearMonth" name="PMYearMonth" |
|
||||||
<input id="PMTime" name="PMTime" |
|
||||||
|
|
||||||
NEW |
|
||||||
---->Weekly -> M |
|
||||||
<form id="PW"> |
|
||||||
<input id="PWTitle" name="PMTitle" |
|
||||||
<select id="PWFamSensor" name="PWFamSensor" |
|
||||||
<select id="PWParameter" name="PWParameter" |
|
||||||
<input id="PWWeekMonday" name="PWYear" |
|
||||||
Wekday: |
|
||||||
<input name="PMWeekMonday" id="PMWeekMonday" |
|
||||||
|
|
||||||
|
|
||||||
<input id="PMTime" name="PMTime" |
|
||||||
|
|
||||||
|
|
||||||
DONE |
|
||||||
---->Daily -> D |
|
||||||
<form id="PD"> |
|
||||||
<input id="PDTitle" name="PDTitle" |
|
||||||
<select id="PDFamSensor" name="PDSensor" |
|
||||||
<select id="PDParameter" name="PDParameter" |
|
||||||
<input id="PDYearMonthDay" name="PDYearMonthDay" |
|
||||||
<input id="PDTime" name="PDTime" |
|
||||||
|
|
||||||
|
|
||||||
#################################################33 |
|
||||||
|
|
||||||
Grid --> G |
|
||||||
---- |
|
||||||
---->Yearly -> Y |
|
||||||
<form id="GY"> |
|
||||||
<input id="GYTitle" name="GYTitle" |
|
||||||
<select id="GYSensor" name="GYSensor" |
|
||||||
<input id="GYYear" name="GYYear" |
|
||||||
<input id="GYTime" name="GYTime" |
|
||||||
|
|
||||||
|
|
||||||
---->Monthly -> M |
|
||||||
<form id="GM"> |
|
||||||
<input id="GMTitle" name="GMTitle" |
|
||||||
<select id="GMSensor" name="GMSensor" |
|
||||||
<input id="GMYearMonth" name="GMYearMonth" |
|
||||||
<input id="GMTime" name="GMTime" |
|
||||||
|
|
||||||
|
|
||||||
---->Weekly -> D |
|
||||||
<form id="GW"> |
|
||||||
<input id="GWTitle" name="GWTitle" |
|
||||||
<select id="GWSensor" name="GWSensor" |
|
||||||
<input id="GWYearMonthMonday" name="GWYearMonthMonday" |
|
||||||
<input id="GWTime" name="GWTime" |
|
||||||
|
|
||||||
#################################################33 |
|
||||||
|
|
||||||
HorizonChart - H |
|
||||||
------------ |
|
||||||
|
|
||||||
----> Yearly -> Y |
|
||||||
<form id="HW"> |
|
||||||
<input id="HYTitle" name="HYTitle" |
|
||||||
<select id="HYSensorFamily" name="HYSensorFamily" |
|
||||||
<input id="HYYear" name="HYYear" |
|
||||||
<input id="HYTime" name="HYTime" |
|
||||||
selectedItems1 |
|
||||||
|
|
||||||
|
|
||||||
----> Monthly- M |
|
||||||
<form id="HW"> |
|
||||||
<input id="HMTitle" name="HMTitle" |
|
||||||
<select id="HMSensorFamily" name="HMSensorFamily" |
|
||||||
<select id="HMYearMonth" name="HMYearNonth" |
|
||||||
<input id="HMTime" name="HMTime" |
|
||||||
selectedItems2 |
|
||||||
|
|
||||||
|
|
||||||
----> Weekly -> W |
|
||||||
<form id="HW"> |
|
||||||
<input id="HWTitle" name="HWTitle" |
|
||||||
<select id="HWSensorFamily" name="HWSensorFamily" |
|
||||||
<input id="HWYear" name="HWYear" |
|
||||||
<input id="HWTime" name="HWTime" |
|
||||||
selectedItems3 |
|
||||||
|
|
||||||
################################################# |
|
||||||
#### Short names and definitions of the three techniques used this app. |
|
||||||
|
|
||||||
> Name of the App -> Flexiboard: |
|
||||||
>> is the idea f any dashboard that needs is buided by interacting through web page. |
|
||||||
>> you can biuld and save a customized, always editable, shared. In this first version, any saved flexiboard is accessible if you know its URL. |
|
||||||
The idea is that the user/editor of the App may curate the home page with contents highlighting/presenting. |
|
||||||
|
|
||||||
> Parallel: |
|
||||||
Track Family of sensores |
|
||||||
Track Family of sensores in a parallel coordinate visuall technick, use it as a escale of the real positions and mesures on a time period. |
|
||||||
|
|
||||||
|
|
||||||
----- |
|
||||||
> Grid: |
|
||||||
Track one sensor. |
|
||||||
Track one sensor for outlayer at a glance in a chossen time period |
|
||||||
|
|
||||||
|
|
||||||
-------- |
|
||||||
> Horizon: |
|
||||||
|
|
@ -1,18 +0,0 @@ |
|||||||
from flask import Flask, request, jsonify, send_from_directory |
|
||||||
|
|
||||||
app = Flask(__name__) |
|
||||||
|
|
||||||
@app.route("/calculate", methods=["POST"]) |
|
||||||
def calculate(): |
|
||||||
data = request.get_json() |
|
||||||
num1 = data.get("num1") |
|
||||||
num2 = data.get("num2") |
|
||||||
result = num1 + num2 |
|
||||||
return jsonify({"result": result}) |
|
||||||
|
|
||||||
@app.route("/") |
|
||||||
def index(): |
|
||||||
return send_from_directory("static", "index.html") |
|
||||||
|
|
||||||
if __name__ == "__main__": |
|
||||||
app.run(debug=True) |
|
@ -1,35 +0,0 @@ |
|||||||
from flask import Flask, request, jsonify, send_from_directory |
|
||||||
|
|
||||||
app = Flask(__name__) |
|
||||||
|
|
||||||
@app.route("/calculate", methods=["POST"]) |
|
||||||
def calculate(): |
|
||||||
data = request.get_json() |
|
||||||
|
|
||||||
# Determine which form was submitted based on a form identifier or name |
|
||||||
form_name = data.get("form_name") |
|
||||||
|
|
||||||
if form_name == "calculatorForm": |
|
||||||
num1 = data.get("num1") |
|
||||||
num2 = data.get("num2") |
|
||||||
result = num1 + num2 |
|
||||||
elif form_name == "anotherForm": |
|
||||||
# Handle data from anotherForm |
|
||||||
pass |
|
||||||
elif form_name == "thirdForm": |
|
||||||
# Handle data from thirdForm |
|
||||||
pass |
|
||||||
elif form_name == "fourthForm": |
|
||||||
# Handle data from fourthForm |
|
||||||
pass |
|
||||||
else: |
|
||||||
return jsonify({"error": "Invalid form_name"}) |
|
||||||
|
|
||||||
return jsonify({"result": result}) |
|
||||||
|
|
||||||
@app.route("/") |
|
||||||
def index(): |
|
||||||
return send_from_directory("static", "forms.html") |
|
||||||
|
|
||||||
if __name__ == "__main__": |
|
||||||
app.run(debug=True) |
|
@ -1,80 +0,0 @@ |
|||||||
<!DOCTYPE html> |
|
||||||
<html> |
|
||||||
<head> |
|
||||||
<title>Calculator</title> |
|
||||||
</head> |
|
||||||
<body> |
|
||||||
<h1>'m form.html : Simple Calculator</h1> |
|
||||||
<form id="calculatorForm"> |
|
||||||
<label for="num1">Number 1:</label> |
|
||||||
<input type="number" id="num1" name="num1" required><br> |
|
||||||
|
|
||||||
<label for="num2">Number 2:</label> |
|
||||||
<input type="number" id="num2" name="num2" required><br> |
|
||||||
|
|
||||||
<button type="submit">Calculate</button> |
|
||||||
</form> |
|
||||||
|
|
||||||
<h1>Form 2: Another Form</h1> |
|
||||||
<form id="anotherForm"> |
|
||||||
<!-- Include fields for Form 2 here --> |
|
||||||
<button type="submit">Submit</button> |
|
||||||
</form> |
|
||||||
|
|
||||||
<h1>Form 3: Third Form</h1> |
|
||||||
<form id="thirdForm"> |
|
||||||
<!-- Include fields for Form 3 here --> |
|
||||||
<button type="submit">Submit</button> |
|
||||||
</form> |
|
||||||
|
|
||||||
<h1>Form 4: Fourth Form</h1> |
|
||||||
<form id="fourthForm"> |
|
||||||
<!-- Include fields for Form 4 here --> |
|
||||||
<button type="submit">Submit</button> |
|
||||||
</form> |
|
||||||
|
|
||||||
<h2>Result:</h2> |
|
||||||
<div id="result"></div> |
|
||||||
|
|
||||||
<script> |
|
||||||
function handleSubmit(formId, fieldIds) { |
|
||||||
const form = document.getElementById(formId); |
|
||||||
form.addEventListener("submit", function (e) { |
|
||||||
e.preventDefault(); |
|
||||||
const data = { |
|
||||||
form_name: formId, // Add a form identifier |
|
||||||
}; |
|
||||||
fieldIds.forEach(fieldId => { |
|
||||||
data[fieldId] = parseFloat(form.querySelector(`#${fieldId}`).value); |
|
||||||
}); |
|
||||||
calculate(formId, data); |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
function calculate(formId, data) { |
|
||||||
fetch("/calculate", { |
|
||||||
method: "POST", |
|
||||||
headers: { |
|
||||||
"Content-Type": "application/json" |
|
||||||
}, |
|
||||||
body: JSON.stringify(data) |
|
||||||
}) |
|
||||||
.then(response => response.json()) |
|
||||||
.then(data => { |
|
||||||
document.getElementById("result").textContent = `Result for form ${formId}: ${data.result}`; |
|
||||||
}) |
|
||||||
.catch(error => { |
|
||||||
console.error("Error:", error); |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
// Call handleSubmit for each form when the DOM is fully loaded |
|
||||||
document.addEventListener("DOMContentLoaded", function () { |
|
||||||
handleSubmit("calculatorForm", ["num1", "num2"]); |
|
||||||
handleSubmit("anotherForm", ["field1", "field2"]); |
|
||||||
handleSubmit("thirdForm", ["field3", "field4"]); |
|
||||||
handleSubmit("fourthForm", ["field5", "field6"]); |
|
||||||
}); |
|
||||||
</script> |
|
||||||
</body> |
|
||||||
</html> |
|
@ -1,59 +0,0 @@ |
|||||||
<!DOCTYPE html> |
|
||||||
<html> |
|
||||||
<head> |
|
||||||
<title>Calculator</title> |
|
||||||
</head> |
|
||||||
<body> |
|
||||||
<h1>Simple Calculator</h1> |
|
||||||
<form id="calculatorForm"> |
|
||||||
<label for="num1">Number 1:</label> |
|
||||||
<input type="number" id="num1" name="num1" required><br> |
|
||||||
|
|
||||||
<label for="num2">Number 2:</label> |
|
||||||
<input type="number" id="num2" name="num2" required><br> |
|
||||||
|
|
||||||
<button type="submit">Calculate</button> |
|
||||||
</form> |
|
||||||
|
|
||||||
<h2>Result:</h2> |
|
||||||
<div id="result"></div> |
|
||||||
|
|
||||||
<script> |
|
||||||
function handleSubmit(formId, fieldIds) { |
|
||||||
const form = document.getElementById(formId); |
|
||||||
form.addEventListener("submit", function (e) { |
|
||||||
e.preventDefault(); |
|
||||||
const data = {}; |
|
||||||
fieldIds.forEach(fieldId => { |
|
||||||
data[fieldId] = parseFloat(form.querySelector(`#${fieldId}`).value); |
|
||||||
}); |
|
||||||
calculate(formId, data); |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
function calculate(formId, data) { |
|
||||||
fetch("/calculate", { |
|
||||||
method: "POST", |
|
||||||
headers: { |
|
||||||
"Content-Type": "application/json" |
|
||||||
}, |
|
||||||
body: JSON.stringify(data) |
|
||||||
}) |
|
||||||
.then(response => response.json()) |
|
||||||
.then(data => { |
|
||||||
document.getElementById("result").textContent = `Result for form ${formId}: ${data.result}`; |
|
||||||
}) |
|
||||||
.catch(error => { |
|
||||||
console.error("Error:", error); |
|
||||||
}); |
|
||||||
} |
|
||||||
|
|
||||||
// Call handleSubmit when the DOM is fully loaded |
|
||||||
document.addEventListener("DOMContentLoaded", function () { |
|
||||||
handleSubmit("calculatorForm", ["num1", "num2"]); |
|
||||||
// Add more forms and initialize them as needed with their respective field IDs |
|
||||||
// handleSubmit("anotherForm", ["field1", "field2"]); |
|
||||||
}); |
|
||||||
</script> |
|
||||||
</body> |
|
||||||
</html> |
|
@ -1,155 +0,0 @@ |
|||||||
///
|
|
||||||
// Data formats needed for each the the three diagrams:
|
|
||||||
|
|
||||||
|
|
||||||
// for all the three cases I include dinamycally JS files that content variables
|
|
||||||
// as arrays. I do this intead of loading CSV values
|
|
||||||
// IS THIS CORRECT OR BETTER WE MOVE TO LOAD csv?
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
|
||||||
// tHE THREE DIAGRAMS ARE: pARALLEL, gRID AND hORIZON:
|
|
||||||
|
|
||||||
//////////////////////////////////////////
|
|
||||||
/// 1.PARAllel
|
|
||||||
|
|
||||||
// This var is The data. First row gives the positions for the sensors
|
|
||||||
// of the famimlly (wall depth).
|
|
||||||
// Then, the raw data is taked as it is but selecting the grup of columns that represent a familly of sensors.
|
|
||||||
// The example that follows show a sensors-family of 6 sensors at the positions pos_1
|
|
||||||
sample = [ |
|
||||||
["pos1", 5, 10, 25, 35, 42, 45], |
|
||||||
["2023-01-01 00:10:07", 26.2, 33, 49.5, 53.1, 62.9, 87], |
|
||||||
["2023-01-01 00:20:05", 26.5, 33.2, 60.5, 71.3, 78.3, 91.7], |
|
||||||
["2023-01-01 00:30:05", 26.7, 33.7, 49.7, 53.7, 63.5, 86.1], |
|
||||||
["2023-01-01 00:40:05", 26.6, 33.5, 49.6, 53.6, 63.5, 86.3], |
|
||||||
["2023-01-01 00:50:05", 26.6, 33.5, 49.6, 53.5, 63.4, 86.5], |
|
||||||
["2023-01-01 01:00:05", 26.5, 33.4, 49.6, 53.5, 63.3, 86.6], |
|
||||||
["2023-01-01 01:10:05", 26.4, 33.3, 49.6, 53.4, 63.2, 86.6], |
|
||||||
["2023-01-01 01:20:05", 26.3, 33.2, 49.5, 53.3, 63.1, 86.7], |
|
||||||
["2023-01-01 01:30:05", 26.3, 33.1, 49.5, 53.2, 63, 86.8] |
|
||||||
]; |
|
||||||
|
|
||||||
// the xs variables are not depending on the data files.
|
|
||||||
// They just defina the tick points on the x-axis that are
|
|
||||||
// highlighted with a vertical axis. This is: they represent
|
|
||||||
// each sensor belonging to a familly of sensors at the same
|
|
||||||
// wall position but different depth.
|
|
||||||
myxs = { |
|
||||||
'2023-01-01 00:10:07' : 'pos1', |
|
||||||
'2023-01-01 00:20:05' : 'pos1', |
|
||||||
'2023-01-01 00:30:05' : 'pos1', |
|
||||||
'2023-01-01 00:40:05' : 'pos1', |
|
||||||
'2023-01-01 00:50:05' : 'pos1', |
|
||||||
'2023-01-01 01:00:05' : 'pos1', |
|
||||||
'2023-01-01 01:10:05' : 'pos1', |
|
||||||
'2023-01-01 01:20:05' : 'pos1', |
|
||||||
'2023-01-01 01:30:05' : 'pos1' |
|
||||||
} |
|
||||||
|
|
||||||
> Sensors family selection |
|
||||||
|
|
||||||
//Michael Dorn wishes:
|
|
||||||
//--> MD:
|
|
||||||
// Categories:
|
|
||||||
// yearly - with 12 lines
|
|
||||||
// monthly - with 4 lines
|
|
||||||
// weekly - with 7 lines
|
|
||||||
// daily - with 24 lines
|
|
||||||
//
|
|
||||||
// Settings:
|
|
||||||
// yearly: date: 1st of the month; time: 12:00;
|
|
||||||
// allow for chosing a different date/time
|
|
||||||
// monthly: date: choose days 1/8/15/22/29; time; 12:00;
|
|
||||||
// allow for chosing different date/time
|
|
||||||
// daily: time: 0-1-2-3-...-23;
|
|
||||||
// allow for chosing different date/time
|
|
||||||
//
|
|
||||||
// Is it possible to allow to supress a line then (hide it)?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////
|
|
||||||
//////////////////////////////////////////////////////////////////
|
|
||||||
////// 2.GRID
|
|
||||||
// it is just a column of the original raw data. At the moment is saved in a JS file as an array with the var name of the original column
|
|
||||||
// example:
|
|
||||||
|
|
||||||
var Temp_MP1_1_Pos4 = [ |
|
||||||
[11.01, 11.02, 11.01, 11.02, 11.02, 11.01, 11.00, 11.00, 11.02, 11.00, 11.01, 11.00, 11.00, 10.99, 10.99, 10.98, 10.96, 10.97, 10.96, 10.97, 10.96, 10.95, 10.94, 10.94, 10.94, 10.94, 10.94, 10.92, 10.91, 10.90, 10.91, 10.88, 10.88, 10.88, 10.88, 10.86, 10.84, 10.83, 10.82, 10.82, 10.79, 10.78, 10.75, 10.76, 10.74, 10.72, 10.73, 10.71, 10.69, 10.66, 10.66, 10.64, 10.64, 10.60, 10.58, 10.55, 10.52, 10.52, 10.50, 10.48, 10.40, 10.32, 10.28], |
|
||||||
['2023-01-01', '2023-01-02', ...], |
|
||||||
['00:01.34', '01:01', ...] |
|
||||||
] |
|
||||||
|
|
||||||
// IMPORTANT: Just one sensor
|
|
||||||
|
|
||||||
//Michael Dorn wishes:
|
|
||||||
//TIME periods:
|
|
||||||
// - yearly - 365 days; 12 rows with 28-31 days; at 12:00;
|
|
||||||
// - monthly - 28 days; 4 rows with 7 days; at 12:00;
|
|
||||||
// - can this be arranged like in calendar view?
|
|
||||||
// - weekly - 7 days; one per day at ##:00;
|
|
||||||
//
|
|
||||||
// Scale: is it possible here to chose if an actual time is shown or to have the max/min value within a day for the yearly/monthly versions?
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////
|
|
||||||
//////////////////////////////////////////////////////////////////
|
|
||||||
////// 3.HORIZON
|
|
||||||
// The horizon chart has several rows. As it is now, firstly it is defined
|
|
||||||
// an array of columns from the raw DataTransfer, that will become rows at the horizon chart.As
|
|
||||||
// so, a list of rows will be:
|
|
||||||
datas = ["S1:1", "S1:2", "S1:3", "Temp_MP1_1_Pos4", "Temp_MP1_1_Pos5", "Temp_MP1_1_Pos6", "Temp_MP1_2_Pos1", "Temp_MP1_2_Pos2", "Temp_MP1_2_Pos3", "Temp_MP1_2_Pos4", "Temp_MP1_2_Pos5", "Temp_MP1_2_Pos6"]; |
|
||||||
|
|
||||||
// And then the values for each row, that comes directly from the raw data columns
|
|
||||||
// example for the first row "Temp_MP1_1_Pos1"
|
|
||||||
var Temp_MP1_1_Pos1=[18.71, 18.74, 18.75, 18.76, 18.78, 18.77, 18.77, 18.78, 18.76, 18.77, 18.77, 18.78, 18.78, 18.76, 18.75, 18.75, 18.75, 18.76, 18.78, 18.76, 18.74, 18.74] |
|
||||||
// This list can be long. This kind of chart use to represent a big amount og points for each column. Hence, covering a long time period.
|
|
||||||
|
|
||||||
// > (Vertical axis) Select a list of sensors
|
|
||||||
|
|
||||||
//Michael Dorn wishes
|
|
||||||
// Horizontal axis:
|
|
||||||
// Categories:
|
|
||||||
// year 365 days at 0/6/12/18 h --> 1460 points
|
|
||||||
// month 28-31 days at 0/1/2/.../23 h --> 744 points
|
|
||||||
// week 7 days at 0:00/0:15/0:30/... 23:45/24:00 --> 672 points
|
|
||||||
// day 24 hours all datapoints --> up to 288 points
|
|
||||||
// Scale:
|
|
||||||
// it would be good of the width if the browser window is not overflowing sideways
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// vertical axis:
|
|
||||||
// Temperature:
|
|
||||||
// - in what steps in °C are you thinking?
|
|
||||||
// - I expect to have at the most -30°C - +50°C for the weather station
|
|
||||||
// - can the scale be chosen? E.g. there are steps of 10°C or of 5°C or others?
|
|
||||||
|
|
||||||
|
|
||||||
//###################################
|
|
||||||
// From Micheal about Naming:
|
|
||||||
|
|
||||||
// I attach two files:
|
|
||||||
|
|
||||||
// Explanation datafiles.xlsx
|
|
||||||
// The colored rows on top include channel names / families / units / # of column / ...
|
|
||||||
// The first part in the name of the channel gives what type of value is measured:
|
|
||||||
// - temperature (Temp_...)
|
|
||||||
// - humidity (RH_...)
|
|
||||||
// - relative dispalcement (RelDisp_...)
|
|
||||||
// - absolute displacement (AbsDisp)
|
|
||||||
// - air pressure (AirPres_...)
|
|
||||||
// - the weather station has many different values
|
|
||||||
// A row with units is also given.
|
|
||||||
|
|
||||||
// Explanation datafiles.pptx
|
|
||||||
// - Includes information where the sensors and families are located.
|
|
||||||
// - The last slide includes the distance for the sensors in the walls. Measurement start at the inside of the wall.
|
|
||||||
|
|
||||||
// I hope this helps you immediately!
|
|
||||||
|
|
Loading…
Reference in new issue