mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	new UI on admin/monitor
This commit is contained in:
		
							
								
								
									
										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">
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user