Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
1b90fc6
Bump mongodb from 6.17.0 to 6.18.0
dependabot[bot] Jul 23, 2025
b2e5df2
[core] Update app version log
widatama Jul 23, 2025
1190d1a
[populator] Update get version to generate valid semantic version
widatama Jul 23, 2025
9a618f2
Update changelog
widatama Jul 23, 2025
523a85a
Merge branch 'master' into av-log
ar2rsawseen Jul 23, 2025
6b81cb8
Merge branch 'master' into av-log
ArtursKadikis Jul 23, 2025
67e0e08
Bump puppeteer from 24.14.0 to 24.15.0
dependabot[bot] Jul 24, 2025
5466ff9
Merge pull request #6445 from Countly/av-log
widatama Jul 24, 2025
370c252
Merge branch 'master' into dependabot/npm_and_yarn/puppeteer-24.15.0
ar2rsawseen Jul 24, 2025
0c88ff3
Merge pull request #6457 from Countly/dependabot/npm_and_yarn/puppete…
ar2rsawseen Jul 24, 2025
e003b9c
Merge branch 'master' into dependabot/npm_and_yarn/mongodb-6.18.0
ar2rsawseen Jul 24, 2025
008fa05
Bump supertest from 7.1.3 to 7.1.4
dependabot[bot] Jul 24, 2025
c435814
[core] Use correct rights validation for loyality
Jul 24, 2025
bc17315
feat: Add configuration warning tags to settings UI
pnrgenc Jul 24, 2025
28f1be1
Merge pull request #6458 from Countly/anna/master
Cookiezaurs Jul 24, 2025
ca10e97
Merge branch 'master' into dependabot/npm_and_yarn/mongodb-6.18.0
ar2rsawseen Jul 24, 2025
94f3ef9
Merge branch 'master' into adding-warning-tags-to-settings
pnrgenc Jul 24, 2025
7ed6079
Update CHANGELOG.md
Cookiezaurs Jul 24, 2025
8fe3209
Update CHANGELOG.md
Cookiezaurs Jul 24, 2025
b498b05
Merge branch 'master' into anna/master
Cookiezaurs Jul 24, 2025
7d46815
Update setting_limits_and_real_values.js
mrmeghana Jul 24, 2025
3d8ca41
Merge pull request #6461 from Countly/anna/master
Cookiezaurs Jul 24, 2025
cd152d3
Update setting_limits_and_real_values.js
mrmeghana Jul 24, 2025
3eaeeaf
Merge branch 'master' into mrmeghana-patch-6
Cookiezaurs Jul 24, 2025
304455c
Merge pull request #6462 from Countly/mrmeghana-patch-6
Cookiezaurs Jul 24, 2025
8506afd
Merge branch 'master' into dependabot/npm_and_yarn/mongodb-6.18.0
ar2rsawseen Jul 24, 2025
f8baa9a
Update changelog
widatama Jul 25, 2025
6bbd1a7
[crashes] Fix crash-free session stat in home widget
widatama Jul 24, 2025
98d8df9
[crashes] Set crash-free user and session to na when there's no data
widatama Jul 24, 2025
3b12c26
update changelog
widatama Jul 25, 2025
ea87367
[crashes] Add estimation flag to crash user stats
widatama Jul 25, 2025
9efc7d6
Merge pull request #6444 from Countly/dependabot/npm_and_yarn/mongodb…
ar2rsawseen Jul 25, 2025
515fa8b
Merge branch 'master' into dependabot/npm_and_yarn/supertest-7.1.4
ar2rsawseen Jul 25, 2025
5309a1c
Merge branch 'master' into crash-stats-empty
widatama Jul 25, 2025
4551da3
Merge branch 'master' into license-warning
widatama Jul 25, 2025
0cb75ec
Merge branch 'master' into adding-warning-tags-to-settings
pnrgenc Jul 25, 2025
0eb776b
Merge pull request #6459 from Countly/adding-warning-tags-to-settings
pnrgenc Jul 25, 2025
3f3315c
Merge branch 'master' into crash-stats-empty
widatama Jul 25, 2025
c5718b3
Merge branch 'master' into dependabot/npm_and_yarn/supertest-7.1.4
ar2rsawseen Jul 25, 2025
a6cddb4
feat: Add sidebar footer label setting to white labeling
pnrgenc Jul 25, 2025
8151469
Merge pull request #6463 from Countly/crash-stats-empty
widatama Jul 25, 2025
a7ecb1e
Update CHANGELOG.md
Cookiezaurs Jul 25, 2025
8f91312
Merge pull request #6466 from Countly/Cookiezaurs-patch-10
Cookiezaurs Jul 25, 2025
364e7ac
Merge branch 'master' into license-warning
widatama Jul 25, 2025
fb92627
fix: [plugins] Design change for warning tags
pnrgenc Jul 25, 2025
42822fc
fix: Removed version info when using white-labeling
pnrgenc Jul 25, 2025
3aa2b8e
Merge branch 'master' into white-labeling-footer-setting
pnrgenc Jul 25, 2025
0a341e1
Merge pull request #6465 from Countly/white-labeling-footer-setting
pnrgenc Jul 25, 2025
57a1e4b
Merge branch 'master' into adding-warning-tags-to-settings
pnrgenc Jul 25, 2025
cbf0909
Merge pull request #6468 from Countly/adding-warning-tags-to-settings
pnrgenc Jul 25, 2025
f581e76
Merge branch 'master' into dependabot/npm_and_yarn/supertest-7.1.4
ar2rsawseen Jul 27, 2025
b81f88d
Merge pull request #6443 from Countly/dependabot/npm_and_yarn/superte…
ar2rsawseen Jul 27, 2025
3f0560e
Update CHANGELOG.md
ar2rsawseen Jul 27, 2025
2002fe3
Merge branch 'master' into ar2rsawseen-patch-47
ar2rsawseen Jul 27, 2025
2c0d280
[crashes] Fix trend and change calculation
widatama Jul 27, 2025
bda2a0e
Merge branch 'master' into license-warning
widatama Jul 28, 2025
db3f60c
Update changelog
widatama Jul 28, 2025
17219fa
Update crashes.js
can-angun Jul 28, 2025
6d88fca
Updated home page crash value verifies
can-angun Jul 28, 2025
f5bfd9d
Merge pull request #6479 from Countly/crash-stats
widatama Jul 28, 2025
469bce1
Merge branch 'master' into license-warning
widatama Jul 28, 2025
0e33f56
fix: ui test fixing for warning tags added to settings
pnrgenc Jul 28, 2025
d08b411
Merge branch 'master' into adding-warning-tags-to-settings
can-angun Jul 28, 2025
986b5f7
Merge branch 'master' into ar2rsawseen-patch-47
ar2rsawseen Jul 28, 2025
71d4cf3
Merge pull request #6476 from Countly/ar2rsawseen-patch-47
ar2rsawseen Jul 28, 2025
d248ee6
Updated scroll page location
can-angun Jul 28, 2025
5aa588b
Fixed linter error
can-angun Jul 28, 2025
edad261
Updated ensureScrollable is true
can-angun Jul 28, 2025
f33c940
Merge branch 'master' into license-warning
widatama Jul 29, 2025
352bfa0
Updated ensureScrollable as false for scroll
can-angun Jul 29, 2025
b5784bf
[push] Show segmentation, geo and cohorts related components in push …
Jul 29, 2025
81f0d0c
Merge branch 'master' into anna/master
Cookiezaurs Jul 29, 2025
a708942
Added scrollPageSlightly method
can-angun Jul 29, 2025
967b8ef
Merge pull request #6487 from Countly/anna/master
Cookiezaurs Jul 29, 2025
67c5b31
Updated scroll page methods location
can-angun Jul 29, 2025
c4ddd8f
Merge branch 'master' into license-warning
widatama Jul 29, 2025
462b052
Merge branch 'master' into adding-warning-tags-to-settings
can-angun Jul 29, 2025
ed0e1d2
Merge pull request #6464 from Countly/license-warning
widatama Jul 29, 2025
860751a
Merge branch 'master' into adding-warning-tags-to-settings
can-angun Jul 29, 2025
84b74fd
Merge pull request #6480 from Countly/adding-warning-tags-to-settings
can-angun Jul 29, 2025
9ed6070
[core] handle switching to report manager for table
Jul 29, 2025
3c0b775
Updated changelog
Jul 29, 2025
170dfc4
Merge branch 'master' into anna/master
Cookiezaurs Jul 29, 2025
be648fc
Merge pull request #6490 from Countly/anna/master
Cookiezaurs Jul 29, 2025
98e1de0
Update CHANGELOG.md
gabrieloliveirapinto Jul 30, 2025
60b445d
Merge pull request #6493 from Countly/master-minor-release-25.03.12
gabrieloliveirapinto Jul 30, 2025
a8e645e
Update README.md
ar2rsawseen Jul 30, 2025
d500ddf
Merge pull request #6496 from Countly/ar2rsawseen-patch-48
can-angun Jul 30, 2025
052ae13
Update README.md
ar2rsawseen Jul 30, 2025
ddfb435
Merge pull request #6497 from Countly/ar2rsawseen-patch-49
can-angun Jul 30, 2025
d671f88
Update README.md
ar2rsawseen Jul 30, 2025
868c505
Update and rename LICENSE to LICENSE.md
ar2rsawseen Jul 30, 2025
d2bfc1a
Merge pull request #6498 from Countly/ar2rsawseen-patch-50
can-angun Jul 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,35 @@
## Version 25.03.12
Features:
- [plugins] Add configuration warning tags to settings UI
- [white-labeling] Add sidebar footer label setting to white labeling

