|
|
@ -5,48 +5,49 @@ |
|
|
|
v-toolbar(color='primary', dark) |
|
|
|
.subheading Viewing history of page #[strong /{{path}}] |
|
|
|
v-spacer |
|
|
|
.caption.blue--text.text--lighten-3 ID {{pageId}} |
|
|
|
.caption.blue--text.text--lighten-3.mr-4 Trail Length: {{total}} |
|
|
|
.caption.blue--text.text--lighten-3 ID: {{pageId}} |
|
|
|
v-btn.ml-4(depressed, color='blue darken-1', @click='goLive') Return to Live Version |
|
|
|
v-container(fluid, grid-list-xl) |
|
|
|
v-layout(row, wrap) |
|
|
|
v-flex(xs4) |
|
|
|
v-chip.ma-0.grey--text.text--darken-2( |
|
|
|
v-chip.ma-0( |
|
|
|
label |
|
|
|
small |
|
|
|
color='grey lighten-2' |
|
|
|
:color='darkMode ? `grey darken-2` : `grey lighten-2`' |
|
|
|
:class='darkMode ? `grey--text text--lighten-2` : `grey--text text--darken-2`' |
|
|
|
) |
|
|
|
span Live |
|
|
|
v-timeline( |
|
|
|
dense |
|
|
|
) |
|
|
|
v-timeline-item( |
|
|
|
v-for='ph in trail' |
|
|
|
v-timeline-item.pb-2( |
|
|
|
v-for='(ph, idx) in trail' |
|
|
|
:key='ph.versionId' |
|
|
|
:small='ph.actionType === `edit`' |
|
|
|
fill-dot |
|
|
|
:color='trailColor(ph.actionType)' |
|
|
|
:icon='trailIcon(ph.actionType)' |
|
|
|
:class='idx >= trail.length - 1 ? `pb-4` : `pb-2`' |
|
|
|
) |
|
|
|
v-card.radius-7(flat, :class='trailBgColor(ph.actionType)') |
|
|
|
v-toolbar(flat, :color='trailBgColor(ph.actionType)') |
|
|
|
v-toolbar(flat, :color='trailBgColor(ph.actionType)', height='40') |
|
|
|
v-chip.ml-0.mr-3( |
|
|
|
v-if='diffSource === ph.versionId' |
|
|
|
label |
|
|
|
small |
|
|
|
color='pink' |
|
|
|
) |
|
|
|
.caption.white--text Source |
|
|
|
v-chip.ml-0.mr-3( |
|
|
|
v-if='diffTarget === ph.versionId' |
|
|
|
label |
|
|
|
small |
|
|
|
color='pink' |
|
|
|
) |
|
|
|
.caption.white--text Target |
|
|
|
.caption(v-if='ph.actionType === `edit`') Edited by {{ ph.authorName }} |
|
|
|
.caption(v-else-if='ph.actionType === `move`') Moved from #[strong {{ph.valueBefore}}] to #[strong {{ph.valueAfter}}] by {{ ph.authorName }} |
|
|
|
.caption(v-else-if='ph.actionType === `initial`') Created by {{ ph.authorName }} |
|
|
|
.caption(v-else) Unknown Action by {{ ph.authorName }} |
|
|
|
.caption(v-if='ph.actionType === `edit`') Edited by #[strong {{ ph.authorName }}] |
|
|
|
.caption(v-else-if='ph.actionType === `move`') Moved from #[strong {{ph.valueBefore}}] to #[strong {{ph.valueAfter}}] by #[strong {{ ph.authorName }}] |
|
|
|
.caption(v-else-if='ph.actionType === `initial`') Created by #[strong {{ ph.authorName }}] |
|
|
|
.caption(v-else) Unknown Action by #[strong {{ ph.authorName }}] |
|
|
|
v-spacer |
|
|
|
.caption {{ ph.createdAt | moment('calendar') }} |
|
|
|
v-menu(offset-x, left) |
|
|
@ -76,20 +77,30 @@ |
|
|
|
v-list-tile-avatar: v-icon call_split |
|
|
|
v-list-tile-title Branch off from here |
|
|
|
|
|
|
|
v-chip.ma-0.grey--text.text--darken-2( |
|
|
|
v-btn.ma-0.radius-7( |
|
|
|
v-if='total > trail.length' |
|
|
|
block |
|
|
|
color='grey darken-2' |
|
|
|
@click='loadMore' |
|
|
|
) |
|
|
|
.caption.white--text Load More... |
|
|
|
|
|
|
|
v-chip.ma-0( |
|
|
|
v-else |
|
|
|
label |
|
|
|
small |
|
|
|
color='grey lighten-2' |
|
|
|
:color='darkMode ? `grey darken-2` : `grey lighten-2`' |
|
|
|
:class='darkMode ? `grey--text text--lighten-2` : `grey--text text--darken-2`' |
|
|
|
) End of history trail |
|
|
|
|
|
|
|
v-flex(xs8) |
|
|
|
v-card.radius-7 |
|
|
|
v-card-text |
|
|
|
v-card.grey.lighten-4.radius-7(flat) |
|
|
|
v-card.grey.radius-7(flat, :class='darkMode ? `darken-2` : `lighten-4`') |
|
|
|
v-card-text |
|
|
|
.subheading Page Title |
|
|
|
.caption Some page description |
|
|
|
.mt-3(v-html='diffHTML') |
|
|
|
v-card.mt-3(light, v-html='diffHTML') |
|
|
|
|
|
|
|
nav-footer |
|
|
|
</template> |
|
|
@ -129,7 +140,8 @@ export default { |
|
|
|
trail: [], |
|
|
|
diffSource: 0, |
|
|
|
diffTarget: 0, |
|
|
|
offset: 0 |
|
|
|
offsetPage: 0, |
|
|
|
total: 0 |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
@ -173,6 +185,28 @@ export default { |
|
|
|
setDiffTarget(versionId) { |
|
|
|
this.diffTarget = versionId |
|
|
|
}, |
|
|
|
loadMore() { |
|
|
|
this.offsetPage++ |
|
|
|
this.$apollo.queries.trail.fetchMore({ |
|
|
|
variables: { |
|
|
|
id: this.pageId, |
|
|
|
offsetPage: this.offsetPage, |
|
|
|
offsetSize: 25 |
|
|
|
}, |
|
|
|
updateQuery: (previousResult, { fetchMoreResult }) => { |
|
|
|
return { |
|
|
|
pages: { |
|
|
|
history: { |
|
|
|
total: previousResult.pages.history.total, |
|
|
|
trail: [...previousResult.pages.history.trail, ...fetchMoreResult.pages.history.trail], |
|
|
|
__typename: previousResult.pages.history.__typename |
|
|
|
}, |
|
|
|
__typename: previousResult.pages.__typename |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
trailColor(actionType) { |
|
|
|
switch (actionType) { |
|
|
|
case 'edit': |
|
|
@ -200,11 +234,11 @@ export default { |
|
|
|
trailBgColor(actionType) { |
|
|
|
switch (actionType) { |
|
|
|
case 'move': |
|
|
|
return 'purple lighten-5' |
|
|
|
return this.darkMode ? 'purple' : 'purple lighten-5' |
|
|
|
case 'initial': |
|
|
|
return 'teal lighten-5' |
|
|
|
return this.darkMode ? 'teal darken-3' : 'teal lighten-5' |
|
|
|
default: |
|
|
|
return 'grey lighten-3' |
|
|
|
return this.darkMode ? 'grey darken-3' : 'grey lighten-3' |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
@ -214,10 +248,15 @@ export default { |
|
|
|
variables() { |
|
|
|
return { |
|
|
|
id: this.pageId, |
|
|
|
offset: 0 |
|
|
|
offsetPage: 0, |
|
|
|
offsetSize: 25 |
|
|
|
} |
|
|
|
}, |
|
|
|
update: (data) => data.pages.history, |
|
|
|
manual: true, |
|
|
|
result({ data, loading, networkStatus }) { |
|
|
|
this.total = data.pages.history.total |
|
|
|
this.trail = data.pages.history.trail |
|
|
|
}, |
|
|
|
watchLoading (isLoading) { |
|
|
|
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'history-trail-refresh') |
|
|
|
} |
|
|
|