Browse Source

able edit issue title

pull/1519/head
Unknwon 9 years ago
parent
commit
87f5ca8e1f
  1. 2
      cmd/web.go
  2. 1
      conf/locale/locale_en-US.ini
  3. 232
      conf/locale/locale_nl-NL.ini
  4. 14
      conf/locale/locale_zh-CN.ini
  5. 12
      modules/bindata/bindata.go
  6. 2
      modules/middleware/context.go
  7. 2
      public/css/gogs.min.css
  8. 33
      public/js/gogs.js
  9. 22
      public/less/_repository.less
  10. 61
      routers/repo/issue.go
  11. 2
      templates/admin/auth/edit.tmpl
  12. 2
      templates/admin/auth/new.tmpl
  13. 26
      templates/repo/issue/view_content.tmpl

2
cmd/web.go

@ -467,7 +467,7 @@ func runWeb(ctx *cli.Context) {
m.Combo("/:index/comments").Post(bindIgnErr(auth.CreateCommentForm{}), repo.NewComment) m.Combo("/:index/comments").Post(bindIgnErr(auth.CreateCommentForm{}), repo.NewComment)
m.Group("/:index", func() { m.Group("/:index", func() {
m.Post("", bindIgnErr(auth.CreateIssueForm{}), repo.UpdateIssue) m.Post("/title", repo.UpdateIssueTitle)
m.Post("/label", repo.UpdateIssueLabel) m.Post("/label", repo.UpdateIssueLabel)
m.Post("/milestone", repo.UpdateIssueMilestone) m.Post("/milestone", repo.UpdateIssueMilestone)
m.Post("/assignee", repo.UpdateIssueAssignee) m.Post("/assignee", repo.UpdateIssueAssignee)

1
conf/locale/locale_en-US.ini

@ -435,6 +435,7 @@ issues.owner = Owner
issues.sign_up_for_free = Sign up for free issues.sign_up_for_free = Sign up for free
issues.sign_in_require_desc = to join this conversation. Already have an account? <a href="%s">Sign in to comment</a> issues.sign_in_require_desc = to join this conversation. Already have an account? <a href="%s">Sign in to comment</a>
issues.edit = Edit issues.edit = Edit
issues.cancel = Cancel
issues.save = Save issues.save = Save
issues.label_title = Label name issues.label_title = Label name
issues.label_color = Label color issues.label_color = Label color

232
conf/locale/locale_nl-NL.ini

@ -14,9 +14,9 @@ version=Versie
page=Pagina page=Pagina
template=Sjabloon template=Sjabloon
language=Taal language=Taal
create_new=Create new... create_new=Maak een nieuwe...
user_profile_and_more=User profile and more user_profile_and_more=Gebruikersprofiel en meer
signed_in_as=Signed in as signed_in_as=Aangemeld als
username=Gebruikersnaam username=Gebruikersnaam
email=E-mail email=E-mail
@ -35,8 +35,8 @@ manage_org=Beheer organisaties
admin_panel=Adminpaneel admin_panel=Adminpaneel
account_settings=Accountinstellingen account_settings=Accountinstellingen
settings=Instellingen settings=Instellingen
your_profile=Your Profile your_profile=Uw profiel
your_settings=Your Settings your_settings=Uw instellingen
news_feed=Nieuwsfeed news_feed=Nieuwsfeed
pull_requests=Pull-aanvragen pull_requests=Pull-aanvragen
@ -76,6 +76,8 @@ run_user=Uitvoerende gebruikersnaam
run_user_helper=Deze gebruiker moet toegang hebben tot de git repositorie directorie en moet Gogs kunnen starten run_user_helper=Deze gebruiker moet toegang hebben tot de git repositorie directorie en moet Gogs kunnen starten
domain=Domein domain=Domein
domain_helper=Dit heeft invloed op de SSH kloon URLs domain_helper=Dit heeft invloed op de SSH kloon URLs
ssh_port=SSH Port
ssh_port_helper=Port number which your SSH server is using, leave it empty to disable SSH feature.
http_port=HTTP-poort http_port=HTTP-poort
http_port_helper=Poortnummer waar het programma naar luistert. http_port_helper=Poortnummer waar het programma naar luistert.
app_url=Applicatie URL app_url=Applicatie URL
@ -268,16 +270,17 @@ add_key=Sleutel toevoegen
ssh_desc=Dit is een lijst van alle SSH sleutels die gekoppeld zijn aan uw account. Verwijder alle sleutels die u niet herkent. ssh_desc=Dit is een lijst van alle SSH sleutels die gekoppeld zijn aan uw account. Verwijder alle sleutels die u niet herkent.
ssh_helper=<strong>De behoeftehulp van?</strong> Check out onze gids voor het <a href="%s"> genereren van SSH sleutels</a> of <a href="%s"> algemene SSH</a> problemen. ssh_helper=<strong>De behoeftehulp van?</strong> Check out onze gids voor het <a href="%s"> genereren van SSH sleutels</a> of <a href="%s"> algemene SSH</a> problemen.
add_new_key=SSH sleutel toevoegen add_new_key=SSH sleutel toevoegen
ssh_key_been_used=Public key content has been used. ssh_key_been_used=Publieke sleutel werd gebruikt.
ssh_key_name_used=Public key with same name has already existed. ssh_key_name_used=Een publieke sleutel met dezelfde naam bestaat al.
key_name=Sleutel naam key_name=Sleutel naam
key_content=Inhoud key_content=Inhoud
add_key_success=New SSH key '%s' has been added successfully! add_key_success=Nieuwe SSH sleutel '%s' werd met succes toegevoegd!
delete_key=Verwijder delete_key=Verwijder
add_on=Toegevoegd op add_on=Toegevoegd op
last_used=Laatst gebruikt op last_used=Laatst gebruikt op
no_activity=Geen recente activiteiten no_activity=Geen recente activiteiten
key_state_desc=This key is used in last 7 days key_state_desc=Deze sleutel werd gebruikt in de laatste 7 dagen
token_state_desc=This token is used in last 7 days
manage_social=Beheer gekoppelde sociale accounts manage_social=Beheer gekoppelde sociale accounts
social_desc=Dit is een lijst van de bijbehorende sociale accounts koppelingen, Verwijder eventueel koppelingen die u niet herkent. social_desc=Dit is een lijst van de bijbehorende sociale accounts koppelingen, Verwijder eventueel koppelingen die u niet herkent.
@ -286,13 +289,15 @@ unbind_success=Sociaal account is ontkoppeld.
manage_access_token=Persoonlijke toegangstokens beheren manage_access_token=Persoonlijke toegangstokens beheren
generate_new_token=Nieuwe Token genereren generate_new_token=Nieuwe Token genereren
tokens_desc=Tokens u hebt gegenereerd die kunnen worden gebruikt voor toegang tot de API Gogs. tokens_desc=Tokens you have generated that can be used to access the Gogs APIs.
new_token_desc=Zoals voor nu, moet elke token zal hebben volledige toegang tot uw account. new_token_desc=Zoals voor nu, moet elke token zal hebben volledige toegang tot uw account.
token_name=Symbolische naam token_name=Symbolische naam
generate_token=Token genereren generate_token=Token genereren
generate_token_succees=Nieuwe toegangstoken is met succes gegenereerd! Zorg ervoor dat uw nieuwe persoonlijke toegangstoken nu kopiëren. U zal niet zitten kundig voor zien het weer! generate_token_succees=Nieuwe toegangstoken is met succes gegenereerd! Zorg ervoor dat uw nieuwe persoonlijke toegangstoken nu kopiëren. U zal niet zitten kundig voor zien het weer!
delete_token=Verwijderen delete_token=Verwijderen
delete_token_success=Persoonlijke toegangstoken is met succes verwijderd! Vergeet niet uw toepassingen ook wilt bijwerken. access_token_deletion=Personal Access Token Deletion
access_token_deletion_desc=Delete this personal access token will remove all related accesses of application. Do you want to continue?
delete_token_success=Personal access token has been removed successfully! Don't forget to update your application as well.
delete_account=Verwijder uw account delete_account=Verwijder uw account
delete_prompt=Deze handeling zal uw account definitief verwijderen, u kunt dit <strong> NIET </strong> terug draaien! delete_prompt=Deze handeling zal uw account definitief verwijderen, u kunt dit <strong> NIET </strong> terug draaien!
@ -305,7 +310,7 @@ owner=Eigenaar
repo_name=Repositorie naam repo_name=Repositorie naam
repo_name_helper=Een goede repositorie naam is kort, memorabel en <strong>uniek</strong>. repo_name_helper=Een goede repositorie naam is kort, memorabel en <strong>uniek</strong>.
visibility=Zichtbaarheid visibility=Zichtbaarheid
visiblity_helper=This repository is <span class="ui red text">Private</span> visiblity_helper=Deze repositorie is <span class="ui red text">privaat</span>
fork_repo=Vork Repository fork_repo=Vork Repository
fork_from=Afsplitsing van fork_from=Afsplitsing van
fork_visiblity_helper=Gevorkte repository wijzigen zijn bereik potentiële kopers niet fork_visiblity_helper=Gevorkte repository wijzigen zijn bereik potentiële kopers niet
@ -324,10 +329,10 @@ form.name_pattern_not_allowed=Repositorie naampatroon '%s' is niet toegestaan.
need_auth=Autorisatie vereist need_auth=Autorisatie vereist
migrate_type=Migratie type migrate_type=Migratie type
migrate_type_helper=This repository will be a <span class="text blue">mirror</span> migrate_type_helper=Deze repositorie zal een <span class="text blue">mirror</span> zijn
migrate_repo=Migreer repositorie migrate_repo=Migreer repositorie
migrate.clone_address=Clone adres migrate.clone_address=Clone adres
migrate.clone_address_desc=This can be a HTTP/HTTPS/GIT URL or local server path. migrate.clone_address_desc=Dit kan een HTTP/HTTPS/GIT URL zijn of een lokaal pad.
migrate.invalid_local_path=Ongeldig lokaal pad, het pad bestaat niet of het is geen map. migrate.invalid_local_path=Ongeldig lokaal pad, het pad bestaat niet of het is geen map.
forked_from=geforked van forked_from=geforked van
@ -372,103 +377,103 @@ commits.date=Datum
commits.older=Ouder commits.older=Ouder
commits.newer=Nieuwer commits.newer=Nieuwer
issues.new=New Issue issues.new=Nieuw probleem
issues.new.labels=Labels issues.new.labels=Labels
issues.new.no_label=No Label issues.new.no_label=Geen label
issues.new.clear_labels=Clear labels issues.new.clear_labels=Verwijder labels
issues.new.milestone=Milestone issues.new.milestone=Mijlpaal
issues.new.no_milestone=No Milestone issues.new.no_milestone=Geen mijlpaal
issues.new.clear_milestone=Clear milestone issues.new.clear_milestone=Verwijder mijlpaal
issues.new.open_milestone=Open Milestones issues.new.open_milestone=Open mijlpalen
issues.new.closed_milestone=Closed Milestones issues.new.closed_milestone=Gesloten mijlpalen
issues.new.assignee=Assignee issues.new.assignee=Verantwoordelijke
issues.new.clear_assignee=Clear assignee issues.new.clear_assignee=Verwijder verantwoordelijke
issues.new.no_assignee=No assignee issues.new.no_assignee=Geen verantwoordelijke
issues.create=Create Issue issues.create=Maak probleem
issues.new_label=Nieuw Label issues.new_label=Nieuw Label
issues.new_label_placeholder=Tekst label... issues.new_label_placeholder=Tekst label...
issues.create_label=Create Label issues.create_label=Maak label
issues.open_tab=%d Open issues.open_tab=%d Open
issues.close_tab=%d gesloten issues.close_tab=%d gesloten
issues.filter_label=Label issues.filter_label=Label
issues.filter_label_no_select=Geen label geselecteerd issues.filter_label_no_select=Geen label geselecteerd
issues.filter_milestone=Mijlpaal issues.filter_milestone=Mijlpaal
issues.filter_milestone_no_select=No selected milestone issues.filter_milestone_no_select=Geen geselecteerde mijlpaal
issues.filter_assignee=Aangewezene issues.filter_assignee=Aangewezene
issues.filter_assginee_no_select=No selected Assignee issues.filter_assginee_no_select=Geen geselecteerde verantwoordelijke
issues.filter_type=Type issues.filter_type=Type
issues.filter_type.all_issues=Alle kwesties issues.filter_type.all_issues=Alle kwesties
issues.filter_type.assigned_to_you=Aan jou toegewezen issues.filter_type.assigned_to_you=Aan jou toegewezen
issues.filter_type.created_by_you=Created by you issues.filter_type.created_by_you=Aangemaakt door jou
issues.filter_type.mentioning_you=Mentioning you issues.filter_type.mentioning_you=Vermelden jou
issues.filter_sort=Sort issues.filter_sort=Sorteer
issues.filter_sort.latest=Newest issues.filter_sort.latest=Nieuwste
issues.filter_sort.oldest=Oldest issues.filter_sort.oldest=Oudste
issues.filter_sort.recentupdate=Recently updated issues.filter_sort.recentupdate=Recent bijgewerkt
issues.filter_sort.leastupdate=Least recently updated issues.filter_sort.leastupdate=Minst recent bijgewerkt
issues.filter_sort.mostcomment=Most commented issues.filter_sort.mostcomment=Meest besproken
issues.filter_sort.leastcomment=Least commented issues.filter_sort.leastcomment=Minst besproken
issues.opened_by=opened %[1]s by <a href="/%[2]s">%[2]s</a> issues.opened_by=%[1]s werd geopend door <a href="/%[2]s">%[2]s</a>
issues.opened_by_fake=opened %[1]s by %[2]s issues.opened_by_fake=%[1]s werd geopend door %[2]s
issues.previous=Previous issues.previous=Vorige
issues.next=Next issues.next=Volgende
issues.open_title=Open issues.open_title=Open
issues.closed_title=Closed issues.closed_title=Gesloten
issues.num_comments=%d comments issues.num_comments=%d opmerkingen
issues.commented_at=`commented at <a id="%[1]s" href="#%[1]s">%[2]s</a>` issues.commented_at=`gaf commentaar op <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.no_content=There is no content yet. issues.no_content=Er is nog geen inhoud.
issues.close_issue=Close issues.close_issue=Sluit
issues.close_comment_issue=Close and comment issues.close_comment_issue=Sluit en geef commentaar
issues.reopen_issue=Reopen issues.reopen_issue=Heropen
issues.reopen_comment_issue=Reopen and comment issues.reopen_comment_issue=Heropen en geef commentaar
issues.create_comment=Comment issues.create_comment=Reageer
issues.closed_at=`closed at <a id="%[1]s" href="#%[1]s">%[2]s</a>` issues.closed_at=`gesloten om <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.reopened_at=`reopened at <a id="%[1]s" href="#%[1]s">%[2]s</a>` issues.reopened_at=`heropend om <a id="%[1]s" href="#%[1]s">%[2]s</a>`
issues.poster=Poster issues.poster=Poster
issues.admin=Admin issues.admin=Admin
issues.owner=Owner issues.owner=Eigenaar
issues.sign_up_for_free=Sign up for free issues.sign_up_for_free=Gratis aanmelden
issues.sign_in_require_desc=to join this conversation. Already have an account? <a href="%s">Sign in to comment</a> issues.sign_in_require_desc=om deel te nemen in deze conversatie. Heeft u al een account? <a href="%s">Meld u aan om te reageren</a>
issues.edit=Edit issues.edit=Bewerken
issues.save=Save issues.save=Opslaan
issues.label_title=Label name issues.label_title=Labelnaam
issues.label_color=Label color issues.label_color=Labelkleur
issues.label_count=%d labels issues.label_count=%d labels
issues.label_open_issues=%d open issues issues.label_open_issues=%d geopende problemen
issues.label_edit=Edit issues.label_edit=Bewerken
issues.label_delete=Delete issues.label_delete=Verwijder
issues.label_modify=Label Modification issues.label_modify=Wijzig label
issues.label_deletion=Label Deletion issues.label_deletion=Verwijder label
issues.label_deletion_desc=Delete this label will remove its information in all related issues. Do you want to continue? issues.label_deletion_desc=Het verwijderen van dit label zal alle informatie in de gerelateerde problemen verwijderen. Wilt u doorgaan?
issues.label_deletion_success=Label has been deleted successfully! issues.label_deletion_success=Label werd met succes verwijderd!
pulls.compare_changes=Compare Changes pulls.compare_changes=Vergelijk veranderingen
pulls.compare_changes_desc=Compare two branches and make a pull request for changes. pulls.compare_changes_desc=Vergelijk twee vertakkingen en maak een pull verzoek voor wijzigingen.
pulls.no_results=No results found. pulls.no_results=Geen resultaten gevonden.
milestones.new=New Milestone milestones.new=Nieuwe mijlpaal
milestones.open_tab=%d Open milestones.open_tab=%d geopend
milestones.close_tab=%d Closed milestones.close_tab=%d gesloten
milestones.closed=Closed %s milestones.closed=%s werd gesloten
milestones.no_due_date=No due date milestones.no_due_date=Geen vervaldatum
milestones.open=Open milestones.open=Open
milestones.close=Close milestones.close=Sluit
milestones.new_subheader=Create milestones to organize your issues. milestones.new_subheader=Maak mijlpalen voor het organiseren van uw problemen.
milestones.create=Create Milestone milestones.create=Mijlpaal maken
milestones.title=Title milestones.title=Titel
milestones.desc=Description milestones.desc=Beschrijving
milestones.due_date=Due Date (optional) milestones.due_date=Vervaldatum (optioneel)
milestones.clear=Clear milestones.clear=Leegmaken
milestones.invalid_due_date_format=Due date format is invalid, must be 'year-mm-dd'. milestones.invalid_due_date_format=Formaat vervaldatum is ongeldig, moet zijn "jaar-mm-dd".
milestones.create_success=Milestone '%s' has been created successfully! milestones.create_success=Mijlpaal '%s' is met succes aangemaakt!
milestones.edit=Edit Milestone milestones.edit=Bewerk mijlpaal
milestones.edit_subheader=Use better description for milestones so people won't be confused. milestones.edit_subheader=Gebruik een goede beschrijving voor mijlpalen, om verwarring te voorkomen.
milestones.cancel=Cancel milestones.cancel=Annuleer
milestones.modify=Modify Milestone milestones.modify=Mijlpaal wijzigen
milestones.edit_success=Changes of milestone '%s' has been saved successfully! milestones.edit_success=Wijzigingen van mijlpaal '%s' is met succes opgeslagen!
milestones.deletion=Milestone Deletion milestones.deletion=Mijlpaal verwijderen
milestones.deletion_desc=Delete this milestone will remove its information in all related issues. Do you want to continue? milestones.deletion_desc=Het verwijderen van dit label zal alle informatie in de gerelateerde problemen verwijderen. Wilt u doorgaan?
milestones.deletion_success=Milestone has been deleted successfully! milestones.deletion_success=Mijlpaal is met succes verwijderd!
settings=Instellingen settings=Instellingen
settings.options=Opties settings.options=Opties
@ -523,16 +528,16 @@ settings.slack_token=Slack token
settings.slack_domain=Slack domein settings.slack_domain=Slack domein
settings.slack_channel=Slack kanaal settings.slack_channel=Slack kanaal
settings.deploy_keys=Installeer sleutels settings.deploy_keys=Installeer sleutels
settings.add_deploy_key=Add Deploy Key settings.add_deploy_key=Toevoegen deploy sleutel
settings.no_deploy_keys=You haven't added any deploy key. settings.no_deploy_keys=U hebt nog geen deploy sleutels toegevoegd.
settings.title=Title settings.title=Titel
settings.deploy_key_content=Content settings.deploy_key_content=Inhoud
settings.key_been_used=Deploy key content has been used. settings.key_been_used=Deploy sleutel inhoud werd gebruikt.
settings.key_name_used=Deploy key with same name has already existed. settings.key_name_used=Deploy sleutel met eenzelfde naam bestaat al.
settings.add_key_success=New deploy key '%s' has been added successfully! settings.add_key_success=Nieuwe deploy sleutel '%s' werd succesvol toegevoegd!
settings.deploy_key_deletion=Delete Deploy Key settings.deploy_key_deletion=Verwijder deploy sleutel
settings.deploy_key_deletion_desc=Delete this deploy key will remove all related accesses for this repository. Do you want to continue? settings.deploy_key_deletion_desc=Het verwijderen van deze deploy sleutel zal alle gerelateerde toegang verwijderen voor deze repositorie. Wilt u doorgaan?
settings.deploy_key_deletion_success=Deploy key has been deleted successfully! settings.deploy_key_deletion_success=Deploy sleutel werd met succes verwijderd!
diff.browse_source=Bladeren bron diff.browse_source=Bladeren bron
diff.parent=bovenliggende diff.parent=bovenliggende
@ -751,12 +756,14 @@ auths.auth_name=Autorisatienaam
auths.domain=Domein auths.domain=Domein
auths.host=Host auths.host=Host
auths.port=Poort auths.port=Poort
auths.base_dn=Base DN auths.bind_dn=Bind DN
auths.attribute_username=Gebruikersnaam attribuut auths.bind_password=Bind Password
auths.user_base=User Search Base
auths.attribute_name=Voornaam attribuut auths.attribute_name=Voornaam attribuut
auths.attribute_surname=Achternaam attribuut auths.attribute_surname=Achternaam attribuut
auths.attribute_mail=E-mail attribuut auths.attribute_mail=E-mail attribuut
auths.filter=Zoek filter auths.filter=User Filter
auths.admin_filter=Admin Filter
auths.ms_ad_sa=MS Ad SA auths.ms_ad_sa=MS Ad SA
auths.smtp_auth=SMTP authenticatietype auths.smtp_auth=SMTP authenticatietype
auths.smtphost=SMTP host auths.smtphost=SMTP host
@ -806,7 +813,7 @@ config.enable_cache_avatar=Avatar Cache inschakelen
config.active_code_lives=Actieve Code leven config.active_code_lives=Actieve Code leven
config.reset_password_code_lives=Reset wachtwoord Code leven config.reset_password_code_lives=Reset wachtwoord Code leven
config.webhook_config=Webhook configuratie config.webhook_config=Webhook configuratie
config.queue_length=Queue Length config.queue_length=Lengte van wachtrij
config.deliver_timeout=Bezorging verlooptijd config.deliver_timeout=Bezorging verlooptijd
config.skip_tls_verify=TLS certificaat controle overslaan config.skip_tls_verify=TLS certificaat controle overslaan
config.mailer_config=Mailerconfiguatie config.mailer_config=Mailerconfiguatie
@ -885,7 +892,8 @@ raw_seconds=seconden
raw_minutes=minuten raw_minutes=minuten
[dropzone] [dropzone]
default_message=Drop files here or click to upload. default_message=Drop bestanden hier of klik om te uploaden.
invalid_input_type=You can't upload files of this type. invalid_input_type=U kunt geen bestanden van dit type uploaden.
file_too_big=File size({{filesize}} MB) exceeds maximum size({{maxFilesize}} MB). file_too_big=Bestandsgrootte ({{filesize}} MB) overschrijdt de maximale grootte ({{maxFilesize}} MB).
remove_file=Remove file remove_file=Verwijder bestand

14
conf/locale/locale_zh-CN.ini

@ -76,6 +76,8 @@ run_user=运行系统用户
run_user_helper=该用户必须具有对仓库根目录和运行 Gogs 的操作权限。 run_user_helper=该用户必须具有对仓库根目录和运行 Gogs 的操作权限。
domain=域名 domain=域名
domain_helper=该设置影响 SSH 克隆地址。 domain_helper=该设置影响 SSH 克隆地址。
ssh_port=SSH 端口号
ssh_port_helper=SSH 服务器的监听端口号,留空表示禁用 SSH 功能。
http_port=HTTP 端口号 http_port=HTTP 端口号
http_port_helper=应用监听的端口号 http_port_helper=应用监听的端口号
app_url=应用 URL app_url=应用 URL
@ -278,6 +280,7 @@ add_on=增加于
last_used=上次使用在 last_used=上次使用在
no_activity=没有最近活动 no_activity=没有最近活动
key_state_desc=该密钥在 7 天内被使用过 key_state_desc=该密钥在 7 天内被使用过
token_state_desc=该令牌在 7 天内被使用过
manage_social=管理关联社交帐户 manage_social=管理关联社交帐户
social_desc=以下是与您帐户所关联的社交帐号,如果您发现有陌生的关联,请立即解除绑定! social_desc=以下是与您帐户所关联的社交帐号,如果您发现有陌生的关联,请立即解除绑定!
@ -292,6 +295,8 @@ token_name=令牌名称
generate_token=生成令牌 generate_token=生成令牌
generate_token_succees=新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次! generate_token_succees=新的操作令牌生成成功!您必须立即复制到一个安全的地方,因为该令牌只会显示一次!
delete_token=删除令牌 delete_token=删除令牌
access_token_deletion=删除个人操作令牌
access_token_deletion_desc=删除该个人操作令牌将删除所有相关的应用程序的访问权限。是否继续?
delete_token_success=个人操作令牌删除成功!请更新与该令牌有关的所有应用。 delete_token_success=个人操作令牌删除成功!请更新与该令牌有关的所有应用。
delete_account=删除当前帐户 delete_account=删除当前帐户
@ -751,12 +756,14 @@ auths.auth_name=授权名称
auths.domain=域名 auths.domain=域名
auths.host=主机地址 auths.host=主机地址
auths.port=主机端口 auths.port=主机端口
auths.base_dn=Base DN auths.bind_dn=绑定 DN
auths.attribute_username=用户名属性 auths.bind_password=绑定密码
auths.user_base=用户搜索基准
auths.attribute_name=名字属性 auths.attribute_name=名字属性
auths.attribute_surname=姓氏属性 auths.attribute_surname=姓氏属性
auths.attribute_mail=邮箱属性 auths.attribute_mail=邮箱属性
auths.filter=Search Filter auths.filter=用户过滤规则
auths.admin_filter=管理员过滤规则
auths.ms_ad_sa=Ms Ad SA auths.ms_ad_sa=Ms Ad SA
auths.smtp_auth=SMTP 授权类型 auths.smtp_auth=SMTP 授权类型
auths.smtphost=SMTP 主机地址 auths.smtphost=SMTP 主机地址
@ -889,3 +896,4 @@ default_message=拖曳文件到此处或单击上传
invalid_input_type=您不能上传该类型的文件 invalid_input_type=您不能上传该类型的文件
file_too_big=文件体积({{filesize}} MB)超过了最大允许体积({{maxFilesize}} MB) file_too_big=文件体积({{filesize}} MB)超过了最大允许体积({{maxFilesize}} MB)
remove_file=移除文件 remove_file=移除文件

12
modules/bindata/bindata.go

File diff suppressed because one or more lines are too long

2
modules/middleware/context.go

@ -217,9 +217,11 @@ func Contexter() macaron.Handler {
ctx.IsSigned = true ctx.IsSigned = true
ctx.Data["IsSigned"] = ctx.IsSigned ctx.Data["IsSigned"] = ctx.IsSigned
ctx.Data["SignedUser"] = ctx.User ctx.Data["SignedUser"] = ctx.User
ctx.Data["SignedUserID"] = ctx.User.Id
ctx.Data["SignedUserName"] = ctx.User.Name ctx.Data["SignedUserName"] = ctx.User.Name
ctx.Data["IsAdmin"] = ctx.User.IsAdmin ctx.Data["IsAdmin"] = ctx.User.IsAdmin
} else { } else {
ctx.Data["SignedUserID"] = 0
ctx.Data["SignedUserName"] = "" ctx.Data["SignedUserName"] = ""
} }

2
public/css/gogs.min.css vendored

File diff suppressed because one or more lines are too long

33
public/js/gogs.js

@ -228,6 +228,39 @@ function initRepository() {
// Issues // Issues
if ($('.repository.view.issue').length > 0) { if ($('.repository.view.issue').length > 0) {
// Edit issue title
var $issue_title = $('#issue-title');
var $edit_input = $('#edit-title-input input');
var editTitleToggle = function () {
$issue_title.toggle();
$('.not-in-edit').toggle();
$('#edit-title-input').toggle();
$('.in-edit').toggle();
$edit_input.focus();
return false;
}
$('#edit-title').click(editTitleToggle);
$('#cancel-edit-title').click(editTitleToggle);
$('#save-edit-title').click(editTitleToggle).
click(function () {
if ($edit_input.val().length == 0 ||
$edit_input.val() == $issue_title.text()) {
$edit_input.val($issue_title.text());
return false;
}
$.post($(this).data('update-url'), {
"_csrf": csrf,
"title": $edit_input.val()
},
function (data) {
$edit_input.val(data.title);
$issue_title.text(data.title);
});
return false;
});
// Change status
var $status_btn = $('#status-button'); var $status_btn = $('#status-button');
$('#content').keyup(function () { $('#content').keyup(function () {
if ($(this).val().length == 0) { if ($(this).val().length == 0) {

22
public/less/_repository.less

@ -151,6 +151,16 @@
font-weight: 300; font-weight: 300;
font-size: 3rem; font-size: 3rem;
margin-bottom: 5px; margin-bottom: 5px;
.ui.input {
font-size: 0.5em;
vertical-align: top;
width: 50%;
min-width: 600px;
input {
font-size: 1.5em;
padding: 6px 10px;
}
}
} }
.index { .index {
font-weight: 300; font-weight: 300;
@ -160,6 +170,9 @@
.label { .label {
margin-right: 10px; margin-right: 10px;
} }
.edit-zone {
margin-top: 10px;
}
} }
.comment-list { .comment-list {
&:before { &:before {
@ -187,6 +200,15 @@
border: 1px solid rgba(0,0,0,0.1); border: 1px solid rgba(0,0,0,0.1);
border-radius: 3px; border-radius: 3px;
} }
.actions {
.item {
float: left;
}
a.item {
margin-top: 6px;
margin-left: 10px;
}
}
.content { .content {
margin-left: 4em; margin-left: 4em;
.header { .header {

61
routers/repo/issue.go

@ -524,62 +524,49 @@ func ViewIssue(ctx *middleware.Context) {
ctx.HTML(200, ISSUE_VIEW) ctx.HTML(200, ISSUE_VIEW)
} }
func UpdateIssue(ctx *middleware.Context, form auth.CreateIssueForm) { func getActionIssue(ctx *middleware.Context) *models.Issue {
idx := com.StrTo(ctx.Params(":index")).MustInt64() issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if idx <= 0 {
ctx.Error(404)
return
}
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, idx)
if err != nil { if err != nil {
if models.IsErrIssueNotExist(err) { if models.IsErrIssueNotExist(err) {
ctx.Handle(404, "issue.UpdateIssue", err) ctx.Error(404, "GetIssueByIndex")
} else { } else {
ctx.Handle(500, "issue.UpdateIssue(GetIssueByIndex)", err) ctx.Handle(500, "GetIssueByIndex", err)
} }
return nil
}
return issue
}
func UpdateIssueTitle(ctx *middleware.Context) {
issue := getActionIssue(ctx)
if ctx.Written() {
return return
} }
if ctx.User.Id != issue.PosterID && !ctx.Repo.IsOwner() { if !ctx.IsSigned || ctx.User.Id != issue.PosterID || !ctx.Repo.IsAdmin() {
ctx.Error(403) ctx.Error(403)
return return
} }
issue.Name = form.Title title := ctx.Query("title")
//issue.MilestoneId = form.MilestoneId if len(title) == 0 {
//issue.AssigneeId = form.AssigneeId ctx.JSON(200, map[string]interface{}{
//issue.LabelIds = form.Labels "title": issue.Name,
issue.Content = form.Content })
// try get content from text, ignore conflict with preview ajax return
if form.Content == "" {
issue.Content = ctx.Query("text")
} }
if err = models.UpdateIssue(issue); err != nil { issue.Name = title
ctx.Handle(500, "issue.UpdateIssue(UpdateIssue)", err)
if err := models.UpdateIssue(issue); err != nil {
ctx.Handle(500, "UpdateIssue", err)
return return
} }
ctx.JSON(200, map[string]interface{}{ ctx.JSON(200, map[string]interface{}{
"ok": true, "title": issue.Name,
"title": issue.Name,
"content": string(base.RenderMarkdown([]byte(issue.Content), ctx.Repo.RepoLink)),
}) })
} }
func getActionIssue(ctx *middleware.Context) *models.Issue {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Error(404, "GetIssueByIndex")
} else {
ctx.Handle(500, "GetIssueByIndex", err)
}
return nil
}
return issue
}
func UpdateIssueLabel(ctx *middleware.Context) { func UpdateIssueLabel(ctx *middleware.Context) {
issue := getActionIssue(ctx) issue := getActionIssue(ctx)
if ctx.Written() { if ctx.Written() {

2
templates/admin/auth/edit.tmpl

@ -60,7 +60,7 @@
<input class="ipt ipt-large ipt-radius {{if .Err_Filter}}ipt-error{{end}}" id="filter" name="filter" value="{{.Source.LDAP.Filter}}" /> <input class="ipt ipt-large ipt-radius {{if .Err_Filter}}ipt-error{{end}}" id="filter" name="filter" value="{{.Source.LDAP.Filter}}" />
</div> </div>
<div class="field"> <div class="field">
<label class="req" for="filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label> <label for="filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label>
<input class="ipt ipt-large ipt-radius {{if .Err_AdminFilter}}ipt-error{{end}}" id="admin_filter" name="admin_filter" value="{{.Source.LDAP.AdminFilter}}" /> <input class="ipt ipt-large ipt-radius {{if .Err_AdminFilter}}ipt-error{{end}}" id="admin_filter" name="admin_filter" value="{{.Source.LDAP.AdminFilter}}" />
</div> </div>
<div class="field"> <div class="field">

2
templates/admin/auth/new.tmpl

@ -56,7 +56,7 @@
<input class="ipt ipt-large ipt-radius {{if .Err_Filter}}ipt-error{{end}}" id="filter" name="filter" value="{{.filter}}" /> <input class="ipt ipt-large ipt-radius {{if .Err_Filter}}ipt-error{{end}}" id="filter" name="filter" value="{{.filter}}" />
</div> </div>
<div class="field"> <div class="field">
<label class="req" for="filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label> <label for="filter">{{.i18n.Tr "admin.auths.admin_filter"}}</label>
<input class="ipt ipt-large ipt-radius {{if .Err_AdminFilter}}ipt-error{{end}}" id="admin_filter" name="admin_filter" value="{{.admin_filter}}" /> <input class="ipt ipt-large ipt-radius {{if .Err_AdminFilter}}ipt-error{{end}}" id="admin_filter" name="admin_filter" value="{{.admin_filter}}" />
</div> </div>
<div class="field"> <div class="field">

26
templates/repo/issue/view_content.tmpl

@ -5,7 +5,23 @@
</div> </div>
{{end}} {{end}}
<div class="sixteen wide column title"> <div class="sixteen wide column title">
<h1><span class="index">#{{.Issue.Index}}</span> {{.Issue.Name}}</h1> <div class="ui grid">
<h1 class="twelve wide column">
<span class="index">#{{.Issue.Index}}</span> <span id="issue-title">{{.Issue.Name}}</span>
<div id="edit-title-input" class="ui input" style="display: none">
<input value="{{.Issue.Name}}">
</div>
</h1>
{{if .IsIssueOwner}}
<div class="four wide column">
<div class="edit-zone text right">
<div id="edit-title" class="ui basic green not-in-edit button">{{.i18n.Tr "repo.issues.edit"}}</div>
<div id="cancel-edit-title" class="ui basic blue in-edit button" style="display: none">{{.i18n.Tr "repo.issues.cancel"}}</div>
<div id="save-edit-title" class="ui green in-edit button" style="display: none" data-update-url="{{.Link}}/title">{{.i18n.Tr "repo.issues.save"}}</div>
</div>
</div>
{{end}}
</div>
{{if .Issue.IsClosed}} {{if .Issue.IsClosed}}
<div class="ui red large label"><i class="octicon octicon-issue-closed"></i> {{.i18n.Tr "repo.issues.closed_title"}}</div> <div class="ui red large label"><i class="octicon octicon-issue-closed"></i> {{.i18n.Tr "repo.issues.closed_title"}}</div>
{{else}} {{else}}
@ -33,6 +49,9 @@
<div class="ui top attached header"> <div class="ui top attached header">
<span class="text grey"><a {{if gt .Issue.Poster.Id 0}}href="{{.Issue.Poster.HomeLink}}"{{end}}>{{.Issue.Poster.Name}}</a> {{.i18n.Tr "repo.issues.commented_at" .Issue.HashTag $createdStr | Safe}}</span> <span class="text grey"><a {{if gt .Issue.Poster.Id 0}}href="{{.Issue.Poster.HomeLink}}"{{end}}>{{.Issue.Poster.Name}}</a> {{.i18n.Tr "repo.issues.commented_at" .Issue.HashTag $createdStr | Safe}}</span>
<div class="ui right actions"> <div class="ui right actions">
{{if .IsIssueOwner}}
<a class="item" href="#"><i class="octicon octicon-pencil"></i></a>
{{end}}
</div> </div>
</div> </div>
<div class="ui attached segment markdown"> <div class="ui attached segment markdown">
@ -68,7 +87,7 @@
<span class="text grey"><a {{if gt .Poster.Id 0}}href="{{.Poster.HomeLink}}"{{end}}>{{.Poster.Name}}</a> {{$.i18n.Tr "repo.issues.commented_at" .HashTag $createdStr | Safe}}</span> <span class="text grey"><a {{if gt .Poster.Id 0}}href="{{.Poster.HomeLink}}"{{end}}>{{.Poster.Name}}</a> {{$.i18n.Tr "repo.issues.commented_at" .HashTag $createdStr | Safe}}</span>
<div class="ui right actions"> <div class="ui right actions">
{{if gt .ShowTag 0}} {{if gt .ShowTag 0}}
<div class="tag"> <div class="item tag">
{{if eq .ShowTag 1}} {{if eq .ShowTag 1}}
{{$.i18n.Tr "repo.issues.poster"}} {{$.i18n.Tr "repo.issues.poster"}}
{{else if eq .ShowTag 2}} {{else if eq .ShowTag 2}}
@ -78,6 +97,9 @@
{{end}} {{end}}
</div> </div>
{{end}} {{end}}
{{if or $.IsRepositoryAdmin (eq .Poster.Id $.SignedUserID)}}
<a class="item" href="#"><i class="octicon octicon-pencil"></i></a>
{{end}}
</div> </div>
</div> </div>
<div class="ui attached segment markdown"> <div class="ui attached segment markdown">

Loading…
Cancel
Save