| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | <template lang="pug">  .container.is-fluid    .columns.is-gapless      .column.is-narrow.is-hidden-touch.sidebar        aside.stickyscroll          .sidebar-label            span {{ $t('history.pastversions') }}          ul.sidebar-menu            li(v-for='item in versions')              a.is-multiline(:title='item.dateFull', @click='changeCommit(item)', :class='{ "is-active": item.commit === current.commit }')                span {{ item.dateCalendar }}                span.is-small {{ item.commitAbbr }}      .column        .history          .history-title {{ currentPath }}          .history-info            .columns              .column.history-info-meta                p                  i.nc-icon-outline.ui-1_calendar-check-62                  span {{ $t('history.timestamp') }}: #[strong {{ current.dateFull }}]                p                  i.nc-icon-outline.i.nc-icon-outline.users_man-23                  span {{ $t('history.author') }}: #[strong {{ current.name }} <{{ current.email }}>]                p                  i.nc-icon-outline.media-1_flash-21                  span {{ $t('history.commit') }}: #[strong {{ current.commit }}]              .column.history-info-actions                .button-group                  button.button.is-blue-grey(@click='compareWith')                    i.nc-icon-outline.design_path-intersect                    span {{ $t('history.comparewith') }}                  button.button.is-blue-grey(@click='view')                    i.nc-icon-outline.ui-1_eye-17                    span {{ $t('history.view') }}                  button.button.is-blue-grey(@click='revertToVersion')                    i.nc-icon-outline.arrows-4_undo-29                    span {{ $t('history.reverttoversion') }}                toggle.is-dark(v-model='sidebyside', :desc='$t("history.sidebyside")')          .history-diff#diff</template><script>let diffuilet diffuiIsReady = falseexport default {  name: 'history',  props: ['currentPath', 'historyData'],  data() {    return {      versions: [],      current: {},      diffui: {},      sidebyside: true    }  },  watch: {    sidebyside() {      this.draw()    }  },  methods: {    compareWith() {      this.$store.dispatch('alert', {        style: 'purple',        icon: 'objects_astronaut',        msg: 'Sorry, this function is not available. Coming soon!'      })    },    view() {      this.$store.dispatch('alert', {        style: 'purple',        icon: 'objects_astronaut',        msg: 'Sorry, this function is not available. Coming soon!'      })    },    revertToVersion() {      this.$store.dispatch('alert', {        style: 'purple',        icon: 'objects_astronaut',        msg: 'Sorry, this function is not available. Coming soon!'      })    },    draw() {      if (diffuiIsReady) {        diffui.draw('#diff', {          inputFormat: 'diff',          outputFormat: this.sidebyside ? 'side-by-side' : 'line-by-line',          matching: 'words',          synchronisedScroll: true        })      }    },    changeCommit(cm) {      let self = this      diffuiIsReady = false      self.current = cm      self.$http.post(siteRoot + '/hist', {        path: self.currentPath,        commit: cm.commit      }).then(resp => {        return resp.json()      }).then(resp => {        diffui = new Diff2HtmlUI({ diff: resp.diff })        diffuiIsReady = true        self.draw()      }).catch(err => {        console.log(err)        self.$store.dispatch('alert', {          style: 'red',          icon: 'ui-2_square-remove-09',          msg: 'Error: ' + err.body.error        })      })    }  },  mounted() {    this.versions = JSON.parse(this.historyData)    this.changeCommit(this.versions[0])  }}</script>
 |