You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

380 lines
5.9 KiB

Feature: Timetracking (#2211) * Added comment's hashtag to url for mail notifications. * Added explanation to return statement + documentation. * Replacing in-line link generation with HTMLURL. (+gofmt) * Replaced action-based model with nil-based model. (+gofmt) * Replaced mailIssueActionToParticipants with mailIssueCommentToParticipants. * Updating comment for mailIssueCommentToParticipants * Added link to comment in "Dashboard" * Deleting feed entry if a comment is going to be deleted * Added migration * Added improved migration to add a CommentID column to action. * Added improved links to comments in feed entries. * Fixes #1956 by filtering for deleted comments that are referenced in actions. * Introducing "IsDeleted" column to action. * Adding design draft (not functional) * Adding database models for stopwatches and trackedtimes * See go-gitea/gitea#967 * Adding design draft (not functional) * Adding translations and improving design * Implementing stopwatch (for timetracking) * Make UI functional * Add hints in timeline for time tracking events * Implementing timetracking feature * Adding "Add time manual" option * Improved stopwatch * Created report of total spent time by user * Only showing total time spent if theire is something to show. * Adding license headers. * Improved error handling for "Add Time Manual" * Adding @sapks 's changes, refactoring * Adding API for feature tracking * Adding unit test * Adding DISABLE/ENABLE option to Repository settings page * Improving translations * Applying @sapk 's changes * Removing repo_unit and using IssuesSetting for disabling/enabling timetracker * Adding DEFAULT_ENABLE_TIMETRACKER to config, installation and admin menu * Improving documentation * Fixing vendor/ folder * Changing timtracking routes by adding subgroups /times and /times/stopwatch (Proposed by @lafriks ) * Restricting write access to timetracking based on the repo settings (Proposed by @lafriks ) * Fixed minor permissions bug. * Adding CanUseTimetracker and IsTimetrackerEnabled in ctx.Repo * Allow assignees and authors to track there time too. * Fixed some build-time-errors + logical errors. * Removing unused Get...ByID functions * Moving IsTimetrackerEnabled from context.Repository to models.Repository * Adding a seperate file for issue related repo functions * Adding license headers * Fixed GetUserByParams return 404 * Moving /users/:username/times to /repos/:username/:reponame/times/:username for security reasons * Adding /repos/:username/times to get all tracked times of the repo * Updating sdk-dependency * Updating swagger.v1.json * Adding warning if user has already a running stopwatch (auto-timetracker) * Replacing GetTrackedTimesBy... with GetTrackedTimes(options FindTrackedTimesOptions) * Changing code.gitea.io/sdk back to code.gitea.io/sdk * Correcting spelling mistake * Updating vendor.json * Changing GET stopwatch/toggle to POST stopwatch/toggle * Changing GET stopwatch/cancel to POST stopwatch/cancel * Added migration for stopwatches/timetracking * Fixed some access bugs for read-only users * Added default allow only contributors to track time value to config * Fixed migration by chaging x.Iterate to x.Find * Resorted imports * Moved Add Time Manually form to repo_form.go * Removed "Seconds" field from Add Time Manually * Resorted imports * Improved permission checking * Fixed some bugs * Added integration test * gofmt * Adding integration test by @lafriks * Added created_unix to comment fixtures * Using last event instead of a fixed event * Adding another integration test by @lafriks * Fixing bug Timetracker enabled causing error 500 at sidebar.tpl * Fixed a refactoring bug that resulted in hiding "HasUserStopwatch" warning. * Returning TrackedTime instead of AddTimeOption at AddTime. * Updating SDK from go-gitea/go-sdk#69 * Resetting Go-SDK back to default repository * Fixing test-vendor by changing ini back to original repository * Adding "tags" to swagger spec * govendor sync * Removed duplicate * Formatting templates * Adding IsTimetrackingEnabled checks to API * Improving translations / english texts * Improving documentation * Updating swagger spec * Fixing integration test caused be translation-changes * Removed encoding issues in local_en-US.ini. * "Added" copyright line * Moved unit.IssuesConfig().EnableTimetracker into a != nil check * Removed some other encoding issues in local_en-US.ini * Improved javascript by checking if data-context exists * Replaced manual comment creation with CreateComment * Removed unnecessary code * Improved error checking * Small cosmetic changes * Replaced int>string>duration parsing with int>duration parsing * Fixed encoding issues * Removed unused imports Signed-off-by: Jonas Franz <info@jonasfranz.software>
7 years ago
  1. -
  2. id: 1
  3. owner_id: 2
  4. lower_name: repo1
  5. name: repo1
  6. is_private: false
  7. num_issues: 2
  8. num_closed_issues: 1
  9. num_pulls: 2
  10. num_closed_pulls: 0
  11. num_milestones: 2
  12. num_watches: 3
  13. -
  14. id: 2
  15. owner_id: 2
  16. lower_name: repo2
  17. name: repo2
  18. is_private: true
  19. num_issues: 1
  20. num_closed_issues: 1
  21. num_pulls: 0
  22. num_closed_pulls: 0
  23. num_stars: 1
  24. -
  25. id: 3
  26. owner_id: 3
  27. lower_name: repo3
  28. name: repo3
  29. is_private: true
  30. num_issues: 1
  31. num_closed_issues: 0
  32. num_pulls: 0
  33. num_closed_pulls: 0
  34. num_watches: 0
  35. -
  36. id: 4
  37. owner_id: 5
  38. lower_name: repo4
  39. name: repo4
  40. is_private: false
  41. num_issues: 0
  42. num_closed_issues: 0
  43. num_pulls: 0
  44. num_closed_pulls: 0
  45. num_stars: 1
  46. -
  47. id: 5
  48. owner_id: 3
  49. lower_name: repo5
  50. name: repo5
  51. is_private: true
  52. num_issues: 0
  53. num_closed_issues: 0
  54. num_pulls: 0
  55. num_closed_pulls: 0
  56. num_watches: 0
  57. is_mirror: true
  58. -
  59. id: 6
  60. owner_id: 10
  61. lower_name: repo6
  62. name: repo6
  63. is_private: true
  64. num_issues: 0
  65. num_closed_issues: 0
  66. num_pulls: 0
  67. num_closed_pulls: 0
  68. is_mirror: false
  69. -
  70. id: 7
  71. owner_id: 10
  72. lower_name: repo7
  73. name: repo7
  74. is_private: true
  75. num_issues: 0
  76. num_closed_issues: 0
  77. num_pulls: 0
  78. num_closed_pulls: 0
  79. is_mirror: false
  80. -
  81. id: 8
  82. owner_id: 10
  83. lower_name: repo8
  84. name: repo8
  85. is_private: false
  86. num_issues: 0
  87. num_closed_issues: 0
  88. num_pulls: 0
  89. num_closed_pulls: 0
  90. is_mirror: false
  91. -
  92. id: 9
  93. owner_id: 11
  94. lower_name: repo9
  95. name: repo9
  96. is_private: false
  97. num_issues: 0
  98. num_closed_issues: 0
  99. num_pulls: 0
  100. num_closed_pulls: 0
  101. is_mirror: false
  102. -
  103. id: 10
  104. owner_id: 12
  105. lower_name: repo10
  106. name: repo10
  107. is_private: false
  108. num_issues: 0
  109. num_closed_issues: 0
  110. num_pulls: 0
  111. num_closed_pulls: 0
  112. is_mirror: false
  113. num_forks: 1
  114. -
  115. id: 11
  116. fork_id: 10
  117. owner_id: 13
  118. lower_name: repo11
  119. name: repo11
  120. is_private: false
  121. num_issues: 0
  122. num_closed_issues: 0
  123. num_pulls: 0
  124. num_closed_pulls: 0
  125. is_mirror: false
  126. -
  127. id: 12
  128. owner_id: 14
  129. lower_name: test_repo_12
  130. name: test_repo_12
  131. is_private: false
  132. num_issues: 0
  133. num_closed_issues: 0
  134. num_pulls: 0
  135. num_closed_pulls: 0
  136. is_mirror: false
  137. -
  138. id: 13
  139. owner_id: 14
  140. lower_name: test_repo_13
  141. name: test_repo_13
  142. is_private: true
  143. num_issues: 0
  144. num_closed_issues: 0
  145. num_pulls: 0
  146. num_closed_pulls: 0
  147. is_mirror: false
  148. -
  149. id: 14
  150. owner_id: 14
  151. lower_name: test_repo_14
  152. name: test_repo_14
  153. is_private: false
  154. num_issues: 0
  155. num_closed_issues: 0
  156. num_pulls: 0
  157. num_closed_pulls: 0
  158. is_mirror: false
  159. -
  160. id: 15
  161. owner_id: 2
  162. lower_name: repo15
  163. name: repo15
  164. is_bare: true
  165. -
  166. id: 16
  167. owner_id: 2
  168. lower_name: repo16
  169. name: repo16
  170. is_private: true
  171. num_issues: 0
  172. num_closed_issues: 0
  173. num_pulls: 0
  174. num_closed_pulls: 0
  175. num_watches: 0
  176. -
  177. id: 17
  178. owner_id: 15
  179. lower_name: big_test_public_1
  180. name: big_test_public_1
  181. is_private: false
  182. num_issues: 0
  183. num_closed_issues: 0
  184. num_pulls: 0
  185. num_closed_pulls: 0
  186. num_watches: 0
  187. is_mirror: false
  188. is_fork: false
  189. -
  190. id: 18
  191. owner_id: 15
  192. lower_name: big_test_public_2
  193. name: big_test_public_2
  194. is_private: false
  195. num_issues: 0
  196. num_closed_issues: 0
  197. num_pulls: 0
  198. num_closed_pulls: 0
  199. is_mirror: false
  200. is_fork: false
  201. -
  202. id: 19
  203. owner_id: 15
  204. lower_name: big_test_private_1
  205. name: big_test_private_1
  206. is_private: true
  207. num_issues: 0
  208. num_closed_issues: 0
  209. num_pulls: 0
  210. num_closed_pulls: 0
  211. is_mirror: false
  212. is_fork: false
  213. -
  214. id: 20
  215. owner_id: 15
  216. lower_name: big_test_private_2
  217. name: big_test_private_2
  218. is_private: true
  219. num_issues: 0
  220. num_closed_issues: 0
  221. num_pulls: 0
  222. num_closed_pulls: 0
  223. is_mirror: false
  224. is_fork: false
  225. -
  226. id: 21
  227. owner_id: 16
  228. lower_name: big_test_public_3
  229. name: big_test_public_3
  230. is_private: false
  231. num_issues: 0
  232. num_closed_issues: 0
  233. num_pulls: 0
  234. num_closed_pulls: 0
  235. is_mirror: false
  236. is_fork: false
  237. -
  238. id: 22
  239. owner_id: 16
  240. lower_name: big_test_private_3
  241. name: big_test_private_3
  242. is_private: true
  243. num_issues: 0
  244. num_closed_issues: 0
  245. num_pulls: 0
  246. num_closed_pulls: 0
  247. is_mirror: false
  248. is_fork: false
  249. -
  250. id: 23
  251. owner_id: 17
  252. lower_name: big_test_public_4
  253. name: big_test_public_4
  254. is_private: false
  255. num_issues: 0
  256. num_closed_issues: 0
  257. num_pulls: 0
  258. num_closed_pulls: 0
  259. is_mirror: false
  260. is_fork: false
  261. -
  262. id: 24
  263. owner_id: 17
  264. lower_name: big_test_private_4
  265. name: big_test_private_4
  266. is_private: true
  267. num_issues: 0
  268. num_closed_issues: 0
  269. num_pulls: 0
  270. num_closed_pulls: 0
  271. is_mirror: false
  272. is_fork: false
  273. -
  274. id: 25
  275. owner_id: 20
  276. lower_name: big_test_public_mirror_5
  277. name: big_test_public_mirror_5
  278. is_private: false
  279. num_issues: 0
  280. num_closed_issues: 0
  281. num_pulls: 0
  282. num_closed_pulls: 0
  283. num_watches: 0
  284. is_mirror: true
  285. is_fork: false
  286. -
  287. id: 26
  288. owner_id: 20
  289. lower_name: big_test_private_mirror_5
  290. name: big_test_private_mirror_5
  291. is_private: true
  292. num_issues: 0
  293. num_closed_issues: 0
  294. num_pulls: 0
  295. num_closed_pulls: 0
  296. num_watches: 0
  297. is_mirror: true
  298. is_fork: false
  299. -
  300. id: 27
  301. owner_id: 19
  302. lower_name: big_test_public_mirror_6
  303. name: big_test_public_mirror_6
  304. is_private: false
  305. num_issues: 0
  306. num_closed_issues: 0
  307. num_pulls: 0
  308. num_closed_pulls: 0
  309. num_watches: 0
  310. is_mirror: true
  311. num_forks: 1
  312. is_fork: false
  313. -
  314. id: 28
  315. owner_id: 19
  316. lower_name: big_test_private_mirror_6
  317. name: big_test_private_mirror_6
  318. is_private: true
  319. num_issues: 0
  320. num_closed_issues: 0
  321. num_pulls: 0
  322. num_closed_pulls: 0
  323. num_watches: 0
  324. is_mirror: true
  325. num_forks: 1
  326. is_fork: false
  327. -
  328. id: 29
  329. fork_id: 27
  330. owner_id: 20
  331. lower_name: big_test_public_fork_7
  332. name: big_test_public_fork_7
  333. is_private: false
  334. num_issues: 0
  335. num_closed_issues: 0
  336. num_pulls: 0
  337. num_closed_pulls: 0
  338. is_mirror: false
  339. is_fork: true
  340. -
  341. id: 30
  342. fork_id: 28
  343. owner_id: 20
  344. lower_name: big_test_private_fork_7
  345. name: big_test_private_fork_7
  346. is_private: true
  347. num_issues: 0
  348. num_closed_issues: 0
  349. num_pulls: 0
  350. num_closed_pulls: 0
  351. is_mirror: false
  352. is_fork: true