+
+ +
+

Calendink Provider 🚀🚀👑

+

ESP32-S3 System Dashboard v{__APP_VERSION__}

+ + +
+ {#if status === "loading"} +
+ + Connecting... +
+ {:else if status === "ok"} +
+ + Connected +
+ {:else if status === "rebooting"} +
+ + Rebooting... +
+ {:else} +
+ + Offline — {errorMsg} +
+ {/if}
+
- -
-
-

- Partition Table -

- Flash: 16MB -
-
- {#if status === "loading"} -
Loading memory layout...
- {:else} - {#each otaStatus.partitions as part} -
-
-
- - {part.label} - - {#if part.label === otaStatus.active_partition || part.label === otaStatus.running_firmware_label} - Active - {/if} + {#if currentView === 'dashboard'} + + +
+ + +
+ +
+
+

+ System Info +

+
+
+ {#each infoItems as item} +
+
+ {item.icon} + {item.label}
- - Type {part.type} / Sub {part.subtype} + + {#if status === "loading"} + + {:else} + {item.value} + {/if}
-
-
{formatBytes(part.size)}
-
- {#if part.app_version} - v{part.app_version} - {/if} - {#if part.free !== undefined} - - {formatBytes(part.free)} free + {/each} +
+
+ + +
+
+

+ Partition Table +

+ Flash: 16MB +
+
+ {#if status === "loading"} +
Loading memory layout...
+ {:else} + {#each otaStatus.partitions as part} +
+
+
+ + {part.label} + + {#if part.label === otaStatus.active_partition || part.label === otaStatus.running_firmware_label} + Active + {/if} +
+ + Type {part.type} / Sub {part.subtype} - {/if} +
+
+
{formatBytes(part.size)}
+
+ {#if part.app_version} + v{part.app_version} + {/if} + {#if part.free !== undefined} + + {formatBytes(part.free)} free + + {/if} +
+
-
+ {/each} + {/if} +
+
+
+ + +
+ +
+
+
+

+ Device Control +

+

+ Restart the ESP32 microcontroller +

+
+ +
+
+ + + { status = "rebooting"; isRecovering = true; }} /> +
+ +
+ + + {#if upcomingData.users.length > 0} +
+
+

+ 📋 Upcoming Tasks +

+
+
+ {#each upcomingData.users as user} +
+

{user.name}

+ {#if user.tasks.length === 0} +

No pending tasks

+ {:else} +
+ {#each user.tasks as task} +
+ + {formatRelativeDate(task.due_date)} + + {task.title} +
+ {/each} +
+ {/if}
{/each} - {/if} -
-
-
- - -
- -
-
-
-

- Device Control -

-

- Restart the ESP32 microcontroller -

- +
+ {/if} + + {:else if currentView === 'tasks'} + +
+ +
+ {/if} + + + {#if showRebootConfirm} +
+
+

Confirm Reboot

+

+ Are you sure you want to reboot the ESP32? The device will be temporarily unavailable. +

+
+ + +
- - - { status = "rebooting"; isRecovering = true; }} /> -
+ {/if}
+