123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <template>
- <div class="columns is-mobile">
- <div class="column is-8-desktop is-offset-2-desktop is-12-mobile">
- <table class="table is-striped">
- <thead>
- <tr>
- <td>YouTube ID</td>
- <td>Title</td>
- <td>Thumbnail</td>
- <td>Artists</td>
- <td>Options</td>
- </tr>
- </thead>
- <tbody>
- <tr v-for="(index, song) in songs" track-by="$index">
- <td>
- <p class="control">
- <input class="input" type="text" :value="song.id" v-model="song.id">
- </p>
- </td>
- <td>
- <p class="control">
- <input class="input" type="text" :value="song.title" v-model="song.title">
- </p>
- </td>
- <td>
- <p class="control">
- <input class="input" type="text" :value="song.thumbnail" v-model="song.thumbnail">
- </p>
- </td>
- <td>
- <div class="control is-horizontal">
- <input v-for="artist in song.artists" track-by="$index" class="input" type="text" :value="artist" v-model="artist">
- </p>
- </td>
- <td>
- <a class="button is-danger" @click="songs.splice(index, 1)">Remove</a>
- </td>
- </tr>
- </tbody>
- </table>
- <a class="button is-success" @click="update()">Save Changes</a>
- </div>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- songs: []
- }
- },
- methods: {
- update() {
- this.socket.emit('/songs/update', this.songs, (result) => {
- console.log(result);
- });
- }
- },
- ready: function() {
- let local = this;
- local.socket = local.$parent.$parent.socket;
- local.socket.emit("/songs", function(data) {
- local.songs = data;
- });
- }
- }
- </script>
- <style lang="sass" scoped>
- .is-success {
- width: 100%;
- }
- </style>
|