mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 22:23:42 +01:00
Merge branch 'master' into dcl-i850
Conflicts repaired: app/views/user/settings.pug modified: app/coffee/Features/Authentication/AuthenticationController.coffee modified: app/coffee/Features/Editor/EditorHttpController.coffee modified: app/coffee/Features/Email/EmailBuilder.coffee modified: app/coffee/Features/Errors/Errors.coffee modified: app/coffee/Features/Exports/ExportsController.coffee modified: app/coffee/Features/Exports/ExportsHandler.coffee modified: app/coffee/Features/Notifications/NotificationsBuilder.coffee modified: app/coffee/Features/Notifications/NotificationsHandler.coffee modified: app/coffee/Features/Project/ProjectController.coffee modified: app/coffee/Features/StaticPages/HomeController.coffee modified: app/coffee/Features/Subscription/planFeatures.coffee modified: app/coffee/Features/TokenAccess/TokenAccessController.coffee modified: app/coffee/Features/TokenAccess/TokenAccessHandler.coffee modified: app/coffee/Features/User/UserGetter.coffee modified: app/coffee/infrastructure/RedirectManager.coffee modified: app/coffee/infrastructure/Server.coffee modified: app/coffee/models/User.coffee modified: app/coffee/router.coffee modified: app/views/_mixins/links.pug modified: app/views/general/500.pug modified: app/views/layout/navbar.pug modified: app/views/project/editor/header.pug modified: app/views/project/editor/share.pug modified: app/views/project/list.pug modified: app/views/project/list/modals.pug modified: app/views/project/list/notifications.pug modified: app/views/project/list/side-bar.pug modified: app/views/project/list/v1-item.pug modified: app/views/subscriptions/_modal_group_inquiry.pug modified: app/views/subscriptions/dashboard.pug modified: app/views/user/settings.pug modified: config/settings.defaults.coffee modified: npm-shrinkwrap.json modified: package.json new file: public/apple-touch-icon.png new file: public/atlassian-domain-verification.html modified: public/coffee/ide/editor/directives/aceEditor.coffee modified: public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee modified: public/coffee/ide/share/controllers/ShareController.coffee modified: public/coffee/main.coffee deleted: public/coffee/main/account-merge-checker.coffee modified: public/coffee/main/contact-us.coffee modified: public/coffee/main/project-list/left-hand-menu-promo-controller.coffee new file: public/google4f15e48c48709a75.html new file: public/googleef256f97939bd9b7.html new file: public/img/advocates/friend.jpeg new file: public/img/grid.png new file: public/img/homepage.png new file: public/img/homepage@2x.png new file: public/img/other-brands/logo_google.svg new file: public/img/other-brands/logo_google_alt.svg new file: public/img/other-brands/logo_ieee.svg new file: public/img/other-brands/logo_orcid.svg new file: public/img/other-brands/logo_orcid_alt.svg new file: public/img/other-brands/logo_sharelatex.svg new file: public/img/other-brands/logo_twitter.svg new file: public/img/overleaf-partner/overleaf-greygreen-410.png new file: public/img/overleaf-partner/overleaf-white-410.png new file: public/static/brochures/Overleaf-Information-v8.pdf new file: public/static/brochures/Overleaf-Institutional-Solutions-v1.pdf new file: public/static/brochures/Overleaf-Tri-Fold-leaflet.pdf new file: public/static/brochures/Overleaf-request-for-service.pdf new file: public/static/brochures/Overleaf_Institutional.pdf new file: public/static/campus-challenge/campus-challenge-2016-flyer.pdf new file: public/static/campus-challenge/campus-challenge-2016-poster.pdf new file: public/static/campus-challenge/campus-challenge-2017-flyer.pdf new file: public/static/campus-challenge/campus-challenge-2017-poster.pdf new file: public/static/latex/learn/free-online-introduction-to-latex-part-1.pdf new file: public/static/latex/learn/free-online-introduction-to-latex-part-2.pdf new file: public/static/latex/learn/free-online-introduction-to-latex-part-3.pdf new file: public/static/partners/caltech-library.gif new file: public/static/partners/stanford-building.jpg modified: public/stylesheets/_ol_style_includes.less modified: public/stylesheets/app/blog-posts.less modified: public/stylesheets/app/cms-page.less new file: public/stylesheets/app/content_page.less modified: public/stylesheets/app/editor/share.less modified: public/stylesheets/app/editor/toolbar.less modified: public/stylesheets/app/features.less modified: public/stylesheets/app/homepage.less new file: public/stylesheets/app/login-register.less modified: public/stylesheets/app/plans.less modified: public/stylesheets/app/portals.less modified: public/stylesheets/app/templates-v2.less modified: public/stylesheets/app/wiki.less modified: public/stylesheets/components/alerts.less modified: public/stylesheets/components/buttons.less modified: public/stylesheets/components/icons.less new file: public/stylesheets/components/images.less new file: public/stylesheets/components/tabs.less modified: public/stylesheets/core/_common-variables.less modified: public/stylesheets/core/ol-variables.less modified: public/stylesheets/ol-style.less modified: test/acceptance/coffee/ExportsTests.coffee new file: test/acceptance/coffee/RedirectUrlsTests.coffee modified: test/acceptance/coffee/TokenAccessTests.coffee modified: test/acceptance/coffee/helpers/User.coffee modified: test/acceptance/config/settings.test.coffee modified: test/unit/coffee/Authentication/AuthenticationControllerTests.coffee modified: test/unit/coffee/Editor/EditorHttpControllerTests.coffee modified: test/unit/coffee/Exports/ExportsControllerTests.coffee modified: test/unit/coffee/Exports/ExportsHandlerTests.coffee new file: test/unit/coffee/Notifications/NotificationsBuilderTests.coffee modified: test/unit/coffee/Project/ProjectControllerTests.coffee modified: test/unit/coffee/TokenAccess/TokenAccessControllerTests.coffee modified: test/unit/coffee/User/UserGetterTests.coffee deleted: test/unit/coffee/infrastructure/RedirectManagerTests.coffee
This commit is contained in:
@@ -18,8 +18,7 @@ mixin linkAdvisors(linkText, linkClass, track)
|
||||
| #{linkText ? linkText : 'advisor programme'}
|
||||
|
||||
mixin linkBenefits(linkText, linkClass)
|
||||
//- To Do: verify path
|
||||
a(href="/benefits" class=linkClass ? linkClass : '')
|
||||
a(href="/for/authors" class=linkClass ? linkClass : '')
|
||||
| #{linkText ? linkText : 'benefits'}
|
||||
|
||||
mixin linkBlog(linkText, linkClass, slug)
|
||||
@@ -36,8 +35,7 @@ mixin linkDash(linkText, linkClass)
|
||||
| #{linkText ? linkText : 'project dashboard'}
|
||||
|
||||
mixin linkEducation(linkText, linkClass)
|
||||
//- To Do: verify path
|
||||
a(href="/plans" class=linkClass ? linkClass : '')
|
||||
a(href="/for/edu" class=linkClass ? linkClass : '')
|
||||
| #{linkText ? linkText : 'teaching toolkit'}
|
||||
|
||||
mixin linkEmail(linkText, linkClass, email)
|
||||
@@ -66,8 +64,7 @@ mixin linkInvite(linkText, linkClass, track)
|
||||
| #{linkText ? linkText : 'invite your friends'}
|
||||
|
||||
mixin linkPlansAndPricing(linkText, linkClass)
|
||||
//- To Do: verify path
|
||||
a(href="/plans" class=linkClass ? linkClass : '')
|
||||
a(href="/user/subscription/plans" class=linkClass ? linkClass : '')
|
||||
| #{linkText ? linkText : 'plans and pricing'}
|
||||
|
||||
mixin linkPrintNewTab(linkText, linkClass, icon, track)
|
||||
@@ -121,6 +118,5 @@ mixin linkTweet(linkText, linkClass, tweetText, track)
|
||||
) #{linkText ? linkText : 'tweet'}
|
||||
|
||||
mixin linkUniversities(linkText, linkClass)
|
||||
//- To Do: verify path
|
||||
a(href="/universities" class=linkClass ? linkClass : '')
|
||||
a(href="/for/universities" class=linkClass ? linkClass : '')
|
||||
| #{linkText ? linkText : 'universities'}
|
||||
|
||||
@@ -2,7 +2,7 @@ doctype html
|
||||
html.full-height(itemscope, itemtype='http://schema.org/Product')
|
||||
head
|
||||
title Something went wrong
|
||||
link(rel="icon", href="/favicon.ico")
|
||||
link(rel="icon", href="/" + settings.brandPrefix + "favicon.ico")
|
||||
if buildCssPath
|
||||
link(rel="stylesheet", href=buildCssPath("/" + settings.brandPrefix + "style.css"))
|
||||
link(href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css",rel="stylesheet")
|
||||
|
||||
@@ -27,8 +27,18 @@ nav.navbar.navbar-default.navbar-main
|
||||
|
||||
// loop over header_extras
|
||||
each item in nav.header_extras
|
||||
-
|
||||
if ((item.only_when_logged_in && getSessionUser())
|
||||
|| (item.only_when_logged_out && (!getSessionUser()))
|
||||
|| (!item.only_when_logged_out && !item.only_when_logged_in && !item.only_content_pages)
|
||||
|| (item.only_content_pages && (typeof(suppressNavContentLinks) == "undefined" || !suppressNavContentLinks))
|
||||
){
|
||||
var showNavItem = true
|
||||
} else {
|
||||
var showNavItem = false
|
||||
}
|
||||
|
||||
if ((item.only_when_logged_in && getSessionUser()) || (item.only_when_logged_out && (!getSessionUser())) || (!item.only_when_logged_out && !item.only_when_logged_in))
|
||||
if showNavItem
|
||||
if item.dropdown
|
||||
li.dropdown(class=item.class, dropdown)
|
||||
a.dropdown-toggle(href, dropdown-toggle)
|
||||
|
||||
@@ -103,12 +103,8 @@ header.toolbar.toolbar-header.toolbar-with-labels(
|
||||
|
||||
a.btn.btn-full-height(
|
||||
href
|
||||
ng-class="{ 'btn-full-height-disabled' : !permissions.admin }"
|
||||
ng-click="openShareProjectModal(permissions.admin);"
|
||||
ng-controller="ShareController"
|
||||
tooltip-enable="!permissions.admin"
|
||||
tooltip="Only the project owner can use the Share menu at the moment, but we're working on making it accessible to collaborators, too."
|
||||
tooltip-placement="bottom"
|
||||
)
|
||||
i.fa.fa-fw.fa-group
|
||||
p.toolbar-label #{translate("share")}
|
||||
|
||||
@@ -8,9 +8,8 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|
||||
h3 #{translate("share_project")}
|
||||
.modal-body.modal-body-share
|
||||
.container-fluid
|
||||
|
||||
//- Private (with token-access available)
|
||||
.row.public-access-level(ng-show="project.publicAccesLevel == 'private'")
|
||||
.row.public-access-level(ng-show="isAdmin && project.publicAccesLevel == 'private'")
|
||||
.col-xs-12.text-center
|
||||
| #{translate('link_sharing_is_off')}
|
||||
|
|
||||
@@ -28,7 +27,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|
||||
)
|
||||
|
||||
//- Token-based access
|
||||
.row.public-access-level(ng-show="project.publicAccesLevel == 'tokenBased'")
|
||||
.row.public-access-level(ng-show="isAdmin && project.publicAccesLevel == 'tokenBased'")
|
||||
.col-xs-12.text-center
|
||||
strong
|
||||
| #{translate('link_sharing_is_on')}.
|
||||
@@ -57,7 +56,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|
||||
pre.access-token(ng-hide="readOnlyTokenLink") #{translate('loading')}...
|
||||
|
||||
//- legacy public-access
|
||||
.row.public-access-level(ng-show="project.publicAccesLevel == 'readAndWrite' || project.publicAccesLevel == 'readOnly'")
|
||||
.row.public-access-level(ng-show="isAdmin && (project.publicAccesLevel == 'readAndWrite' || project.publicAccesLevel == 'readOnly')")
|
||||
.col-xs-12.text-center
|
||||
strong(ng-if="project.publicAccesLevel == 'readAndWrite'") #{translate("this_project_is_public")}
|
||||
strong(ng-if="project.publicAccesLevel == 'readOnly'") #{translate("this_project_is_public_read_only")}
|
||||
@@ -77,7 +76,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|
||||
.col-xs-3.text-left
|
||||
span(ng-show="member.privileges == 'readAndWrite'") #{translate("can_edit")}
|
||||
span(ng-show="member.privileges == 'readOnly'") #{translate("read_only")}
|
||||
.col-xs-1
|
||||
.col-xs-1(ng-show="isAdmin")
|
||||
a(
|
||||
href
|
||||
tooltip=translate('remove_collaborator')
|
||||
@@ -102,7 +101,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|
||||
ng-click="revokeInvite(invite)"
|
||||
)
|
||||
i.fa.fa-times
|
||||
.row.invite-controls
|
||||
.row.invite-controls(ng-show="isAdmin")
|
||||
form(ng-show="canAddCollaborators")
|
||||
.small #{translate("share_with_your_collabs")}
|
||||
.form-group
|
||||
@@ -177,8 +176,9 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|
||||
) #{translate("start_free_trial")}
|
||||
|
||||
p.small(ng-show="startedFreeTrial")
|
||||
| #{translate("refresh_page_after_starting_free_trial")}.
|
||||
|
||||
| #{translate("refresh_page_after_starting_free_trial")}
|
||||
.row.public-access-level.public-access-level--notice(ng-show="!isAdmin")
|
||||
.col-xs-12.text-center #{translate("to_add_more_collaborators")}
|
||||
.modal-footer.modal-footer-share
|
||||
.modal-footer-left
|
||||
i.fa.fa-refresh.fa-spin(ng-show="state.inflight")
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
extends ../layout
|
||||
|
||||
block vars
|
||||
- var suppressNavContentLinks = true
|
||||
|
||||
block content
|
||||
//- We need to do .replace(/\//g, '\\/') do that '</script>' -> '<\/script>'
|
||||
//- and doesn't prematurely end the script tag.
|
||||
@@ -98,7 +101,7 @@ block content
|
||||
| To tag or rename your v1 projects, please go back to Overleaf v1.
|
||||
div(ng-show="visible")
|
||||
a.project-list-sidebar-v1-link(
|
||||
href=settings.overleaf.host + "/dash?prefer-v1-dash=1"
|
||||
href='/sign_in_to_v1?return_to=/dash%3Fprefer-v1-dash%3D1'
|
||||
) Go back to v1
|
||||
if userIsFromSL(user)
|
||||
div(ng-show="visible")
|
||||
|
||||
@@ -356,7 +356,7 @@ script(type="text/ng-template", id="v1ImportModalTemplate")
|
||||
form-messages(for="v1ImportForm")
|
||||
if settings.overleaf && settings.overleaf.host
|
||||
a.btn.btn-primary.v1-import-btn(
|
||||
ng-href=settings.overleaf.host + "/{{project.id}}"
|
||||
ng-href='/sign_in_to_v1?return_to=/{{project.id}}'
|
||||
ng-class="{disabled: v1ImportForm.inflight || v1ImportForm.response.success}"
|
||||
) No thanks, open in v1
|
||||
input.btn.btn-primary.v1-import-btn(
|
||||
|
||||
@@ -60,6 +60,21 @@ span(ng-controller="NotificationsController").userNotifications
|
||||
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")
|
||||
div.notification_inner
|
||||
.notification_body
|
||||
| It looks like you're at
|
||||
strong {{ notification.messageOpts.university_name }}! <br/>
|
||||
| Did you know that {{notification.messageOpts.university_name}} is providing
|
||||
strong free Overleaf Professional accounts
|
||||
| to everyone at {{notification.messageOpts.university_name}}? <br/>
|
||||
| Add an institutional email address to claim your account.
|
||||
a.pull-right.btn.btn-sm.btn-info(href="/user/settings")
|
||||
| Add Affiliation
|
||||
span().notification_close
|
||||
button(ng-click="dismiss(notification)").close.pull-right
|
||||
span(aria-hidden="true") ×
|
||||
span.sr-only #{translate("close")}
|
||||
.alert.alert-info(ng-switch-default)
|
||||
div.notification_inner
|
||||
span(ng-bind-html="notification.html").notification_body
|
||||
|
||||
@@ -115,19 +115,14 @@
|
||||
span(ng-controller="LeftHandMenuPromoController", ng-cloak)
|
||||
|
||||
.row-spaced#userProfileInformation(ng-if="hasProjects")
|
||||
div(ng-controller="UserProfileController")
|
||||
hr(ng-show="percentComplete < 100")
|
||||
.text-centered.user-profile(ng-show="percentComplete < 100")
|
||||
.progress
|
||||
.progress-bar.progress-bar-info(ng-style="{'width' : (percentComplete+'%')}")
|
||||
|
||||
p.small #{translate("profile_complete_percentage", {percentval:"{{percentComplete}}"})}
|
||||
div(ng-show="userEmails.length > 0 && userAffiliations.length == 0", ng-cloak)
|
||||
hr
|
||||
.text-centered.user-profile
|
||||
p Are you affiliated with an institution?
|
||||
|
||||
button#completeUserProfileInformation.btn.btn-info(
|
||||
ng-hide="formVisable",
|
||||
ng-click="openUserProfileModal()"
|
||||
) #{translate("complete")}
|
||||
|
||||
a.btn.btn-info(
|
||||
href="/user/settings"
|
||||
) Add Affiliation
|
||||
|
||||
.row-spaced(ng-if="hasProjects && userHasNoSubscription", ng-cloak).text-centered
|
||||
hr
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
ng-show="project.accessLevel == 'owner'"
|
||||
) {{project.name}}
|
||||
a.projectName(
|
||||
href=settings.overleaf.host + "/{{project.id}}"
|
||||
href='/sign_in_to_v1?return_to=/{{project.id}}'
|
||||
target="_blank"
|
||||
ng-hide="project.accessLevel == 'owner'"
|
||||
) {{project.name}}
|
||||
|
||||
@@ -2,7 +2,7 @@ script(type="text/ng-template", id="groupPlanModalTemplate")
|
||||
.modal-header
|
||||
h3 #{translate("group_plan_enquiry")}
|
||||
.modal-body
|
||||
form.text-left.form(ng-controller="UniverstiesContactController", ng-submit="contactUs()")
|
||||
form.text-left.form(ng-controller="GroupPlanContactController", ng-submit="contactUs()")
|
||||
span(ng-show="sent == false && error == false")
|
||||
.form-group
|
||||
label#title9(for='Field9')
|
||||
|
||||
@@ -122,7 +122,7 @@ block content
|
||||
p
|
||||
| You are subscribed to Overleaf through Overleaf v1
|
||||
p
|
||||
a.btn.btn-primary(href=settings.overleaf.host+"/users/edit#status") Manage v1 Subscription
|
||||
a.btn.btn-primary(href='/sign_in_to_v1?return_to=/users/edit%23status') Manage v1 Subscription
|
||||
hr
|
||||
|
||||
if settings.overleaf && v1Subscriptions && v1Subscriptions.teams && v1Subscriptions.teams.length > 0
|
||||
@@ -130,7 +130,7 @@ block content
|
||||
p
|
||||
| You are a member of the Overleaf v1 team: <strong>#{team.name}</strong>
|
||||
p
|
||||
a.btn.btn-primary(href=settings.overleaf.host+"/teams") Manage v1 Team Membership
|
||||
a.btn.btn-primary(href="/sign_in_to_v1?return_to=/teams") Manage v1 Team Membership
|
||||
hr
|
||||
|
||||
.card(ng-if="view == 'cancelation'")
|
||||
|
||||
@@ -197,7 +197,7 @@ block content
|
||||
if settings.createV1AccountOnLogin && settings.overleaf
|
||||
p
|
||||
strong
|
||||
| This will also delete your user account on #[a(href=settings.overleaf.host target="_blank") Overleaf v1].
|
||||
| This will also delete your user account on #[a(href='/sign_in_to_v1?return_to=/dash%3Fprefer-v1-dash%3D1' target="_blank") Overleaf v1].
|
||||
| If you want to remove your projects from Overleaf v1, you must do this before you
|
||||
| delete your account by going to your My Projects page in Overleaf v1, moving your
|
||||
| projects to the Trash, and then from there either ‘leaving’ or ‘purging’ them, as appropriate.
|
||||
@@ -248,7 +248,7 @@ block content
|
||||
div.alert.alert-info
|
||||
| If you can't remember your password, or if you are using Single-Sign-On with another provider
|
||||
| to sign in (such as Twitter or Google), please
|
||||
| #[a(href=settings.overleaf.host+'/users/password/new', target='_blank') reset your password],
|
||||
| #[a(href='/sign_in_to_v1?return_to=/users/password/new', target='_blank') reset your password],
|
||||
| and try again.
|
||||
.modal-footer
|
||||
button.btn.btn-default(
|
||||
|
||||
Reference in New Issue
Block a user