notifications.pug 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. .user-notifications(ng-controller="NotificationsController")
  2. ul.list-unstyled(
  3. ng-if="notifications.length > 0 && projects.length > 0",
  4. ng-cloak
  5. )
  6. li.notification-entry(
  7. ng-repeat="notification in notifications"
  8. )
  9. div(ng-switch="notification.templateKey" ng-hide="notification.hide")
  10. .alert.alert-info(
  11. ng-switch-when="notification_project_invite",
  12. ng-controller="ProjectInviteNotificationController"
  13. )
  14. .notification-body
  15. span(ng-show="!notification.accepted") !{translate("notification_project_invite_message", { userName: "{{ userName }}", projectName: "{{ projectName }}" })}
  16. span(ng-show="notification.accepted") !{translate("notification_project_invite_accepted_message", { projectName: "{{ projectName }}" })}
  17. .notification-action
  18. a.pull-right.btn.btn-sm.btn-info(
  19. ng-show="notification.accepted",
  20. href="/project/{{ notification.messageOpts.projectId }}"
  21. ) #{translate("open_project")}
  22. a.pull-right.btn.btn-sm.btn-info(
  23. href,
  24. ng-click="accept()",
  25. ng-disabled="notification.inflight",
  26. ng-show="!notification.accepted"
  27. )
  28. span(ng-show="!notification.inflight") #{translate("join_project")}
  29. span(ng-show="notification.inflight")
  30. i.fa.fa-fw.fa-spinner.fa-spin(aria-hidden="true")
  31. |  
  32. | #{translate("joining")}...
  33. .notification-close
  34. button(ng-click="dismiss(notification)").close.pull-right
  35. span(aria-hidden="true") ×
  36. span.sr-only #{translate("close")}
  37. .alert.alert-info(
  38. ng-switch-when="notification_ip_matched_affiliation"
  39. )
  40. .notification-body
  41. | It looks like you're at
  42. strong {{ notification.messageOpts.university_name }}! <br/>
  43. | Did you know that {{notification.messageOpts.university_name}} is providing
  44. strong free Overleaf Professional accounts
  45. | to everyone at {{notification.messageOpts.university_name}}? <br/>
  46. | Add an institutional email address to claim your account.
  47. .notification-action
  48. a.pull-right.btn.btn-sm.btn-info(href="/user/settings")
  49. | Add Affiliation
  50. .notification-close
  51. button.btn-sm(ng-click="dismiss(notification)").close.pull-right
  52. span(aria-hidden="true") &times;
  53. span.sr-only #{translate("close")}
  54. .alert.alert-info(
  55. ng-switch-default
  56. )
  57. span(ng-bind-html="notification.html").notification-body
  58. .notification-close
  59. button(ng-click="dismiss(notification)").close.pull-right
  60. span(aria-hidden="true") &times;
  61. span.sr-only #{translate("close")}
  62. ul.list-unstyled(
  63. ng-if="notificationsInstitution.length > 0",
  64. ng-cloak
  65. )
  66. li.notification-entry(
  67. ng-repeat="notification in notificationsInstitution"
  68. )
  69. div(ng-switch="notification.templateKey" ng-hide="notification.hide")
  70. .alert.alert-info(
  71. ng-switch-when="notification_institution_sso_available"
  72. )
  73. .notification-body
  74. p !{translate("can_link_institution_email_acct_to_institution_acct", {appName: settings.appName, email: "{{notification.email}}", institutionName: "{{notification.institutionName}}"})}
  75. div !{translate("doing_this_allow_log_in_through_institution", {appName: settings.appName})}
  76. .notification-action
  77. a.btn.btn-sm.btn-info(href="{{samlInitPath}}?university_id={{notification.institutionId}}&auto=/project&email={{notification.email}}")
  78. | #{translate('link_account')}
  79. .notification-close
  80. button(ng-click="dismiss(notification)").close.pull-right
  81. span(aria-hidden="true") &times;
  82. span.sr-only #{translate("close")}
  83. .alert.alert-info(
  84. ng-switch-when="notification_institution_sso_linked"
  85. )
  86. .notification-body
  87. div !{translate("account_has_been_link_to_institution_account", {appName: settings.appName, email: "{{notification.email}}", institutionName: "{{notification.institutionName}}"})}
  88. .notification-close
  89. button(ng-click="dismiss(notification)").close.pull-right
  90. span(aria-hidden="true") &times;
  91. span.sr-only #{translate("close")}
  92. .alert.alert-warning(
  93. ng-switch-when="notification_institution_sso_non_canonical"
  94. )
  95. .notification-body
  96. div
  97. i.fa.fa-fw.fa-exclamation-triangle(aria-hidden="true")
  98. | !{translate("tried_to_log_in_with_email", {email: "{{notification.requestedEmail}}"})} !{translate("in_order_to_match_institutional_metadata_associated", {email: "{{notification.institutionEmail}}"})}
  99. .notification-close
  100. button(ng-click="dismiss(notification)").close.pull-right
  101. span(aria-hidden="true") &times;
  102. span.sr-only #{translate("close")}
  103. .alert.alert-info(
  104. ng-switch-when="notification_institution_sso_already_registered"
  105. )
  106. .notification-body
  107. | !{translate("tried_to_register_with_email", {appName: settings.appName, email: "{{notification.email}}"})}
  108. | #{translate("we_logged_you_in")}
  109. .notification-action
  110. a.btn.btn-sm.btn-info(href="/learn/how-to/Institutional_Login")
  111. | #{translate("find_out_more")}
  112. .notification-close
  113. button(ng-click="dismiss(notification)").close.pull-right
  114. span(aria-hidden="true") &times;
  115. span.sr-only #{translate("close")}
  116. .alert.alert-danger(
  117. ng-switch-when="notification_institution_sso_linked_by_another"
  118. )
  119. .notification-body
  120. div
  121. i.fa.fa-fw.fa-exclamation-triangle(aria-hidden="true")
  122. | !{translate("institution_account_tried_to_add_already_registered")}
  123. .notification-close
  124. button(ng-click="dismiss(notification)").close.pull-right
  125. span(aria-hidden="true") &times;
  126. span.sr-only #{translate("close")}
  127. ul.list-unstyled(
  128. ng-controller="EmailNotificationController",
  129. ng-cloak
  130. )
  131. li.notification-entry(
  132. ng-repeat="userEmail in userEmails",
  133. ng-if="showConfirmEmail(userEmail) && projects.length > 0"
  134. )
  135. .alert.alert-warning(ng-if="!userEmail.confirmationInflight")
  136. .notification-body
  137. | #{translate("please_confirm_email", {emailAddress: "{{ userEmail.email }}"})}
  138. |
  139. a(
  140. href
  141. ng-click="resendConfirmationEmail(userEmail)"
  142. ) (#{translate('resend_confirmation_email')})
  143. .alert.alert-warning(ng-if="userEmail.confirmationInflight")
  144. .notification-body
  145. i.fa.fa-spinner.fa-spin(aria-hidden="true")
  146. |
  147. | #{translate('resending_confirmation_email')}&hellip;