mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	Fix and improve repo visibility checkbox when FORCE_PRIVATE is on (#3786)
This was [implemented](022820103d) almost 10 years ago in Gogs.
It was using `readonly` attribute instead of `disabled` on checkbox which was doing nothing. According to [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly), `readonly` attribute is not applicable to checkbox inputs. This bug was reported by mrwusel in Matrix room.
Fork page that has similar UI feature did not have this bug.
- replace `readonly` with `disabled`
- do not put info about the restriction directly into the checkbox title
### Before

### After

### In other case

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/3786
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
	
	
This commit is contained in:
		
					parent
					
						
							
								cb551effb9
							
						
					
				
			
			
				commit
				
					
						fc0c5e80da
					
				
			
		
					 9 changed files with 98 additions and 63 deletions
				
			
		|  | @ -49,14 +49,17 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
|  |  | |||
|  | @ -88,14 +88,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -62,14 +62,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -104,14 +104,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -100,14 +100,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}} checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -102,14 +102,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -99,14 +99,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -102,14 +102,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}} checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
|  | @ -88,14 +88,18 @@ | |||
| 					<div class="inline field"> | ||||
| 						<label>{{ctx.Locale.Tr "repo.visibility"}}</label> | ||||
| 						<div class="ui checkbox"> | ||||
| 							{{if .IsForcedPrivate}} | ||||
| 								<input name="private" type="checkbox" checked readonly> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</label> | ||||
| 							{{else}} | ||||
| 								<input name="private" type="checkbox" {{if .private}}checked{{end}}> | ||||
| 								<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 							{{end}} | ||||
| 							<input name="private" type="checkbox" | ||||
| 								{{if .IsForcedPrivate}} | ||||
| 									checked disabled | ||||
| 								{{else}} | ||||
| 									{{if .private}}checked{{end}} | ||||
| 								{{end}}> | ||||
| 							<label>{{ctx.Locale.Tr "repo.visibility_helper"}}</label> | ||||
| 						</div> | ||||
| 						{{if .IsForcedPrivate}} | ||||
| 							<span class="help">{{ctx.Locale.Tr "repo.visibility_helper_forced"}}</span> | ||||
| 						{{end}} | ||||
| 						<span class="help">{{ctx.Locale.Tr "repo.visibility_description"}}</span> | ||||
| 					</div> | ||||
| 					<div class="inline field {{if .Err_Description}}error{{end}}"> | ||||
| 						<label for="description">{{ctx.Locale.Tr "repo.repo_desc"}}</label> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue