Skip to content

Commit d887752

Browse files
committed
Merge remote-tracking branch 'giteaofficial/main'
* giteaofficial/main: [skip ci] Updated translations via Crowdin Dismiss prior pull reviews if done via web in review dismiss (go-gitea#20197) Fix modified due date message (go-gitea#20388) Fix public org members displayed too many informations (go-gitea#20403) Add two factor status to admin cmd display (go-gitea#20401) Use tippy.js for context popup (go-gitea#20393)
2 parents 7fa3229 + 0d05bdb commit d887752

File tree

20 files changed

+237
-41
lines changed

20 files changed

+237
-41
lines changed

cmd/admin.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -632,9 +632,10 @@ func runListUsers(c *cli.Context) error {
632632
}
633633
}
634634
} else {
635-
fmt.Fprintf(w, "ID\tUsername\tEmail\tIsActive\tIsAdmin\n")
635+
twofa := user_model.UserList(users).GetTwoFaStatus()
636+
fmt.Fprintf(w, "ID\tUsername\tEmail\tIsActive\tIsAdmin\t2FA\n")
636637
for _, u := range users {
637-
fmt.Fprintf(w, "%d\t%s\t%s\t%t\t%t\n", u.ID, u.Name, u.Email, u.IsActive, u.IsAdmin)
638+
fmt.Fprintf(w, "%d\t%s\t%s\t%t\t%t\t%t\n", u.ID, u.Name, u.Email, u.IsActive, u.IsAdmin, twofa[u.ID])
638639
}
639640

640641
}

models/issues/review.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"code.gitea.io/gitea/modules/base"
2020
"code.gitea.io/gitea/modules/structs"
2121
"code.gitea.io/gitea/modules/timeutil"
22+
"code.gitea.io/gitea/modules/util"
2223

2324
"xorm.io/builder"
2425
)
@@ -474,6 +475,35 @@ func SubmitReview(doer *user_model.User, issue *Issue, reviewType ReviewType, co
474475
return review, comm, committer.Commit()
475476
}
476477

