diff options
| author | Ev Bogue <ev@evbogue.com> | 2019-05-01 21:16:13 -0500 | 
|---|---|---|
| committer | Ev Bogue <ev@evbogue.com> | 2019-05-01 21:16:13 -0500 | 
| commit | b0dbdb26a35b56b3caa9c82a8271a4560cde3ab8 (patch) | |
| tree | 57ebdaeaaf00104f2af14cba9aa912550b0565a7 | |
| parent | 35c4ffa34eff7762938dd6292727e259c9c254b8 (diff) | |
add buttons to merge, sort, regenerate, delete, and sync logs
| -rw-r--r-- | views.js | 109 | 
1 files changed, 102 insertions, 7 deletions
| @@ -1,15 +1,47 @@  function threadPage (src, keys) {    get(src).then(msg => { -    open(msg).then(post => { -      scroller.appendChild(render(post, keys)) -    }) +    scroller.appendChild(render(msg, keys))    })  }  function profilePage (src, keys) {    var server = 'ws://localhost:8080/' -  sync(src, server, keys) +  var profile = h('div', {classList: 'profile'}) + +  scroller.appendChild(profile) + +  var input = h('input', {placeholder: 'New name'}) + +  profile.appendChild(h('a', {href: '#' + src}, [getName(src)])) + +  profile.appendChild(h('div', [ +    input, +    h('button', { +      onclick: function () { +        content = { +          type: 'name', +          named: src, +          name: input.value +        } + +        publish(content, keys).then(function () {location.reload()}) +      } +    }, ['Identify']) +  ])) + +  profile.appendChild(h('button', { +    onclick: function () { +      sync(src, server, keys) +    } +  }, ['Sync feed'])) + +  profile.appendChild(h('button', { +    onclick: function () { +      localforage.removeItem(src).then(function () { location.reload() }) +    } +  }, ['Delete feed'])) +      bog(src).then(log => {      if (log) { @@ -23,12 +55,75 @@ function profilePage (src, keys) {  }  function publicPage (keys) { +  var newlog = [] + +  scroller.appendChild(h('button', { +    onclick: function () { +      var openedlog = [] +      localforage.iterate(function(value, key, i) { +        if (key[0] == '@') { +          newlog = newlog.concat(value) +        } +        console.log(newlog) +      }).then(function () { +        newlog.forEach(function (msg) { +          var pubkey = nacl.util.decodeBase64(msg.author.substring(1)) +          var sig = nacl.util.decodeBase64(msg.signature) +          var opened = JSON.parse(nacl.util.encodeUTF8(nacl.sign.open(sig, pubkey))) +          opened.key = msg.key +           +          openedlog.push(opened) +        }) +        console.log(openedlog) +        localforage.setItem('log', openedlog).then(function () {location.reload()})  +      }) +    } +  }, ['Merge'])) + +  scroller.appendChild(h('button', { +    onclick: function () { +      localforage.getItem('log').then(log => { +        log.sort((a, b) => a.timestamp - b.timestamp) +        console.log(log) +        var reversed = log.reverse() +        localforage.setItem('log', reversed).then(function () {location.reload()}) +      }) +    } +  }, ['Sort'])) + +  scroller.appendChild(h('button', { +    onclick: function () { +      var openedlog = [] +      localforage.iterate(function(value, key, i) { +        if (key[0] == '@') { +          newlog = newlog.concat(value) +        } +        console.log(newlog) +      }).then(function () { +        newlog.forEach(function (msg) { +          var pubkey = nacl.util.decodeBase64(msg.author.substring(1)) +          var sig = nacl.util.decodeBase64(msg.signature) +          var opened = JSON.parse(nacl.util.encodeUTF8(nacl.sign.open(sig, pubkey))) +          opened.key = msg.key + +          openedlog.push(opened) +        }) +        console.log(openedlog) + +        openedlog.sort((a, b) => a.timestamp - b.timestamp) + +        var reversed = openedlog.reverse() + +        localforage.setItem('log', reversed).then(function () {location.reload()}) +      }) + +    } +  }, ['Regenerate'])) +    scroller.appendChild(composer(keys))    bog().then(log => {      log.forEach(function (msg) { -      open(msg).then(post => { -        scroller.appendChild(render(post, keys)) -      }) +      scroller.appendChild(render(msg, keys))      })    })  } | 
