| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- include ../../_mixins/reconfirm_affiliation
- .user-notifications(ng-controller="NotificationsController")
- ul.list-unstyled(
- ng-if="notifications.length > 0 && projects.length > 0",
- ng-cloak
- )
- li.notification-entry(
- ng-repeat="notification in notifications"
- )
- div(ng-switch="notification.templateKey" ng-hide="notification.hide")
- .alert.alert-info(
- ng-switch-when="notification_project_invite",
- ng-controller="ProjectInviteNotificationController"
- )
- .notification-body
- span(ng-show="!notification.accepted") !{translate("notification_project_invite_message", { userName: "{{ userName }}", projectName: "{{ projectName }}" })}
- span(ng-show="notification.accepted") !{translate("notification_project_invite_accepted_message", { projectName: "{{ projectName }}" })}
- .notification-action
- a.pull-right.btn.btn-sm.btn-info(
- ng-show="notification.accepted",
- href="/project/{{ notification.messageOpts.projectId }}"
- ) #{translate("open_project")}
- a.pull-right.btn.btn-sm.btn-info(
- href,
- ng-click="accept()",
- ng-disabled="notification.inflight",
- ng-show="!notification.accepted"
- )
- span(ng-show="!notification.inflight") #{translate("join_project")}
- span(ng-show="notification.inflight")
- i.fa.fa-fw.fa-spinner.fa-spin(aria-hidden="true")
- |
- | #{translate("joining")}…
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-info(
- ng-switch-when="wfh_2020_upgrade_offer"
- )
- .notification-body
- span Important notice: Your free WFH2020 upgrade came to an end on June 30th 2020. We're still providing a number of special initiatives to help you continue collaborating throughout 2020.
- .notification-action
- a.pull-right.btn.btn-sm.btn-info(href="https://www.overleaf.com/events/wfh2020") View
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-info(
- ng-switch-when="notification_ip_matched_affiliation"
- ng-if="notification.messageOpts.ssoEnabled"
- )
- .notification-body
- | !{translate("looks_like_youre_at", {institutionName: '{{notification.messageOpts.university_name}}'}, ['strong'])}
- br
- | !{translate("you_can_now_log_in_sso", {}, ['strong'])}
- br
- | #{translate("link_institutional_email_get_started", {}, ['strong'])}
- a(
- ng-href="{{notification.messageOpts.portalPath || 'https://www.overleaf.com/learn/how-to/Institutional_Login'}}"
- ) #{translate("find_out_more_nt")}
- .notification-action
- a.pull-right.btn.btn-sm.btn-info(
- ng-href=`{{samlInitPath}}?university_id={{notification.messageOpts.institutionId}}&auto=/project`
- )
- | #{translate("link_account")}
- .notification-close
- button.btn-sm(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-info(
- ng-switch-when="notification_ip_matched_affiliation"
- ng-if="!notification.messageOpts.ssoEnabled"
- )
- .notification-body
- | !{translate("looks_like_youre_at", {institutionName: '{{notification.messageOpts.university_name}}'}, ['strong'])}
- br
- | !{translate("did_you_know_institution_providing_professional", {institutionName: '{{notification.messageOpts.university_name}}'}, ['strong'])}
- br
- | #{translate("add_email_to_claim_features")}
- .notification-action
- a.pull-right.btn.btn-sm.btn-info(
- href="/user/settings"
- ) #{translate("add_affiliation")}
- .notification-close
- button.btn-sm(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-danger(
- ng-switch-when="notification_tpds_file_limit"
- )
- .notification-body
- | Error: Your project
- strong {{ notification.messageOpts.projectName }}
- | has gone over the 2000 file limit using an integration (e.g. Dropbox or GitHub) <br/>
- | Please decrease the size of your project to prevent further errors.
- .notification-action
- a.pull-right.btn.btn-sm.btn-info(href="/user/settings")
- | Account Settings
- .notification-close
- button.btn-sm(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-warning(
- ng-switch-when="notification_dropbox_duplicate_project_names"
- )
- .notification-body
- p()
- | !{translate("dropbox_duplicate_project_names", { projectName: '{{notification.messageOpts.projectName}}'}, ['strong'])}
- p()
- | !{translate("dropbox_duplicate_project_names_suggestion", {}, ['strong'])}
- |
- a(href="/learn/how-to/Dropbox_Synchronization#Troubleshooting") #{translate("learn_more")}
- |.
- .notification-close
- button.btn-sm(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-info(
- ng-switch-when="notification_dropbox_unlinked_due_to_lapsed_reconfirmation"
- )
- .notification-body
- if user.features.dropbox
- | !{translate("dropbox_unlinked_premium_feature", {}, ['strong'])}
- | !{translate("can_now_relink_dropbox", {}, [{name: 'a', attrs: {href: '/user/settings#project-sync' }}])}
- else
- | !{translate("dropbox_unlinked_premium_feature", {}, ['strong'])}
- | !{translate("confirm_affiliation_to_relink_dropbox")}
- |
- a(href="/learn/how-to/Institutional_Email_Reconfirmation") #{translate("learn_more")}
- .notification-close
- button.btn-sm(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-info(
- ng-switch-default
- )
- span(ng-bind-html="notification.html").notification-body
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- ul.list-unstyled(
- ng-if="notificationsInstitution.length > 0",
- ng-cloak
- )
- li.notification-entry(
- ng-repeat="notification in notificationsInstitution"
- )
- div(ng-switch="notification.templateKey" ng-hide="notification.hide")
- .alert.alert-info(
- ng-switch-when="notification_institution_sso_available"
- )
- .notification-body
- p !{translate("can_link_institution_email_acct_to_institution_acct", {appName: settings.appName, email: "{{notification.email}}", institutionName: "{{notification.institutionName}}"})}
- div !{translate("doing_this_allow_log_in_through_institution", {appName: settings.appName})}
- a(href="/learn/how-to/Institutional_Login") #{translate("learn_more")}
- .notification-action
- a.btn.btn-sm.btn-info(ng-href="{{samlInitPath}}?university_id={{notification.institutionId}}&auto=/project&email={{notification.email}}")
- | #{translate('link_account')}
- .alert.alert-info(
- ng-switch-when="notification_institution_sso_linked"
- )
- .notification-body
- div !{translate("account_has_been_link_to_institution_account", {appName: settings.appName, email: "{{notification.email}}", institutionName: "{{notification.institutionName}}"})}
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-warning(
- ng-switch-when="notification_institution_sso_non_canonical"
- )
- .notification-body
- div
- i.fa.fa-fw.fa-exclamation-triangle(aria-hidden="true")
- | !{translate("tried_to_log_in_with_email", {email: "{{notification.requestedEmail}}"})} !{translate("in_order_to_match_institutional_metadata_associated", {email: "{{notification.institutionEmail}}"})}
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-info(
- ng-switch-when="notification_institution_sso_already_registered"
- )
- .notification-body
- | !{translate("tried_to_register_with_email", {appName: settings.appName, email: "{{notification.email}}"})}
- | #{translate("we_logged_you_in")}
- .notification-action
- a.btn.btn-sm.btn-info(href="/learn/how-to/Institutional_Login")
- | #{translate("find_out_more")}
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- .alert.alert-danger(ng-switch-when="notification_institution_sso_error")
- .notification-body
- div
- i.fa.fa-fw.fa-exclamation-triangle(aria-hidden="true")
- | #{translate("generic_something_went_wrong")}.
- div(ng-if="notification.error.translatedMessage" ng-bind-html="notification.error.translatedMessage")
- div(ng-else="notification.error.message") {{ notification.error.message}}
- div(ng-if="notification.error.tryAgain") #{translate("try_again")}.
- .notification-close
- button(ng-click="dismiss(notification)").close.pull-right
- span(aria-hidden="true") ×
- span.sr-only #{translate("close")}
- ul.list-unstyled(
- ng-controller="EmailNotificationController",
- ng-cloak
- )
- li.notification-entry(
- ng-repeat="userEmail in userEmails",
- ng-if="showConfirmEmail(userEmail) && projects.length > 0"
- )
- .alert.alert-warning
- .notification-body
- div(ng-if="!userEmail.confirmationInflight")
- | #{translate("please_confirm_email", {emailAddress: "{{ userEmail.email }}"})}
- |
- a(
- href
- ng-click="resendConfirmationEmail(userEmail)"
- ) (#{translate('resend_confirmation_email')})
- div(ng-if="userEmail.confirmationInflight")
- i.fa.fa-spinner.fa-spin(aria-hidden="true")
- |
- | #{translate('resending_confirmation_email')}…
- div(ng-if="!userEmail.confirmationInflight && userEmail.error" aria-live="polite")
- span(ng-if="userEmail.errorMessage") {{ userEmail.errorMessage }}
- span(ng-if="!userEmail.errorMessage") #{translate('generic_something_went_wrong')}
- ui.list-unstyled(ng-controller="UserAffiliationsReconfirmController")
- li.notification-entry(
- ng-repeat="userEmail in allInReconfirmNotificationPeriods"
- )
- .alert.alert-info()
- +reconfirmAffiliationNotification('/project')
- li.notification-entry(
- ng-repeat="userEmail in userEmails"
- ng-if="userEmail.samlIdentifier && userEmail.samlIdentifier.providerId === reconfirmedViaSAML"
- )
- +reconfirmedAffiliationNotification()
|