list.pug 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. extends ../layout
  2. block vars
  3. - var suppressNavContentLinks = true
  4. block content
  5. script#data(type="application/json").
  6. !{StringHelper.stringifyJsonForScript({ projects, tags, notifications })}
  7. script(type="text/javascript").
  8. window.data = JSON.parse($("#data").text());
  9. window.algolia = {
  10. institutions: {
  11. app_id: '#{algolia_app_id}',
  12. api_key: '#{algolia_api_key}'
  13. }
  14. };
  15. if uiConfig.renderAnnouncements
  16. .announcements(
  17. ng-controller="AnnouncementsController"
  18. ng-class="{ 'announcements-open': ui.isOpen }"
  19. ng-cloak
  20. )
  21. .announcements-backdrop(
  22. ng-if="ui.isOpen"
  23. ng-click="toggleAnnouncementsUI();"
  24. )
  25. a.announcements-btn(
  26. href
  27. ng-if="announcements.length"
  28. ng-click="toggleAnnouncementsUI();"
  29. ng-class="{ 'announcements-btn-open': ui.isOpen, 'announcements-btn-has-new': ui.newItems }"
  30. )
  31. span.announcements-badge(ng-if="ui.newItems") {{ ui.newItems }}
  32. .announcements-body(
  33. ng-if="ui.isOpen"
  34. )
  35. .announcements-scroller
  36. .announcement(
  37. ng-repeat="announcement in announcements | filter:(ui.newItems ? { read: false } : '') track by announcement.id"
  38. )
  39. h2.announcement-header {{ announcement.title }}
  40. p.announcement-description(ng-bind-html="announcement.excerpt")
  41. .announcement-meta
  42. p.announcement-date {{ announcement.date | date:"longDate" }}
  43. a.announcement-link(
  44. ng-href="{{ announcement.url }}"
  45. ng-click="logAnnouncementClick()",
  46. target="_blank"
  47. ) Read more
  48. div.text-center(
  49. ng-if="ui.newItems > 0 && ui.newItems < announcements.length"
  50. )
  51. a.btn.btn-default.btn-sm(
  52. href
  53. ng-click="showAll();"
  54. ) Show all
  55. main.content.content-alt.project-list-page(
  56. ng-controller="ProjectPageController"
  57. role="main"
  58. )
  59. - if(typeof(suppressSystemMessages) == "undefined")
  60. .system-messages(
  61. ng-cloak
  62. ng-controller="SystemMessagesController"
  63. )
  64. .system-message(
  65. ng-repeat="message in messages"
  66. ng-controller="SystemMessageController"
  67. ng-hide="hidden"
  68. )
  69. button(ng-click="hide()").close.pull-right
  70. span(aria-hidden="true") &times;
  71. span.sr-only #{translate("close")}
  72. .system-message-content(ng-bind-html="htmlContent")
  73. include ../translations/translation_message
  74. .project-list-content(event-tracking=settings.overleaf ? "loads_v2_dash" : "", onboard=settings.overleaf ? "true" : "", event-tracking-trigger=settings.overleaf ? "load" : "", event-tracking-mb="true", event-segmentation="{location: 'dash', v2_onboard: true}")
  75. .project-list-row(ng-cloak)
  76. .project-list-container.row(ng-if="projects.length > 0")
  77. .project-list-sidebar-wrapper.col-md-2.col-xs-3
  78. aside.project-list-sidebar
  79. include ./list/side-bar
  80. .project-list-main.col-md-10.col-xs-9
  81. include ./list/notifications
  82. include ./list/project-list
  83. .project-list-empty.row(ng-if="projects.length === 0")
  84. .col-md-offset-2.col-md-8.col-md-offset-2.col-xs-8
  85. include ./list/empty-project-list
  86. include ./list/modals
  87. //- include ./list/front-chat