Bläddra i källkod

Basic viewing page.

xaav 14 år sedan
förälder
incheckning
4ff0fa94d0

+ 15 - 2
src/Packagist/WebBundle/Controller/WebController.php

@@ -43,7 +43,7 @@ class WebController extends Controller
      */
     public function indexAction()
     {
-        $packages = $this->get('doctrine')
+        $packages = $this->getDoctrine()
             ->getRepository('Packagist\WebBundle\Entity\Package')
             ->findAll();
 
@@ -67,7 +67,7 @@ class WebController extends Controller
                 try {
                     $user = $this->getUser();
                     $package->addMaintainers($user);
-                    $em = $this->get('doctrine')->getEntityManager();
+                    $em = $this->getDoctrine()->getEntityManager();
                     $em->persist($package);
                     $em->flush();
 
@@ -114,6 +114,19 @@ class WebController extends Controller
         return new Response(json_encode($response));
     }
 
+    /**
+     * @Template()
+     * @Route("/view/{id}", name="view")
+     */
+    public function viewAction($id)
+    {
+        $package = $this->getDoctrine()
+            ->getRepository('PackagistWebBundle:Package')
+            ->findOneById($id);
+
+        return array('package' => $package);
+    }
+
     /**
      * @Template()
      * @Route("/about", name="about")

+ 1 - 1
src/Packagist/WebBundle/Resources/views/Web/index.html.twig

@@ -4,7 +4,7 @@
     <h1>Packages</h1>
     {% for package in packages %}
         <section class="package">
-            <h2>{{ package.name }}</h2>
+            <h2><a href="{{ url('view', { 'id' : package.id }) }}">{{ package.name }}</a></h2>
             {% if package.versions[0] is defined %}
                 <p class="description">{{ package.versions[0].description }}</p>
                 <p class="license">License: {{ package.versions[0].license|default("Unknown") }}</p>

+ 23 - 0
src/Packagist/WebBundle/Resources/views/Web/view.html.twig

@@ -0,0 +1,23 @@
+{% extends "PackagistWebBundle::layout.html.twig" %}
+
+{% block content %}
+    <h1>Viewing package {{ package.name }}</h1>
+    {% if package.versions[0] is defined %}
+                <p class="description">{{ package.versions[0].description }}</p>
+                <p class="license">License: {{ package.versions[0].license|default("Unknown") }}</p>
+                <p class="links">
+                    {% if package.versions[0].homepage %}
+                        Homepage: <a href="{{ package.versions[0].homepage }}">{{ package.versions[0].homepage|replace({'http://': ''}) }}</a><br />
+                    {% endif %}
+                    Tags: {% for tag in package.versions[0].tags %}{{ tag.name }}{{ loop.last ? '' : ', ' }}{% endfor %}
+                </p>
+                <p class="author">Maintainer{{ package.maintainers|length > 1 ? 's' : '' }}:
+                {% for maintainer in package.maintainers %}
+                    {{ maintainer.username }}{{ loop.last ? '' : ', ' }}
+                {% endfor %}</p>
+            {% elseif package.crawledAt == null %}
+                This package has not been crawled yet, some information is missing.
+            {% else %}
+                This package has no released version yet, and little information is available yet.
+    {% endif %}
+{% endblock %}