~jan0sch/smederee

Showing details for patch 3f39da9ab55bec418ff1d7a8c4450f1aa75619e7.
2022-08-05 (Fri), 1:35 PM - Jens Grassel - 3f39da9ab55bec418ff1d7a8c4450f1aa75619e7

VCS: Start form stuff for repo creation

Summary of changes
1 files added
  • modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html
1 files modified with 5 lines added and 3 lines removed
  • modules/hub/src/main/scala/de/smederee/hub/VcsRepositoryRoutes.scala with 5 added and 3 removed lines
diff -rN -u old-smederee/modules/hub/src/main/scala/de/smederee/hub/VcsRepositoryRoutes.scala new-smederee/modules/hub/src/main/scala/de/smederee/hub/VcsRepositoryRoutes.scala
--- old-smederee/modules/hub/src/main/scala/de/smederee/hub/VcsRepositoryRoutes.scala	2025-02-03 01:56:55.511022331 +0000
+++ new-smederee/modules/hub/src/main/scala/de/smederee/hub/VcsRepositoryRoutes.scala	2025-02-03 01:56:55.511022331 +0000
@@ -32,6 +32,8 @@
 final class VcsRepositoryRoutes[F[_]: Async](config: DarcsConfiguration, darcs: DarcsCommands[F])
     extends Http4sDsl[F] {
 
+  private val createRepoPath = uri"/repo/create"
+
   private val parseCreateRepositoryForm: AuthedRoutes[Account, F] = AuthedRoutes.of {
     case ar @ POST -> Root / "repo" / "create" as user =>
       for {
@@ -43,9 +45,9 @@
   private val showCreateRepositoryForm: AuthedRoutes[Account, F] = AuthedRoutes.of {
     case ar @ GET -> Root / "repo" / "create" as user =>
       for {
-        csrf   <- Sync[F].delay(ar.req.getCsrfToken)
-        output <- darcs.initialize(config.repositoriesDirectory.toPath)("TEST-REPO")(Chain.empty)
-        resp   <- Ok(output.toString)
+        csrf <- Sync[F].delay(ar.req.getCsrfToken)
+        // output <- darcs.initialize(config.repositoriesDirectory.toPath)("TEST-REPO")(Chain.empty)
+        resp <- Ok(views.html.createRepository()(createRepoPath, csrf, "Create a new repository".some)())
       } yield resp
   }
 
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	1970-01-01 00:00:00.000000000 +0000
+++ new-smederee/modules/hub/src/main/twirl/de/smederee/hub/views/createRepository.scala.html	2025-02-03 01:56:55.511022331 +0000
@@ -0,0 +1,40 @@
+@import NewVcsRepositoryForm._
+
+@(lang: LanguageCode = LanguageCode("en"), pathPrefix: Option[Uri] = None)(action: Uri, csrf: Option[CsrfToken] = None, title: Option[String] = None)(formData: Map[String, String] = Map.empty, formErrors: FormErrors = FormErrors.empty)
+@main(lang, pathPrefix)()(csrf, title) {
+@defining(lang.toLocale) { implicit locale =>
+  <div class="content">
+    <div class="pure-g">
+      <div class="pure-u-1-1 pure-u-md-1-1 signup">
+        <div class="form-errors">
+          @formErrors.get(fieldGlobal).map { es =>
+            @for(error <- es) {
+              <p class="alert alert-danger">
+                <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
+                <span class="sr-only">Fehler:</span>
+                @error
+              </p>
+            }
+          }
+        </div>
+        <div class="signup-form">
+          <form action="@createFullPath(pathPrefix)(action)" method="POST" accept-charset="UTF-8" class="pure-form pure-form-aligned" autocomplete="on">
+            <fieldset id="repository-data">
+              <div class="pure-control-group">
+                <label for="@{fieldName}">Name</label>
+                <input class="pure-input-1-2" id="@{fieldName}" name="@{fieldName}" placeholder="Please enter a repository name." maxlength="64" required="" type="text" value="@{formData.get(fieldName)}" autocomplete="username">
+                <small class="pure-form-message" id="@{fieldName}.help">A repository name must start with a letter or number and must contain only lowercase alphanumeric ASCII characters as well as minus or underscore signs. It must be between 2 and 64 characters long.</small>
+                @renderFormErrors(fieldName, formErrors)
+              </div>
+              @csrfToken(csrf)
+              <div class="pure-controls">
+                <button type="submit" class="pure-button">@Messages("form.signup.button.submit")</button>
+              </div>
+            </fieldset>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+}
+}