Fixes:
- [core] Use correct rights validation for loyality
- [crashes] Fix free session for home widget
- [crashes] Fix trend and change calculation for crash stats
- [crashes] Use na for free session and free user when there's no data
- [push] Show segmentation, geo and cohorts related components in push drawer on editing draft.

Enterprise Fixes:
- [ldap] Error handling in ldap plugin on search error
- [license] Display notification for non global admin user
- [users] Load table data from report if user table calculation goes to report manager

Dependencies:
- Bump mongodb from 6.17.0 to 6.18.0
- Bump puppeteer from 24.14.0 to 24.15.0
- Bump supertest from 7.1.3 to 7.1.4


## Version 25.03.11
Fixes:
- [core] Fix mongo connection url parsing
- [core] Fix user analytics widget chart
- [crashes] Fix free session and free user calculation
- [dashboards] Delete associated widgets and reports when a dashboard is removed
- [star-rating] Fix widget close post message
- [core] Adjust level and update content of app version log
- [populator] Update getVersion to generate valid semantic version

Enterprise Fixes:
- [crash_symbolication] Remove auto symbolication setting
Expand Down
2 changes: 1 addition & 1 deletion LICENSE → LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ Countly Product Analytics - Countly Lite License

© Countly, https://count.ly

Countly is provided under AGPL v3 with modified Section 7. In accordance
Countly is provided under AGPL-3.0 with modified Section 7. In accordance
with Section 7 of the AGPL, the Works included in this package or repository
(excluding 3rd party Software), are subject to the following additional terms:

Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,11 @@ If you like Countly, why not use one of our badges and give a link back to us?
<a href="https://countly.com/?utm_source=badge" rel="nofollow"><img style="width:145px;height:60px" src="https://count.ly/badges/light.svg?v2" alt="Countly - Product Analytics" /></a>

