瀏覽代碼

Design cleanups and restored statistics page

Jordi Boggiano 9 年之前
父節點
當前提交
a23917400b
共有 28 個文件被更改,包括 341 次插入1780 次删除
  1. 3 4
      composer.json
  2. 227 113
      composer.lock
  3. 5 5
      src/Packagist/WebBundle/Controller/WebController.php
  4. 0 614
      src/Packagist/WebBundle/Resources/public/css/bootstrap.min.css
  5. 6 5
      src/Packagist/WebBundle/Resources/public/css/main.css
  6. 0 736
      src/Packagist/WebBundle/Resources/public/css/old_main.css
  7. 二進制
      src/Packagist/WebBundle/Resources/public/img/arrow.png
  8. 二進制
      src/Packagist/WebBundle/Resources/public/img/contract.gif
  9. 二進制
      src/Packagist/WebBundle/Resources/public/img/expand.gif
  10. 二進制
      src/Packagist/WebBundle/Resources/public/img/footer_arrows.png
  11. 二進制
      src/Packagist/WebBundle/Resources/public/img/github_icon.png
  12. 二進制
      src/Packagist/WebBundle/Resources/public/img/package_bg.png
  13. 二進制
      src/Packagist/WebBundle/Resources/public/img/package_corners.png
  14. 二進制
      src/Packagist/WebBundle/Resources/public/img/texture.png
  15. 18 2
      src/Packagist/WebBundle/Resources/public/js/charts.js
  16. 4 2
      src/Packagist/WebBundle/Resources/public/js/search.js
  17. 1 3
      src/Packagist/WebBundle/Resources/views/Web/list.html.twig
  18. 2 5
      src/Packagist/WebBundle/Resources/views/Web/search.html.twig
  19. 5 5
      src/Packagist/WebBundle/Resources/views/Web/searchForm.html.twig
  20. 24 34
      src/Packagist/WebBundle/Resources/views/Web/stats.html.twig
  21. 34 46
      src/Packagist/WebBundle/Resources/views/layout.html.twig
  22. 3 3
      src/Packagist/WebBundle/Resources/views/macros.html.twig
  23. 二進制
      web/font/fontawesome-webfont.eot
  24. 0 163
      web/font/fontawesome-webfont.svg
  25. 二進制
      web/font/fontawesome-webfont.ttf
  26. 二進制
      web/font/fontawesome-webfont.woff
  27. 9 39
      web/js/libs/Chart.js/Chart.min.js
  28. 0 1
      web/js/libs/jquery-1.8.2.min.js

+ 3 - 4
composer.json

@@ -37,7 +37,7 @@
         "jms/security-extra-bundle": "1.5.*",
         "jms/di-extra-bundle": "1.4.*",
 
-        "composer/composer": "1.0.x-dev",
+        "composer/composer": "~1.0@dev",
         "friendsofsymfony/user-bundle": "1.*",
         "hwi/oauth-bundle": "~0.4@dev",
         "nelmio/solarium-bundle": "~1.0",
@@ -50,10 +50,9 @@
         "zendframework/zend-uri": "2.0.*",
         "zendframework/zend-version": "2.0.*",
 
-        "kriswallsmith/assetic": "~1.2@alpha",
+        "kriswallsmith/assetic": "~1.2",
         "pagerfanta/pagerfanta": "~1.0",
-        "knplabs/knp-menu-bundle": "*@dev",
-        "knplabs/knp-menu": "*@dev"
+        "knplabs/knp-menu-bundle": "^2.0"
     },
     "scripts": {
         "post-install-cmd": [

+ 227 - 113
composer.lock

@@ -1,27 +1,27 @@
 {
     "_readme": [
         "This file locks the dependencies of your project to a known state",
-        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "f30034e48340435bae4044b8bb773adf",
+    "hash": "2259146deb50eb0cc9a96e86253ab4d5",
     "packages": [
         {
             "name": "composer/composer",
-            "version": "dev-master",
+            "version": "1.0.0-alpha9",
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/composer.git",
-                "reference": "825b4b9c63a29c586d005de8dbbcfdfeb86bbf6f"
+                "reference": "eb1ce550ca51134ee619ad3e37f5a0b7e980dd24"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/composer/zipball/825b4b9c63a29c586d005de8dbbcfdfeb86bbf6f",
-                "reference": "825b4b9c63a29c586d005de8dbbcfdfeb86bbf6f",
+                "url": "https://api.github.com/repos/composer/composer/zipball/eb1ce550ca51134ee619ad3e37f5a0b7e980dd24",
+                "reference": "eb1ce550ca51134ee619ad3e37f5a0b7e980dd24",
                 "shasum": ""
             },
             "require": {
-                "justinrainbow/json-schema": "~1.3",
+                "justinrainbow/json-schema": "~1.1",
                 "php": ">=5.3.2",
                 "seld/jsonlint": "~1.0",
                 "symfony/console": "~2.3",
@@ -72,20 +72,20 @@
                 "dependency",
                 "package"
             ],
-            "time": "2015-01-20 16:39:06"
+            "time": "2014-12-07 17:15:20"
         },
         {
             "name": "doctrine/annotations",
-            "version": "v1.2.3",
+            "version": "v1.2.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/annotations.git",
-                "reference": "eeda578cbe24a170331a1cfdf78be723412df7a4"
+                "reference": "b5202eb9e83f8db52e0e58867e0a46e63be8332e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/annotations/zipball/eeda578cbe24a170331a1cfdf78be723412df7a4",
-                "reference": "eeda578cbe24a170331a1cfdf78be723412df7a4",
+                "url": "https://api.github.com/repos/doctrine/annotations/zipball/b5202eb9e83f8db52e0e58867e0a46e63be8332e",
+                "reference": "b5202eb9e83f8db52e0e58867e0a46e63be8332e",
                 "shasum": ""
             },
             "require": {
@@ -140,20 +140,20 @@
                 "docblock",
                 "parser"
             ],
-            "time": "2014-12-20 20:49:38"
+            "time": "2014-12-23 22:40:37"
         },
         {
             "name": "doctrine/cache",
-            "version": "v1.4.0",
+            "version": "v1.4.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/cache.git",
-                "reference": "2346085d2b027b233ae1d5de59b07440b9f288c8"
+                "reference": "c9eadeb743ac6199f7eec423cb9426bc518b7b03"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/cache/zipball/2346085d2b027b233ae1d5de59b07440b9f288c8",
-                "reference": "2346085d2b027b233ae1d5de59b07440b9f288c8",
+                "url": "https://api.github.com/repos/doctrine/cache/zipball/c9eadeb743ac6199f7eec423cb9426bc518b7b03",
+                "reference": "c9eadeb743ac6199f7eec423cb9426bc518b7b03",
                 "shasum": ""
             },
             "require": {
@@ -164,13 +164,13 @@
             },
             "require-dev": {
                 "phpunit/phpunit": ">=3.7",
-                "predis/predis": "~0.8",
+                "predis/predis": "~1.0",
                 "satooshi/php-coveralls": "~0.6"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.4.x-dev"
+                    "dev-master": "1.5.x-dev"
                 }
             },
             "autoload": {
@@ -210,25 +210,28 @@
                 "cache",
                 "caching"
             ],
-            "time": "2015-01-15 20:38:55"
+            "time": "2015-04-15 00:11:59"
         },
         {
             "name": "doctrine/collections",
-            "version": "v1.2",
+            "version": "v1.3.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/collections.git",
-                "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2"
+                "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2",
-                "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2",
+                "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a",
+                "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.3.2"
             },
+            "require-dev": {
+                "phpunit/phpunit": "~4.0"
+            },
             "type": "library",
             "extra": {
                 "branch-alias": {
@@ -245,17 +248,6 @@
                 "MIT"
             ],
             "authors": [
-                {
-                    "name": "Jonathan H. Wage",
-                    "email": "jonwage@gmail.com",
-                    "homepage": "http://www.jwage.com/",
-                    "role": "Creator"
-                },
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com",
-                    "homepage": "http://www.instaclick.com"
-                },
                 {
                     "name": "Roman Borschel",
                     "email": "roman@code-factory.org"
@@ -264,11 +256,17 @@
                     "name": "Benjamin Eberlei",
                     "email": "kontakt@beberlei.de"
                 },
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco@gmail.com"
+                },
+                {
+                    "name": "Jonathan Wage",
+                    "email": "jonwage@gmail.com"
+                },
                 {
                     "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com",
-                    "homepage": "https://github.com/schmittjoh",
-                    "role": "Developer of wrapped JMSSerializerBundle"
+                    "email": "schmittjoh@gmail.com"
                 }
             ],
             "description": "Collections Abstraction library",
