mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
got basic client side templates
This commit is contained in:
parent
d39b8a0a05
commit
c93c8b3f7d
8 changed files with 118 additions and 0 deletions
|
@ -59,6 +59,7 @@ block content
|
|||
include ./editor/editor
|
||||
include ./editor/binary-file
|
||||
include ./editor/track-changes
|
||||
include ./editor/publish-template
|
||||
|
||||
.ui-layout-east
|
||||
//- include ./editor/chat
|
||||
|
@ -101,6 +102,7 @@ block content
|
|||
}
|
||||
}
|
||||
};
|
||||
window.project_description = "#{project.description}"
|
||||
|
||||
script(type='text/javascript').
|
||||
ga('send', 'event', 'editor-interaction', 'editor-opened')
|
||||
|
|
|
@ -110,6 +110,13 @@ aside#left-menu.full-size(
|
|||
)
|
||||
option(value="pdfjs") Built-In
|
||||
option(value="native") Native
|
||||
h4 Publish
|
||||
ul.list-unstyled.nav(ng-controller="TemplatesController")
|
||||
li
|
||||
a(ng-click="openPublishTemplateModal()")
|
||||
i.fa.fa-list-alt.fa-fw
|
||||
| Publish as Template
|
||||
|
||||
|
||||
#left-menu-mask(
|
||||
ng-show="ui.leftMenuShown",
|
||||
|
|
45
services/web/app/views/project/editor/publish-template.jade
Normal file
45
services/web/app/views/project/editor/publish-template.jade
Normal file
|
@ -0,0 +1,45 @@
|
|||
script(type="text/ng-template", id="publishProjectAsTemplateModalTemplate")
|
||||
.modal-header
|
||||
button.close(
|
||||
type="button"
|
||||
data-dismiss="modal"
|
||||
ng-click="cancel()"
|
||||
) ×
|
||||
h3 Publish as Template
|
||||
.modal-body.modal-body-share
|
||||
form()
|
||||
label(for='Description') Template Description
|
||||
.form-group
|
||||
textarea.form-control(
|
||||
rows=5,
|
||||
name='Description',
|
||||
ng-model="template.description",
|
||||
ng-blur="updateProjectDescription()",
|
||||
value=""
|
||||
)
|
||||
div(ng-show="publishedDetails.exists").text-center.publishedDetails
|
||||
| Your project was last published at
|
||||
strong {{publishedDetails.publishedDate}}.
|
||||
a(ng-href="{{publishedDetails.canonicalUrl}}") View it in template gallery.
|
||||
|
||||
|
||||
|
||||
.modal-footer
|
||||
button.btn.btn-default(
|
||||
ng-click="cancel()",
|
||||
ng-disabled="state.publishInflight"
|
||||
) Cancel
|
||||
button.btn.btn-info(
|
||||
ng-click="unpublishTemplate()",
|
||||
ng-disabled="state.unpublishInflight",
|
||||
ng-show="publishedDetails.exists"
|
||||
)
|
||||
span(ng-show="!state.unpublishInflight") Unpublish
|
||||
span(ng-show="state.unpublishInflight") Unpublishing...
|
||||
button.btn.btn-primary(
|
||||
ng-click="publish()",
|
||||
ng-disabled="state.publishInflight"
|
||||
)
|
||||
span(ng-show="!state.publishInflight && !publishedDetails.exists") Publish
|
||||
span(ng-show="!state.publishInflight && publishedDetails.exists") Republish
|
||||
span(ng-show="state.publishInflight") Publishing...
|
|
@ -11,6 +11,7 @@ define [
|
|||
"ide/settings/index"
|
||||
"ide/share/index"
|
||||
"ide/chat/index"
|
||||
"ide/templates/index"
|
||||
"ide/directives/layout"
|
||||
"ide/services/ide"
|
||||
"directives/focus"
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
define [
|
||||
"base"
|
||||
], (App) ->
|
||||
App.controller "TemplatesController", ($scope, $modal, ide) ->
|
||||
|
||||
$scope.openPublishTemplateModal = () ->
|
||||
console.log "open"
|
||||
$modal.open {
|
||||
templateUrl: "publishProjectAsTemplateModalTemplate"
|
||||
controller: "PublishProjectAsTemplateModalController"
|
||||
resolve:
|
||||
diff: () -> $scope.trackChanges.diff
|
||||
}
|
||||
|
||||
App.controller "PublishProjectAsTemplateModalController", ($scope, $modalInstance, diff, ide) ->
|
||||
user_id = window.user.id #TODO this is not correct, it needs to be the owners id
|
||||
$scope.template =
|
||||
description: window.project_description
|
||||
$scope.publishedDetails =
|
||||
exists:false
|
||||
|
||||
$scope.state =
|
||||
publishInflight: false
|
||||
unpublishInflight: false
|
||||
|
||||
refreshPublishedStatus = ->
|
||||
ide.socket.emit "getPublishedDetails", user_id, (err, data)->
|
||||
console.log "got published details"
|
||||
$scope.publishedDetails = data
|
||||
$scope.publishedDetails.publishedDate = moment(data.publishedDate).format("Do MMM YYYY, h:mm a")
|
||||
|
||||
refreshPublishedStatus()
|
||||
|
||||
$scope.updateProjectDescription = ->
|
||||
description = $scope.template.description
|
||||
if description?
|
||||
ide.socket.emit 'updateProjectDescription', description, () =>
|
||||
console.log "updated"
|
||||
|
||||
$scope.publish = ->
|
||||
$scope.state.publishInflight = true
|
||||
ide.socket.emit 'publishProjectAsTemplate', user_id, (error, docLines, version) =>
|
||||
console.log "published"
|
||||
refreshPublishedStatus()
|
||||
$scope.state.publishInflight = false
|
||||
|
||||
$scope.unpublishTemplate = ->
|
||||
$scope.state.unpublishInflight = true
|
||||
ide.socket.emit 'unPublishProjectAsTemplate', user_id, (error, docLines, version) =>
|
||||
console.log "unpublished"
|
||||
refreshPublishedStatus()
|
||||
$scope.state.unpublishInflight = false
|
||||
|
||||
$scope.cancel = () ->
|
||||
$modalInstance.dismiss()
|
4
services/web/public/coffee/ide/templates/index.coffee
Normal file
4
services/web/public/coffee/ide/templates/index.coffee
Normal file
|
@ -0,0 +1,4 @@
|
|||
define [
|
||||
"ide/templates/controllers/TemplatesController"
|
||||
], () ->
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
@import "./editor/chat.less";
|
||||
@import "./editor/binary-file.less";
|
||||
@import "./editor/search.less";
|
||||
@import "./editor/publish-template.less";
|
||||
|
||||
.full-size {
|
||||
position: absolute;
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
.publishedDetails {
|
||||
color: @gray;
|
||||
}
|
Loading…
Reference in a new issue