* Direct avatar rendering This adds new template helpers for avatar rendering which output image elements with direct links to avatars which makes them cacheable by the browsers. This should be a major performance improvment for pages with many avatars. * fix avatars of other user's profile pages * fix top border on user avatar name * uncircle avatars * remove old incomplete avatar selector * use title attribute for name and add it back on blame * minor refactor * tweak comments * fix url path join and adjust test to new result * dedupe functions
		
			
				
	
	
		
			70 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Handlebars
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Handlebars
		
	
	
	
	
	
| {{template "base/head" .}}
 | |
| <div class="page-content repository new repo">
 | |
| 	<div class="ui middle very relaxed page grid">
 | |
| 		<div class="column">
 | |
| 			<form class="ui form" action="{{.Link}}" method="post">
 | |
| 				{{.CsrfTokenHtml}}
 | |
| 				<h3 class="ui top attached header">
 | |
| 					{{.i18n.Tr "new_project"}}
 | |
| 				</h3>
 | |
| 				<div class="ui attached segment">
 | |
| 					{{template "base/alert" .}}
 | |
| 					<div class="inline required field {{if .Err_Owner}}error{{end}}">
 | |
| 						<label>{{.i18n.Tr "repo.owner"}}</label>
 | |
| 						<div class="ui selection owner dropdown">
 | |
| 							<input type="hidden" id="uid" name="uid" value="{{.ContextUser.ID}}" required>
 | |
| 							<span class="text" title="{{.ContextUser.Name}}">
 | |
| 								{{avatar .ContextUser 28 "mini"}}
 | |
| 								{{.ContextUser.ShortName 20}}
 | |
| 							</span>
 | |
| 							{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | |
| 							<div class="menu">
 | |
| 								<div class="item" data-value="{{.SignedUser.ID}}" title="{{.SignedUser.Name}}">
 | |
| 									{{avatar .SignedUser 28 "mini"}}
 | |
| 									{{.SignedUser.ShortName 20}}
 | |
| 								</div>
 | |
| 								{{range .Orgs}}
 | |
| 								<div class="item" data-value="{{.ID}}" title="{{.Name}}">
 | |
| 									{{avatar . 28 "mini"}}
 | |
| 									{{.ShortName 20}}
 | |
| 								</div>
 | |
| 								{{end}}
 | |
| 							</div>
 | |
| 						</div>
 | |
| 					</div>
 | |
| 
 | |
| 					<div class="inline field {{if .Err_Title}}error{{end}}">
 | |
| 						<label>{{.i18n.Tr "repo.projects.title"}}</label>
 | |
| 						<input name="title" placeholder="{{.i18n.Tr "repo.projects.title"}}" value="{{.title}}" autofocus required>
 | |
| 					</div>
 | |
| 					<div class="inline field">
 | |
| 						<label>{{.i18n.Tr "repo.projects.desc"}}</label>
 | |
| 						<textarea name="content">{{.content}}</textarea>
 | |
| 					</div>
 | |
| 
 | |
| 					<div class="inline field">
 | |
| 						<label>{{.i18n.Tr "repo.projects.template.desc"}}</label>
 | |
| 						<div class="ui selection dropdown">
 | |
| 							<input type="hidden" name="board_type" value="{{.type}}">
 | |
| 							<div class="default text">{{.i18n.Tr "repo.projects.template.desc_helper"}}</div>
 | |
| 							<div class="menu">
 | |
| 								{{range $element := .ProjectTypes}}
 | |
| 								<div class="item" data-id="{{$element.BoardType}}" data-value="{{$element.BoardType}}">{{$.i18n.Tr $element.Translation}}</div>
 | |
| 								{{end}}
 | |
| 							</div>
 | |
| 						</div>
 | |
| 					</div>
 | |
| 
 | |
| 					<div class="inline field">
 | |
| 						<label></label>
 | |
| 						<button class="ui green button">
 | |
| 							{{.i18n.Tr "repo.projects.create" }}
 | |
| 						</button>
 | |
| 						<a class="ui button" href="{{AppSubUrl}}/">{{.i18n.Tr "cancel"}}</a>
 | |
| 					</div>
 | |
| 				</div>
 | |
| 			</form>
 | |
| 		</div>
 | |
| 	</div>
 | |
| </div>
 | |
| {{template "base/footer" .}}
 |