side-bar.pug 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. .dropdown(
  2. dropdown
  3. dropdown-append-to-body
  4. )
  5. a.btn.btn-primary.sidebar-new-proj-btn.dropdown-toggle(
  6. href="#",
  7. data-toggle="dropdown",
  8. dropdown-toggle
  9. )
  10. | #{translate("new_project")}
  11. ul.dropdown-menu(role="menu")
  12. li
  13. a(
  14. href,
  15. ng-click="openCreateProjectModal()"
  16. ) #{translate("blank_project")}
  17. li
  18. a(
  19. href,
  20. ng-click="openCreateProjectModal('example')"
  21. ) #{translate("example_project")}
  22. li
  23. a(
  24. href,
  25. ng-click="openUploadProjectModal()"
  26. ) #{translate("upload_project")}
  27. != moduleIncludes("newProjectMenu", locals)
  28. if portalTemplates.length > 0
  29. //- portalTemplates is set in ProjectController
  30. li.divider
  31. li.dropdown-header #{translate("institution")} #{translate("templates")}
  32. for portal in portalTemplates
  33. li
  34. a.menu-indent(
  35. href=portal.url + "#templates",
  36. ng-non-bindable
  37. ) #{portal.name}
  38. if (templates)
  39. //- templates is an express local var, via settings.templateLinks
  40. li.divider
  41. li.dropdown-header #{translate("templates")}
  42. each item in templates
  43. li
  44. a.menu-indent(href=item.url) #{translate(item.name)}
  45. .row-spaced(ng-if="projects.length > 0", ng-cloak)
  46. ul.list-unstyled.folders-menu(
  47. ng-controller="TagListController"
  48. )
  49. li(ng-class="{active: (filter == 'all')}", ng-click="filterProjects('all')")
  50. a(href) #{translate("all_projects")}
  51. li(ng-class="{active: (filter == 'owned')}", ng-click="filterProjects('owned')")
  52. a(href) #{translate("your_projects")}
  53. li(ng-class="{active: (filter == 'shared')}", ng-click="filterProjects('shared')")
  54. a(href) #{translate("shared_with_you")}
  55. li.folders-menu-item-with-tooltip(ng-class="{active: (filter == 'archived')}", ng-click="filterProjects('archived')")
  56. a(href) #{settings.overleaf ? translate("archived_projects") : translate("deleted_projects")}
  57. .folders-menu-tooltip-trigger(
  58. href
  59. tooltip=translate('archived_projects_info_note')
  60. tooltip-placement="right"
  61. tooltip-append-to-body="true"
  62. stop-propagation="click"
  63. ) i
  64. li.folders-menu-item-with-tooltip(ng-class="{active: (filter == 'trashed')}", ng-click="filterProjects('trashed')")
  65. a(href) #{translate("trashed_projects")}
  66. .folders-menu-tooltip-trigger(
  67. href
  68. tooltip=translate('trashed_projects_info_note')
  69. tooltip-placement="right"
  70. tooltip-append-to-body="true"
  71. stop-propagation="click"
  72. ) i
  73. li.separator
  74. h2 #{translate("tags_slash_folders")}
  75. li.tag(ng-cloak)
  76. a.tag-name(href, ng-click="openNewTagModal()")
  77. i.fa.fa-fw.fa-plus(aria-hidden="true")
  78. span.name #{translate("new_folder")}
  79. li.tag(
  80. ng-repeat="tag in tags | orderBy:'name'",
  81. ng-class="{active: tag.selected}",
  82. ng-cloak,
  83. ng-click="selectTag(tag)"
  84. )
  85. a.tag-name(href)
  86. i.icon.fa.fa-fw(
  87. ng-class="{\
  88. 'fa-folder-open': tag.selected,\
  89. 'fa-folder': !tag.selected\
  90. }"
  91. ng-style="{ 'color': 'hsl({{ getHueForTagId(tag._id) }}, 70%, 45%)' }"
  92. aria-hidden="true"
  93. )
  94. span.name {{tag.name}}
  95. span.subdued ({{countProjectsForTag(tag)}})
  96. span.dropdown.tag-menu(dropdown)
  97. a.dropdown-toggle(
  98. href="#",
  99. data-toggle="dropdown",
  100. dropdown-toggle,
  101. stop-propagation="click"
  102. )
  103. span.caret
  104. ul.dropdown-menu.dropdown-menu-right(
  105. role="menu"
  106. )
  107. li
  108. a(href, ng-click="renameTag(tag)", stop-propagation="click")
  109. | #{translate("rename")}
  110. li
  111. a(href, ng-click="deleteTag(tag)", stop-propagation="click")
  112. | #{translate("delete")}
  113. li.tag.untagged(
  114. ng-if="tags.length",
  115. ng-cloak,
  116. ng-click="selectUntagged()"
  117. ng-class="{active: filter === 'untagged'}",
  118. )
  119. a.tag-name(href)
  120. span.name
  121. | #{translate("uncategorized")}
  122. span.subdued ({{ nUntagged }})
  123. .row-spaced(ng-if="projects.length == 0", ng-cloak)
  124. .first-project
  125. div
  126. i.fa.fa-arrow-up.fa-2x(aria-hidden="true")
  127. div
  128. strong #{translate("create_your_first_project")}
  129. - if (showUserDetailsArea)
  130. span(ng-controller="LeftHandMenuPromoController", ng-cloak)
  131. .row-spaced#userProfileInformation(ng-if="hasProjects")
  132. div(ng-show="userEmails.length > 0 && userAffiliations.length == 0", ng-cloak)
  133. hr
  134. .text-centered.user-profile
  135. p Are you affiliated with an institution?
  136. a.btn.btn-info(
  137. href="/user/settings"
  138. ) Add Affiliation
  139. //- .row-spaced(ng-if="hasProjects && userHasNoSubscription && !userOnPayingUniversity", ng-cloak).text-centered
  140. //- hr
  141. //- p.small #{translate("on_free_sl")}
  142. //- p
  143. //- a(href="/user/subscription/plans" ng-click="upgradeSubscription()").btn.btn-primary #{translate("upgrade")}
  144. //- p.small.text-centered
  145. //- | #{translate("or_unlock_features_bonus")}
  146. //- a(href="/user/bonus" ng-click="share()") #{translate("sharing_sl")}.
  147. .row-spaced(ng-if="hasProjects && userHasNoSubscription && !userOnPayingUniversity", ng-cloak).text-centered
  148. hr
  149. p.small To help you work from home throughout 2020 and beyond, we're providing specially discounted annual plans.
  150. p
  151. a(href="https://www.overleaf.com/events/wfh2020").btn.btn-primary Upgrade
  152. script.
  153. window.userHasNoSubscription = #{!!(settings.enableSubscriptions && !hasSubscription)}