|
11 | 11 | <style type='text/css'>
|
12 | 12 | .error {
|
13 | 13 | color: red;
|
| 14 | + padding: 20px; |
14 | 15 | }
|
15 | 16 |
|
16 | 17 | body {
|
@@ -101,97 +102,105 @@ body {
|
101 | 102 | set homeURL = ##class(SourceControl.Git.WebUIDriver).GetHomeURL()
|
102 | 103 |
|
103 | 104 | set settings = ##class(SourceControl.Git.Settings).%New()
|
104 |
| - set remote = ##class(SourceControl.Git.Utils).GetRedactedRemote() |
105 |
| - /// After Save |
106 |
| - if (%request.Method="POST") && $Data(%request.Data("gitsettings",1)) { |
107 |
| - for param="gitUserName","gitUserEmail" { |
108 |
| - set $Property(settings,param) = $Get(%request.Data(param,1)) |
109 |
| - } |
110 |
| - if ('settings.settingsUIReadOnly) { |
111 |
| - for param="gitBinPath","namespaceTemp","privateKeyFile","pullEventClass","percentClassReplace", "defaultMergeBranch","environmentName" { |
| 105 | + try { |
| 106 | + /// After Save |
| 107 | + if (%request.Method="POST") && $Data(%request.Data("gitsettings",1)) { |
| 108 | + for param="gitUserName","gitUserEmail" { |
112 | 109 | set $Property(settings,param) = $Get(%request.Data(param,1))
|
113 | 110 | }
|
| 111 | + if ('settings.settingsUIReadOnly) { |
| 112 | + for param="gitBinPath","namespaceTemp","privateKeyFile","pullEventClass","percentClassReplace", "defaultMergeBranch","environmentName" { |
| 113 | + set $Property(settings,param) = $Get(%request.Data(param,1)) |
| 114 | + } |
114 | 115 |
|
115 |
| - if ($Get(%request.Data("mappedItemsReadOnly", 1)) = 1) { |
116 |
| - set settings.mappedItemsReadOnly = 1 |
117 |
| - } else { |
118 |
| - set settings.mappedItemsReadOnly = 0 |
119 |
| - } |
| 116 | + if ($Get(%request.Data("mappedItemsReadOnly", 1)) = 1) { |
| 117 | + set settings.mappedItemsReadOnly = 1 |
| 118 | + } else { |
| 119 | + set settings.mappedItemsReadOnly = 0 |
| 120 | + } |
120 | 121 |
|
121 |
| - set newRemote = $Get(%request.Data("remoteRepo",1)) |
122 |
| - // If entry was modified, set new remote repo |
123 |
| - if (newRemote '= ##class(SourceControl.Git.Utils).GetRedactedRemote()) { |
124 |
| - do ##class(SourceControl.Git.Utils).SetConfiguredRemote(newRemote) |
125 |
| - } |
| 122 | + set newRemote = $Get(%request.Data("remoteRepo",1)) |
| 123 | + // If entry was modified, set new remote repo |
| 124 | + if (newRemote '= ##class(SourceControl.Git.Utils).GetRedactedRemote()) { |
| 125 | + do ##class(SourceControl.Git.Utils).SetConfiguredRemote(newRemote) |
| 126 | + } |
126 | 127 |
|
127 |
| - set settings.compileOnImport = ($Get(%request.Data("compileOnImport", 1)) = 1) |
128 |
| - set settings.decomposeProductions = ($Get(%request.Data("decomposeProductions", 1)) = 1) |
129 |
| - set settings.decomposeProdAllowIDE = ($Get(%request.Data("decomposeProdAllowIDE", 1)) = 1) |
130 |
| - set settings.lockBranch = ($Get(%request.Data("lockBranch", 1)) = 1) |
131 |
| - |
132 |
| - if ($Get(%request.Data("basicMode", 1)) = 1) { |
133 |
| - set settings.basicMode = 1 |
134 |
| - } elseif ($Get(%request.Data("basicMode", 1)) = "system"){ |
135 |
| - set settings.basicMode = "system" |
136 |
| - } else { |
137 |
| - set settings.basicMode = 0 |
138 |
| - } |
| 128 | + set settings.compileOnImport = ($Get(%request.Data("compileOnImport", 1)) = 1) |
| 129 | + set settings.decomposeProductions = ($Get(%request.Data("decomposeProductions", 1)) = 1) |
| 130 | + set settings.decomposeProdAllowIDE = ($Get(%request.Data("decomposeProdAllowIDE", 1)) = 1) |
| 131 | + set settings.lockBranch = ($Get(%request.Data("lockBranch", 1)) = 1) |
| 132 | + |
| 133 | + if ($Get(%request.Data("basicMode", 1)) = 1) { |
| 134 | + set settings.basicMode = 1 |
| 135 | + } elseif ($Get(%request.Data("basicMode", 1)) = "system"){ |
| 136 | + set settings.basicMode = "system" |
| 137 | + } else { |
| 138 | + set settings.basicMode = 0 |
| 139 | + } |
139 | 140 |
|
140 |
| - if ($Get(%request.Data("systemBasicMode", 1)) = 1) { |
141 |
| - set settings.systemBasicMode = 1 |
142 |
| - } else { |
143 |
| - set settings.systemBasicMode = 0 |
144 |
| - } |
145 |
| - set i = 1 |
146 |
| - set param = "NoFolders" |
147 |
| - kill settings.Mappings |
148 |
| - |
149 |
| - while ( $Data(%request.Data("MappingsExt",i)) ){ |
150 |
| - if ($get(%request.Data("MappingsExt",i)) '= "") { |
151 |
| - if ($Get(%request.Data(param,i)) = "NoFolders"){ |
152 |
| - set settings.Mappings($Get(%request.Data("MappingsExt",i)), $Get(%request.Data("MappingsCov",i)), $Get(%request.Data(param,i))) = 1 |
153 |
| - } |
154 |
| - set settings.Mappings($Get(%request.Data("MappingsExt",i)), $Get(%request.Data("MappingsCov",i))) = $Get(%request.Data("MappingsPath",i)) |
155 |
| - } |
156 |
| - set i = i+1 |
157 |
| - } |
| 141 | + if ($Get(%request.Data("systemBasicMode", 1)) = 1) { |
| 142 | + set settings.systemBasicMode = 1 |
| 143 | + } else { |
| 144 | + set settings.systemBasicMode = 0 |
| 145 | + } |
| 146 | + set i = 1 |
| 147 | + set param = "NoFolders" |
| 148 | + kill settings.Mappings |
| 149 | + |
| 150 | + while ( $Data(%request.Data("MappingsExt",i)) ){ |
| 151 | + if ($get(%request.Data("MappingsExt",i)) '= "") { |
| 152 | + if ($Get(%request.Data(param,i)) = "NoFolders"){ |
| 153 | + set settings.Mappings($Get(%request.Data("MappingsExt",i)), $Get(%request.Data("MappingsCov",i)), $Get(%request.Data(param,i))) = 1 |
| 154 | + } |
| 155 | + set settings.Mappings($Get(%request.Data("MappingsExt",i)), $Get(%request.Data("MappingsCov",i))) = $Get(%request.Data("MappingsPath",i)) |
| 156 | + } |
| 157 | + set i = i+1 |
| 158 | + } |
158 | 159 |
|
159 |
| - set i = 1 |
160 |
| - set contexts = [] |
| 160 | + set i = 1 |
| 161 | + set contexts = [] |
161 | 162 |
|
162 |
| - while ( $Data(%request.Data("favNamespace",i)) ){ |
163 |
| - if ($Get(%request.Data("favNamespace",i)) '= "") { |
164 |
| - do contexts.%Push($Get(%request.Data("favNamespace",i))) |
165 |
| - } |
166 |
| - set i = i+1 |
167 |
| - } |
| 163 | + while ( $Data(%request.Data("favNamespace",i)) ){ |
| 164 | + if ($Get(%request.Data("favNamespace",i)) '= "") { |
| 165 | + do contexts.%Push($Get(%request.Data("favNamespace",i))) |
| 166 | + } |
| 167 | + set i = i+1 |
| 168 | + } |
168 | 169 |
|
169 |
| - set settings.favoriteNamespaces = contexts |
| 170 | + set settings.favoriteNamespaces = contexts |
170 | 171 |
|
171 |
| - if ($get(%request.Data("proxySubmitButton",1)) = "saveDefaults") { |
172 |
| - do settings.SaveDefaults() |
| 172 | + if ($get(%request.Data("proxySubmitButton",1)) = "saveDefaults") { |
| 173 | + do settings.SaveDefaults() |
| 174 | + } |
173 | 175 | }
|
174 |
| - } |
175 |
| - set err = "" |
176 |
| - try { |
177 |
| - set buffer = ##class(SourceControl.Git.Util.Buffer).%New() |
178 |
| - do buffer.BeginCaptureOutput() |
179 |
| - $$$ThrowOnError(settings.SaveWithSourceControl()) |
180 |
| - do buffer.EndCaptureOutput(.out) |
181 |
| - if (out '= "") { |
182 |
| - &html<<div class="alert alert-primary"> |
183 |
| - <div>#(..EscapeHTML(out))#</div> |
184 |
| - </div>> |
| 176 | + set err = "" |
| 177 | + try { |
| 178 | + set buffer = ##class(SourceControl.Git.Util.Buffer).%New() |
| 179 | + do buffer.BeginCaptureOutput() |
| 180 | + $$$ThrowOnError(settings.SaveWithSourceControl()) |
| 181 | + do buffer.EndCaptureOutput(.out) |
| 182 | + if (out '= "") { |
| 183 | + &html<<div class="alert alert-primary"> |
| 184 | + <div>#(..EscapeHTML(out))#</div> |
| 185 | + </div>> |
| 186 | + } |
| 187 | + } catch err { |
| 188 | + kill buffer |
| 189 | + throw err |
185 | 190 | }
|
186 |
| - } catch err { |
187 |
| - kill buffer |
188 |
| - do err.Log() |
189 |
| - &html<<div class="alert alert-danger">An error occurred and has been logged to the application error log.</div>> |
| 191 | + set successfullySavedSettings = 1 |
190 | 192 | }
|
| 193 | + set remote = ##class(SourceControl.Git.Utils).GetRedactedRemote() |
| 194 | + if (remote'="") && (##class(SourceControl.Git.Utils).RunGitCommandWithInput("ls-remote",,.errStream,,"origin")'=0) { |
| 195 | + set remoteConnectionError = errStream.Read() |
| 196 | + } |
| 197 | +} catch err { |
| 198 | + do err.Log() |
| 199 | + &html<<div class="error alert-danger">An error occurred and has been logged to the application error log.</div>> |
191 | 200 | }
|
192 | 201 | </server>
|
193 | 202 | <div class = 'container'>
|
194 |
| - <csp:if condition='$D(%request.Data("gitsettings",1)) && (##class(SourceControl.Git.Utils).NeedSettings() = 0)'> |
| 203 | + <csp:if condition='$get(successfullySavedSettings) && (##class(SourceControl.Git.Utils).NeedSettings() = 0)'> |
195 | 204 | <div class = "alert">
|
196 | 205 | <span class="closebtn" onclick="this.parentElement.style.display='none';">×</span>
|
197 | 206 | <strong>Success!</strong> Your changes have been saved.
|
@@ -318,7 +327,7 @@ body {
|
318 | 327 | set placeholder = $Select($system.Version.GetOS()="Windows":"(e.g. C:\Users\ExampleUser\.ssh\id_rsa)",
|
319 | 328 | 1:"(e.g., /home/user/.ssh/id_rsa)")
|
320 | 329 | </server>
|
321 |
| - <input type="text" class="#(class)#" id="privateKeyFile" name="privateKeyFile" value='#(..EscapeHTML(settings.privateKeyFile))#' placeholder=#(placeholder)#/> |
| 330 | + <input type="text" class="#(class)#" id="privateKeyFile" name="privateKeyFile" value='#(..EscapeHTML(settings.privateKeyFile))#' placeholder="#(..EscapeHTML(placeholder))#"/> |
322 | 331 | <div class = "#(divClass)#">
|
323 | 332 | #(feedbackText)#
|
324 | 333 | <pre id="sshOutput"></pre>
|
@@ -416,12 +425,18 @@ body {
|
416 | 425 | </div>
|
417 | 426 |
|
418 | 427 | <div class="form-group row mb-3">
|
419 |
| - <label for="remoteRepo" class="offset-sm-1 col-sm-3 col-form-label" data-toggle="tooltip" data-placement="top" title="Url to Remote repository"><b>Remote Repository</b></label> |
| 428 | + <label for="remoteRepo" class="offset-sm-1 col-sm-3 col-form-label" data-toggle="tooltip" data-placement="top" title="Url to Remote repository (origin)"><b>Remote Repository</b></label> |
420 | 429 | <div class="col-sm-7">
|
421 |
| - <input type="text" class="form-control" id="remoteRepo" name="remoteRepo" value='#(..EscapeHTML(remote))#' placeholder="ex. git@github.com:User/UserRepo.git"/> |
| 430 | + <input type="text" class='form-control #($select($get(remote)="":"",$get(remoteConnectionError)="":"is-valid",1:"is-invalid"))#' id="remoteRepo" name="remoteRepo" value='#(..EscapeHTML($get(remote)))#' placeholder="e.g. git@github.com:User/UserRepo.git"/> |
422 | 431 | <div class = "neutral-feedback">
|
423 | 432 | (Username is redacted)
|
424 | 433 | </div>
|
| 434 | + <div class="invalid-feedback"> |
| 435 | + Unable to contact remote: #(..EscapeHTML($get(remoteConnectionError)))# |
| 436 | + </div> |
| 437 | + <div class="valid-feedback"> |
| 438 | + Connection successful |
| 439 | + </div> |
425 | 440 | </div>
|
426 | 441 | </div>
|
427 | 442 |
|
|
0 commit comments