From 3de9dde449a02aeb1934cc47c1d174cfef1e816e Mon Sep 17 00:00:00 2001
From: Xiao Gui <xgui3783@gmail.com>
Date: Mon, 11 Oct 2021 09:37:00 +0200
Subject: [PATCH] feat: add experimental flag

---
 .github/workflows/docker_img.yml                | 4 +++-
 Dockerfile                                      | 3 +++
 src/environments/environment.common.ts          | 3 +++
 src/environments/parseEnv.js                    | 4 +++-
 src/ui/topMenu/topMenuCmp/topMenu.components.ts | 3 +++
 src/ui/topMenu/topMenuCmp/topMenu.template.html | 1 +
 6 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/docker_img.yml b/.github/workflows/docker_img.yml
index 176821e86..3470644fb 100644
--- a/.github/workflows/docker_img.yml
+++ b/.github/workflows/docker_img.yml
@@ -43,7 +43,7 @@ jobs:
           echo "BS_REST_URL=${{ env.SIIBRA_API_LATEST }}" >> $GITHUB_ENV
         fi
 
-    - name: 'Set version variable'
+    - name: 'Set version variable & expmt feature flag'
       run: |
         if [[ "$GITHUB_REF" == 'refs/heads/master' ]] || [[ "$GITHUB_REF" == 'refs/heads/staging' ]]
         then
@@ -52,6 +52,7 @@ jobs:
         else
           echo "Using git hash"
           VERSION=$(git rev-parse --short HEAD)
+          echo "EXPERIMENTAL_FEATURE_FLAG=true" >> $GITHUB_ENV
         fi
         echo "VERSION=$VERSION" >> $GITHUB_ENV
     - name: 'Build docker image'
@@ -63,6 +64,7 @@ jobs:
           --build-arg MATOMO_URL=$MATOMO_URL \
           --build-arg MATOMO_ID=$MATOMO_ID \
           --build-arg BS_REST_URL=$BS_REST_URL \
+          --build-arg EXPERIMENTAL_FEATURE_FLAG=$EXPERIMENTAL_FEATURE_FLAG \
           -t $DOCKER_BUILT_TAG \
           .
         echo "Successfully built $DOCKER_BUILT_TAG"
diff --git a/Dockerfile b/Dockerfile
index 2754e365f..23dea08fc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -21,6 +21,9 @@ ENV MATOMO_URL=${MATOMO_URL}
 ARG MATOMO_ID
 ENV MATOMO_ID=${MATOMO_ID}
 
+ARG EXPERIMENTAL_FEATURE_FLAG
+ENV EXPERIMENTAL_FEATURE_FLAG=${EXPERIMENTAL_FEATURE_FLAG:-false}
+
 COPY . /iv
 WORKDIR /iv
 
diff --git a/src/environments/environment.common.ts b/src/environments/environment.common.ts
index 5bf60d590..52bdf0c70 100644
--- a/src/environments/environment.common.ts
+++ b/src/environments/environment.common.ts
@@ -14,4 +14,7 @@ export const environment = {
 
   // invite user to touch/interact after 5 min of inactivity
   KIOSK_MODE: false,
+
+  // experimental feature flag
+  EXPERIMENTAL_FEATURE_FLAG: false,
 }
diff --git a/src/environments/parseEnv.js b/src/environments/parseEnv.js
index 293c50cbc..2b3052d93 100644
--- a/src/environments/parseEnv.js
+++ b/src/environments/parseEnv.js
@@ -13,7 +13,8 @@ const main = async () => {
     MATOMO_ID,
     BS_REST_URL,
     VERSION,
-    GIT_HASH
+    GIT_HASH,
+    EXPERIMENTAL_FEATURE_FLAG
   } = process.env
   const version = JSON.stringify(
     VERSION || GIT_HASH || 'unspecificied hash'
@@ -30,6 +31,7 @@ export const environment = {
   STRICT_LOCAL: ${JSON.stringify(STRICT_LOCAL)},
   MATOMO_URL: ${JSON.stringify(MATOMO_URL)},
   MATOMO_ID: ${JSON.stringify(MATOMO_ID)},
+  EXPERIMENTAL_FEATURE_FLAG: ${EXPERIMENTAL_FEATURE_FLAG}
 }
 `
   await asyncWrite(pathToEnvFile, outputTxt, 'utf-8')
diff --git a/src/ui/topMenu/topMenuCmp/topMenu.components.ts b/src/ui/topMenu/topMenuCmp/topMenu.components.ts
index 716a66662..3b4ecb5f4 100644
--- a/src/ui/topMenu/topMenuCmp/topMenu.components.ts
+++ b/src/ui/topMenu/topMenuCmp/topMenu.components.ts
@@ -11,6 +11,7 @@ import { MatDialog, MatDialogConfig, MatDialogRef } from "@angular/material/dial
 import { MatBottomSheet } from "@angular/material/bottom-sheet";
 import { CONST, QUICKTOUR_DESC } from 'common/constants'
 import { IQuickTourData } from "src/ui/quickTour/constrants";
+import { environment } from 'src/environments/environment'
 
 @Component({
   selector: 'top-menu-cmp',
@@ -23,6 +24,8 @@ import { IQuickTourData } from "src/ui/quickTour/constrants";
 
 export class TopMenuCmp {
 
+  public EXPERIMENTAL_FEATURE_FLAG = environment.EXPERIMENTAL_FEATURE_FLAG
+
   public PINNED_DATASETS_BADGE_DESC = CONST.PINNED_DATASETS_BADGE_DESC
 
   public matBtnStyle = 'mat-icon-button'
diff --git a/src/ui/topMenu/topMenuCmp/topMenu.template.html b/src/ui/topMenu/topMenuCmp/topMenu.template.html
index c090670d7..dc889adc9 100644
--- a/src/ui/topMenu/topMenuCmp/topMenu.template.html
+++ b/src/ui/topMenu/topMenuCmp/topMenu.template.html
@@ -165,6 +165,7 @@
   </button>
 
   <button mat-menu-item
+    *ngIf="EXPERIMENTAL_FEATURE_FLAG"
     [disabled]="!viewerLoaded"
     key-frame-play-now
     [matTooltip]="keyFrameText">
-- 
GitLab