Skip to content

Commit d7f8258

Browse files
author
Cookiezaurs
committed
Merge branch 'feature/ingestion' of https://github.com/Countly/countly-server into feature/ingestion
2 parents 04b0086 + 7448d92 commit d7f8258

10 files changed

Lines changed: 60 additions & 863 deletions

File tree

Dockerfile-unified

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# TODO: if plugins grep hoooks compile v8-sandbox hooks with base as parent and then later copy to plugins/hooks/node_modules
22

33
# Global ARGs - available in all stages
4-
ARG COUNTLY_PLUGINS=mobile,web,desktop,plugins,density,locale,browser,sources,views,license,drill,funnels,retention_segments,flows,cohorts,surveys,remote-config,ab-testing,formulas,activity-map,concurrent_users,logger,systemlogs,populator,reports,crashes,geo,block,users,star-rating,slipping-away-users,compare,server-stats,dbviewer,crash_symbolication,crashes-jira,groups,white-labeling,alerts,times-of-day,compliance-hub,onboarding,active_users,config-transfer,consolidate,data-manager,hooks,dashboards,journey_engine,content,clickhouse,guides,sdk,kafka,oidc,revenue,push
4+
ARG COUNTLY_PLUGINS=mobile,web,desktop,plugins,density,locale,browser,sources,views,license,drill,funnels,retention_segments,flows,cohorts,surveys,remote-config,ab-testing,formulas,activity-map,concurrent_users,logger,systemlogs,populator,reports,crashes,geo,block,users,star-rating,slipping-away-users,compare,server-stats,dbviewer,crash_symbolication,crashes-jira,groups,white-labeling,alerts,times-of-day,compliance-hub,onboarding,active_users,config-transfer,consolidate,data-manager,hooks,dashboards,journey_engine,content,clickhouse,guides,sdk,kafka,oidc,revenue,push,ai-assistants
55
ARG GEOIP=empty
66

77
###############################################################################

frontend/express/public/javascripts/countly/vue/components/datatable.js

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@
7575
return {
7676
controlParams: controlParams,
7777
lastSearchQuery: '',
78-
firstPage: 1
78+
firstPage: 1,
79+
lastControlParamsSnapshot: null
7980
};
8081
},
8182

@@ -328,14 +329,35 @@
328329
controlParams: {
329330
deep: true,
330331

331-
handler: _.debounce(function() {
332-
// Clear cursor history when search or filters change
333-
if (this.controlParams.searchQuery !== this.lastSearchQuery) {
334-
this.controlParams.cursorHistory = [];
335-
this.lastSearchQuery = this.controlParams.searchQuery;
332+
handler: _.debounce(function(newVal) {
333+
// Skip if this is the first run (no snapshot yet)
334+
if (!this.lastControlParamsSnapshot) {
335+
this.lastControlParamsSnapshot = this.getControlParamsSnapshot();
336+
return;
336337
}
337-
this.triggerExternalSource();
338-
this.setControlParams();
338+
339+
// Check if only internal/derived fields changed (like useCursorPagination)
340+
// These shouldn't trigger a fetch
341+
const meaningfulFields = ['page', 'perPage', 'searchQuery', 'sort', 'cursor', 'selectedDynamicCols'];
342+
const hasMeaningfulChange = meaningfulFields.some(field => {
343+
const newFieldVal = JSON.stringify(newVal[field]);
344+
const oldFieldVal = JSON.stringify(this.lastControlParamsSnapshot[field]);
345+
return newFieldVal !== oldFieldVal;
346+
});
347+
348+
// Only trigger fetch if meaningful user-initiated changes occurred
349+
if (hasMeaningfulChange) {
350+
// Clear cursor history when search or filters change
351+
if (this.controlParams.searchQuery !== this.lastSearchQuery) {
352+
this.controlParams.cursorHistory = [];
353+
this.lastSearchQuery = this.controlParams.searchQuery;
354+
}
355+
this.triggerExternalSource();
356+
this.setControlParams();
357+
}
358+
359+
// Update snapshot after processing
360+
this.lastControlParamsSnapshot = this.getControlParamsSnapshot();
339361
}, 500)
340362
},
341363

@@ -370,6 +392,8 @@
370392
},
371393

372394
mounted() {
395+
// Initialize snapshot on mount to prevent false positives
396+
this.lastControlParamsSnapshot = this.getControlParamsSnapshot();
373397
this.triggerExternalSource();
374398
},
375399

@@ -631,6 +655,19 @@
631655

632656
updateControlParams(newParams) {
633657
_.extend(this.controlParams, newParams);
658+
},
659+
660+
getControlParamsSnapshot() {
661+
// Create a snapshot of meaningful controlParams fields for comparison
662+
// Excludes internal state fields (cursorHistory, useCursorPagination) that get mutated during pagination
663+
return {
664+
page: this.controlParams.page,
665+
perPage: this.controlParams.perPage,
666+
searchQuery: this.controlParams.searchQuery,
667+
sort: JSON.parse(JSON.stringify(this.controlParams.sort || [])),
668+
cursor: this.controlParams.cursor,
669+
selectedDynamicCols: JSON.parse(JSON.stringify(this.controlParams.selectedDynamicCols || []))
670+
};
634671
}
635672
}
636673
};

plugins/data-manager/frontend/public/localization/data-manager.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ data-manager.transformation-method.subheading = Select transformation method tha
209209
data-manager.incoming = Incoming
210210
data-manager.existing = Existing
211211
data-manager.both = Both
212+
data-manager.clickhouse-incoming-only-message = When using ClickHouse, only incoming data transformations are supported.
212213
data-manager.rename-type = Rename Type
213214
data-manager.rename-type.tooltip = Rename Type
214215
data-manager.rename-with-value = Rename with Specific Value

plugins/locale/api/node_modules/langmap/.npmignore

Lines changed: 0 additions & 15 deletions
This file was deleted.

plugins/locale/api/node_modules/langmap/LICENSE

Lines changed: 0 additions & 20 deletions
This file was deleted.

plugins/locale/api/node_modules/langmap/README.md

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)