diff --git a/internal/http/handler/webui/issue/component/issue_page.templ b/internal/http/handler/webui/issue/component/issue_page.templ index c39c27a..8f3898c 100644 --- a/internal/http/handler/webui/issue/component/issue_page.templ +++ b/internal/http/handler/webui/issue/component/issue_page.templ @@ -9,6 +9,7 @@ import ( "github.com/pkg/errors" "github.com/yuin/goldmark" "log/slog" + "strings" ) type IssuePageVModel struct { @@ -20,6 +21,16 @@ type IssuePageVModel struct { SelectedProjectID string } +const summaryPlaceholder = ` +Décrivez rapidement le sujet du problème rencontré ou de l'évolution souhaitée, ClearCase utilisera le modèle de demande présent dans le dépôt (ou un modèle par défaut) afin de générer une version mise en forme et complétée. + +Afin de fournir plus d'information de contexte au LLM, vous pouvez faire référence à d'autres tickets du dépôt via un ou plusieurs '#' et/ou des chemins vers des fichiers présents dans celui ci. +` + +const bodyPlaceholder = ` +Une fois votre demande générée, vous pourrez l'éditer puis la créer directement en cliquant sur le bouton 'Créer' ci-dessous. +` + func NewIssueSummaryForm() *form.Form { return form.New( form.NewField( @@ -32,9 +43,9 @@ func NewIssueSummaryForm() *form.Form { form.Attrs{ "type": "textarea", "rows": "20", - "placeholder": "Décrivez rapidement le sujet du problème rencontré ou de l'évolution souhaitée...", + "placeholder": strings.TrimSpace(summaryPlaceholder), }, - form.NonEmpty("Ce champs ne doit pas être vide."), + form.NonEmpty("Ce champ ne doit pas être vide."), ), ) } @@ -44,17 +55,19 @@ func NewIssueForm() *form.Form { form.NewField( "title", form.Attrs{ - "type": "text", + "type": "text", + "placeholder": "Écrivez le résumé de votre demande et cliquez sur 'Générer' pour remplir automatiquement ces champs.", }, - form.NonEmpty("Ce champs ne doit pas être vide."), + form.NonEmpty("Ce champ ne doit pas être vide."), ), form.NewField( "body", form.Attrs{ - "type": "textarea", - "rows": "20", + "type": "textarea", + "rows": "20", + "placeholder": strings.TrimSpace(bodyPlaceholder), }, - form.NonEmpty("Ce champs ne doit pas être vide."), + form.NonEmpty("Ce champ ne doit pas être vide."), ), ) } @@ -63,8 +76,15 @@ templ IssuePage(vmodel IssuePageVModel) { @common.Page(common.WithTitle("Nouvelle demande")) {
-
- Se déconnecter +
+
+

ClearCase

+
+
+
+ +
+
if vmodel.IssueURL != "" {
@@ -91,7 +111,7 @@ templ IssuePage(vmodel IssuePageVModel) {
-

Résumé de la demande

+

Résumé de la demande

@common.FormSelect( vmodel.SummaryForm, "issue-project", "project", "Projet", common.WithOptions(projectsToOptions(vmodel.Projects)...), @@ -108,26 +128,26 @@ templ IssuePage(vmodel IssuePageVModel) { ), )
-
-

Votre demande

+

Votre demande

@common.FormField(vmodel.IssueForm, "issue-title", "title", "Titre") @common.FormTextarea(vmodel.IssueForm, "issue-body", "body", "Corps")
-
diff --git a/internal/http/handler/webui/issue/component/issue_page_templ.go b/internal/http/handler/webui/issue/component/issue_page_templ.go index 35c9ba3..fe37b5a 100644 --- a/internal/http/handler/webui/issue/component/issue_page_templ.go +++ b/internal/http/handler/webui/issue/component/issue_page_templ.go @@ -17,6 +17,7 @@ import ( "github.com/pkg/errors" "github.com/yuin/goldmark" "log/slog" + "strings" ) type IssuePageVModel struct { @@ -28,6 +29,16 @@ type IssuePageVModel struct { SelectedProjectID string } +const summaryPlaceholder = ` +Décrivez rapidement le sujet du problème rencontré ou de l'évolution souhaitée, ClearCase utilisera le modèle de demande présent dans le dépôt (ou un modèle par défaut) afin de générer une version mise en forme et complétée. + +Afin de fournir plus d'information de contexte au LLM, vous pouvez faire référence à d'autres tickets du dépôt via un ou plusieurs '#' et/ou des chemins vers des fichiers présents dans celui ci. +` + +const bodyPlaceholder = ` +Une fois votre demande générée, vous pourrez l'éditer puis la créer directement en cliquant sur le bouton 'Créer' ci-dessous. +` + func NewIssueSummaryForm() *form.Form { return form.New( form.NewField( @@ -40,9 +51,9 @@ func NewIssueSummaryForm() *form.Form { form.Attrs{ "type": "textarea", "rows": "20", - "placeholder": "Décrivez rapidement le sujet du problème rencontré ou de l'évolution souhaitée...", + "placeholder": strings.TrimSpace(summaryPlaceholder), }, - form.NonEmpty("Ce champs ne doit pas être vide."), + form.NonEmpty("Ce champ ne doit pas être vide."), ), ) } @@ -52,17 +63,19 @@ func NewIssueForm() *form.Form { form.NewField( "title", form.Attrs{ - "type": "text", + "type": "text", + "placeholder": "Écrivez le résumé de votre demande et cliquez sur 'Générer' pour remplir automatiquement ces champs.", }, - form.NonEmpty("Ce champs ne doit pas être vide."), + form.NonEmpty("Ce champ ne doit pas être vide."), ), form.NewField( "body", form.Attrs{ - "type": "textarea", - "rows": "20", + "type": "textarea", + "rows": "20", + "placeholder": strings.TrimSpace(bodyPlaceholder), }, - form.NonEmpty("Ce champs ne doit pas être vide."), + form.NonEmpty("Ce champ ne doit pas être vide."), ), ) } @@ -100,7 +113,7 @@ func IssuePage(vmodel IssuePageVModel) templ.Component { }() } ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

ClearCase

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "\">
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -130,7 +143,7 @@ func IssuePage(vmodel IssuePageVModel) templ.Component { var templ_7745c5c3_Var5 string templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(vmodel.IssueURL) if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/http/handler/webui/issue/component/issue_page.templ`, Line: 77, Col: 89} + return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/http/handler/webui/issue/component/issue_page.templ`, Line: 97, Col: 89} } _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) if templ_7745c5c3_Err != nil { @@ -162,7 +175,7 @@ func IssuePage(vmodel IssuePageVModel) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "\" method=\"put\" hx-disabled-elt=\"textarea, input, select, button\" hx-on:htmx:before-send=\"savePreferredProject()\" hx-indicator=\"#generation-progress\">

Résumé de la demande

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "\" method=\"put\" hx-disabled-elt=\"textarea, input, select, button\" hx-on:htmx:before-send=\"savePreferredProject()\" hx-indicator=\"#generation-progress\">

Résumé de la demande

") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } @@ -187,7 +200,7 @@ func IssuePage(vmodel IssuePageVModel) templ.Component { if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "

Votre demande

Votre demande

") + templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "
") if templ_7745c5c3_Err != nil { return templ_7745c5c3_Err }