Browse Source

[web] use client-side filtering for split tests in admin panel (#34975)

* [web] use client-side filtering for split tests in admin panel

Filtering on non-indexed fields is not allowed with notablescan.

* [web] add initial value for DEFAULT_FILTERS.active

* [web] unset error before fetching split tests

GitOrigin-RevId: 0813873c5a90d57c4fdbfd0043fcc325f00408aa
Jakob Ackermann 1 tháng trước cách đây
mục cha
commit
a6c98365d9

+ 2 - 40
services/web/app/src/Features/SplitTests/SplitTestManager.mjs

@@ -10,47 +10,9 @@ const LABS_PHASE = 'labs'
 const BETA_PHASE = 'beta'
 const RELEASE_PHASE = 'release'
 
-async function getSplitTests({ name, phase, type, active, archived }) {
-  const filters = {}
-  if (name && name !== '') {
-    filters.name = { $regex: _.escapeRegExp(name) }
-  }
-  if (active) {
-    filters.$where = 'this.versions[this.versions.length - 1].active === true'
-  }
-  if (type === 'split-test') {
-    const query =
-      'this.versions[this.versions.length - 1].analyticsEnabled === true'
-    if (filters.$where) {
-      filters.$where += `&& ${query}`
-    } else {
-      filters.$where = query
-    }
-  }
-  if (type === 'gradual-rollout') {
-    const query =
-      'this.versions[this.versions.length - 1].analyticsEnabled === false'
-    if (filters.$where) {
-      filters.$where += `&& ${query}`
-    } else {
-      filters.$where = query
-    }
-  }
-  if (['alpha', 'labs', 'beta', 'release'].includes(phase)) {
-    const query = `this.versions[this.versions.length - 1].phase === "${phase}"`
-    if (filters.$where) {
-      filters.$where += `&& ${query}`
-    } else {
-      filters.$where = query
-    }
-  }
-  if (archived === true) {
-    filters.archived = true
-  } else if (archived === false) {
-    filters.archived = { $ne: true }
-  }
+async function getSplitTests() {
   try {
-    return await SplitTest.find(filters)
+    return await SplitTest.find({})
       .populate('archivedBy', ['email', 'first_name', 'last_name'])
       .populate('versions.author', ['email', 'first_name', 'last_name'])
       .limit(300)