@@ -53,6 +53,9 @@ Property namespaceLevelGitWebApp As %Boolean [ InitialExpression = {##class(Sour
5353/// Warn when an item has uncommitted changes in a different namespace in this instance
5454Property warnInstanceWideUncommitted As %Boolean [ InitialExpression = {##class (SourceControl.Git.Utils ).WarnInstanceWideUncommitted ()} ];
5555
56+ /// The name of the environment (DEVELOPMENT, TEST, LIVE)
57+ Property environmentName As %String (MAXLEN = " " ) [ InitialExpression = {##class (SourceControl.Git.Utils ).EnvironmentName ()} ];
58+
5659Property Mappings [ MultiDimensional ];
5760
5861Method %OnNew () As %Status
@@ -110,11 +113,19 @@ Method %Save() As %Status
110113 set @storage @(" settings" , " compileOnImport" ) = ..compileOnImport
111114 set @storage @(" settings" , " warnInstanceWideUncommitted" ) = ..warnInstanceWideUncommitted
112115 set @storage @(" settings" , " basicMode" ) = ..systemBasicMode
116+ set @storage @(" settings" , " environmentName" ) = ..environmentName
113117 if ..basicMode = " system" {
114118 kill @storage @(" settings" , " user" , $username , " basicMode" )
115119 } else {
116120 set @storage @(" settings" , " user" , $username , " basicMode" ) = ..basicMode
117121 }
122+ try {
123+ do $SYSTEM .Version .SystemMode (..environmentName )
124+ } catch e {
125+ // no-op; user might not have privileges.
126+ }
127+
128+
118129
119130 // update value of basicUserMode to reflect the updated setting for basicMode
120131 set ..userBasicMode = ##class (SourceControl.Git.Utils ).UserBasicMode ()
@@ -171,6 +182,13 @@ ClassMethod Configure() As %Boolean [ CodeMode = objectgenerator ]
171182 do %code .WriteLine (" if value = " " System's Default Mode" " { set value = " " system" " }" )
172183 do %code .WriteLine (" elseif value = " " Yes" " { set value = 1}" )
173184 do %code .WriteLine (" elseif value = " " No" " { set value = 0}" )
185+ } elseif ((propertyDef ) && (propertyDef .Name = " environmentName" )) {
186+ do %code .WriteLine (" set list(1) = " " DEVELOPMENT" " " )
187+ do %code .WriteLine (" set list(2) = " " TEST" " " )
188+ do %code .WriteLine (" set list(3) = " " LIVE" " " )
189+ do %code .WriteLine (" set list(4) = " " FAILOVER" " " )
190+ do %code .WriteLine (" set list(5) = " " " " " )
191+ do %code .WriteLine (" set response = ##class(%Library.Prompt).GetArray(" _promptQuoted _" ,.value,.list,,,," _defaultPromptFlag _" )" )
174192 } else {
175193 do %code .WriteLine (" set response = ##class(%Library.Prompt).GetString(" _promptQuoted _" ,.value,,,," _defaultPromptFlag _" )" )
176194 }
0 commit comments