~jan0sch/smederee

Showing details for patch b9daa911e96ce098afb0d2907daeffe088982717.
2022-08-12 (Fri), 12:45 PM - Jens Grassel - b9daa911e96ce098afb0d2907daeffe088982717

VCS: Extend new repository form

Summary of changes
3 files modified with 32 lines added and 1 lines removed
  • modules/hub/src/main/resources/messages_en.properties with 8 added and 0 removed lines
  • modules/hub/src/main/scala/de/smederee/hub/NewVcsRepositoryForm.scala with 6 added and 1 removed lines
  • modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html with 18 added and 0 removed lines
diff -rN -u old-smederee/modules/hub/src/main/resources/messages_en.properties new-smederee/modules/hub/src/main/resources/messages_en.properties
--- old-smederee/modules/hub/src/main/resources/messages_en.properties	2025-02-02 16:57:40.971188289 +0000
+++ new-smederee/modules/hub/src/main/resources/messages_en.properties	2025-02-02 16:57:40.971188289 +0000
@@ -17,6 +17,14 @@
 form.create-repo.name=Name
 form.create-repo.name.placeholder=Please enter a repository name.
 form.create-repo.name.help=A repository name must start with a letter or number and must contain only alphanumeric ASCII characters as well as minus or underscore signs. It must be between 2 and 64 characters long.
+form.create-repo.is-private=Private Repository
+form.create-repo.is-private.help=A private repository can only be accessed by the owner and accounts which have been given permissions to do so.
+form.create-repo.description=Description
+form.create-repo.description.placeholder=
+form.create-repo.description.help=An optional short description of you repo / project.
+form.create-repo.website=Website
+form.create-repo.website.placeholder=https://example.com
+form.create-repo.website.help=An optional URI pointing to the website of your project.
 form.login.button.submit=Login
 form.login.password=Password
 form.login.password.placeholder=Please enter your password here.
diff -rN -u old-smederee/modules/hub/src/main/scala/de/smederee/hub/NewVcsRepositoryForm.scala new-smederee/modules/hub/src/main/scala/de/smederee/hub/NewVcsRepositoryForm.scala
--- old-smederee/modules/hub/src/main/scala/de/smederee/hub/NewVcsRepositoryForm.scala	2025-02-02 16:57:40.971188289 +0000
+++ new-smederee/modules/hub/src/main/scala/de/smederee/hub/NewVcsRepositoryForm.scala	2025-02-02 16:57:40.971188289 +0000
@@ -65,7 +65,12 @@
         Uri
           .fromString(s)
           .toOption
-          .fold(FormFieldError("Invalid website URI!").invalidNec)(uri => Option(uri).validNec)
+          .fold(FormFieldError("Invalid website URI!").invalidNec) { uri =>
+            uri.scheme match {
+              case Some(Uri.Scheme.http) | Some(Uri.Scheme.https) => Option(uri).validNec
+              case _ => FormFieldError("Invalid website URI!").invalidNec
+            }
+          }
       )
       .leftMap(es => NonEmptyChain.of(Map(fieldWebsite -> es.toList)))
     (name, privateFlag, description, website).mapN {
diff -rN -u old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html
--- old-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html	2025-02-02 16:57:40.971188289 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html	2025-02-02 16:57:40.971188289 +0000
@@ -26,6 +26,24 @@
                 <small class="pure-form-message" id="@{fieldName}.help">@Messages("form.create-repo.name.help")</small>
                 @renderFormErrors(fieldName, formErrors)
               </div>
+              <div class="pure-control-group">
+                <label for="@{fieldIsPrivate}">@Messages("form.create-repo.is-private")</label>
+                <input id="@{fieldIsPrivate}" name="@{fieldIsPrivate}" type="checkbox" value="true" @if(formData.get(fieldIsPrivate).map(_ === "true").getOrElse(false)){ checked="" } else { }>
+                <span class="pure-form-message-inline" id="@{fieldIsPrivate}.help">@Messages("form.create-repo.is-private.help")</span>
+                @renderFormErrors(fieldIsPrivate, formErrors)
+              </div>
+              <div class="pure-control-group">
+                <label for="@{fieldDescription}">@Messages("form.create-repo.description")</label>
+                <textarea class="pure-input-1-2" id="@{fieldDescription}" name="@{fieldDescription}" placeholder="@Messages("form.create-repo.description.placeholder")" maxlength="254" rows="3">@{formData.get(fieldDescription)}</textarea>
+                <span class="pure-form-message" id="@{fieldDescription}.help">@Messages("form.create-repo.description.help")</span>
+                @renderFormErrors(fieldDescription, formErrors)
+              </div>
+              <div class="pure-control-group">
+                <label for="@{fieldWebsite}">@Messages("form.create-repo.website")</label>
+                <input id="@{fieldWebsite}" name="@{fieldWebsite}" maxlength="128" placeholder="https://example.com" type="text" value="@{formData.get(fieldWebsite)}">
+                <span class="pure-form-message" id="@{fieldWebsite}.help">@Messages("form.create-repo.website.help")</span>
+                @renderFormErrors(fieldWebsite, formErrors)
+              </div>
               @csrfToken(csrf)
               <div class="pure-controls">
                 <button type="submit" class="pure-button">@Messages("form.create-repo.button.submit")</button>