submitPackage.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. (function ($) {
  2. var showSimilarMax = 5;
  3. var onSubmit = function(e) {
  4. var success;
  5. $('ul.package-errors, ul.similar-packages, div.confirmation', this).remove();
  6. success = function (data) {
  7. var html = '';
  8. $('#submit').removeClass('loading');
  9. if (data.status === 'error') {
  10. $.each(data.reason, function (k, v) {
  11. html += '<li><div class="alert alert-warning">'+v+'</div></li>';
  12. });
  13. $('#submit-package-form').prepend('<ul class="list-unstyled package-errors">'+html+'</ul>');
  14. } else {
  15. if (data.similar.length) {
  16. var $similar = $('<ul class="list-unstyled similar-packages">');
  17. var limit = data.similar.length > showSimilarMax ? showSimilarMax : data.similar.length;
  18. for ( var i = 0; i < limit; i++ ) {
  19. var similar = data.similar[i];
  20. var $link = $('<a>').attr('href', similar.url).text(similar.name);
  21. $similar.append($('<li>').append($link))
  22. }
  23. if (limit != data.similar.length) {
  24. $similar.append($('<li>').text('And ' + (data.similar.length - limit) + ' more'));
  25. }
  26. $('#submit-package-form input[type="submit"]').before($('<div>').append(
  27. '<p><strong>Notice:</strong> One or more similarly named packages have already been submitted to Packagist. If this is a fork read the notice above regarding VCS Repositories.'
  28. ).append(
  29. '<p>Similarly named packages:'
  30. ).append($similar));
  31. }
  32. $('#submit-package-form input[type="submit"]').before(
  33. '<div class="confirmation">The package name found for your repository is: <strong>'+data.name+'</strong>, press Submit to confirm.</div>'
  34. );
  35. $('#submit').val('Submit');
  36. $('#submit-package-form').unbind('submit');
  37. }
  38. };
  39. $.post($(this).data('check-url'), $(this).serializeArray(), success);
  40. $('#submit').addClass('loading');
  41. e.preventDefault();
  42. };
  43. $('#package_repository').change(function() {
  44. $('#submit-package-form').unbind('submit');
  45. $('#submit-package-form').submit(onSubmit);
  46. $('#submit').val('Check');
  47. });
  48. $('#package_repository').triggerHandler('change');
  49. })(jQuery);