github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/themes/wind/static/libs/vue-1.0.24/examples/commits/app.js (about)

     1  var apiURL = 'https://api.github.com/repos/vuejs/vue/commits?per_page=3&sha='
     2  var isPhantom = navigator.userAgent.indexOf('PhantomJS') > -1
     3  
     4  /**
     5   * Test mocks
     6   */
     7  
     8  var mocks = {
     9    master: [{sha:'111111111111', commit: {message:'one', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}}],
    10    dev: [{sha:'222222222222', commit: {message:'two', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}},{sha:'111111111111', commit: {message:'hi', author:{name:'Evan',date:'2014-10-15T13:52:58Z'}}}]
    11  }
    12  
    13  function mockData () {
    14    this.commits = mocks[this.currentBranch]
    15  }
    16  
    17  /**
    18   * Actual demo
    19   */
    20  
    21  var demo = new Vue({
    22  
    23    el: '#demo',
    24  
    25    data: {
    26      branches: ['master', 'dev'],
    27      currentBranch: 'master',
    28      commits: null
    29    },
    30  
    31    created: function () {
    32      this.fetchData()
    33    },
    34  
    35    watch: {
    36      currentBranch: 'fetchData'
    37    },
    38  
    39    filters: {
    40      truncate: function (v) {
    41        var newline = v.indexOf('\n')
    42        return newline > 0 ? v.slice(0, newline) : v
    43      },
    44      formatDate: function (v) {
    45        return v.replace(/T|Z/g, ' ')
    46      }
    47    },
    48  
    49    methods: {
    50      fetchData: function () {
    51        // CasperJS fails at cross-domain XHR even with
    52        // --web-security=no, have to mock data here.
    53        if (isPhantom) {
    54          return mockData.call(this)
    55        }
    56        var xhr = new XMLHttpRequest()
    57        var self = this
    58        xhr.open('GET', apiURL + self.currentBranch)
    59        xhr.onload = function () {
    60          self.commits = JSON.parse(xhr.responseText)
    61          console.log(self.commits[0].html_url)
    62        }
    63        xhr.send()
    64      }
    65    }
    66  })