Browse Source

Fix up deprecation notices

Jordi Boggiano 9 years ago
parent
commit
cf4708dd2b

+ 5 - 6
app/config/routing.yml

@@ -7,10 +7,9 @@ fos_user_profile:
     prefix: /profile
 
 fos_user_profile_show:
-    pattern: /profile/
+    path: /profile/
     defaults: { _controller: PackagistWebBundle:User:myProfile }
-    requirements:
-        _method: GET
+    methods: [GET]
 
 fos_user_register:
     resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
@@ -38,10 +37,10 @@ hwi_oauth_redirect:
     prefix:   /login
 
 github_check:
-    pattern: /login/check-github
+    path: /login/check-github
 
 logout:
-    pattern: /logout
+    path: /logout
 
 login_check:
-    pattern: /login_check
+    path: /login_check

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

@@ -828,7 +828,7 @@ class WebController extends Controller
         $this->getDoctrine()->getManager()->flush();
         $this->getDoctrine()->getManager()->clear();
 
-        return new RedirectResponse($this->generateUrl('view_package', array('name' => $package->getName())));
+        return new Response('', 204);
     }
 
     /**
@@ -951,7 +951,7 @@ class WebController extends Controller
                 $solarium->update($update);
             } catch (\Solarium_Client_HttpException $e) {}
 
-            return new RedirectResponse($this->generateUrl('home'));
+            return new Response('', 204);
         }
 
         return new Response('Invalid form input', 400);

+ 29 - 4
src/Packagist/WebBundle/Resources/public/js/view.js

@@ -53,6 +53,21 @@
         }
     }());
 
+    function dispatchAjaxForm(form, success, className) {
+        var options = {
+            cache: false,
+            success: success,
+            data: $(form).serializeArray(),
+            type: $(form).attr('method'),
+            url: $(form).attr('action')
+        };
+        if ($(form).is('.' + className)) {
+            return;
+        }
+        $.ajax(options).complete(function () { $(form).removeClass(className); });
+        $(form).addClass(className);
+    }
+
     function forceUpdatePackage(e, updateAll) {
         var submit = $('input[type=submit]', '.package .force-update'), data;
         if (e) {
@@ -70,7 +85,7 @@
             dataType: 'json',
             cache: false,
             data: data,
-            type: 'PUT',
+            type: $('.package .force-update').attr('method'),
             success: function () {
                 document.location.reload(true);
             },
@@ -106,19 +121,29 @@
     $('.package .delete').submit(function (e) {
         e.preventDefault();
         if (window.confirm('Are you sure?')) {
-            e.target.submit();
+            dispatchAjaxForm(this, function () {
+                humane.log('Package successfully deleted', {timeout: 0, clickToClose: true});
+                setTimeout(function () {
+                    document.location.href = document.location.href.replace(/\/[^\/]+$/, '/');
+                })
+            }, 'request-sent');
         }
     });
     $('.package .delete-version .submit').click(function (e) {
         e.preventDefault();
         e.stopImmediatePropagation();
-        $(e.target).closest('.delete-version').submit();
+        $(e.target).closest('form').submit();
     });
+
     $('.package .delete-version').submit(function (e) {
         e.preventDefault();
         e.stopImmediatePropagation();
+        var form = this;
         if (window.confirm('Are you sure?')) {
-            e.target.submit();
+            dispatchAjaxForm(this, function () {
+                humane.log('Version successfully deleted', {timeout: 3000, clickToClose: true});
+                $(form).closest('.version').remove();
+            }, 'request-sent');
         }
     });
     $('.package').on('click', '.requireme input', function () {

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

@@ -83,15 +83,13 @@
                                 </form>
                             {% endif %}
                             {% if deleteForm is defined %}
-                                <form class="delete action" action="{{ path('delete_package', {name: package.name}) }}" method="POST">
-                                    <input type="hidden" name="_method" value="DELETE" />
+                                <form class="delete action" action="{{ path('delete_package', {name: package.name}) }}" method="DELETE">
                                     {{ form_widget(deleteForm._token) }}
                                     <input class="btn btn-danger" type="submit" value="Delete" />
                                 </form>
                             {% endif %}
                             {% if is_granted('ROLE_UPDATE_PACKAGES') or package.maintainers.contains(app.user) %}
-                                <form class="force-update action" action="{{ path('update_package', {name: package.name}) }}" method="POST">
-                                    <input type="hidden" name="_method" value="PUT" />
+                                <form class="force-update action" action="{{ path('update_package', {name: package.name}) }}" method="PUT">
                                     <input type="hidden" name="update" value="1" />
                                     <input class="btn btn-success" type="submit" value="Update" />
                                 </form>
@@ -216,8 +214,7 @@
                                 </a>
 
                                 {% if deleteVersionCsrfToken is defined %}
-                                <form class="delete-version" action="{{ path("delete_version", {"versionId": version.id}) }}" method="post">
-                                    <input type="hidden" name="_method" value="DELETE" />
+                                <form class="delete-version" action="{{ path("delete_version", {"versionId": version.id}) }}" method="DELETE">
                                     <input type="hidden" name="_token" value="{{ deleteVersionCsrfToken }}" />
                                     <i class="submit glyphicon glyphicon-remove"></i>
                                 </form>