1
0
Fork 0
mirror of https://github.com/overleaf/overleaf.git synced 2025-04-08 14:51:56 +00:00

Merge pull request from sharelatex/ja-link-sharing-tweaks

Link sharing UX improvments
This commit is contained in:
Alasdair Smith 2018-02-09 11:23:28 +00:00 committed by GitHub
commit 6088fcf82b
3 changed files with 26 additions and 126 deletions
services/web
app/views/project/editor
public
coffee/ide/share/controllers
stylesheets/app/editor

View file

@ -12,11 +12,11 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
//- Private (with token-access available)
.row.public-access-level(ng-show="project.publicAccesLevel == 'private'")
.col-xs-12.text-center
| #{translate('link_sharing_is_off')}.
| #{translate('link_sharing_is_off')}
|   
a(
href
ng-click="openMakeTokenBasedModal()"
ng-click="makeTokenBased()"
) #{translate('turn_on_link_sharing')}
span   
a(
@ -35,7 +35,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|   
a(
href
ng-click="openMakePrivateModal()"
ng-click="makePrivate()"
) #{translate('turn_off_link_sharing')}
span   
a(
@ -49,10 +49,12 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
.col-xs-12.access-token-display-area
div.access-token-wrapper
strong #{translate('anyone_with_link_can_edit')}
pre.access-token {{ getReadAndWriteTokenLink() }}
pre.access-token(ng-show="readAndWriteTokenLink") {{ readAndWriteTokenLink }}
pre.access-token(ng-hide="readAndWriteTokenLink") #{translate('loading')}...
div.access-token-wrapper
strong #{translate('anyone_with_link_can_view')}
pre.access-token {{ getReadOnlyTokenLink() }}
pre.access-token(ng-show="readOnlyTokenLink") {{ readOnlyTokenLink }}
pre.access-token(ng-hide="readOnlyTokenLink") #{translate('loading')}...
//- legacy public-access
.row.public-access-level(ng-show="project.publicAccesLevel == 'readAndWrite' || project.publicAccesLevel == 'readOnly'")
@ -62,7 +64,7 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
|   
a(
href
ng-click="openMakePrivateModal()"
ng-click="makePrivate()"
) #{translate("make_private")}
.row.project-member
@ -198,64 +200,6 @@ script(type='text/ng-template', id='shareProjectModalTemplate')
ng-click="done()"
) #{translate("close")}
script(type="text/ng-template", id="makeTokenBasedModalTemplate")
.modal-header
button.close(
type="button"
data-dismiss="modal"
ng-click="cancel()"
) ×
h3 Enable link-sharing?
.modal-body.modal-body-share
p #{translate('turn_on_link_sharing_consequences')}
a(href="/learn/Kb/what_is_link_sharing" target="blank")
| #{translate('learn_more_about_link_sharing')}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
) #{translate("cancel")}
button.btn.btn-info(
ng-click="makeTokenBased()"
) #{translate('turn_on_link_sharing')}
script(type="text/ng-template", id="makePrivateModalTemplate")
//- Token
div(ng-if="project.publicAccesLevel == 'tokenBased'")
.modal-header
button.close(
type="button"
data-dismiss="modal"
ng-click="cancel()"
) ×
h3 #{translate("make_project_private")}?
.modal-body.modal-body-share
p #{translate('turn_off_link_sharing_consequences')}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
) #{translate("cancel")}
button.btn.btn-info(
ng-click="makePrivate()"
) #{translate("turn_off_link_sharing")}
//- Legacy public-access
div(ng-if="project.publicAccesLevel != 'tokenBased'")
.modal-header
button.close(
type="button"
data-dismiss="modal"
ng-click="cancel()"
) ×
h3 #{translate("make_project_private")}?
.modal-body.modal-body-share
p #{translate("make_project_private_consequences")}
.modal-footer
button.btn.btn-default(
ng-click="cancel()"
) #{translate("cancel")}
button.btn.btn-info(
ng-click="makePrivate()"
) #{translate("make_private")}
script(type="text/ng-template", id="shareTagTemplate")
.tag-template
span(ng-if="data.type")