@@ -278,20 +276,20 @@
                 "collections",
                 "iterator"
             ],
-            "time": "2014-02-03 23:07:43"
+            "time": "2015-04-14 22:21:58"
         },
         {
             "name": "doctrine/common",
-            "version": "v2.4.2",
+            "version": "v2.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/common.git",
-                "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b"
+                "reference": "cd8daf2501e10c63dced7b8b9b905844316ae9d3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
-                "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b",
+                "url": "https://api.github.com/repos/doctrine/common/zipball/cd8daf2501e10c63dced7b8b9b905844316ae9d3",
+                "reference": "cd8daf2501e10c63dced7b8b9b905844316ae9d3",
                 "shasum": ""
             },
             "require": {
@@ -308,7 +306,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.4.x-dev"
+                    "dev-master": "2.6.x-dev"
                 }
             },
             "autoload": {
@@ -321,17 +319,6 @@
                 "MIT"
             ],
             "authors": [
-                {
-                    "name": "Jonathan Wage",
-                    "email": "jonwage@gmail.com",
-                    "homepage": "http://www.jwage.com/",
-                    "role": "Creator"
-                },
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com",
-                    "homepage": "http://www.instaclick.com"
-                },
                 {
                     "name": "Roman Borschel",
                     "email": "roman@code-factory.org"
@@ -340,11 +327,17 @@
                     "name": "Benjamin Eberlei",
                     "email": "kontakt@beberlei.de"
                 },
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco@gmail.com"
+                },
+                {
+                    "name": "Jonathan Wage",
+                    "email": "jonwage@gmail.com"
+                },
                 {
                     "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com",
-                    "homepage": "http://jmsyst.com",
-                    "role": "Developer of wrapped JMSSerializerBundle"
+                    "email": "schmittjoh@gmail.com"
                 }
             ],
             "description": "Common Library for Doctrine projects",
@@ -356,7 +349,7 @@
                 "persistence",
                 "spl"
             ],
-            "time": "2014-05-21 19:28:51"
+            "time": "2015-04-02 19:55:44"
         },
         {
             "name": "doctrine/dbal",
@@ -759,12 +752,12 @@
             "source": {
                 "type": "git",
                 "url": "https://github.com/hwi/HWIOAuthBundle.git",
-                "reference": "a9f88f394e4680d5383b9a129f0e21fc74ca187f"
+                "reference": "2e12c7ab9cf83ce0d3e9d6a98315bbf21ab23ab3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/hwi/HWIOAuthBundle/zipball/a9f88f394e4680d5383b9a129f0e21fc74ca187f",
-                "reference": "a9f88f394e4680d5383b9a129f0e21fc74ca187f",
+                "url": "https://api.github.com/repos/hwi/HWIOAuthBundle/zipball/2e12c7ab9cf83ce0d3e9d6a98315bbf21ab23ab3",
+                "reference": "2e12c7ab9cf83ce0d3e9d6a98315bbf21ab23ab3",
                 "shasum": ""
             },
             "require": {
@@ -865,7 +858,7 @@
                 "yahoo",
                 "yandex"
             ],
-            "time": "2015-01-09 16:46:23"
+            "time": "2015-05-04 07:05:05"
         },
         {
             "name": "jdorn/sql-formatter",
@@ -1234,16 +1227,16 @@
         },
         {
             "name": "justinrainbow/json-schema",
-            "version": "1.3.7",
+            "version": "1.4.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/justinrainbow/json-schema.git",
-                "reference": "87b54b460febed69726c781ab67462084e97a105"
+                "reference": "2465fe486c864e30badaa4d005ebdf89dbc503f3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/87b54b460febed69726c781ab67462084e97a105",
-                "reference": "87b54b460febed69726c781ab67462084e97a105",
+                "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2465fe486c864e30badaa4d005ebdf89dbc503f3",
+                "reference": "2465fe486c864e30badaa4d005ebdf89dbc503f3",
                 "shasum": ""
             },
             "require": {
@@ -1296,7 +1289,125 @@
                 "json",
                 "schema"
             ],
-            "time": "2014-08-25 02:48:14"
+            "time": "2015-03-27 16:41:39"
+        },
+        {
+            "name": "knplabs/knp-menu",
+            "version": "v2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/KnpLabs/KnpMenu.git",
+                "reference": "5758d0026d7ed00c8dd4727e413918cf2dc74c1a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/5758d0026d7ed00c8dd4727e413918cf2dc74c1a",
+                "reference": "5758d0026d7ed00c8dd4727e413918cf2dc74c1a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "require-dev": {
+                "pimple/pimple": "1.0.*",
+                "silex/silex": "1.0.*",
+                "twig/twig": ">=1.2,<2.0-dev"
+            },
+            "suggest": {
+                "pimple/pimple": "for the built-in implementations of the menu provider and renderer provider",
+                "silex/silex": "for the integration with your silex application",
+                "twig/twig": "for the TwigRenderer and the integration with your templates"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Knp\\Menu\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christophe Coevoet",
+                    "email": "stof@notk.org"
+                },
+                {
+                    "name": "KnpLabs",
+                    "homepage": "http://knplabs.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://github.com/KnpLabs/KnpMenu/contributors"
+                }
+            ],
+            "description": "An object oriented menu library",
+            "homepage": "http://knplabs.com",
+            "keywords": [
+                "menu",
+                "tree"
+            ],
+            "time": "2014-08-01 09:50:16"
+        },
+        {
+            "name": "knplabs/knp-menu-bundle",
+            "version": "v2.0.0",
+            "target-dir": "Knp/Bundle/MenuBundle",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/KnpLabs/KnpMenuBundle.git",
+                "reference": "bdfc95da5ff7e4e67f948aaa9ea5da835a3a9088"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/KnpLabs/KnpMenuBundle/zipball/bdfc95da5ff7e4e67f948aaa9ea5da835a3a9088",
+                "reference": "bdfc95da5ff7e4e67f948aaa9ea5da835a3a9088",
+                "shasum": ""
+            },
+            "require": {
+                "knplabs/knp-menu": "~2.0",
+                "symfony/framework-bundle": "~2.0"
+            },
+            "type": "symfony-bundle",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Knp\\Bundle\\MenuBundle": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Christophe Coevoet",
+                    "email": "stof@notk.org"
+                },
+                {
+                    "name": "KnpLabs",
+                    "homepage": "http://knplabs.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://github.com/KnpLabs/KnpMenuBundle/contributors"
+                }
+            ],
+            "description": "This bundle provides an integration of the KnpMenu library",
+            "keywords": [
+                "menu"
+            ],
+            "time": "2014-08-01 09:57:23"
         },
         {
             "name": "kriswallsmith/assetic",
@@ -1422,16 +1533,16 @@
         },
         {
             "name": "monolog/monolog",
-            "version": "1.12.0",
+            "version": "1.13.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Seldaek/monolog.git",
-                "reference": "1fbe8c2641f2b163addf49cc5e18f144bec6b19f"
+                "reference": "c31a2c4e8db5da8b46c74cf275d7f109c0f249ac"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1fbe8c2641f2b163addf49cc5e18f144bec6b19f",
-                "reference": "1fbe8c2641f2b163addf49cc5e18f144bec6b19f",
+                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c31a2c4e8db5da8b46c74cf275d7f109c0f249ac",
+                "reference": "c31a2c4e8db5da8b46c74cf275d7f109c0f249ac",
                 "shasum": ""
             },
             "require": {
@@ -1448,6 +1559,7 @@
                 "phpunit/phpunit": "~4.0",
                 "raven/raven": "~0.5",
                 "ruflin/elastica": "0.90.*",
+                "swiftmailer/swiftmailer": "~5.3",
                 "videlalvaro/php-amqplib": "~2.4"
             },
             "suggest": {
@@ -1464,7 +1576,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.12.x-dev"
+                    "dev-master": "1.13.x-dev"
                 }
             },
             "autoload": {
@@ -1490,20 +1602,20 @@
                 "logging",
                 "psr-3"
             ],
