new UI on admin/monitor
This commit is contained in:
		
							parent
							
								
									6fdc881bd4
								
							
						
					
					
						commit
						81b8427438
					
				
					 9 changed files with 196 additions and 144 deletions
				
			
		
							
								
								
									
										11
									
								
								cmd/web.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								cmd/web.go
									
									
									
									
									
								
							|  | @ -12,7 +12,6 @@ import ( | |||
| 	"net/http" | ||||
| 	"net/http/fcgi" | ||||
| 	"os" | ||||
| 	"os/signal" | ||||
| 	"path" | ||||
| 	"strings" | ||||
| 
 | ||||
|  | @ -531,16 +530,6 @@ func runWeb(ctx *cli.Context) { | |||
| 	// Not found handler.
 | ||||
| 	m.NotFound(routers.NotFound) | ||||
| 
 | ||||
| 	// Detect kill signal.
 | ||||
| 	c := make(chan os.Signal, 1) | ||||
| 	signal.Notify(c, os.Interrupt) | ||||
| 	go func() { | ||||
| 		for _ = range c { | ||||
| 			fmt.Println("Kill signal detected, exiting now...") | ||||
| 			os.Exit(0) | ||||
| 		} | ||||
| 	}() | ||||
| 
 | ||||
| 	// Flag for port number in case first time run conflict.
 | ||||
| 	if ctx.IsSet("port") { | ||||
| 		setting.AppUrl = strings.Replace(setting.AppUrl, setting.HttpPort, ctx.String("port"), 1) | ||||
|  |  | |||
|  | @ -235,6 +235,26 @@ | |||
| 		"outputPathIsSetByUser": 0, | ||||
| 		"processed": 1 | ||||
| 		}, | ||||
| 	"\/public\/less\/_admin.less": { | ||||
| 		"allowInsecureImports": 0, | ||||
| 		"createSourceMap": 0, | ||||
| 		"disableJavascript": 0, | ||||
| 		"fileType": 1, | ||||
| 		"ieCompatibility": 1, | ||||
| 		"ignore": 1, | ||||
| 		"ignoreWasSetByUser": 0, | ||||
| 		"inputAbbreviatedPath": "\/public\/less\/_admin.less", | ||||
| 		"outputAbbreviatedPath": "\/public\/css\/_admin.css", | ||||
| 		"outputPathIsOutsideProject": 0, | ||||
| 		"outputPathIsSetByUser": 0, | ||||
| 		"outputStyle": 0, | ||||
| 		"relativeURLS": 0, | ||||
| 		"shouldRunAutoprefixer": 0, | ||||
| 		"shouldRunBless": 0, | ||||
| 		"strictImports": 0, | ||||
| 		"strictMath": 0, | ||||
| 		"strictUnits": 0 | ||||
| 		}, | ||||
| 	"\/public\/less\/_base.less": { | ||||
| 		"allowInsecureImports": 0, | ||||
| 		"createSourceMap": 0, | ||||
|  |  | |||
|  | @ -58,4 +58,8 @@ If you see the following error: | |||
| checkVersion()] [E] Binary and template file version does not match | ||||
| ``` | ||||
| 
 | ||||
| Run `rm -fr /var/gogs/gogs/templates/` should fix this it. Just remember to backup templates file if you have made modifications youself. | ||||
| Run `rm -fr /var/gogs/gogs/templates/` should fix this it. Just remember to backup templates file if you have made modifications youself. | ||||
| 
 | ||||
| ## Known Issues | ||||
| 
 | ||||
| - [Use ctrl+c when clone through SSH makes Docker exit unexpectedly](https://github.com/gogits/gogs/issues/1499) | ||||
							
								
								
									
										2
									
								
								public/css/gogs.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								public/css/gogs.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										18
									
								
								public/less/_admin.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								public/less/_admin.less
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,18 @@ | |||
| .admin { | ||||
| 	padding-top: 15px; | ||||
| 	padding-bottom: @footer-margin * 3; | ||||
| 
 | ||||
| 	.table.segment { | ||||
| 		padding: 0; | ||||
| 		font-size: 13px; | ||||
| 		th { | ||||
| 			padding-top: 5px; | ||||
| 			padding-bottom: 5px; | ||||
| 		} | ||||
| 		th, td { | ||||
| 			&:first-child { | ||||
| 				padding-left: 15px; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | @ -4,4 +4,5 @@ | |||
| @import "_home"; | ||||
| @import "_install"; | ||||
| @import "_form"; | ||||
| @import "_repository"; | ||||
| @import "_repository"; | ||||
| @import "_admin"; | ||||
|  | @ -1,74 +1,65 @@ | |||
| {{template "ng/base/head" .}} | ||||
| {{template "ng/base/header" .}} | ||||
| <div id="admin-wrapper"> | ||||
|     <div id="setting-wrapper" class="main-wrapper"> | ||||
|         <div id="admin-setting" class="container clear"> | ||||
|             {{template "admin/nav" .}} | ||||
|             <div class="grid-4-5 left"> | ||||
|                 <div class="setting-content"> | ||||
|                     {{template "ng/base/alert" .}} | ||||
|                     <div id="setting-content"> | ||||
|                         <div class="panel panel-radius"> | ||||
|                             <div class="panel-header"> | ||||
|                                 <strong>{{.i18n.Tr "admin.monitor.cron"}}</strong> | ||||
|                             </div> | ||||
|                             <div class="panel-body admin-panel"> | ||||
|                                 <table class="table table-striped"> | ||||
|                                     <thead> | ||||
|                                         <tr> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.name"}}</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.schedule"}}</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.next"}}</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.previous"}}</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.execute_times"}}</th> | ||||
|                                         </tr> | ||||
|                                     </thead> | ||||
|                                     <tbody> | ||||
|                                         {{range .Entries}} | ||||
|                                         <tr> | ||||
|                                             <td>{{.Description}}</td> | ||||
|                                             <td>{{.Spec}}</td> | ||||
|                                             <td>{{.Next}}</td> | ||||
|                                             <td>{{.Prev}}</td> | ||||
|                                             <td>{{.ExecTimes}}</td> | ||||
|                                         </tr> | ||||
|                                         {{end}} | ||||
|                                     </tbody> | ||||
|                                 </table> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                         <br> | ||||
|                         <div class="panel panel-radius"> | ||||
|                             <div class="panel-header"> | ||||
|                                 <strong>{{.i18n.Tr "admin.monitor.process"}}</strong> | ||||
|                             </div> | ||||
|                             <div class="panel-body admin-panel"> | ||||
|                                 <table class="table table-striped"> | ||||
|                                     <thead> | ||||
|                                         <tr> | ||||
|                                             <th>Pid</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.desc"}}</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.start"}}</th> | ||||
|                                             <th>{{.i18n.Tr "admin.monitor.execute_time"}}</th> | ||||
|                                         </tr> | ||||
|                                     </thead> | ||||
|                                     <tbody> | ||||
|                                         {{range .Processes}} | ||||
|                                         <tr> | ||||
|                                             <td>{{.Pid}}</td> | ||||
|                                             <td>{{.Description}}</td> | ||||
|                                             <td>{{.Start}}</td> | ||||
|                                             <td>{{TimeSince .Start $.Lang}}</td> | ||||
|                                         </tr> | ||||
|                                         {{end}} | ||||
|                                     </tbody> | ||||
|                                 </table> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
| {{template "base/head" .}} | ||||
| <div class="admin monitor"> | ||||
|   <div class="ui container"> | ||||
|     <div class="ui grid"> | ||||
|       {{template "admin/navbar" .}} | ||||
|       <div class="twelve wide column content"> | ||||
|         {{template "base/alert" .}} | ||||
|         <h4 class="ui top attached header"> | ||||
|           {{.i18n.Tr "admin.monitor.cron"}} | ||||
|         </h4> | ||||
|         <div class="ui attached table segment"> | ||||
|           <table class="ui very basic striped table"> | ||||
|             <thead> | ||||
|               <tr> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.name"}}</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.schedule"}}</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.next"}}</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.previous"}}</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.execute_times"}}</th> | ||||
|               </tr> | ||||
|             </thead> | ||||
|             <tbody> | ||||
|               {{range .Entries}} | ||||
|               <tr> | ||||
|                 <td>{{.Description}}</td> | ||||
|                 <td>{{.Spec}}</td> | ||||
|                 <td>{{DateFmtLong .Next}}</td> | ||||
|                 <td>{{if gt .Prev.Year 1 }}{{DateFmtLong .Prev}}{{else}}N/A{{end}}</td> | ||||
|                 <td>{{.ExecTimes}}</td> | ||||
|               </tr> | ||||
|               {{end}} | ||||
|             </tbody> | ||||
|           </table> | ||||
|         </div> | ||||
| 
 | ||||
|         <h4 class="ui top attached header"> | ||||
|           {{.i18n.Tr "admin.monitor.process"}} | ||||
|         </h4> | ||||
|         <div class="ui attached table segment"> | ||||
|           <table class="ui very basic striped table"> | ||||
|             <thead> | ||||
|               <tr> | ||||
|                 <th>Pid</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.desc"}}</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.start"}}</th> | ||||
|                 <th>{{.i18n.Tr "admin.monitor.execute_time"}}</th> | ||||
|               </tr> | ||||
|             </thead> | ||||
|             <tbody> | ||||
|               {{range .Processes}} | ||||
|               <tr> | ||||
|                 <td>{{.Pid}}</td> | ||||
|                 <td>{{.Description}}</td> | ||||
|                 <td>{{DateFmtLong .Start}}</td> | ||||
|                 <td>{{TimeSince .Start $.Lang}}</td> | ||||
|               </tr> | ||||
|               {{end}} | ||||
|             </tbody> | ||||
|           </table> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| </div> | ||||
| {{template "ng/base/footer" .}} | ||||
| {{template "base/footer" .}} | ||||
							
								
								
									
										29
									
								
								templates/admin/navbar.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								templates/admin/navbar.tmpl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | |||
| <div class="four wide column"> | ||||
| 	<div class="ui vertical menu"> | ||||
| 		<div class="header item">{{.i18n.Tr "admin_panel"}}</div> | ||||
| 	  <a class="{{if .PageIsAdminDashboard}}active{{end}} item" href="{{AppSubUrl}}/admin"> | ||||
| 	    {{.i18n.Tr "admin.dashboard"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminUsers}}active{{end}} item" href="{{AppSubUrl}}/admin/users"> | ||||
| 	    {{.i18n.Tr "admin.users"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminOrganizations}}active{{end}} item" href="{{AppSubUrl}}/admin/orgs"> | ||||
| 	    {{.i18n.Tr "admin.organizations"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminRepositories}}active{{end}} item" href="{{AppSubUrl}}/admin/repos"> | ||||
| 	    {{.i18n.Tr "admin.repositories"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminAuthentications}}active{{end}} item" href="{{AppSubUrl}}/admin/auths"> | ||||
| 	    {{.i18n.Tr "admin.authentication"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminConfig}}active{{end}} item" href="{{AppSubUrl}}/admin/config"> | ||||
| 	    {{.i18n.Tr "admin.config"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminNotices}}active{{end}} item" href="{{AppSubUrl}}/admin/notices"> | ||||
| 	    {{.i18n.Tr "admin.notices"}} | ||||
| 	  </a> | ||||
| 	  <a class="{{if .PageIsAdminMonitor}}active{{end}} item" href="{{AppSubUrl}}/admin/monitor"> | ||||
| 	    {{.i18n.Tr "admin.monitor"}} | ||||
| 	  </a> | ||||
| 	</div> | ||||
| </div> | ||||
|  | @ -2,73 +2,73 @@ | |||
| <div class="repository settings"> | ||||
| 	{{template "repo/header" .}} | ||||
| 	<div class="ui container"> | ||||
| 	<div class="ui grid"> | ||||
| 		{{template "repo/settings/navbar" .}} | ||||
| 		<div class="twelve wide column content"> | ||||
| 			{{template "base/alert" .}} | ||||
| 			<h4 class="ui top attached header"> | ||||
| 			  {{.i18n.Tr "repo.settings.deploy_keys"}} | ||||
| 			  <div class="ui right"> | ||||
| 			  	<div id="add-deploy-key" class="ui blue tiny button">{{.i18n.Tr "repo.settings.add_deploy_key"}}</div> | ||||
| 			  </div> | ||||
| 			</h4> | ||||
| 			<div class="ui attached segment"> | ||||
| 				{{if .Deploykeys}} | ||||
| 				<div class="ui key list"> | ||||
| 					{{range .Deploykeys}} | ||||
| 					<div class="item ui grid"> | ||||
| 						<div class="one wide column"> | ||||
| 							<i class="ssh-key-state-indicator fa fa-circle{{if .HasRecentActivity}} active invert poping up{{else}}-o{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}></i> | ||||
| 						</div> | ||||
| 						<div class="one wide column"> | ||||
| 							<i class="mega-octicon octicon-key left"></i> | ||||
| 						</div> | ||||
| 						<div class="eleven wide column"> | ||||
| 							<strong>{{.Name}}</strong> | ||||
| 							<div class="print meta"> | ||||
| 								{{.Fingerprint}} | ||||
| 							</div> | ||||
| 							<div class="activity meta"> | ||||
| 								<i>{{$.i18n.Tr "settings.add_on"}} <span>{{DateFmtShort .Created}}</span> —  <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span>{{DateFmtShort .Updated}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> | ||||
| 							</div> | ||||
| 						</div> | ||||
| 						<div class="two wide column"> | ||||
| 							<button class="ui red tiny button delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}"> | ||||
| 								{{$.i18n.Tr "settings.delete_key"}} | ||||
| 							</button> | ||||
| 						</div> | ||||
| 					</div> | ||||
| 					{{end}} | ||||
| 				</div> | ||||
| 				{{else}} | ||||
| 				{{.i18n.Tr "repo.settings.no_deploy_keys"}} | ||||
| 				{{end}} | ||||
| 			</div> | ||||
| 			<br> | ||||
| 			<div {{if not .HasError}}class="hide"{{end}} id="add-deploy-key-panel"> | ||||
| 		<div class="ui grid"> | ||||
| 			{{template "repo/settings/navbar" .}} | ||||
| 			<div class="twelve wide column content"> | ||||
| 				{{template "base/alert" .}} | ||||
| 				<h4 class="ui top attached header"> | ||||
| 					{{.i18n.Tr "repo.settings.add_deploy_key"}} | ||||
| 				  {{.i18n.Tr "repo.settings.deploy_keys"}} | ||||
| 				  <div class="ui right"> | ||||
| 				  	<div id="add-deploy-key" class="ui blue tiny button">{{.i18n.Tr "repo.settings.add_deploy_key"}}</div> | ||||
| 				  </div> | ||||
| 				</h4> | ||||
| 				<div class="ui attached segment"> | ||||
| 					<form class="ui form" action="{{.Link}}" method="post"> | ||||
| 						{{.CsrfTokenHtml}} | ||||
| 						<div class="field {{if .Err_Title}}error{{end}}"> | ||||
| 							<label>{{.i18n.Tr "repo.settings.title"}}</label> | ||||
| 							<input name="title" value="{{.title}}" autofocus required> | ||||
| 					{{if .Deploykeys}} | ||||
| 					<div class="ui key list"> | ||||
| 						{{range .Deploykeys}} | ||||
| 						<div class="item ui grid"> | ||||
| 							<div class="one wide column"> | ||||
| 								<i class="ssh-key-state-indicator fa fa-circle{{if .HasRecentActivity}} active invert poping up{{else}}-o{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}></i> | ||||
| 							</div> | ||||
| 							<div class="one wide column"> | ||||
| 								<i class="mega-octicon octicon-key left"></i> | ||||
| 							</div> | ||||
| 							<div class="eleven wide column"> | ||||
| 								<strong>{{.Name}}</strong> | ||||
| 								<div class="print meta"> | ||||
| 									{{.Fingerprint}} | ||||
| 								</div> | ||||
| 								<div class="activity meta"> | ||||
| 									<i>{{$.i18n.Tr "settings.add_on"}} <span>{{DateFmtShort .Created}}</span> —  <i class="octicon octicon-info"></i> {{if .HasUsed}}{{$.i18n.Tr "settings.last_used"}} <span>{{DateFmtShort .Updated}}</span>{{else}}{{$.i18n.Tr "settings.no_activity"}}{{end}}</i> | ||||
| 								</div> | ||||
| 							</div> | ||||
| 							<div class="two wide column"> | ||||
| 								<button class="ui red tiny button delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}"> | ||||
| 									{{$.i18n.Tr "settings.delete_key"}} | ||||
| 								</button> | ||||
| 							</div> | ||||
| 						</div> | ||||
| 						<div class="field {{if .Err_Content}}error{{end}}"> | ||||
| 							<label>{{.i18n.Tr "repo.settings.deploy_key_content"}}</label> | ||||
| 							<textarea name="content" required>{{.content}}</textarea> | ||||
| 						</div> | ||||
| 						<button class="ui green button"> | ||||
| 							{{.i18n.Tr "repo.settings.add_deploy_key"}} | ||||
| 						</button> | ||||
| 					</form> | ||||
| 						{{end}} | ||||
| 					</div> | ||||
| 					{{else}} | ||||
| 					{{.i18n.Tr "repo.settings.no_deploy_keys"}} | ||||
| 					{{end}} | ||||
| 				</div> | ||||
| 				<br> | ||||
| 				<div {{if not .HasError}}class="hide"{{end}} id="add-deploy-key-panel"> | ||||
| 					<h4 class="ui top attached header"> | ||||
| 						{{.i18n.Tr "repo.settings.add_deploy_key"}} | ||||
| 					</h4> | ||||
| 					<div class="ui attached segment"> | ||||
| 						<form class="ui form" action="{{.Link}}" method="post"> | ||||
| 							{{.CsrfTokenHtml}} | ||||
| 							<div class="field {{if .Err_Title}}error{{end}}"> | ||||
| 								<label>{{.i18n.Tr "repo.settings.title"}}</label> | ||||
| 								<input name="title" value="{{.title}}" autofocus required> | ||||
| 							</div> | ||||
| 							<div class="field {{if .Err_Content}}error{{end}}"> | ||||
| 								<label>{{.i18n.Tr "repo.settings.deploy_key_content"}}</label> | ||||
| 								<textarea name="content" required>{{.content}}</textarea> | ||||
| 							</div> | ||||
| 							<button class="ui green button"> | ||||
| 								{{.i18n.Tr "repo.settings.add_deploy_key"}} | ||||
| 							</button> | ||||
| 						</form> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	</div> | ||||
| </div> | ||||
| 
 | ||||
| <div class="ui small basic delete modal"> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue