#1577 explore paginator problem

tokarchuk/v1.17
Unknwon 9 years ago
parent 36a69e8aa5
commit d023e81a8f
  1. 2
      README.md
  2. 2
      README_ZH.md
  3. 52
      conf/locale/locale_bg-BG.ini
  4. 20
      conf/locale/locale_de-DE.ini
  5. 19
      models/repo.go
  6. 8
      modules/bindata/bindata.go
  7. 10
      public/config.codekit
  8. 11
      public/css/semantic-2.1.2.min.css
  9. 11
      public/css/semantic-2.1.3.min.css
  10. 4
      public/js/semantic-2.1.3.min.js
  11. 2
      routers/home.go
  12. 4
      templates/base/head.tmpl

@ -111,7 +111,7 @@ There are 5 ways to install Gogs:
- Ex-team members [@lunny](https://github.com/lunny) and [@fuxiaohei](https://github.com/fuxiaohei). - Ex-team members [@lunny](https://github.com/lunny) and [@fuxiaohei](https://github.com/fuxiaohei).
- See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors. - See [contributors page](https://github.com/gogits/gogs/graphs/contributors) for full list of contributors.
- See [TRANSLATORS](conf/locale/TRANSLATORS) for full list of translators. - See [TRANSLATORS](conf/locale/TRANSLATORS) for public list of translators.
## License ## License

@ -66,7 +66,7 @@ Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自
- 前团队成员 [@lunny](https://github.com/lunny) 和 [@fuxiaohei](https://github.com/fuxiaohei)。 - 前团队成员 [@lunny](https://github.com/lunny) 和 [@fuxiaohei](https://github.com/fuxiaohei)。
- 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。 - 您可以通过查看 [贡献者页面](https://github.com/gogits/gogs/graphs/contributors) 获取完整的贡献者列表。
- 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取完整的翻译人员列表。 - 您可以通过查看 [TRANSLATORS](conf/locale/TRANSLATORS) 文件获取公开的翻译人员列表。
## 授权许可 ## 授权许可

@ -29,7 +29,7 @@ organization=Организация
mirror=Mirror mirror=Mirror
new_repo=Ново хранилище new_repo=Ново хранилище
new_migrate=Нова миграция new_migrate=Нова миграция
new_fork=Нов форк на хранилище new_fork=Ново разклонено хранилище
new_org=Нова организация new_org=Нова организация
manage_org=Управление на организации manage_org=Управление на организации
admin_panel=Админ панел admin_panel=Админ панел
@ -208,7 +208,7 @@ org_still_own_repo=Тази организация все още притежа
still_own_user=Тази аутентикация се ползва все още, моля премахнете я от аутентиканцията и опитайте отново. still_own_user=Тази аутентикация се ползва все още, моля премахнете я от аутентиканцията и опитайте отново.
target_branch_not_exist=Таргетирания клон не съществува. target_branch_not_exist=Целевият клон не съществува.
[user] [user]
change_avatar=Сменете вашия аватар на gravatar.com change_avatar=Сменете вашия аватар на gravatar.com
@ -319,9 +319,9 @@ repo_name=Име на хранилище
repo_name_helper=Добро име на хранилище е име, състоящо от кратки, запомнящи се и уникални ключови думи. repo_name_helper=Добро име на хранилище е име, състоящо от кратки, запомнящи се и уникални ключови думи.
visibility=Видимост visibility=Видимост
visiblity_helper=Това хранилище е <span class="ui red text">Частно</span> visiblity_helper=Това хранилище е <span class="ui red text">Частно</span>
visiblity_fork_helper=(Промяна на тази стойност ще се отрази на всички форкове) visiblity_fork_helper=(Промяна на тази стойност ще се отрази на всички разклонения)
fork_repo=Форк на хранилището fork_repo=Разклони хранилището
fork_from=Форк от fork_from=Разклони от
fork_visiblity_helper=Не можете да промените видимостта на форкнато хранилище. fork_visiblity_helper=Не можете да промените видимостта на форкнато хранилище.
repo_desc=Описание repo_desc=Описание
repo_lang=Език repo_lang=Език
@ -340,14 +340,14 @@ form.name_pattern_not_allowed=Името на хранилище „%s“ не
need_auth=Нужда от удостоверяване need_auth=Нужда от удостоверяване
migrate_type=Тип мигриране migrate_type=Тип мигриране
migrate_type_helper=Това хранилище ще бъде <span class="ui red text">огледало</span> migrate_type_helper=Това хранилище ще бъде <span class="text blue">огледало</span>
migrate_repo=Мигриране на хранилището migrate_repo=Мигриране на хранилището
migrate.clone_address=Клонирай адрес migrate.clone_address=Клонирай адрес
migrate.clone_address_desc=Това може да е HTTP/HTTPS/GIT адрес или локален път на сървъра. migrate.clone_address_desc=Това може да е HTTP/HTTPS/GIT адрес или локален път на сървъра.
migrate.invalid_local_path=Невалиден път - не съществува или не е директория. migrate.invalid_local_path=Невалиден път - не съществува или не е директория.
forked_from=Форкнато от forked_from=разклонено от
fork_from_self=Не можете да форкнeте хранилище което си е Ваше! fork_from_self=Не можете да разклоните хранилище което си е Ваше!
copy_link=Копирай copy_link=Копирай
click_to_copy=Копиране в клипборда click_to_copy=Копиране в клипборда
copied=Успешно копирано copied=Успешно копирано
@ -355,7 +355,7 @@ clone_helper=Нуждаеш се от помощ при клониране? По
unwatch=Не следи повече unwatch=Не следи повече
watch=Следи watch=Следи
unstar=Не харесвам unstar=Не харесвам
star=Избрано star=Харесвам
fork=Форк fork=Форк
no_desc=Няма описание no_desc=Няма описание
@ -373,15 +373,15 @@ issues=Проблеми
pulls=Заявки за дърпане pulls=Заявки за дърпане
labels=Етикети labels=Етикети
milestones=Етапи milestones=Етапи
commits=Къмити commits=Доработки
releases=Релийзи releases=Релийзи
file_raw=Суров file_raw=Суров
file_history=История file_history=История
file_view_raw=Прегледай в суров вид file_view_raw=Прегледай в суров вид
file_permalink=Постоянна връзка file_permalink=Постоянна връзка
commits.commits=Къмити commits.commits=Доработки
commits.search=Търсене в къмити commits.search=Търсене в доработки
commits.find=Намери commits.find=Намери
commits.author=Автор commits.author=Автор
commits.message=Съобщение commits.message=Съобщение
@ -441,7 +441,7 @@ issues.reopen_comment_issue=Отвори отново и коментирай
issues.create_comment=Коментирай issues.create_comment=Коментирай
issues.closed_at=`затворен на <a id="%[1]s" href="#%[1]s">%[2]s</a>` issues.closed_at=`затворен на <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`отворен отново на <a id="%[1]s" href="#%[1]s">%[2]s</a>` issues.reopened_at=`отворен отново на <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.commit_ref_at=`посочи този въпрос от къмит <a id="%[1]s" href="#%[1]s">%[2]s</a>` issues.commit_ref_at=`посочи този въпрос от доработка <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.poster=Участник issues.poster=Участник
issues.admin=Администратор issues.admin=Администратор
issues.owner=Притежател issues.owner=Притежател
@ -470,18 +470,18 @@ pulls.no_results=Няма резултати.
pulls.nothing_to_compare=Няма нищо за сравняване защото базовия клон и заглавния клон са еднакви. pulls.nothing_to_compare=Няма нищо за сравняване защото базовия клон и заглавния клон са еднакви.
pulls.has_pull_request=`Вече има заявка за дърпане между тези две цели: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>` pulls.has_pull_request=`Вече има заявка за дърпане между тези две цели: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Създай заявка за дърпане pulls.create=Създай заявка за дърпане
pulls.title_desc=желае да обедини %[1]d къмити от <code>%[2]s</code> във <code>%[3]s</code> pulls.title_desc=желае да обедини %[1]d доработки от <code>%[2]s</code> във <code>%[3]s</code>
pulls.merged_title_desc=обедини %[1]d къмити от <code>%[2]s</code> във <code>%[3]s</code> %[4]s pulls.merged_title_desc=обедини %[1]d доработки от <code>%[2]s</code> във <code>%[3]s</code> %[4]s
pulls.tab_conversation=Разговор pulls.tab_conversation=Разговор
pulls.tab_commits=Къмити pulls.tab_commits=Доработки
pulls.tab_files=Променени файлове pulls.tab_files=Променени файлове
pulls.reopen_to_merge=Моля възобнови тази заявка за дърпане за да се извърши обединяване. pulls.reopen_to_merge=Моля възобнови тази заявка за дърпане за да се извърши обединяване.
pulls.merged=Обединени pulls.merged=Обединени
pulls.has_merged=Тази заявка за дърпане е обединена успешно! pulls.has_merged=Тази заявка за дърпане е обединена успешно!
pulls.data_broken=Данните от тази заявка за дърпане са некоректни поради изтриване на информация относно предишен форк. pulls.data_broken=Данните от тази заявка за дърпане са невалидни поради изтрита информация за някое разклонение.
pulls.can_auto_merge_desc=Можете да извършвате авто-обединяване на тази заявка за дърпане. pulls.can_auto_merge_desc=Можете да извършвате авто-обединяване на тази заявка за дърпане.
pulls.cannot_auto_merge_desc=Не можете да извършите авто-обединяване, защото съществуват конфликти между къмитите. pulls.cannot_auto_merge_desc=Не можете да извършите авто-обединяване, защото съществуват конфликти между доработките.
pulls.cannot_auto_merge_helper=Моля, използвайте инструмент от командния ред за да отстраните проблема. pulls.cannot_auto_merge_helper=Моля, използвайте инструменти на командния ред за да отстраните проблема.
pulls.merge_pull_request=Обедини заявка за дърпане pulls.merge_pull_request=Обедини заявка за дърпане
milestones.new=Нов етап milestones.new=Нов етап
@ -528,9 +528,9 @@ settings.transfer_notices_2=- Вие ще запазите достъпа си,
settings.transfer_form_title=Моля въведете следната информация за да потвърдите операцията: settings.transfer_form_title=Моля въведете следната информация за да потвърдите операцията:
settings.delete_notices_1=- Тази операция <strong>НЕ МОЖЕ</strong> да бъде отменена в последствие. settings.delete_notices_1=- Тази операция <strong>НЕ МОЖЕ</strong> да бъде отменена в последствие.
settings.delete_notices_2=- Тази операция ще изтрие всичко от това хранилище, включително Git данни, въпроси, коментари и достъпа на сътрудници. settings.delete_notices_2=- Тази операция ще изтрие всичко от това хранилище, включително Git данни, въпроси, коментари и достъпа на сътрудници.
settings.delete_notices_fork_1=- Ако това хранилище е публично, всички форкове ще останат като независими от него след изтриването му. settings.delete_notices_fork_1=- Ако това хранилище е публично, всички негови разклонения ще останат независими след изтриването му.
settings.delete_notices_fork_2=- Ако това хранилище е частно, всички форкове ще бъдат премахнати след изтриването му. settings.delete_notices_fork_2=- Ако това хранилище е частно, всички негови разклонения ще бъдат премахнати с изтриването му.
settings.delete_notices_fork_3=- Ако желаете да запазите всички форкове след изтриването, първо променете видимостта на това хранилище на публично. settings.delete_notices_fork_3=- Ако желаете да запазите всички разклонения след изтриването му, първо направете хранилището публично.
settings.update_settings_success=Опции за хранилище е актуализиран успешно. settings.update_settings_success=Опции за хранилище е актуализиран успешно.
settings.transfer_owner=Нов собственик settings.transfer_owner=Нов собственик
settings.make_transfer=Направи трансфер settings.make_transfer=Направи трансфер
@ -568,8 +568,8 @@ settings.event_send_everything=Имам нужда от <strong>всичко</st
settings.event_choose=Нека избера от какво имам нужда. settings.event_choose=Нека избера от какво имам нужда.
settings.event_create=Създай settings.event_create=Създай
settings.event_create_desc=Създаден е клон или маркер settings.event_create_desc=Създаден е клон или маркер
settings.event_push=Пуш settings.event_push=Предаване
settings.event_push_desc=Пуш от git в хранилището settings.event_push_desc=Git предаване към хранилището
settings.active=Активен settings.active=Активен
settings.active_helper=Подробности относно събитието извикало хуука ще бъде също представена. settings.active_helper=Подробности относно събитието извикало хуука ще бъде също представена.
settings.add_hook_success=Нова webhook е добавен. settings.add_hook_success=Нова webhook е добавен.
@ -615,7 +615,7 @@ release.tag_name=Име на етикет
release.target=Цел release.target=Цел
release.tag_helper=Изберете съществуващ етикет или създайте нов етикет при публикуване. release.tag_helper=Изберете съществуващ етикет или създайте нов етикет при публикуване.
release.release_title=Заглавие на изданието release.release_title=Заглавие на изданието
release.content_with_md=Съдържание с <a href="%s"> Markdown</a> release.content_with_md=Съдържание с <a href="%s">Markdown</a>
release.write=Писане release.write=Писане
release.preview=Преглед release.preview=Преглед
release.content_placeholder=Напишете някакво съдържание release.content_placeholder=Напишете някакво съдържание
@ -926,7 +926,7 @@ create_pull_request=`създаде заявка за дърпане <a href="%s
comment_issue=`коментира въпрос <a href="%s/issues/%s">%s#%[2]s"</a>` comment_issue=`коментира въпрос <a href="%s/issues/%s">%s#%[2]s"</a>`
merge_pull_request=`обедини заявка за дърпане <a href="%s/pulls/%s">%s#%[2]s</a>` merge_pull_request=`обедини заявка за дърпане <a href="%s/pulls/%s">%s#%[2]s</a>`
transfer_repo=прехвърлено хранилище: от <code>%s</code> към <a href="%s"> %s</a> transfer_repo=прехвърлено хранилище: от <code>%s</code> към <a href="%s"> %s</a>
push_tag=пушна маркер <a href="%s/src/%s">%[2]s</a> към <a href="%[1]s">[3]s</a> push_tag=предаде маркер <a href="%s/src/%s">%[2]s</a> към <a href="%[1]s">[3]s</a>
compare_2_commits=Виж сравнението между тези 2 комита compare_2_commits=Виж сравнението между тези 2 комита
[tool] [tool]

@ -465,23 +465,23 @@ pulls.compare_changes=Änderungen vergleichen
pulls.compare_changes_desc=Vergleiche zwei Branches und erstelle einen Pull Request für die Änderungen. pulls.compare_changes_desc=Vergleiche zwei Branches und erstelle einen Pull Request für die Änderungen.
pulls.compare_base=base pulls.compare_base=base
pulls.compare_compare=vergleichen pulls.compare_compare=vergleichen
pulls.filter_branch=Filter branch pulls.filter_branch=Filter Branch
pulls.no_results=Keine Ergebnisse verfügbar. pulls.no_results=Keine Ergebnisse verfügbar.
pulls.nothing_to_compare=Es ist nichts zu vergleichen, da Base- und Head-Branch gleich sind. pulls.nothing_to_compare=Es ist nichts zu vergleichen, da Base- und Head-Branch gleich sind.
pulls.has_pull_request=`There is already a pull request between these two targets: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>` pulls.has_pull_request=`Es existiert bereits eine Pull-Anforderung zwischen diesen beiden Zielen: <a href="%[1]s/pulls/%[3]d">%[2]s#%[3]d</a>`
pulls.create=Pull Request erstellen pulls.create=Pull Request erstellen
pulls.title_desc=wants to merge %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> pulls.title_desc=wants to merge %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code>
pulls.merged_title_desc=merged %[1]d commits from <code>%[2]s</code> into <code>%[3]s</code> %[4]s pulls.merged_title_desc=%[1]d Commits von <code>%[2]s</code> nach <code>%[3]s</code> %[4]s zusammengeführt
pulls.tab_conversation=Unterhaltung pulls.tab_conversation=Unterhaltung
pulls.tab_commits=Commits pulls.tab_commits=Commits
pulls.tab_files=Dateien geändert pulls.tab_files=Dateien geändert
pulls.reopen_to_merge=Bitte diese Pull-Anforderung wiedereröffnen, um die Merge-Operation auszuführen. pulls.reopen_to_merge=Bitte diese Pull-Anforderung wiedereröffnen, um die Merge-Operation auszuführen.
pulls.merged=Zusammengeführt pulls.merged=Zusammengeführt
pulls.has_merged=This pull request has been merged successfully! pulls.has_merged=This pull request has been merged successfully!
pulls.data_broken=Data of this pull request has been broken due to deletion of fork information. pulls.data_broken=Die Daten dieser Pull-Anforderung sind defekt aufgrund des Löschens von Fork-Informationen.
pulls.can_auto_merge_desc=You can perform auto-merge operation on this pull request. pulls.can_auto_merge_desc=Du kannst eine Auto-Merge Operation auf diese Pull-Anforderung durchführen.
pulls.cannot_auto_merge_desc=You can't perform auto-merge operation because there are conflicts between commits. pulls.cannot_auto_merge_desc=Es kann keine Auto-Merge Operation durchgeführt werden, da es Konflikte zwischen den Commits gibt.
pulls.cannot_auto_merge_helper=Please use command line tool to solve it. pulls.cannot_auto_merge_helper=Bitte benutze ein Kommandozeilentool, um den Konflikt zu lösen.
pulls.merge_pull_request=Merge Pull Request pulls.merge_pull_request=Merge Pull Request
milestones.new=Neuer Meilenstein milestones.new=Neuer Meilenstein
@ -528,9 +528,9 @@ settings.transfer_notices_2=- Du wirst den Zugang behalten, wenn der neue Besitz
settings.transfer_form_title=Bitte gib die folgenden Informationen ein, um die Operation zu bestätigen: settings.transfer_form_title=Bitte gib die folgenden Informationen ein, um die Operation zu bestätigen:
settings.delete_notices_1=- Diese Operation kann <strong>NICHT</strong> rückgängig gemacht werden. settings.delete_notices_1=- Diese Operation kann <strong>NICHT</strong> rückgängig gemacht werden.
settings.delete_notices_2=- Die Operation wird alles, was mit diesem Git-Repository verbunden ist, dauerhaft löschen, inklusive der Daten, Issues, Kommentare und Zugriffsrechte von Mitarbeitern. settings.delete_notices_2=- Die Operation wird alles, was mit diesem Git-Repository verbunden ist, dauerhaft löschen, inklusive der Daten, Issues, Kommentare und Zugriffsrechte von Mitarbeitern.
settings.delete_notices_fork_1=- If this repository is public, all forks will be became independent after deletion. settings.delete_notices_fork_1=- Wenn dies ein öffentliches Repository ist, werden alle Forks unabhängig nach dem Löschen des Repositorys.
settings.delete_notices_fork_2=- If this repository is private, all forks will be removed at the same time. settings.delete_notices_fork_2=- Wenn dies ein privates Repository ist, dann werden gleichzeitig alle Forks entfernt.
settings.delete_notices_fork_3=- If you want to keep all forks after deletion, please change visibility of this repository to public first. settings.delete_notices_fork_3=Wenn alle Forks nach dem Löschen des Repositorys erhalten bleiben sollen, dann muss zuerst die Sichtbarkeit des Repositorys auf öffentlich gesetzt werden.
settings.update_settings_success=Repository-Optionen aktualisiert settings.update_settings_success=Repository-Optionen aktualisiert
settings.transfer_owner=Neuer Besitzer settings.transfer_owner=Neuer Besitzer
settings.make_transfer=übertragen settings.make_transfer=übertragen

@ -740,10 +740,25 @@ func CreateRepository(u *User, opts CreateRepoOptions) (_ *Repository, err error
return repo, sess.Commit() return repo, sess.Commit()
} }
func countRepositories(showPrivate bool) int64 {
sess := x.NewSession()
if !showPrivate {
sess.Where("is_private=", false)
}
count, _ := sess.Count(new(Repository))
return count
}
// CountRepositories returns number of repositories. // CountRepositories returns number of repositories.
func CountRepositories() int64 { func CountRepositories() int64 {
count, _ := x.Count(new(Repository)) return countRepositories(true)
return count }
// CountPublicRepositories returns number of public repositories.
func CountPublicRepositories() int64 {
return countRepositories(false)
} }
// GetRepositoriesWithUsers returns given number of repository objects with offset. // GetRepositoriesWithUsers returns given number of repository objects with offset.

File diff suppressed because one or more lines are too long

@ -74,11 +74,11 @@
"outputPathIsOutsideProject": 0, "outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0 "outputPathIsSetByUser": 0
}, },
"\/css\/semantic-2.0.8.min.css": { "\/css\/semantic-2.1.3.min.css": {
"fileType": 16, "fileType": 16,
"ignore": 0, "ignore": 0,
"ignoreWasSetByUser": 0, "ignoreWasSetByUser": 0,
"inputAbbreviatedPath": "\/css\/semantic-2.0.8.min.css", "inputAbbreviatedPath": "\/css\/semantic-2.1.3.min.css",
"outputAbbreviatedPath": "No Output Path", "outputAbbreviatedPath": "No Output Path",
"outputPathIsOutsideProject": 0, "outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0 "outputPathIsSetByUser": 0
@ -237,12 +237,12 @@
"outputPathIsSetByUser": 0, "outputPathIsSetByUser": 0,
"processed": 0 "processed": 0
}, },
"\/js\/semantic-2.0.8.min.js": { "\/js\/semantic-2.1.3.min.js": {
"fileType": 64, "fileType": 64,
"ignore": 0, "ignore": 0,
"ignoreWasSetByUser": 0, "ignoreWasSetByUser": 0,
"inputAbbreviatedPath": "\/js\/semantic-2.0.8.min.js", "inputAbbreviatedPath": "\/js\/semantic-2.1.3.min.js",
"outputAbbreviatedPath": "\/js\/min\/semantic-2.0.8.min-min.js", "outputAbbreviatedPath": "\/js\/min\/semantic-2.1.3.min-min.js",
"outputPathIsOutsideProject": 0, "outputPathIsOutsideProject": 0,
"outputPathIsSetByUser": 0, "outputPathIsSetByUser": 0,
"outputStyle": 1, "outputStyle": 1,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -57,7 +57,7 @@ func Explore(ctx *middleware.Context) {
page = 1 page = 1
} }
ctx.Data["Page"] = paginater.New(int(models.CountRepositories()), setting.ExplorePagingNum, page, 5) ctx.Data["Page"] = paginater.New(int(models.CountPublicRepositories()), setting.ExplorePagingNum, page, 5)
repos, err := models.GetRecentUpdatedRepositories(page) repos, err := models.GetRecentUpdatedRepositories(page)
if err != nil { if err != nil {

@ -18,11 +18,11 @@
<link rel="stylesheet" href="{{AppSubUrl}}/css/font-awesome-4.4.0.min.css"> <link rel="stylesheet" href="{{AppSubUrl}}/css/font-awesome-4.4.0.min.css">
<!-- Stylesheet --> <!-- Stylesheet -->
<link rel="stylesheet" href="{{AppSubUrl}}/css/semantic-2.1.2.min.css"> <link rel="stylesheet" href="{{AppSubUrl}}/css/semantic-2.1.3.min.css">
<link rel="stylesheet" href="{{AppSubUrl}}/css/gogs.min.css?v={{AppVer}}"> <link rel="stylesheet" href="{{AppSubUrl}}/css/gogs.min.css?v={{AppVer}}">
<!-- JavaScript --> <!-- JavaScript -->
<script src="{{AppSubUrl}}/js/semantic-2.1.2.min.js"></script> <script src="{{AppSubUrl}}/js/semantic-2.1.3.min.js"></script>
<script src="{{AppSubUrl}}/js/gogs.js?v={{AppVer}}"></script> <script src="{{AppSubUrl}}/js/gogs.js?v={{AppVer}}"></script>
<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title> <title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>

Loading…
Cancel
Save