Преглед на файлове

New favicons, logo, fixed a bunch of form templates

Jordi Boggiano преди 9 години
родител
ревизия
e29def155e
променени са 28 файла, в които са добавени 221 реда и са изтрити 116 реда
  1. 6 3
      app/Resources/FOSUserBundle/views/ChangePassword/changePassword_content.html.twig
  2. 9 5
      app/Resources/FOSUserBundle/views/Profile/edit_content.html.twig
  3. 0 1
      app/Resources/FOSUserBundle/views/Registration/register.html.twig
  4. 19 15
      app/Resources/FOSUserBundle/views/Registration/register_content.html.twig
  5. 23 0
      app/Resources/HWIOAuthBundle/views/Connect/connect_confirm.html.twig
  6. 9 0
      app/Resources/HWIOAuthBundle/views/Connect/connect_success.html.twig
  7. 42 41
      app/Resources/HWIOAuthBundle/views/Connect/login.html.twig
  8. 21 0
      app/Resources/HWIOAuthBundle/views/Connect/registration.html.twig
  9. 9 0
      app/Resources/HWIOAuthBundle/views/Connect/registration_success.html.twig
  10. 48 12
      src/Packagist/WebBundle/Resources/public/css/main.css
  11. BIN
      src/Packagist/WebBundle/Resources/public/img/favorite.png
  12. BIN
      src/Packagist/WebBundle/Resources/public/img/logo-small.png
  13. BIN
      src/Packagist/WebBundle/Resources/public/img/logo.png
  14. 17 14
      src/Packagist/WebBundle/Resources/views/About/about.html.twig
  15. 0 2
      src/Packagist/WebBundle/Resources/views/Package/abandon.html.twig
  16. 0 2
      src/Packagist/WebBundle/Resources/views/Package/edit.html.twig
  17. 0 2
      src/Packagist/WebBundle/Resources/views/Web/explore.html.twig
  18. 2 2
      src/Packagist/WebBundle/Resources/views/Web/popular.html.twig
  19. 0 2
      src/Packagist/WebBundle/Resources/views/Web/search.html.twig
  20. 3 2
      src/Packagist/WebBundle/Resources/views/Web/searchSection.html.twig
  21. 2 6
      src/Packagist/WebBundle/Resources/views/Web/submitPackage.html.twig
  22. 4 1
      src/Packagist/WebBundle/Resources/views/Web/versionDetails.html.twig
  23. 1 1
      src/Packagist/WebBundle/Resources/views/Web/viewPackage.html.twig
  24. 6 5
      src/Packagist/WebBundle/Resources/views/layout.html.twig
  25. BIN
      web/apple-touch-icon-precomposed.png
  26. BIN
      web/apple-touch-icon.png
  27. BIN
      web/favicon.ico
  28. BIN
      web/touch-icon-192x192.png

+ 6 - 3
app/Resources/FOSUserBundle/views/ChangePassword/changePassword_content.html.twig

@@ -1,25 +1,28 @@
 <form action="{{ path('fos_user_change_password') }}" {{ form_enctype(form) }} method="POST" class="fos_user_change_password col-md-6">
     {{ form_errors(form) }}
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         {{ form_label(form.current_password, 'Current password') }}
         <div class="input-group">
+            {{ form_errors(form.current_password) }}
             {{ form_widget(form.current_password) }}
             <span class="input-group-addon"><span class="icon-key"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         {{ form_label(form.new.first, 'New password') }}
         <div class="input-group">
+            {{ form_errors(form.new.first) }}
             {{ form_widget(form.new.first) }}
             <span class="input-group-addon"><span class="icon-lock"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         {{ form_label(form.new.second, 'Confirm new password') }}
         <div class="input-group">
+            {{ form_errors(form.new.second) }}
             {{ form_widget(form.new.second) }}
             <span class="input-group-addon"><span class="icon-lock-open"></span></span>
         </div>

+ 9 - 5
app/Resources/FOSUserBundle/views/Profile/edit_content.html.twig

