viewPackage.html.twig 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. {% extends "PackagistWebBundle::layout.html.twig" %}
  2. {% block scripts %}
  3. <script src="{{ asset('bundles/packagistweb/js/view.js')}}"></script>
  4. {% endblock %}
  5. {% block content %}
  6. <div class="box">
  7. <div class="package">
  8. <h1>
  9. <a href="{{ path("view_vendor", {"vendor": package.vendor}) }}">{{ package.vendor }}/</a>{{ package.packageName }}
  10. </h1>
  11. {% if package.versions|length and package.versions[0].tags|length %}
  12. <p class="tags">
  13. {%- for tag in package.versions[0].tags -%}
  14. <a href="{{ url("browse", { "tag" : tag.name }) }}">{{ tag.name }}</a>
  15. {%- endfor -%}
  16. </p>
  17. {% endif %}
  18. <p class="description">{{ package.description }}</p>
  19. <p class="details">
  20. <span>Maintainer{{ package.maintainers|length > 1 ? 's' : '' }}:</span>
  21. {% for maintainer in package.maintainers %}
  22. {{ maintainer.username }}{{ loop.last ? '' : ', ' }}
  23. {% endfor %}
  24. {% if form is defined %}<a id="add-maintainer" href="{{ path('add_maintainer', {'name': package.name}) }}">Add Maintainer</a>{% endif %}
  25. <br />
  26. {% if package.versions|length and package.versions[0].homepage %}
  27. <span>Homepage:</span> <a href="{{ package.versions[0].homepage }}">{{ package.versions[0].homepage|replace({'http://': ''}) }}</a><br />
  28. {% endif %}
  29. <span>Repository:</span> <a href="{{ package.repository }}">{{ package.repository }}</a>
  30. </p>
  31. {% if form is defined %}
  32. <div>
  33. <form id="add-maintainer-form" class="{{ show_maintainer_form|default(false) ? '': 'hidden' }}" action="{{ path('add_maintainer', {'name': package.name}) }}" method="POST" {{ form_enctype(form) }}>
  34. <div>
  35. <h2>Add Maintainer</h2>
  36. <p>
  37. {{ form_label(form.user, "Username") }}
  38. {{ form_errors(form.user) }}
  39. {{ form_widget(form.user) }}
  40. </p>
  41. {{ form_rest(form) }}
  42. <input id="submit" type="submit" value="Submit" />
  43. </div>
  44. </form>
  45. </div>
  46. {% endif %}
  47. {% if package.versions|length %}
  48. <ul class="versions">
  49. {% for version in package.versions %}
  50. <li class="version{% if loop.last %} last{% endif %}">
  51. <section>
  52. <h1>
  53. {{ version.version }}
  54. <span class="release-date">{{ version.releasedAt|date("Y-m-d") }}</span>
  55. <span class="license">{{ version.license ? version.license|join(', ') : '' }}</span>
  56. </h1>
  57. <div class="details {% if loop.index0 == 0 %} open{% endif %}">
  58. <h2 class="authors">Author{{ version.authors|length > 1 ? 's' : '' }}</h2>
  59. <ul>
  60. {% for author in version.authors %}
  61. <li>
  62. {%- if author.homepage -%}
  63. <a href="{{ author.homepage }}">{{ author.name }}</a>
  64. {%- else -%}
  65. {{ author.name }}
  66. {%- endif -%}
  67. {% if author.email %} &lt;<a href="mailto:{{ author.email }}">{{ author.email }}</a>&gt;{% endif -%}
  68. </li>
  69. {% endfor %}
  70. </ul>
  71. <div class="clearfix package-links">
  72. <div class="requires">
  73. <h2>Requires</h2>
  74. {% if version.require|length %}
  75. <ul>
  76. {%- for req in version.require -%}
  77. <li>{{ req.packageName }}: {{ req.packageVersion }}</li>
  78. {%- endfor -%}
  79. </ul>
  80. {% else %}
  81. None
  82. {% endif %}
  83. </div>
  84. <div class="recommends">
  85. <h2>Recommends</h2>
  86. {% if version.recommend|length %}
  87. <ul>
  88. {%- for req in version.recommend -%}
  89. <li>{{ req.packageName }}: {{ req.packageVersion }}</li>
  90. {%- endfor -%}
  91. </ul>
  92. {% else %}
  93. None
  94. {% endif %}
  95. </div>
  96. <div class="suggests">
  97. <h2>Suggests</h2>
  98. {% if version.suggest|length %}
  99. <ul>
  100. {%- for req in version.suggest -%}
  101. <li>{{ req.packageName }}: {{ req.packageVersion }}</li>
  102. {%- endfor -%}
  103. </ul>
  104. {% else %}
  105. None
  106. {% endif %}
  107. </div>
  108. <div class="provides">
  109. <h2>Provides</h2>
  110. {% if version.provide|length %}
  111. <ul>
  112. {%- for req in version.provide -%}
  113. <li>{{ req.packageName }}: {{ req.packageVersion }}</li>
  114. {%- endfor -%}
  115. </ul>
  116. {% else %}
  117. None
  118. {% endif %}
  119. </div>
  120. <div class="conflicts">
  121. <h2>Conflicts</h2>
  122. {% if version.conflict|length %}
  123. <ul>
  124. {%- for req in version.conflict -%}
  125. <li>{{ req.packageName }}: {{ req.packageVersion }}</li>
  126. {%- endfor -%}
  127. </ul>
  128. {% else %}
  129. None
  130. {% endif %}
  131. </div>
  132. <div class="replaces">
  133. <h2>Replaces</h2>
  134. {% if version.replace|length %}
  135. <ul>
  136. {%- for req in version.replace -%}
  137. <li>{{ req.packageName }}: {{ req.packageVersion }}</li>
  138. {%- endfor -%}
  139. </ul>
  140. {% else %}
  141. None
  142. {% endif %}
  143. </div>
  144. </div>
  145. </div>
  146. <div class="details-toggler{% if loop.index0 == 0 %} open{% endif %}"></div>
  147. </section>
  148. </li>
  149. {% endfor %}
  150. </ul>
  151. {% elseif package.crawledAt is null %}
  152. <p>This package has not been crawled yet, some information is missing.</p>
  153. {% else %}
  154. <p>This package has no released version yet, and little information is available.</p>
  155. {% endif %}
  156. </div>
  157. </div>
  158. {% endblock %}