getone.mak 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <%inherit file="local:templates.master_authenticated_left_treeview_right_toolbar"/>
  2. <%namespace name="TIM" file="tracim.templates.pod"/>
  3. <%namespace name="TOOLBAR" file="tracim.templates.thread.toolbar"/>
  4. <%namespace name="LEFT_MENU" file="tracim.templates.widgets.left_menu"/>
  5. <%namespace name="WIDGETS" file="tracim.templates.user_workspace_widgets"/>
  6. <%namespace name="FORMS" file="tracim.templates.thread.forms"/>
  7. <%namespace name="BUTTON" file="tracim.templates.widgets.button"/>
  8. <%namespace name="TABLE_ROW" file="tracim.templates.widgets.table_row"/>
  9. <%namespace name="ICON" file="tracim.templates.widgets.icon"/>
  10. <%namespace name="P" file="tracim.templates.widgets.paragraph"/>
  11. <%def name="title()">${result.thread.label}</%def>
  12. <%def name="SIDEBAR_LEFT_CONTENT()">
  13. ${LEFT_MENU.TREEVIEW('sidebar-left-menu', 'workspace_{}__item_{}'.format(result.thread.workspace.id, result.thread.id))}
  14. </%def>
  15. <%def name="SIDEBAR_RIGHT_CONTENT()">
  16. ${TOOLBAR.SECURED_THREAD(fake_api.current_user, result.thread.workspace, result.thread)}
  17. </%def>
  18. <%def name="REQUIRED_DIALOGS()">
  19. ${TIM.MODAL_DIALOG('thread-edit-modal-dialog', 'modal-lg')}
  20. ${TIM.MODAL_DIALOG('thread-move-modal-dialog')}
  21. </%def>
  22. ############################################################################
  23. ##
  24. ## THREAD CONTENT BELOW
  25. ##
  26. ############################################################################
  27. <div class="content-container ${'not-editable' if not result.thread.is_editable else ''} ${'archived' if result.thread.is_archived else ''} ${'deleted' if result.thread.is_deleted else ''}">
  28. <div class="t-page-header-row bg-secondary">
  29. <div class="main">
  30. <h1 class="page-header t-thread-color-border">
  31. <i class="fa fa-fw fa-lg fa-comments-o tracim-less-visible t-thread-color"></i>
  32. ${result.thread.label}
  33. <span class="pull-right">
  34. ${WIDGETS.SECURED_SHOW_CHANGE_STATUS_FOR_THREAD(fake_api.current_user, result.thread.workspace, result.thread)}
  35. </span>
  36. </h1>
  37. <div style="margin: -1.5em auto -1.5em auto;" class="tracim-less-visible">
  38. <% created_localized = h.get_with_timezone(result.thread.created) %>
  39. <p>${_('page created on {date} at {time} by <b>{author}</b>').format(date=h.date(created_localized), time=h.time(created_localized), author=result.thread.owner.name)|n}</p>
  40. </div>
  41. </div>
  42. </div>
  43. % if (result.thread.is_archived) :
  44. <div class="alert alert-info" role="alert">
  45. <div class="">
  46. <p>
  47. <span class="pull-left"><i class="fa fa-fw fa-2x fa-warning" alt="" title=""></i></span>
  48. ${_('Vous consultez <b>une version archivée</b> de la page courante.')|n}
  49. </p>
  50. </div>
  51. </div>
  52. % elif (result.thread.is_deleted) :
  53. <div class="alert alert-info" role="alert">
  54. <div class="">
  55. <p>
  56. <span class="pull-left"><i class="fa fa-fw fa-2x fa-warning" alt="" title=""></i></span>
  57. ${_('Vous consultez <b>une version supprimée</b> de la page courante.')|n}
  58. </p>
  59. </div>
  60. </div>
  61. % endif
  62. % if result.thread.status.id=='closed-deprecated':
  63. <div class="alert alert-warning" role="alert">
  64. <div class="">
  65. <p>
  66. <span class="pull-left">${ICON.FA_FW_2X('fa-warning')}</span>
  67. ${_('<b>This information is deprecated</b>')|n}
  68. </p>
  69. </div>
  70. </div>
  71. % endif
  72. % if result.thread.content:
  73. <div class="">
  74. ## TODO - 2015-07-22 - D.A. - should we show a breadcrumb or not ?
  75. ## <button id="current-page-breadcrumb-toggle-button" class="btn btn-link" title="${_('Show localisation')}"><i class="fa fa-map-marker"></i></button>
  76. ## ${WIDGETS.BREADCRUMB('current-page-breadcrumb', fake_api.breadcrumb)}
  77. <div class="well t-half-spacer-above">
  78. % if result.thread.status.id in ('closed-validated', 'closed-unvalidated'):
  79. <span style="font-size: 1.5em;"><i class="pull-right fa fa-4x ${result.thread.status.css} ${result.thread.status.icon}"></i></span>
  80. % endif
  81. ${result.thread.content|n}
  82. </div>
  83. </div>
  84. % endif
  85. <div class="content__detail thread">
  86. <div class="threads-history-reverse">
  87. % if inverted:
  88. <a href="${tg.url('/workspaces/{}/folders/{}/threads/{}'.format(result.thread.workspace.id, result.thread.parent.id, result.thread.id))}">
  89. <i class="fa fa-chevron-down" aria-hidden="true"></i>
  90. % else:
  91. <a href="${tg.url('/workspaces/{}/folders/{}/threads/{}?inverted=1'.format(result.thread.workspace.id, result.thread.parent.id, result.thread.id))}">
  92. <i class="fa fa-chevron-up" aria-hidden="true"></i>
  93. % endif
  94. ${_('Invert order')}
  95. </a>
  96. </div>
  97. % if h.user_role(fake_api.current_user, result.thread.workspace)<=1:
  98. ## READONLY USER
  99. <% a = 'b' %>
  100. % else:
  101. % if result.thread.status.id!='open':
  102. <p class="tracim-less-visible">${_('<b>Note</b>: In case you\'d like to post a reply, you must first open again the thread')|n}</p>
  103. % else:
  104. % if (not result.thread.is_archived and not result.thread.is_deleted) :
  105. <p class="t-half-spacer-below">
  106. ${BUTTON.DATA_TARGET_AS_TEXT('new-comment', _('Post a reply...'), 'btn btn-link')}
  107. ${FORMS.NEW_COMMENT_IN_THREAD('new-comment', result.thread.workspace.id, result.thread.parent.id, result.thread.id)}
  108. </p>
  109. % endif
  110. % endif
  111. % endif
  112. <!-- % for event in reversed(result.thread.history): -->
  113. % for event in result.thread.history:
  114. ## TODO - D.A. - 2015-08-20
  115. ## Allow to show full history (with status change and archive/unarchive)
  116. ${WIDGETS.SECURED_HISTORY_VIRTUAL_EVENT(fake_api.current_user, event)}
  117. % endfor
  118. ## % for comment in result.thread.comments:
  119. ## ${WIDGETS.SECURED_TIMELINE_ITEM(fake_api.current_user, comment)}
  120. ## % endfor
  121. ##
  122. </div>
  123. </div>