Selaa lähdekoodia

Added basic package editing form.

Christoph Hochstrasser 13 vuotta sitten
vanhempi
commit
3da93a1a1a

+ 53 - 0
src/Packagist/WebBundle/Controller/PackageController.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace Packagist\WebBundle\Controller;
+
+use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Bundle\FrameworkBundle\Controller\Controller;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+
+class PackageController extends Controller
+{
+    /**
+     * @Template()
+     * @Route(
+     *     "/packages/{name}/edit",
+     *     name="edit_package",
+     *     requirements={"name"="[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+?"}
+     * )
+     */
+    function editAction(Request $req, $name)
+    {
+        $package = $this->getDoctrine()
+            ->getRepository('PackagistWebBundle:Package')
+            ->findOneByName($name);
+
+        if (!$package) {
+            throw new NotFoundHttpException("The requested package, $name, could not be found.");
+        }
+
+        $form = $this->createFormBuilder($package)
+            ->add("repository", "text")
+            ->getForm();
+
+        if ($req->getMethod() == 'POST') {
+            $form->bindRequest($req);
+
+            if ($form->isValid()) {
+                // Save
+            }
+        }
+
+        return array("package" => $package, "form" => $form->createView());
+    }
+
+    /**
+     * @Route("/packages/{name}/update", name="package_update")
+     */
+    function updateAction()
+    {
+    }
+}
+

+ 21 - 0
src/Packagist/WebBundle/Resources/views/Package/edit.html.twig

@@ -0,0 +1,21 @@
+{% extends "PackagistWebBundle::layout.html.twig" %}
+
+{% block title %}
+    Edit Package {{ package.name }}
+{% endblock %}
+
+{% block content %}
+    <div class="box clearfix">
+        <h1>
+            <a href="{{ path('view_package', {'name': package.name}) }}">&larr; Back</a>
+            Edit {{ package.name }}
+        </h1>
+
+        <form action="{{ path('edit_package', {'name': package.name}) }}" method="post" {{ form_enctype(form) }}>
+            {{ form_widget(form) }}
+
+            <input type="submit" value="Update" />
+        </form>
+    </div>
+{% endblock %}
+