macros.html.twig 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. {% macro listPackages(packages, paginate, showAutoUpdateWarning, meta) %}
  2. <ul class="packages list-unstyled">
  3. {% for package in packages|filter(package => package.replacementPackage|default('') != 'spam/spam') %}
  4. {% if package.id is numeric %}
  5. {% set packageUrl = path('view_package', { 'name' : package.name }) %}
  6. {% else %}
  7. {% set packageUrl = path('view_providers', { 'name' : package.name }) %}
  8. {% endif %}
  9. <li data-url="{{ packageUrl }}" class="row">
  10. <div class="col-xs-12 package-item">
  11. <div class="row">
  12. <div class="col-sm-9 col-lg-10">
  13. {% if package.language is defined and package.language is not empty %}<p class="pull-right language">{{ package.language }}</p>{% endif %}
  14. <h4 class="font-bold">
  15. <a href="{{ packageUrl }}">{{ package.name }}</a>
  16. {% if package.id is not numeric %}
  17. <small>(Virtual Package)</small>
  18. {% endif %}
  19. {% if not package.abandoned|default(false) %}
  20. {% if showAutoUpdateWarning and '://github.com/' in package.repository and package.getAutoUpdated() == 1 %}
  21. <small>(Legacy Auto-Update, Needs Attention)</small>
  22. {% elseif showAutoUpdateWarning and '://github.com/' in package.repository and package.getAutoUpdated() == 0 %}
  23. <small>(Not Auto-Updated, Needs Attention)</small>
  24. {% elseif showAutoUpdateWarning and not package.isAutoUpdated() %}
  25. <small>(Not Auto-Updated)</small>
  26. {% endif %}
  27. {% endif %}
  28. </h4>
  29. {% if package.description is defined and package.description %}
  30. <p>{{ package.description }}</p>
  31. {% endif %}
  32. {% if package.abandoned|default(false) %}
  33. <p class="abandoned">
  34. <i class="glyphicon glyphicon-exclamation-sign"></i> Abandoned! {% if package.replacementPackage %}See <a href="{{ '://' in package.replacementPackage ? package.replacementPackage : path('view_package', {name: package.replacementPackage}) }}">{{ package.replacementPackage }}</a>{% endif %}
  35. </p>
  36. {% endif %}
  37. </div>
  38. <div class="col-sm-3 col-lg-2">
  39. {% if meta %}
  40. <p class="metadata">
  41. <span class="metadata-block"><i class="glyphicon glyphicon-arrow-down"></i> {{ meta.downloads[package.id]|default(0)|number_format(0, '.', '&#8201;')|raw }}</span>
  42. <span class="metadata-block"><i class="glyphicon glyphicon-star"></i> {{ meta.favers[package.id]|default(0)|number_format(0, '.', '&#8201;')|raw }}</span>
  43. </p>
  44. {% endif %}
  45. </div>
  46. </div>
  47. </div>
  48. </li>
  49. {% endfor %}
  50. </ul>
  51. {% if paginate is defined and paginate and packages.haveToPaginate() %}
  52. {{ pagerfanta(packages, 'twitter_bootstrap', {'proximity': 2}) }}
  53. {% endif %}
  54. {% endmacro %}
  55. {% macro listPackagesShort(packages, showVersion, showMoreUrl) %}
  56. <ul class="list-unstyled">
  57. {% for package in packages %}
  58. <li>
  59. <a href="{{ path('view_package', {'name' : package.name }) }}">{{ package.name }}{% if showVersion is defined and showVersion %}<strong>{{ package.version }}</strong>{% endif %}</a>
  60. {{ package.description|truncate(60) }}
  61. </li>
  62. {% endfor %}
  63. {% if showMoreUrl is defined and showMoreUrl %}
  64. <li><a href="{{ path('browse_popular') }}">See more...</a></li>
  65. {% endif %}
  66. </ul>
  67. {% endmacro %}
  68. {% macro packageLink(packageName, type) %}
  69. {%- if type == 'provide' -%}
  70. <a href="{{ path('view_providers', { 'name': packageName }) }}">{{ packageName }}</a>
  71. {%- elseif packageName is existing_package -%}
  72. <a href="{{ path('view_package', { 'name': packageName }) }}">{{ packageName }}</a>
  73. {%- elseif packageName is existing_provider -%}
  74. <a href="{{ path('view_providers', { 'name': packageName }) }}">{{ packageName }}</a>
  75. {%- else -%}
  76. {{ packageName }}
  77. {%- endif -%}
  78. {% endmacro %}