home.mak 6.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <%inherit file="local:templates.master_authenticated_left_treeview_right_toolbar"/>
  2. <%namespace name="TIM" file="tracim.templates.pod"/>
  3. <%namespace name="ROW" file="tracim.templates.widgets.row"/>
  4. <%namespace name="TABLE_ROW" file="tracim.templates.widgets.table_row"/>
  5. <%namespace name="LEFT_MENU" file="tracim.templates.widgets.left_menu"/>
  6. <%namespace name="P" file="tracim.templates.widgets.paragraph"/>
  7. <%namespace name="TOOLBAR" file="tracim.templates.user_toolbars"/>
  8. <%def name="title()">
  9. ${_('Dashboard')}
  10. </%def>
  11. <%def name="TITLE_ROW()">
  12. <div class="content__title">
  13. ${ROW.TITLE_ROW(_('My Dashboard'), 'fa-home', 'content__title__subtitle-home-hidden-xs', 't-user-color', _('Welcome to your home, {username}.').format(username=fake_api.current_user.name))}
  14. </div>
  15. </%def>
  16. <%def name="SIDEBAR_RIGHT_CONTENT()">
  17. ${TOOLBAR.USER_ME(fake_api.current_user)}
  18. </%def>
  19. <%def name="SIDEBAR_LEFT_CONTENT()">
  20. ## This is the default left sidebar implementation
  21. ${LEFT_MENU.TREEVIEW('sidebar-left-menu', '__')}
  22. </%def>
  23. <%def name="REQUIRED_DIALOGS()">
  24. ${TIM.MODAL_DIALOG('user-edit-modal-dialog')}
  25. ${TIM.MODAL_DIALOG('user-edit-password-modal-dialog')}
  26. </%def>
  27. <div class="content__home">
  28. <div class="content__home__tab-wrapper recent_activity">
  29. <div class="content__home__tab__item recent_activity active">
  30. <i class="fa fa-fw fa-line-chart"></i>${_('Recent Activity')}
  31. % if fake_api.last_actives.contents:
  32. % if fake_api.last_actives.contents[0]:
  33. <span class="content__home__tab__item-lastactivity">[${fake_api.last_actives.contents[0].last_activity.delta}]</span>
  34. % endif
  35. % endif
  36. </div>
  37. <div class="content__home__tab__item unread">
  38. % if fake_api.last_unread.nb > 0:
  39. <div class="content__home__tab__item-news fa-stack">
  40. <i class="fa fa-bookmark fa-stack-1x"></i>
  41. <i class="content__home__tab__item-news__number fa-stack-1x">
  42. % if fake_api.last_unread.nb == 10:
  43. ${fake_api.last_unread.nb}+
  44. % else:
  45. ${fake_api.last_unread.nb}
  46. % endif
  47. </i>
  48. </div>
  49. % endif
  50. <i class="fa fa-fw fa-eye-slash"></i>${_('Not Read')}
  51. </div>
  52. <div class="content__home__tab__item workspace">
  53. <i class="fa fa-bank"></i>${_('My workspaces')}
  54. </div>
  55. </div>
  56. ## RECENT ACTIVITY
  57. <div class="" id="recent-activity-panel">
  58. <div class="panel panel-warning">
  59. <div class="panel-body">
  60. % if fake_api.last_actives.nb <= 0:
  61. ${P.EMPTY_CONTENT(_('There\'s no activity yet.'))}
  62. % else:
  63. <table class="table table-hover">
  64. % for item in fake_api.last_actives.contents:
  65. <tr>
  66. <td>
  67. <i class="${item.type.icon} fa-fw ${item.type.color}"></i>
  68. <a href="${item.url}">${item.label}</a>
  69. <br/>
  70. <span class="t-less-visible">${item.workspace.label}</span>
  71. </td>
  72. <td title="${_('Last activity: {datetime}').format(datetime=item.last_activity.label)}">
  73. ${item.last_activity.delta}
  74. </td>
  75. </tr>
  76. % endfor
  77. </table>
  78. % endif
  79. </div>
  80. </div>
  81. </div>
  82. ## NOT READ
  83. <div class="" id="unread-content-panel">
  84. <div class="panel panel-success">
  85. <div class="panel-body">
  86. % if fake_api.last_unread.nb <= 0:
  87. ${P.EMPTY_CONTENT(_('No new content.'))}
  88. % else:
  89. <a href="${tg.url('/content/mark_all_read')}" class="content__home__tab__content-unread btn btn-default">
  90. <i class="fa fa-check-circle-o"></i>
  91. ${_('Mark everything as read')}
  92. </a>
  93. <table class="table table-hover">
  94. % for item in fake_api.last_unread.contents:
  95. <tr>
  96. <td>
  97. <i class="${item.type.icon} fa-fw ${item.type.color}"></i>
  98. <a href="${item.url}">${item.label}</a>
  99. <br/>
  100. <span class="t-less-visible">${item.workspace.label}</span>
  101. </td>
  102. <td title="${_('Last activity: {datetime}').format(datetime=item.last_activity.label)}">
  103. ${item.last_activity.delta}
  104. </td>
  105. </tr>
  106. % endfor
  107. </table>
  108. % endif
  109. </div>
  110. </div>
  111. </div>
  112. ## Workspace list and notifications
  113. <div class="" id="workspaces-panel">
  114. <div class="panel panel-info">
  115. <div class="panel-body">
  116. % if len(fake_api.current_user.roles)<=0:
  117. ${P.EMPTY_CONTENT(_('I\'m not member of any workspace.'))}
  118. % else:
  119. <table class="table">
  120. <thead>
  121. <tr>
  122. <th>${_('Workspace')}</th>
  123. <th>${_('Role')}</th>
  124. <th>${_('Email Notifications')}</th>
  125. </tr>
  126. </thead>
  127. % for role in fake_api.current_user.roles:
  128. % if not role.workspace.is_deleted:
  129. ${TABLE_ROW.USER_ROLE_IN_WORKSPACE(fake_api.current_user, role, show_id=False, enable_link='/user/me/workspaces/{workspace}/enable_notifications?next_url=/home', disable_link='/user/me/workspaces/{workspace}/disable_notifications?next_url=/home', base_link='/workspaces/{workspace}')}
  130. % endif
  131. % endfor
  132. </table>
  133. % endif
  134. </div>
  135. </div>
  136. </div>
  137. </div>