code.gitea.io/gitea@v1.22.3/templates/user/notification/notification_div.tmpl (about)

     1  <div role="main" aria-label="{{.Title}}" class="page-content user notification" id="notification_div" data-sequence-number="{{.SequenceNumber}}">
     2  	<div class="ui container">
     3  		{{$notificationUnreadCount := call .NotificationUnreadCount}}
     4  		<div class="tw-flex tw-items-center tw-justify-between tw-mb-[--page-spacing]">
     5  			<div class="small-menu-items ui compact tiny menu">
     6  				<a class="{{if eq .Status 1}}active {{end}}item" href="{{AppSubUrl}}/notifications?q=unread">
     7  					{{ctx.Locale.Tr "notification.unread"}}
     8  					<div class="notifications-unread-count ui label {{if not $notificationUnreadCount}}tw-hidden{{end}}">{{$notificationUnreadCount}}</div>
     9  				</a>
    10  				<a class="{{if eq .Status 2}}active {{end}}item" href="{{AppSubUrl}}/notifications?q=read">
    11  					{{ctx.Locale.Tr "notification.read"}}
    12  				</a>
    13  			</div>
    14  			{{if and (eq .Status 1)}}
    15  				<form action="{{AppSubUrl}}/notifications/purge" method="post">
    16  					{{$.CsrfTokenHtml}}
    17  					<div class="{{if not $notificationUnreadCount}}tw-hidden{{end}}">
    18  						<button class="ui mini button primary tw-mr-0" title="{{ctx.Locale.Tr "notification.mark_all_as_read"}}">
    19  							{{svg "octicon-checklist"}}
    20  						</button>
    21  					</div>
    22  				</form>
    23  			{{end}}
    24  		</div>
    25  		<div class="tw-p-0">
    26  			<div id="notification_table">
    27  				{{if not .Notifications}}
    28  					<div class="tw-flex tw-items-center tw-flex-col tw-p-4">
    29  						{{svg "octicon-inbox" 56 "tw-mb-4"}}
    30  						{{if eq .Status 1}}
    31  							{{ctx.Locale.Tr "notification.no_unread"}}
    32  						{{else}}
    33  							{{ctx.Locale.Tr "notification.no_read"}}
    34  						{{end}}
    35  					</div>
    36  				{{else}}
    37  					{{range $notification := .Notifications}}
    38  						<div class="notifications-item tw-flex tw-items-center tw-flex-wrap tw-gap-2 tw-p-2" id="notification_{{.ID}}" data-status="{{.Status}}">
    39  							<div class="notifications-icon tw-ml-2 tw-mr-1 tw-self-start tw-mt-1">
    40  								{{if .Issue}}
    41  									{{template "shared/issueicon" .Issue}}
    42  								{{else}}
    43  									{{svg "octicon-repo" 16 "text grey"}}
    44  								{{end}}
    45  							</div>
    46  							<a class="notifications-link tw-flex tw-flex-1 tw-flex-col silenced" href="{{.Link ctx}}">
    47  								<div class="notifications-top-row tw-text-13 tw-break-anywhere">
    48  									{{.Repository.FullName}} {{if .Issue}}<span class="text light-3">#{{.Issue.Index}}</span>{{end}}
    49  									{{if eq .Status 3}}
    50  										{{svg "octicon-pin" 13 "text blue tw-mt-0.5 tw-ml-1"}}
    51  									{{end}}
    52  								</div>
    53  								<div class="notifications-bottom-row tw-text-16 tw-py-0.5">
    54  									<span class="issue-title tw-break-anywhere">
    55  										{{if .Issue}}
    56  											{{.Issue.Title | RenderEmoji $.Context | RenderCodeBlock}}
    57  										{{else}}
    58  											{{.Repository.FullName}}
    59  										{{end}}
    60  									</span>
    61  								</div>
    62  							</a>
    63  							<div class="notifications-updated tw-items-center tw-mr-2">
    64  								{{if .Issue}}
    65  									{{TimeSinceUnix .Issue.UpdatedUnix ctx.Locale}}
    66  								{{else}}
    67  									{{TimeSinceUnix .UpdatedUnix ctx.Locale}}
    68  								{{end}}
    69  							</div>
    70  							<div class="notifications-buttons tw-items-center tw-justify-end tw-gap-1 tw-px-1">
    71  								{{if ne .Status 3}}
    72  									<form action="{{AppSubUrl}}/notifications/status" method="post">
    73  										{{$.CsrfTokenHtml}}
    74  										<input type="hidden" name="notification_id" value="{{.ID}}">
    75  										<input type="hidden" name="status" value="pinned">
    76  										<button class="btn interact-bg tw-p-2" title="{{ctx.Locale.Tr "notification.pin"}}"
    77  											data-url="{{AppSubUrl}}/notifications/status"
    78  											data-status="pinned"
    79  											data-page="{{$.Page.Paginater.Current}}"
    80  											data-notification-id="{{.ID}}"
    81  											data-q="{{$.Keyword}}">
    82  											{{svg "octicon-pin"}}
    83  										</button>
    84  									</form>
    85  								{{end}}
    86  								{{if or (eq .Status 1) (eq .Status 3)}}
    87  									<form action="{{AppSubUrl}}/notifications/status" method="post">
    88  										{{$.CsrfTokenHtml}}
    89  										<input type="hidden" name="notification_id" value="{{.ID}}">
    90  										<input type="hidden" name="status" value="read">
    91  										<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}">
    92  										<button class="btn interact-bg tw-p-2" title="{{ctx.Locale.Tr "notification.mark_as_read"}}"
    93  											data-url="{{AppSubUrl}}/notifications/status"
    94  											data-status="read"
    95  											data-page="{{$.Page.Paginater.Current}}"
    96  											data-notification-id="{{.ID}}"
    97  											data-q="{{$.Keyword}}">
    98  											{{svg "octicon-check"}}
    99  										</button>
   100  									</form>
   101  								{{else if eq .Status 2}}
   102  									<form action="{{AppSubUrl}}/notifications/status" method="post">
   103  										{{$.CsrfTokenHtml}}
   104  										<input type="hidden" name="notification_id" value="{{.ID}}">
   105  										<input type="hidden" name="status" value="unread">
   106  										<input type="hidden" name="page" value="{{$.Page.Paginater.Current}}">
   107  										<button class="btn interact-bg tw-p-2" title="{{ctx.Locale.Tr "notification.mark_as_unread"}}"
   108  											data-url="{{AppSubUrl}}/notifications/status"
   109  											data-status="unread"
   110  											data-page="{{$.Page.Paginater.Current}}"
   111  											data-notification-id="{{.ID}}"
   112  											data-q="{{$.Keyword}}">
   113  											{{svg "octicon-bell"}}
   114  										</button>
   115  									</form>
   116  								{{end}}
   117  							</div>
   118  						</div>
   119  					{{end}}
   120  				{{end}}
   121  			</div>
   122  		</div>
   123  		{{template "base/paginate" .}}
   124  	</div>
   125  </div>