View file

@ -1,7 +1,7 @@
define [
"base"
], (App) ->
App.controller "ShareProjectModalController", ($scope, $modalInstance, $timeout, projectMembers, projectInvites, $modal, $http, ide, validateCaptcha) ->
App.controller "ShareProjectModalController", ($scope, $modalInstance, $timeout, projectMembers, projectInvites, $modal, $http, ide, validateCaptcha, settings, event_tracking) ->
$scope.inputs = {
privileges: "readAndWrite"
contacts: []
@ -182,72 +182,29 @@ define [
$scope.state.error = "Sorry, something went wrong resending the invite :("
event.target.blur()
$scope.openMakePrivateModal = () ->
$modal.open {
templateUrl: "makePrivateModalTemplate"
controller: "MakePrivateModalController"
scope: $scope
}
$scope.makeTokenBased = () ->
$scope.project.publicAccesLevel = "tokenBased"
settings.saveProjectAdminSettings({publicAccessLevel: "tokenBased"})
event_tracking.sendMB 'project-make-token-based'
$scope.openMakeTokenBasedModal = () ->
$modal.open {
templateUrl: "makeTokenBasedModalTemplate"
controller: "MakeTokenBasedModalController"
scope: $scope
}
$scope.makePrivate = () ->
$scope.project.publicAccesLevel = "private"
settings.saveProjectAdminSettings({publicAccessLevel: "private"})
$scope.getReadAndWriteTokenLink = () ->
if $scope?.project?.tokens?.readAndWrite?
location.origin + "/" + $scope.project.tokens.readAndWrite
$scope.$watch "project.tokens.readAndWrite", (token) ->
if token?
$scope.readAndWriteTokenLink = "#{location.origin}/#{token}"
else
''
$scope.readAndWriteTokenLink = null
$scope.getReadOnlyTokenLink = () ->
if $scope?.project?.tokens?.readOnly?
location.origin + "/read/" + $scope.project.tokens.readOnly
$scope.$watch "project.tokens.readOnly", (token) ->
if token?
$scope.readOnlyTokenLink = "#{location.origin}/#{token}"
else
''
$scope.readOnlyTokenLink = null
$scope.done = () ->
$modalInstance.close()
$scope.cancel = () ->
$modalInstance.dismiss()
App.controller "MakePublicModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
$scope.inputs = {
privileges: "readAndWrite"
}
$scope.makePublic = () ->
$scope.project.publicAccesLevel = $scope.inputs.privileges
settings.saveProjectAdminSettings({publicAccessLevel: $scope.inputs.privileges})
$modalInstance.close()
$scope.cancel = () ->
$modalInstance.dismiss()
]
App.controller "MakeTokenBasedModalController", ["$scope", "$modalInstance", "settings", "event_tracking", ($scope, $modalInstance, settings, event_tracking) ->
$scope.makeTokenBased = () ->
$scope.project.publicAccesLevel = "tokenBased"
settings.saveProjectAdminSettings({publicAccessLevel: "tokenBased"})
event_tracking.sendMB 'project-make-token-based'
$modalInstance.close()
$scope.cancel = () ->
$modalInstance.dismiss()
]
App.controller "MakePrivateModalController", ["$scope", "$modalInstance", "settings", ($scope, $modalInstance, settings) ->
$scope.makePrivate = () ->
$scope.project.publicAccesLevel = "private"
settings.saveProjectAdminSettings({publicAccessLevel: "private"})
$modalInstance.close()
$scope.cancel = () ->
$modalInstance.dismiss()
]

View file

@ -13,10 +13,9 @@
}
.public-access-level {
color: @gray;
padding-top: 0;
font-size: 12px;
padding-bottom: @line-height-computed/2;
font-size: 13px;
padding-bottom: @modal-inner-padding;
.access-token-display-area {
margin-top: @line-height-computed/4;
.access-token-wrapper {