<a href="https://countly.com/?utm_source=badge" rel="nofollow"><img style="width:145px;height:60px" src="https://count.ly/badges/light.svg" alt="Countly - Product Analytics" /></a>


## License
This project is licensed under **AGPL-3.0** with modified Section 7., see the [LICENSE](LICENSE) file for more details.

## 💚 Thanks

This project is tested with BrowserStack.
2 changes: 1 addition & 1 deletion api/parts/data/usage.js
Original file line number Diff line number Diff line change
Expand Up @@ -1121,7 +1121,7 @@ plugins.register("/sdk/user_properties", async function(ob) {
userProps.av_build = versionComponents.build;
}
else {
log.w("Invalid app version format: %s", params.qstring.metrics._app_version);
log.d("App version %s is not a valid semantic version. It cannot be separated into semantic version parts", params.qstring.metrics._app_version);
userProps.av_major = null;
userProps.av_minor = null;
userProps.av_patch = null;
Expand Down
2 changes: 1 addition & 1 deletion api/utils/requestProcessor.js
Original file line number Diff line number Diff line change
Expand Up @@ -1567,7 +1567,7 @@ const processRequest = (params) => {
common.returnMessage(params, 400, 'Missing parameter "app_id"');
return false;
}
validateUserForMgmtReadAPI(countlyApi.mgmt.appUsers.loyalty, params);
validateUserForRead(params, countlyApi.mgmt.appUsers.loyalty);
break;
}
/**
Expand Down
67 changes: 12 additions & 55 deletions bin/scripts/export-data/setting_limits_and_real_values.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
* Path: $(countly dir)/bin/scripts/export-data
* Command: node setting_limits_and_real_values.js
*/

const fs = require('fs');
const crypto = require('crypto');
const common = require('../../../api/utils/common.js');
Expand All @@ -20,10 +19,10 @@ const DEFAULT_LIMITS = {
view_name_limit: 128,
view_segment_limit: 100,
view_segment_value_limit: 10,
custom_prop_limit: 20,
//custom_prop_limit: 20,
custom_property_limit: 20,
custom_prop_value_limit: 50,
};

Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("countly_drill")]).then(async function([countlyDb, drillDb]) {
console.log("Connected to databases...");
common.db = countlyDb;
Expand All @@ -36,21 +35,17 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
else {
// WRITE START OF ARRAY
WriteStream.write('[\n', 'utf8');

// GETTING DATA FOR SET LIMITS FOR EVENTS, VIEWS, AND CUSTOM PROPERTIES
var pluginsCollectionPlugins = await countlyDb.collection("plugins").findOne({"_id": 'plugins'});

// LOOP APPS FOR EACH REQUIREMENT
for (let i = 0; i < apps.length; i++) {
var app = apps[i];
console.log(i + 1, ") Processing app:", app.name);

try {
var app_results = { "App Name": app.name },
defaultVal,
realVal,
currentVal;

// SETTING UP CURRENT SET LIMITS PER APP
var appsCollectionPerApp = await countlyDb.collection("apps").findOne({"_id": common.db.ObjectID(app._id)});
var CURRENT_LIMITS = {
Expand All @@ -61,10 +56,10 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
view_name_limit: pluginsCollectionPlugins?.views?.view_name_limit || DEFAULT_LIMITS.view_name_limit,
view_segment_limit: pluginsCollectionPlugins?.views?.segment_limit || DEFAULT_LIMITS.view_segment_limit,
view_segment_value_limit: pluginsCollectionPlugins?.views?.segment_value_limit || DEFAULT_LIMITS.view_segment_value_limit,
custom_prop_limit: pluginsCollectionPlugins?.users?.custom_prop_limit || DEFAULT_LIMITS.custom_prop_limit,
//custom_prop_limit: pluginsCollectionPlugins?.users?.custom_prop_limit || DEFAULT_LIMITS.custom_prop_limit,
custom_property_limit: pluginsCollectionPlugins?.drill?.custom_property_limit || DEFAULT_LIMITS.custom_property_limit,
custom_prop_value_limit: pluginsCollectionPlugins?.users?.custom_set_limit || DEFAULT_LIMITS.custom_prop_value_limit,
};

// GETTING REAL DATA PER APP
var eventsCollectionPerApp = await countlyDb.collection("events").findOne({"_id": common.db.ObjectID(app._id)});
var viewsCountsPerApp = await countlyDb.collection("app_viewsmeta" + app._id).countDocuments();
Expand Down Expand Up @@ -140,46 +135,34 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
catch (err) {
console.log("Mongodb operation failed for app: ", app.name, err);
}

// EVENT KEYS
defaultVal = DEFAULT_LIMITS.event_limit;

currentVal = CURRENT_LIMITS.event_limit;

let realEvents = eventsCollectionPerApp?.list || [];
realVal = realEvents.length;

app_results['Event Keys'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// SEGMENTS IN ONE EVENT
defaultVal = DEFAULT_LIMITS.event_segment_limit;

currentVal = CURRENT_LIMITS.event_segment_limit;

let eventSegments = eventsCollectionPerApp && eventsCollectionPerApp.segments || {};
realVal = Object.entries(eventSegments)
.sort((a, b) => b[1].length - a[1].length)
.reduce((acc, [key, value]) => {
acc[key] = value.length;
return acc;
}, {});

app_results['Event Segments'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// UNIQUE EVENT SEGMENT VALUES FOR 1 SEGMENT
defaultVal = DEFAULT_LIMITS.event_segment_value_limit;

currentVal = CURRENT_LIMITS.event_segment_value_limit;

realVal = {};
await Promise.all(realEvents.map(async(event) => {
var shortEventName = common.fixEventKey(event);
var eventCollectionName = "events" + crypto.createHash('sha1').update(shortEventName + app._id).digest('hex');

var hash = crypto.createHash('sha1').update(shortEventName + app._id).digest('hex');
var eventCollectionName = "events_data";
try {
var regexes = [
"^no-segment_2023:0.*",
"^no-segment_2024:0.*"
"^" + app._id + "_" + hash + "_no-segment_2025:0.*"
];
var eventsSegmentsValues = await countlyDb.collection(eventCollectionName).aggregate([
{
Expand Down Expand Up @@ -218,7 +201,6 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
}
}
]).toArray();

// Use reduce to transform array
eventsSegmentsValues = eventsSegmentsValues.reduce((acc, item) => {
const key = item.meta_v2.k;
Expand All @@ -228,7 +210,6 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
acc[key] += item.meta_v2.v;
return acc;
}, {});

if (Object.keys(eventsSegmentsValues).length > 0) {
realVal[event] = eventsSegmentsValues;
}
Expand All @@ -238,65 +219,45 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
}
}));
app_results['Unique Event Segment Values'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// UNIQUE VIEV NAMES
defaultVal = DEFAULT_LIMITS.view_limit;

currentVal = CURRENT_LIMITS.view_limit;

realVal = viewsCountsPerApp;

app_results['Unique View Names'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// VIEW NAME LENGTH LIMIT
defaultVal = DEFAULT_LIMITS.view_name_limit;

currentVal = CURRENT_LIMITS.view_name_limit;

realVal = {longestViewName: "", longestViewLength: 0};
realVal.longestViewName = viewsCollectionPerApp && viewsCollectionPerApp[0] && viewsCollectionPerApp[0]?.view;
realVal.longestViewLength = viewsCollectionPerApp && viewsCollectionPerApp[0] && viewsCollectionPerApp[0]?.max_length;

app_results['View Name Length Limit'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// SEGMENTS IN ONE VIEW
defaultVal = DEFAULT_LIMITS.view_segment_limit;

currentVal = CURRENT_LIMITS.view_segment_limit;

realVal = viewsSegmentsPerApp && viewsSegmentsPerApp[0]?.numberOfSegments || 0;

app_results['View Segments'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// VIEW SEGMENT'S UNIQUE VALUES
defaultVal = DEFAULT_LIMITS.view_segment_value_limit;

currentVal = CURRENT_LIMITS.view_segment_value_limit;

realVal = viewsSegmentsPerApp && viewsSegmentsPerApp[0]?.segments || 0;
Object.keys(realVal).forEach(key => {
if (realVal[key] === 0) {
delete realVal[key];
}
});
app_results['View Segments Unique Values'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// USER PROPERTIES
defaultVal = DEFAULT_LIMITS.custom_prop_limit;

currentVal = CURRENT_LIMITS.custom_prop_limit;

//defaultVal = DEFAULT_LIMITS.custom_prop_limit;
//currentVal = CURRENT_LIMITS.custom_prop_limit;
defaultVal = DEFAULT_LIMITS.custom_property_limit;
currentVal = CURRENT_LIMITS.custom_property_limit;
realVal = customPropsPerApp && customPropsPerApp[0]?.customPropertiesCount || 0;
app_results['Custom User Properties'] = {"default": defaultVal, "set": currentVal, "real": realVal};

app_results['Max user custom properties'] = {"default": defaultVal, "set": currentVal, "real": realVal};
// VALUES IN AN ARRAY FOR ONE USER PROPERTY
defaultVal = DEFAULT_LIMITS.custom_prop_value_limit;

currentVal = CURRENT_LIMITS.custom_prop_value_limit;

realVal = valueFieldCounts || undefined;
app_results['Values In Array For One User Property'] = {"default": defaultVal, "set": currentVal, "real": realVal};

// WRITE RESULTS PER APP TO FILE
WriteStream.write(JSON.stringify(app_results, null, 2), 'utf8');
if (i + 1 < apps.length) {
Expand All @@ -315,7 +276,6 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
finally {
close();
}

async function getAppList(options) {
var query = {};
if (app_list && app_list.length > 0) {
Expand All @@ -325,7 +285,6 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
}
query = {_id: {$in: listed}};
}

try {
let apps = await options.db.collection("apps").find(query).toArray();
return apps;
Expand All @@ -334,9 +293,7 @@ Promise.all([pluginManager.dbConnection("countly"), pluginManager.dbConnection("
console.log("Error getting apps: ", err);
return [];
}

}

function close(err) {
if (err) {
console.log("Error: ", err);
Expand Down
18 changes: 16 additions & 2 deletions frontend/express/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,14 @@ Promise.all([plugins.dbConnection(countlyConfig), plugins.dbConnection("countly_
app.loadThemeFiles(curTheme);
app.dashboard_headers = plugins.getConfig("security").dashboard_additional_headers;

var overriddenCountlyNamedType = COUNTLY_NAMED_TYPE;
var whiteLabelingConfig = plugins.getConfig("white-labeling");
if (whiteLabelingConfig && whiteLabelingConfig.footerLabel && whiteLabelingConfig.footerLabel.length) {
overriddenCountlyNamedType = whiteLabelingConfig.footerLabel;
}

COUNTLY_NAMED_TYPE = overriddenCountlyNamedType;

if (typeof plugins.getConfig('frontend').countly_tracking !== 'boolean' && plugins.isPluginEnabled('tracker')) {
plugins.updateConfigs(countlyDb, 'frontend', { countly_tracking: true });
}
Expand Down Expand Up @@ -929,6 +937,12 @@ Promise.all([plugins.dbConnection(countlyConfig), plugins.dbConnection("countly_
licenseNotification, licenseError;
var isLocked = false;
configs.export_limit = plugins.getConfig("api").export_limit;

var currentWhiteLabelingConfig = plugins.getConfig("white-labeling");
var overriddenCountlyNamedType = COUNTLY_NAMED_TYPE;
if (currentWhiteLabelingConfig && currentWhiteLabelingConfig.footerLabel && currentWhiteLabelingConfig.footerLabel.length) {
overriddenCountlyNamedType = currentWhiteLabelingConfig.footerLabel;
}
app.loadThemeFiles(configs.theme, async function(theme) {
if (configs._user.theme) {
res.cookie("theme", configs.theme);
Expand Down Expand Up @@ -1004,7 +1018,7 @@ Promise.all([plugins.dbConnection(countlyConfig), plugins.dbConnection("countly_
licenseError,
ssr: serverSideRendering,
timezones: timezones,
countlyTypeName: COUNTLY_NAMED_TYPE,
countlyTypeName: overriddenCountlyNamedType,
countlyTypeTrack: COUNTLY_TRACK_TYPE,
countlyTypeCE: COUNTLY_TYPE_CE,
countly_tracking,
Expand Down Expand Up @@ -1037,7 +1051,7 @@ Promise.all([plugins.dbConnection(countlyConfig), plugins.dbConnection("countly_
countlyVersion: req.countly.version,
countlyType: COUNTLY_TYPE_CE,
countlyTrial: COUNTLY_TRIAL,
countlyTypeName: COUNTLY_NAMED_TYPE,
countlyTypeName: overriddenCountlyNamedType,
feedbackLink: COUNTLY_FEEDBACK_LINK,
documentationLink: COUNTLY_DOCUMENTATION_LINK,
helpCenterLink: COUNTLY_HELPCENTER_LINK,
Expand Down
17 changes: 13 additions & 4 deletions frontend/express/public/javascripts/countly/vue/data/vuex.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,14 +274,23 @@
options.onOverrideResponse(context, res);
}
var convertedResponse = _dataTableAdapters.toStandardResponse(res, requestOptions);
if (!Object.prototype.hasOwnProperty.call(convertedResponse, "echo") ||
convertedResponse.echo >= context.state[echoField]) {
if (typeof options.onReady === 'function') {
convertedResponse.rows = options.onReady(context, convertedResponse.rows);
if (res.task_id) {
if (typeof options.onTask === 'function') {
options.onTask(context, res.task_id);
}
context.commit(_capitalized("set", resourceName), convertedResponse);
context.commit(_capitalized("set", lastSuccessfulRequestKey), requestOptions);
}
else {
if (!Object.prototype.hasOwnProperty.call(convertedResponse, "echo") ||
convertedResponse.echo >= context.state[echoField]) {
if (typeof options.onReady === 'function') {
convertedResponse.rows = options.onReady(context, convertedResponse.rows);
}
context.commit(_capitalized("set", resourceName), convertedResponse);
context.commit(_capitalized("set", lastSuccessfulRequestKey), requestOptions);
}
}
})
.catch(function(err) {
if (typeof options.onError === 'function') {
Expand Down
Loading
Loading