Skip to content

Commit a1662e5

Browse files
committed
Merge branch 'main' into issue-484
2 parents 7ec5599 + 94c92ab commit a1662e5

File tree

11 files changed

+83
-3
lines changed

11 files changed

+83
-3
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111
- Added 'git push --force' in expert mode (#527)
1212
- Add remote repository to settings page (#448)
13+
- Added environment awareness in configuration, and showing of environment name in UI (#124)
1314

1415
### Fixed
1516
- Fixed display of other users' username in workspace view on Unix (#530)
17+
- Fixed slowness loading some CSP pages with multiple instances sharing a webserver (#540)
1618
- Prevent direct commits to default merge branch in basic mode (#484)
1719

1820
## [2.6.0] - 2024-10-07

cls/SourceControl/Git/Settings.cls

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
5454
Property 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+
5659
Property Mappings [ MultiDimensional ];
5760

5861
Method %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
}

cls/SourceControl/Git/StreamServer.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Class SourceControl.Git.StreamServer Extends %CSP.StreamServer
77
ClassMethod OnPage() As %Status
88
{
99
if (%stream '= $$$NULLOREF) && $data(%base)#2 {
10-
set sourceControlInclude = ##class(SourceControl.Git.Utils).GetSourceControlInclude(%request.URLPrefix)
10+
set sourceControlInclude = ##class(SourceControl.Git.Utils).GetSourceControlInclude()
1111
while '%stream.AtEnd {
1212
set text = %stream.Read()
1313
set text = $replace(text,"{{baseHref}}",..EscapeHTML(%base))

cls/SourceControl/Git/Utils.cls

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,16 @@ ClassMethod WarnInstanceWideUncommitted() As %Boolean
163163
quit $get(@..#Storage@("settings","warnInstanceWideUncommitted"),1)
164164
}
165165

166+
ClassMethod EnvironmentName() As %String
167+
{
168+
quit $SYSTEM.Version.SystemMode()
169+
}
170+
171+
ClassMethod IsLIVE() As %Boolean
172+
{
173+
quit ..EnvironmentName()="LIVE"
174+
}
175+
166176
ClassMethod NeedSettings() As %Boolean [ CodeMode = expression ]
167177
{
168178
(..TempFolder() = "") || (..GitBinPath() = "") || (..GitBinPath() = """")
@@ -2566,7 +2576,7 @@ ClassMethod GetPackageVersion() As %String [ CodeMode = objectgenerator ]
25662576
quit $$$OK
25672577
}
25682578

2569-
ClassMethod GetSourceControlInclude(prefix As %String = "") As %String
2579+
ClassMethod GetSourceControlInclude(prefix As %String = {%request.URLPrefix}) As %String
25702580
{
25712581
quit $select(##class(%Library.EnsembleMgr).IsEnsembleInstalled():
25722582
"<script type=""text/javascript"" src="""_prefix_"/isc/studio/templates/ensemble/Ens_SourceControl.js""></script>",

cls/SourceControl/Git/WebUIDriver.cls

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ ClassMethod HandleRequest(pagePath As %String, InternalName As %String = "", Out
2828
}
2929
} elseif $extract(pagePath,6,*) = "remote" {
3030
set responseJSON = ..GetRemote()
31+
} elseif $extract(pagePath,6,*) = "environment" {
32+
set responseJSON = {
33+
"environment": (##class(SourceControl.Git.Utils).EnvironmentName())
34+
}
3135
} elseif $extract(pagePath, 6, *) = "basic-and-default" {
3236
set responseJSON = {
3337
"basic-and-default": (##class(SourceControl.Git.Utils).InDefaultBranchBasicMode())

csp/gitprojectsettings.csp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ body {
8686
set $Property(settings,param) = $Get(%request.Data(param,1))
8787
}
8888
if ('settings.settingsUIReadOnly) {
89-
for param="gitBinPath","namespaceTemp","privateKeyFile","pullEventClass","percentClassReplace", "defaultMergeBranch" {
89+
for param="gitBinPath","namespaceTemp","privateKeyFile","pullEventClass","percentClassReplace", "defaultMergeBranch","environmentName" {
9090
set $Property(settings,param) = $Get(%request.Data(param,1))
9191
}
9292

@@ -300,6 +300,20 @@ body {
300300
</div>
301301
</div>
302302

303+
<div class="form-group row mb-3">
304+
<label for="environmentName" class="offset-sm-1 col-sm-3 col-form-label" data-toggle="tooltip" data-placement="top" title="Environment Name">Environment Name</label>
305+
<div class="col-sm-7">
306+
<select class="form-control" id="environmentName" name="environmentName">
307+
<server>
308+
for envName = "TEST","DEVELOPMENT","LIVE","FAILOVER","" {
309+
// create option with envName, set selected if envName == current environmentName
310+
&html<<option #($CASE(envName, settings.environmentName: "selected", :""))# value=#(envName)#>#(envName)# </option>>
311+
}
312+
</server>
313+
</select>
314+
</div>
315+
</div>
316+
303317
<div class="form-group row mb-3">
304318
<label for="percentClassReplace" class="offset-sm-1 col-sm-3 col-form-label" data-toggle="tooltip" data-placement="top" title="Character(s) to replace '%' with for percent classes while exporting them out to the filesystem. By default, the '%' is removed.">'%' Replacement on Export</label>
305319
<div class="col-sm-7">

git-webui/release/share/git-webui/webui/css/git-webui.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -900,6 +900,11 @@ body {
900900
#workspace-view .diff-line-offset {
901901
cursor: pointer;
902902
}
903+
#environment {
904+
color: white;
905+
font-size: 1em;
906+
align-self: center;
907+
}
903908
#changedFilesContainer {
904909
max-width: 100% !important;
905910
margin: 0 10px;

git-webui/release/share/git-webui/webui/js/git-webui.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,14 @@ webui.SideBarView = function(mainView, noEventHandlers) {
606606
})
607607
}
608608

609+
self.getEnvironment = function() {
610+
$.get("api/environment", function(environment) {
611+
var env = JSON.parse(environment)["environment"];
612+
$("#environment").text(env)
613+
614+
});
615+
};
616+
609617
self.changeContextGet = function() {
610618
$.get("contexts", function(contextList) {
611619
var contexts = JSON.parse(contextList);
@@ -974,6 +982,7 @@ webui.SideBarView = function(mainView, noEventHandlers) {
974982
self.element = $( '<div id="sidebar">' +
975983
'<a href="#" data-toggle="modal" data-target="#help-modal"><img id="sidebar-logo" src="img/git-logo.png"></a>' +
976984
'<h5 id="packageVersion"></h5>' +
985+
'<h4 id="environment"></h4>'+
977986
'<div id="sidebar-content">' +
978987
'<section id="sidebar-workspace">' +
979988
'<h4>Workspace</h4>' +
@@ -1051,6 +1060,7 @@ webui.SideBarView = function(mainView, noEventHandlers) {
10511060
}
10521061

10531062
self.getPackageVersion();
1063+
self.getEnvironment()
10541064
self.fetchSection($("#sidebar-local-branches", self.element)[0], "Local Branches", "local-branches", "branch --verbose --verbose");
10551065
self.fetchSection($("#sidebar-remote-branches", self.element)[0], "Remote Branches", "remote-branches", "branch --remotes");
10561066
self.fetchSection($("#sidebar-tags", self.element)[0], "Tags", "tags", "tag");

git-webui/src/share/git-webui/webui/css/git-webui.less

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -883,6 +883,12 @@ body {
883883
}
884884
}
885885

886+
#environment {
887+
color:white;
888+
font-size: 1em;
889+
align-self: center;
890+
}
891+
886892
#changedFilesContainer {
887893
max-width: 100% !important;
888894
margin: 0 10px;

git-webui/src/share/git-webui/webui/js/git-webui.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,14 @@ webui.SideBarView = function(mainView, noEventHandlers) {
606606
})
607607
}
608608

609+
self.getEnvironment = function() {
610+
$.get("api/environment", function(environment) {
611+
var env = JSON.parse(environment)["environment"];
612+
$("#environment").text(env)
613+
614+
});
615+
};
616+
609617
self.changeContextGet = function() {
610618
$.get("contexts", function(contextList) {
611619
var contexts = JSON.parse(contextList);
@@ -974,6 +982,7 @@ webui.SideBarView = function(mainView, noEventHandlers) {
974982
self.element = $( '<div id="sidebar">' +
975983
'<a href="#" data-toggle="modal" data-target="#help-modal"><img id="sidebar-logo" src="img/git-logo.png"></a>' +
976984
'<h5 id="packageVersion"></h5>' +
985+
'<h4 id="environment"></h4>'+
977986
'<div id="sidebar-content">' +
978987
'<section id="sidebar-workspace">' +
979988
'<h4>Workspace</h4>' +
@@ -1051,6 +1060,7 @@ webui.SideBarView = function(mainView, noEventHandlers) {
10511060
}
10521061

10531062
self.getPackageVersion();
1063+
self.getEnvironment()
10541064
self.fetchSection($("#sidebar-local-branches", self.element)[0], "Local Branches", "local-branches", "branch --verbose --verbose");
10551065
self.fetchSection($("#sidebar-remote-branches", self.element)[0], "Remote Branches", "remote-branches", "branch --remotes");
10561066
self.fetchSection($("#sidebar-tags", self.element)[0], "Tags", "tags", "tag");

0 commit comments

Comments
 (0)