Skip to content

Commit fe67185

Browse files
authored
Merge branch 'master' into dependabot/npm_and_yarn/ui-tests/faker-js/faker-10.3.0
2 parents 8fa6bbc + aac08bb commit fe67185

15 files changed

Lines changed: 86 additions & 37 deletions

File tree

CHANGELOG.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,38 @@
1-
## Version 25.03.X
1+
## Version 25.03.36
2+
Enterprise fixes:
3+
- [journey] Workflow fixes
4+
- [users] UI events table fixes
5+
6+
## Version 25.03.35
7+
Fixes:
8+
- [core] Fixes for search bar in standart table component
9+
10+
Enterprise fixes:
11+
- [journeys] Fixes for journey data updates on incoming data.
12+
- [surveys] Return error message if invalid widget_id passed on template loading
13+
- [users] Show content and journey events in user profile
14+
- [users] Display profile group name in table column
15+
- [users] When exporting user profiles, replace user name with device id if user name does not exist
16+
- [users] Use user profile endpoint for exporting data instead of the generic export endpoint
17+
18+
## Version 25.03.34
219
Fixes:
320
- [core] Fix period calculation
21+
- [dashboards] Update dialog button color when deleting dashboard/widget
22+
- [star-rating] Fix rating number when exporting data
423

524
Enterprise Fixes:
25+
- [content] Uniform journey and content block actions
26+
- [content] Fix overflow and missing translations in content blocks
27+
- [content] Fix button management when creating fullscreen content blocks
628
- [crash_symbolication] Use countlyfs for JavaScript symbolication
729
- [funnels] Fix funnel name tooltip content
830
- [surveys] Allow surveys to resize and reposition when user rotates devices or adjust browser window
931
- [nps] Allow nps to resize and reposition when user rotates devices or adjust browser window
1032
- [groups] Dealing with invalid values for group permission
1133
- [geo] Update table row cursor to indicate that it's clickable
34+
- [users] Change table column min-width to width so it can be resized even smaller
35+
- [users] Display filtered user count instead of all user count in the table summary
1236

1337
## Version 25.03.33
1438
Fixes:

api/parts/data/exports.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,9 @@ function transformValuesInObject(doc, mapper) {
285285
}
286286
return doc;
287287
}
288+
289+
exports.transformValuesInObject = transformValuesInObject;
290+
288291
/**
289292
* function to collect calues in order based on current order.
290293
* @param {array} values - arary to collect values

api/utils/common.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3258,7 +3258,9 @@ class DataTable {
32583258
*/
32593259
_getSearchField() {
32603260
if (this.searchStrategy === "regex") {
3261-
return {$regex: this.searchTerm, $options: 'i'};
3261+
const term = String(this.searchTerm);
3262+
const escaped = term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3263+
return ({$regex: escaped, $options: 'i'});
32623264
}
32633265
return this.searchTerm;
32643266
}

