summaryrefslogtreecommitdiffstats
path: root/templates/repo/issue/fields
diff options
context:
space:
mode:
authorJason Song <i@wolfogre.com>2022-09-02 15:58:49 +0800
committerGitHub <noreply@github.com>2022-09-02 15:58:49 +0800
commit84447df4d366324ab81894b028b00fd66be85caf (patch)
tree5291442a85faccb6bc17b54ca71a53c16530dfe3 /templates/repo/issue/fields
parentb7a4b45ff83dc19febcfb85279215ea6bd224033 (diff)
downloadgitea-84447df4d366324ab81894b028b00fd66be85caf.tar.gz
gitea-84447df4d366324ab81894b028b00fd66be85caf.zip
Support Issue forms and PR forms (#20987)
* feat: extend issue template for yaml * feat: support yaml template * feat: render form to markdown * feat: support yaml template for pr * chore: rename to Fields * feat: template unmarshal * feat: split template * feat: render to markdown * feat: use full name as template file name * chore: remove useless file * feat: use dropdown of fomantic ui * feat: update input style * docs: more comments * fix: render text without render * chore: fix lint error * fix: support use description as about in markdown * fix: add field class in form * chore: generate swagger * feat: validate template * feat: support is_nummber and regex * test: fix broken unit tests * fix: ignore empty body of md template * fix: make multiple easymde editors work in one page * feat: better UI * fix: js error in pr form * chore: generate swagger * feat: support regex validation * chore: generate swagger * fix: refresh each markdown editor * chore: give up required validation * fix: correct issue template candidates * fix: correct checkboxes style * chore: ignore .hugo_build.lock in docs * docs: separate out a new doc for merge templates * docs: introduce syntax of yaml template * feat: show a alert for invalid templates * test: add case for a valid template * fix: correct attributes of required checkbox * fix: add class not-under-easymde for dropzone * fix: use more back-quotes * chore: remove translation in zh-CN * fix EasyMDE statusbar margin * fix: remove repeated blocks * fix: reuse regex for quotes Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'templates/repo/issue/fields')
-rw-r--r--templates/repo/issue/fields/checkboxes.tmpl12
-rw-r--r--templates/repo/issue/fields/dropdown.tmpl14
-rw-r--r--templates/repo/issue/fields/header.tmpl6
-rw-r--r--templates/repo/issue/fields/input.tmpl4
-rw-r--r--templates/repo/issue/fields/markdown.tmpl3
-rw-r--r--templates/repo/issue/fields/textarea.tmpl6
6 files changed, 45 insertions, 0 deletions
diff --git a/templates/repo/issue/fields/checkboxes.tmpl b/templates/repo/issue/fields/checkboxes.tmpl
new file mode 100644
index 0000000000..b70334681f
--- /dev/null
+++ b/templates/repo/issue/fields/checkboxes.tmpl
@@ -0,0 +1,12 @@
+<div class="field">
+ {{template "repo/issue/fields/header" .}}
+ {{$field := .}}
+ {{range $i, $opt := .Attributes.options}}
+ <div class="field">
+ <div class="ui checkbox">
+ <input type="checkbox" name="form-field-{{$field.ID}}-{{$i}}" {{if $opt.required}}readonly checked{{end}}>
+ <label>{{$opt.label}}</label>
+ </div>
+ </div>
+ {{end}}
+</div>
diff --git a/templates/repo/issue/fields/dropdown.tmpl b/templates/repo/issue/fields/dropdown.tmpl
new file mode 100644
index 0000000000..83c2bb4aac
--- /dev/null
+++ b/templates/repo/issue/fields/dropdown.tmpl
@@ -0,0 +1,14 @@
+<div class="field">
+ {{template "repo/issue/fields/header" .}}
+ {{/* FIXME: required validation */}}
+ <div class="ui fluid selection dropdown {{if .Attributes.multiple}}multiple clearable{{end}}">
+ <input type="hidden" name="form-field-{{.ID}}" value="0">
+ <i class="dropdown icon"></i>
+ <div class="default text"></div>
+ <div class="menu">
+ {{range $i, $opt := .Attributes.options}}
+ <div class="item" data-value="{{$i}}">{{$opt}}</div>
+ {{end}}
+ </div>
+ </div>
+</div>
diff --git a/templates/repo/issue/fields/header.tmpl b/templates/repo/issue/fields/header.tmpl
new file mode 100644
index 0000000000..fb8511b4f0
--- /dev/null
+++ b/templates/repo/issue/fields/header.tmpl
@@ -0,0 +1,6 @@
+{{if .Attributes.label}}
+ <h3>{{.Attributes.label}}{{if .Validations.required}}<label class="required"></label>{{end}}</h3>
+{{end}}
+{{if .Attributes.description}}
+ <span class="help">{{RenderMarkdownToHtml .Attributes.description}}</span>
+{{end}}
diff --git a/templates/repo/issue/fields/input.tmpl b/templates/repo/issue/fields/input.tmpl
new file mode 100644
index 0000000000..d73354f6d3
--- /dev/null
+++ b/templates/repo/issue/fields/input.tmpl
@@ -0,0 +1,4 @@
+<div class="field">
+ {{template "repo/issue/fields/header" .}}
+ <input type="{{if .Validations.is_number}}number{{else}}text{{end}}" name="form-field-{{.ID}}" placeholder="{{.Attributes.placeholder}}" value="{{.Attributes.value}}" {{if .Validations.required}}required{{end}} {{if .Validations.regex}}pattern="{{.Validations.regex}}" title="{{.Validations.regex}}"{{end}}>
+</div>
diff --git a/templates/repo/issue/fields/markdown.tmpl b/templates/repo/issue/fields/markdown.tmpl
new file mode 100644
index 0000000000..8236171523
--- /dev/null
+++ b/templates/repo/issue/fields/markdown.tmpl
@@ -0,0 +1,3 @@
+<div class="field">
+ <div>{{RenderMarkdownToHtml .Attributes.value}}</div>
+</div>
diff --git a/templates/repo/issue/fields/textarea.tmpl b/templates/repo/issue/fields/textarea.tmpl
new file mode 100644
index 0000000000..5ad82e2460
--- /dev/null
+++ b/templates/repo/issue/fields/textarea.tmpl
@@ -0,0 +1,6 @@
+<div class="field">
+ {{template "repo/issue/fields/header" .}}
+ {{/* FIXME: preview markdown result */}}
+ {{/* FIXME: required validation for markdown editor */}}
+ <textarea name="form-field-{{.ID}}" placeholder="{{.Attributes.placeholder}}" class="edit_area {{if .Attributes.render}}no-easymde{{end}}" {{if and .Validations.required .Attributes.render}}required{{end}}>{{.Attributes.value}}</textarea>
+</div>