feat: History - versions data
This commit is contained in:
parent
43f9a10416
commit
fa1f332057
@ -1,16 +1,43 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
|
.container.is-fluid
|
||||||
|
.columns.is-gapless
|
||||||
|
|
||||||
|
.column.is-narrow.is-hidden-touch.sidebar
|
||||||
|
aside.stickyscroll
|
||||||
|
.sidebar-label
|
||||||
|
span {{ $t('sidebar.pastversions') }}
|
||||||
|
ul.sidebar-menu
|
||||||
|
li(v-for='item in versions')
|
||||||
|
a.is-multiline(:title='item.dateFull')
|
||||||
|
span {{ item.dateCalendar }}
|
||||||
|
span.is-small {{ item.commitAbbr }}
|
||||||
|
|
||||||
|
.column
|
||||||
.history
|
.history
|
||||||
.history-title {{ currentPath }}
|
.history-title {{ currentPath }}
|
||||||
.history-info
|
.history-info
|
||||||
.columns
|
.columns
|
||||||
.column
|
.column.history-info-meta
|
||||||
p Timestamp: #[strong 2017/07/02 5:19 PM]
|
p
|
||||||
p Author: #[strong Nicolas Giard]
|
i.nc-icon-outline.ui-1_calendar-check-62
|
||||||
p Commit: #[strong 379ff16957b2b7f978e02bfe50cd0cee182fcb8a]
|
span Timestamp: #[strong 2017/07/02 5:19 PM]
|
||||||
|
p
|
||||||
|
i.nc-icon-outline.i.nc-icon-outline.users_man-23
|
||||||
|
span Author: #[strong Nicolas Giard]
|
||||||
|
p
|
||||||
|
i.nc-icon-outline.media-1_flash-21
|
||||||
|
span Commit: #[strong 379ff16957b2b7f978e02bfe50cd0cee182fcb8a]
|
||||||
.column.history-info-actions
|
.column.history-info-actions
|
||||||
.button-group
|
.button-group
|
||||||
button.button.is-blue-grey() Compare With...
|
button.button.is-blue-grey()
|
||||||
button.button.is-blue-grey() Revert to version
|
i.nc-icon-outline.design_path-intersect
|
||||||
|
span Compare With...
|
||||||
|
button.button.is-blue-grey()
|
||||||
|
i.nc-icon-outline.ui-1_eye-17
|
||||||
|
span View
|
||||||
|
button.button.is-blue-grey()
|
||||||
|
i.nc-icon-outline.arrows-4_undo-29
|
||||||
|
span Revert to version
|
||||||
toggle.is-dark(v-model='sidebyside', desc='Side-by-side View')
|
toggle.is-dark(v-model='sidebyside', desc='Side-by-side View')
|
||||||
.history-diff#diff
|
.history-diff#diff
|
||||||
|
|
||||||
@ -20,24 +47,31 @@
|
|||||||
let diffui
|
let diffui
|
||||||
export default {
|
export default {
|
||||||
name: 'history',
|
name: 'history',
|
||||||
props: ['currentPath'],
|
props: ['currentPath', 'historyData'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
versions: [],
|
||||||
diffui: {},
|
diffui: {},
|
||||||
sidebyside: true
|
sidebyside: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
sidebyside() {
|
||||||
|
this.draw()
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
draw() {
|
draw() {
|
||||||
diffui.draw('#diff', {
|
diffui.draw('#diff', {
|
||||||
inputFormat: 'json',
|
inputFormat: 'json',
|
||||||
outputFormat: 'side-by-side',
|
outputFormat: this.sidebyside ? 'side-by-side' : 'line-by-line',
|
||||||
matching: 'words',
|
matching: 'words',
|
||||||
synchronisedScroll: true
|
synchronisedScroll: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.versions = JSON.parse(this.historyData)
|
||||||
diffui = new Diff2HtmlUI({
|
diffui = new Diff2HtmlUI({
|
||||||
diff: `diff --git a/wiki/prerequisites.md b/wiki/prerequisites.md
|
diff: `diff --git a/wiki/prerequisites.md b/wiki/prerequisites.md
|
||||||
index 89a10de..4bc0d66 100644
|
index 89a10de..4bc0d66 100644
|
||||||
|
@ -14,12 +14,20 @@
|
|||||||
|
|
||||||
&-info {
|
&-info {
|
||||||
background-color: mc('blue-grey', '50');
|
background-color: mc('blue-grey', '50');
|
||||||
padding: 5px 15px;
|
padding: 5px 10px;
|
||||||
|
|
||||||
|
&-meta {
|
||||||
|
i {
|
||||||
|
margin-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: mc('blue-grey', '800');
|
color: mc('blue-grey', '800');
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-actions {
|
&-actions {
|
||||||
|
@ -8,6 +8,7 @@ const path = require('path')
|
|||||||
const fs = Promise.promisifyAll(require('fs-extra'))
|
const fs = Promise.promisifyAll(require('fs-extra'))
|
||||||
const _ = require('lodash')
|
const _ = require('lodash')
|
||||||
const URL = require('url')
|
const URL = require('url')
|
||||||
|
const moment = require('moment')
|
||||||
|
|
||||||
const securityHelper = require('../helpers/security')
|
const securityHelper = require('../helpers/security')
|
||||||
|
|
||||||
@ -272,10 +273,13 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
let hist = _.chain(out).split('\n').map(h => {
|
let hist = _.chain(out).split('\n').map(h => {
|
||||||
let hParts = h.split(' ', 4)
|
let hParts = h.split(' ', 4)
|
||||||
|
let hDate = moment(hParts[2])
|
||||||
return {
|
return {
|
||||||
commit: hParts[0],
|
commit: hParts[0],
|
||||||
commitAbbr: hParts[1],
|
commitAbbr: hParts[1],
|
||||||
date: hParts[2],
|
date: hParts[2],
|
||||||
|
dateFull: hDate.format('LLLL'),
|
||||||
|
dateCalendar: hDate.calendar(null, { sameElse: 'llll' }),
|
||||||
email: hParts[3],
|
email: hParts[3],
|
||||||
name: hParts[4]
|
name: hParts[4]
|
||||||
}
|
}
|
||||||
|
@ -8,20 +8,4 @@ block rootNavRight
|
|||||||
span= t('nav.viewlatest')
|
span= t('nav.viewlatest')
|
||||||
|
|
||||||
block content
|
block content
|
||||||
.container.is-fluid
|
history(current-path=pageData.meta._id, history-data=JSON.stringify(pageData.history))
|
||||||
.columns.is-gapless
|
|
||||||
|
|
||||||
.column.is-narrow.is-hidden-touch.sidebar
|
|
||||||
|
|
||||||
aside.stickyscroll
|
|
||||||
.sidebar-label
|
|
||||||
span= t('sidebar.pastversions')
|
|
||||||
ul.sidebar-menu
|
|
||||||
each item, index in pageData.history
|
|
||||||
- var itemDate = moment(item.date)
|
|
||||||
li: a.is-multiline(class={ 'is-active': index < 1 }, href='', title=itemDate.format('LLLL'))
|
|
||||||
span= itemDate.calendar(null, { sameElse: 'llll'})
|
|
||||||
span.is-small= item.commitAbbr
|
|
||||||
|
|
||||||
.column
|
|
||||||
history(current-path=pageData.meta._id)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user