-            "time": "2014-12-29 21:29:35"
+            "time": "2015-03-09 09:58:04"
         },
         {
             "name": "nelmio/security-bundle",
-            "version": "1.5.0",
+            "version": "1.7.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nelmio/NelmioSecurityBundle.git",
-                "reference": "b8847d6a66744fb8c3df60381939e7a1cbfed7e3"
+                "reference": "9ef2764cb08d3854f394065c5224d8652f62af16"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nelmio/NelmioSecurityBundle/zipball/b8847d6a66744fb8c3df60381939e7a1cbfed7e3",
-                "reference": "b8847d6a66744fb8c3df60381939e7a1cbfed7e3",
+                "url": "https://api.github.com/repos/nelmio/NelmioSecurityBundle/zipball/9ef2764cb08d3854f394065c5224d8652f62af16",
+                "reference": "9ef2764cb08d3854f394065c5224d8652f62af16",
                 "shasum": ""
             },
             "require": {
@@ -1513,7 +1625,7 @@
             "type": "symfony-bundle",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.5.x-dev"
+                    "dev-master": "1.7.x-dev"
                 }
             },
             "autoload": {
@@ -1539,7 +1651,7 @@
             "keywords": [
                 "security"
             ],
-            "time": "2015-01-01 20:49:20"
+            "time": "2015-05-10 17:08:33"
         },
         {
             "name": "nelmio/solarium-bundle",
@@ -1848,17 +1960,17 @@
         },
         {
             "name": "sensio/distribution-bundle",
-            "version": "v2.3.8",
+            "version": "v2.3.17",
             "target-dir": "Sensio/Bundle/DistributionBundle",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
-                "reference": "9a72f821957141ee3d9703da3fa8266d59ef4b1c"
+                "reference": "49334e66844f89898d21646b4fda4cfcfe116200"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/9a72f821957141ee3d9703da3fa8266d59ef4b1c",
-                "reference": "9a72f821957141ee3d9703da3fa8266d59ef4b1c",
+                "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/49334e66844f89898d21646b4fda4cfcfe116200",
+                "reference": "49334e66844f89898d21646b4fda4cfcfe116200",
                 "shasum": ""
             },
             "require": {
@@ -1890,7 +2002,7 @@
                 "configuration",
                 "distribution"
             ],
-            "time": "2015-01-07 07:11:03"
+            "time": "2015-05-29 22:34:59"
         },
         {
             "name": "sensio/framework-extra-bundle",
@@ -1929,7 +2041,9 @@
             "authors": [
                 {
                     "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
+                    "email": "fabien@symfony.com",
+                    "homepage": "http://fabien.potencier.org",
+                    "role": "Lead Developer"
                 }
             ],
             "description": "This bundle provides a way to configure your controllers with annotations",
@@ -2053,12 +2167,12 @@
             "version": "2.4.1",
             "source": {
                 "type": "git",
-                "url": "https://github.com/basdenooijer/solarium.git",
+                "url": "https://github.com/solariumphp/solarium.git",
                 "reference": "f7c55cf42d14bb70f534128da3e343bb98fcb504"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/basdenooijer/solarium/zipball/f7c55cf42d14bb70f534128da3e343bb98fcb504",
+                "url": "https://api.github.com/repos/solariumphp/solarium/zipball/f7c55cf42d14bb70f534128da3e343bb98fcb504",
                 "reference": "f7c55cf42d14bb70f534128da3e343bb98fcb504",
                 "shasum": ""
             },
@@ -2092,16 +2206,16 @@
         },
         {
             "name": "swiftmailer/swiftmailer",
-            "version": "v5.3.1",
+            "version": "v5.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/swiftmailer/swiftmailer.git",
-                "reference": "c5f963e7f9d6f6438fda4f22d5cc2db296ec621a"
+                "reference": "31454f258f10329ae7c48763eb898a75c39e0a9f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/c5f963e7f9d6f6438fda4f22d5cc2db296ec621a",
-                "reference": "c5f963e7f9d6f6438fda4f22d5cc2db296ec621a",
+                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/31454f258f10329ae7c48763eb898a75c39e0a9f",
+                "reference": "31454f258f10329ae7c48763eb898a75c39e0a9f",
                 "shasum": ""
             },
             "require": {
@@ -2113,7 +2227,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "5.3-dev"
+                    "dev-master": "5.4-dev"
                 }
             },
             "autoload": {
@@ -2140,7 +2254,7 @@
                 "mail",
                 "mailer"
             ],
-            "time": "2014-12-05 14:17:14"
+            "time": "2015-03-14 06:06:39"
         },
         {
             "name": "symfony/assetic-bundle",
@@ -2327,12 +2441,12 @@
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/symfony.git",
-                "reference": "7be7e62cfcc2775262374686f2950d704596ea90"
+                "reference": "cff69aa18b5db9aac978b35f186ff670ff75d3e9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/symfony/zipball/7be7e62cfcc2775262374686f2950d704596ea90",
-                "reference": "7be7e62cfcc2775262374686f2950d704596ea90",
+                "url": "https://api.github.com/repos/symfony/symfony/zipball/cff69aa18b5db9aac978b35f186ff670ff75d3e9",
+                "reference": "cff69aa18b5db9aac978b35f186ff670ff75d3e9",
                 "shasum": ""
             },
             "require": {
@@ -2387,7 +2501,8 @@
                 "ircmaxell/password-compat": "~1.0",
                 "monolog/monolog": "~1.3",
                 "ocramius/proxy-manager": "~0.3.1",
-                "propel/propel1": "~1.6"
+                "propel/propel1": "~1.6",
+                "symfony/phpunit-bridge": "~2.7"
             },
             "type": "library",
             "extra": {
@@ -2412,21 +2527,21 @@
                 "MIT"
             ],
             "authors": [
-                {
-                    "name": "Symfony Community",
-                    "homepage": "http://symfony.com/contributors"
-                },
                 {
                     "name": "Fabien Potencier",
                     "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
                 }
             ],
             "description": "The Symfony PHP framework",
-            "homepage": "http://symfony.com",
+            "homepage": "https://symfony.com",
             "keywords": [
                 "framework"
             ],
-            "time": "2015-01-20 23:58:45"
+            "time": "2015-05-29 22:42:49"
         },
         {
             "name": "twig/extensions",
@@ -2482,25 +2597,25 @@
         },
         {
             "name": "twig/twig",
-            "version": "v1.17.0",
+            "version": "v1.18.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/twigphp/Twig.git",
-                "reference": "2493970fa4d587eca73f77e6d8bd48a8bdd4c608"
+                "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/twigphp/Twig/zipball/2493970fa4d587eca73f77e6d8bd48a8bdd4c608",
-                "reference": "2493970fa4d587eca73f77e6d8bd48a8bdd4c608",
+                "url": "https://api.github.com/repos/twigphp/Twig/zipball/9f70492f44398e276d1b81c1b43adfe6751c7b7f",
+                "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.2.4"
+                "php": ">=5.2.7"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.17-dev"
+                    "dev-master": "1.18-dev"
                 }
             },
             "autoload": {
@@ -2535,7 +2650,7 @@
             "keywords": [
                 "templating"
             ],
-            "time": "2015-01-14 10:15:49"
+            "time": "2015-04-19 08:30:27"
         },
         {
             "name": "white-october/pagerfanta-bundle",
@@ -2711,8 +2826,7 @@
         "symfony/symfony": 20,
         "composer/composer": 20,
         "hwi/oauth-bundle": 20,
-        "snc/redis-bundle": 20,
-        "kriswallsmith/assetic": 15
+        "snc/redis-bundle": 20
     },
     "prefer-stable": false,
     "prefer-lowest": false,

+ 5 - 5
src/Packagist/WebBundle/Controller/WebController.php