@@ -1,38 +1,42 @@
 <form action="{{ path('fos_user_profile_edit') }}" {{ form_enctype(form) }} method="POST" class="fos_user_profile_edit col-md-6">
     {{ form_errors(form) }}
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         {{ form_label(form.username) }}
         <div class="input-group">
+            {{ form_errors(form.username) }}
             {{ form_widget(form.username) }}
             <span class="input-group-addon"><span class="icon-user"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         {{ form_label(form.email) }}
         <div class="input-group clearfix">
+            {{ form_errors(form.email) }}
             {{ form_widget(form.email) }}
             <span class="input-group-addon"><span class="icon-mail"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         {{ form_label(form.current_password) }}
         <div class="input-group">
+            {{ form_errors(form.current_password) }}
             {{ form_widget(form.current_password) }}
             <span class="input-group-addon"><span class="icon-lock"></span></span>
         </div>
     </div>
 
     <div class="notifications form-group">
+        {{ form_errors(form.failureNotifications) }}
         <label>
             {{ form_widget(form.failureNotifications) }}
             Notify me of package update failures
         </label>
     </div>
 
-    {{ form_widget(form) }}
+    {{ form_rest(form) }}
 
     <input type="submit" class="btn btn-block btn-success btn-lg" value="{{ 'profile.edit.submit'|trans({}, 'FOSUserBundle') }}" />
 
@@ -40,7 +44,7 @@
 
     <h5>Using GitHub:</h5>
 
-    <a href="{{ app.user.githubId ? '#' : hwi_oauth_login_url('github') }}" class="btn btn-block btn-github btn-lg {{ app.user.githubId ? 'disabled' : '' }}">
+    <a href="{{ app.user.githubId ? '#' : hwi_oauth_login_url('github') }}" class="btn btn-block btn-github btn-lg {{ app.user.githubId ? 'disabled' : 'btn-primary' }}">
         <span class="icon-github"></span>
         {{ app.user.githubId ? 'Accounts connected' : 'Connect accounts' }}
     </a>

+ 0 - 1
app/Resources/FOSUserBundle/views/Registration/register.html.twig

@@ -1 +0,0 @@
-{% include "HWIOAuthBundle:Connect:login.html.twig" %}

+ 19 - 15
app/Resources/FOSUserBundle/views/Registration/register_content.html.twig

@@ -1,10 +1,12 @@
 {% trans_default_domain 'FOSUserBundle' %}
 
-<form action="{{ path('fos_user_registration_register') }}" method="POST" class="fos_user_registration_register col-md-6">
+<div class="col-md-12">
     <h2 class="title">
         Create account
     </h2>
+</div>
 
+<form action="{{ path('fos_user_registration_register') }}" method="POST" class="fos_user_registration_register col-md-6">
     {% if form is defined %}
         {{ form_errors(form) }}
     {% endif %}
@@ -12,38 +14,40 @@
     <div class="form-group clearfix">
         <label for="fos_user_registration_email">Email:</label>
         <div class="input-group clearfix">
-            <input class="form-control" type="text" id="fos_user_registration_email" name="fos_user_registration_email">
+            {{ form_errors(form.email) }}
+            {{ form_widget(form.email) }}
             <span class="input-group-addon"><span class="icon-mail"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         <label for="fos_user_registration_username">Username:</label>
-        <div class="input-group">
-            <input class="form-control" type="text" id="fos_user_registration_username" name="fos_user_registration_username">
+        <div class="input-group clearfix">
+            {{ form_errors(form.username) }}
+            {{ form_widget(form.username) }}
             <span class="input-group-addon"><span class="icon-user"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         <label for="fos_user_registration_plainPassword_first">Password:</label>
-        <div class="input-group">
-            <input class="form-control" type="password" id="fos_user_registration_plainPassword_first" name="fos_user_registration_plainPassword[first]">
+        <div class="input-group clearfix">
+            {{ form_errors(form.plainPassword.first) }}
+            {{ form_widget(form.plainPassword.first) }}
             <span class="input-group-addon"><span class="icon-lock"></span></span>
         </div>
     </div>
 
