project_view.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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>Build date: <span class="build-date">{{artifact.date}}</span></p>
  31. <div class="dropdown-button">
  32. <span class="icon-down-open"></span>
  33. </div>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="artifact-contents">
  38. <div class="column content">
  39. <h2>Downloads</h2>
  40. <div>
  41. <table class="table is-hoverable is-striped is-bordered is-narrow">
  42. <thead>
  43. <tr>
  44. <th>Artifact</th>
  45. <th>Description</th>
  46. </tr>
  47. </thead>
  48. <tbody>
  49. {%-for download_item in artifact.artifacts%}
  50. <tr>
  51. <td class="min-size"><a class="button is-link button-scale"
  52. style="width: {{download_item.width * 0.5}}em;"
  53. href="{{ url_for('download_item', project_id=selected_project.id, artifact_id=artifact.id, download_item=download_item.file)}}">{{download_item.file}}</a>
  54. </td>
  55. <td>{{download_item.description}}</td>
  56. </tr>
  57. {%-endfor%}
  58. </tbody>
  59. </table>
  60. </div>
  61. {%- if artifact.changelog %}
  62. <h2>Changelog</h2>
  63. <p>
  64. {{artifact.changelog|safe}}
  65. </p>
  66. {%- endif %}
  67. </div>
  68. </div>
  69. </div>
  70. {%-endfor%}
  71. <script>
  72. function init() {
  73. let dates = document.querySelectorAll("span.build-date");
  74. for (let date of dates) {
  75. date.textContent = new Date(date.textContent).toLocaleString();
  76. }
  77. let artifacts = document.querySelectorAll("div.artifact-item");
  78. for (let artifact of artifacts) {
  79. let contents = artifact.querySelector(".artifact-contents");
  80. if (!contents || !(contents instanceof HTMLElement))
  81. continue;
  82. artifact.addEventListener("click", e => {
  83. if(e.target instanceof HTMLElement && e.target.nodeName.toUpperCase() == "A")
  84. return;
  85. e.preventDefault();
  86. if (contents.classList.contains("contents-visible"))
  87. contents.classList.remove("contents-visible");
  88. else
  89. contents.classList.add("contents-visible");
  90. });
  91. }
  92. }
  93. init();
  94. </script>
  95. {%endblock%}