diff --git a/web/.eslintrc.cjs b/web/.eslintrc.cjs new file mode 100644 index 0000000..9fe5f9c --- /dev/null +++ b/web/.eslintrc.cjs @@ -0,0 +1,21 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + root: true, + extends: [ + 'plugin:vue/vue3-essential', + 'eslint:recommended', + '@typescript-eslint/recommended', + ], + parser: 'vue-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 'latest', + sourceType: 'module', + }, + rules: { + 'vue/multi-word-component-names': 'off', + '@typescript-eslint/no-explicit-any': 'warn', + }, +} diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..a7db225 --- /dev/null +++ b/web/index.html @@ -0,0 +1,13 @@ + + +
+ + + +{{ block.display_name }}
++ {{ block.job_number }} +
+{{ duration }}
++ {{ task.title }} +
+Plan vs Actual
++ {{ label }} +
+{{ value }}
++ {{ description }} +
+{{ task.title }}
+ + +{{ description }}
+| User | +Role | +Status | +Joined | +|
|---|---|---|---|---|
|
+ {{ user.username }} + |
+ {{ user.email }} | +
+ |
+
+ |
+ {{ formatDate(user.created_at) }} | +
{{ selectedBlock.display_name }}
++ {{ selectedBlock.job_number }} +
+Start: {{ new Date(selectedBlock.start_at).toLocaleString() }}
+End: {{ new Date(selectedBlock.end_at).toLocaleString() }}
+Type: {{ selectedBlock.kind }}
+| Label | +Prefix | +Created | +Last Used | ++ |
|---|---|---|---|---|
| {{ key.label }} | +{{ key.prefix }}... | +{{ formatDate(key.created_at) }} | ++ {{ key.last_used ? formatDate(key.last_used) : 'Never' }} + | ++ + | +
Waiting for events...
+Activity will appear here in real-time
++ {{ formatEventData(event.data) }} +
+Corporate Planning Hub
+{{ formatDuration(detail.total_hours) }}
+total hours
+{{ formatDateTime(session.start_at) }}
++ {{ session.summary }} +
+{{ formatDuration(session.duration_hours) }}
++ {{ session.commit_count }} commits +
+{{ proj.display_name }}
+{{ proj.client }}
++ Hours per day to add for overhead / meetings +
++ Connected to {{ devopsStore.integration.org }} + / {{ devopsStore.integration.project }} +
++ Last synced: {{ new Date(devopsStore.integration.last_synced_at).toLocaleString() }} +
++ Error: {{ devopsStore.integration.last_sync_error }} +
+