Skip to content

Commit dda1878

Browse files
committed
Add PhpStorm Code Editing Dashboard
1 parent 2bf5fc0 commit dda1878

File tree

2 files changed

+192
-0
lines changed

2 files changed

+192
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
<template>
2+
<DashboardPage
3+
v-slot="{ averagesConfigurators }"
4+
db-name="perfintDev"
5+
table="phpstorm"
6+
persistent-id="phpstorm_code_editing_dashboard"
7+
initial-machine="linux-blade-hetzner"
8+
:with-installer="false"
9+
>
10+
<section class="flex gap-6">
11+
<div class="flex-1 min-w-0">
12+
<AggregationChart
13+
:configurators="averagesConfigurators"
14+
:aggregated-measure="'completion\_%'"
15+
:is-like="true"
16+
:title="'Completion'"
17+
/>
18+
</div>
19+
<div class="flex-1 min-w-0">
20+
<AggregationChart
21+
:configurators="[...averagesConfigurators, typingOnlyConfigurator]"
22+
:aggregated-measure="'test#average_awt_delay'"
23+
:title="'UI responsiveness during typing'"
24+
:chart-color="'#F2994A'"
25+
/>
26+
</div>
27+
</section>
28+
29+
<section>
30+
<GroupProjectsChart
31+
label="Completion"
32+
measure="completion"
33+
:projects="[
34+
'many_classes/completion/classes',
35+
'magento2/completion/function_var',
36+
'magento2/completion/function_stlr',
37+
'magento2/completion/classes',
38+
'dql/completion',
39+
'WI_64694/completion',
40+
'WI_58919/completion',
41+
'WI_58807/completion',
42+
'WI_58306/completion',
43+
]"
44+
/>
45+
</section>
46+
47+
<section>
48+
<GroupProjectsChart
49+
label="PHP Typing Time"
50+
measure="typing"
51+
:projects="[
52+
'WI_29056/typing',
53+
'WI_41934/typing',
54+
'WI_44525/typing',
55+
'WI_60709/typing',
56+
'bitrix/typing',
57+
'heredoc/typing',
58+
'html_in_fragment/typing',
59+
'html_in_fragment_powersave/typing',
60+
'html_in_literal/typing',
61+
'html_in_literal_powersave/typing',
62+
'large_method_phpdoc/typing',
63+
'large_phpdoc/typing',
64+
'large_phpdoc_comment/typing',
65+
'lots_phpdoc_methods/typing',
66+
'mpdf/typing',
67+
'mpdf_powersave/typing',
68+
]"
69+
/>
70+
</section>
71+
72+
<section class="flex gap-x-6">
73+
<div class="flex-1 min-w-0">
74+
<GroupProjectsChart
75+
label="PHP Typing Average Responsiveness"
76+
measure="test#average_awt_delay"
77+
:projects="[
78+
'WI_29056/typing',
79+
'WI_41934/typing',
80+
'WI_44525/typing',
81+
'WI_60709/typing',
82+
'bitrix/typing',
83+
'heredoc/typing',
84+
'html_in_fragment/typing',
85+
'html_in_fragment_powersave/typing',
86+
'html_in_literal/typing',
87+
'html_in_literal_powersave/typing',
88+
'large_method_phpdoc/typing',
89+
'large_phpdoc/typing',
90+
'large_phpdoc_comment/typing',
91+
'lots_phpdoc_methods/typing',
92+
'mpdf/typing',
93+
'mpdf_powersave/typing',
94+
]"
95+
/>
96+
</div>
97+
<div class="flex-1 min-w-0">
98+
<GroupProjectsChart
99+
label="PHP Typing Responsiveness"
100+
measure="test#max_awt_delay"
101+
:projects="[
102+
'WI_29056/typing',
103+
'WI_41934/typing',
104+
'WI_44525/typing',
105+
'WI_60709/typing',
106+
'bitrix/typing',
107+
'heredoc/typing',
108+
'html_in_fragment/typing',
109+
'html_in_fragment_powersave/typing',
110+
'html_in_literal/typing',
111+
'html_in_literal_powersave/typing',
112+
'large_method_phpdoc/typing',
113+
'large_phpdoc/typing',
114+
'large_phpdoc_comment/typing',
115+
'lots_phpdoc_methods/typing',
116+
'mpdf/typing',
117+
'mpdf_powersave/typing',
118+
]"
119+
/>
120+
</div>
121+
</section>
122+
123+
<section class="flex gap-x-6">
124+
<div class="flex-1 min-w-0">
125+
<GroupProjectsChart
126+
label="Blade Typing Time"
127+
measure="typing"
128+
:projects="[
129+
'blade_in_php_fragment_large_file/typing',
130+
'blade_in_blade_fragment_large_file/typing',
131+
'blade_new_line_large_file/typing',
132+
'blade_in_blade_fragment_laravel/typing',
133+
'blade_in_php_fragment_laravel/typing',
134+
]"
135+
/>
136+
</div>
137+
<div class="flex-1 min-w-0">
138+
<GroupProjectsChart
139+
label="Blade Average Responsiveness"
140+
measure="test#average_awt_delay"
141+
:projects="[
142+
'blade_in_php_fragment_large_file/typing',
143+
'blade_in_blade_fragment_large_file/typing',
144+
'blade_new_line_large_file/typing',
145+
'blade_in_blade_fragment_laravel/typing',
146+
'blade_in_php_fragment_laravel/typing',
147+
]"
148+
/>
149+
</div>
150+
<div class="flex-1 min-w-0">
151+
<GroupProjectsChart
152+
label="Blade Responsiveness"
153+
measure="test#max_awt_delay"
154+
:projects="[
155+
'blade_in_php_fragment_large_file/typing',
156+
'blade_in_blade_fragment_large_file/typing',
157+
'blade_new_line_large_file/typing',
158+
'blade_in_blade_fragment_laravel/typing',
159+
'blade_in_php_fragment_laravel/typing',
160+
]"
161+
/>
162+
</div>
163+
</section>
164+
</DashboardPage>
165+
</template>
166+
167+
<script setup lang="ts">
168+
import AggregationChart from "../charts/AggregationChart.vue"
169+
import GroupProjectsChart from "../charts/GroupProjectsChart.vue"
170+
import DashboardPage from "../common/DashboardPage.vue"
171+
import { DataQuery, DataQueryExecutorConfiguration } from "../common/dataQuery"
172+
173+
const typingOnlyConfigurator = {
174+
configureQuery(query: DataQuery, _configuration: DataQueryExecutorConfiguration): boolean {
175+
query.addFilter({ f: "project", v: "%typing", o: "like" })
176+
return true
177+
},
178+
createObservable() {
179+
return null
180+
},
181+
}
182+
</script>

dashboard/new-dashboard/src/routes.ts

+10
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ enum ROUTES {
9393
PhpStormProductMetricsDashboard = `${ROUTE_PREFIX.PhpStorm}/${PRODUCT_METRICS_ROUTE}`,
9494
PhpStormLLMDashboard = `${ROUTE_PREFIX.PhpStorm}/llmDashboard`,
9595
PhpStormIndexingDashboard = `${ROUTE_PREFIX.PhpStorm}/indexingDashboard`,
96+
PhpStormCodeEditingDashboard = `${ROUTE_PREFIX.PhpStorm}/codeEditingDashboard`,
9697
PhpStormStartupDashboard = `${ROUTE_PREFIX.PhpStorm}/${STARTUP_ROUTE}`,
9798
PhpStormWithPluginsDashboard = `${ROUTE_PREFIX.PhpStorm}/pluginsDashboard`,
9899
PhpStormTests = `${ROUTE_PREFIX.PhpStorm}/${TEST_ROUTE}`,
@@ -534,6 +535,10 @@ const PHPSTORM: Product = {
534535
url: ROUTES.PhpStormIndexingDashboard,
535536
label: "Indexing Dashboard",
536537
},
538+
{
539+
url: ROUTES.PhpStormCodeEditingDashboard,
540+
label: "Code Editing Dashboard",
541+
},
537542
{
538543
url: ROUTES.PhpStormDevTests,
539544
label: TESTS_LABEL,
@@ -1494,6 +1499,11 @@ export function getNewDashboardRoutes(): ParentRouteRecord[] {
14941499
component: () => import("./components/phpstorm/IndexingDashboard.vue"),
14951500
meta: { pageTitle: "PhpStorm Indexing Dashboard" },
14961501
},
1502+
{
1503+
path: ROUTES.PhpStormCodeEditingDashboard,
1504+
component: () => import("./components/phpstorm/CodeEditingDashboard.vue"),
1505+
meta: { pageTitle: "PhpStorm Code Editing Dashboard" },
1506+
},
14971507
{
14981508
path: ROUTES.PhpStormWithPluginsDashboard,
14991509
component: () => import("./components/phpstorm/PerformanceDashboardWithPlugins.vue"),

0 commit comments

Comments
 (0)