Merge branch 'master' into branch-special-chars
This commit is contained in:
commit
e45e2e3b8f
|
@ -68,3 +68,25 @@ func TestSettingShowUserEmailProfile(t *testing.T) {
|
|||
|
||||
setting.UI.ShowUserEmail = showUserEmail
|
||||
}
|
||||
|
||||
func TestSettingLandingPage(t *testing.T) {
|
||||
prepareTestEnv(t)
|
||||
|
||||
landingPage := setting.LandingPageURL
|
||||
|
||||
setting.LandingPageURL = setting.LandingPageHome
|
||||
req := NewRequest(t, "GET", "/")
|
||||
MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
setting.LandingPageURL = setting.LandingPageExplore
|
||||
req = NewRequest(t, "GET", "/")
|
||||
resp := MakeRequest(t, req, http.StatusFound)
|
||||
assert.Equal(t, "/explore", resp.Header().Get("Location"))
|
||||
|
||||
setting.LandingPageURL = setting.LandingPageOrganizations
|
||||
req = NewRequest(t, "GET", "/")
|
||||
resp = MakeRequest(t, req, http.StatusFound)
|
||||
assert.Equal(t, "/explore/organizations", resp.Header().Get("Location"))
|
||||
|
||||
setting.LandingPageURL = landingPage
|
||||
}
|
||||
|
|
|
@ -37,12 +37,6 @@ func Toggle(options *ToggleOptions) macaron.Handler {
|
|||
return
|
||||
}
|
||||
|
||||
// Check non-logged users landing page.
|
||||
if !ctx.IsSigned && ctx.Req.RequestURI == "/" && setting.LandingPageURL != setting.LandingPageHome {
|
||||
ctx.Redirect(setting.AppSubURL + string(setting.LandingPageURL))
|
||||
return
|
||||
}
|
||||
|
||||
// Redirect to dashboard if user tries to visit any non-login page.
|
||||
if options.SignOutRequired && ctx.IsSigned && ctx.Req.RequestURI != "/" {
|
||||
ctx.Redirect(setting.AppSubURL + "/")
|
||||
|
|
|
@ -469,6 +469,9 @@ func shortLinkProcessorFull(ctx *postProcessCtx, node *html.Node, noLink bool) {
|
|||
} else {
|
||||
link = strings.Replace(link, " ", "-", -1)
|
||||
}
|
||||
if !strings.Contains(link, "/") {
|
||||
link = url.PathEscape(link)
|
||||
}
|
||||
}
|
||||
urlPrefix := ctx.urlPrefix
|
||||
if image {
|
||||
|
|
|
@ -82,12 +82,18 @@ func TestRender_ShortLinks(t *testing.T) {
|
|||
rawtree := util.URLJoin(AppSubURL, "raw", "master")
|
||||
url := util.URLJoin(tree, "Link")
|
||||
otherURL := util.URLJoin(tree, "Other-Link")
|
||||
encodedURL := util.URLJoin(tree, "Link%3F")
|
||||
imgurl := util.URLJoin(rawtree, "Link.jpg")
|
||||
otherImgurl := util.URLJoin(rawtree, "Link+Other.jpg")
|
||||
encodedImgurl := util.URLJoin(rawtree, "Link+%23.jpg")
|
||||
notencodedImgurl := util.URLJoin(rawtree, "some", "path", "Link+#.jpg")
|
||||
urlWiki := util.URLJoin(AppSubURL, "wiki", "Link")
|
||||
otherURLWiki := util.URLJoin(AppSubURL, "wiki", "Other-Link")
|
||||
encodedURLWiki := util.URLJoin(AppSubURL, "wiki", "Link%3F")
|
||||
imgurlWiki := util.URLJoin(AppSubURL, "wiki", "raw", "Link.jpg")
|
||||
otherImgurlWiki := util.URLJoin(AppSubURL, "wiki", "raw", "Link+Other.jpg")
|
||||
encodedImgurlWiki := util.URLJoin(AppSubURL, "wiki", "raw", "Link+%23.jpg")
|
||||
notencodedImgurlWiki := util.URLJoin(AppSubURL, "wiki", "raw", "some", "path", "Link+#.jpg")
|
||||
favicon := "http://google.com/favicon.ico"
|
||||
|
||||
test(
|
||||
|
@ -134,4 +140,24 @@ func TestRender_ShortLinks(t *testing.T) {
|
|||
"[[Link]] [[Other Link]]",
|
||||
`<p><a href="`+url+`" rel="nofollow">Link</a> <a href="`+otherURL+`" rel="nofollow">Other Link</a></p>`,
|
||||
`<p><a href="`+urlWiki+`" rel="nofollow">Link</a> <a href="`+otherURLWiki+`" rel="nofollow">Other Link</a></p>`)
|
||||
test(
|
||||
"[[Link?]]",
|
||||
`<p><a href="`+encodedURL+`" rel="nofollow">Link?</a></p>`,
|
||||
`<p><a href="`+encodedURLWiki+`" rel="nofollow">Link?</a></p>`)
|
||||
test(
|
||||
"[[Link]] [[Other Link]] [[Link?]]",
|
||||
`<p><a href="`+url+`" rel="nofollow">Link</a> <a href="`+otherURL+`" rel="nofollow">Other Link</a> <a href="`+encodedURL+`" rel="nofollow">Link?</a></p>`,
|
||||
`<p><a href="`+urlWiki+`" rel="nofollow">Link</a> <a href="`+otherURLWiki+`" rel="nofollow">Other Link</a> <a href="`+encodedURLWiki+`" rel="nofollow">Link?</a></p>`)
|
||||
test(
|
||||
"[[Link #.jpg]]",
|
||||
`<p><a href="`+encodedImgurl+`" rel="nofollow"><img src="`+encodedImgurl+`"/></a></p>`,
|
||||
`<p><a href="`+encodedImgurlWiki+`" rel="nofollow"><img src="`+encodedImgurlWiki+`"/></a></p>`)
|
||||
test(
|
||||
"[[Name|Link #.jpg|alt=\"AltName\"|title='Title']]",
|
||||
`<p><a href="`+encodedImgurl+`" rel="nofollow"><img src="`+encodedImgurl+`" title="Title" alt="AltName"/></a></p>`,
|
||||
`<p><a href="`+encodedImgurlWiki+`" rel="nofollow"><img src="`+encodedImgurlWiki+`" title="Title" alt="AltName"/></a></p>`)
|
||||
test(
|
||||
"[[some/path/Link #.jpg]]",
|
||||
`<p><a href="`+notencodedImgurl+`" rel="nofollow"><img src="`+notencodedImgurl+`"/></a></p>`,
|
||||
`<p><a href="`+notencodedImgurlWiki+`" rel="nofollow"><img src="`+notencodedImgurlWiki+`"/></a></p>`)
|
||||
}
|
||||
|
|
|
@ -323,7 +323,7 @@ func RenderCommitBody(msg, urlPrefix string, metas map[string]string) template.H
|
|||
|
||||
// IsMultilineCommitMessage checks to see if a commit message contains multiple lines.
|
||||
func IsMultilineCommitMessage(msg string) bool {
|
||||
return strings.Count(strings.TrimSpace(msg), "\n") > 1
|
||||
return strings.Count(strings.TrimSpace(msg), "\n") >= 1
|
||||
}
|
||||
|
||||
// Actioner describes an action
|
||||
|
|
|
@ -213,6 +213,7 @@ send_reset_mail=E-Mail zum Passwort-zurücksetzen erneut verschicken
|
|||
reset_password=Passwort zurücksetzen
|
||||
invalid_code=Dein Bestätigungs-Code ist ungültig oder abgelaufen.
|
||||
reset_password_helper=Passwort zurückzusetzen
|
||||
password_too_short=Das Passwort muss mindestens %d Zeichen lang sein.
|
||||
non_local_account=Benutzer, die nicht von Gitea verwaltet werden können ihre Passwörter nicht über das Web Interface ändern.
|
||||
verify=Verifizieren
|
||||
scratch_code=Einmalpasswort
|
||||
|
|
|
@ -38,6 +38,7 @@ u2f_use_twofa=Використовуйте дво-факторний код з
|
|||
u2f_error=Неможливо прочитати ваш ключ безпеки!
|
||||
u2f_unsupported_browser=Ваш браузер не підтримує U2F ключі. Будь ласка, спробуйте інший браузер.
|
||||
u2f_error_1=Сталася невідома помилка. Спробуйте ще раз.
|
||||
u2f_error_2=Переконайтеся, що ви використовуєте зашифроване з'єднання (https://) та відвідуєте правильну URL-адресу.
|
||||
u2f_error_3=Сервер не може обробити, ваш запит.
|
||||
u2f_reload=Оновити
|
||||
|
||||
|
@ -67,7 +68,7 @@ activities=Дії
|
|||
pull_requests=Запити на злиття
|
||||
issues=Проблеми
|
||||
|
||||
cancel=Відміна
|
||||
cancel=Відмінити
|
||||
|
||||
[install]
|
||||
install=Встановлення
|
||||
|
@ -317,7 +318,7 @@ update_profile=Оновити профіль
|
|||
update_profile_success=Профіль успішно оновлено.
|
||||
change_username=Ваше Ім'я кристувача було змінено.
|
||||
continue=Продовжити
|
||||
cancel=Відміна
|
||||
cancel=Відмінити
|
||||
language=Мова
|
||||
|
||||
lookup_avatar_by_mail=Знайти Аватар за адресою електронної пошти
|
||||
|
@ -398,7 +399,12 @@ generate_token=Згенерувати токен
|
|||
delete_token=Видалити
|
||||
access_token_deletion=Видалити токен доступу
|
||||
|
||||
twofa_desc=Двофакторна аутентифікація підвищує безпеку вашого облікового запису.
|
||||
twofa_is_enrolled=Ваш обліковий запис на даний час <strong>використовує</strong> двофакторну автентифікацію.
|
||||
twofa_disable=Вимкнути двофакторну автентифікацію
|
||||
twofa_enroll=Увімкнути двофакторну автентифікацію
|
||||
twofa_disabled=Двофакторна автентифікація вимкнена.
|
||||
scan_this_image=Проскануйте це зображення вашим додатком для двуфакторної аутентифікації:
|
||||
or_enter_secret=Або введіть секрет: %s
|
||||
passcode_invalid=Некоректний пароль. Спробуй ще раз.
|
||||
|
||||
|
@ -526,7 +532,7 @@ editor.commit_message_desc=Додати необов'язковий розшир
|
|||
editor.commit_directly_to_this_branch=Зробіть коміт прямо в гілку <strong class="branch-name">%s</strong>.
|
||||
editor.create_new_branch=Створити <strong>нову гілку</strong> для цього коміту та відкрити запит на злиття.
|
||||
editor.new_branch_name_desc=Ім'я нової гілки…
|
||||
editor.cancel=Відміна
|
||||
editor.cancel=Відмінити
|
||||
editor.filename_cannot_be_empty=Ім'я файлу не може бути порожнім.
|
||||
editor.branch_already_exists=Гілка '%s' вже присутня в репозиторії.
|
||||
editor.directory_is_a_file=Ім'я каталогу "%s" уже використовується як ім'я файлу в цьому репозиторії.
|
||||
|
@ -628,7 +634,7 @@ issues.collaborator=Співавтор
|
|||
issues.owner=Власник
|
||||
issues.sign_in_require_desc=<a href="%s">Підпишіться</a> щоб приєднатися до обговорення.
|
||||
issues.edit=Редагувати
|
||||
issues.cancel=Відміна
|
||||
issues.cancel=Відмінити
|
||||
issues.save=Зберегти
|
||||
issues.label_title=Назва мітки
|
||||
issues.label_description=Опис мітки
|
||||
|
@ -657,11 +663,11 @@ issues.tracking_already_started=`Ви вже почали відстежуват
|
|||
issues.stop_tracking=Стоп
|
||||
issues.add_time=Вручну додати час
|
||||
issues.add_time_short=Додати час
|
||||
issues.add_time_cancel=Відміна
|
||||
issues.add_time_cancel=Відмінити
|
||||
issues.add_time_hours=Години
|
||||
issues.add_time_minutes=Хвилини
|
||||
issues.add_time_sum_to_small=Час не введено.
|
||||
issues.cancel_tracking=Відміна
|
||||
issues.cancel_tracking=Відмінити
|
||||
issues.cancel_tracking_history=`скасував відстеження часу %s`
|
||||
issues.time_spent_total=Загальний витрачений час
|
||||
issues.time_spent_from_all_authors=`Загальний витрачений час: %s`
|
||||
|
@ -712,7 +718,7 @@ milestones.desc=Опис
|
|||
milestones.due_date=Дата завершення (опціонально)
|
||||
milestones.clear=Очистити
|
||||
milestones.edit=Редагувати етап
|
||||
milestones.cancel=Відміна
|
||||
milestones.cancel=Відмінити
|
||||
milestones.modify=Оновити етап
|
||||
milestones.deletion=Видалити етап
|
||||
milestones.filter_sort.most_issues=Найбільш проблем
|
||||
|
@ -933,7 +939,7 @@ release.preview=Переглянути
|
|||
release.loading=Завантаження…
|
||||
release.prerelease_desc=Позначити як пре-реліз
|
||||
release.prerelease_helper=Позначте цей випуск непридатним для ПРОД використання.
|
||||
release.cancel=Відміна
|
||||
release.cancel=Відмінити
|
||||
release.publish=Опублікувати реліз
|
||||
release.save_draft=Зберегти чернетку
|
||||
release.edit_release=Оновити реліз
|
||||
|
|
2
public/swagger.v1.json
vendored
2
public/swagger.v1.json
vendored
|
@ -2208,7 +2208,7 @@
|
|||
"name": "body",
|
||||
"in": "body",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/CreateIssueOption"
|
||||
"$ref": "#/definitions/CreateIssueCommentOption"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
|
@ -147,7 +147,7 @@ func CreateIssueComment(ctx *context.APIContext, form api.CreateIssueCommentOpti
|
|||
// - name: body
|
||||
// in: body
|
||||
// schema:
|
||||
// "$ref": "#/definitions/CreateIssueOption"
|
||||
// "$ref": "#/definitions/CreateIssueCommentOption"
|
||||
// responses:
|
||||
// "201":
|
||||
// "$ref": "#/responses/Comment"
|
||||
|
|
|
@ -42,6 +42,10 @@ func Home(ctx *context.Context) {
|
|||
user.Dashboard(ctx)
|
||||
}
|
||||
return
|
||||
// Check non-logged users landing page.
|
||||
} else if setting.LandingPageURL != setting.LandingPageHome {
|
||||
ctx.Redirect(setting.AppSubURL + string(setting.LandingPageURL))
|
||||
return
|
||||
}
|
||||
|
||||
// Check auto-login.
|
||||
|
|
Loading…
Reference in New Issue
Block a user