code.gitea.io/gitea@v1.22.3/templates/user/dashboard/milestones.tmpl (about)

     1  {{template "base/head" .}}
     2  <div role="main" aria-label="{{.Title}}" class="page-content dashboard issues repository milestones">
     3  	{{template "user/dashboard/navbar" .}}
     4  	<div class="ui container">
     5  		<div class="flex-container">
     6  			<div class="flex-container-nav">
     7  				<div class="ui secondary vertical filter menu tw-bg-transparent">
     8  					<div class="item">
     9  						{{ctx.Locale.Tr "home.issues.in_your_repos"}}
    10  						<strong>{{.Total}}</strong>
    11  					</div>
    12  					<div class="divider"></div>
    13  					{{range .Repos}}
    14  						{{with $Repo := .}}
    15  							<a class="{{range $.RepoIDs}}{{if eq . $Repo.ID}}active{{end}}{{end}} repo name item" href="?repos=[
    16  								{{- with $include := true -}}
    17  										{{- range $.RepoIDs -}}
    18  											{{- if eq . $Repo.ID -}}
    19  												{{$include = false}}
    20  											{{- else -}}
    21  												{{.}}%2C
    22  											{{- end -}}
    23  										{{- end -}}
    24  										{{- if eq $include true -}}
    25  											{{$Repo.ID}}%2C
    26  										{{- end -}}
    27  									{{- end -}}
    28  								]&sort={{$.SortType}}&state={{$.State}}&q={{$.Keyword}}" title="{{.FullName}}">
    29  								<span class="text truncate">{{$Repo.FullName}}</span>
    30  								<div class="ui {{if $.IsShowClosed}}red{{else}}green{{end}} label">{{index $.Counts $Repo.ID}}</div>
    31  							</a>
    32  						{{end}}
    33  					{{end}}
    34  				</div>
    35  			</div>
    36  			<div class="flex-container-main content">
    37  				<div class="list-header">
    38  					<div class="small-menu-items ui compact tiny menu list-header-toggle">
    39  						<a class="item{{if not .IsShowClosed}} active{{end}}" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=open&q={{$.Keyword}}">
    40  							{{svg "octicon-milestone" 16 "tw-mr-2"}}
    41  							{{ctx.Locale.PrettyNumber .MilestoneStats.OpenCount}}&nbsp;{{ctx.Locale.Tr "repo.issues.open_title"}}
    42  						</a>
    43  						<a class="item{{if .IsShowClosed}} active{{end}}" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state=closed&q={{$.Keyword}}">
    44  							{{svg "octicon-check" 16 "tw-mr-2"}}
    45  							{{ctx.Locale.PrettyNumber .MilestoneStats.ClosedCount}}&nbsp;{{ctx.Locale.Tr "repo.issues.closed_title"}}
    46  						</a>
    47  					</div>
    48  					<form class="list-header-search ui form ignore-dirty">
    49  						<input type="hidden" name="type" value="{{$.ViewType}}">
    50  							<input type="hidden" name="repos" value="[{{range $.RepoIDs}}{{.}},{{end}}]">
    51  							<input type="hidden" name="sort" value="{{$.SortType}}">
    52  							<input type="hidden" name="state" value="{{$.State}}">
    53  						{{template "shared/search/combo" dict "Value" $.Keyword}}
    54  					</form>
    55  					<!-- Sort -->
    56  					<div class="list-header-sort ui dropdown type jump item">
    57  						<span class="text">
    58  							{{ctx.Locale.Tr "repo.issues.filter_sort"}}
    59  						</span>
    60  						{{svg "octicon-triangle-down" 14 "dropdown icon"}}
    61  						<div class="menu">
    62  							<a class="{{if or (eq .SortType "closestduedate") (not .SortType)}}active {{end}}item" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=closestduedate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.earliest_due_data"}}</a>
    63  							<a class="{{if eq .SortType "furthestduedate"}}active {{end}}item" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=furthestduedate&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.latest_due_date"}}</a>
    64  							<a class="{{if eq .SortType "leastcomplete"}}active {{end}}item" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastcomplete&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.least_complete"}}</a>
    65  							<a class="{{if eq .SortType "mostcomplete"}}active {{end}}item" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostcomplete&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.most_complete"}}</a>
    66  							<a class="{{if eq .SortType "mostissues"}}active {{end}}item" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=mostissues&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.most_issues"}}</a>
    67  							<a class="{{if eq .SortType "leastissues"}}active {{end}}item" href="?repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort=leastissues&state={{$.State}}&q={{$.Keyword}}">{{ctx.Locale.Tr "repo.milestones.filter_sort.least_issues"}}</a>
    68  						</div>
    69  					</div>
    70  				</div>
    71  				<div class="milestone-list">
    72  					{{range .Milestones}}
    73  						<li class="milestone-card">
    74  							<div class="milestone-header">
    75  								<h3 class="flex-text-block tw-m-0">
    76  									<span class="ui large label">
    77  										{{.Repo.FullName}}
    78  									</span>
    79  									{{svg "octicon-milestone" 16}}
    80  									<a class="muted" href="{{.Repo.Link}}/milestone/{{.ID}}">{{.Name}}</a>
    81  								</h3>
    82  								<div class="tw-flex tw-items-center">
    83  									<span class="tw-mr-2">{{.Completeness}}%</span>
    84  									<progress value="{{.Completeness}}" max="100"></progress>
    85  								</div>
    86  							</div>
    87  							<div class="milestone-toolbar">
    88  								<div class="group">
    89  									<div class="flex-text-block">
    90  										{{svg "octicon-issue-opened" 14}}
    91  										{{ctx.Locale.PrettyNumber .NumOpenIssues}}&nbsp;{{ctx.Locale.Tr "repo.issues.open_title"}}
    92  									</div>
    93  									<div class="flex-text-block">
    94  										{{svg "octicon-check" 14}}
    95  										{{ctx.Locale.PrettyNumber .NumClosedIssues}}&nbsp;{{ctx.Locale.Tr "repo.issues.closed_title"}}
    96  									</div>
    97  									{{if .TotalTrackedTime}}
    98  										<div class="flex-text-block">
    99  											{{svg "octicon-clock"}}
   100  											{{.TotalTrackedTime|Sec2Time}}
   101  										</div>
   102  									{{end}}
   103  									{{if .UpdatedUnix}}
   104  										<div class="flex-text-block">
   105  											{{svg "octicon-clock"}}
   106  											{{ctx.Locale.Tr "repo.milestones.update_ago" (TimeSinceUnix .UpdatedUnix ctx.Locale)}}
   107  										</div>
   108  									{{end}}
   109  									<div class="flex-text-block">
   110  										{{if .IsClosed}}
   111  											{{$closedDate:= TimeSinceUnix .ClosedDateUnix ctx.Locale}}
   112  											{{svg "octicon-clock" 14}}
   113  											{{ctx.Locale.Tr "repo.milestones.closed" $closedDate}}
   114  										{{else}}
   115  											{{if .DeadlineString}}
   116  												<span{{if .IsOverdue}} class="text red"{{end}}>
   117  													{{svg "octicon-calendar" 14}}
   118  													{{DateTime "short" .DeadlineString}}
   119  												</span>
   120  											{{else}}
   121  												{{svg "octicon-calendar" 14}}
   122  												{{ctx.Locale.Tr "repo.milestones.no_due_date"}}
   123  											{{end}}
   124  										{{end}}
   125  									</div>
   126  								</div>
   127  								{{if and (or $.CanWriteIssues $.CanWritePulls) (not $.Repository.IsArchived)}}
   128  									<div class="group">
   129  										<a class="flex-text-inline" href="{{$.Link}}/{{.ID}}/edit">{{svg "octicon-pencil" 14}}{{ctx.Locale.Tr "repo.issues.label_edit"}}</a>
   130  										{{if .IsClosed}}
   131  											<a class="link-action flex-text-inline" href data-url="{{$.Link}}/{{.ID}}/open">{{svg "octicon-check" 14}}{{ctx.Locale.Tr "repo.milestones.open"}}</a>
   132  										{{else}}
   133  											<a class="link-action flex-text-inline" href data-url="{{$.Link}}/{{.ID}}/close">{{svg "octicon-x" 14}}{{ctx.Locale.Tr "repo.milestones.close"}}</a>
   134  										{{end}}
   135  										<a class="delete-button flex-text-inline" href="#" data-url="{{$.RepoLink}}/milestones/delete" data-id="{{.ID}}">{{svg "octicon-trash" 14}}{{ctx.Locale.Tr "repo.issues.label_delete"}}</a>
   136  									</div>
   137  								{{end}}
   138  							</div>
   139  							{{if .Content}}
   140  								<div class="markup content">
   141  									{{.RenderedContent}}
   142  								</div>
   143  							{{end}}
   144  						</li>
   145  					{{end}}
   146  
   147  					{{template "base/paginate" .}}
   148  				</div>
   149  
   150  			</div>
   151  		</div>
   152  	</div>
   153  </div>
   154  {{template "base/footer" .}}