Skip to content

Commit 7ea83a6

Browse files
Merge pull request #6763 from Countly/master-v25.03.22-into-next
Master v25.03.22 into next
2 parents 3c61c22 + be19e9a commit 7ea83a6

File tree

19 files changed

+983
-534
lines changed

19 files changed

+983
-534
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
uses: actions/checkout@v5
4949

5050
- name: Log in to Docker Hub
51-
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
51+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
5252
with:
5353
username: ${{ secrets.DOCKERHUB_USERNAME }}
5454
password: ${{ secrets.DOCKERHUB_TOKEN }}

.github/workflows/docker-image.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
echo ${{ steps.vars.outputs.tag }}
2727
2828
- name: Log in to Docker Hub
29-
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
29+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
3030
with:
3131
username: ${{ secrets.DOCKERHUB_USERNAME }}
3232
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -57,7 +57,7 @@ jobs:
5757
echo ${{ steps.vars.outputs.tag }}
5858
5959
- name: Log in to Docker Hub
60-
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
60+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
6161
with:
6262
username: ${{ secrets.DOCKERHUB_USERNAME }}
6363
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -88,7 +88,7 @@ jobs:
8888
echo ${{ steps.vars.outputs.tag }}
8989
9090
- name: Log in to Docker Hub
91-
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
91+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
9292
with:
9393
username: ${{ secrets.DOCKERHUB_USERNAME }}
9494
password: ${{ secrets.DOCKERHUB_TOKEN }}
@@ -119,7 +119,7 @@ jobs:
119119
echo ${{ steps.vars.outputs.tag }}
120120
121121
- name: Log in to Docker Hub
122-
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1
122+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef
123123
with:
124124
username: ${{ secrets.DOCKERHUB_USERNAME }}
125125
password: ${{ secrets.DOCKERHUB_TOKEN }}

CHANGELOG.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,38 @@
22
Dependencies:
33
- Remove SQLite
44

5-
## Version 25.03.X
5+
## Version 25.03.22
66
Fixes:
77
- [alerts] Fix: Migrate alerts to the new events model
8-
- [oidc] Fix for session state storage
98
- [applications] Persist newly created app after page reload
9+
- [dashboard] Allow users to select text inside the widget without dragging it
10+
- [oidc] Fix for session state storage
1011

1112
Enterprise Fixes:
12-
- [users] Update user custom field number formatting
13-
- [users] Fix condition for custom property update
14-
- [drill] [survey] Fix duplicate question id
13+
- [cohorts] Fix query transformation for profile group
1514
- [drill] [survey] Display survey answer value instead of id in drill result
15+
- [drill] [survey] Fix duplicate question id
16+
- [users] Fix condition for custom property update
17+
- [users] Update user custom field number formatting
18+
19+
Dependencies:
20+
- Bump axios from 1.8.2 to 1.12.2 in /plugins/hooks
21+
- Bump tar-fs from 3.1.0 to 3.1.1
22+
- Bump nodemailer from 7.0.6 to 7.0.9
23+
- Bump fs-extra from 11.3.1 to 11.3.2
24+
- Bump sharp from 0.34.3 to 0.34.4
25+
- Bump sass from 1.92.1 to 1.93.2
26+
- Bump lint-staged from 16.1.6 to 16.2.3
27+
- Bump puppeteer from 24.20.0 to 24.23.0
28+
- Bump mongodb from 6.19.0 to 6.20.0
29+
- Bump typescript from 5.9.2 to 5.9.3
30+
- Bump semver from 7.7.2 to 7.7.3
1631

1732
## Version 25.03.21
1833
Fixes:
1934
- [feedback] Prevent showing the application when switching between the NPS and Survey pages
2035
- [populator] Fix NPS generator
2136
- [surveys] Fix survey details results summary tiles display when journeys plugin in not enabled
22-
23-
## Version 25.03.20
2437
Fixes:
2538
- [push] Fix: Migrate push to the new events model
2639

api/utils/countly-request/package-lock.json

