Enforce tab indentation in templates (#15289)
* Enforce tab indendation in templates This adds editorconfig-checker [1] to lint the template files so they conform the editorconfig files. I fixed all current identation issues using the fix mode of eclint [2] and some manual corrections. We can extend this linting to other files later, for now I'd like this PR to focus on HTML template files only. [1] https://github.com/editorconfig-checker/editorconfig-checker [2] https://github.com/jedmao/eclint * fix indendation Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
							parent
							
								
									0c77e0791c
								
							
						
					
					
						commit
						d848098f60
					
				
					 67 changed files with 678 additions and 609 deletions
				
			
		| 
						 | 
				
			
			@ -12,6 +12,12 @@ insert_final_newline = true
 | 
			
		|||
[*.{go,tmpl,html}]
 | 
			
		||||
indent_style = tab
 | 
			
		||||
 | 
			
		||||
[templates/custom/*.tmpl]
 | 
			
		||||
insert_final_newline = false
 | 
			
		||||
 | 
			
		||||
[templates/swagger/v1_json.tmpl]
 | 
			
		||||
indent_style = space
 | 
			
		||||
 | 
			
		||||
[Makefile]
 | 
			
		||||
indent_style = tab
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -325,6 +325,7 @@ lint: lint-frontend lint-backend
 | 
			
		|||
lint-frontend: node_modules
 | 
			
		||||
	npx eslint --color --max-warnings=0 web_src/js build templates *.config.js
 | 
			
		||||
	npx stylelint --color --max-warnings=0 web_src/less
 | 
			
		||||
	npx editorconfig-checker templates
 | 
			
		||||
 | 
			
		||||
.PHONY: lint-backend
 | 
			
		||||
lint-backend: golangci-lint revive vet
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										70
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										70
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -1570,6 +1570,32 @@
 | 
			
		|||
      "resolved": "https://registry.npmjs.org/add-asset-webpack-plugin/-/add-asset-webpack-plugin-2.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-Hx9EKnirCUfdh684y1yhx8QOFolpkIG2VRHHgNm8wFy1Cf7P3RGwS678hoN7Y1XvZRPpVXWa+6QnfL/2i0CMCA=="
 | 
			
		||||
    },
 | 
			
		||||
    "agent-base": {
 | 
			
		||||
      "version": "6.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "debug": "4"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": {
 | 
			
		||||
          "version": "4.3.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
 | 
			
		||||
          "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
 | 
			
		||||
          "dev": true,
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "ms": "2.1.2"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "ms": {
 | 
			
		||||
          "version": "2.1.2",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 | 
			
		||||
          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "aggregate-error": {
 | 
			
		||||
      "version": "3.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
 | 
			
		||||
| 
						 | 
				
			
			@ -3388,6 +3414,17 @@
 | 
			
		|||
        "safer-buffer": "^2.1.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "editorconfig-checker": {
 | 
			
		||||
      "version": "4.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/editorconfig-checker/-/editorconfig-checker-4.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-tUI7ABIzMB1kfwTUQmX+gaZGCMNuUgGuRHJ+Xu4Tk9T8lV8Vy5w/EaQsSZ7NKrOgLxbekptw6MUgrzHTvhceLw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "https-proxy-agent": "^5.0.0",
 | 
			
		||||
        "node-fetch": "^2.6.0",
 | 
			
		||||
        "tar": "^6.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "electron-to-chromium": {
 | 
			
		||||
      "version": "1.3.707",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.707.tgz",
 | 
			
		||||
| 
						 | 
				
			
			@ -4936,6 +4973,33 @@
 | 
			
		|||
        "sshpk": "^1.7.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "https-proxy-agent": {
 | 
			
		||||
      "version": "5.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "agent-base": "6",
 | 
			
		||||
        "debug": "4"
 | 
			
		||||
      },
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "debug": {
 | 
			
		||||
          "version": "4.3.1",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
 | 
			
		||||
          "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
 | 
			
		||||
          "dev": true,
 | 
			
		||||
          "requires": {
 | 
			
		||||
            "ms": "2.1.2"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "ms": {
 | 
			
		||||
          "version": "2.1.2",
 | 
			
		||||
          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
 | 
			
		||||
          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
 | 
			
		||||
          "dev": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "human-signals": {
 | 
			
		||||
      "version": "2.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
 | 
			
		||||
| 
						 | 
				
			
			@ -8107,6 +8171,12 @@
 | 
			
		|||
        "lower-case": "^1.1.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node-fetch": {
 | 
			
		||||
      "version": "2.6.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
 | 
			
		||||
      "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node-int64": {
 | 
			
		||||
      "version": "0.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,6 +47,7 @@
 | 
			
		|||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "eslint": "7.23.0",
 | 
			
		||||
    "editorconfig-checker": "4.0.2",
 | 
			
		||||
    "eslint-plugin-html": "6.1.2",
 | 
			
		||||
    "eslint-plugin-import": "2.22.1",
 | 
			
		||||
    "eslint-plugin-unicorn": "29.0.0",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,8 +96,8 @@
 | 
			
		|||
						<input id="attribute_mail" name="attribute_mail" value="{{$cfg.AttributeMail}}" placeholder="e.g. mail" required>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="field">
 | 
			
		||||
					    <label for="attribute_ssh_public_key">{{.i18n.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
			
		||||
					    <input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{$cfg.AttributeSSHPublicKey}}" placeholder="e.g. SshPublicKey">
 | 
			
		||||
						<label for="attribute_ssh_public_key">{{.i18n.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
			
		||||
						<input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{$cfg.AttributeSSHPublicKey}}" placeholder="e.g. SshPublicKey">
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="inline field">
 | 
			
		||||
						<div class="ui checkbox">
 | 
			
		||||
| 
						 | 
				
			
			@ -215,9 +215,9 @@
 | 
			
		|||
						<input id="oauth2_secret" name="oauth2_secret" value="{{$cfg.ClientSecret}}" required>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="optional field">
 | 
			
		||||
            <label for="oauth2_icon_url">{{.i18n.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
			
		||||
            <input id="oauth2_icon_url" name="oauth2_icon_url" value="{{$cfg.IconURL}}">
 | 
			
		||||
          </div>
 | 
			
		||||
						<label for="oauth2_icon_url">{{.i18n.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
			
		||||
						<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{$cfg.IconURL}}">
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="open_id_connect_auto_discovery_url required field">
 | 
			
		||||
						<label for="open_id_connect_auto_discovery_url">{{.i18n.Tr "admin.auths.openIdConnectAutoDiscoveryURL"}}</label>
 | 
			
		||||
						<input id="open_id_connect_auto_discovery_url" name="open_id_connect_auto_discovery_url" value="{{$cfg.OpenIDConnectAutoDiscoveryURL}}">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,8 +119,8 @@
 | 
			
		|||
				<span>{{.i18n.Tr "admin.auths.tip.nextcloud"}}</span>
 | 
			
		||||
				<li>Yandex</li>
 | 
			
		||||
				<span>{{.i18n.Tr "admin.auths.tip.yandex"}}</span>
 | 
			
		||||
        <li>Mastodon</li>
 | 
			
		||||
        <span>{{.i18n.Tr "admin.auths.tip.mastodon"}}</span>
 | 
			
		||||
				<li>Mastodon</li>
 | 
			
		||||
				<span>{{.i18n.Tr "admin.auths.tip.mastodon"}}</span>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,8 +68,8 @@
 | 
			
		|||
		<input id="attribute_mail" name="attribute_mail" value="{{.attribute_mail}}" placeholder="e.g. mail">
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="field">
 | 
			
		||||
	    <label for="attribute_ssh_public_key">{{.i18n.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
			
		||||
	    <input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{.attribute_ssh_public_key}}" placeholder="e.g. SshPublicKey">
 | 
			
		||||
		<label for="attribute_ssh_public_key">{{.i18n.Tr "admin.auths.attribute_ssh_public_key"}}</label>
 | 
			
		||||
		<input id="attribute_ssh_public_key" name="attribute_ssh_public_key" value="{{.attribute_ssh_public_key}}" placeholder="e.g. SshPublicKey">
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="inline field">
 | 
			
		||||
		<div class="ui checkbox">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,9 +21,9 @@
 | 
			
		|||
		<input id="oauth2_secret" name="oauth2_secret" value="{{.oauth2_secret}}">
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="optional field">
 | 
			
		||||
  	<label for="oauth2_icon_url">{{.i18n.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
			
		||||
  	<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{.oauth2_icon_url}}">
 | 
			
		||||
  </div>
 | 
			
		||||
		<label for="oauth2_icon_url">{{.i18n.Tr "admin.auths.oauth2_icon_url"}}</label>
 | 
			
		||||
		<input id="oauth2_icon_url" name="oauth2_icon_url" value="{{.oauth2_icon_url}}">
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="open_id_connect_auto_discovery_url required field">
 | 
			
		||||
		<label for="open_id_connect_auto_discovery_url">{{.i18n.Tr "admin.auths.openIdConnectAutoDiscoveryURL"}}</label>
 | 
			
		||||
		<input id="open_id_connect_auto_discovery_url" name="open_id_connect_auto_discovery_url" value="{{.open_id_connect_auto_discovery_url}}">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
</div>
 | 
			
		||||
<form class="ui form ignore-dirty"  style="max-width: 90%">
 | 
			
		||||
	<div class="ui fluid action input">
 | 
			
		||||
	  <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
			
		||||
	  <button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
			
		||||
		<button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
	</div>
 | 
			
		||||
</form>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,7 +7,7 @@
 | 
			
		|||
			{{.i18n.Tr "admin.repos.repo_manage_panel"}} ({{.i18n.Tr "admin.total" .Total}})
 | 
			
		||||
			<div class="ui right">
 | 
			
		||||
				<a class="ui blue tiny button" href="{{AppSubUrl}}/admin/repos/unadopted">{{.i18n.Tr "admin.repos.unadopted"}}</a>
 | 
			
		||||
            </div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</h4>
 | 
			
		||||
		<div class="ui attached segment">
 | 
			
		||||
			{{template "admin/repo/search" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,98 +5,98 @@
 | 
			
		|||
		{{template "base/alert" .}}
 | 
			
		||||
		<h4 class="ui top attached header">
 | 
			
		||||
			{{.i18n.Tr "admin.repos.unadopted"}}
 | 
			
		||||
            <div class="ui right">
 | 
			
		||||
                <a class="ui blue tiny button" href="{{AppSubUrl}}/admin/repos">{{.i18n.Tr "admin.repos.repo_manage_panel"}}</a>
 | 
			
		||||
            </div>
 | 
			
		||||
			<div class="ui right">
 | 
			
		||||
				<a class="ui blue tiny button" href="{{AppSubUrl}}/admin/repos">{{.i18n.Tr "admin.repos.repo_manage_panel"}}</a>
 | 
			
		||||
			</div>
 | 
			
		||||
		</h4>
 | 
			
		||||
        <div class="ui attached segment">
 | 
			
		||||
            <form class="ui form ignore-dirty">
 | 
			
		||||
                <div class="ui fluid action input">
 | 
			
		||||
                <input name="search" value="true" type="hidden">
 | 
			
		||||
                <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.adopt_search"}}" autofocus>
 | 
			
		||||
                <button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
                </div>
 | 
			
		||||
            </form>
 | 
			
		||||
		<div class="ui attached segment">
 | 
			
		||||
			<form class="ui form ignore-dirty">
 | 
			
		||||
				<div class="ui fluid action input">
 | 
			
		||||
				<input name="search" value="true" type="hidden">
 | 
			
		||||
				<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.adopt_search"}}" autofocus>
 | 
			
		||||
				<button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
				</div>
 | 
			
		||||
			</form>
 | 
			
		||||
		</div>
 | 
			
		||||
        {{if .search}}
 | 
			
		||||
            <div class="ui attached segment settings">
 | 
			
		||||
                {{if .Dirs}}
 | 
			
		||||
                    <div class="ui middle aligned divided list">
 | 
			
		||||
                        {{range $dirI, $dir := .Dirs}}
 | 
			
		||||
                            <div class="item">
 | 
			
		||||
                                <div class="content">
 | 
			
		||||
                                    <span class="icon">{{svg "octicon-file-directory"}}</span>
 | 
			
		||||
                                    <span class="name">{{$dir}}</span>
 | 
			
		||||
                                    <div class="right floated content">
 | 
			
		||||
                                        <button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.i18n.Tr "repo.adopt_preexisting_label"}}</span></button>
 | 
			
		||||
                                        <div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}">
 | 
			
		||||
                                            {{svg "octicon-x" 16 "close inside"}}
 | 
			
		||||
                                            <div class="header">
 | 
			
		||||
                                                <span class="label">{{$.i18n.Tr "repo.adopt_preexisting"}}</span>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div class="content">
 | 
			
		||||
                                                <p>{{$.i18n.Tr "repo.adopt_preexisting_content" $dir}}</p>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
			
		||||
                                                {{$.CsrfTokenHtml}}
 | 
			
		||||
                                                <input type="hidden" name="id" value="{{$dir}}">
 | 
			
		||||
                                                <input type="hidden" name="action" value="adopt">
 | 
			
		||||
																								<input type="hidden" name="q" value="{{$.Keyword}}">
 | 
			
		||||
																								<input type="hidden" name="page" value="{{$.CurrentPage}}">
 | 
			
		||||
                                                <div class="actions">
 | 
			
		||||
                                                    <div class="ui red basic inverted cancel button">
 | 
			
		||||
                                                        {{svg "octicon-trash" 16 "mr-2"}}
 | 
			
		||||
                                                        {{$.i18n.Tr "modal.no"}}
 | 
			
		||||
                                                    </div>
 | 
			
		||||
                                                    <button class="ui green basic inverted ok button">
 | 
			
		||||
                                                        {{svg "octicon-check" 16 "mr-2"}}
 | 
			
		||||
                                                        {{$.i18n.Tr "modal.yes"}}
 | 
			
		||||
                                                    </button>
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                            </form>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                        <button class="ui button submit tiny red delete show-modal" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.i18n.Tr "repo.delete_preexisting_label"}}</span></button>
 | 
			
		||||
                                        <div class="ui basic modal" id="delete-unadopted-modal-{{$dirI}}">
 | 
			
		||||
                                            {{svg "octicon-x" 16 "close inside"}}
 | 
			
		||||
                                            <div class="header">
 | 
			
		||||
                                                <span class="label">{{$.i18n.Tr "repo.delete_preexisting"}}</span>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <div class="content">
 | 
			
		||||
                                                <p>{{$.i18n.Tr "repo.delete_preexisting_content" $dir}}</p>
 | 
			
		||||
                                            </div>
 | 
			
		||||
                                            <form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
			
		||||
                                                {{$.CsrfTokenHtml}}
 | 
			
		||||
                                                <input type="hidden" name="id" value="{{$dir}}">
 | 
			
		||||
                                                <input type="hidden" name="action" value="delete">
 | 
			
		||||
																								<input type="hidden" name="q" value="{{$.Keyword}}">
 | 
			
		||||
																								<input type="hidden" name="page" value="{{$.CurrentPage}}">
 | 
			
		||||
                                                <div class="actions">
 | 
			
		||||
                                                    <div class="ui red basic inverted cancel button">
 | 
			
		||||
                                                        {{svg "octicon-trash" 16 "mr-2"}}
 | 
			
		||||
                                                        {{$.i18n.Tr "modal.no"}}
 | 
			
		||||
                                                    </div>
 | 
			
		||||
                                                    <button class="ui green basic inverted ok button">
 | 
			
		||||
                                                        {{svg "octicon-check" 16 "mr-2"}}
 | 
			
		||||
                                                        {{$.i18n.Tr "modal.yes"}}
 | 
			
		||||
                                                    </button>
 | 
			
		||||
                                                </div>
 | 
			
		||||
                                            </form>
 | 
			
		||||
                                        </div>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        {{end}}
 | 
			
		||||
                    </div>
 | 
			
		||||
                    {{template "base/paginate" .}}
 | 
			
		||||
                {{else}}
 | 
			
		||||
                    <div class="item">
 | 
			
		||||
                        {{.i18n.Tr "admin.repos.unadopted.no_more"}}
 | 
			
		||||
                    </div>
 | 
			
		||||
                    {{template "base/paginate" .}}
 | 
			
		||||
                {{end}}
 | 
			
		||||
            </div>
 | 
			
		||||
        {{end}}
 | 
			
		||||
    </div>
 | 
			
		||||
		{{if .search}}
 | 
			
		||||
			<div class="ui attached segment settings">
 | 
			
		||||
				{{if .Dirs}}
 | 
			
		||||
					<div class="ui middle aligned divided list">
 | 
			
		||||
						{{range $dirI, $dir := .Dirs}}
 | 
			
		||||
							<div class="item">
 | 
			
		||||
								<div class="content">
 | 
			
		||||
									<span class="icon">{{svg "octicon-file-directory"}}</span>
 | 
			
		||||
									<span class="name">{{$dir}}</span>
 | 
			
		||||
									<div class="right floated content">
 | 
			
		||||
										<button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.i18n.Tr "repo.adopt_preexisting_label"}}</span></button>
 | 
			
		||||
										<div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}">
 | 
			
		||||
											{{svg "octicon-x" 16 "close inside"}}
 | 
			
		||||
											<div class="header">
 | 
			
		||||
												<span class="label">{{$.i18n.Tr "repo.adopt_preexisting"}}</span>
 | 
			
		||||
											</div>
 | 
			
		||||
											<div class="content">
 | 
			
		||||
												<p>{{$.i18n.Tr "repo.adopt_preexisting_content" $dir}}</p>
 | 
			
		||||
											</div>
 | 
			
		||||
											<form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
			
		||||
												{{$.CsrfTokenHtml}}
 | 
			
		||||
												<input type="hidden" name="id" value="{{$dir}}">
 | 
			
		||||
												<input type="hidden" name="action" value="adopt">
 | 
			
		||||
												<input type="hidden" name="q" value="{{$.Keyword}}">
 | 
			
		||||
												<input type="hidden" name="page" value="{{$.CurrentPage}}">
 | 
			
		||||
												<div class="actions">
 | 
			
		||||
													<div class="ui red basic inverted cancel button">
 | 
			
		||||
														{{svg "octicon-trash" 16 "mr-2"}}
 | 
			
		||||
														{{$.i18n.Tr "modal.no"}}
 | 
			
		||||
													</div>
 | 
			
		||||
													<button class="ui green basic inverted ok button">
 | 
			
		||||
														{{svg "octicon-check" 16 "mr-2"}}
 | 
			
		||||
														{{$.i18n.Tr "modal.yes"}}
 | 
			
		||||
													</button>
 | 
			
		||||
												</div>
 | 
			
		||||
											</form>
 | 
			
		||||
										</div>
 | 
			
		||||
										<button class="ui button submit tiny red delete show-modal" data-modal="#delete-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-x"}}</span><span class="label">{{$.i18n.Tr "repo.delete_preexisting_label"}}</span></button>
 | 
			
		||||
										<div class="ui basic modal" id="delete-unadopted-modal-{{$dirI}}">
 | 
			
		||||
											{{svg "octicon-x" 16 "close inside"}}
 | 
			
		||||
											<div class="header">
 | 
			
		||||
												<span class="label">{{$.i18n.Tr "repo.delete_preexisting"}}</span>
 | 
			
		||||
											</div>
 | 
			
		||||
											<div class="content">
 | 
			
		||||
												<p>{{$.i18n.Tr "repo.delete_preexisting_content" $dir}}</p>
 | 
			
		||||
											</div>
 | 
			
		||||
											<form class="ui form" method="POST" action="{{AppSubUrl}}/admin/repos/unadopted">
 | 
			
		||||
												{{$.CsrfTokenHtml}}
 | 
			
		||||
												<input type="hidden" name="id" value="{{$dir}}">
 | 
			
		||||
												<input type="hidden" name="action" value="delete">
 | 
			
		||||
												<input type="hidden" name="q" value="{{$.Keyword}}">
 | 
			
		||||
												<input type="hidden" name="page" value="{{$.CurrentPage}}">
 | 
			
		||||
												<div class="actions">
 | 
			
		||||
													<div class="ui red basic inverted cancel button">
 | 
			
		||||
														{{svg "octicon-trash" 16 "mr-2"}}
 | 
			
		||||
														{{$.i18n.Tr "modal.no"}}
 | 
			
		||||
													</div>
 | 
			
		||||
													<button class="ui green basic inverted ok button">
 | 
			
		||||
														{{svg "octicon-check" 16 "mr-2"}}
 | 
			
		||||
														{{$.i18n.Tr "modal.yes"}}
 | 
			
		||||
													</button>
 | 
			
		||||
												</div>
 | 
			
		||||
											</form>
 | 
			
		||||
										</div>
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</div>
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</div>
 | 
			
		||||
					{{template "base/paginate" .}}
 | 
			
		||||
				{{else}}
 | 
			
		||||
					<div class="item">
 | 
			
		||||
						{{.i18n.Tr "admin.repos.unadopted.no_more"}}
 | 
			
		||||
					</div>
 | 
			
		||||
					{{template "base/paginate" .}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
			</div>
 | 
			
		||||
		{{end}}
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
{{template "base/footer" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
{{.Message}}
 | 
			
		||||
<details>
 | 
			
		||||
    <summary>{{.Summary}}</summary>
 | 
			
		||||
    <code>
 | 
			
		||||
        {{.Details | Str2html}}
 | 
			
		||||
    </code>
 | 
			
		||||
	<summary>{{.Summary}}</summary>
 | 
			
		||||
	<code>
 | 
			
		||||
		{{.Details | Str2html}}
 | 
			
		||||
	</code>
 | 
			
		||||
</details>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,6 @@
 | 
			
		|||
			</div>
 | 
			
		||||
		</form>
 | 
			
		||||
		<div class="ui divider"></div>
 | 
			
		||||
 | 
			
		||||
		<div class="ui user list">
 | 
			
		||||
			{{if .SearchResults}}
 | 
			
		||||
				<h3>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,24 +8,24 @@
 | 
			
		|||
			{{range .Users}}
 | 
			
		||||
				<div class="item">
 | 
			
		||||
					{{avatar .}}
 | 
			
		||||
				  <div class="content">
 | 
			
		||||
					<span class="header">
 | 
			
		||||
						<a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}
 | 
			
		||||
						{{if .Visibility.IsPrivate}}
 | 
			
		||||
							<span class="ui basic label">{{$.i18n.Tr "repo.desc.private"}}</span>
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</span>
 | 
			
		||||
					<div class="description">
 | 
			
		||||
						{{if .Location}}
 | 
			
		||||
							{{svg "octicon-location"}} {{.Location}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
						{{if and .Website}}
 | 
			
		||||
							{{svg "octicon-link"}}
 | 
			
		||||
							<a href="{{.Website}}" rel="nofollow">{{.Website}}</a>
 | 
			
		||||
						{{end}}
 | 
			
		||||
						{{svg "octicon-clock"}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
			
		||||
					<div class="content">
 | 
			
		||||
						<span class="header">
 | 
			
		||||
							<a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}
 | 
			
		||||
							{{if .Visibility.IsPrivate}}
 | 
			
		||||
								<span class="ui basic label">{{$.i18n.Tr "repo.desc.private"}}</span>
 | 
			
		||||
							{{end}}
 | 
			
		||||
						</span>
 | 
			
		||||
						<div class="description">
 | 
			
		||||
							{{if .Location}}
 | 
			
		||||
								{{svg "octicon-location"}} {{.Location}}
 | 
			
		||||
							{{end}}
 | 
			
		||||
							{{if and .Website}}
 | 
			
		||||
								{{svg "octicon-link"}}
 | 
			
		||||
								<a href="{{.Website}}" rel="nofollow">{{.Website}}</a>
 | 
			
		||||
							{{end}}
 | 
			
		||||
							{{svg "octicon-clock"}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				  </div>
 | 
			
		||||
				</div>
 | 
			
		||||
			{{else}}
 | 
			
		||||
				<div>{{$.i18n.Tr "explore.org_no_results"}}</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,30 +1,30 @@
 | 
			
		|||
<div class="ui right floated secondary filter menu">
 | 
			
		||||
    <!-- Sort -->
 | 
			
		||||
    <div class="ui right dropdown type jump item">
 | 
			
		||||
	<!-- Sort -->
 | 
			
		||||
	<div class="ui right dropdown type jump item">
 | 
			
		||||
		<span class="text">
 | 
			
		||||
			{{.i18n.Tr "repo.issues.filter_sort"}}
 | 
			
		||||
                {{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
				{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
		</span>
 | 
			
		||||
        <div class="menu">
 | 
			
		||||
            <a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.moststars"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.feweststars"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.mostforks"}}</a>
 | 
			
		||||
            <a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.fewestforks"}}</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
		<div class="menu">
 | 
			
		||||
			<a class="{{if eq .SortType "newest"}}active{{end}} item" href="{{$.Link}}?sort=newest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.latest"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "oldest"}}active{{end}} item" href="{{$.Link}}?sort=oldest&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.oldest"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "alphabetically"}}active{{end}} item" href="{{$.Link}}?sort=alphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.alphabetically"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "reversealphabetically"}}active{{end}} item" href="{{$.Link}}?sort=reversealphabetically&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.label.filter_sort.reverse_alphabetically"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "recentupdate"}}active{{end}} item" href="{{$.Link}}?sort=recentupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.recentupdate"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "leastupdate"}}active{{end}} item" href="{{$.Link}}?sort=leastupdate&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.leastupdate"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "moststars"}}active{{end}} item" href="{{$.Link}}?sort=moststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.moststars"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "feweststars"}}active{{end}} item" href="{{$.Link}}?sort=feweststars&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.feweststars"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "mostforks"}}active{{end}} item" href="{{$.Link}}?sort=mostforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.mostforks"}}</a>
 | 
			
		||||
			<a class="{{if eq .SortType "fewestforks"}}active{{end}} item" href="{{$.Link}}?sort=fewestforks&q={{$.Keyword}}&tab={{$.TabName}}">{{.i18n.Tr "repo.issues.filter_sort.fewestforks"}}</a>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
<form class="ui form ignore-dirty" style="max-width: 90%">
 | 
			
		||||
    <input type="hidden" name="tab" value="{{$.TabName}}">
 | 
			
		||||
    <input type="hidden" name="sort" value="{{$.SortType}}">
 | 
			
		||||
    <div class="ui fluid action input">
 | 
			
		||||
        <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
			
		||||
        <button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
    </div>
 | 
			
		||||
	<input type="hidden" name="tab" value="{{$.TabName}}">
 | 
			
		||||
	<input type="hidden" name="sort" value="{{$.SortType}}">
 | 
			
		||||
	<div class="ui fluid action input">
 | 
			
		||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
			
		||||
		<button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
	</div>
 | 
			
		||||
</form>
 | 
			
		||||
<div class="ui divider"></div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,8 +18,8 @@
 | 
			
		|||
<form class="ui form ignore-dirty" style="max-width: 90%">
 | 
			
		||||
	<input type="hidden" name="tab" value="{{$.TabName}}">
 | 
			
		||||
	<div class="ui fluid action input">
 | 
			
		||||
	  <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
			
		||||
	  <button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
		<input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
 | 
			
		||||
		<button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
 | 
			
		||||
	</div>
 | 
			
		||||
</form>
 | 
			
		||||
<div class="ui divider"></div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,19 +8,19 @@
 | 
			
		|||
			{{range .Users}}
 | 
			
		||||
				<div class="item">
 | 
			
		||||
					{{avatar .}}
 | 
			
		||||
				  <div class="content">
 | 
			
		||||
					<span class="header"><a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}</span>
 | 
			
		||||
					<div class="description">
 | 
			
		||||
						{{if .Location}}
 | 
			
		||||
							{{svg "octicon-location"}} {{.Location}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
						{{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}}
 | 
			
		||||
							{{svg "octicon-mail"}}
 | 
			
		||||
							<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
 | 
			
		||||
						{{end}}
 | 
			
		||||
						{{svg "octicon-clock"}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
			
		||||
					<div class="content">
 | 
			
		||||
						<span class="header"><a href="{{.HomeLink}}">{{.Name}}</a> {{.FullName}}</span>
 | 
			
		||||
						<div class="description">
 | 
			
		||||
							{{if .Location}}
 | 
			
		||||
								{{svg "octicon-location"}} {{.Location}}
 | 
			
		||||
							{{end}}
 | 
			
		||||
							{{if and $.ShowUserEmail .Email $.IsSigned (not .KeepEmailPrivate)}}
 | 
			
		||||
								{{svg "octicon-mail"}}
 | 
			
		||||
								<a href="mailto:{{.Email}}" rel="nofollow">{{.Email}}</a>
 | 
			
		||||
							{{end}}
 | 
			
		||||
							{{svg "octicon-clock"}} {{$.i18n.Tr "user.join_on"}} {{.CreatedUnix.FormatShort}}
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				  </div>
 | 
			
		||||
				</div>
 | 
			
		||||
			{{else}}
 | 
			
		||||
				<div>{{$.i18n.Tr "explore.user_no_results"}}</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,11 +11,11 @@
 | 
			
		|||
<body>
 | 
			
		||||
	<p>@{{.Doer.Name}} assigned you to the {{if .IsPull}}pull request{{else}}issue{{end}} <a href="{{.Link}}">#{{.Issue.Index}}</a> in repository {{.Repo}}.</p>
 | 
			
		||||
	<div class="footer">
 | 
			
		||||
	    <p>
 | 
			
		||||
	        ---
 | 
			
		||||
	        <br>
 | 
			
		||||
	        <a href="{{.Link}}">View it on {{AppName}}</a>.
 | 
			
		||||
	    </p>
 | 
			
		||||
		<p>
 | 
			
		||||
			---
 | 
			
		||||
			<br>
 | 
			
		||||
			<a href="{{.Link}}">View it on {{AppName}}</a>.
 | 
			
		||||
		</p>
 | 
			
		||||
	</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,11 +11,11 @@
 | 
			
		|||
<body>
 | 
			
		||||
	<p>You have been added as a collaborator of repository: <code>{{.RepoName}}</code></p>
 | 
			
		||||
	<div class="footer">
 | 
			
		||||
	    <p>
 | 
			
		||||
	        ---
 | 
			
		||||
	        <br>
 | 
			
		||||
	        <a href="{{.Link}}">View it on {{AppName}}</a>.
 | 
			
		||||
	    </p>
 | 
			
		||||
		<p>
 | 
			
		||||
			---
 | 
			
		||||
			<br>
 | 
			
		||||
			<a href="{{.Link}}">View it on {{AppName}}</a>.
 | 
			
		||||
		</p>
 | 
			
		||||
	</div>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,9 +26,9 @@
 | 
			
		|||
			<div class="ui eleven wide column">
 | 
			
		||||
				{{if .CanCreateOrgRepo}}
 | 
			
		||||
					<div class="text right">
 | 
			
		||||
            {{if not .DisabledMirrors}}
 | 
			
		||||
						  <a class="ui green button" href="{{AppSubUrl}}/repo/migrate?org={{.Org.ID}}&mirror=1">{{.i18n.Tr "new_migrate"}}</a>
 | 
			
		||||
            {{end}}
 | 
			
		||||
						{{if not .DisabledMirrors}}
 | 
			
		||||
							<a class="ui green button" href="{{AppSubUrl}}/repo/migrate?org={{.Org.ID}}&mirror=1">{{.i18n.Tr "new_migrate"}}</a>
 | 
			
		||||
						{{end}}
 | 
			
		||||
						<a class="ui green button" href="{{AppSubUrl}}/repo/create?org={{.Org.ID}}">{{.i18n.Tr "new_repo"}}</a>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="ui divider"></div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
<div class="ui top attached tabular menu">
 | 
			
		||||
  <a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}">{{svg "octicon-person"}} <strong>{{.Team.NumMembers}}</strong>  {{$.i18n.Tr "org.lower_members"}}</a>
 | 
			
		||||
  <a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/repositories">{{svg "octicon-repo"}} <strong>{{.Team.NumRepos}}</strong>  {{$.i18n.Tr "org.lower_repositories"}}</a>
 | 
			
		||||
	<a class="item{{if .PageIsOrgTeamMembers}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}">{{svg "octicon-person"}} <strong>{{.Team.NumMembers}}</strong>  {{$.i18n.Tr "org.lower_members"}}</a>
 | 
			
		||||
	<a class="item{{if .PageIsOrgTeamRepos}} active{{end}}" href="{{.OrgLink}}/teams/{{.Team.LowerName}}/repositories">{{svg "octicon-repo"}} <strong>{{.Team.NumRepos}}</strong>  {{$.i18n.Tr "org.lower_repositories"}}</a>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
{{template "base/head" .}}
 | 
			
		||||
<div class="page-content install">
 | 
			
		||||
    <div class="ui container">
 | 
			
		||||
	<div class="ui container">
 | 
			
		||||
		<div class="ui grid">
 | 
			
		||||
			<div class="sixteen wide column content">
 | 
			
		||||
				<div class="home">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,7 +93,7 @@
 | 
			
		|||
			{{if gt .Activity.Code.CommitCountInAllBranches 0}}
 | 
			
		||||
				<div class="ui attached segment horizontal segments">
 | 
			
		||||
					<div class="ui attached segment text">
 | 
			
		||||
					    {{.i18n.Tr "repo.activity.git_stats_exclude_merges" }}
 | 
			
		||||
						{{.i18n.Tr "repo.activity.git_stats_exclude_merges" }}
 | 
			
		||||
						<strong>{{.i18n.Tr (TrN .i18n.Lang .Activity.Code.AuthorCount "repo.activity.git_stats_author_1" "repo.activity.git_stats_author_n") .Activity.Code.AuthorCount }}</strong>
 | 
			
		||||
						{{.i18n.Tr (TrN .i18n.Lang .Activity.Code.AuthorCount "repo.activity.git_stats_pushed_1" "repo.activity.git_stats_pushed_n") }}
 | 
			
		||||
						<strong>{{.i18n.Tr (TrN .i18n.Lang .Activity.Code.CommitCount "repo.activity.git_stats_commit_1" "repo.activity.git_stats_commit_n") .Activity.Code.CommitCount }}</strong>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</h4>
 | 
			
		||||
    <div class="ui attached table unstackable segment">
 | 
			
		||||
	<div class="ui attached table unstackable segment">
 | 
			
		||||
		<div class="file-view code-view">
 | 
			
		||||
			<table>
 | 
			
		||||
				<tbody>
 | 
			
		||||
| 
						 | 
				
			
			@ -31,5 +31,5 @@
 | 
			
		|||
				</tbody>
 | 
			
		||||
			</table>
 | 
			
		||||
		</div>
 | 
			
		||||
    </div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,11 +25,11 @@
 | 
			
		|||
						</td>
 | 
			
		||||
						<td class="right aligned overflow-visible">
 | 
			
		||||
							<div class="ui basic jump dropdown icon button poping up" data-content="{{$.i18n.Tr "repo.branch.download" ($.DefaultBranch)}}" data-variation="tiny inverted" data-position="top right">
 | 
			
		||||
							  {{svg "octicon-download"}}
 | 
			
		||||
							  <div class="menu">
 | 
			
		||||
							    <a class="item archive-link" data-url="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.zip">{{svg "octicon-file-zip"}} ZIP</a>
 | 
			
		||||
							    <a class="item archive-link" data-url="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.tar.gz">{{svg "octicon-file-zip"}} TAR.GZ</a>
 | 
			
		||||
							  </div>
 | 
			
		||||
								{{svg "octicon-download"}}
 | 
			
		||||
								<div class="menu">
 | 
			
		||||
									<a class="item archive-link" data-url="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.zip">{{svg "octicon-file-zip"}} ZIP</a>
 | 
			
		||||
									<a class="item archive-link" data-url="{{$.RepoLink}}/archive/{{EscapePound $.DefaultBranch}}.tar.gz">{{svg "octicon-file-zip"}} TAR.GZ</a>
 | 
			
		||||
								</div>
 | 
			
		||||
							</div>
 | 
			
		||||
						</td>
 | 
			
		||||
					</tr>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -113,13 +113,13 @@
 | 
			
		|||
					<span class="ui text">{{.i18n.Tr .Verification.Reason}}</span>
 | 
			
		||||
					<span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
 | 
			
		||||
				{{else}}
 | 
			
		||||
				  <i class="unlock icon"></i>
 | 
			
		||||
				  {{.i18n.Tr .Verification.Reason}}
 | 
			
		||||
				  {{if .Verification.SigningKey}}
 | 
			
		||||
				  	{{if ne .Verification.SigningKey.KeyID ""}}
 | 
			
		||||
						<span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
 | 
			
		||||
				  	{{end}}
 | 
			
		||||
				  {{end}}
 | 
			
		||||
					<i class="unlock icon"></i>
 | 
			
		||||
					{{.i18n.Tr .Verification.Reason}}
 | 
			
		||||
					{{if .Verification.SigningKey}}
 | 
			
		||||
						{{if ne .Verification.SigningKey.KeyID ""}}
 | 
			
		||||
							<span class="pull-right"><span class="ui text">{{.i18n.Tr "repo.commits.gpg_key_id"}}:</span> <i class="warning icon"></i>{{.Verification.SigningKey.KeyID}}</span>
 | 
			
		||||
						{{end}}
 | 
			
		||||
					{{end}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
			</div>
 | 
			
		||||
		{{end}}
 | 
			
		||||
| 
						 | 
				
			
			@ -130,9 +130,9 @@
 | 
			
		|||
				{{if .NoteAuthor}}
 | 
			
		||||
					<a href="{{.NoteAuthor.HomeLink}}">
 | 
			
		||||
						{{if .NoteAuthor.FullName}}
 | 
			
		||||
						  <strong>{{.NoteAuthor.FullName}}</strong>
 | 
			
		||||
							<strong>{{.NoteAuthor.FullName}}</strong>
 | 
			
		||||
						{{else}}
 | 
			
		||||
						  <strong>{{.NoteCommit.Author.Name}}</strong>
 | 
			
		||||
							<strong>{{.NoteCommit.Author.Name}}</strong>
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</a>
 | 
			
		||||
				{{else}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,7 +28,7 @@
 | 
			
		|||
</h4>
 | 
			
		||||
 | 
			
		||||
{{if and .Commits (gt .CommitCount 0)}}
 | 
			
		||||
    {{template "repo/commits_list" .}}
 | 
			
		||||
	{{template "repo/commits_list" .}}
 | 
			
		||||
{{end}}
 | 
			
		||||
 | 
			
		||||
{{template "base/paginate" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -117,9 +117,9 @@
 | 
			
		|||
		{{end}}
 | 
			
		||||
	{{else if and .PageIsComparePull (gt .CommitCount 0)}}
 | 
			
		||||
		{{if .HasPullRequest}}
 | 
			
		||||
        	<div class="ui segment">
 | 
			
		||||
        		{{.i18n.Tr "repo.pulls.has_pull_request" $.RepoLink $.RepoRelPath .PullRequest.Index | Safe}}
 | 
			
		||||
        	</div>
 | 
			
		||||
			<div class="ui segment">
 | 
			
		||||
				{{.i18n.Tr "repo.pulls.has_pull_request" $.RepoLink $.RepoRelPath .PullRequest.Index | Safe}}
 | 
			
		||||
			</div>
 | 
			
		||||
		{{else}}
 | 
			
		||||
			{{if and $.IsSigned (not .Repository.IsArchived)}}
 | 
			
		||||
				<div class="ui info message show-form-container">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,16 +13,12 @@
 | 
			
		|||
					<a class="muted close px-3">{{svg "octicon-x" 16}}</a>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="ui field">
 | 
			
		||||
					<textarea name="content" tabindex="0" rows="2"
 | 
			
		||||
							  placeholder="{{$.i18n.Tr "repo.diff.review.placeholder"}}"></textarea>
 | 
			
		||||
					<textarea name="content" tabindex="0" rows="2" placeholder="{{$.i18n.Tr "repo.diff.review.placeholder"}}"></textarea>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="ui divider"></div>
 | 
			
		||||
				<button type="submit" name="type" value="approve" {{ if and $.IsSigned ($.Issue.IsPoster $.SignedUser.ID) }} disabled {{ end }}
 | 
			
		||||
						class="ui submit green tiny button btn-submit">{{$.i18n.Tr "repo.diff.review.approve"}}</button>
 | 
			
		||||
				<button type="submit" name="type" value="comment"
 | 
			
		||||
					        class="ui submit tiny basic button btn-submit">{{$.i18n.Tr "repo.diff.review.comment"}}</button>
 | 
			
		||||
				<button type="submit" name="type" value="reject" {{ if and $.IsSigned ($.Issue.IsPoster $.SignedUser.ID) }} disabled {{ end }}
 | 
			
		||||
						class="ui submit red tiny button btn-submit">{{$.i18n.Tr "repo.diff.review.reject"}}</button>
 | 
			
		||||
				<button type="submit" name="type" value="approve" {{ if and $.IsSigned ($.Issue.IsPoster $.SignedUser.ID) }} disabled {{ end }} class="ui submit green tiny button btn-submit">{{$.i18n.Tr "repo.diff.review.approve"}}</button>
 | 
			
		||||
				<button type="submit" name="type" value="comment" class="ui submit tiny basic button btn-submit">{{$.i18n.Tr "repo.diff.review.comment"}}</button>
 | 
			
		||||
				<button type="submit" name="type" value="reject" {{ if and $.IsSigned ($.Issue.IsPoster $.SignedUser.ID) }} disabled {{ end }} class="ui submit red tiny button btn-submit">{{$.i18n.Tr "repo.diff.review.reject"}}</button>
 | 
			
		||||
			</form>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,7 @@
 | 
			
		|||
	<div class="ui small basic modal" id="edit-empty-content-modal">
 | 
			
		||||
		<div class="ui icon header">
 | 
			
		||||
			<i class="file icon"></i>
 | 
			
		||||
            {{.i18n.Tr "repo.editor.commit_empty_file_header"}}
 | 
			
		||||
			{{.i18n.Tr "repo.editor.commit_empty_file_header"}}
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="center content">
 | 
			
		||||
			<p>{{.i18n.Tr "repo.editor.commit_empty_file_text"}}</p>
 | 
			
		||||
| 
						 | 
				
			
			@ -67,11 +67,11 @@
 | 
			
		|||
		<div class="actions">
 | 
			
		||||
			<div class="ui red basic cancel inverted button">
 | 
			
		||||
				<i class="remove icon"></i>
 | 
			
		||||
                {{.i18n.Tr "repo.editor.cancel"}}
 | 
			
		||||
				{{.i18n.Tr "repo.editor.cancel"}}
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="ui green basic ok inverted button">
 | 
			
		||||
				<i class="save icon"></i>
 | 
			
		||||
                {{.i18n.Tr "repo.editor.commit_changes"}}
 | 
			
		||||
				{{.i18n.Tr "repo.editor.commit_changes"}}
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
							{{end}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
						{{if .IsArchived}}
 | 
			
		||||
						  <span class="ui basic label">{{$.i18n.Tr "repo.desc.archived"}}</span>
 | 
			
		||||
							<span class="ui basic label">{{$.i18n.Tr "repo.desc.archived"}}</span>
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@
 | 
			
		|||
</div>
 | 
			
		||||
<div class="field">
 | 
			
		||||
	<div class="ui bottom active tab" data-tab="write">
 | 
			
		||||
	 	<textarea id="content" class="edit_area js-quick-submit" name="content" tabindex="4" data-id="issue-{{.RepoName}}" data-url="{{.Repository.APIURL}}/markdown" data-context="{{.Repo.RepoLink}}">
 | 
			
		||||
		<textarea id="content" class="edit_area js-quick-submit" name="content" tabindex="4" data-id="issue-{{.RepoName}}" data-url="{{.Repository.APIURL}}/markdown" data-context="{{.Repo.RepoLink}}">
 | 
			
		||||
			{{- if .BodyQuery}}{{.BodyQuery}}{{else if .IssueTemplate}}{{.IssueTemplate}}{{else if .PullRequestTemplate}}{{.PullRequestTemplate}}{{else}}{{.content}}{{end -}}
 | 
			
		||||
		</textarea>
 | 
			
		||||
	</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,4 +55,3 @@
 | 
			
		|||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,8 +3,7 @@
 | 
			
		|||
		<div class="ui attached left aligned segment">
 | 
			
		||||
			<!-- <h4 class="ui header">
 | 
			
		||||
				{{.i18n.Tr "repo.issues.label_templates.title"}}
 | 
			
		||||
				<a target="_blank" rel="noopener noreferrer"
 | 
			
		||||
				   href="https://discuss.gogs.io/t/how-to-use-predefined-label-templates/599">
 | 
			
		||||
				<a target="_blank" rel="noopener noreferrer" href="https://discuss.gogs.io/t/how-to-use-predefined-label-templates/599">
 | 
			
		||||
					<span class="octicon octicon-question"></span>
 | 
			
		||||
				</a>
 | 
			
		||||
			</h4> -->
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,29 +14,29 @@
 | 
			
		|||
			{{if not .Repository.IsArchived}}
 | 
			
		||||
				<div class="column right aligned">
 | 
			
		||||
					{{if or .CanWriteIssues .CanWritePulls}}
 | 
			
		||||
					<a class="ui button" href="{{.RepoLink}}/milestones/{{.MilestoneID}}/edit">{{.i18n.Tr "repo.milestones.edit"}}</a>
 | 
			
		||||
						<a class="ui button" href="{{.RepoLink}}/milestones/{{.MilestoneID}}/edit">{{.i18n.Tr "repo.milestones.edit"}}</a>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					<a class="ui primary button" href="{{.RepoLink}}/issues/new{{if .NewIssueChooseTemplate}}/choose{{end}}?milestone={{.MilestoneID}}">{{.i18n.Tr "repo.issues.new"}}</a>
 | 
			
		||||
				</div>
 | 
			
		||||
			{{end}}
 | 
			
		||||
		</div>
 | 
			
		||||
        <div class="ui one column stackable grid">
 | 
			
		||||
            <div class="column">
 | 
			
		||||
                {{ $closedDate:= TimeSinceUnix .Milestone.ClosedDateUnix $.Lang }}
 | 
			
		||||
                {{if .IsClosed}}
 | 
			
		||||
		<div class="ui one column stackable grid">
 | 
			
		||||
			<div class="column">
 | 
			
		||||
				{{ $closedDate:= TimeSinceUnix .Milestone.ClosedDateUnix $.Lang }}
 | 
			
		||||
				{{if .IsClosed}}
 | 
			
		||||
					{{svg "octicon-clock"}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
 | 
			
		||||
                {{else}}
 | 
			
		||||
				{{else}}
 | 
			
		||||
					{{svg "octicon-calendar"}}
 | 
			
		||||
                    {{if .Milestone.DeadlineString}}
 | 
			
		||||
                        <span {{if .IsOverdue}}class="overdue"{{end}}>{{.Milestone.DeadlineString}}</span>
 | 
			
		||||
                    {{else}}
 | 
			
		||||
                        {{$.i18n.Tr "repo.milestones.no_due_date"}}
 | 
			
		||||
                    {{end}}
 | 
			
		||||
                {{end}}
 | 
			
		||||
                 
 | 
			
		||||
                <b>{{.i18n.Tr "repo.milestones.completeness" .Milestone.Completeness}}</b>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
					{{if .Milestone.DeadlineString}}
 | 
			
		||||
						<span {{if .IsOverdue}}class="overdue"{{end}}>{{.Milestone.DeadlineString}}</span>
 | 
			
		||||
					{{else}}
 | 
			
		||||
						{{$.i18n.Tr "repo.milestones.no_due_date"}}
 | 
			
		||||
					{{end}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
				 
 | 
			
		||||
				<b>{{.i18n.Tr "repo.milestones.completeness" .Milestone.Completeness}}</b>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="ui divider"></div>
 | 
			
		||||
		<div id="issue-filters" class="ui stackable grid">
 | 
			
		||||
			<div class="six wide column">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,7 @@
 | 
			
		|||
		{{template "base/alert" .}}
 | 
			
		||||
 | 
			
		||||
		<div class="ui three column stackable grid">
 | 
			
		||||
		  <div class="column">
 | 
			
		||||
			<div class="column">
 | 
			
		||||
				<div class="ui compact tiny menu">
 | 
			
		||||
					<a class="item{{if not .IsShowClosed}} active{{end}}" href="{{.RepoLink}}/milestones?state=open&q={{$.Keyword}}">
 | 
			
		||||
						{{svg "octicon-milestone" 16 "mr-3"}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,9 +66,9 @@
 | 
			
		|||
						</div>
 | 
			
		||||
						<div id="comment-{{.Issue.ID}}" class="raw-content hide">{{.Issue.Content}}</div>
 | 
			
		||||
						<div class="edit-content-zone hide" data-write="issue-{{.Issue.ID}}-write" data-preview="issue-{{.Issue.ID}}-preview" data-update-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/content" data-context="{{.RepoLink}}" data-attachment-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/attachments" data-view-attachment-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/view-attachments"></div>
 | 
			
		||||
    					{{if .Issue.Attachments}}
 | 
			
		||||
    						{{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Issue.Attachments "Content" .Issue.RenderedContent}}
 | 
			
		||||
    					{{end}}
 | 
			
		||||
						{{if .Issue.Attachments}}
 | 
			
		||||
							{{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Issue.Attachments "Content" .Issue.RenderedContent}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</div>
 | 
			
		||||
					{{$reactions := .Issue.Reactions.GroupByType}}
 | 
			
		||||
					{{if $reactions}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,42 +1,42 @@
 | 
			
		|||
<div class="dropzone-attachments">
 | 
			
		||||
    {{if .Attachments}}
 | 
			
		||||
        <div class="ui clearing divider"></div>
 | 
			
		||||
    {{end}}
 | 
			
		||||
    <div class="ui middle aligned padded grid">
 | 
			
		||||
        {{$hasThumbnails := false}}
 | 
			
		||||
        {{- range .Attachments -}}
 | 
			
		||||
            <div class="twelve wide column" style="padding: 6px;">
 | 
			
		||||
                <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'>
 | 
			
		||||
                    {{if FilenameIsImage .Name}}
 | 
			
		||||
                        {{if not (containGeneric $.Content .UUID)}}
 | 
			
		||||
                            {{$hasThumbnails = true}}
 | 
			
		||||
                        {{end}}
 | 
			
		||||
                        <span class="ui image">{{svg "octicon-file"}}</span>
 | 
			
		||||
                    {{else}}
 | 
			
		||||
                        <span class="ui image">{{svg "octicon-desktop-download"}}</span>
 | 
			
		||||
                    {{end}}
 | 
			
		||||
                    <span><strong>{{.Name}}</strong></span>
 | 
			
		||||
                </a>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="four wide column" style="padding: 0px;">
 | 
			
		||||
                <span class="ui text grey right">{{.Size | FileSize}}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
        {{end -}}
 | 
			
		||||
    </div>
 | 
			
		||||
	{{if .Attachments}}
 | 
			
		||||
		<div class="ui clearing divider"></div>
 | 
			
		||||
	{{end}}
 | 
			
		||||
	<div class="ui middle aligned padded grid">
 | 
			
		||||
		{{$hasThumbnails := false}}
 | 
			
		||||
		{{- range .Attachments -}}
 | 
			
		||||
			<div class="twelve wide column" style="padding: 6px;">
 | 
			
		||||
				<a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'>
 | 
			
		||||
					{{if FilenameIsImage .Name}}
 | 
			
		||||
						{{if not (containGeneric $.Content .UUID)}}
 | 
			
		||||
							{{$hasThumbnails = true}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
						<span class="ui image">{{svg "octicon-file"}}</span>
 | 
			
		||||
					{{else}}
 | 
			
		||||
						<span class="ui image">{{svg "octicon-desktop-download"}}</span>
 | 
			
		||||
					{{end}}
 | 
			
		||||
					<span><strong>{{.Name}}</strong></span>
 | 
			
		||||
				</a>
 | 
			
		||||
			</div>
 | 
			
		||||
			<div class="four wide column" style="padding: 0px;">
 | 
			
		||||
				<span class="ui text grey right">{{.Size | FileSize}}</span>
 | 
			
		||||
			</div>
 | 
			
		||||
		{{end -}}
 | 
			
		||||
	</div>
 | 
			
		||||
 | 
			
		||||
    {{if $hasThumbnails}}
 | 
			
		||||
        <div class="ui clearing divider"></div>
 | 
			
		||||
        <div class="ui small images thumbnails">
 | 
			
		||||
            {{- range .Attachments -}}
 | 
			
		||||
                {{if FilenameIsImage .Name}}
 | 
			
		||||
                    {{if not (containGeneric $.Content .UUID)}}
 | 
			
		||||
                    <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}">
 | 
			
		||||
                        <img class="ui image" src="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'>
 | 
			
		||||
                    </a>
 | 
			
		||||
                    {{end}}
 | 
			
		||||
                {{end}}
 | 
			
		||||
            {{end -}}
 | 
			
		||||
        </div>
 | 
			
		||||
    {{end}}
 | 
			
		||||
	{{if $hasThumbnails}}
 | 
			
		||||
		<div class="ui clearing divider"></div>
 | 
			
		||||
		<div class="ui small images thumbnails">
 | 
			
		||||
			{{- range .Attachments -}}
 | 
			
		||||
				{{if FilenameIsImage .Name}}
 | 
			
		||||
					{{if not (containGeneric $.Content .UUID)}}
 | 
			
		||||
					<a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}">
 | 
			
		||||
						<img class="ui image" src="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'>
 | 
			
		||||
					</a>
 | 
			
		||||
					{{end}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
			{{end -}}
 | 
			
		||||
		</div>
 | 
			
		||||
	{{end}}
 | 
			
		||||
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,13 +3,13 @@
 | 
			
		|||
	{{ $createdStr:= TimeSinceUnix .CreatedUnix $.Lang }}
 | 
			
		||||
 | 
			
		||||
	<!-- 0 = COMMENT, 1 = REOPEN, 2 = CLOSE, 3 = ISSUE_REF, 4 = COMMIT_REF,
 | 
			
		||||
	 5 = COMMENT_REF, 6 = PULL_REF, 7 = COMMENT_LABEL, 12 = START_TRACKING,
 | 
			
		||||
	 13 = STOP_TRACKING, 14 = ADD_TIME_MANUAL, 16 = ADDED_DEADLINE, 17 = MODIFIED_DEADLINE,
 | 
			
		||||
	 18 = REMOVED_DEADLINE, 19 = ADD_DEPENDENCY, 20 = REMOVE_DEPENDENCY, 21 = CODE,
 | 
			
		||||
	 22 = REVIEW, 23 = ISSUE_LOCKED, 24 = ISSUE_UNLOCKED, 25 = TARGET_BRANCH_CHANGED,
 | 
			
		||||
	 26 = DELETE_TIME_MANUAL, 27 = REVIEW_REQUEST, 28 = MERGE_PULL_REQUEST,
 | 
			
		||||
	 29 = PULL_PUSH_EVENT, 30 = PROJECT_CHANGED, 31 = PROJECT_BOARD_CHANGED
 | 
			
		||||
	 32 = DISMISSED_REVIEW -->
 | 
			
		||||
	5 = COMMENT_REF, 6 = PULL_REF, 7 = COMMENT_LABEL, 12 = START_TRACKING,
 | 
			
		||||
	13 = STOP_TRACKING, 14 = ADD_TIME_MANUAL, 16 = ADDED_DEADLINE, 17 = MODIFIED_DEADLINE,
 | 
			
		||||
	18 = REMOVED_DEADLINE, 19 = ADD_DEPENDENCY, 20 = REMOVE_DEPENDENCY, 21 = CODE,
 | 
			
		||||
	22 = REVIEW, 23 = ISSUE_LOCKED, 24 = ISSUE_UNLOCKED, 25 = TARGET_BRANCH_CHANGED,
 | 
			
		||||
	26 = DELETE_TIME_MANUAL, 27 = REVIEW_REQUEST, 28 = MERGE_PULL_REQUEST,
 | 
			
		||||
	29 = PULL_PUSH_EVENT, 30 = PROJECT_CHANGED, 31 = PROJECT_BOARD_CHANGED
 | 
			
		||||
	32 = DISMISSED_REVIEW -->
 | 
			
		||||
	{{if eq .Type 0}}
 | 
			
		||||
		<div class="timeline-item comment" id="{{.HashTag}}">
 | 
			
		||||
		{{if .OriginalAuthor }}
 | 
			
		||||
| 
						 | 
				
			
			@ -73,9 +73,9 @@
 | 
			
		|||
					</div>
 | 
			
		||||
					<div id="comment-{{.ID}}" class="raw-content hide">{{.Content}}</div>
 | 
			
		||||
					<div class="edit-content-zone hide" data-write="issuecomment-{{.ID}}-write" data-preview="issuecomment-{{.ID}}-preview" data-update-url="{{$.RepoLink}}/comments/{{.ID}}" data-context="{{$.RepoLink}}" data-attachment-url="{{$.RepoLink}}/comments/{{.ID}}/attachments"></div>
 | 
			
		||||
    				{{if .Attachments}}
 | 
			
		||||
    					{{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Attachments "Content" .RenderedContent}}
 | 
			
		||||
    				{{end}}
 | 
			
		||||
					{{if .Attachments}}
 | 
			
		||||
						{{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Attachments "Content" .RenderedContent}}
 | 
			
		||||
					{{end}}
 | 
			
		||||
				</div>
 | 
			
		||||
				{{$reactions := .Reactions.GroupByType}}
 | 
			
		||||
				{{if $reactions}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -57,34 +57,34 @@
 | 
			
		|||
				</span>
 | 
			
		||||
			{{end}}
 | 
			
		||||
			<span id="pull-desc-edit" style="display: none">
 | 
			
		||||
								<div class="ui floating filter dropdown">
 | 
			
		||||
									<div class="ui basic small button">
 | 
			
		||||
										<span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$.HeadTarget}}</span>
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
								{{svg "octicon-arrow-right"}}
 | 
			
		||||
								 <div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
 | 
			
		||||
									<div class="ui basic small button">
 | 
			
		||||
										<span class="text" id="pull-target-branch" data-basename="{{$.BaseName}}" data-branch="{{$.BaseBranch}}">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span>
 | 
			
		||||
										{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
									</div>
 | 
			
		||||
									<div class="menu">
 | 
			
		||||
										<div class="ui icon search input">
 | 
			
		||||
											<i class="icon df ac jc m-0">{{svg "octicon-filter" 16}}</i>
 | 
			
		||||
											<input name="search" placeholder="{{.i18n.Tr "repo.pulls.filter_branch"}}...">
 | 
			
		||||
										</div>
 | 
			
		||||
										<div class="scrolling menu" id="branch-select">
 | 
			
		||||
											{{range .Branches}}
 | 
			
		||||
												{{ $sameBase := ne $.BaseName $.HeadUserName }}
 | 
			
		||||
												{{ $differentBranch := ne . $.HeadBranch }}
 | 
			
		||||
												{{ if or $sameBase $differentBranch }}
 | 
			
		||||
													<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-branch="{{.}}">{{$.BaseName}}{{if $.HeadRepo}}/{{$.HeadRepo}}{{end}}:{{.}}</div>
 | 
			
		||||
												{{ end }}
 | 
			
		||||
											{{end}}
 | 
			
		||||
										</div>
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
					 </span>
 | 
			
		||||
				<div class="ui floating filter dropdown">
 | 
			
		||||
					<div class="ui basic small button">
 | 
			
		||||
						<span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$.HeadTarget}}</span>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
				{{svg "octicon-arrow-right"}}
 | 
			
		||||
				<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
 | 
			
		||||
					<div class="ui basic small button">
 | 
			
		||||
						<span class="text" id="pull-target-branch" data-basename="{{$.BaseName}}" data-branch="{{$.BaseBranch}}">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span>
 | 
			
		||||
						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="menu">
 | 
			
		||||
						<div class="ui icon search input">
 | 
			
		||||
							<i class="icon df ac jc m-0">{{svg "octicon-filter" 16}}</i>
 | 
			
		||||
							<input name="search" placeholder="{{.i18n.Tr "repo.pulls.filter_branch"}}...">
 | 
			
		||||
						</div>
 | 
			
		||||
						<div class="scrolling menu" id="branch-select">
 | 
			
		||||
							{{range .Branches}}
 | 
			
		||||
								{{ $sameBase := ne $.BaseName $.HeadUserName }}
 | 
			
		||||
								{{ $differentBranch := ne . $.HeadBranch }}
 | 
			
		||||
								{{ if or $sameBase $differentBranch }}
 | 
			
		||||
									<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-branch="{{.}}">{{$.BaseName}}{{if $.HeadRepo}}/{{$.HeadRepo}}{{end}}:{{.}}</div>
 | 
			
		||||
								{{ end }}
 | 
			
		||||
							{{end}}
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			</span>
 | 
			
		||||
		{{end}}
 | 
			
		||||
	{{else}}
 | 
			
		||||
		{{ $createdStr:= TimeSinceUnix .Issue.CreatedUnix $.Lang }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@
 | 
			
		|||
				{{.CsrfTokenHtml}}
 | 
			
		||||
				<h3 class="ui top attached header">
 | 
			
		||||
					{{.i18n.Tr "repo.migrate.migrate" .service.Title}}
 | 
			
		||||
                    <input id="service_type" type="hidden" name="service" value="{{.service}}">
 | 
			
		||||
					<input id="service_type" type="hidden" name="service" value="{{.service}}">
 | 
			
		||||
				</h3>
 | 
			
		||||
				<div class="ui attached segment">
 | 
			
		||||
					{{template "base/alert" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@
 | 
			
		|||
				{{.CsrfTokenHtml}}
 | 
			
		||||
				<h3 class="ui top attached header">
 | 
			
		||||
					{{.i18n.Tr "repo.migrate.migrate" .service.Title}}
 | 
			
		||||
                    <input id="service_type" type="hidden" name="service" value="{{.service}}">
 | 
			
		||||
					<input id="service_type" type="hidden" name="service" value="{{.service}}">
 | 
			
		||||
				</h3>
 | 
			
		||||
				<div class="ui attached segment">
 | 
			
		||||
					{{template "base/alert" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,7 @@
 | 
			
		|||
								<label>{{.i18n.Tr "repo.migrate_items_releases" | Safe}}</label>
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
					  -->
 | 
			
		||||
						-->
 | 
			
		||||
					</div>
 | 
			
		||||
 | 
			
		||||
					<div class="ui divider"></div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,32 +1,32 @@
 | 
			
		|||
{{if $.LatestCommitStatus}}
 | 
			
		||||
    {{if not $.Issue.PullRequest.HasMerged}}
 | 
			
		||||
        <div class="ui top attached header">
 | 
			
		||||
            {{if eq .LatestCommitStatus.State "pending"}}
 | 
			
		||||
                {{$.i18n.Tr "repo.pulls.status_checking"}}
 | 
			
		||||
            {{else if eq .LatestCommitStatus.State "success"}}
 | 
			
		||||
                {{$.i18n.Tr "repo.pulls.status_checks_success"}}
 | 
			
		||||
            {{else if eq .LatestCommitStatus.State "warning"}}
 | 
			
		||||
                {{$.i18n.Tr "repo.pulls.status_checks_warning"}}
 | 
			
		||||
            {{else if eq .LatestCommitStatus.State "failure"}}
 | 
			
		||||
                {{$.i18n.Tr "repo.pulls.status_checks_failure"}}
 | 
			
		||||
            {{else if eq .LatestCommitStatus.State "error"}}
 | 
			
		||||
                {{$.i18n.Tr "repo.pulls.status_checks_error"}}
 | 
			
		||||
            {{else}}
 | 
			
		||||
                {{$.i18n.Tr "repo.pulls.status_checking"}}
 | 
			
		||||
            {{end}}
 | 
			
		||||
    	    </div>
 | 
			
		||||
    {{end}}
 | 
			
		||||
	{{if not $.Issue.PullRequest.HasMerged}}
 | 
			
		||||
		<div class="ui top attached header">
 | 
			
		||||
			{{if eq .LatestCommitStatus.State "pending"}}
 | 
			
		||||
				{{$.i18n.Tr "repo.pulls.status_checking"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "success"}}
 | 
			
		||||
				{{$.i18n.Tr "repo.pulls.status_checks_success"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "warning"}}
 | 
			
		||||
				{{$.i18n.Tr "repo.pulls.status_checks_warning"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "failure"}}
 | 
			
		||||
				{{$.i18n.Tr "repo.pulls.status_checks_failure"}}
 | 
			
		||||
			{{else if eq .LatestCommitStatus.State "error"}}
 | 
			
		||||
				{{$.i18n.Tr "repo.pulls.status_checks_error"}}
 | 
			
		||||
			{{else}}
 | 
			
		||||
				{{$.i18n.Tr "repo.pulls.status_checking"}}
 | 
			
		||||
			{{end}}
 | 
			
		||||
			</div>
 | 
			
		||||
	{{end}}
 | 
			
		||||
 | 
			
		||||
    {{range $.LatestCommitStatuses}}
 | 
			
		||||
        <div class="ui attached segment">
 | 
			
		||||
            <span>{{template "repo/commit_status" .}}</span>
 | 
			
		||||
            <span class="ui">{{.Context}} <span class="text grey">{{.Description}}</span></span>
 | 
			
		||||
            <div class="ui right">
 | 
			
		||||
                {{if $.is_context_required}}
 | 
			
		||||
                    {{if (call $.is_context_required .Context)}}<div class="ui label">{{$.i18n.Tr "repo.pulls.status_checks_requested"}}</div>{{end}}
 | 
			
		||||
                {{end}}
 | 
			
		||||
                <span class="ui">{{if .TargetURL}}<a href="{{.TargetURL}}">{{$.i18n.Tr "repo.pulls.status_checks_details"}}</a>{{end}}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    {{end}}
 | 
			
		||||
	{{range $.LatestCommitStatuses}}
 | 
			
		||||
		<div class="ui attached segment">
 | 
			
		||||
			<span>{{template "repo/commit_status" .}}</span>
 | 
			
		||||
			<span class="ui">{{.Context}} <span class="text grey">{{.Description}}</span></span>
 | 
			
		||||
			<div class="ui right">
 | 
			
		||||
				{{if $.is_context_required}}
 | 
			
		||||
					{{if (call $.is_context_required .Context)}}<div class="ui label">{{$.i18n.Tr "repo.pulls.status_checks_requested"}}</div>{{end}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
				<span class="ui">{{if .TargetURL}}<a href="{{.TargetURL}}">{{$.i18n.Tr "repo.pulls.status_checks_details"}}</a>{{end}}</span>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
	{{end}}
 | 
			
		||||
{{end}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,37 +9,37 @@
 | 
			
		|||
				{{.i18n.Tr "repo.settings.archive.branchsettings_unavailable"}}
 | 
			
		||||
			</div>
 | 
			
		||||
		{{else}}
 | 
			
		||||
            <h4 class="ui top attached header">
 | 
			
		||||
                {{.i18n.Tr "repo.default_branch"}}
 | 
			
		||||
            </h4>
 | 
			
		||||
            <div class="ui attached segment">
 | 
			
		||||
                <p>
 | 
			
		||||
                    {{.i18n.Tr "repo.settings.default_branch_desc"}}
 | 
			
		||||
                </p>
 | 
			
		||||
                <form class="ui form" action="{{.Link}}" method="post">
 | 
			
		||||
                    {{.CsrfTokenHtml}}
 | 
			
		||||
                    <input type="hidden" name="action" value="default_branch">
 | 
			
		||||
                    {{if not .Repository.IsEmpty}}
 | 
			
		||||
                    <div class="required inline field">
 | 
			
		||||
                        <div class="ui dropdown selection" tabindex="0">
 | 
			
		||||
                            <select name="branch">
 | 
			
		||||
                                <option value="{{.Repository.DefaultBranch}}">{{.Repository.DefaultBranch}}</option>
 | 
			
		||||
                                {{range .Branches}}
 | 
			
		||||
                                    <option value="{{.}}">{{.}}</option>
 | 
			
		||||
                                {{end}}
 | 
			
		||||
                            </select>{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
                            <div class="default text">{{.Repository.DefaultBranch}}</div>
 | 
			
		||||
                            <div class="menu transition hidden" tabindex="-1" style="display: block !important;">
 | 
			
		||||
                                {{range .Branches}}
 | 
			
		||||
                                    <div class="item" data-value="{{.}}">{{.}}</div>
 | 
			
		||||
                                {{end}}
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <button class="ui green button">{{$.i18n.Tr "repo.settings.update_settings"}}</button>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    {{end}}
 | 
			
		||||
                </form>
 | 
			
		||||
            </div>
 | 
			
		||||
			<h4 class="ui top attached header">
 | 
			
		||||
				{{.i18n.Tr "repo.default_branch"}}
 | 
			
		||||
			</h4>
 | 
			
		||||
			<div class="ui attached segment">
 | 
			
		||||
				<p>
 | 
			
		||||
					{{.i18n.Tr "repo.settings.default_branch_desc"}}
 | 
			
		||||
				</p>
 | 
			
		||||
				<form class="ui form" action="{{.Link}}" method="post">
 | 
			
		||||
					{{.CsrfTokenHtml}}
 | 
			
		||||
					<input type="hidden" name="action" value="default_branch">
 | 
			
		||||
					{{if not .Repository.IsEmpty}}
 | 
			
		||||
					<div class="required inline field">
 | 
			
		||||
						<div class="ui dropdown selection" tabindex="0">
 | 
			
		||||
							<select name="branch">
 | 
			
		||||
								<option value="{{.Repository.DefaultBranch}}">{{.Repository.DefaultBranch}}</option>
 | 
			
		||||
								{{range .Branches}}
 | 
			
		||||
									<option value="{{.}}">{{.}}</option>
 | 
			
		||||
								{{end}}
 | 
			
		||||
							</select>{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
							<div class="default text">{{.Repository.DefaultBranch}}</div>
 | 
			
		||||
							<div class="menu transition hidden" tabindex="-1" style="display: block !important;">
 | 
			
		||||
								{{range .Branches}}
 | 
			
		||||
									<div class="item" data-value="{{.}}">{{.}}</div>
 | 
			
		||||
								{{end}}
 | 
			
		||||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
						<button class="ui green button">{{$.i18n.Tr "repo.settings.update_settings"}}</button>
 | 
			
		||||
					</div>
 | 
			
		||||
					{{end}}
 | 
			
		||||
				</form>
 | 
			
		||||
			</div>
 | 
			
		||||
 | 
			
		||||
			<h4 class="ui top attached header">
 | 
			
		||||
				{{.i18n.Tr "repo.settings.protected_branch"}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,12 +19,12 @@
 | 
			
		|||
				<div class="ui key list">
 | 
			
		||||
					{{range .Deploykeys}}
 | 
			
		||||
						<div class="item">
 | 
			
		||||
						    <div class="right floated content">
 | 
			
		||||
							<div class="right floated content">
 | 
			
		||||
								<button class="ui red tiny button delete-button" data-url="{{$.Link}}/delete" data-id="{{.ID}}">
 | 
			
		||||
									{{$.i18n.Tr "settings.delete_key"}}
 | 
			
		||||
								</button>
 | 
			
		||||
						    </div>
 | 
			
		||||
						    <div class="left floated content">
 | 
			
		||||
							</div>
 | 
			
		||||
							<div class="left floated content">
 | 
			
		||||
								<i class="{{if .HasRecentActivity}}green{{end}}" {{if .HasRecentActivity}}data-content="{{$.i18n.Tr "settings.key_state_desc"}}" data-variation="inverted"{{end}}>{{svg "octicon-key" 32}}</i>
 | 
			
		||||
							</div>
 | 
			
		||||
							<div class="content">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,25 +7,25 @@
 | 
			
		|||
			<input id="homeserver_url" name="homeserver_url" type="url" value="{{.MatrixHook.HomeserverURL}}" autofocus required>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="required field {{if .Err_Room}}error{{end}}">
 | 
			
		||||
        	<label for="room_id">{{.i18n.Tr "repo.settings.matrix.room_id"}}</label>
 | 
			
		||||
          	<input id="room_id" name="room_id" type="text" value="{{.MatrixHook.Room}}" required>
 | 
			
		||||
        </div>
 | 
			
		||||
    	<div class="required field {{if .Err_AccessToken}}error{{end}}">
 | 
			
		||||
    		<label for="access_token">{{.i18n.Tr "repo.settings.matrix.access_token"}}</label>
 | 
			
		||||
    		<input id="access_token" name="access_token" type="text" value="{{.MatrixHook.AccessToken}}" required>
 | 
			
		||||
    	</div>
 | 
			
		||||
    	<div class="field">
 | 
			
		||||
    		<label>{{.i18n.Tr "repo.settings.matrix.message_type"}}</label>
 | 
			
		||||
     		<div class="ui selection dropdown">
 | 
			
		||||
	     		<input type="hidden" id="message_type" name="message_type" value="{{if .MatrixHook.MessageType}}{{.MatrixHook.MessageType}}{{else}}1{{end}}">
 | 
			
		||||
    	 		<div class="default text"></div>
 | 
			
		||||
     				{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
     				<div class="menu">
 | 
			
		||||
     					<div class="item" data-value="1">m.notice</div>
 | 
			
		||||
     					<div class="item" data-value="2">m.text</div>
 | 
			
		||||
     				</div>
 | 
			
		||||
     			</div>
 | 
			
		||||
     	</div>
 | 
			
		||||
			<label for="room_id">{{.i18n.Tr "repo.settings.matrix.room_id"}}</label>
 | 
			
		||||
			<input id="room_id" name="room_id" type="text" value="{{.MatrixHook.Room}}" required>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="required field {{if .Err_AccessToken}}error{{end}}">
 | 
			
		||||
			<label for="access_token">{{.i18n.Tr "repo.settings.matrix.access_token"}}</label>
 | 
			
		||||
			<input id="access_token" name="access_token" type="text" value="{{.MatrixHook.AccessToken}}" required>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="field">
 | 
			
		||||
			<label>{{.i18n.Tr "repo.settings.matrix.message_type"}}</label>
 | 
			
		||||
				<div class="ui selection dropdown">
 | 
			
		||||
				<input type="hidden" id="message_type" name="message_type" value="{{if .MatrixHook.MessageType}}{{.MatrixHook.MessageType}}{{else}}1{{end}}">
 | 
			
		||||
				<div class="default text"></div>
 | 
			
		||||
				{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
			
		||||
				<div class="menu">
 | 
			
		||||
					<div class="item" data-value="1">m.notice</div>
 | 
			
		||||
					<div class="item" data-value="2">m.text</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
		{{template "repo/settings/webhook/settings" .}}
 | 
			
		||||
	</form>
 | 
			
		||||
{{end}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,10 +6,10 @@
 | 
			
		|||
			<label for="bot_token">{{.i18n.Tr "repo.settings.bot_token"}}</label>
 | 
			
		||||
			<input id="bot_token" name="bot_token" type="text" value="{{.TelegramHook.BotToken}}" autofocus required>
 | 
			
		||||
		</div>
 | 
			
		||||
    <div class="required field {{if .Err_ChatID}}error{{end}}">
 | 
			
		||||
      <label for="chat_id">{{.i18n.Tr "repo.settings.chat_id"}}</label>
 | 
			
		||||
      <input id="chat_id" name="chat_id" type="text" value="{{.TelegramHook.ChatID}}" required>
 | 
			
		||||
    </div>
 | 
			
		||||
		<div class="required field {{if .Err_ChatID}}error{{end}}">
 | 
			
		||||
			<label for="chat_id">{{.i18n.Tr "repo.settings.chat_id"}}</label>
 | 
			
		||||
			<input id="chat_id" name="chat_id" type="text" value="{{.TelegramHook.ChatID}}" required>
 | 
			
		||||
		</div>
 | 
			
		||||
		{{template "repo/settings/webhook/settings" .}}
 | 
			
		||||
	</form>
 | 
			
		||||
{{end}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -128,10 +128,10 @@
 | 
			
		|||
 | 
			
		||||
<script>
 | 
			
		||||
function submitDeleteForm() {
 | 
			
		||||
    var message = prompt("{{.i18n.Tr "repo.delete_confirm_message"}}\n\n{{.i18n.Tr "repo.delete_commit_summary"}}", "Delete '{{.TreeName}}'");
 | 
			
		||||
    if (message != null) {
 | 
			
		||||
        $("#delete-message").val(message);
 | 
			
		||||
        $("#delete-file-form").submit()
 | 
			
		||||
    }
 | 
			
		||||
	var message = prompt("{{.i18n.Tr "repo.delete_confirm_message"}}\n\n{{.i18n.Tr "repo.delete_commit_summary"}}", "Delete '{{.TreeName}}'");
 | 
			
		||||
	if (message != null) {
 | 
			
		||||
		$("#delete-message").val(message);
 | 
			
		||||
		$("#delete-file-form").submit()
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
			</h4>
 | 
			
		||||
 | 
			
		||||
			{{if and .Commits (gt .CommitCount 0)}}
 | 
			
		||||
                {{template "repo/commits_list" .}}
 | 
			
		||||
				{{template "repo/commits_list" .}}
 | 
			
		||||
			{{end}}
 | 
			
		||||
 | 
			
		||||
			{{template "base/paginate" .}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,8 +48,8 @@
 | 
			
		|||
				<div class="desc issue-item-bottom-row df ac fw my-1">
 | 
			
		||||
					<a class="index ml-0 mr-2" href="{{if .HTMLURL}}{{.HTMLURL}}{{else}}{{$.Link}}/{{.Index}}{{end}}">
 | 
			
		||||
						{{if eq $.listType "dashboard"}}
 | 
			
		||||
          		{{.Repo.FullName}}#{{.Index}}
 | 
			
		||||
          	{{else}}
 | 
			
		||||
							{{.Repo.FullName}}#{{.Index}}
 | 
			
		||||
						{{else}}
 | 
			
		||||
							#{{.Index}}
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</a>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,4 +10,3 @@
 | 
			
		|||
		{{end}}
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@
 | 
			
		|||
					<div class="inline field">
 | 
			
		||||
						<label></label>
 | 
			
		||||
						<button class="ui green button">{{.i18n.Tr "auth.verify"}}</button>
 | 
			
		||||
                        <a href="{{AppSubUrl}}/user/two_factor/scratch">{{.i18n.Tr "auth.use_scratch_code" | Str2html}}</a>
 | 
			
		||||
						<a href="{{AppSubUrl}}/user/two_factor/scratch">{{.i18n.Tr "auth.use_scratch_code" | Str2html}}</a>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			</form>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,56 +76,56 @@
 | 
			
		|||
							</div>
 | 
			
		||||
						</div>
 | 
			
		||||
					</div>
 | 
			
		||||
        </div>
 | 
			
		||||
                <div class="milestone list">
 | 
			
		||||
                    {{range .Milestones}}
 | 
			
		||||
                        <li class="item">
 | 
			
		||||
                            <div class="ui label">{{.Repo.FullName}}</div>
 | 
			
		||||
				</div>
 | 
			
		||||
				<div class="milestone list">
 | 
			
		||||
					{{range .Milestones}}
 | 
			
		||||
						<li class="item">
 | 
			
		||||
							<div class="ui label">{{.Repo.FullName}}</div>
 | 
			
		||||
							{{svg "octicon-milestone"}} <a href="{{.Repo.Link }}/milestone/{{.ID}}">{{.Name}}</a>
 | 
			
		||||
                            <div class="ui right green progress" data-percent="{{.Completeness}}">
 | 
			
		||||
                                <div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}>
 | 
			
		||||
                                    <div class="progress"></div>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                            <div class="meta">
 | 
			
		||||
                                {{ $closedDate:= TimeSinceUnix .ClosedDateUnix $.Lang }}
 | 
			
		||||
                                {{if .IsClosed}}
 | 
			
		||||
							<div class="ui right green progress" data-percent="{{.Completeness}}">
 | 
			
		||||
								<div class="bar" {{if not .Completeness}}style="background-color: transparent"{{end}}>
 | 
			
		||||
									<div class="progress"></div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</div>
 | 
			
		||||
							<div class="meta">
 | 
			
		||||
								{{ $closedDate:= TimeSinceUnix .ClosedDateUnix $.Lang }}
 | 
			
		||||
								{{if .IsClosed}}
 | 
			
		||||
									{{svg "octicon-clock"}} {{$.i18n.Tr "repo.milestones.closed" $closedDate|Str2html}}
 | 
			
		||||
                                {{else}}
 | 
			
		||||
								{{else}}
 | 
			
		||||
									{{svg "octicon-calendar"}}
 | 
			
		||||
                                    {{if .DeadlineString}}
 | 
			
		||||
                                        <span {{if .IsOverdue}}class="overdue"{{end}}>{{.DeadlineString}}</span>
 | 
			
		||||
                                    {{else}}
 | 
			
		||||
                                        {{$.i18n.Tr "repo.milestones.no_due_date"}}
 | 
			
		||||
                                    {{end}}
 | 
			
		||||
                                {{end}}
 | 
			
		||||
                                <span class="issue-stats">
 | 
			
		||||
                                    {{svg "octicon-issue-opened"}} {{$.i18n.Tr "repo.milestones.open_tab" .NumOpenIssues}}
 | 
			
		||||
									{{if .DeadlineString}}
 | 
			
		||||
										<span {{if .IsOverdue}}class="overdue"{{end}}>{{.DeadlineString}}</span>
 | 
			
		||||
									{{else}}
 | 
			
		||||
										{{$.i18n.Tr "repo.milestones.no_due_date"}}
 | 
			
		||||
									{{end}}
 | 
			
		||||
								{{end}}
 | 
			
		||||
								<span class="issue-stats">
 | 
			
		||||
									{{svg "octicon-issue-opened"}} {{$.i18n.Tr "repo.milestones.open_tab" .NumOpenIssues}}
 | 
			
		||||
									{{svg "octicon-issue-closed"}} {{$.i18n.Tr "repo.milestones.close_tab" .NumClosedIssues}}
 | 
			
		||||
                                    {{if .TotalTrackedTime}}{{svg "octicon-clock"}} {{.TotalTrackedTime|Sec2Time}}{{end}}
 | 
			
		||||
                                </span>
 | 
			
		||||
                            </div>
 | 
			
		||||
                            {{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
 | 
			
		||||
                                <div class="ui right operate">
 | 
			
		||||
                                    <a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-pencil"}} {{$.i18n.Tr "repo.issues.label_edit"}}</a>
 | 
			
		||||
                                    {{if .IsClosed}}
 | 
			
		||||
                                        <a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-check"}} {{$.i18n.Tr "repo.milestones.open"}}</a>
 | 
			
		||||
                                    {{else}}
 | 
			
		||||
                                        <a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-x"}} {{$.i18n.Tr "repo.milestones.close"}}</a>
 | 
			
		||||
                                    {{end}}
 | 
			
		||||
                                    <a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trash"}} {{$.i18n.Tr "repo.issues.label_delete"}}</a>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            {{end}}
 | 
			
		||||
                            {{if .Content}}
 | 
			
		||||
                                <div class="content">
 | 
			
		||||
                                    {{.RenderedContent|Str2html}}
 | 
			
		||||
                                </div>
 | 
			
		||||
                            {{end}}
 | 
			
		||||
                        </li>
 | 
			
		||||
                    {{end}}
 | 
			
		||||
									{{if .TotalTrackedTime}}{{svg "octicon-clock"}} {{.TotalTrackedTime|Sec2Time}}{{end}}
 | 
			
		||||
								</span>
 | 
			
		||||
							</div>
 | 
			
		||||
							{{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
 | 
			
		||||
								<div class="ui right operate">
 | 
			
		||||
									<a href="{{$.Link}}/{{.ID}}/edit" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-pencil"}} {{$.i18n.Tr "repo.issues.label_edit"}}</a>
 | 
			
		||||
									{{if .IsClosed}}
 | 
			
		||||
										<a href="{{$.Link}}/{{.ID}}/open" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-check"}} {{$.i18n.Tr "repo.milestones.open"}}</a>
 | 
			
		||||
									{{else}}
 | 
			
		||||
										<a href="{{$.Link}}/{{.ID}}/close" data-id={{.ID}} data-title={{.Name}}>{{svg "octicon-x"}} {{$.i18n.Tr "repo.milestones.close"}}</a>
 | 
			
		||||
									{{end}}
 | 
			
		||||
									<a class="delete-button" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trash"}} {{$.i18n.Tr "repo.issues.label_delete"}}</a>
 | 
			
		||||
								</div>
 | 
			
		||||
							{{end}}
 | 
			
		||||
							{{if .Content}}
 | 
			
		||||
								<div class="content">
 | 
			
		||||
									{{.RenderedContent|Str2html}}
 | 
			
		||||
								</div>
 | 
			
		||||
							{{end}}
 | 
			
		||||
						</li>
 | 
			
		||||
					{{end}}
 | 
			
		||||
 | 
			
		||||
                    {{template "base/paginate" .}}
 | 
			
		||||
                </div>
 | 
			
		||||
					{{template "base/paginate" .}}
 | 
			
		||||
				</div>
 | 
			
		||||
 | 
			
		||||
			</div>
 | 
			
		||||
		</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,134 +1,134 @@
 | 
			
		|||
<div class="page-content user notification" id="notification_div" data-params="{{.Page.GetParams}}">
 | 
			
		||||
	<div class="ui container">
 | 
			
		||||
		<h1 class="ui dividing header">{{.i18n.Tr "notification.notifications"}}</h1>
 | 
			
		||||
        <div class="ui top attached tabular menu">
 | 
			
		||||
            {{ $notificationUnreadCount := call .NotificationUnreadCount}}
 | 
			
		||||
            <a href="{{AppSubUrl}}/notifications?q=unread" class="{{if eq .Status 1}}active{{end}} item">
 | 
			
		||||
                {{.i18n.Tr "notification.unread"}}
 | 
			
		||||
                <div class="ui label {{if not $notificationUnreadCount}}hidden{{end}}">{{$notificationUnreadCount}}</div>
 | 
			
		||||
            </a>
 | 
			
		||||
            <a href="{{AppSubUrl}}/notifications?q=read" class="{{if eq .Status 2}}active{{end}} item">
 | 
			
		||||
                {{.i18n.Tr "notification.read"}}
 | 
			
		||||
            </a>
 | 
			
		||||
            {{if and (eq .Status 1)}}
 | 
			
		||||
                <form action="{{AppSubUrl}}/notifications/purge" method="POST" style="margin-left: auto;">
 | 
			
		||||
                    {{$.CsrfTokenHtml}}
 | 
			
		||||
                    <div class="{{if not $notificationUnreadCount}}hide{{end}}">
 | 
			
		||||
                        <button class="ui mini button primary" title='{{$.i18n.Tr "notification.mark_all_as_read"}}'>
 | 
			
		||||
                            {{svg "octicon-checklist"}}
 | 
			
		||||
                        </button>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </form>
 | 
			
		||||
            {{end}}
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui bottom attached active tab segment">
 | 
			
		||||
            {{if eq (len .Notifications) 0}}
 | 
			
		||||
                {{if eq .Status 1}}
 | 
			
		||||
                    {{.i18n.Tr "notification.no_unread"}}
 | 
			
		||||
                {{else}}
 | 
			
		||||
                    {{.i18n.Tr "notification.no_read"}}
 | 
			
		||||
                {{end}}
 | 
			
		||||
            {{else}}
 | 
			
		||||
                <table class="ui unstackable striped very compact small selectable table" id="notification_table">
 | 
			
		||||
                    <tbody>
 | 
			
		||||
                        {{range $notification := .Notifications}}
 | 
			
		||||
                            {{$issue := .Issue}}
 | 
			
		||||
                            {{$repo := .Repository}}
 | 
			
		||||
                            {{$repoOwner := $repo.MustOwner}}
 | 
			
		||||
                            <tr id="notification_{{.ID}}">
 | 
			
		||||
                                <td class="collapsing" data-href="{{.HTMLURL}}">
 | 
			
		||||
                                    {{if eq .Status 3}}
 | 
			
		||||
                                        <span class="blue">{{svg "octicon-pin"}}</span>
 | 
			
		||||
                                    {{else if not $issue}}
 | 
			
		||||
                                        <span class="gray">{{svg "octicon-repo"}}</span>
 | 
			
		||||
                                    {{else if $issue.IsPull}}
 | 
			
		||||
                                        {{if $issue.IsClosed}}
 | 
			
		||||
                                            {{if $issue.GetPullRequest.HasMerged}}
 | 
			
		||||
                                                <span class="purple">{{svg "octicon-git-merge"}}</span>
 | 
			
		||||
                                            {{else}}
 | 
			
		||||
                                                <span class="red">{{svg "octicon-git-pull-request"}}</span>
 | 
			
		||||
                                            {{end}}
 | 
			
		||||
                                        {{else}}
 | 
			
		||||
                                            <span class="green">{{svg "octicon-git-pull-request"}}</span>
 | 
			
		||||
                                        {{end}}
 | 
			
		||||
                                    {{else}}
 | 
			
		||||
                                        {{if $issue.IsClosed}}
 | 
			
		||||
                                            <span class="red">{{svg "octicon-issue-closed"}}</span>
 | 
			
		||||
                                        {{else}}
 | 
			
		||||
                                            <span class="green">{{svg "octicon-issue-opened"}}</span>
 | 
			
		||||
                                        {{end}}
 | 
			
		||||
                                    {{end}}
 | 
			
		||||
                                </td>
 | 
			
		||||
                                <td class="eleven wide" data-href="{{.HTMLURL}}">
 | 
			
		||||
                                    <a class="item" href="{{.HTMLURL}}">
 | 
			
		||||
                                        {{if $issue}}
 | 
			
		||||
                                            #{{$issue.Index}} - {{$issue.Title}}
 | 
			
		||||
                                        {{else}}
 | 
			
		||||
                                            {{$repo.FullName}}
 | 
			
		||||
                                        {{end}}
 | 
			
		||||
                                    </a>
 | 
			
		||||
                                </td>
 | 
			
		||||
                                <td data-href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}">
 | 
			
		||||
                                    <a class="item" href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}">
 | 
			
		||||
                                        {{$repoOwner.Name}}/{{$repo.Name}}
 | 
			
		||||
                                    </a>
 | 
			
		||||
                                </td>
 | 
			
		||||
                                <td class="collapsing">
 | 
			
		||||
                                    {{if ne .Status 3}}
 | 
			
		||||
                                        <form action="{{AppSubUrl}}/notifications/status" method="POST">
 | 
			
		||||
                                            {{$.CsrfTokenHtml}}
 | 
			
		||||
                                            <input type="hidden" name="notification_id" value="{{.ID}}" />
 | 
			
		||||
                                            <input type="hidden" name="status" value="pinned" />
 | 
			
		||||
                                            <button class="ui mini button" title='{{$.i18n.Tr "notification.pin"}}'
 | 
			
		||||
                                                data-url="{{AppSubUrl}}/notifications/status"
 | 
			
		||||
                                                data-status="pinned"
 | 
			
		||||
                                                data-page="{{$.Page.Paginater.Current}}"
 | 
			
		||||
                                                data-notification-id="{{.ID}}"
 | 
			
		||||
                                                data-q="{{$.Keyword}}">
 | 
			
		||||
                                                {{svg "octicon-pin"}}
 | 
			
		||||
                                            </button>
 | 
			
		||||
                                        </form>
 | 
			
		||||
                                    {{end}}
 | 
			
		||||
                                </td>
 | 
			
		||||
                                <td class="collapsing">
 | 
			
		||||
                                    {{if or (eq .Status 1) (eq .Status 3)}}
 | 
			
		||||
                                        <form action="{{AppSubUrl}}/notifications/status" method="POST">
 | 
			
		||||
                                            {{$.CsrfTokenHtml}}
 | 
			
		||||
                                            <input type="hidden" name="notification_id" value="{{.ID}}" />
 | 
			
		||||
                                            <input type="hidden" name="status" value="read" />
 | 
			
		||||
                                            <input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" />
 | 
			
		||||
                                            <button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_read"}}'
 | 
			
		||||
                                                data-url="{{AppSubUrl}}/notifications/status"
 | 
			
		||||
                                                data-status="read"
 | 
			
		||||
                                                data-page="{{$.Page.Paginater.Current}}"
 | 
			
		||||
                                                data-notification-id="{{.ID}}"
 | 
			
		||||
                                                data-q="{{$.Keyword}}">
 | 
			
		||||
                                                {{svg "octicon-check"}}
 | 
			
		||||
                                            </button>
 | 
			
		||||
                                        </form>
 | 
			
		||||
                                    {{else if eq .Status 2}}
 | 
			
		||||
                                        <form action="{{AppSubUrl}}/notifications/status" method="POST">
 | 
			
		||||
                                            {{$.CsrfTokenHtml}}
 | 
			
		||||
                                            <input type="hidden" name="notification_id" value="{{.ID}}" />
 | 
			
		||||
                                            <input type="hidden" name="status" value="unread" />
 | 
			
		||||
                                            <input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" />
 | 
			
		||||
                                            <button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_unread"}}'
 | 
			
		||||
                                                data-url="{{AppSubUrl}}/notifications/status"
 | 
			
		||||
                                                data-status="unread"
 | 
			
		||||
                                                data-page="{{$.Page.Paginater.Current}}"
 | 
			
		||||
                                                data-notification-id="{{.ID}}"
 | 
			
		||||
                                                data-q="{{$.Keyword}}">
 | 
			
		||||
                                                {{svg "octicon-bell"}}
 | 
			
		||||
                                            </button>
 | 
			
		||||
                                        </form>
 | 
			
		||||
                                    {{end}}
 | 
			
		||||
                                </td>
 | 
			
		||||
                            </tr>
 | 
			
		||||
                        {{end}}
 | 
			
		||||
                    </tbody>
 | 
			
		||||
                </table>
 | 
			
		||||
            {{end}}
 | 
			
		||||
        </div>
 | 
			
		||||
        {{template "base/paginate" .}}
 | 
			
		||||
    </div>
 | 
			
		||||
		<div class="ui top attached tabular menu">
 | 
			
		||||
			{{ $notificationUnreadCount := call .NotificationUnreadCount}}
 | 
			
		||||
			<a href="{{AppSubUrl}}/notifications?q=unread" class="{{if eq .Status 1}}active{{end}} item">
 | 
			
		||||
				{{.i18n.Tr "notification.unread"}}
 | 
			
		||||
				<div class="ui label {{if not $notificationUnreadCount}}hidden{{end}}">{{$notificationUnreadCount}}</div>
 | 
			
		||||
			</a>
 | 
			
		||||
			<a href="{{AppSubUrl}}/notifications?q=read" class="{{if eq .Status 2}}active{{end}} item">
 | 
			
		||||
				{{.i18n.Tr "notification.read"}}
 | 
			
		||||
			</a>
 | 
			
		||||
			{{if and (eq .Status 1)}}
 | 
			
		||||
				<form action="{{AppSubUrl}}/notifications/purge" method="POST" style="margin-left: auto;">
 | 
			
		||||
					{{$.CsrfTokenHtml}}
 | 
			
		||||
					<div class="{{if not $notificationUnreadCount}}hide{{end}}">
 | 
			
		||||
						<button class="ui mini button primary" title='{{$.i18n.Tr "notification.mark_all_as_read"}}'>
 | 
			
		||||
							{{svg "octicon-checklist"}}
 | 
			
		||||
						</button>
 | 
			
		||||
					</div>
 | 
			
		||||
				</form>
 | 
			
		||||
			{{end}}
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="ui bottom attached active tab segment">
 | 
			
		||||
			{{if eq (len .Notifications) 0}}
 | 
			
		||||
				{{if eq .Status 1}}
 | 
			
		||||
					{{.i18n.Tr "notification.no_unread"}}
 | 
			
		||||
				{{else}}
 | 
			
		||||
					{{.i18n.Tr "notification.no_read"}}
 | 
			
		||||
				{{end}}
 | 
			
		||||
			{{else}}
 | 
			
		||||
				<table class="ui unstackable striped very compact small selectable table" id="notification_table">
 | 
			
		||||
					<tbody>
 | 
			
		||||
						{{range $notification := .Notifications}}
 | 
			
		||||
							{{$issue := .Issue}}
 | 
			
		||||
							{{$repo := .Repository}}
 | 
			
		||||
							{{$repoOwner := $repo.MustOwner}}
 | 
			
		||||
							<tr id="notification_{{.ID}}">
 | 
			
		||||
								<td class="collapsing" data-href="{{.HTMLURL}}">
 | 
			
		||||
									{{if eq .Status 3}}
 | 
			
		||||
										<span class="blue">{{svg "octicon-pin"}}</span>
 | 
			
		||||
									{{else if not $issue}}
 | 
			
		||||
										<span class="gray">{{svg "octicon-repo"}}</span>
 | 
			
		||||
									{{else if $issue.IsPull}}
 | 
			
		||||
										{{if $issue.IsClosed}}
 | 
			
		||||
											{{if $issue.GetPullRequest.HasMerged}}
 | 
			
		||||
												<span class="purple">{{svg "octicon-git-merge"}}</span>
 | 
			
		||||
											{{else}}
 | 
			
		||||
												<span class="red">{{svg "octicon-git-pull-request"}}</span>
 | 
			
		||||
											{{end}}
 | 
			
		||||
										{{else}}
 | 
			
		||||
											<span class="green">{{svg "octicon-git-pull-request"}}</span>
 | 
			
		||||
										{{end}}
 | 
			
		||||
									{{else}}
 | 
			
		||||
										{{if $issue.IsClosed}}
 | 
			
		||||
											<span class="red">{{svg "octicon-issue-closed"}}</span>
 | 
			
		||||
										{{else}}
 | 
			
		||||
											<span class="green">{{svg "octicon-issue-opened"}}</span>
 | 
			
		||||
										{{end}}
 | 
			
		||||
									{{end}}
 | 
			
		||||
								</td>
 | 
			
		||||
								<td class="eleven wide" data-href="{{.HTMLURL}}">
 | 
			
		||||
									<a class="item" href="{{.HTMLURL}}">
 | 
			
		||||
										{{if $issue}}
 | 
			
		||||
											#{{$issue.Index}} - {{$issue.Title}}
 | 
			
		||||
										{{else}}
 | 
			
		||||
											{{$repo.FullName}}
 | 
			
		||||
										{{end}}
 | 
			
		||||
									</a>
 | 
			
		||||
								</td>
 | 
			
		||||
								<td data-href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}">
 | 
			
		||||
									<a class="item" href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}">
 | 
			
		||||
										{{$repoOwner.Name}}/{{$repo.Name}}
 | 
			
		||||
									</a>
 | 
			
		||||
								</td>
 | 
			
		||||
								<td class="collapsing">
 | 
			
		||||
									{{if ne .Status 3}}
 | 
			
		||||
										<form action="{{AppSubUrl}}/notifications/status" method="POST">
 | 
			
		||||
											{{$.CsrfTokenHtml}}
 | 
			
		||||
											<input type="hidden" name="notification_id" value="{{.ID}}" />
 | 
			
		||||
											<input type="hidden" name="status" value="pinned" />
 | 
			
		||||
											<button class="ui mini button" title='{{$.i18n.Tr "notification.pin"}}'
 | 
			
		||||
												data-url="{{AppSubUrl}}/notifications/status"
 | 
			
		||||
												data-status="pinned"
 | 
			
		||||
												data-page="{{$.Page.Paginater.Current}}"
 | 
			
		||||
												data-notification-id="{{.ID}}"
 | 
			
		||||
												data-q="{{$.Keyword}}">
 | 
			
		||||
												{{svg "octicon-pin"}}
 | 
			
		||||
											</button>
 | 
			
		||||
										</form>
 | 
			
		||||
									{{end}}
 | 
			
		||||
								</td>
 | 
			
		||||
								<td class="collapsing">
 | 
			
		||||
									{{if or (eq .Status 1) (eq .Status 3)}}
 | 
			
		||||
										<form action="{{AppSubUrl}}/notifications/status" method="POST">
 | 
			
		||||
											{{$.CsrfTokenHtml}}
 | 
			
		||||
											<input type="hidden" name="notification_id" value="{{.ID}}" />
 | 
			
		||||
											<input type="hidden" name="status" value="read" />
 | 
			
		||||
											<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" />
 | 
			
		||||
											<button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_read"}}'
 | 
			
		||||
												data-url="{{AppSubUrl}}/notifications/status"
 | 
			
		||||
												data-status="read"
 | 
			
		||||
												data-page="{{$.Page.Paginater.Current}}"
 | 
			
		||||
												data-notification-id="{{.ID}}"
 | 
			
		||||
												data-q="{{$.Keyword}}">
 | 
			
		||||
												{{svg "octicon-check"}}
 | 
			
		||||
											</button>
 | 
			
		||||
										</form>
 | 
			
		||||
									{{else if eq .Status 2}}
 | 
			
		||||
										<form action="{{AppSubUrl}}/notifications/status" method="POST">
 | 
			
		||||
											{{$.CsrfTokenHtml}}
 | 
			
		||||
											<input type="hidden" name="notification_id" value="{{.ID}}" />
 | 
			
		||||
											<input type="hidden" name="status" value="unread" />
 | 
			
		||||
											<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}" />
 | 
			
		||||
											<button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_unread"}}'
 | 
			
		||||
												data-url="{{AppSubUrl}}/notifications/status"
 | 
			
		||||
												data-status="unread"
 | 
			
		||||
												data-page="{{$.Page.Paginater.Current}}"
 | 
			
		||||
												data-notification-id="{{.ID}}"
 | 
			
		||||
												data-q="{{$.Keyword}}">
 | 
			
		||||
												{{svg "octicon-bell"}}
 | 
			
		||||
											</button>
 | 
			
		||||
										</form>
 | 
			
		||||
									{{end}}
 | 
			
		||||
								</td>
 | 
			
		||||
							</tr>
 | 
			
		||||
						{{end}}
 | 
			
		||||
					</tbody>
 | 
			
		||||
				</table>
 | 
			
		||||
			{{end}}
 | 
			
		||||
		</div>
 | 
			
		||||
		{{template "base/paginate" .}}
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,7 +39,7 @@
 | 
			
		|||
<p>{{.i18n.Tr "settings.gpg_helper" "https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/about-commit-signature-verification#gpg-commit-signature-verification" | Str2html}}</p>
 | 
			
		||||
<div {{if not .HasGPGError}}class="hide"{{end}} id="add-gpg-key-panel">
 | 
			
		||||
	<h4 class="ui top attached header">
 | 
			
		||||
		 {{.i18n.Tr "settings.add_new_gpg_key"}}
 | 
			
		||||
		{{.i18n.Tr "settings.add_new_gpg_key"}}
 | 
			
		||||
	</h4>
 | 
			
		||||
	<div class="ui attached segment">
 | 
			
		||||
		<form class="ui form" action="{{.Link}}" method="post">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@
 | 
			
		|||
									{{else}}
 | 
			
		||||
										<span class="icon">{{svg "octicon-file-directory"}}</span>
 | 
			
		||||
										<span class="name">{{$.Owner.Name}}/{{$dir}}</span>
 | 
			
		||||
        		                        <div class="right floated content">
 | 
			
		||||
										<div class="right floated content">
 | 
			
		||||
											{{if $.allowAdopt}}
 | 
			
		||||
												<button class="ui button submit tiny green adopt show-modal" data-modal="#adopt-unadopted-modal-{{$dirI}}"><span class="icon">{{svg "octicon-plus"}}</span><span class="label">{{$.i18n.Tr "repo.adopt_preexisting_label"}}</span></button>
 | 
			
		||||
												<div class="ui basic modal" id="adopt-unadopted-modal-{{$dirI}}">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,16 +6,16 @@
 | 
			
		|||
	{{if .TwofaEnrolled}}
 | 
			
		||||
		<div class="ui key list">
 | 
			
		||||
			{{range .U2FRegistrations}}
 | 
			
		||||
			    <div class="item">
 | 
			
		||||
			    	<div class="right floated content">
 | 
			
		||||
			    		<button class="ui red tiny button delete-button" id="delete-registration" data-url="{{$.Link}}/u2f/delete" data-id="{{.ID}}">
 | 
			
		||||
			    		{{$.i18n.Tr "settings.delete_key"}}
 | 
			
		||||
			    		</button>
 | 
			
		||||
			    	</div>
 | 
			
		||||
			    	<div class="content">
 | 
			
		||||
			    		<strong>{{.Name}}</strong>
 | 
			
		||||
			    	</div>
 | 
			
		||||
			    </div>
 | 
			
		||||
				<div class="item">
 | 
			
		||||
					<div class="right floated content">
 | 
			
		||||
						<button class="ui red tiny button delete-button" id="delete-registration" data-url="{{$.Link}}/u2f/delete" data-id="{{.ID}}">
 | 
			
		||||
						{{$.i18n.Tr "settings.delete_key"}}
 | 
			
		||||
						</button>
 | 
			
		||||
					</div>
 | 
			
		||||
					<div class="content">
 | 
			
		||||
						<strong>{{.Name}}</strong>
 | 
			
		||||
					</div>
 | 
			
		||||
				</div>
 | 
			
		||||
			{{end}}
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="ui form">
 | 
			
		||||
| 
						 | 
				
			
			@ -53,4 +53,3 @@
 | 
			
		|||
	</div>
 | 
			
		||||
	{{template "base/delete_modal_actions" .}}
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue