overleaf/services/web/app/views/project/editor/review-panel.jade

226 lines
8.2 KiB
Text
Raw Normal View History

#review-panel
2016-11-16 09:42:07 -05:00
.review-panel-toolbar
span.review-panel-toolbar-label(ng-click="editor.wantTrackChanges = true;", ng-if="editor.wantTrackChanges === false") Track Changes is
2016-11-24 10:55:09 -05:00
strong off
span.review-panel-toolbar-label(ng-click="editor.wantTrackChanges = false;", ng-if="editor.wantTrackChanges === true") Track Changes is
2016-11-24 10:55:09 -05:00
strong on
review-panel-toggle(ng-if="editor.wantTrackChanges == editor.trackChanges", ng-model="editor.wantTrackChanges")
span.review-panel-toolbar-spinner(ng-if="editor.wantTrackChanges != editor.trackChanges")
i.fa.fa-spin.fa-spinner
2016-11-23 09:34:55 -05:00
.rp-entry-list(
review-panel-sorted
ng-if="reviewPanel.subView === SubViews.CUR_FILE"
)
.rp-entry-list-inner
2016-11-16 09:42:07 -05:00
.rp-entry-wrapper(
ng-repeat="(entry_id, entry) in reviewPanel.entries[editor.open_doc_id]"
)
div(ng-if="entry.type === 'insert' || entry.type === 'delete'")
change-entry(
entry="entry"
user="users[entry.metadata.user_id]"
on-reject="rejectChange(entry_id);"
on-accept="acceptChange(entry_id);"
on-indicator-click="toggleReviewPanel();"
)
2016-11-16 09:42:07 -05:00
div(ng-if="entry.type === 'comment'")
comment-entry(
entry="entry"
2016-12-16 11:42:41 -05:00
threads="reviewPanel.commentThreads"
on-resolve="resolveComment(entry, entry_id)"
2017-01-04 10:26:02 -05:00
on-unresolve="unresolveComment(entry, entry_id)"
on-show-thread="showThread(entry)"
on-hide-thread="hideThread(entry)"
on-delete="deleteComment(entry_id)"
on-reply="submitReply(entry, entry_id);"
on-indicator-click="toggleReviewPanel();"
)
div(ng-if="entry.type === 'add-comment'")
add-comment-entry(
on-start-new="startNewComment();"
on-submit="submitNewComment(content);"
on-cancel="cancelNewComment();"
on-indicator-click="toggleReviewPanel();"
)
2016-11-16 09:42:07 -05:00
.rp-entry-list(
ng-if="reviewPanel.subView === SubViews.OVERVIEW"
)
.rp-overview-loading(ng-if="reviewPanel.overview.loading")
i.fa.fa-spinner.fa-spin
.rp-overview-file(
ng-repeat="doc in docs"
ng-if="!reviewPanel.overview.loading"
2016-11-16 09:42:07 -05:00
)
.rp-overview-file-header(
ng-if="reviewPanel.entries[doc.doc.id] | notEmpty"
)
| {{ doc.path }}
.rp-entry-wrapper(
ng-repeat="(entry_id, entry) in reviewPanel.entries[doc.doc.id] | orderOverviewEntries"
2016-11-16 09:42:07 -05:00
)
div(ng-if="entry.type === 'insert' || entry.type === 'delete'")
change-entry(
entry="entry"
user="users[entry.metadata.user_id]"
on-reject="rejectChange(entry.id);"
on-accept="acceptChange(entry.id);"
on-indicator-click="toggleReviewPanel();"
ng-click="gotoEntry(doc_id, entry)"
2016-11-16 09:42:07 -05:00
)
div(ng-if="entry.type === 'comment'")
comment-entry(
entry="entry"
users="users"
on-resolve="resolveComment(entry, entry.id)"
2017-01-04 10:26:02 -05:00
on-unresolve="unresolveComment(entry, entry.id)"
on-delete="deleteComment(entry.id)"
on-reply="submitReply(entry, entry_id);"
on-indicator-click="toggleReviewPanel();"
ng-click="gotoEntry(doc_id, entry)"
2016-11-16 09:42:07 -05:00
)
.rp-nav
a.rp-nav-item(
href
ng-click="setSubView(SubViews.CUR_FILE);"
ng-class="{ 'rp-nav-item-active' : reviewPanel.subView === SubViews.CUR_FILE }"
)
i.fa.fa-file-text-o
span.rp-nav-label Current file
a.rp-nav-item(
href
ng-click="setSubView(SubViews.OVERVIEW);"
ng-class="{ 'rp-nav-item-active' : reviewPanel.subView === SubViews.OVERVIEW }"
)
i.fa.fa-list
span.rp-nav-label Overview
script(type='text/ng-template', id='changeEntryTemplate')
div
2016-11-16 11:21:24 -05:00
.rp-entry-callout(
ng-class="'rp-entry-callout-' + entry.type"
)
.rp-entry-indicator(
ng-switch="entry.type"
ng-class="{ 'rp-entry-indicator-focused': entry.focused }"
ng-click="onIndicatorClick();"
)
i.fa.fa-pencil(ng-switch-when="insert")
i.rp-icon-delete(ng-switch-when="delete")
.rp-entry(
ng-class="[ 'rp-entry-' + entry.type, (entry.focused ? 'rp-entry-focused' : '')]"
)
.rp-entry-body
.rp-entry-action-icon(ng-switch="entry.type")
i.fa.fa-pencil(ng-switch-when="insert")
i.rp-icon-delete(ng-switch-when="delete")
.rp-entry-details
.rp-entry-description(ng-switch="entry.type")
span(ng-switch-when="insert") Added 
ins.rp-content-highlight {{ entry.content }}
span(ng-switch-when="delete") Deleted 
del.rp-content-highlight {{ entry.content }}
.rp-entry-metadata
span {{ entry.metadata.ts | date : 'MMM d, y h:mm a' }} • 
span.rp-entry-user(style="color: hsl({{ user.hue }}, 70%, 40%);") {{ user.name }}
.rp-entry-actions
a.rp-entry-button(href, ng-click="onReject();")
i.fa.fa-times
|  Reject
a.rp-entry-button(href, ng-click="onAccept();")
i.fa.fa-check
|  Accept
2016-11-16 09:42:07 -05:00
2016-11-16 10:12:58 -05:00
script(type='text/ng-template', id='commentEntryTemplate')
div
2017-01-04 10:26:02 -05:00
.rp-entry-callout.rp-entry-callout-comment(ng-if="!threads[entry.thread_id].resolved")
.rp-entry-indicator(
ng-class="{ 'rp-entry-indicator-focused': entry.focused }"
ng-click="onIndicatorClick();"
2016-11-16 10:12:58 -05:00
)
i.fa.fa-comment
.rp-entry.rp-entry-comment(
2017-01-04 10:26:02 -05:00
ng-class="{ 'rp-entry-focused': entry.focused, 'rp-entry-comment-resolved': threads[entry.thread_id].resolved}"
)
.rp-comment(
2017-01-04 10:26:02 -05:00
ng-if="!threads[entry.thread_id].resolved || entry.showWhenResolved"
ng-repeat="comment in threads[entry.thread_id].messages"
2016-12-16 11:42:41 -05:00
ng-class="comment.user.isSelf ? 'rp-comment-self' : '';"
)
.rp-avatar(
2016-12-16 11:42:41 -05:00
ng-if="!comment.user.isSelf;"
style="background-color: hsl({{ comment.user.hue }}, 70%, 50%);"
) {{ comment.user.avatar_text | limitTo : 1 }}
.rp-comment-body(style="color: hsl({{ comment.user.hue }}, 70%, 90%);")
p.rp-comment-content {{ comment.content }}
p.rp-comment-metadata
2016-12-16 11:42:41 -05:00
| {{ comment.timestamp | date : 'MMM d, y h:mm a' }}
|  • 
2016-12-16 11:42:41 -05:00
span(style="color: hsl({{ comment.user.hue }}, 70%, 40%);") {{ comment.user.name }}
2017-01-04 10:26:02 -05:00
.rp-comment-reply(ng-if="!threads[entry.thread_id].resolved || entry.showWhenResolved")
textarea.rp-comment-input(
ng-model="entry.replyContent"
ng-keypress="handleCommentReplyKeyPress($event);"
stop-propagation="click"
placeholder="{{ 'Hit \"Enter\" to reply' + (entry.resolved ? ' and re-open' : '') }}"
)
2017-01-04 10:26:02 -05:00
.rp-comment-resolved-description(ng-if="threads[entry.thread_id].resolved && !entry.showWhenResolved")
div
| Comment resolved by
2017-01-04 10:26:02 -05:00
span(style="color: hsl({{ threads[entry.thread_id].resolved_by_user.hue }}, 70%, 40%);") {{ threads[entry.thread_id].resolved_by_user.name }}
div {{ threads[entry.thread_id].resolved_at | date : 'MMM d, y h:mm a' }}
.rp-entry-actions
2017-01-04 10:26:02 -05:00
a.rp-entry-button(href, ng-click="onResolve();", ng-if="!threads[entry.thread_id].resolved")
i.fa.fa-check
|  Mark as resolved
2017-01-04 10:26:02 -05:00
a.rp-entry-button(href, ng-click="onShowThread();", ng-if="threads[entry.thread_id].resolved && !entry.showWhenResolved")
|  Show
2017-01-04 10:26:02 -05:00
a.rp-entry-button(href, ng-click="onHideThread();", ng-if="threads[entry.thread_id].resolved && entry.showWhenResolved")
|  Hide
2017-01-04 10:26:02 -05:00
a.rp-entry-button(href, ng-click="onUnresolve();", ng-if="threads[entry.thread_id].resolved")
|  Re-open
2017-01-04 10:26:02 -05:00
a.rp-entry-button(href, ng-click="onDelete();", ng-if="threads[entry.thread_id].resolved")
|  Delete
script(type='text/ng-template', id='addCommentEntryTemplate')
div
2016-11-16 11:21:24 -05:00
.rp-entry-callout.rp-entry-callout-add-comment
.rp-entry-indicator(
ng-if="!commentState.adding"
ng-click="startNewComment(); onIndicatorClick();"
2016-11-18 11:08:02 -05:00
tooltip="Add a comment"
tooltip-placement="right"
tooltip-append-to-body="true"
)
i.fa.fa-commenting
.rp-entry.rp-entry-add-comment(
ng-class="[ (state.isAdding ? 'rp-entry-adding-comment' : ''), (entry.focused ? 'rp-entry-focused' : '')]"
)
a.rp-add-comment-btn(
href
ng-if="!state.isAdding"
ng-click="startNewComment();"
)
i.fa.fa-comment
|  Add comment
div(ng-if="state.isAdding")
.rp-new-comment
textarea.rp-comment-input(
ng-model="state.content"
ng-keypress="handleCommentKeyPress($event);"
placeholder="Add your comment here"
)
.rp-entry-actions
a.rp-entry-button(href, ng-click="cancelNewComment();")
i.fa.fa-times
|  Cancel
a.rp-entry-button(href, ng-click="submitNewComment()")
i.fa.fa-comment
|  Comment