Pull indicators into entries directives.

This commit is contained in:
Paulo Reis 2016-11-16 16:13:39 +00:00
parent 6153bd3022
commit 32b3ba6bbb
4 changed files with 97 additions and 85 deletions

View file

@ -14,26 +14,13 @@
ng-class="'rp-entry-callout-' + entry.type"
)
div(ng-switch="entry.type")
.rp-entry-indicator(ng-switch-when="insert", ng-class="{ 'rp-entry-indicator-focused': entry.focused }")
i.fa.fa-pencil
.rp-entry-indicator(ng-switch-when="delete", ng-class="{ 'rp-entry-indicator-focused': entry.focused }")
i.rp-icon-delete
.rp-entry-indicator(ng-switch-when="comment", ng-class="{ 'rp-entry-indicator-focused': entry.focused }")
i.fa.fa-comment
.rp-entry-indicator(
ng-switch-when="add-comment"
ng-if="!commentState.adding"
ng-click="startNewComment(); toggleReviewPanel();"
)
i.fa.fa-commenting
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();"
)
div(ng-if="entry.type === 'comment'")
@ -42,6 +29,7 @@
users="users"
on-resolve=""
on-reply="submitReply(entry);"
on-indicator-click="toggleReviewPanel();"
)
div(ng-if="entry.type === 'add-comment'")
@ -49,6 +37,7 @@
on-start-new="startNewComment();"
on-submit="submitNewComment(content);"
on-cancel="cancelNewComment();"
on-indicator-click="toggleReviewPanel();"
)
.rp-overview-entry-list(
@ -171,81 +160,101 @@
script(type='text/ng-template', id='changeEntryTemplate')
.rp-entry(
ng-class="[ 'rp-entry-' + entry.type, (entry.focused ? 'rp-entry-focused' : '')]"
)
.rp-entry-header
.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-metadata
p.rp-entry-metadata-line(style="color: hsl({{ user.hue }}, 70%, 50%);") {{ user.name }}
p.rp-entry-metadata-line {{ entry.metadata.ts | date : 'MMM d, y h:mm a' }}
.rp-avatar(style="background-color: hsl({{ user.hue }}, 70%, 50%);") {{ user.avatar_text }}
.rp-entry-body(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-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
div
.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-header
.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-metadata
p.rp-entry-metadata-line(style="color: hsl({{ user.hue }}, 70%, 50%);") {{ user.name }}
p.rp-entry-metadata-line {{ entry.metadata.ts | date : 'MMM d, y h:mm a' }}
.rp-avatar(style="background-color: hsl({{ user.hue }}, 70%, 50%);") {{ user.avatar_text }}
.rp-entry-body(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-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
script(type='text/ng-template', id='commentEntryTemplate')
.rp-entry.rp-entry-comment(
ng-class="entry.focused ? 'rp-entry-focused' : '';"
)
.rp-comment(
ng-repeat="comment in entry.thread"
ng-class="users[comment.user_id].isSelf ? 'rp-comment-self' : '';"
div
.rp-entry-indicator(
ng-class="{ 'rp-entry-indicator-focused': entry.focused }"
ng-click="onIndicatorClick();"
)
.rp-avatar(
ng-if="!users[comment.user_id].isSelf;"
style="background-color: hsl({{ users[comment.user_id].hue }}, 70%, 50%);"
) {{ users[comment.user_id].avatar_text }}
.rp-comment-body(style="color: hsl({{ users[comment.user_id].hue }}, 70%, 90%);")
p.rp-comment-content {{ comment.content }}
p.rp-comment-metadata
| {{ comment.ts | date : 'MMM d, y h:mm a' }}
|  • 
span(style="color: hsl({{ users[comment.user_id].hue }}, 70%, 40%);") {{ users[comment.user_id].name }}
.rp-comment-reply
textarea.rp-comment-input(
ng-model="entry.replyContent"
ng-keypress="handleCommentReplyKeyPress($event);"
placeholder="Hit \"Enter\" to reply"
)
.rp-entry-actions
a.rp-entry-button(href, ng-click="onResolve();")
i.fa.fa-check
|  Mark as resolved
script(type='text/ng-template', id='addCommentEntryTemplate')
.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
.rp-entry.rp-entry-comment(
ng-class="entry.focused ? 'rp-entry-focused' : '';"
)
.rp-comment(
ng-repeat="comment in entry.thread"
ng-class="users[comment.user_id].isSelf ? 'rp-comment-self' : '';"
)
.rp-avatar(
ng-if="!users[comment.user_id].isSelf;"
style="background-color: hsl({{ users[comment.user_id].hue }}, 70%, 50%);"
) {{ users[comment.user_id].avatar_text }}
.rp-comment-body(style="color: hsl({{ users[comment.user_id].hue }}, 70%, 90%);")
p.rp-comment-content {{ comment.content }}
p.rp-comment-metadata
| {{ comment.ts | date : 'MMM d, y h:mm a' }}
|  • 
span(style="color: hsl({{ users[comment.user_id].hue }}, 70%, 40%);") {{ users[comment.user_id].name }}
.rp-comment-reply
textarea.rp-comment-input(
ng-model="state.content"
ng-keypress="handleCommentKeyPress($event);"
placeholder="Add your comment here"
ng-model="entry.replyContent"
ng-keypress="handleCommentReplyKeyPress($event);"
placeholder="Hit \"Enter\" to reply"
)
.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
a.rp-entry-button(href, ng-click="onResolve();")
i.fa.fa-check
|  Mark as resolved
script(type='text/ng-template', id='addCommentEntryTemplate')
div
.rp-entry-indicator(
ng-if="!commentState.adding"
ng-click="startNewComment(); onIndicatorClick();"
)
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

View file

@ -8,6 +8,7 @@ define [
onStartNew: "&"
onSubmit: "&"
onCancel: "&"
onIndicatorClick: "&"
link: (scope, element, attrs) ->
scope.state =
isAdding: false

View file

@ -9,4 +9,5 @@ define [
user: "="
onAccept: "&"
onReject: "&"
onIndicatorClick: "&"

View file

@ -9,6 +9,7 @@ define [
users: "="
onResolve: "&"
onReply: "&"
onIndicatorClick: "&"
link: (scope, element, attrs) ->
scope.handleCommentReplyKeyPress = (ev) ->
if ev.keyCode == 13 and !ev.shiftKey and !ev.ctrlKey and !ev.metaKey