-    <div class="form-group">
+    <div class="form-group clearfix">
         <label for="fos_user_registration_plainPassword_second">Repeat Password:</label>
-        <div class="input-group">
-            <input class="form-control" type="password" id="fos_user_registration_plainPassword_second" name="fos_user_registration_plainPassword[second]">
-            <span class="input-group-addon"><span class="icon-lock-open"></span></span>
+        <div class="input-group clearfix">
+            {{ form_errors(form.plainPassword.second) }}
+            {{ form_widget(form.plainPassword.second) }}
+            <span class="input-group-addon"><span class="icon-lock"></span></span>
         </div>
     </div>
 
-    <div class="clearfix"></div>
-
-    <hr>
+    {{ form_widget(form._token) }}
 
     <input type="submit" class="btn btn-block btn-success btn-lg" value="{{ 'registration.submit'|trans }}" />
 </form>

+ 23 - 0
app/Resources/HWIOAuthBundle/views/Connect/connect_confirm.html.twig

@@ -0,0 +1,23 @@
+{% extends 'HWIOAuthBundle::layout.html.twig' %}
+
+{% block hwi_oauth_content %}
+    <div class="col-xs-12">
+        <h2 class="title">{{ 'header.connecting' | trans({}, 'HWIOAuthBundle')}}</h2>
+    </div>
+
+    <div class="col-md-6">
+        <p>{{ 'connect.confirm.text' | trans({'%service%': service | trans({}, 'HWIOAuthBundle'), '%name%': userInformation.realName}, 'HWIOAuthBundle') }}</p>
+        <form action="{{ path('hwi_oauth_connect_service', {'service': service, 'key': key}) }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
+            {{ form_widget(form) }}
+            <div>
+                <button type="submit" class="btn btn-primary">{{ 'connect.confirm.submit' | trans({}, 'HWIOAuthBundle') }}</button>
+                <a href="{{ path('hwi_oauth_connect') }}" class="btn btn-warning">{{ 'connect.confirm.cancel' | trans({}, 'HWIOAuthBundle') }}</a>
+            </div>
+        </form>
+    </div>
+    <div class="col-md-6">
+        {% if userInformation.profilePicture is defined and userInformation.profilePicture is not empty %}
+            <img src="{{ userInformation.profilePicture }}" />
+        {% endif %}
+    </div>
+{% endblock hwi_oauth_content %}

+ 9 - 0
app/Resources/HWIOAuthBundle/views/Connect/connect_success.html.twig

@@ -0,0 +1,9 @@
+{% extends 'HWIOAuthBundle::layout.html.twig' %}
+
+{% block hwi_oauth_content %}
+    <div class="col-xs-12">
+        <h2 class="title">GitHub Login</h2>
+        <p>{{ 'header.success' | trans({'%name%': userInformation.realName}, 'HWIOAuthBundle') }}</p>
+        <p>Continue to <a href="{{ path('fos_user_profile_show') }}">your profile</a>.</p>
+    </div>
+{% endblock hwi_oauth_content %}

+ 42 - 41
app/Resources/HWIOAuthBundle/views/Connect/login.html.twig

