Skip to content

Commit 662b385

Browse files
fnetXforgejo-backport-action
authored andcommitted
New repo: Rework initialization
- only show settings when ticked - only offer README selection when there are multiple options (cherry picked from commit 8d32ca3)
1 parent 023aaef commit 662b385

File tree

4 files changed

+67
-58
lines changed

4 files changed

+67
-58
lines changed

options/locale/locale_en-US.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1103,7 +1103,8 @@ object_format_helper = Object format of the repository. Cannot be changed later.
11031103
readme = README
11041104
readme_helper = Select a README file template
11051105
readme_helper_desc = This is the place where you can write a complete description for your project.
1106-
auto_init = Initialize repository (Adds .gitignore, License and README)
1106+
auto_init = Initialize repository
1107+
auto_init_description = Start the Git history with a README and optionally add License and .gitignore files.
11071108
create_repo = Create repository
11081109
default_branch = Default branch
11091110
default_branch_label = default

templates/repo/create.tmpl

Lines changed: 8 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -29,69 +29,21 @@
2929
</fieldset>
3030

3131
<div id="non_template">
32+
<fieldset>
33+
<legend>{{ctx.Locale.Tr "repo.auto_init"}}</legend>
34+
{{template "repo/create_init" .}}
35+
</fieldset>
36+
3237
<fieldset>
3338
<legend>{{ctx.Locale.Tr "repo.new_advanced"}}</legend>
3439
<details><summary>{{ctx.Locale.Tr "repo.new_advanced_expand"}}</summary>
3540
{{template "repo/create_advanced" .}}
3641
</details>
3742
</fieldset>
38-
39-
40-
<div class="inline field">
41-
<label>.gitignore</label>
42-
<div class="ui multiple search selection dropdown">
43-
<input type="hidden" name="gitignores" value="{{.gitignores}}">
44-
<div class="default text">{{ctx.Locale.Tr "repo.repo_gitignore_helper"}}</div>
45-
<div class="menu">
46-
{{range .Gitignores}}
47-
<div class="item" data-value="{{.}}">{{.}}</div>
48-
{{end}}
49-
</div>
50-
</div>
51-
<span class="help">{{ctx.Locale.Tr "repo.repo_gitignore_helper_desc"}}</span>
52-
</div>
53-
<div class="inline field">
54-
<label>{{ctx.Locale.Tr "repo.license"}}</label>
55-
<div class="ui search selection dropdown">
56-
<input type="hidden" name="license" value="{{.license}}">
57-
<div class="default text">{{ctx.Locale.Tr "repo.license_helper"}}</div>
58-
<div class="menu">
59-
<div class="item" data-value="">{{ctx.Locale.Tr "repo.license_helper"}}</div>
60-
{{range .Licenses}}
61-
<div class="item" data-value="{{.}}">{{.}}</div>
62-
{{end}}
63-
</div>
64-
</div>
65-
<span class="help">{{ctx.Locale.Tr "repo.license_helper_desc" "https://choosealicense.com/"}}</span>
66-
</div>
67-
68-
<div class="inline field">
69-
<label>{{ctx.Locale.Tr "repo.readme"}}</label>
70-
<div class="ui selection dropdown">
71-
<input type="hidden" name="readme" value="{{.readme}}">
72-
<div class="default text">{{ctx.Locale.Tr "repo.readme_helper"}}</div>
73-
<div class="menu">
74-
{{range .Readmes}}
75-
<div class="item" data-value="{{.}}">{{.}}</div>
76-
{{end}}
77-
</div>
78-
</div>
79-
<span class="help">{{ctx.Locale.Tr "repo.readme_helper_desc"}}</span>
80-
</div>
81-
<div class="inline field">
82-
<div class="ui checkbox" id="auto-init">
83-
<input name="auto_init" type="checkbox" {{if .auto_init}}checked{{end}}>
84-
<label>{{ctx.Locale.Tr "repo.auto_init"}}</label>
85-
</div>
86-
</div>
87-
</div>
88-
<br>
89-
<div class="inline field">
90-
<label></label>
91-
<button class="ui primary button{{if not .CanCreateRepo}} disabled{{end}}">
92-
{{ctx.Locale.Tr "repo.create_repo"}}
93-
</button>
9443
</div>
44+
<button class="ui primary button{{if not .CanCreateRepo}} disabled{{end}}">
45+
{{ctx.Locale.Tr "repo.create_repo"}}
46+
</button>
9547
</div>
9648
</form>
9749
</div>