@@ -402,7 +402,7 @@ class WebController extends Controller
 
             if ($req->isXmlHttpRequest()) {
                 try {
-                    return $this->render('PackagistWebBundle:Web:list.html.twig', array(
+                    return $this->render('PackagistWebBundle:Web:search.html.twig', array(
                         'packages' => $paginator,
                         'meta' => $metadata,
                         'noLayout' => true,
@@ -1290,9 +1290,9 @@ class WebController extends Controller
         $makeDefaultArrow = function ($sort) use ($normalizedOrderBys) {
             if (isset($normalizedOrderBys[$sort])) {
                 if (strtolower($normalizedOrderBys[$sort]) === 'asc') {
-                    $val = 'icon-arrow-up';
+                    $val = 'glyphicon-arrow-up';
                 } else {
-                    $val = 'icon-arrow-down';
+                    $val = 'glyphicon-arrow-down';
                 }
             } else {
                 $val = '';
@@ -1329,13 +1329,13 @@ class WebController extends Controller
         return array(
             'downloads' => array(
                 'title' => 'Sort by downloads',
-                'class' => 'icon-download',
+                'class' => 'glyphicon-download',
                 'arrowClass' => $makeDefaultArrow('downloads'),
                 'href' => $makeDefaultHref('downloads')
             ),
             'favers' => array(
                 'title' => 'Sort by favorites',
-                'class' => 'icon-star',
+                'class' => 'glyphicon-star',
                 'arrowClass' => $makeDefaultArrow('favers'),
                 'href' => $makeDefaultHref('favers')
             ),

文件差異過大導致無法顯示
+ 0 - 614
src/Packagist/WebBundle/Resources/public/css/bootstrap.min.css


+ 6 - 5
src/Packagist/WebBundle/Resources/public/css/main.css

@@ -349,7 +349,7 @@ footer p {
 }
 
 .wrapper-footer .social li {
-    float: left;
+    float: right;
     margin-left: 15px;
 }
 
@@ -681,6 +681,9 @@ ul.packages .abandoned {
   width: 780px;
 }
 
+.wrapper-blue .sortable a {
+  border: 0;
+}
 .sortable #search_query_query {
   width: 777px;
   display: inline;
@@ -693,8 +696,8 @@ ul.packages .abandoned {
   display: none;
 }
 
-.sortable .icon.inactive {
-  color: #555;
+.sortable .glyphicon.active {
+  color: #0013ff;
 }
 
 .sortable #order-bys-wrapper {
@@ -969,8 +972,6 @@ pre {
     margin-left: 8px;
 }
 
-
-
 [class^="icon-"]:before,
 [class*=" icon-"]:before {
     font-family: 'fontello';

+ 0 - 736
src/Packagist/WebBundle/Resources/public/css/old_main.css

@@ -1,736 +0,0 @@
-/*  HTML5 ✰ Boilerplate  */
-
-html, body, div, span, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp,
-small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, figcaption, figure,
-footer, header, hgroup, menu, nav, section, summary,
-time, mark, audio, video {
-  margin: 0;
-  padding: 0;
-  border: 0;
-  font-size: 100%;
-  font: inherit;
-  vertical-align: baseline;
-}
-
-article, aside, details, figcaption, figure,
-footer, header, hgroup, menu, nav, section {
-  display: block;
-}
-
-blockquote, q { quotes: none; }
-blockquote:before, blockquote:after,
-q:before, q:after { content: ''; content: none; }
-ins { background-color: #ff9; color: #000; text-decoration: none; }
-mark { background-color: #ff9; color: #000; font-style: italic; font-weight: bold; }
-del { text-decoration: line-through; }
-abbr[title], dfn[title] { border-bottom: 1px dotted; cursor: help; }
-table { border-collapse: collapse; border-spacing: 0; }
-hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
-input, select { vertical-align: middle; }
-
-body { font:13px/1.231 sans-serif; *font-size:small; }
-select, input, textarea, button { font:99% sans-serif; }
-pre, code, kbd, samp { font-family: monospace, sans-serif; }
-
-html { overflow-y: scroll; }
-a:hover, a:active { outline: none; }
-ul, ol { margin-left: 2em; }
-ol { list-style-type: decimal; }
-nav ul, nav li { margin: 0; list-style:none; list-style-image: none; }
-small { font-size: 85%; }
-strong, th { font-weight: bold; }
-td { vertical-align: top; }
-
-sub, sup { font-size: 75%; line-height: 0; position: relative; }
-sup { top: -0.5em; }
-sub { bottom: -0.25em; }
-
-pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; padding: 15px; }
-textarea { overflow: auto; }
-.ie6 legend, .ie7 legend { margin-left: -7px; }
-input[type="radio"] { vertical-align: text-bottom; }
-input[type="checkbox"] { vertical-align: bottom; }
-.ie7 input[type="checkbox"] { vertical-align: baseline; }
-.ie6 input { vertical-align: text-bottom; }
-label, input[type="button"], input[type="submit"], input[type="image"], button { cursor: pointer; }
-button, input, select, textarea { margin: 0; }
-.no-boxshadow input:invalid, .no-boxshadow textarea:invalid { background-color: #f0dddd; }
-
-::-moz-selection{ background: #ffba53; color:#000; text-shadow: none; }
-::selection { background:#ffba53; color:#000; text-shadow: none; }
-a:link { -webkit-tap-highlight-color: #ffba53; }
-
-button {  width: auto; overflow: visible; }
-.ie7 img { -ms-interpolation-mode: bicubic; }
-
-body, select, input, textarea {  color: #444; }
-h1, h2, h3, h4, h5, h6 { font-weight: bold; }
-
-/*
-    // ========================================== \\
-   ||                                              ||
-   ||               Your styles !                  ||
-   ||                                              ||
-    \\ ========================================== //
-*/
-
-html {
-  height: 100%;
-}
-
-body {
-  background: #555 url("../img/texture.png");
-  font-size: 15px;
-  font-family: Helvetica, Arial;
-  color: #555;
-  min-height: 100%;
-}
-
-a, a:visited, a:active {
-  color: #c67700;
-  text-decoration: none;
-}
-a:hover {
-  color: #975a00;
-}
-
-.container {
-  background: #e5e5e5 url("../img/texture.png");
-  padding-bottom: 20px;
-  border-bottom: 1px solid #fafafa;
-  min-height: 400px;
-}
-
-.container div.user, .container div.box, .container header, .container div.flash-message {
-  width: 900px;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-header h1 {
-  margin: 10px 0 0;
-  padding: 0;
-}
-header h1 a {
-  display: inline-block;
-  text-decoration: none;
-  margin: 0;
-  width: 0;
-  height: 0;
-  padding: 85px 0 0 435px;
-  background: url("../img/logo.png") 0 0 no-repeat;
-  overflow: hidden;
-}
-
-header h2 {
-  display: none;
-}
-
-header p {
-  clear: both;
-  margin: 0 -8px 10px;
-}
-.box {
-  width: 900px;
-  font-size: 15px;
-  padding: 7px;
-  background: #f5f5f5;
-  border: 1px solid #fff;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  box-shadow: rgba(0, 0, 0, 0.25) 0 1px 3px;
-  margin-bottom: 10px;
-}
-
-header {
-  margin: 0 10px;
-  font-size: 15px;
-}
-
-.main {
-  margin: 10px 0;
-  clear: left;
-}
-
-.main:after {
-  display: block;
-  content: '';
-  clear: both;
-}
-
-footer {
-  width: 900px;
-  margin: 0 auto;
-  padding: 10px 0 4px;
-}
-footer ul {
-  width: 20%;
-  list-style: none;
-  float: right;
-}
-footer li {
-  margin: 0;
-  padding: 2px;
-}
-footer a, footer a:visited {
-  color: #ddd;
-  padding-left: 11px;
-  background: url("../img/footer_arrows.png") 0 2px no-repeat;
-}
-footer a:hover {
-  color: #fff;
-  background-position: 0 -18px;
-}
-
-.flash-message {
-  font-size: 20px;
-  margin: 20px 0;
-}
-
-.flash-message.success {
-  color: #519f1c;
-}
-.flash-message.error {
-  color: #a21a1a;
-}
-
-p {
-  margin-bottom: 10px;
-  font-family: "Arial", sans-serif;
-  line-height: 150%;
-}
-div.box > p:last-child {
-  margin-bottom: 0;
-}
-
-.package p {
-  margin-bottom: 0;
-}
-
-.user {
-  text-align: right;
-  padding: 4px 8px 5px;
-  color: #fff;
-  background: #bf7300;
-  background: -moz-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
-  background: -webkit-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
-  background: -o-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
-  background: -ms-linear-gradient(top, #bf7300 0%, #cc8f33 100%);
-  background: linear-gradient(top, #bf7300 0%, #cc8f33 100%);
-  box-shadow: rgba(0, 0, 0, 0.25) 0 1px 3px;
-  -webkit-border-bottom-right-radius: 6px;
-  -webkit-border-bottom-left-radius: 6px;
-  -moz-border-radius-bottomright: 6px;
-  -moz-border-radius-bottomleft: 6px;
-  border-bottom-right-radius: 6px;
-  border-bottom-left-radius: 6px;
-}
-.user a, .user a:visited { color: #fff; }
-.user a:hover { text-decoration: underline; }
-
-.loginForm {
-  width: 406px;
-}
-
-.login-github {
-  border: 1px solid #ccc;
-  color: #000 !important;
-  background: #fff url(../img/github_icon.png) 6px 6px no-repeat;
-  padding: 3px 5px 3px 26px;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.loginForm .login-github {
-  float: right;
-}
-
-.submit, .submit:active, .submit:visited, input[type="submit"] {
-  font-size: 22px;
-  float: right;
-  background: #53a51d;
-  background: -moz-linear-gradient(top, #53a51d 0%, #75b74a 100%);
-  background: -webkit-linear-gradient(top, #53a51d 0%, #75b74a 100%);
-  background: -o-linear-gradient(top, #53a51d 0%, #75b74a 100%);
-  background: -ms-linear-gradient(top, #53a51d 0%, #75b74a 100%);
-  background: linear-gradient(top, #53a51d 0%, #75b74a 100%);
-  border-width: 0;
-  display: block;
-  padding: 12px 20px;
-  color: #fff;
-  margin: 13px 0 10px;
-  text-decoration: none;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  box-shadow: rgba(0, 0, 0, 0.25) 0 1px 3px;
-}
-
-.submit:hover {
-  color: #fff;
-  background: #53a51d;
-}
-
-.packages nav {
-  padding: 4px;
-}
-
-.packages nav span, .packages nav a {
-  margin-right: 5px;
-  display: inline-block;
-}
-
-.getting-started {
-  float: left;
-  width: 48%;
-  margin-right: 4%;
-}
-
-.publishing-packages {
-  float: right;
-  width: 48%;
-}
-
-
-.main h1 {
-  font-size: 25px;
-  margin-bottom: 10px;
-  color: #53a51d;
-  font-weight: normal;
-}
-
-.main h2 {
-  font-size: 20px;
-  margin-bottom: 10px;
-}
-
-ul.packages {
-  list-style-type: none;
-  margin: 0;
-  padding: 0;
-}
-
-ul.packages h1 {
-  font-family: Verdana;
-  font-size: 22px;
-  line-height: 1em;
-  font-weight: normal;
-  margin: 0;
-  padding: 8px 4px 0 0;
-  height: 32px;
-}
-
-ul.packages h1 .metadata {
-  float: right;
-  color: #555;
-  font-size: 18px;
-  margin-right: 10px;
-}
-
-ul.packages li {
-    background: none repeat scroll 0 0 #EEEEEE;
-    border: 1px solid #BBBBBB;
-    border-radius: 3px 3px 3px 3px;
-    margin: 10px 0;
-    padding: 0 0 0 10px;
-}
-
-ul.packages li.selected {
-  background: #F9F9EE;
-}
-
-label {
-  display: block;
-  margin: 0 0 5px;
-}
-
-input, textarea {
-  width: 400px;
-}
-
-textarea {
-  resize: vertical;
-}
-
-input[type="submit"] {
-  width: 406px;
-  float: none;
-  background: #64c523 url("../img/arrow.png") 370px center no-repeat;
-}
-input[type="submit"].loading {
-  background-image: url("../img/loader.gif");
-}
-
-input[type="text"], input[type="password"], input[type="email"], input[type="search"] {
-  padding: 4px;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  -moz-border-radius: 6px;
-  -webkit-border-radius: 6px;
-  border-radius: 6px;
-  box-shadow: none;
-}
-input[type="text"]:hover, input[type="password"]:hover, input[type="email"]:hover, input[type="search"]:hover,
-input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="search"]:focus {
-  border-color: #64c523;
-  outline-style: none;
-}
-input[type="text"]:invalid, input[type="password"]:invalid, input[type="email"]:invalid {
-  border-color: #c67700;
-  color: #bf7300;
-}
-input[type="search"] {
-  -moz-appearance:none;
-  -webkit-appearance:none;
-  font-size: 25px;
-}
-
-input[type="checkbox"] {
-  float: left;
-  clear: left;
-  width: auto;
-  margin: 3px 5px 0 0;
-}
-
-form ul {
-  color: #c00;
-  list-style: none;
-  margin: 10px 0;
-}
-
-/* Explore */
-.packages-short {
-  width: 50%;
-  float: left;
-  height: 415px;
-}
-.packages-short li a {
-  display: block;
-}
-.packages-short ul {
-  list-style: none;
-  margin: 0;
-}
-
-
-/* Search */
-#search_query_query {
-  width: 890px;
-}
-.no-js #search_query_query {
-  width: 780px;
-}
-#search-form .submit-wrapper {
-  width: 100px;
-  float: right;
-  display: none;
-}
-.no-js #search-form .submit-wrapper {
-  display: block;
-}
-#search-form .submit {
-  margin: 0;
-  padding: 6px 20px;
-  width: 100px;
-}
-#search-form p {
-  margin: 0;
-}
-.search-list {
-  margin-top: 10px;
-}
-
-/* Package */
-.package form h2 {
-  margin: 10px 0;
-}
-.package > h1 {
-  float: left;
-  margin-right: 20px;
-}
-#copy {
-  cursor: pointer;
-}
-.package .warning {
-  clear: both;
-  border: 1px solid #800;
-  background: #fee;
-  text-align: center;
-  padding: 5px;
-  margin: 20px 0;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.package .tags {
-  overflow: hidden;
-  white-space: nowrap;
-}
-.package .tags a {
-  background: #c67700;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  color: #fff;
-  display: inline-block;
-  padding: 1px 3px;
-  margin: 4px 5px 0 0;
-}
-.package .description {
-  clear: left;
-}
-.package .authors {
-  border-top: 1px solid #ccc;
-  margin-top: 10px;
-  padding-top: 10px;
-}
-.package .downloads {
-  clear: both;
-  float: right;
-  border: 1px solid #bbb;
-  background: #eee;
-  padding: 5px 10px;
-  margin: 0 0 10px;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.package .downloads span {
-  display: inline-block;
-  width: 90px;
-}
-.package .details span {
-  float: left;
-  display: block;
-  clear: left;
-  width: 90px;
-}
-.package .versions {
-  list-style: none;
-  clear: both;
-  margin: 0;
-}
-.package .version {
-  background: #eee;
-  padding: 5px 10px;
-  border: 1px solid #bbb;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  margin-bottom: 10px;
-}
-.package .version.last {
-  margin-bottom: 0;
-}
-.package .version h1 {
-  margin-bottom: 5px;
-  cursor: pointer;
-}
-.package .version .source-reference {
-  padding-left: 10px;
-  font-size: 12px;
-}
-.package .version .release-date {
-  padding-left: 10px;
-  font-size: 14px;
-  float: right;
-}
-.package .version .license {
-  float: right;
-  font-size: 14px;
-  clear: right;
-  text-align: right;
-  line-height: 12px;
-}
-.package .version .license.unknown {
-  color: #c00;
-}
-.package .version .details {
-  display: none;
-}
-.package .version .details.open {
-  display: block;
-}
-.package .package-links {
-  border-top: 1px solid #ccc;
-  margin-top: 10px;
-  padding-top: 10px;
-}
-.package .package-links div {
-  float: left;
-  width: 32%;
-  margin-bottom: 10px;
-}
-.package .version {
-  font-size: 11px;
-}
-.package .version h2 {
-  font-size: 14px;
-  margin-bottom: 2px;
-}
-.package .version .details ul {
-  margin-left: 2px;
-  list-style: disc inside none;
-}
-.package .requireme {
-  padding: 3px 0 3px 0;
-}
-.package .requireme input {
-  border: 0 !important;
-  border-radius: 0;
-  background-color: transparent;
-  font-family: Courier;
-  min-width: 500px;
-  width: auto;
-}
-.package .package-links .provides {
-  clear: left;
-}
-.package .package-links .requires,
-.package .package-links .devRequires,
-.package .package-links .provides,
-.package .package-links .conflicts {
-  margin-right: 5px;
-}
-.package .details-toggler {
-  height: 12px;
-  margin: 0 -5px;
-  padding: 0 4px;
-  width: 100%;
-  border: 1px solid #ccc;
-  -webkit-border-radius: 2px;
-  -moz-border-radius: 2px;
-  border-radius: 2px;
-  background: url(../img/expand.gif) center center no-repeat #ddd;
-}
-.package .details-toggler.open {
-  background-image: url(../img/contract.gif);
-}
-.package .details-toggler:hover {
-  background-color: #ccc;
-  cursor: pointer;
-}
-.package .description, .package .details {
-  margin-bottom: 10px;
-}
-
-.package .mark-favorite {
-  font-size: 20px;
-  cursor: pointer;
-  color: #c4b90c;
-}
-.package .mark-favorite.icon-star {
-  color: #eadc00;
-}
-
-.no-js .package .force-update, .no-js .package .mark-favorite {
-  display: none;
-}
-.package .action {
-  float: right;
-  margin-left: 10px;
-}
-.package .action input {
-  width: auto;
-  font-size: 16px;
-  margin: 0;
-  padding: 8px;
-  background-image: none;
-}
-.package .action.delete input, .package .action.delete-version input {
-  background: #a61c1c;
-  background: -moz-linear-gradient(top, #a61c1c 0%, #b84949 100%);
-  background: -webkit-linear-gradient(top, #a61c1c 0%, #b84949 100%);
-  background: -o-linear-gradient(top, #a61c1c 0%, #b84949 100%);
-  background: -ms-linear-gradient(top, #a61c1c 0%, #b84949 100%);
-  background: linear-gradient(top, #a61c1c 0%, #b84949 100%);
-}
-.package .action.delete-version {
-  float: none;
-  display: inline-block;
-  height: 20px;
-}
-.package .action.delete-version input {
-  font-size: 10px;
-  padding: 3px;
-}
-.package .action input.loading {
-  background-position: 10px center;
-  background-image: url("../img/loader.gif");
-  padding-left: 30px;
-}
-
-
-pre {
-  background: #fff;
-  border: 1px solid #ddd;
-  -moz-border-radius: 6px;
-  -webkit-border-radius: 6px;
-  border-radius: 6px;
-  display: block;
-  padding: 5px;
-  margin: 10px 0;
-}
-
-.humane {
-  max-height: 90%;
-  overflow: auto;
-}
-.humane pre {
-  text-align: left;
-  background-color: #111;
-  color: #fff;
-  text-shadow: none;
-}
-
-/*
-    // ========================================== \\
-   ||                                              ||
-   ||                    Finito !                  ||
-   ||                                              ||
-    \\ ========================================== //
-*/
-
-.ir { display: block; text-indent: -999em; overflow: hidden; background-repeat: no-repeat; text-align: left; direction: ltr; }
-.hidden { display: none; visibility: hidden; }
-.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
-.visuallyhidden.focusable:active,
-.visuallyhidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; width: auto; }
-.invisible { visibility: hidden; }
-.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
-.clearfix:after { clear: both; }
-.clearfix { zoom: 1; }
-
-@media all and (orientation:portrait) {
-
-}
-
-@media all and (orientation:landscape) {
-
-}
-
-@media screen and (max-device-width: 480px) {
-
-  /* html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
-}
-
-@media print {
-  * { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
-  -ms-filter: none !important; }
-  a, a:visited { color: #444 !important; text-decoration: underline; }
-  a[href]:after { content: " (" attr(href) ")"; }
-  abbr[title]:after { content: " (" attr(title) ")"; }
-  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; }
-  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
-  thead { display: table-header-group; }
-  tr, img { page-break-inside: avoid; }
-  @page { margin: 0.5cm; }
-  p, h2, h3 { orphans: 3; widows: 3; }
-  h2, h3{ page-break-after: avoid; }
-}

二進制
src/Packagist/WebBundle/Resources/public/img/arrow.png


二進制
src/Packagist/WebBundle/Resources/public/img/contract.gif


二進制
src/Packagist/WebBundle/Resources/public/img/expand.gif


二進制
src/Packagist/WebBundle/Resources/public/img/footer_arrows.png


二進制
src/Packagist/WebBundle/Resources/public/img/github_icon.png


二進制
src/Packagist/WebBundle/Resources/public/img/package_bg.png


二進制
src/Packagist/WebBundle/Resources/public/img/package_corners.png


二進制
src/Packagist/WebBundle/Resources/public/img/texture.png


+ 18 - 2
src/Packagist/WebBundle/Resources/public/js/charts.js

@@ -6,6 +6,10 @@
         'rgba(255,153,0,1)'
     ];
 
+    Chart.defaults.global.responsive = true;
+    Chart.defaults.global.animationSteps = 10;
+    Chart.defaults.global.tooltipYPadding = 10;
+
     $('canvas[data-labels]').each(function () {
         var element = $(this);
         var labels = element.attr('data-labels').split(',');
@@ -15,8 +19,20 @@
             labels: labels,
             datasets: []
         };
+        var scale = parseInt(element.attr('data-scale'), 10);
+        var scaleUnit = '';
+        switch (scale) {
+            case 1000:
+                scaleUnit = 'K';
+                break;
+            case 1000000:
+                scaleUnit = 'mio';
+                break;
+        }
+
         var opts = {
-            bezierCurve: false
+            bezierCurve: false,
+            scaleLabel: " <%=value%>" + scaleUnit
         };
 
         for (var i = 0; i < values.length; i++) {
@@ -28,7 +44,7 @@
                     pointStrokeColor: "#fff",
                     data: values[i].split(',')
                         .map(function (value) {
-                            return parseInt(value, 10);
+                            return Math.round(parseInt(value, 10) / scale, 2);
                         })
                 }
             );

+ 4 - 2
src/Packagist/WebBundle/Resources/public/js/search.js

@@ -16,11 +16,12 @@
         var newList = $(page);
 
         list.html(newList.html());
-        list.removeClass('hidden');
+        list.parent().removeClass('hidden');
         list.find('ul.packages li:first').addClass('selected');
         $('.order-by-group').attr('href', function (index, current) {
             return current.replace(/q=.*?&/, 'q=' + encodeURIComponent($('input[type="search"]', form).val()) + '&')
         });
+        $('#order-bys-wrapper').removeClass('hidden');
 
         searching = false;
 
@@ -49,7 +50,8 @@
 
         if ($('#search_query_query').val().match(/^\s*$/) !== null) {
             if (!firstQuery) {
-                list.addClass('hidden');
+                list.parent().addClass('hidden');
+                $('#order-bys-wrapper').addClass('hidden');
             }
             return;
         }

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

@@ -2,8 +2,6 @@
 
 {% import "PackagistWebBundle::macros.html.twig" as macros %}
 
-{% set showSearchDesc = showSearchDesc is defined ? showSearchDesc : 'hide' %}
-
 {% block content %}
     {% block content_title %}<h3 class="title">Packages</h3>{% endblock %}
 
@@ -14,4 +12,4 @@
             <p>No packages found.</p>
         {% endif %}
     {% endblock %}
-{% endblock %}
+{% endblock %}

+ 2 - 5
src/Packagist/WebBundle/Resources/views/Web/search.html.twig

@@ -1,14 +1,11 @@
 {% set showSearchDesc = packages is empty ? 'show' : 'hide' %}
 
 {% embed "PackagistWebBundle:Web:list.html.twig" %}
-    {% block content_title %}
-        <h3 class="title">Packages</h3>
+    {% block search_results %}
     {% endblock %}
 
     {% block content %}
-        {{ render(controller('PackagistWebBundle:Web:searchForm', { req: app.request })) }}
-
-        <div class="search-list">
+        <div class="search-results">
             {{ block('list') }}
         </div>
     {% endblock %}

+ 5 - 5
src/Packagist/WebBundle/Resources/views/Web/searchForm.html.twig

@@ -5,19 +5,19 @@
 
         {% set hasActiveOrderBy = false %}
         {% spaceless %}
-        <div id="order-bys-wrapper">
+        <div id="order-bys-wrapper"{% if searchForm.vars.value.query is empty %} class="hidden"{% endif %}>
             {% for sort, param in orderBys %}
                 <a title="{{ param.title }}" href="{{ param.href }}" class="order-by-group">
-                    <i class="icon {{ param.class }}{% if param.arrowClass is empty %} inactive{% endif %}"></i>
+                    <i class="glyphicon {{ param.class }}{% if param.arrowClass is not empty %} active{% endif %}"></i>
                     {% if param.arrowClass is not empty %}
-                        <i class="icon {{ param.arrowClass }}"></i>
+                        <i class="glyphicon {{ param.arrowClass }} active"></i>
                         {% set hasActiveOrderBy = true %}
                     {% endif %}
                 </a>
             {% endfor %}
             {% if hasActiveOrderBy %}
-                <a title="Clear order bys" href="?q={{ searchForm.vars.value.query }}" class="clear">
-                    <i class="icon icon-remove-circle"></i>
+                <a title="Clear order bys" href="?q={{ searchForm.vars.value.query }} active" class="clear">
+                    <i class="glyphicon glyphicon-remove-circle"></i>
                 </a>
             {% endif %}
         </div>

+ 24 - 34
src/Packagist/WebBundle/Resources/views/Web/stats.html.twig

@@ -8,31 +8,24 @@
     <h2 class="title">Statistics</h2>
 
     <section class="row">
-        <div class="col-lg-9">
+        <div class="col-lg-12">
             <h2>Packages/versions over time</h2>
 
-            <p><img src="http://chart.apis.google.com/chart?chxr=0,0,{{ versions }}&amp;chxl=1:|{{ chart.months|join('|') }}&amp;chxt=y,x&amp;chs=850x250&amp;chds=0,{{ versions }},0,{{ versions }}&amp;cht=lc&amp;chco=0000FF,FF9900&amp;chd=t:{{ chart.versions|join(',') }}|{{ chart.packages|join(',') }}&amp;chdl=Versions|Packages&amp;chls=2|2" /></p>
-            <p>
-                <canvas width="900" height="250" data-labels="{{ chart.months|join(',') }}" data-values="{{ chart.versions|join(',') }}|{{ chart.packages|join(',') }}">
+            <p class="row">
+                <canvas class="col-xs-12" width="500" height="200" data-labels="{{ chart.months|join(',') }}" data-scale="1000" data-values="{{ chart.versions|join(',') }}|{{ chart.packages|join(',') }}">
                     Sorry, the graph can't be displayed because your browser doesn't support &lt;canvas&gt; html element.
                 </canvas>
             </p>
+            <ul class="legend">
+                <li class="legend-first"><span>&#9632;</span> Versions</li>
+                <li class="legend-second"><span>&#9632;</span> Packages</li>
+            </ul>
             <p>The last data point is for the current month and shows partial data.</p>
 
-            {% if downloadsChart %}
-                <h2>Packages installed per day</h2>
-                <p><img src="http://chart.apis.google.com/chart?chxr=0,0,{{ maxDailyDownloads }}&amp;chxl=1:|{{ downloadsChart.labels|join('|') }}&amp;chxt=y,x&amp;chs=850x250&amp;chds=0,{{ maxDailyDownloads }},0,{{ maxDailyDownloads }}&amp;cht=lc&amp;chco=0000FF,FF9900&amp;chd=t:{{ downloadsChart.values|join(',') }}&amp;chdl=Installs&amp;chls=2|2" /></p>
-            {% endif %}
-            {% if downloadsChartMonthly %}
-                <h2>Packages installed per month</h2>
-                <p><img src="http://chart.apis.google.com/chart?chxr=0,0,{{ maxMonthlyDownloads }}&amp;chxl=1:|{{ downloadsChartMonthly.labels|join('|') }}&amp;chxt=y,x&amp;chs=850x250&amp;chds=0,{{ maxMonthlyDownloads }},0,{{ maxMonthlyDownloads }}&amp;cht=lc&amp;chco=0000FF,FF9900&amp;chd=t:{{ downloadsChartMonthly.values|join(',') }}&amp;chdl=Installs&amp;chls=2|2" /></p>
-                <p>The last data point is for the current month and shows partial data.</p>
-            {% endif %}
-
             {% if downloadsChart %}
                 <h2>Packages installed in the last 30 days</h2>
-                <p>
-                    <canvas width="900" height="250" data-labels="{{ downloadsChart.labels|join(',') }}" data-values="{{ downloadsChart.values|join(',') }}">
+                <p class="row">
+                    <canvas class="col-xs-12" width="500" height="200" data-labels="{{ downloadsChart.labels|join(',') }}" data-scale="1000" data-values="{{ downloadsChart.values|join(',') }}">
                         Sorry, the graph can't be displayed because your browser doesn't support &lt;canvas&gt; html element.
                     </canvas>
                 </p>
@@ -42,8 +35,8 @@
             {% endif %}
             {% if downloadsChartMonthly %}
                 <h2>Packages installed per month</h2>
-                <p>
-                    <canvas width="900" height="250" data-labels="{{ downloadsChartMonthly.labels|join(',') }}" data-values="{{ downloadsChartMonthly.values|join(',') }}">
+                <p class="row">
+                    <canvas class="col-xs-12" width="500" height="200" data-labels="{{ downloadsChartMonthly.labels|join(',') }}" data-scale="1000000" data-values="{{ downloadsChartMonthly.values|join(',') }}">
                         Sorry, the graph can't be displayed because your browser doesn't support &lt;canvas&gt; html element.
                     </canvas>
                 </p>
@@ -53,25 +46,22 @@
                 <p>The last data point is for the current month and shows partial data.</p>
             {% endif %}
 
-            <div class="col-lg-3">
-                <h2>Totals</h2>
+            <h2>Totals</h2>
+            <dl class="dl-horizontal">
+                <dt class="font-bold">Packages registered</dt>
+                <dd class="font-slim">{{ packages|number_format(0, '.', " ") }}</dd>
 
-                <dl class="dl-horizontal">
-                    <dt class="font-bold">Packages registered</dt>
-                    <dd class="font-slim">{{ packages|number_format(0, '.', " ") }}</dd>
+                <dt class="font-bold">Versions available</dt>
+                <dd class="font-slim">{{ versions|number_format(0, '.', " ") }}</dd>
 
-                    <dt class="font-bold">Versions available</dt>
-                    <dd class="font-slim">{{ versions|number_format(0, '.', " ") }}</dd>
-
-                    <dt class="font-bold">Packages installed<br><small>(since {{ downloadsStartDate }})</small></dt>
-                    <dd class="font-slim">{{ downloads == 'N/A' ? downloads : downloads|number_format(0, '.', " ") }}</dd>
-                </dl>
-            </div>
+                <dt class="font-bold">Packages installed<br><small>(since {{ downloadsStartDate }})</small></dt>
+                <dd class="font-slim">{{ downloads == 'N/A' ? downloads : downloads|number_format(0, '.', " ") }}</dd>
+            </dl>
         </div>
     </section>
 {% endblock %}
 
-{#{% block scripts %}#}
-    {#<script src="{{ asset('js/libs/Chart.js/Chart.min.js') }}"></script>#}
-    {#<script src="{{ asset('bundles/packagistweb/js/charts.js') }}"></script>#}
-{#{% endblock %}#}
+{% block scripts %}
+    <script src="{{ asset('js/libs/Chart.js/Chart.min.js') }}"></script>
+    <script src="{{ asset('bundles/packagistweb/js/charts.js') }}"></script>
+{% endblock %}

+ 34 - 46
src/Packagist/WebBundle/Resources/views/layout.html.twig

@@ -12,13 +12,10 @@
         <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
         <link rel="apple-touch-icon" href="{{ asset('apple-touch-icon.png') }}" />
 
-        <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" type="text/css" />
-        <link rel="stylesheet" href="{{ asset('bundles/packagistweb/css/main.css?v=15') }}" />
-        <link rel="stylesheet" href="{{ asset('css/humane/jackedup.css?v=3') }}" />
-        <link rel="stylesheet" href="{{ asset('css/fontawesome/font-awesome.css') }}" />
-        <!--[if lt IE 8]>
-        <link rel="stylesheet" href="{{ asset('css/fontawesome/font-awesome-ie7.css') }}" />
-        <![endif]-->
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" type="text/css" />
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
+        <link rel="stylesheet" href="{{ asset('bundles/packagistweb/css/main.css?v=16') }}" />
+        <link rel="stylesheet" href="{{ asset('css/humane/jackedup.css?v=4') }}" />
 
         {% block head_feeds %}
         <link rel="alternate" type="application/rss+xml" title="Newly Submitted Packages - Packagist" href="{{ url('feed_packages', {_format: 'rss'}) }}" />
@@ -137,57 +134,48 @@
 
         <section class="wrapper">
             <section class="container content" role="main">
-                {% block content %}{% endblock %}
+                {% block search_results %}
+                    <div class="row hidden">
+                        <div class="search-list col-md-12"></div>
+                    </div>
+                {% endblock %}
 
-                <div class="row hidden">
-                    <div class="search-list col-md-12"></div>
-                </div>
+                {% block content %}{% endblock %}
             </section>
         </section>
     </section>
 
         <footer class="wrapper-footer">
             <nav class="container">
-                <ul class="social col-xs-3 col-md-2 pull-right">
-                    <li><a href="http://github.com/composer/packagist" title="{{ 'menu.github'|trans }}"><span class="icon-github"></span></a></li>
-                    <li><a href="https://twitter.com/packagist" title="{{ 'menu.twitter'|trans }}"><span class="icon-twitter"></span></a></li>
-                    <li><a href="mailto:contact@packagist.org" title="{{ 'menu.contact'|trans }}"><span class="icon-mail"></span></a></li>
-                </ul>
-
-                <ul class="col-xs-3 col-md-2">
-                    <li><a href="{{ path('about') }}">{{ 'menu.about_packagist'|trans }}</a></li>
-                    <li><a href="{{ path('feeds') }}">{{ 'menu.rss_feeds'|trans }}</a></li>
-                    <li><a href="{{ path('home') }}">{{ 'menu.home'|trans }}</a></li>
-                </ul>
-
-                <ul class="col-xs-3 col-md-2">
-                {%- if app.user %}
-                    <li><a href="{{ path('fos_user_profile_show') }}">{{ 'menu.profile'|trans }}</a></li>
-                    <li><a href="{{ path('logout') }}">{{ 'menu.logout'|trans }}</a></li>
-                {%- else %}
-                    <li><a href="{{ path('fos_user_registration_register') }}">{{ 'menu.register'|trans }}</a></li>
-                    <li><a href="{{ path('hwi_oauth_connect') }}">{{ 'menu.login'|trans }}</a></li>
-                {%- endif %}
-                </ul>
-
-                <ul class="col-xs-3 col-md-2">
-                    <li><a href="{{ path('browse') }}">{{ 'menu.browse_packages'|trans }}</a></li>
-                    <li><a href="{{ path('stats') }}">{{ 'menu.stats'|trans }}</a></li>
-                </ul>
-                <!--<ul>
-                    <li><a href="https://twitter.com/packagist">{{ 'menu.twitter'|trans }}</a></li>
-                    <li><a href="mailto:contact@packagist.org">{{ 'menu.contact'|trans }}</a></li>
-                </ul>
-                <p>Packagist maintenance and hosting is supported by <a href="https://toranproxy.com/">Toran Proxy</a></p>-->
+                <div class="row">
+                    <ul class="social col-xs-3 col-md-2 pull-right">
+                        <li><a href="http://github.com/composer/packagist" title="{{ 'menu.github'|trans }}"><span class="icon-github"></span></a></li>
+                        <li><a href="https://twitter.com/packagist" title="{{ 'menu.twitter'|trans }}"><span class="icon-twitter"></span></a></li>
+                        <li><a href="mailto:contact@packagist.org" title="{{ 'menu.contact'|trans }}"><span class="icon-mail"></span></a></li>
+                    </ul>
+
+                    <ul class="col-xs-3 col-md-2">
+                        <li><a href="{{ path('about') }}">{{ 'menu.about_packagist'|trans }}</a></li>
+                        <li><a href="{{ path('feeds') }}">{{ 'menu.rss_feeds'|trans }}</a></li>
+                    </ul>
+
+                    <ul class="col-xs-3 col-md-2">
+                        <li><a href="{{ path('stats') }}">{{ 'menu.stats'|trans }}</a></li>
+                        <li><a href="{{ path('browse') }}">{{ 'menu.browse_packages'|trans }}</a></li>
+                    </ul>
+                </div>
+
+                <div class="row">
+                    <p class="toran col-xs-8 pull-right text-right">Packagist maintenance and hosting is supported by <a href="https://toranproxy.com/">Toran Proxy</a></p>
+                </div>
             </nav>
         </footer>
 
-        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
-        <script>!window.jQuery && document.write(unescape('%3Cscript src="{{ asset('js/libs/jquery-1.8.2.min.js') }}"%3E%3C/script%3E'))</script>
+        <script src="//code.jquery.com/jquery-2.1.0.min.js"></script>
         <script src="{{ asset('js/libs/humane.min.js?v=2') }}"></script>
         <script src="{{ asset('js/libs/ZeroClipboard.min.js') }}"></script>
-        <script src="{{ asset('bundles/packagistweb/js/layout.js?v=2') }}"></script>
-        <script src="{{ asset('bundles/packagistweb/js/search.js?v=6')}}"></script>
+        <script src="{{ asset('bundles/packagistweb/js/layout.js?v=3') }}"></script>
+        <script src="{{ asset('bundles/packagistweb/js/search.js?v=7')}}"></script>
         <script src="//getbootstrap.com/dist/js/bootstrap.js"></script>
 
         {%- if not app.debug and google_analytics.ga_key %}

+ 3 - 3
src/Packagist/WebBundle/Resources/views/macros.html.twig

@@ -10,8 +10,8 @@
                 <h4 class="font-bold">
                     {% if meta %}
                         <span class="metadata pull-right">
-                            <span class="icon-box"></span> {{ meta.downloads[package.id]|default(0)|number_format(0, '.', ' ') }}
-                            <span class="glyphicon glyphicon-star"></span> {{ meta.favers[package.id]|number_format(0, '.', ' ') }}
+                            <i class="icon-box"></i> {{ meta.downloads[package.id]|default(0)|number_format(0, '.', ' ') }}
+                            <i class="glyphicon glyphicon-star"></i> {{ meta.favers[package.id]|number_format(0, '.', ' ') }}
                         </span>
                     {% endif %}
                     <a href="{{ packageUrl }}">{{ package.name }}</a>
@@ -24,7 +24,7 @@
                 </h4>
                 {% if package.abandoned is defined and package.abandoned %}
                     <span class="abandoned">
-                        <i class="icon-warning-sign"></i> Abandoned! {% if package.replacementPackage %}Use: <a href="{{ path('view_package', {name: package.replacementPackage}) }}">{{ package.replacementPackage }}</a>{% endif %}
+                        <i class="glyphicon glyphicon-warning-sign"></i> Abandoned! {% if package.replacementPackage %}Use: <a href="{{ path('view_package', {name: package.replacementPackage}) }}">{{ package.replacementPackage }}</a>{% endif %}
                     </span>
                 {% endif %}
                 {% if package.description is defined and package.description %}

二進制
web/font/fontawesome-webfont.eot


文件差異過大導致無法顯示
+ 0 - 163
web/font/fontawesome-webfont.svg


二進制
web/font/fontawesome-webfont.ttf


二進制
web/font/fontawesome-webfont.woff


文件差異過大導致無法顯示
+ 9 - 39
web/js/libs/Chart.js/Chart.min.js


文件差異過大導致無法顯示
+ 0 - 1
web/js/libs/jquery-1.8.2.min.js


部分文件因文件數量過多而無法顯示