resource.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. {% extends 'base.html' %}
  2. {% block title %}
  3. Resource: {{ uid }}
  4. {% endblock %}
  5. {% block breadcrumbs %}
  6. <nav aria-label="breadcrumb">
  7. <ol class="breadcrumb">
  8. <li class="breadcrumb-item">
  9. <a href="/ldp/">Root</a>
  10. </li>
  11. {% set frags = uid.strip('/').split('/') %}
  12. {% for frag in frags %}
  13. {% set href = '/' + '/'.join(frags[:loop.index]) %}
  14. {% if href == uid %}
  15. <li class="breadcrumb-item active" aria-current="page">{{frag}}
  16. {% else %}
  17. <li class="breadcrumb-item">
  18. <a href="/ldp{{ href }}">{{frag}}</a>
  19. {% endif %}
  20. </li>
  21. {% endfor %}
  22. </ol>
  23. </nav>
  24. {% endblock %}
  25. {% block content %}
  26. {% if gr[gr.identifier : nsc['rdf'].type : nsc['ldp'].NonRDFSource] %}
  27. <div class="pull-right">
  28. <a href="{{ gr.identifier }}/fcr:content" class="btn btn-success btn-lg">
  29. <span class="glyphicon glyphicon-download" aria-hidden="true"></span>
  30. Download Content</a>
  31. </div>
  32. {% endif %}
  33. {% set created_ts = arrow.get(
  34. gr.value(gr.identifier, nsc['fcrepo'].created)).replace(
  35. tzinfo='local') %}
  36. {% set updated_ts = arrow.get(
  37. gr.value(gr.identifier, nsc['fcrepo'].lastModified)).replace(
  38. tzinfo='local') %}
  39. <p><strong>Created on:</strong>&nbsp;{{ created_ts }}&nbsp;
  40. ({{created_ts.humanize() }})</p>
  41. <p><strong>Last updated on:</strong>&nbsp;{{ updated_ts }}&nbsp;
  42. ({{updated_ts.humanize() }})</p>
  43. <p><strong>Types:</strong>
  44. {% for t in gr[gr.identifier : nsc['rdf'].type :] | sort %}
  45. <span class="label label-primary">{{ t.n3(namespace_manager=nsm) }}</span>
  46. {% endfor %}
  47. </p>
  48. <h2>Properties</h2>
  49. <table class="table table-striped">
  50. <thead>
  51. <tr>
  52. <!--
  53. <td>Subject</td>
  54. <td>Predicate</td>
  55. <td>Object</td>
  56. -->
  57. </tr>
  58. </thead>
  59. <tbody>
  60. {% for t in gr | sort %}
  61. {% if t[0] == uri and t[1] not in blacklist %}
  62. <tr>
  63. <!--
  64. <td>
  65. <a href="{{ t[0] }}">
  66. {{ t[0].n3(namespace_manager=nsm) }}
  67. </a>
  68. </td>
  69. -->
  70. <td>
  71. <a href="{{ t[1] }}">
  72. {{ t[1].n3(namespace_manager=nsm) }}
  73. </a>
  74. </td>
  75. <td>
  76. {% if 'Literal' in t[2].__class__.__name__ %}
  77. "{{ t[2] }}"
  78. {% if t[2].datatype %}
  79. <span class="label label-primary">
  80. {{ t[2].datatype.n3(namespace_manager=nsm) }}
  81. </span>
  82. {% endif %}
  83. {% else %}
  84. <a href="{{ t[2] }}">
  85. {{ t[2].n3(namespace_manager=nsm) }}
  86. </a>
  87. {% endif %}
  88. </td>
  89. </tr>
  90. {% endif %}
  91. {% endfor %}
  92. </tbody>
  93. </table>
  94. <h2>Other subjects</h2>
  95. <table class="table table-striped">
  96. <thead>
  97. <tr>
  98. <td>Subject</td>
  99. <td>Predicate</td>
  100. <td>Object</td>
  101. </tr>
  102. </thead>
  103. <tbody>
  104. {% for t in gr | sort %}
  105. {% if t[0] != uri and t[1] not in blacklist %}
  106. <tr>
  107. <td>
  108. <a href="{{ t[0] }}">
  109. {{ t[0].n3(namespace_manager=nsm) }}
  110. </a>
  111. </td>
  112. <td>
  113. <a href="{{ t[1] }}">
  114. {{ t[1].n3(namespace_manager=nsm) }}
  115. </a>
  116. </td>
  117. <td>
  118. {% if 'Literal' in t[2].__class__.__name__ %}
  119. "{{ t[2] }}"
  120. {% if t[2].datatype %}
  121. <span class="label label-primary">{{ t[2].datatype.n3(namespace_manager=nsm) }}</span>
  122. {% endif %}
  123. {% else %}
  124. <a href="{{ t[2] }}">
  125. {{ t[2].n3(namespace_manager=nsm) }}
  126. </a>
  127. {% endif %}
  128. </td>
  129. </tr>
  130. {% endif %}
  131. {% endfor %}
  132. </tbody>
  133. </table>
  134. {% block namespaces %}
  135. <h2>Namespaces</h2>
  136. <button class="btn btn-primary" type="button" data-toggle="collapse" data-target="#nslist" aria-expanded="false" aria-controls="nsList">
  137. Expand/Collapse
  138. </button>
  139. <div class="collapse" id="nslist">
  140. <div class="card card-body">
  141. <table class="table table-striped">
  142. <thead>
  143. <tr>
  144. <td>Prefix</td>
  145. <td>URI</td>
  146. </tr>
  147. </thead>
  148. <tbody>
  149. {% for ns in nsm.namespaces() | sort %}
  150. <tr>
  151. <td>{{ ns[0] }}</td>
  152. <td>{{ ns[1] }}</td>
  153. </tr>
  154. {% endfor %}
  155. </tbody>
  156. </table>
  157. </div>
  158. </div>
  159. {% endblock %}
  160. {% endblock %}