@@ -8,60 +8,61 @@
 {% block fos_user_content %}
     {# HWIOAuthBundle uses the same template for the login and the connect functionality currently
        so we need to check if the user is already authenticated. #}
-    <div class="col-md-6">
-        <h2 class="title">
-            Sign in
-        </h2>
 
         {% if not app.user %}
-            {% if error is defined and error is not empty %}
-                <div class="alert alert-warning">
-                    {{ error }}
-                </div>
-            {% endif %}
-
-            <form action="{{ path('login_check') }}" method="POST">
-                <div class="form-group">
-                    <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>
-                    <div class="input-group">
-                        <input class="form-control" type="text" id="username" name="_username">
-                        <span class="input-group-addon"><span class="icon-user"></span></span>
+            <div class="col-xs-12">
+                <h2 class="title">
+                    Sign in
+                </h2>
+            </div>
+            <div class="col-md-6">
+                {% if error is defined and error is not empty %}
+                    <div class="alert alert-warning">
+                        {{ error }}
                     </div>
-                </div>
+                {% endif %}
 
-                <div class="form-group">
-                    <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>
-                    <div class="input-group">
-                        <input class="form-control" type="text" id="password" name="_password">
-                        <span class="input-group-addon"><span class="icon-lock"></span></span>
+                <form action="{{ path('login_check') }}" method="POST">
+                    <div class="form-group clearfix">
+                        <label for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>
+                        <div class="input-group clearfix">
+                            <input class="form-control" type="text" id="username" name="_username">
+                            <span class="input-group-addon"><span class="icon-user"></span></span>
+                        </div>
                     </div>
-                </div>
 
-                <div class="checkbox">
-                    <a class="pull-right" href="{{ path('fos_user_resetting_request') }}">Forgot password?</a>
+                    <div class="form-group clearfix">
+                        <label for="password">{{ 'security.login.password'|trans({}, 'FOSUserBundle') }}</label>
+                        <div class="input-group clearfix">
+                            <input class="form-control" type="text" id="password" name="_password">
+                            <span class="input-group-addon"><span class="icon-lock"></span></span>
+                        </div>
+                    </div>
 
-                    <label for="remember_me">
-                        <input type="checkbox" id="remember_me" name="_remember_me" value="on" checked="checked" />
-                        {{- 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}
-                    </label>
-                </div>
+                    <div class="checkbox">
+                        <a class="pull-right" href="{{ path('fos_user_resetting_request') }}">Forgot password?</a>
 
-                <hr>
+                        <label for="remember_me">
+                            <input type="checkbox" id="remember_me" name="_remember_me" value="on" checked="checked" />
+                            {{- 'security.login.remember_me'|trans({}, 'FOSUserBundle') }}
+                        </label>
+                    </div>
 
-                {% if packagist_host and packagist_host in app.request.headers.get('Referer') %}
-                    <input type="hidden" name="_target_path" value="{{ app.request.headers.get('Referer') }}" />
-                {% endif %}
+                    {% if packagist_host and packagist_host in app.request.headers.get('Referer') %}
+                        <input type="hidden" name="_target_path" value="{{ app.request.headers.get('Referer') }}" />
+                    {% endif %}
 
-                <input class="btn btn-block btn-success btn-lg" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
-            </form>
+                    <input class="btn btn-block btn-success btn-lg" type="submit" id="_submit" name="_submit" value="{{ 'security.login.submit'|trans({}, 'FOSUserBundle') }}" />
+                </form>
 
-            <hr>
+                <hr>
+            </div>
         {% endif %}
 
         {% for owner in hwi_oauth_resource_owners() %}
-            <a class="btn btn-block btn-{{ owner }} btn-primary btn-lg" href="{{ hwi_oauth_login_url(owner) }}"><span class="icon-{{ owner }}"></span>Login with {{ owner | trans({}, 'HWIOAuthBundle') }}</a>{% if not loop.last %}<br />{% endif %}
+            <div class="clearfix"></div>
+            <div class="col-md-6">
+                <a class="btn btn-block btn-{{ owner }} btn-primary btn-lg" href="{{ hwi_oauth_login_url(owner) }}"><span class="icon-{{ owner }}"></span>Login with {{ owner | trans({}, 'HWIOAuthBundle') }}</a>{% if not loop.last %}<br />{% endif %}
+            </div>
         {% endfor %}
-    </div>
-
-    {% include "FOSUserBundle:Registration:register_content.html.twig" %}
 {% endblock %}

+ 21 - 0
app/Resources/HWIOAuthBundle/views/Connect/registration.html.twig

@@ -0,0 +1,21 @@
+{% extends 'HWIOAuthBundle::layout.html.twig' %}
+
+{% block hwi_oauth_content %}
+    <div class="col-xs-12">
+        <h2 class="title">{{ 'header.register' | trans({'%name%': userInformation.realName}, 'HWIOAuthBundle') }}</h2>
+    </div>
+    <div class="col-md-6">
+        <form action="{{ path('hwi_oauth_connect_registration', {'key': key}) }}" {{ form_enctype(form) }} method="POST" class="hwi_oauth_registration_register">
+            {{ form_widget(form) }}
+            <div>
+                <button type="submit" class="btn btn-primary">{{ 'connect.registration.submit'|trans({}, 'HWIOAuthBundle') }}</button>
+                <a href="{{ path('hwi_oauth_connect') }}" class="btn btn-warning">{{ 'connect.registration.cancel' | trans({}, 'HWIOAuthBundle') }}</a>
+            </div>
+        </form>
+    </div>
+    <div class="col-md-6">
+        {% if userInformation.profilePicture is not empty %}
+            <img src="{{ userInformation.profilePicture }}" />
+        {% endif %}
+    </div>
+{% endblock hwi_oauth_content %}

+ 9 - 0
app/Resources/HWIOAuthBundle/views/Connect/registration_success.html.twig

@@ -0,0 +1,9 @@
+{% extends 'HWIOAuthBundle::layout.html.twig' %}
+
+{% block hwi_oauth_content %}
+    <div class="col-xs-12">
+        <h2 class="title">GitHub Login</h2>
+        <p>{{ 'header.registration_success' | trans({'%username%': app.user.username}, 'HWIOAuthBundle') }}</p>
+        <p>Continue to <a href="{{ path('fos_user_profile_show') }}">your profile</a>.</p>
+    </div>
+{% endblock hwi_oauth_content %}

+ 48 - 12
src/Packagist/WebBundle/Resources/public/css/main.css

@@ -1,4 +1,4 @@
-@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,300,500,600,300italic);
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,300,500,600,300italic);
 
 /*
  main header: #2d2d32
@@ -39,7 +39,23 @@ body {
     background: #FAFAFA;
     font-family: 'Open Sans', sans-serif;
 }
+.logo {
+  position: absolute;
+  width: 100px;
+  left: -98px;
+  top: -42px;
+}
+@media (min-width: 1200px) {
+  .logo {
+    width: 80px;
+    left: -90px;
+    top: -43px;
+  }
+}
 
+hr {
+  border-color: #F28D1A;
+}
 a, .package .package-aside a {
   color: #F25B1A;
 }
@@ -364,7 +380,11 @@ body > section:first-child {
 .wrapper-blue .container {
     padding: 10px 20px 15px;
 }
-
+@media (min-width: 768px) {
+  .wrapper-blue .container.with-description {
+    padding-left: 143px;
+  }
+}
 .wrapper-blue .container p {
   margin-top: 8px;
   margin-bottom: 0;
@@ -440,7 +460,7 @@ footer p {
 
 
 button {
-    font-family: 'Open Sans';
+    font-family: 'Open Sans', sans-serif;
 }
 
 .form-control {
@@ -846,7 +866,7 @@ ul.packages .metadata-block:last-child {
 
 .package p.description {
     margin-top: 0;
-    font-size: 28px;
+    font-size: 25px;
     font-style: italic;
     font-weight: 300;
     margin-bottom: 15px;
@@ -918,7 +938,7 @@ ul.packages .metadata-block:last-child {
 
 
 .package .package-aside {
-  border-top: 2px solid #f28d1a;
+  border-top: 1px solid #f28d1a;
   border-radius: 0;
 
   margin: 0;
@@ -947,7 +967,7 @@ ul.packages .metadata-block:last-child {
   margin-top: 20px;
 }
 .package .version-details .title {
-  border-top: 2px solid #f28d1a;
+  border-top: 1px solid #f28d1a;
   padding-top: 10px;
 }
 .package .versions {
@@ -1022,6 +1042,17 @@ ul.packages .metadata-block:last-child {
       right: 15px;
     }
 }
+@media (max-width: 767px) {
+  .package-aside .downloads {
+    padding-left: 0;
+  }
+  .wrapper-footer {
+    font-size: 12px;
+  }
+  .wrapper-footer a {
+    white-space: nowrap;
+  }
+}
 
 .package .version-details .version-number {
   font-size: 16px;
@@ -1056,7 +1087,12 @@ ul.packages .metadata-block:last-child {
     margin-left: 10px;
     display: inline-block;
 }
-.package .version .license .unknown {
+.package .version-details .license {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.package .version-details .license .unknown {
   color: #c00;
 }
 .package .version-details .authors {
@@ -1076,8 +1112,8 @@ ul.packages .metadata-block:last-child {
   content: "";
 }
 .package .version-details .package-links {
-  border-top: 2px solid #f28d1a;
-  border-bottom: 2px solid #f28d1a;
+  border-top: 1px solid #f28d1a;
+  border-bottom: 1px solid #f28d1a;
   margin-top: 10px;
   padding-top: 10px;
   padding-bottom: 10px;
@@ -1194,7 +1230,7 @@ pre, code {
 .wrapper .content h2.title, .wrapper .content h3.title {
     margin: -5px 0 15px;
     padding: 0 0 15px;
-    border-bottom: 2px solid #f28d1a;
+    border-bottom: 1px solid #f28d1a;
     color: #2d2d32;
 }
 
@@ -1310,8 +1346,8 @@ pre, code {
 }
 
 .packages .selected .package-item {
-    padding: 3px 13px;
-    border: 2px solid #F28D1A;
+    padding: 4px 14px;
+    border: 1px solid #F28D1A;
 }
 
 .packages .package-item h4 {

BIN
src/Packagist/WebBundle/Resources/public/img/favorite.png


BIN
src/Packagist/WebBundle/Resources/public/img/logo-small.png


BIN
src/Packagist/WebBundle/Resources/public/img/logo.png


+ 17 - 14
src/Packagist/WebBundle/Resources/views/About/about.html.twig

@@ -2,9 +2,24 @@
 
 {% block content %}
     <h2 class="title">What is Packagist?</h2>
-    <p>Packagist is a Composer package repository. It lets you find packages and lets Composer know where to get the code from. You can use Composer to manage your project or libraries' dependencies - read more about it on the <a href="http://getcomposer.org/">Composer website</a>.</p>
+    <p>Packagist is the default Composer package repository. It lets you find packages and lets Composer know where to get the code from. You can use Composer to manage your project or libraries' dependencies - read more about it on the <a href="http://getcomposer.org/">Composer website</a>.</p>
     <p>You can find the packagist.org source on <a href="https://github.com/composer/packagist">GitHub</a>.</p>
 
+    <section class="row">
+        <div class="clearfix"></div>
+
+        <section class="col-md-6">
+            <h3 id="community">Community</h3>
+            <p>If you have questions about composer or want to help out, come and join us in the <em><a href="irc://irc.freenode.net/#composer">#composer</a></em> channel on irc.freenode.net. You can find more community resources in the <a href="https://getcomposer.org/doc/06-community.md">Composer documentation</a>.</p>
+        </section>
+
+        <section class="col-md-6">
+            <h3 id="community">Contributing / Donating</h3>
+            <p>To report issues or contribute code you can find the source repository on <a href="https://github.com/composer/packagist">GitHub</a>.</p>
+            <p>If you would like to financially support the hosting and maintenance of the project, the best way is to check out <a href="https://toranproxy.com">Toran Proxy</a> and buy a license. It can help you install packages fast and reliably, provides you with a private package repository, and the money goes towards Composer and Packagist maintenance!</p>
+        </section>
+    </section>
+
     <h2 class="title" id="how-to-submit-packages">How to submit packages?</h2>
     <section class="row">
         <section class="col-md-6">
@@ -75,21 +90,9 @@ v2.0.4-p1</code></pre>
         <section class="col-md-6">
             <h3 id="update-schedule">Update Schedule</h3>
             <p>New packages will be crawled <strong>immediately</strong> after submission if you have JS enabled.</p>
-            <p>Existing packages without auto-updating (GitHub/BitBucket hook) will be crawled <strong>once a day</strong> for updates. When a hook is enabled packages are crawled whenever you push, or at least once a week in case the crawl failed. You can also trigger a manual update on your package page if you are logged-in as a maintainer.</p>
+            <p>Existing packages without auto-updating (GitHub/BitBucket hook) will be crawled <strong>once a week</strong> for updates. When a hook is enabled packages are crawled whenever you push, or at least once a month in case the crawl failed. You can also trigger a manual update on your package page if you are logged-in as a maintainer.</p>
             <p>It is highly recommended to set up the <strong>GitHub/BitBucket service hook</strong> for all your packages. This reduces the load on our side, and ensures your package is updated almost instantly. Check the how-to in your <a href="{{ path('fos_user_profile_show') }}">profile</a> page.</p>
             <p>The search index is updated <strong>every five minutes</strong>. It will index (or reindex) any package that has been crawled since the last time the search indexer ran.</p>
         </section>
-
-        <div class="clearfix"></div>
-
-        <section class="col-md-6">
-            <h3 id="community">Community</h3>
-            <p>If you have questions about composer or want to help out, come and join us in the <em><a href="irc://irc.freenode.net/#composer">#composer</a></em> channel on irc.freenode.net. You can find more community resources in the <a href="https://getcomposer.org/doc/06-community.md">Composer documentation</a>.</p>
-        </section>
-
-        <section class="col-md-6">
-            <h3 id="community">Contributing</h3>
-            <p>To report issues or contribute code you can find the source repository on <a href="https://github.com/composer/packagist">GitHub</a>.</p>
-        </section>
     </section>
 {% endblock %}

+ 0 - 2
src/Packagist/WebBundle/Resources/views/Package/abandon.html.twig

@@ -11,8 +11,6 @@
     <form method="post" {{ form_enctype(form) }} class="col-sm-6">
         {{ form_widget(form) }}
 
-        <hr>
-
         <input class="btn btn-block btn-default btn-lg" type="submit" value="Abandon Package" />
     </form>
 

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

@@ -11,8 +11,6 @@
     <form class="col-md-6" action="{{ path('edit_package', {'name': package.name}) }}" method="POST" {{ form_enctype(form) }}>
         {{ form_widget(form) }}
 
-        <hr>
-
         <input class="btn btn-block btn-primary btn-lg" id="submit" type="submit" value="Update" />
     </form>
 </section>

+ 0 - 2
src/Packagist/WebBundle/Resources/views/Web/explore.html.twig

@@ -2,8 +2,6 @@
 
 {% import "PackagistWebBundle::macros.html.twig" as macros %}
 
-{% set showSearchDesc = 'none' %}
-
 {% block content %}
     {% block content_title %}<h2 class="title">Packages</h2>{% endblock %}
     {% block lists %}

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

@@ -1,5 +1,5 @@
 {% embed "PackagistWebBundle:Web:list.html.twig" %}
     {% block content_title %}
-        <h3 class="title">Popular Packages</h3>
+        <h2 class="title">Popular Packages</h2>
     {% endblock %}
-{% endembed %}
+{% endembed %}

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

@@ -1,5 +1,3 @@
-{% set showSearchDesc = packages is empty ? 'show' : 'hide' %}
-
 {% embed "PackagistWebBundle:Web:list.html.twig" %}
     {% block search_results %}
     {% endblock %}

+ 3 - 2
src/Packagist/WebBundle/Resources/views/Web/searchSection.html.twig

@@ -1,10 +1,11 @@
 <section class="wrapper wrapper-blue">
-    <div class="container">
+    <div class="container {% if showSearchDesc == 'show' %}with-description{% endif %}">
         {{ render(controller('PackagistWebBundle:Web:searchForm', { req: app.request })) }}
 
         {%- if showSearchDesc == 'show' %}
         <div class="row">
-            <div class="col-xs-12 hidden-xs">
+            <div class="col-sm-9 hidden-xs">
+                <img src="{{ asset('bundles/packagistweb/img/logo-small.png') }}" class="logo">
                 <p>Packagist is the main <a href="http://getcomposer.org/">Composer</a> repository. It aggregates public PHP packages installable with Composer.</p>
             </div>
         </div>

+ 2 - 6
src/Packagist/WebBundle/Resources/views/Web/submitPackage.html.twig

@@ -11,14 +11,10 @@
 
 <section class="row">
     <form class="col-md-6" id="submit-package-form" action="{{ path('submit') }}" data-check-url="{{ path('submit.fetch_info') }}" method="POST" {{ form_enctype(form) }}>
-        {{ form_label(form.repository) }}
-        {{ form_errors(form.repository) }}
-        {{ form_widget(form.repository) }}
+        {{ form_widget(form) }}
 
         {{ form_rest(form) }}
 
-        <hr>
-
         <input class="btn btn-block btn-success btn-lg" id="submit" type="submit" value="Submit" />
     </form>
 
@@ -28,4 +24,4 @@
         <p>If you need help or if you have any questions please get in touch with the Composer <a href="http://getcomposer.org/doc/06-community.md">community</a>.</p>
     </div>
 </section>
-{% endblock %}
+{% endblock %}

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

@@ -46,7 +46,10 @@
                     {%- else -%}
                         {{ author.name }}
                     {%- endif -%}
-                    {% if author.email %} &lt;<a href="mailto:{{ author.email }}">{{ author.email }}</a>&gt;{% endif -%}
+                    {% if author.email %}
+                        <span class="visible-sm-inline visible-md-inline visible-lg-inline">&lt;<a href="mailto:{{ author.email }}">{{ author.email }}</a>&gt;</span>
+                        <span class="visible-xs-inline"><a href="mailto:{{ author.email }}"><i class="glyphicon glyphicon-envelope"></i></a></span>
+                    {%- endif -%}
                 </li>
             {% endfor %}
         </ul>

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

@@ -110,7 +110,7 @@
                         <div class="details col-xs-12 col-sm-6 col-md-12">
                             <p class="maintainers">
                                 {% for maintainer in package.maintainers -%}
-                                    <a href="{{ path('user_profile', {'name': maintainer.username}) }}"><img width="48" height="48" title="{{ maintainer.username }}" src="http://www.gravatar.com/avatar/{{ maintainer.email|gravatar_hash }}?s=48&amp;d=identicon"></a>
+                                    <a href="{{ path('user_profile', {'name': maintainer.username}) }}"><img width="48" height="48" title="{{ maintainer.username }}" src="//www.gravatar.com/avatar/{{ maintainer.email|gravatar_hash }}?s=48&amp;d=identicon"></a>
                                 {% endfor %}
                                 {% if addMaintainerForm is defined or removeMaintainerForm is defined %}
                                     {% if addMaintainerForm is defined %}<a id="add-maintainer" href="{{ path('add_maintainer', {'name': package.name}) }}"><i class="glyphicon glyphicon-plus"></i></a>{% endif %}

+ 6 - 5
src/Packagist/WebBundle/Resources/views/layout.html.twig

@@ -10,10 +10,9 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 
         <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" />
-        <link rel="apple-touch-icon" href="{{ asset('apple-touch-icon.png') }}" />
 
-        <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="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" type="text/css" />
+        <link rel="stylesheet" href="//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') }}" />
 
@@ -151,7 +150,7 @@
         <footer class="wrapper-footer">
             <nav class="container">
                 <div class="row">
-                    <ul class="social col-xs-5 col-md-2 pull-right">
+                    <ul class="social col-xs-7 col-sm-4 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>
@@ -162,6 +161,8 @@
                         <li><a href="{{ path('feeds') }}">{{ 'menu.rss_feeds'|trans }}</a></li>
                     </ul>
 
+                    <div class="clearfix visible-xs-block"></div>
+
                     <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>
@@ -179,7 +180,7 @@
         <script src="{{ asset('js/libs/ZeroClipboard.min.js') }}"></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>
+        <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
 
         {%- if not app.debug and google_analytics.ga_key %}
         <script>

BIN
web/apple-touch-icon-precomposed.png


BIN
web/apple-touch-icon.png


BIN
web/favicon.ico


BIN
web/touch-icon-192x192.png