gitea源码

stopwatch_timetracker.tmpl 3.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. {{if .Repository.IsTimetrackerEnabled ctx}}
  2. {{if and .CanUseTimetracker (not .Repository.IsArchived)}}
  3. <div class="divider"></div>
  4. <div>
  5. <div class="flex-text-block">
  6. <strong class="tw-flex-1">{{ctx.Locale.Tr "repo.issues.tracker"}}</strong>
  7. <button class="btn interact-fg show-modal" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.time_estimate_set"}}" data-modal="#issue-time-set-estimate-modal">
  8. {{svg "octicon-pencil"}}
  9. </button>
  10. </div>
  11. <div class="ui buttons tw-mt-2 tw-w-full">
  12. {{if $.IsStopwatchRunning}}
  13. <button class="ui button tw-flex-1 issue-stop-time link-action" data-url="{{.Issue.Link}}/times/stopwatch/stop">
  14. {{svg "octicon-stopwatch"}} {{ctx.Locale.Tr "repo.issues.timetracker_timer_stop"}}
  15. </button>
  16. <button class="ui icon button issue-cancel-time link-action" data-url="{{.Issue.Link}}/times/stopwatch/cancel" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.timetracker_timer_discard"}}">
  17. {{svg "octicon-trash"}}
  18. </button>
  19. {{else}}
  20. <button class="ui button tw-flex-1 issue-start-time link-action" data-url="{{.Issue.Link}}/times/stopwatch/start">
  21. {{svg "octicon-stopwatch"}} {{ctx.Locale.Tr "repo.issues.timetracker_timer_start"}}
  22. </button>
  23. <button class="ui icon button issue-add-time show-modal" data-modal="#issue-time-manually-add-modal" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.timetracker_timer_manually_add"}}">
  24. {{svg "octicon-plus"}}
  25. </button>
  26. {{end}}
  27. </div>
  28. {{if and (not $.IsStopwatchRunning) .HasUserStopwatch}}
  29. <div class="ui warning message">{{ctx.Locale.Tr "repo.issues.tracking_already_started" .OtherStopwatchURL}}</div>
  30. {{end}}
  31. {{if .Issue.TimeEstimate}}
  32. <div class="tw-my-2">{{ctx.Locale.Tr "repo.issues.time_estimate_display" (TimeEstimateString .Issue.TimeEstimate)}}</div>
  33. {{end}}
  34. {{/* set time estimate modal */}}
  35. <div class="ui mini modal" id="issue-time-set-estimate-modal">
  36. <div class="header">{{ctx.Locale.Tr "repo.issues.time_estimate_set"}}</div>
  37. <form method="post" class="ui form form-fetch-action" action="{{.Issue.Link}}/time_estimate">
  38. <div class="content">
  39. {{$.CsrfTokenHtml}}
  40. <input name="time_estimate" placeholder="1h 2m" value="{{TimeEstimateString .Issue.TimeEstimate}}">
  41. <div class="actions">
  42. <button class="ui cancel button">{{ctx.Locale.Tr "cancel"}}</button>
  43. <button class="ui primary button">{{ctx.Locale.Tr "repo.issues.save"}}</button>
  44. </div>
  45. </div>
  46. </form>
  47. </div>
  48. {{/* manually add time modal */}}
  49. <div class="ui mini modal" id="issue-time-manually-add-modal">
  50. <div class="header">{{ctx.Locale.Tr "repo.issues.add_time_manually"}}</div>
  51. <form method="post" class="ui form form-fetch-action" action="{{.Issue.Link}}/times/add">
  52. <div class="content flex-text-block">
  53. {{$.CsrfTokenHtml}}
  54. <input placeholder='{{ctx.Locale.Tr "repo.issues.add_time_hours"}}' type="number" name="hours">:
  55. <input placeholder='{{ctx.Locale.Tr "repo.issues.add_time_minutes"}}' type="number" name="minutes">
  56. </div>
  57. <div class="actions">
  58. <button class="ui cancel button">{{ctx.Locale.Tr "cancel"}}</button>
  59. <button class="ui primary button">{{ctx.Locale.Tr "repo.issues.timetracker_timer_manually_add"}}</button>
  60. </div>
  61. </form>
  62. </div>
  63. </div>
  64. {{end}}
  65. {{if .WorkingUsers}}
  66. <div class="tw-mt-2">
  67. {{ctx.Locale.Tr "repo.issues.time_spent_from_all_authors" ($.Issue.TotalTrackedTime | Sec2Hour)}}
  68. </div>
  69. <div class="ui list flex-items-block">
  70. {{range $user, $trackedtime := .WorkingUsers}}
  71. <div class="item tw-gap-3">
  72. {{template "shared/user/avatarlink" dict "user" $user}}
  73. <div>
  74. {{template "shared/user/authorlink" $user}}
  75. <div class="text">{{$trackedtime|Sec2Hour}}</div>
  76. </div>
  77. </div>
  78. {{end}}
  79. </div>
  80. {{end}}
  81. {{end}}