templates/repo/create_init.tmpl

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<label>
2+
<input name="auto_init" type="checkbox" {{if .auto_init}}checked{{end}}>
3+
{{ctx.Locale.Tr "repo.auto_init"}}
4+
<span class="help">{{ctx.Locale.Tr "repo.auto_init_description"}}</span>
5+
</label>
6+
7+
<div class="hide-unless-checked">
8+
<label>
9+
.gitignore
10+
<div class="ui multiple search selection dropdown">
11+
<input type="hidden" name="gitignores" value="{{.gitignores}}">
12+
<div class="default text">{{ctx.Locale.Tr "repo.repo_gitignore_helper"}}</div>
13+
<div class="menu">
14+
{{range .Gitignores}}
15+
<div class="item" data-value="{{.}}">{{.}}</div>
16+
{{end}}
17+
</div>
18+
</div>
19+
<span class="help">{{ctx.Locale.Tr "repo.repo_gitignore_helper_desc"}}</span>
20+
</label>
21+
22+
<label>
23+
{{ctx.Locale.Tr "repo.license"}}
24+
<div class="ui search selection dropdown">
25+
<input type="hidden" name="license" value="{{.license}}">
26+
<div class="default text">{{ctx.Locale.Tr "repo.license_helper"}}</div>
27+
<div class="menu">
28+
<div class="item" data-value="">{{ctx.Locale.Tr "repo.license_helper"}}</div>
29+
{{range .Licenses}}
30+
<div class="item" data-value="{{.}}">{{.}}</div>
31+
{{end}}
32+
</div>
33+
</div>
34+
<span class="help">{{ctx.Locale.Tr "repo.license_helper_desc" "https://choosealicense.com/"}}</span>
35+
</label>
36+
37+
{{$supportedReadmesLength := len .Readmes}}
38+
{{/* Only offer README selection if there is an actual choice */}}
39+
{{if ge $supportedReadmesLength 2}}
40+
<label>
41+
{{ctx.Locale.Tr "repo.readme"}}
42+
<div class="ui selection dropdown">
43+
<input type="hidden" name="readme" value="{{.readme}}">
44+
<div class="default text">{{ctx.Locale.Tr "repo.readme_helper"}}</div>
45+
<div class="menu">
46+
{{range .Readmes}}
47+
<div class="item" data-value="{{.}}">{{.}}</div>
48+
{{end}}
49+
</div>
50+
</div>
51+
<span class="help">{{ctx.Locale.Tr "repo.readme_helper_desc"}}</span>
52+
</label>
53+
{{else}}
54+
<input type="hidden" name="readme" value="Default">
55+
{{end}}
56+
</div>

tests/integration/repo_generate_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func assertRepoCreateForm(t *testing.T, htmlDoc *HTMLDoc, owner *user_model.User
4343
// the template menu is loaded client-side, so don't assert the option exists
4444
assert.Equal(t, templateID, htmlDoc.GetInputValueByName("repo_template"), "Unexpected repo_template selection")
4545

46-
for _, name := range []string{"issue_labels", "gitignores", "license", "readme", "object_format_name"} {
46+
for _, name := range []string{"issue_labels", "gitignores", "license", "object_format_name"} {
4747
htmlDoc.AssertDropdownHasOptions(t, name)
4848
}
4949
}

0 commit comments

Comments
 (0)