|
- {{template "base/head" .}}
- <style>
- .repository.file.list #repo-desc {
- font-size: 1.0em;
- margin-bottom: 1.0rem;
- }
-
- #contributorInfo>a:nth-child(n+26) {
- display: none;
- }
-
- #contributorInfo>a {
- width: 2.0em;
- float: left;
- margin: .25em;
- }
-
- .edit-link {
- vertical-align: top;
- display: inline-block;
- overflow: hidden;
- word-break: keep-all;
- white-space: nowrap;
- text-overflow: ellipsis;
- width: 16.5em;
- }
-
- #contributorInfo>a.circular {
- height: 2.0em;
- padding: 0;
- overflow: hidden;
- letter-spacing: 1.0em;
- text-indent: 0.6em;
- line-height: 2.0em;
- text-transform: capitalize;
- color: #FFF;
- }
-
- #contributorInfo>a.circular:nth-child(9n+1) {
- background-color: #4ccdec;
- }
-
- #contributorInfo>a.circular:nth-child(9n+2) {
- background-color: #e0b265;
- }
-
- #contributorInfo>a.circular:nth-child(9n+3) {
- background-color: #d884b7;
- }
-
- #contributorInfo>a.circular:nth-child(9n+4) {
- background-color: #8c6bdc;
- }
-
- #contributorInfo>a.circular:nth-child(9n+5) {
- background-color: #3cb99f;
- }
-
- #contributorInfo>a.circular:nth-child(9n+6) {
- background-color: #6995b9;
- }
-
- #contributorInfo>a.circular:nth-child(9n+7) {
- background-color: #ab91a7;
- }
-
- #contributorInfo>a.circular:nth-child(9n+8) {
- background-color: #bfd0aa;
- }
-
- .vue_menu {
- cursor: auto;
- position: absolute;
- outline: none;
- top: 100%;
- margin: 0em;
- padding: 0em 0em;
- background: #fff;
- font-size: 1em;
- text-shadow: none;
- text-align: left;
- /* -webkit-box-shadow: 0px 2px 3px 0px rgb(34 36 38 / 15%); */
- box-shadow: 0px 2px 3px 0px rgba(34, 36, 38, 0.15);
- border: 1px solid rgba(34, 36, 38, 0.15);
- border-radius: 0.28571429rem;
- -webkit-transition: opacity 0.1s ease;
- transition: opacity 0.1s ease;
- z-index: 11;
- will-change: transform, opacity;
- width: 100% !important;
-
- -webkit-animation-iteration-count: 1;
- animation-iteration-count: 1;
- -webkit-animation-duration: 300ms;
- animation-duration: 300ms;
- -webkit-animation-timing-function: ease;
- animation-timing-function: ease;
- -webkit-animation-fill-mode: both;
- animation-fill-mode: both;
- }
- </style>
- {{if and (.IsViewFile) (IpynbBool .TreePath)}}
- <link rel="stylesheet" href="{{StaticUrlPrefix}}/css/vp-notebook-debug.css?v={{MD5 AppVer}}" />
- {{end}}
- <div class="repository file list">
- {{template "repo/header" .}}
- <div class="ui container">
- <div class="ui negative message" style="display: none;">
-
- </div>
- {{template "base/alert" .}}
-
- {{if and .Permission.IsAdmin (not .Repository.IsArchived)}}
- <!-- <div class="ui repo-topic-edit grid form segment error" id="topic_edit" style="display:none">
- <div class="fourteen wide column">
- <div class="field">
- <div class="ui fluid multiple search selection dropdown">
- <input type="hidden" name="topics" value="{{range $i, $v := .Topics}}{{.Name}}{{if lt (Add $i 1) (len $.Topics)}},{{end}}{{end}}">
- {{range .Topics}}
- <div class="ui small label topic transition visible" data-value="{{.Name}}" style="display: inline-block !important; cursor: default;">{{.Name}}<i class="delete icon"></i></div>
- {{end}}
- <div class="text"></div>
- </div>
- </div>
- </div>
- <div class="two wide column">
- <a class="ui button primary" href="javascript:;" id="save_topic"
- data-link="{{.RepoLink}}/topics">{{.i18n.Tr "repo.topic.done"}}</a>
- </div>
- </div> -->
-
- {{end}}
- <div class="hide" id="validate_prompt">
- <span id="count_prompt">{{.i18n.Tr "repo.topic.count_prompt"}}</span>
- <span id="format_prompt">{{.i18n.Tr "repo.topic.format_prompt"}}</span>
- </div>
- <div class="ui repo-description stackable grid">
-
- {{if .RepoSearchEnabled}}
- <div class="ui repo-search four wide column">
- <form class="ui form ignore-dirty" action="{{.RepoLink}}/search" method="get">
- <div class="field">
- <div class="ui action input">
- <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "repo.search.search_repo"}}">
- <button class="ui icon button" type="submit">
- <i class="search icon"></i>
- </button>
- </div>
- </div>
- </form>
- </div>
- {{end}}
- </div>
-
- {{if .Repository.IsArchived}}
- <div class="ui warning message">
- {{.i18n.Tr "repo.archive.title"}}
- </div>
- {{end}}
- {{if not .IsViewFile}}
- {{template "repo/sub_menu" .}}
- {{end}}
- <div class="ui stackable secondary menu mobile--margin-between-items mobile--no-negative-margins">
- {{template "repo/branch_dropdown" .}}
- {{ $n := len .TreeNames}}
- {{ $l := Subtract $n 1}}
- <!-- If home page, show new PR. If not, show breadcrumb -->
- {{if eq $n 0}}
- {{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
- <div class="fitted item">
- <a
- href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch | EscapePound}}...{{if ne .Repository.Owner.Name .BaseRepo.Owner.Name}}{{.Repository.Owner.Name}}:{{end}}{{.BranchName | EscapePound}}">
- <button id="new-pull-request"
- class="ui compact basic button">{{if .PullRequestCtx.Allowed}}{{.i18n.Tr "repo.pulls.compare_changes"}}{{else}}{{.i18n.Tr "action.compare_branch"}}{{end}}</button>
- </a>
- {{if and .Repository.IsFork .PullRequestCtx.Allowed}}
- {{if gt .FetchUpstreamCnt 0 }}
- <a
- href="{{.Repository.Link}}/compare/{{.BranchName | EscapePound}}...{{.BaseRepo.Owner.Name}}:{{if .UpstreamSameBranchName}}{{.BranchName | EscapePound}}{{else}}{{.BaseRepo.DefaultBranch | EscapePound}}{{end}}">
- <button id="new-pull-request" class="ui compact basic button"
- title="{{$.i18n.Tr (TrN $.i18n.Lang .FetchUpstreamCnt "repo.pulls.commits_count_1" "repo.pulls.commits_count_n") .FetchUpstreamCnt}}">{{.i18n.Tr "repo.pulls.fetch_upstream"}}</button>
- </a>
- {{else if lt .FetchUpstreamCnt 0}}
- <a
- href="{{.Repository.Link}}/compare/{{.BranchName | EscapePound}}...{{.BaseRepo.Owner.Name}}:{{.BaseRepo.DefaultBranch | EscapePound}}">
- <button id="new-pull-request" class="ui compact basic button"
- title="{{.i18n.Tr "repo.pulls.upstream_error"}}">{{.i18n.Tr "repo.pulls.fetch_upstream"}}</button>
- </a>
- {{else}}
- <a
- href="{{.Repository.Link}}/compare/{{.BranchName | EscapePound}}...{{.BaseRepo.Owner.Name}}:{{if .UpstreamSameBranchName}}{{.BranchName | EscapePound}}{{else}}{{.BaseRepo.DefaultBranch | EscapePound}}{{end}}">
- <button id="new-pull-request" class="ui compact basic button"
- title="{{.i18n.Tr "repo.pulls.upstream_up_to_date"}}">{{.i18n.Tr "repo.pulls.fetch_upstream"}}</button>
- </a>
- {{end}}
- {{end}}
- </div>
- {{end}}
- {{else}}
- <div class="fitted item"><span class="ui breadcrumb repo-path"><a class="section"
- href="{{.RepoLink}}/src/{{EscapePound .BranchNameSubURL}}"
- title="{{.Repository.Name}}">{{EllipsisString .Repository.Name 30}}</a>{{range $i, $v := .TreeNames}}<span
- class="divider">/</span>{{if eq $i $l}}<span class="active section"
- title="{{$v}}">{{EllipsisString $v 30}}</span>{{else}}{{ $p := index $.Paths $i}}<span
- class="section"><a href="{{EscapePound $.BranchLink}}/{{EscapePound $p}}"
- title="{{$v}}">{{EllipsisString $v 30}}</a></span>{{end}}{{end}}</span></div>
- {{end}}
-
- <div class="right fitted item" id="file-buttons">
- <div class="ui tiny blue buttons">
- {{if .Repository.CanEnableEditor}}
- {{if .CanAddFile}}
- <a href="{{.RepoLink}}/_new/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"
- class="ui button">
- {{.i18n.Tr "repo.editor.new_file"}}
- </a>
- {{end}}
- {{if .CanUploadFile}}
- <a href="{{.RepoLink}}/_upload/{{EscapePound .BranchName}}/{{EscapePound .TreePath}}"
- class="ui button">
- {{.i18n.Tr "repo.editor.upload_file"}}
- </a>
- {{end}}
- {{end}}
- {{if and (ne $n 0) (not .IsViewFile) (not .IsBlame) }}
- <a href="{{.RepoLink}}/commits/{{EscapePound .BranchNameSubURL}}/{{EscapePound .TreePath}}"
- class="ui button">
- {{.i18n.Tr "repo.file_history"}}
- </a>
- {{end}}
- </div>
- </div>
- <div class="fitted item">
- {{if eq $n 0}}
- {{if .Repository.IsTemplate}}
- <div class="ui tiny blue buttons">
- <a href="{{AppSubUrl}}/repo/create?template_id={{.Repository.ID}}" class="ui button">
- {{.i18n.Tr "repo.use_template"}}
- </a>
- </div>
- {{end}}
- {{end}}
- </div>
- <div class="fitted item">
- <!-- Only show clone panel in repository home page -->
- {{if eq $n 0}}
- <div class="ui action tiny input" id="clone-panel">
- {{if not $.DisableHTTP}}
- <button class="ui basic clone button" id="repo-clone-https" data-link="{{.CloneLink.HTTPS}}">
- {{if UseHTTPS}}HTTPS{{else}}HTTP{{end}}
- </button>
- {{end}}
- {{if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
- <button class="ui basic clone button" id="repo-clone-ssh" data-link="{{.CloneLink.SSH}}">
- SSH
- </button>
- {{end}}
- {{if not $.DisableHTTP}}
- <input id="repo-clone-url" value="{{$.CloneLink.HTTPS}}" readonly>
- {{else if and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH)}}
- <input id="repo-clone-url" value="{{$.CloneLink.SSH}}" readonly>
- {{end}}
- {{if or (not $.DisableHTTP) (and (not $.DisableSSH) (or $.IsSigned $.ExposeAnonSSH))}}
- <button class="ui basic icon button poping up clipboard" id="clipboard-btn"
- data-original="{{.i18n.Tr "repo.copy_link"}}"
- data-success="{{.i18n.Tr "repo.copy_link_success"}}"
- data-error="{{.i18n.Tr "repo.copy_link_error"}}" data-content="{{.i18n.Tr "repo.copy_link"}}"
- data-variation="inverted tiny" data-clipboard-target="#repo-clone-url">
- {{svg "octicon-clippy" 16}}
- </button>
- {{end}}
- <div class="ui basic jump dropdown icon button poping up"
- data-content="{{.i18n.Tr "repo.download_archive"}}" data-variation="tiny inverted"
- data-position="top right">
- <i class="download icon"></i>
- <div class="menu">
- <a class="item"
- href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.zip">{{svg "octicon-file-zip" 16}} ZIP</a>
- <a class="item"
- href="{{$.RepoLink}}/archive/{{EscapePound $.BranchName}}.tar.gz">{{svg "octicon-file-zip" 16}} TAR.GZ</a>
- </div>
- </div>
- </div>
- {{end}}
- </div>
- {{if and (.IsViewFile) (IpynbBool .TreePath)}}
- <div class="right fitted item">
- <button class="ui green button tiny" id="notebook-debug" style="display: flex;align-items: center;">
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h16V5H4zm8 10h6v2h-6v-2zm-3.333-3L5.838 9.172l1.415-1.415L11.495 12l-4.242 4.243-1.415-1.415L8.667 12z" fill="rgba(255,255,255,1)"/></svg>
- <span style="margin-left:0.3rem;font-size: 14px;">{{.i18n.Tr "repo.notebook_open"}}</span>
- </button>
- </div>
- {{end}}
- </div>
- <div class="ui container">
- <div class="ui mobile reversed stackable grid">
- {{if not .IsViewFile}}
- <div class="ui ten wide tablet twelve wide computer column">
- {{else}}
- <div class="ui sixteen wide tablet sixteen wide computer column">
- {{end}}
- {{if .IsViewFile}}
- {{template "repo/view_file" .}}
- {{else if .IsBlame}}
- {{template "repo/blame" .}}
- {{else}}
- {{template "repo/view_list" .}}
- {{end}}
- </div>
- {{if not .IsViewFile}}
- <div class="ui six wide tablet four wide computer column">
- <div id="repo-desc" data-IsAdmin="{{.Permission.IsAdmin}}"
- data-IsArchived="{{.Repository.IsArchived}}">
- <h4 id="about-desc" class="ui header"></h4>
- <input type="hidden" id="edit-alias" value="{{.Repository.Alias}}">
- <p>
- {{if .Repository.DescriptionHTML}}
- <span class="description"
- style="word-break:break-all">{{.Repository.DescriptionHTML}}</span>
- {{else}}
- <span class="no-description text-italic">{{.i18n.Tr "repo.no_desc"}}</span>
- {{end}}
- </p>
- </div>
- {{if .Repository.Website}}
- <p class="ui">
- <i class="gray linkify icon"></i>
- <a class="link edit-link" target="_blank" title="{{.Repository.Website}}"
- href="{{.Repository.Website}}">{{.Repository.Website}}</a>
- </p>
- {{end}}
- <div class="ui" id="repo-topics" style="display: flex;position: relative;margin-bottom: 1.0rem;">
- <i class="grey bookmark icon"></i>
- <div id="repo-topics1" style="flex: 1;">
- {{range .Topics}}
- <a class="ui repo-topic small label topic"
- href="{{AppSubUrl}}/explore/repos?q={{.Name}}&topic=">{{.Name}}</a>
- {{end}}
- </div>
- <div>
- {{if and .Permission.IsAdmin (not .Repository.IsArchived)}}<i id="manage_topic"
- style="cursor: pointer;" class="plus icon"></i>{{end}}
- </div>
- <div id="topic_edit" class="vue_menu" style="display:none">
- <div id="topic_edit1">
- </div>
- </div>
- </div>
- <p class="ui">
- <i class="grey code icon"></i>
- {{range .LanguageStats}}
- {{.Language}}
- {{end}}
- </p>
- {{if .LICENSE}}
- <p class="ui">
- <i class="grey clone icon"></i>
- {{.LICENSE}}
- </p>
- {{end}}
- <div class="ui divider"></div>
- <div>
- <h4 class="ui header">
- {{$lenCon := len .ContributorInfo}}
- {{if lt $lenCon 25 }}
- <strong>{{.i18n.Tr "home.contributors"}} ({{len .ContributorInfo}})</strong>
- {{else}}
- <strong>{{.i18n.Tr "home.contributors"}} ({{len .ContributorInfo}}+)</strong>
- {{end}}
-
- <div class="ui right">
- <!-- <a class="membersmore text grey" href="{{.RepoLink}}/contributors">{{.i18n.Tr "repo.computing.all"}} {{svg "octicon-chevron-right" 16}}</a> -->
- <a class="membersmore text grey"
- href="{{.RepoLink}}/contributors?type={{if .IsViewBranch}}branch{{else}}tag{{end}}&name={{.BranchName}}">{{.i18n.Tr "repo.computing.all"}}
- {{svg "octicon-chevron-right" 16}}</a>
- </div>
- </h4>
- <div class="ui members" id="contributorInfo">
- {{range .ContributorInfo}}
- {{if .UserInfo}}
- <a href="{{AppSubUrl}}/{{.UserInfo.Name}}"><img class="ui avatar image"
- src="{{.UserInfo.RelAvatarLink}}"></a>
- {{else if .Email}}
- <a href="mailto:{{.Email}}" class="circular ui button">{{.Email}}</a>
- {{end}}
- {{end}}
- </div>
- </div>
- </div>
- {{end}}
- </div>
- </div>
-
- </div>
- {{if and (.IsViewFile) (IpynbBool .TreePath)}}
- <div id="__vue-root"></div>
- <div id="__vue-self-data" data-branch="{{.BranchName}}" data-owner="{{.Repository.OwnerName}}" data-name="{{.SignedUser.Name}}" data-project="{{.Repository.Name}}"
- data-file="{{.TreePath}}">
- </div>
- {{end}}
- </div>
- {{if and (.IsViewFile) (IpynbBool .TreePath)}}
- <script src="{{StaticUrlPrefix}}/js/vp-notebook-debug.js?v={{MD5 AppVer}}"></script>
- {{end}}
- {{template "base/footer" .}}
|