Lines changed: 14 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin/scripts/expire-data/delete_custom_events.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
2222
common.drillDb = drillDb;
2323
//GET APP
2424
try {
25-
const app = await countlyDb.collection("apps").findOne({_id: ObjectId(APP_ID)}, {_id: 1, name: 1});
25+
const app = await countlyDb.collection("apps").findOne({_id: new ObjectId(APP_ID)}, {_id: 1, name: 1});
2626
console.log("App:", app.name);
2727
//GET EVENTS
2828
let events = EVENTS;
Lines changed: 183 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,210 @@
11
<div v-bind:class="[componentId, 'clyd-widget']">
2-
<div class="bu-level" v-if="!showZoom">
3-
<div class="bu-level-left bu-is-flex-shrink-1" style="min-width: 0">
4-
<clyd-widget-title class="bu-level-item" :title="title" :labels="metricLabels"></clyd-widget-title>
2+
<div
3+
v-if="!showZoom"
4+
class="bu-level"
5+
>
6+
<div
7+
class="bu-level-left bu-is-flex-shrink-1"
8+
style="min-width: 0"
9+
>
10+
<clyd-widget-title
11+
class="bu-level-item"
12+
:labels="metricLabels"
13+
:title="title"
14+
/>
515
</div>
6-
<div class="bu-level-right" v-if="isAllowed">
16+
<div
17+
v-if="isAllowed"
18+
class="bu-level-right"
19+
>
720
<div class="bu-level-item">
8-
<clyd-bucket v-if="showBuckets" :widget-id="data._id" v-model="selectedBucket"></clyd-bucket>
21+
<clyd-bucket
22+
v-if="showBuckets"
23+
v-model="selectedBucket"
24+
:widget-id="data._id"
25+
/>
926
</div>
1027
<div class="bu-level-item">
11-
<cly-more-options @command="onWidgetCommand">
12-
<el-dropdown-item class="dashboard-more-options" command="edit">{{i18n('common.edit')}}</el-dropdown-item>
13-
<el-dropdown-item class="dashboard-more-options" command="delete">{{i18n('common.delete')}}</el-dropdown-item>
14-
<el-dropdown-item class="dashboard-more-options" v-if="data.visualization === 'time-series' || data.visualization === 'bar-chart'" command="zoom">{{i18n('common.zoom-in')}}</el-dropdown-item>
28+
<cly-more-options @command="onWidgetCommand">
29+
<el-dropdown-item
30+
class="dashboard-more-options"
31+
command="edit"
32+
>
33+
{{ i18n('common.edit') }}
34+
</el-dropdown-item>
35+
<el-dropdown-item
36+
class="dashboard-more-options"
37+
command="delete"
38+
>
39+
{{ i18n('common.delete') }}
40+
</el-dropdown-item>
41+
<el-dropdown-item
42+
v-if="data.visualization === 'time-series' || data.visualization === 'bar-chart'"
43+
class="dashboard-more-options"
44+
command="zoom"
45+
>
46+
{{ i18n('common.zoom-in') }}
47+
</el-dropdown-item>
1548
<div v-if="data.visualization === 'time-series'">
16-
<hr class="dashboard-more-options__divider">
17-
<el-dropdown-item class="dashboard-more-options" command="add">{{i18n('notes.add-note')}}</el-dropdown-item>
18-
<el-dropdown-item class="dashboard-more-options" command="manage">{{i18n('notes.manage-notes')}}</el-dropdown-item>
19-
<el-dropdown-item class="dashboard-more-options" command="show">{{!areNotesHidden ? i18n("notes.hide-notes") : i18n("notes.show-notes")}}</el-dropdown-item>
49+
<hr class="dashboard-more-options__divider">
50+
<el-dropdown-item
51+
class="dashboard-more-options"
52+
command="add"
53+
>
54+
{{ i18n('notes.add-note') }}
55+
</el-dropdown-item>
56+
<el-dropdown-item
57+
class="dashboard-more-options"
58+
command="manage"
59+
>
60+
{{ i18n('notes.manage-notes') }}
61+
</el-dropdown-item>
62+
<el-dropdown-item
63+
class="dashboard-more-options"
64+
command="show"
65+
>
66+
{{ !areNotesHidden ? i18n("notes.hide-notes") : i18n("notes.show-notes") }}
67+
</el-dropdown-item>
2068
</div>
2169
</cly-more-options>
2270
</div>
2371
</div>
2472
</div>
25-
<cly-chart-zoom ref="zoomRef" v-if="showZoom" @zoom-reset="onZoomReset" :echartRef="$refs.echartRef.$refs.echarts" class="bu-is-flex bu-is-align-items-center bu-is-justify-content-flex-end bu-m-0 cly-vue-zoom__external"></cly-chart-zoom>
26-
<clyd-primary-legend :custom-period="data.custom_period"></clyd-primary-legend>
27-
<div class="clyd-widget__content" v-loading="loading" :class="'clyd-widget__content--vis-' + data.visualization">
28-
<template v-if="!loading">
29-
<cly-chart-time v-if="data.visualization === 'time-series' && !data.breakdowns" :show-zoom="false" @patchzoom="onPatchZoom" @datazoom="onDataZoom" ref="echartRef" :showDownload="false" :showToggle="false" :option="timelineGraph.lineOptions" height="auto" skin="full" :legend="{show: false}" :category="data.data_type || data.feature" :sub-category="data.feature === 'events' ? data.events : []">
30-
</cly-chart-time>
31-
<div v-else-if="data.visualization === 'number'" >
32-
<h1 class="bu-pb-2">{{formatNumber(number.total)}}</h1>
33-
<p v-if="number.trend== 'u'" class="trend-up bu-p-0 bu-m-0">
34-
<i class="cly-trend-up-icon ion-android-arrow-up bu-ml-2"></i><span>{{number.change}}</span>
35-
<span class="text-medium ">{{i18n('dashboards.compared-to-prev-period')}}</span>
73+
<cly-chart-zoom
74+
v-if="showZoom"
75+
class="bu-is-flex bu-is-align-items-center bu-is-justify-content-flex-end bu-m-0 cly-vue-zoom__external"
76+
:echartRef="$refs.echartRef.$refs.echarts"
77+
ref="zoomRef"
78+
@zoom-reset="onZoomReset"
79+
/>
80+
<clyd-primary-legend :custom-period="data.custom_period" />
81+
<div
82+
v-loading="loading"
83+
class="clyd-widget__content"
84+
:class="'clyd-widget__content--vis-' + data.visualization"
85+
@mousedown.stop
86+
>
87+
<template v-if="!loading">
88+
<cly-chart-time
89+
v-if="data.visualization === 'time-series' && !data.breakdowns"
90+
:category="data.data_type || data.feature"
91+
height="auto"
92+
:legend="{show: false}"
93+
:option="timelineGraph.lineOptions"
94+
ref="echartRef"
95+
:show-zoom="false"
96+
:showDownload="false"
97+
:showToggle="false"
98+
skin="full"
99+
:sub-category="data.feature === 'events' ? data.events : []"
100+
@datazoom="onDataZoom"
101+
@patchzoom="onPatchZoom"
102+
/>
103+
<div v-else-if="data.visualization === 'number'">
104+
<h1 class="bu-pb-2">
105+
{{ formatNumber(number.total) }}
106+
</h1>
107+
<p
108+
v-if="number.trend == 'u'"
109+
class="trend-up bu-p-0 bu-m-0"
110+
>
111+
<i class="cly-trend-up-icon ion-android-arrow-up bu-ml-2" /><span>{{ number.change }}</span>
112+
<span class="text-medium">{{ i18n('dashboards.compared-to-prev-period') }}</span>
36113
</p>
37-
<p v-if="number.trend == 'd'" class="trend-down bu-p-0 bu-m-0">
38-
<i class="cly-trend-down-icon ion-android-arrow-down bu-ml-2"></i><span>{{number.change}}</span>
39-
<span class="text-medium ">{{i18n('dashboards.compared-to-prev-period')}}</span>
114+
<p
115+
v-if="number.trend == 'd'"
116+
class="trend-down bu-p-0 bu-m-0"
117+
>
118+
<i class="cly-trend-down-icon ion-android-arrow-down bu-ml-2"></i><span>{{ number.change }}</span>
119+
<span class="text-medium">{{ i18n('dashboards.compared-to-prev-period') }}</span>
40120
</p>
41121
</div>
42-
<div v-else-if="data.visualization === 'table'" style="width: 100%; height: 100%;">
43-
<cly-datatable-n v-if="getTableData.length" :rows="getTableData" :hideTop="true" style="width: 100%; height: 100%;">
122+
<div
123+
v-else-if="data.visualization === 'table'"
124+
style="width: 100%; height: 100%;"
125+
>
126+
<cly-datatable-n
127+
v-if="getTableData.length"
128+
hideTop
129+
:rows="getTableData"
130+
style="width: 100%; height: 100%;"
131+
>
44132
<template v-slot="scope">
45-
<el-table-column v-for="(item, index) in tableStructure" :key="index" :sortable="false" :prop="item.prop" :label="item.title">
133+
<el-table-column
134+
v-for="(item, index) in tableStructure"
135+
:label="item.title"
136+
:key="index"
137+
:prop="item.prop"
138+
:sortable="false"
139+
>
46140
<template slot-scope="scope">
47141
<span v-if="item.type === 'number'">
48-
{{formatNumber(scope.row[item.prop] || 0)}}
142+
{{ formatNumber(scope.row[item.prop] || 0) }}
49143
</span>
50144
<span v-else>
51-
{{scope.row[item.prop]}}
145+
{{ scope.row[item.prop]}}
52146
</span>
53147
</template>
54148
</el-table-column>
55149
</template>
56150
</cly-datatable-n>
57-
<cly-blank :classes="{'bu-p-0': true}" v-else></cly-blank>
151+
<cly-blank
152+
v-else
153+
:classes="{'bu-p-0': true}"
154+
/>
58155
</div>
59-
<cly-chart-bar v-else-if="data.visualization === 'bar-chart'" :show-zoom="false" @patchzoom="onPatchZoom" @datazoom="onDataZoom" ref="echartRef" :showDownload="false" :showToggle="false" :option="barOptions" height="auto" skin="full" :legend="{show: false}" :patch-x-axis="barOptions.patchXAxis !== undefined ? barOptions.patchXAxis : true"></cly-chart-bar>
60-
<cly-chart-time v-else-if="data.visualization === 'time-series'" :valFormatter="valFormatter" :option="timelineGraph.lineOptions" :patch-x-axis="false" :no-hourly="true" category="user-analytics" :hideNotation="false" :show-zoom="false" @patchzoom="onPatchZoom" @datazoom="onDataZoom" ref="echartRef" :showDownload="false" :showToggle="false" height="auto" skin="full"></cly-chart-time>
61-
<cly-chart-pie v-else-if="data.visualization === 'pie-chart'" :showZoom="false" :showDownload="false" :showToggle="false" :option="pieGraph" height="auto" skin="full" :legend="{show: false}"></cly-chart-pie>
156+
<cly-chart-bar
157+
v-else-if="data.visualization === 'bar-chart'"
158+
height="auto"
159+
:legend="{show: false}"
160+
:option="barOptions"
161+
:patch-x-axis="barOptions.patchXAxis !== undefined ? barOptions.patchXAxis : true"
162+
ref="echartRef"
163+
:showDownload="false"
164+
:showToggle="false"
165+
:show-zoom="false"
166+
skin="full"
167+
@patchzoom="onPatchZoom"
168+
@datazoom="onDataZoom"
169+
/>
170+
<cly-chart-time
171+
v-else-if="data.visualization === 'time-series'"
172+
category="user-analytics"
173+
height="auto"
174+
:hideNotation="false"
175+
:no-hourly="true"
176+
:option="timelineGraph.lineOptions"
177+
:patch-x-axis="false"
178+
ref="echartRef"
179+
:showDownload="false"
180+
:showToggle="false"
181+
:show-zoom="false"
182+
skin="full"
183+
:valFormatter="valFormatter"
184+
@patchzoom="onPatchZoom"
185+
@datazoom="onDataZoom"
186+
/>
187+
<cly-chart-pie
188+
v-else-if="data.visualization === 'pie-chart'"
189+
height="auto"
190+
:legend="{ show: false }"
191+
:option="pieGraph"
192+
:showDownload="false"
193+
:showToggle="false"
194+
:showZoom="false"
195+
skin="full"
196+
/>
62197
</template>
63-
</div>
64-
<drawer :settings="drawerSettingsForWidgets" :controls="drawers.annotation" @cly-refresh="refresh"></drawer>
65-
<clyd-secondary-legend :apps="data.apps" :labels="legendLabels" v-if="data.visualization === 'time-series' && !data.breakdowns"></clyd-secondary-legend>
66-
<clyd-widget-apps :apps="data.apps"></clyd-widget-apps>
198+
</div>
199+
<drawer
200+
:controls="drawers.annotation"
201+
:settings="drawerSettingsForWidgets"
202+
@cly-refresh="refresh"
203+
/>
204+
<clyd-secondary-legend
205+
v-if="data.visualization === 'time-series' && !data.breakdowns"
206+
:apps="data.apps"
207+
:labels="legendLabels"
208+
/>
209+
<clyd-widget-apps :apps="data.apps" />
67210
</div>

0 commit comments

Comments
 (0)