Просмотр исходного кода

Merge pull request #14951 from overleaf/ab-split-test-calculator

[web] Split test calculator

GitOrigin-RevId: 53a84a64d69c47d692f215dee351af635a5dcceb
Alexandre Bourdin 2 лет назад
Родитель
Сommit
ddd9334bd6

+ 2 - 0
package-lock.json

@@ -43293,6 +43293,7 @@
         "@overleaf/logger": "*",
         "@overleaf/logger": "*",
         "@overleaf/metrics": "*",
         "@overleaf/metrics": "*",
         "@overleaf/o-error": "*",
         "@overleaf/o-error": "*",
+        "@overleaf/promise-utils": "*",
         "@overleaf/redis-wrapper": "*",
         "@overleaf/redis-wrapper": "*",
         "@overleaf/settings": "*",
         "@overleaf/settings": "*",
         "@overleaf/stream-utils": "^0.1.0",
         "@overleaf/stream-utils": "^0.1.0",
@@ -53704,6 +53705,7 @@
         "@overleaf/logger": "*",
         "@overleaf/logger": "*",
         "@overleaf/metrics": "*",
         "@overleaf/metrics": "*",
         "@overleaf/o-error": "*",
         "@overleaf/o-error": "*",
+        "@overleaf/promise-utils": "*",
         "@overleaf/redis-wrapper": "*",
         "@overleaf/redis-wrapper": "*",
         "@overleaf/settings": "*",
         "@overleaf/settings": "*",
         "@overleaf/stream-utils": "^0.1.0",
         "@overleaf/stream-utils": "^0.1.0",

+ 3 - 1
services/web/app/src/Features/SplitTests/SplitTestManager.js

@@ -106,7 +106,6 @@ async function createSplitTest(
   const splitTest = new SplitTest({
   const splitTest = new SplitTest({
     name: (name || '').trim(),
     name: (name || '').trim(),
     description: info.description,
     description: info.description,
-    expectedEndDate: info.expectedEndDate,
     ticketUrl: info.ticketUrl,
     ticketUrl: info.ticketUrl,
     reportsUrls: info.reportsUrls,
     reportsUrls: info.reportsUrls,
     winningVariant: info.winningVariant,
     winningVariant: info.winningVariant,
@@ -122,6 +121,9 @@ async function createSplitTest(
         author: userId,
         author: userId,
       },
       },
     ],
     ],
+    expectedEndDate: info.expectedEndDate,
+    expectedUplift: info.expectedUplift,
+    requiredCohortSize: info.requiredCohortSize,
   })
   })
   return _saveSplitTest(splitTest)
   return _saveSplitTest(splitTest)
 }
 }

+ 8 - 0
services/web/app/src/models/SplitTest.js

@@ -130,6 +130,14 @@ const SplitTestSchema = new Schema(
       type: Date,
       type: Date,
       required: false,
       required: false,
     },
     },
+    requiredCohortSize: {
+      type: Number,
+      required: false,
+    },
+    expectedUplift: {
+      type: Number,
+      required: false,
+    },
     ticketUrl: {
     ticketUrl: {
       type: String,
       type: String,
       required: false,
       required: false,

+ 18 - 0
services/web/frontend/stylesheets/modules/admin-panel.less

@@ -17,3 +17,21 @@
   max-height: calc(100vh - 40vh);
   max-height: calc(100vh - 40vh);
   overflow-y: auto;
   overflow-y: auto;
 }
 }
+
+.hr-sect {
+  display: flex;
+  flex-basis: 100%;
+  align-items: center;
+  color: rgba(0, 0, 0, 0.35);
+  margin: 8px 0;
+}
+.hr-sect:before,
+.hr-sect:after {
+  content: '';
+  flex-grow: 1;
+  background: rgba(0, 0, 0, 0.35);
+  height: 1px;
+  font-size: 0;
+  line-height: 0;
+  margin: 0 8px;
+}