element.html.twig 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. <table>
  2. <tr>
  3. <td class="element_thumbnail">
  4. {% if element.embed %}
  5. <a href="#" class="a_thumbnail element_open element_embed_open_link {% if element.embed %}embed{% else %}noembed{% endif %}">
  6. <img class="play" style="display: none;" src="{{ asset('bundles/muzichcore/img/1328283150_media-playback-start.png') }}" alt="" />
  7. <img
  8. class="element_thumbnail"
  9. {% if element.thumbnailUrl %}
  10. src="{{ element.thumbnailUrl }}"
  11. {% else %}
  12. src="{{ asset('bundles/muzichcore/img/nothumb.png') }}"
  13. {% endif %}
  14. title="{{ 'element.show.open_embed'|trans({}, 'elements') }}"
  15. alt=""
  16. />
  17. </a>
  18. {% else %}
  19. <a href="{{ element.url }}" class="a_thumbnail element_open {% if element.embed %}embed{% else %}noembed{% endif %}" target="_blank">
  20. <img class="open" style="display: none;" src="{{ asset('bundles/muzichcore/img/1328283201_emblem-symbolic-link.png') }}" alt="" />
  21. <img
  22. class="element_thumbnail"
  23. {% if element.thumbnailUrl %}
  24. src="{{ element.thumbnailUrl }}"
  25. {% else %}
  26. src="{{ asset('bundles/muzichcore/img/nothumb.png') }}"
  27. {% endif %}
  28. title="{{ 'element.show.open_embed'|trans({}, 'elements') }}"
  29. alt=""
  30. />
  31. </a>
  32. {% endif %}
  33. </td>
  34. <td class="element_content">
  35. <span class="element_name">
  36. {% if element.embed %}
  37. <a href="#" class="element_open element_name_embed_open_link">
  38. {{ element.name }}
  39. </a>
  40. {% else %}
  41. <a href="{{ element.url }}" class="element_open" target="_blank">
  42. {{ element.name }}
  43. </a>
  44. {% endif %}
  45. </span>
  46. <a title="{{ 'element.link'|trans({}, 'elements') }}" class="element_link" href="{{ element.url }}" target="_blank">
  47. <img src="{{ asset('bundles/muzichcore/img/1324917097_link.png') }}" alt="link" />
  48. </a>
  49. {% if app.user.id != element.owner.id %}
  50. <a title="{{ 'element.proposition_tags.link_title'|trans({}, 'userui') }}"
  51. class="element_propose_tags"
  52. href="{{ path('ajax_element_propose_tags_open', {'element_id' : element.id}) }}">
  53. <img src="{{ asset('bundles/muzichcore/img/1333484018_rss-tag.png') }}" alt="tags_proposition" />
  54. </a>
  55. <a title="{{ 'element.report.link_title'|trans({}, 'userui') }}"
  56. class="element_report"
  57. href="{{ path('ajax_report_element', {'element_id':element.id, 'token':app.user.getPersonalHash}) }}">
  58. <img src="{{ asset('bundles/muzichcore/img/1331832708_comment_alert.png') }}" alt="report" />
  59. </a>
  60. {% endif %}
  61. {% if app.user.id == element.owner.id %}
  62. {% if element.hasTagProposition %}
  63. <a title="{{ 'element.view_propositions.link'|trans({}, 'elements') }}" class="element_view_propositions_link"
  64. href="{{ path('ajax_element_proposed_tags_view', {'element_id' : element.id}) }}"
  65. >
  66. <img src="{{ asset('bundles/muzichcore/img/1333493527_tag_add.png') }}" alt="tags proposition" />
  67. </a>
  68. {% endif %}
  69. <a title="{{ 'element.edit.link'|trans({}, 'elements') }}" class="element_edit_link"
  70. href="{{ path('element_edit', {'element_id' : element.id}) }}" style="display: none;"
  71. >
  72. <img src="{{ asset('bundles/muzichcore/img/1327151338_desktop.png') }}" alt="edit" />
  73. </a>
  74. <a title="{{ 'element.remove.link'|trans({}, 'elements') }}" class="element_remove_link"
  75. href="{{ path('element_remove', {'element_id' : element.id}) }}" style="display: none;"
  76. >
  77. <img src="{{ asset('bundles/muzichcore/img/1327168960_fileclose.png') }}" alt="delete" />
  78. </a>
  79. {% endif %}
  80. <br />
  81. {% autoescape false %}
  82. {% if element.group and no_group_name is not defined%}
  83. {{ 'element.name.whoandgroup'|trans({
  84. '%owner_url%' : path('show_user', {'slug': element.owner.slug}),
  85. '%owner_name%' : element.owner.name,
  86. '%group_url%' : path('show_group', {'slug': element.group.slug}),
  87. '%group_name%' : element.group.name
  88. }, 'elements') }}
  89. {% else %}
  90. {{ 'element.name.who'|trans({
  91. '%owner_url%' : path('show_user', {'slug': element.owner.slug}),
  92. '%owner_name%' : element.owner.name
  93. }, 'elements') }}
  94. {% endif %}
  95. {% endautoescape %}
  96. {{ element.created.date|date_or_relative_date }}
  97. <div class="loader">
  98. <img class="element_loader" style="display: none;" src="{{ asset('/bundles/muzichcore/img/ajax-loader.gif') }}" alt="loading"/>
  99. </div>
  100. {% if element.tags|length %}
  101. <ul class="element_tags">
  102. {% for tag in element.tags %}
  103. <li class="element_tag">
  104. <a id="element_tag_{{ tag.id }}" href="#" class="element_tag button">{{ tag.name }}</a>
  105. <a
  106. href="{{ path('ajax_tag_add_to_favorites', {
  107. 'tag_id' : tag.id,
  108. 'token' : app.user.getPersonalHash
  109. }) }}"
  110. class="tag_to_favorites"
  111. style="display: none;"
  112. title="{{ 'element.tag.addtofav.title'|trans({}, 'elements') }}"
  113. >
  114. <img src="{{ asset('/bundles/muzichcore/img/1331734087_emblem-favorite.png') }}" alt="add-to-favorites"/>
  115. </a>
  116. </li>
  117. {% endfor %}
  118. </ul>
  119. {% endif %}
  120. <a href="#" class="button element_open element_embed_close_link" style="display: none;">
  121. {{ 'element.show.close_embed'|trans({}, 'elements') }}
  122. </a>
  123. {% autoescape false %}
  124. {% if element.comments|length > 1 %}
  125. <a href="#hide_comments_{{ element.id }}" class="hide_comments" style="display: none;">
  126. {{ 'element.comments.hideare'|trans({}, 'elements') }}
  127. </a>
  128. <a href="#comments_{{ element.id }}" class="display_comments">
  129. {{ 'element.comments.thereare'|trans({'%count%':element.comments|length}, 'elements') }}
  130. </a>
  131. {% elseif element.comments|length == 1 %}
  132. <a href="#hide_comments_{{ element.id }}" class="hide_comments" style="display: none;">
  133. {{ 'element.comments.hideis'|trans({}, 'elements') }}
  134. </a>
  135. <a href="#comments_{{ element.id }}" class="display_comments">
  136. {{ 'element.comments.thereis'|trans({}, 'elements') }}
  137. </a>
  138. {%endif %}
  139. {% endautoescape %}
  140. <a href="#add_comment_{{ element.id }}" class="add_comment">
  141. {{ 'element.comments.add'|trans({}, 'elements') }}
  142. </a>
  143. </td>
  144. <td class="right">
  145. <ul>
  146. {% if element.owner.id != app.user.id %}
  147. <li class="vote">
  148. {% if element.hasVoteGood(app.user.id) %}
  149. <a class="vote" href="{{ path('ajax_element_remove_vote_good', {
  150. 'element_id' : element.id,
  151. 'token' : app.user.getPersonalHash
  152. }) }}" title="{{ 'element.vote.good'|trans({}, 'elements') }}">
  153. <img src="{{ asset('/bundles/muzichcore/img/up_b.png') }}" alt="vote" />
  154. </a>
  155. {% else %}
  156. <a class="vote" href="{{ path('ajax_element_add_vote_good', {
  157. 'element_id' : element.id,
  158. 'token' : app.user.getPersonalHash
  159. }) }}" title="{{ 'element.vote.good'|trans({}, 'elements') }}">
  160. <img src="{{ asset('/bundles/muzichcore/img/up_bw.png') }}" alt="vote" />
  161. </a>
  162. {% endif %}
  163. </li>
  164. {% endif %}
  165. <li class="score">
  166. <span class="score">
  167. {{ element.points }}
  168. </span>
  169. </li>
  170. <li>
  171. {% if element.getCountFavorite %}
  172. <a class="favorite_link" href="{{ path('favorite_remove', { 'id': element.id, 'token': app.user.personalHash }) }}" >
  173. <img src="{{ asset('bundles/muzichcore/img/favorite.png') }}" title="{{ 'element.favorite.remove'|trans({}, 'elements') }}" alt="{{ 'element.favorite.remove'|trans({}, 'elements') }}"/>
  174. </a>
  175. {% else %}
  176. <a class="favorite_link" href="{{ path('favorite_add', { 'id': element.id, 'token': app.user.personalHash }) }}" >
  177. <img src="{{ asset('bundles/muzichcore/img/favorite_bw.png') }}" title="{{ 'element.favorite.add'|trans({}, 'elements') }}" alt="{{ 'element.favorite.add'|trans({}, 'elements') }}" />
  178. </a>
  179. {% endif %}
  180. </li>
  181. </ul>
  182. </td>
  183. </tr>
  184. </table>
  185. {% if ids_display is defined %}
  186. {% if ids_display == event_const('TYPE_TAGS_PROPOSED') %}
  187. {% include 'MuzichCoreBundle:Element:tag.propositions.html.twig' with {
  188. 'propositions' : element.getTagsProposition,
  189. 'element_id' : element.id
  190. } %}
  191. {% endif %}
  192. {% endif %}
  193. {% if element.embed %}
  194. {% autoescape false %}
  195. <div id="embed_{{ element.id }}" class="element_embed" style="display: none;">
  196. {{ element.embed }}
  197. </div>
  198. {% endautoescape %}
  199. {% endif %}
  200. <div class="comments" style="display: none;">
  201. <ul class="comments">
  202. {% if element.comments|length %}
  203. {% for comment in element.comments %}
  204. {% include "MuzichCommentBundle:Comment:li.comment.html.twig" with {'element_id' : element.id} %}
  205. {% endfor %}
  206. {% endif %}
  207. </ul>
  208. <div class="comments_loader">
  209. <img class="comments_loader" style="display: none;" src="{{ asset('/bundles/muzichcore/img/ajax-loader.gif') }}" alt="loading"/>
  210. </div>
  211. <form
  212. action="{{ path('ajax_add_comment', {'element_id':element.id, 'token':app.user.getPersonalHash}) }}"
  213. method="post"
  214. name="add_comment"
  215. style="display: none;"
  216. class="add_comment"
  217. >
  218. {% include "MuzichCommentBundle:Comment:form.html.twig" with {
  219. 'submit_value' : 'element.comments.add_submit'|trans({}, 'elements'),
  220. 'cancel_value' : 'element.comments.add_cancel'|trans({}, 'elements'),
  221. 'following' : element.userFollowComments(app.user.id),
  222. 'own' : (app.user.id == element.owner.id)
  223. } %}
  224. </form>
  225. <a href="#add_comment_{{ element.id }}" class="add_comment">
  226. {{ 'element.comments.add'|trans({}, 'elements') }}
  227. </a>
  228. </div>