|
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