project_view.html 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. {% extends "base.html" %}
  2. {%block head%}
  3. <link rel="stylesheet" href="{{ url_for('static', filename='style/fontello/css/fontello.css') }}"" />
  4. </script>
  5. {%endblock%}
  6. {%block title%}{{selected_project.info.name}}{%endblock%}
  7. {%block content%}
  8. <div class="content">
  9. <div class="readme">
  10. {%- if readme %}
  11. {{readme|safe}}
  12. {%-else%}
  13. <h1>{{selected_project.info.name}}</h1>
  14. <p>
  15. Here you can find artifacts for project &quot;{{selected_project.info.name}}&quot;
  16. </p>
  17. {%-endif%}
  18. </div>
  19. </div>
  20. <h1 class="is-size-2">Artifacts</h1>
  21. <hr class="content-divider" />
  22. {%-for artifact in artifacts %}
  23. <div class="artifact-item">
  24. <div class="artifact-details">
  25. <div class="artifact-id">
  26. <p class="is-size-5">#{{artifact.id}}</p>
  27. </div>
  28. <div class="artifact-info">
  29. <div class="artifact-info-content" style="align-items: center">
  30. <p>
  31. {%-if artifact.hash%}
  32. <a class="hash-button" href="{{selected_project.info.commit_url}}/{{artifact.hash}}">{{artifact.hash[:8]}}</a>
  33. {%-endif%}
  34. Build date: <span class="build-date">{{artifact.date}}</span>
  35. </p>
  36. <div class="dropdown-button">
  37. <span class="icon-down-open"></span>
  38. </div>
  39. </div>
  40. </div>
  41. </div>
  42. <div class="artifact-contents">
  43. <div class="column content">
  44. <h2>Downloads</h2>
  45. <div>
  46. <table class="table is-hoverable is-striped is-bordered is-narrow">
  47. <thead>
  48. <tr>
  49. <th>Artifact</th>
  50. <th>Description</th>
  51. </tr>
  52. </thead>
  53. <tbody>
  54. {%-for download_item in artifact.artifacts%}
  55. <tr>
  56. <td class="min-size"><a class="button is-link button-scale"
  57. style="width: {{download_item.width * 0.5}}em;"
  58. href="{{ url_for('download_item', project_id=selected_project.id, artifact_id=artifact.id, download_item=download_item.file)}}">{{download_item.file}}</a>
  59. </td>
  60. <td>{{download_item.description}}</td>
  61. </tr>
  62. {%-endfor%}
  63. </tbody>
  64. </table>
  65. </div>
  66. {%- if artifact.changelog %}
  67. <h2>Changelog</h2>
  68. <p>
  69. {{artifact.changelog|safe}}
  70. </p>
  71. {%- endif %}
  72. </div>
  73. </div>
  74. </div>
  75. {%-endfor%}
  76. <script>
  77. function init() {
  78. let dates = document.querySelectorAll("span.build-date");
  79. for (let date of dates) {
  80. date.textContent = new Date(date.textContent).toLocaleString();
  81. }
  82. let artifacts = document.querySelectorAll("div.artifact-item");
  83. for (let artifact of artifacts) {
  84. let contents = artifact.querySelector(".artifact-contents");
  85. if (!contents || !(contents instanceof HTMLElement))
  86. continue;
  87. artifact.addEventListener("click", e => {
  88. if(e.target instanceof HTMLElement && e.target.nodeName.toUpperCase() == "A")
  89. return;
  90. e.preventDefault();
  91. if (contents.classList.contains("contents-visible"))
  92. contents.classList.remove("contents-visible");
  93. else
  94. contents.classList.add("contents-visible");
  95. });
  96. }
  97. }
  98. init();
  99. </script>
  100. {%endblock%}