bin/commands/countly.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ countly_upgrade (){
121121
fi
122122

123123
(cd "$DIR/../.." ;
124+
echo "Installing plugins...";
125+
node "$DIR/../scripts/install_plugins.js" --skip-production;
124126
echo "Preparing production files...";
125127
countly task dist-all;
126128
echo "Restarting Countly...";

bin/config/nginx.server.block.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ server {
7171
# /at/*
7272
# /campaign/*
7373
# /dashboards/images/screenshots/screenshot_*.png
74+
# /_external/content/ --> for content blocks
75+
# /_external/content/asset/ --> for content block images
7476

7577
location ~ (/pixel.png|/images/pre-login/countly-logo-dark.svg|/images/pre-login/countly-logo.svg|/images/dashboard/countly_logo.svg|/sdk/web/countly.min.js|/views/heatmap.js|/views/javascripts/simpleheat.js|/views/stylesheets/heatmap.css|/stylesheets/font-awesome/css/*|/stylesheets/font-awesome/fonts/*|/fonts/*|/surveys/*|/stylesheets/ionicons/*|/feedback|/feedback/*|/star-rating/stylesheets/countly-feedback-web.css|/star-rating/stylesheets/countly-feedback.css|/star-rating/javascripts/tippy.all.min.js|/star-rating/images/star-rating/*|/javascripts/dom/jquery/*|/stylesheets/font-awesome/css/*|/stylesheets/font-awesome/fonts/*|/fonts/*|/stylesheets/ionicons/*|/at/*|/campaign/*|/images/dashboard/logo.png|/appimages/*.png|/dashboards/images/screenshots/screenshot_*.png) {
7678
if ($http_content_type = "text/ping") {

frontend/express/public/javascripts/countly/countly.common.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4559,10 +4559,11 @@
45594559
* @memberof countlyCommon
45604560
* @param {number} second number
45614561
* @param {number} [trimTo=5] number [1,5]
4562+
* @param {number} [digitsAfterComma=1] number of digits after comma for seconds, default is 1, if seconds is less than 0.1 it will be shown as 0
45624563
* @returns {string} return format "Xh Xm Xs", if trimTo is specified the length of the result is trimmed
45634564
* @example trimTo = 2, "Xh Xm Xs" result will be trimmed to "Xh Xm"
45644565
*/
4565-
countlyCommon.formatSecond = function(second, trimTo = 5) {
4566+
countlyCommon.formatSecond = function(second, trimTo = 5, digitsAfterComma = 1) {
45664567
var timeLeft = parseFloat(second);
45674568
var dict = [
45684569
{k: 'year', v: 31536000},
@@ -4571,16 +4572,15 @@
45714572
{k: 'minute', v: 60},
45724573
{k: 'second', v: 1}
45734574
];
4575+
if (digitsAfterComma < 0 || digitsAfterComma > 10) {
4576+
digitsAfterComma = 0;
4577+
}
45744578
var result = {year: 0, day: 0, hour: 0, minute: 0, second: 0};
45754579
var resultStrings = [];
45764580
for (var i = 0; i < dict.length && resultStrings.length < 3; i++) {
45774581
if (dict[i].k === "second") {
4578-
if (timeLeft < 0.1) {
4579-
result.second = 0;
4580-
}
4581-
else {
4582-
result.second = Math.round(timeLeft * 10) / 10;
4583-
}
4582+
4583+
result.second = parseFloat(timeLeft.toFixed(digitsAfterComma));
45844584
}
45854585
else {
45864586
result[dict[i].k] = Math.floor(timeLeft / dict[i].v);

plugins/dashboards/frontend/public/javascripts/countly.views.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -512,12 +512,9 @@
512512
];
513513

514514
var allowPublicDashboards = countlyGlobal.allow_public_dashboards !== false;
515-
var sharingOptions = allowPublicDashboards ? allSharingOptions : allSharingOptions.filter(function(option) {
516-
return option.value !== "all-users";
517-
});
518-
519515
return {
520-
sharingOptions: sharingOptions
516+
sharingOptions: allSharingOptions,
517+
isPublicDisabled: !allowPublicDashboards
521518
};
522519
},
523520
canShare: function() {
@@ -666,6 +663,14 @@
666663
doc.share_with = "none";
667664
}
668665
}
666+
else {
667+
var allowPublicDashboards = countlyGlobal.allow_public_dashboards !== false;
668+
if (!allowPublicDashboards &&
669+
(doc.__action === "create" || doc.__action === "duplicate") &&
670+
doc.share_with === "all-users") {
671+
doc.share_with = "";
672+
}
673+
}
669674
},
670675
onClose: function() {
671676
this.$store.dispatch("countlyDashboards/requests/drawerOpenStatus", false);
@@ -986,7 +991,7 @@
986991

987992
case "delete":
988993
d.__action = "delete";
989-
CountlyHelpers.confirm(this.i18nM("dashboards.delete-widget-text"), "popStyleGreen", function(result) {
994+
CountlyHelpers.confirm(this.i18nM("dashboards.delete-widget-text"), "danger", function(result) {
990995
if (!result) {
991996
return false;
992997
}
@@ -1579,7 +1584,7 @@
15791584

15801585
case "delete":
15811586
d.__action = "delete";
1582-
CountlyHelpers.confirm(this.i18n("dashboards.delete-dashboard-text", d.name), "popStyleGreen", function(result) {
1587+
CountlyHelpers.confirm(this.i18n("dashboards.delete-dashboard-text", d.name), "danger", function(result) {
15831588
if (!result) {
15841589
return false;
15851590
}

plugins/dashboards/frontend/public/localization/dashboards.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ dashboards.access-denied = This dashboard is no longer shared with you or an err
5151
dashbaords.access-denied-title = Access Denied
5252
dashboards.edit-access-denied = You don't have the edit permission for this dashboard. Please ask your global administrator if you think this is due to an issue.
5353
dashboards.sharing-denied = Dashboard sharing has been disabled. Please ask your global administrator if you think this is due to an issue.
54+
dashboards.public-dashboards-disabled-info = Public dashboards are disabled. Contact an administrator to enable this option.
5455
dashboards.widget-warning.time = This widget has data for {0} to {1}. Please select a date range in this period.
5556

5657
systemlogs.action.widget_added = Widget Added

plugins/dashboards/frontend/public/templates/dashboards-drawer.html

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
{{i18n('dashboards.share-with')}}
2020
<cly-tooltip-icon :tooltip="i18n('dashboards.share-with-tooltip-content')" data-test-id="dashboard-visibility-tooltip"></cly-tooltip-icon>
2121
</div>
22+
<div v-if="constants.isPublicDisabled" class="text-small color-cool-gray-50 bu-mb-2">
23+
{{i18n('dashboards.public-dashboards-disabled-info')}}
24+
</div>
2225
<cly-form-field name="share_with" rules="required">
2326
<el-radio-group :disabled="!canShare" v-model="drawerScope.editedObject.share_with" style="width: 100%;">
2427
<el-radio
@@ -27,9 +30,14 @@
2730
:test-id="'dashboard-visibility-option-' + item.value"
2831
v-for="(item) in constants.sharingOptions"
2932
:label="item.value"
30-
:key="item.value">
33+
:key="item.value"
34+
:disabled="constants.isPublicDisabled && item.value === 'all-users'">
3135
<div>
3236
{{item.name}}
37+
<cly-tooltip-icon
38+
v-if="constants.isPublicDisabled && item.value === 'all-users'"
39+
:tooltip="i18n('dashboards.share.all-users.description') + ' ' + i18n('dashboards.public-dashboards-disabled-info')">
40+
</cly-tooltip-icon>
3341
</div>
3442
<div class="text-small color-cool-gray-50">
3543
{{item.description}}

plugins/star-rating/frontend/public/javascripts/countly.views.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,10 @@
393393
computed: {
394394
preparedRows: function() {
395395
return this.ratings.map(function(rating) {
396-
rating.percentage = parseFloat(rating.percent) || 0;
397-
return rating;
396+
return Object.assign({}, rating, {
397+
rating: (Number(rating.rating) || 0) + 1,
398+
percentage: Number.parseFloat(rating.percent) || 0,
399+
});
398400
});
399401
}
400402
},

0 commit comments

Comments
 (0)