viewPackage.html.twig 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. {% extends "PackagistWebBundle::layout.html.twig" %}
  2. {% import "PackagistWebBundle::macros.html.twig" as packagist %}
  3. {% block title %}{{ package.name }} - {{ parent() }}{% endblock %}
  4. {% block scripts %}
  5. <script src="{{ asset('bundles/packagistweb/js/view.js?v=3')}}"></script>
  6. {% endblock %}
  7. {% block content %}
  8. <div class="box">
  9. <div class="package"{% if app.user and package.maintainers.contains(app.user) and package.crawledAt is null %} data-force-crawl="true"{% endif %}>
  10. {% if app.user and package.maintainers.contains(app.user) %}
  11. <form class="force-update" action="{{ path('update_package', {name: package.name}) }}" method="POST">
  12. <input type="hidden" name="_method" value="PUT" />
  13. <input type="hidden" name="update" value="1" />
  14. <input type="submit" value="Force package update" />
  15. </form>
  16. {% endif %}
  17. <h1>
  18. <a href="{{ path("view_vendor", {"vendor": package.vendor}) }}">{{ package.vendor }}/</a>{{ package.packageName }}
  19. </h1>
  20. {% if package.versions|length and package.versions[0].tags|length %}
  21. <p class="tags">
  22. {%- for tag in package.versions[0].tags -%}
  23. <a href="{{ url("browse", { "tag" : tag.name }) }}">{{ tag.name }}</a>
  24. {%- endfor -%}
  25. </p>
  26. {% endif %}
  27. <p class="description">{{ package.description }}</p>
  28. <p class="details">
  29. <span>Maintainer{{ package.maintainers|length > 1 ? 's' : '' }}:</span>
  30. {% for maintainer in package.maintainers %}
  31. <a href="{{ path('user_profile', {'name': maintainer.username}) }}">{{ maintainer.username }}</a>{{ loop.last ? '' : ', ' }}
  32. {% endfor %}
  33. {% if form is defined %}(<a id="add-maintainer" href="{{ path('add_maintainer', {'name': package.name}) }}">add maintainer</a>){% endif %}
  34. <br />
  35. {% if package.versions|length and package.versions[0].homepage %}
  36. <span>Homepage:</span> <a href="{{ package.versions[0].homepage }}">{{ package.versions[0].homepage|replace({'http://': ''}) }}</a><br />
  37. {% endif %}
  38. <span>Repository:</span> <a href="{{ package.repository }}">{{ package.repository }}</a>
  39. </p>
  40. {% if form is defined %}
  41. <div>
  42. <form id="add-maintainer-form" class="{{ show_maintainer_form|default(false) ? '': 'hidden' }}" action="{{ path('add_maintainer', {'name': package.name}) }}" method="POST" {{ form_enctype(form) }}>
  43. <div>
  44. <h2>Add Maintainer</h2>
  45. <p>
  46. {{ form_label(form.user, "Username") }}
  47. {{ form_errors(form.user) }}
  48. {{ form_widget(form.user) }}
  49. </p>
  50. {{ form_rest(form) }}
  51. <input id="submit" type="submit" value="Submit" />
  52. </div>
  53. </form>
  54. </div>
  55. {% endif %}
  56. {% if package.versions|length %}
  57. <ul class="versions">
  58. {% for version in package.versions %}
  59. <li class="version{% if loop.last %} last{% endif %}">
  60. <section>
  61. <h1>
  62. {{ version.version }}
  63. {% if version.development and version.extra['branch-alias'][version.version] is defined %}
  64. / {{ version.extra['branch-alias'][version.version] }}
  65. {% endif %}
  66. <span class="release-date">{{ version.releasedAt|date("Y-m-d H:i") }} UTC</span>
  67. <span class="license">{{ version.license ? version.license|join(', ') : '' }}</span>
  68. </h1>
  69. <div class="details {% if loop.index0 == 0 %} open{% endif %}">
  70. <h2 class="authors">Author{{ version.authors|length > 1 ? 's' : '' }}</h2>
  71. <ul>
  72. {% for author in version.authors %}
  73. <li>
  74. {%- if author.homepage -%}
  75. <a href="{{ author.homepage }}">{{ author.name }}</a>
  76. {%- else -%}
  77. {{ author.name }}
  78. {%- endif -%}
  79. {% if author.email %} &lt;<a href="mailto:{{ author.email }}">{{ author.email }}</a>&gt;{% endif -%}
  80. </li>
  81. {% endfor %}
  82. </ul>
  83. <div class="clearfix package-links">
  84. {% for type in ["require", "recommend", "suggest", "provide", "conflict", "replace"] %}
  85. <div class="{{ type }}s">
  86. <h2>{{ type|title }}s</h2>
  87. {% if attribute(version, type)|length %}
  88. <ul>
  89. {%- for link in attribute(version, type) -%}
  90. <li>{{ packagist.packageLink(link.packageName) }}: {{ link.packageVersion == 'self.version' ? version.version : link.packageVersion }}</li>
  91. {%- endfor -%}
  92. </ul>
  93. {% else %}
  94. None
  95. {% endif %}
  96. </div>
  97. {% endfor %}
  98. </div>
  99. </div>
  100. <div class="details-toggler{% if loop.index0 == 0 %} open{% endif %}"></div>
  101. </section>
  102. </li>
  103. {% endfor %}
  104. </ul>
  105. {% elseif package.crawledAt is null %}
  106. <p>This package has not been crawled yet, some information is missing.</p>
  107. {% else %}
  108. <p>This package has no released version yet, and little information is available.</p>
  109. {% endif %}
  110. </div>
  111. </div>
  112. {% endblock %}