478+
// GetReviewOptions represent filter options for GetReviews
479+
type GetReviewOptions struct {
480+
IssueID int64
481+
ReviewerID int64
482+
Dismissed util.OptionalBool
483+
}
484+
485+
// GetReviews return reviews based on GetReviewOptions
486+
func GetReviews(ctx context.Context, opts *GetReviewOptions) ([]*Review, error) {
487+
if opts == nil {
488+
return nil, fmt.Errorf("opts are nil")
489+
}
490+
491+
sess := db.GetEngine(ctx)
492+
493+
if opts.IssueID != 0 {
494+
sess = sess.Where("issue_id=?", opts.IssueID)
495+
}
496+
if opts.ReviewerID != 0 {
497+
sess = sess.Where("reviewer_id=?", opts.ReviewerID)
498+
}
499+
if !opts.Dismissed.IsNone() {
500+
sess = sess.Where("dismissed=?", opts.Dismissed.IsTrue())
501+
}
502+
503+
reviews := make([]*Review, 0, 4)
504+
return reviews, sess.Find(&reviews)
505+
}
506+
477507
// GetReviewersByIssueID gets the latest review of each reviewer for a pull request
478508
func GetReviewersByIssueID(issueID int64) ([]*Review, error) {
479509
reviews := make([]*Review, 0, 10)

modules/structs/pull_review.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ type SubmitPullReviewOptions struct {
9797
// DismissPullReviewOptions are options to dismiss a pull review
9898
type DismissPullReviewOptions struct {
9999
Message string `json:"message"`
100+
Priors bool `json:"priors"`
100101
}
101102

102103
// PullReviewRequestOptions are options to add or remove pull review requests

options/locale/locale_de-DE.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,6 +1300,7 @@ issues.previous=Vorherige
13001300
issues.next=Nächste
13011301
issues.open_title=Offen
13021302
issues.closed_title=Geschlossen
1303+
issues.draft_title=Entwurf
13031304
issues.num_comments=%d Kommentare
13041305
issues.commented_at=`hat <a href="#%s">%s</a> kommentiert`
13051306
issues.delete_comment_confirm=Bist du sicher dass du diesen Kommentar löschen möchtest?
@@ -1606,6 +1607,8 @@ pulls.auto_merge_canceled_schedule=Der Automerge dieses Pull-Requests wurde abge
16061607
pulls.auto_merge_newly_scheduled_comment=`hat einen Automerge für diesen Pull-Request %[1]s geplant`
16071608
pulls.auto_merge_canceled_schedule_comment=`hat den Automerge für diesen Pull-Request %[1]s abgebrochen`
16081609

1610+
pulls.delete.title=Diesen Pull-Request löschen?
1611+
pulls.delete.text=Willst du diesen Pull-Request wirklich löschen? (Dies wird den Inhalt unwiderruflich löschen. Überlege, ob du ihn nicht lieber schließen willst, um ihn zu archivieren)
16091612

16101613
milestones.new=Neuer Meilenstein
16111614
milestones.closed=Geschlossen %s

options/locale/locale_el-GR.ini

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,9 @@ default_branch=Προεπιλεγμένος Κλάδος
861861
default_branch_helper=Ο προεπιλεγμένος κλάδος είναι ο βασικός κλάδος για pull requests και υποβολές κώδικα.
862862
mirror_prune=Καθαρισμός
863863
mirror_prune_desc=Αφαίρεση παρωχημένων αναφορών απομακρυσμένης-παρακολούθησης
864+
mirror_interval=Διάστημα ανανέωσης ειδώλου (έγκυρες μονάδες ώρας είναι 'h', 'm', 's'). 0 για απενεργοποίηση του αυτόματου συγχρονισμού. (Ελάχιστο διάστημα: %s)
864865
mirror_interval_invalid=Το χρονικό διάστημα του ειδώλου δεν είναι έγκυρο.
866+
mirror_sync_on_commit=Συγχρονισμός κατά την ώθηση
865867
mirror_address=Κλωνοποίηση Από Το URL
866868
mirror_address_desc=Τοποθετήστε όλα τα απαιτούμενα διαπιστευτήρια στην ενότητα Εξουσιοδότηση.
867869
mirror_address_url_invalid=Η διεύθυνση url που δώσατε δεν είναι έγκυρη. Πρέπει να μεταφράσετε όλα τα στοιχεία του url σωστά.
@@ -930,6 +932,7 @@ form.name_pattern_not_allowed=Το μοτίβο '%s' δεν επιτρέπετα
930932
need_auth=Εξουσιοδότηση
931933
migrate_options=Επιλογές Μεταφοράς
932934
migrate_service=Υπηρεσία Μεταφοράς
935+
migrate_options_mirror_helper=Αυτό το αποθετήριο θα είναι είδωλο
933936
migrate_options_lfs=Μεταφορά αρχείων LFS
934937
migrate_options_lfs_endpoint.label=LFS Endpoint
935938
migrate_options_lfs_endpoint.description=Η μεταφορά θα προσπαθήσει να χρησιμοποιήσει το Git remote για να <a target="_blank" rel="noopener noreferrer" href="%s">καθορίσει τον διακομιστή LFS</a>. Μπορείτε επίσης να καθορίσετε ένα δικό σας endpoint αν τα δεδομένα LFS του αποθετηρίου αποθηκεύονται κάπου αλλού.
@@ -1300,6 +1303,7 @@ issues.previous=Προηγούμενο
13001303
issues.next=Επόμενο
13011304
issues.open_title=Ανοιχτό
13021305
issues.closed_title=Κλειστό
1306+
issues.draft_title=Προσχέδιο
13031307
issues.num_comments=%d σχόλια
13041308
issues.commented_at=`σχολίασε <a href="#%s">%s</a>`
13051309
issues.delete_comment_confirm=Θέλετε σίγουρα να διαγράψετε αυτό το σχόλιο;
@@ -1528,6 +1532,8 @@ pulls.remove_prefix=Αφαίρεση <strong>%s</strong> προθέματος
15281532
pulls.data_broken=Αυτό το pull request είναι κατεστραμμένο λόγω των πληροφοριών του fork που λείπουν.
15291533
pulls.files_conflicted=Αυτό το pull request περιέχει αλλαγές που συγκρούονται με το κλάδο προορισμού.
15301534
pulls.is_checking=Ο έλεγχος συγκρούσεων κατά την συγχώνευση είναι σε εξέλιξη. Δοκιμάστε ξανά σε λίγα λεπτά.
1535+
pulls.is_ancestor=Αυτός ο κλάδος περιλαμβάνεται ήδη στον κλάδο προορισμού. Δεν υπάρχει τίποτα για συγχώνευση.
1536+
pulls.is_empty=Οι αλλαγές σε αυτόν τον κλάδο είναι ήδη στον κλάδο προορισμού. Θα είναι μια κενή υποβολή.
15311537
pulls.required_status_check_failed=Ορισμένοι απαιτούμενοι έλεγχοι δεν ήταν επιτυχείς.
15321538
pulls.required_status_check_missing=Λείπουν ορισμένοι απαιτούμενοι έλεγχοι.
15331539
pulls.required_status_check_administrator=Ως διαχειριστής, μπορείτε ακόμα να συγχωνεύσετε αυτό το pull request.
@@ -2534,6 +2540,8 @@ users.delete_account=Διαγραφή Λογαριασμού Χρήστη
25342540
users.cannot_delete_self=Δεν μπορείτε να διαγράψετε τον εαυτό σας
25352541
users.still_own_repo=Αυτός ο χρήστης εξακολουθεί να κατέχει ένα ή περισσότερα αποθετήρια. Διαγράψτε ή μεταφέρετε αυτά τα αποθετήρια πρώτα.
25362542
users.still_has_org=Αυτός ο χρήστης είναι μέλος ενός οργανισμού. Αφαιρέστε πρώτα τον χρήστη από οποιονδήποτε οργανισμό.
2543+
users.purge=Εκκαθάριση Χρήστη
2544+
users.purge_help=Αναγκαστική διαγραφή χρήστη και των αποθετηρίων, οργανισμών και πακέτων που του ανήκουν. Όλα τα σχόλια επίσης θα διαγραφούν.
25372545
users.still_own_packages=Αυτός ο χρήστης εξακολουθεί να κατέχει ένα ή περισσότερα πακέτα. Διαγράψτε πρώτα αυτά τα πακέτα.
25382546
users.deletion_success=Ο λογαριασμός χρήστη έχει διαγραφεί.
25392547
users.reset_2fa=Επαναφορά 2FA

options/locale/locale_en-US.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1420,7 +1420,7 @@ issues.due_date_form_remove = "Remove"
14201420
issues.due_date_not_writer = "You need repository write access to update an issue's due date."
14211421
issues.due_date_not_set = "No due date set."
14221422
issues.due_date_added = "added the due date %s %s"
1423-
issues.due_date_modified = "modified the due date to %s from %s %s"
1423+
issues.due_date_modified = "modified the due date from %[2]s to %[1]s %[3]s"
14241424
issues.due_date_remove = "removed the due date %s %s"
14251425
issues.due_date_overdue = "Overdue"
14261426
issues.due_date_invalid = "The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'."

options/locale/locale_ja-JP.ini

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1532,6 +1532,8 @@ pulls.remove_prefix=先頭の <strong>%s</strong> を除去
15321532
pulls.data_broken=このプルリクエストは、フォークの情報が見つからないため壊れています。
15331533
pulls.files_conflicted=このプルリクエストは、ターゲットブランチと競合する変更を含んでいます。
15341534
pulls.is_checking=マージのコンフリクトを確認中です。 少し待ってからもう一度実行してください。
1535+
pulls.is_ancestor=このブランチは既にターゲットブランチに含まれています。マージするものはありません。
1536+
pulls.is_empty=このブランチの変更は既にターゲットブランチにあります。これは空のコミットになります。
15351537
pulls.required_status_check_failed=いくつかの必要なステータスチェックが成功していません。
15361538
pulls.required_status_check_missing=必要なステータスチェックが見つかりません。
15371539
pulls.required_status_check_administrator=管理者であるため、このプルリクエストをマージすることは可能です。
@@ -2538,6 +2540,8 @@ users.delete_account=ユーザーアカウントを削除
25382540
users.cannot_delete_self=自分自身を削除することはできません
25392541
users.still_own_repo=このユーザーはまだ1つ以上のリポジトリを所有しています。 先にそれらのリポジトリを削除するか移転してください。
25402542
users.still_has_org=このユーザーは組織のメンバーになっています。 先に組織からこのユーザーを削除してください。
2543+
users.purge=ユーザーを抹消
2544+
users.purge_help=強制的にユーザーとそのユーザーが所有していたリポジトリ、組織、パッケージを削除します。コメントもすべて削除します。
25412545
users.still_own_packages=このユーザーはまだ1つ以上のパッケージを所有しています。最初にそれらのパッケージを削除してください。
25422546
users.deletion_success=ユーザーアカウントを削除しました。
25432547
users.reset_2fa=2要素認証をリセット

package-lock.json

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
"pretty-ms": "7.0.1",
3030
"sortablejs": "1.15.0",
3131
"swagger-ui-dist": "4.11.1",
32+
"tippy.js": "6.3.7",
3233
"tributejs": "5.1.3",
3334
"uint8-to-base64": "0.2.0",
3435
"vue": "2.6.14",

routers/api/v1/repo/pull_review.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ func DismissPullReview(ctx *context.APIContext) {
823823
// "422":
824824
// "$ref": "#/responses/validationError"
825825
opts := web.GetForm(ctx).(*api.DismissPullReviewOptions)
826-
dismissReview(ctx, opts.Message, true)
826+
dismissReview(ctx, opts.Message, true, opts.Priors)
827827
}
828828

829829
// UnDismissPullReview cancel to dismiss a review for a pull request
@@ -863,10 +863,10 @@ func UnDismissPullReview(ctx *context.APIContext) {
863863
// "$ref": "#/responses/forbidden"
864864
// "422":
865865
// "$ref": "#/responses/validationError"
866-
dismissReview(ctx, "", false)
866+
dismissReview(ctx, "", false, false)
867867
}
868868

869-
func dismissReview(ctx *context.APIContext, msg string, isDismiss bool) {
869+
func dismissReview(ctx *context.APIContext, msg string, isDismiss, dismissPriors bool) {
870870
if !ctx.Repo.IsAdmin() {
871871
ctx.Error(http.StatusForbidden, "", "Must be repo admin")
872872
return
@@ -886,7 +886,7 @@ func dismissReview(ctx *context.APIContext, msg string, isDismiss bool) {
886886
return
887887
}
888888

889-
_, err := pull_service.DismissReview(ctx, review.ID, ctx.Repo.Repository.ID, msg, ctx.Doer, isDismiss)
889+
_, err := pull_service.DismissReview(ctx, review.ID, ctx.Repo.Repository.ID, msg, ctx.Doer, isDismiss, dismissPriors)
890890
if err != nil {
891891
ctx.Error(http.StatusInternalServerError, "pull_service.DismissReview", err)
892892
return

routers/web/org/members.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ func Members(ctx *context.Context) {
4545
}
4646
opts.PublicOnly = !isMember && !ctx.Doer.IsAdmin
4747
}
48+
ctx.Data["PublicOnly"] = opts.PublicOnly
4849

4950
total, err := organization.CountOrgMembers(opts)
5051
if err != nil {

routers/web/repo/pull_review.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ func SubmitReview(ctx *context.Context) {
242242
// DismissReview dismissing stale review by repo admin
243243
func DismissReview(ctx *context.Context) {
244244
form := web.GetForm(ctx).(*forms.DismissReviewForm)
245-
comm, err := pull_service.DismissReview(ctx, form.ReviewID, ctx.Repo.Repository.ID, form.Message, ctx.Doer, true)
245+
comm, err := pull_service.DismissReview(ctx, form.ReviewID, ctx.Repo.Repository.ID, form.Message, ctx.Doer, true, true)
246246
if err != nil {
247247
ctx.ServerError("pull_service.DismissReview", err)
248248
return

services/pull/review.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"code.gitea.io/gitea/modules/log"
2121
"code.gitea.io/gitea/modules/notification"
2222
"code.gitea.io/gitea/modules/setting"
23+
"code.gitea.io/gitea/modules/util"
2324
)
2425

2526
// CreateCodeComment creates a comment on the code line
@@ -271,7 +272,7 @@ func SubmitReview(ctx context.Context, doer *user_model.User, gitRepo *git.Repos
271272
}
272273

273274
// DismissReview dismissing stale review by repo admin
274-
func DismissReview(ctx context.Context, reviewID, repoID int64, message string, doer *user_model.User, isDismiss bool) (comment *issues_model.Comment, err error) {
275+
func DismissReview(ctx context.Context, reviewID, repoID int64, message string, doer *user_model.User, isDismiss, dismissPriors bool) (comment *issues_model.Comment, err error) {
275276
review, err := issues_model.GetReviewByID(ctx, reviewID)
276277
if err != nil {
277278
return
@@ -295,6 +296,22 @@ func DismissReview(ctx context.Context, reviewID, repoID int64, message string,
295296
return
296297
}
297298

299+
if dismissPriors {
300+
reviews, err := issues_model.GetReviews(ctx, &issues_model.GetReviewOptions{
301+
IssueID: review.IssueID,
302+
ReviewerID: review.ReviewerID,
303+
Dismissed: util.OptionalBoolFalse,
304+
})
305+
if err != nil {
306+
return nil, err
307+
}
308+
for _, oldReview := range reviews {
309+
if err = issues_model.DismissReview(oldReview, true); err != nil {
310+
return nil, err
311+
}
312+
}
313+
}
314+
298315
if !isDismiss {
299316
return nil, nil
300317
}

templates/org/member/members.tmpl

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,28 +29,30 @@
2929
{{end}}
3030
</div>
3131
</div>
32-
<div class="ui three wide column center">
33-
<div class="meta">
34-
{{$.locale.Tr "org.members.member_role"}}
35-
</div>
36-
<div class="meta">
37-
<strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock"}} {{$.locale.Tr "org.members.owner"}}{{else}}{{$.locale.Tr "org.members.member"}}{{end}}</strong>
38-
</div>
39-
</div>
40-
<div class="ui two wide column center">
41-
<div class="meta">
42-
{{$.locale.Tr "admin.users.2fa"}}
32+
{{if not .PublicOnly}}
33+
<div class="ui three wide column center">
34+
<div class="meta">
35+
{{$.locale.Tr "org.members.member_role"}}
36+
</div>
37+
<div class="meta">
38+
<strong>{{if index $.MembersIsUserOrgOwner .ID}}{{svg "octicon-shield-lock"}} {{$.locale.Tr "org.members.owner"}}{{else}}{{$.locale.Tr "org.members.member"}}{{end}}</strong>
39+
</div>
4340
</div>
44-
<div class="meta">
45-
<strong>
46-
{{if index $.MembersTwoFaStatus .ID}}
47-
<span class="text green">{{svg "octicon-check"}}</span>
48-
{{else}}
49-
{{svg "octicon-x"}}
50-
{{end}}
51-
</strong>
41+
<div class="ui two wide column center">
42+
<div class="meta">
43+
{{$.locale.Tr "admin.users.2fa"}}
44+
</div>
45+
<div class="meta">
46+
<strong>
47+
{{if index $.MembersTwoFaStatus .ID}}
48+
<span class="text green">{{svg "octicon-check"}}</span>
49+
{{else}}
50+
{{svg "octicon-x"}}
51+
{{end}}
52+
</strong>
53+
</div>
5254
</div>
53-
</div>
55+
{{end}}
5456
<div class="ui three wide column">
5557
<div class="text right">
5658
{{if eq $.SignedUser.ID .ID}}

templates/repo/issue/view_content/comments.tmpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,8 @@
340340
</a>
341341
<span class="text grey">
342342
<a class="author" href="{{.Poster.HomeLink}}">{{.Poster.GetDisplayName}}</a>
343-
{{$.locale.Tr "repo.issues.due_date_modified" (.Content | ParseDeadline) $createdStr | Safe}}
343+
{{$parsedDeadline := .Content | ParseDeadline}}
344+
{{$.locale.Tr "repo.issues.due_date_modified" (index $parsedDeadline 0) (index $parsedDeadline 1) $createdStr | Safe}}
344345
</span>
345346
</div>
346347
{{else if eq .Type 18}}

templates/swagger/v1_json.tmpl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14864,6 +14864,10 @@
1486414864
"message": {
1486514865
"type": "string",
1486614866
"x-go-name": "Message"
14867+
},
14868+
"priors": {
14869+
"type": "boolean",
14870+
"x-go-name": "Priors"
1486714871
}
1486814872
},
1486914873
"x-go-package": "code.gitea.io/gitea/modules/structs"

0 commit comments

Comments
 (0)