From 84d3668dcfb244e5723dc98b3fd667cbd261759f Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Mon, 9 Dec 2019 21:51:04 +0100 Subject: [PATCH] Use single-file component --- apimail/templates/apimail/message_list.html | 4 +-- scipost/static/scipost/assets/js/main.js | 17 ------------ .../vue/components/MessageHeaderListItem.vue | 17 ++++++++++++ .../static/scipost/assets/vue/message_list.js | 26 +++++++++++++++++++ webpack.dev.config.js | 5 ++-- 5 files changed, 47 insertions(+), 22 deletions(-) delete mode 100644 scipost/static/scipost/assets/js/main.js create mode 100644 scipost/static/scipost/assets/vue/components/MessageHeaderListItem.vue create mode 100644 scipost/static/scipost/assets/vue/message_list.js diff --git a/apimail/templates/apimail/message_list.html b/apimail/templates/apimail/message_list.html index c44bf9e72..4f0cbf965 100644 --- a/apimail/templates/apimail/message_list.html +++ b/apimail/templates/apimail/message_list.html @@ -10,11 +10,11 @@ {% block content %} <b-list-group id="message-header-list"> - <message-header + <message-header-list-item v-for="message in apidata.results" v-bind:message="message" v-bind:key="message.id" - ></message-header> + ></message-header-list-item> </b-list-group> {% endblock content %} diff --git a/scipost/static/scipost/assets/js/main.js b/scipost/static/scipost/assets/js/main.js deleted file mode 100644 index 4c2ae63eb..000000000 --- a/scipost/static/scipost/assets/js/main.js +++ /dev/null @@ -1,17 +0,0 @@ -import Vue from 'vue'; -import BootstrapVue from 'bootstrap-vue'; - -Vue.use(BootstrapVue); - -import 'bootstrap/dist/css/bootstrap.css'; -import 'bootstrap-vue/dist/bootstrap-vue.css'; - -import MessageHeaderList from '../vue/components/MessageHeaderList.vue'; - -export default { - components: { - MessageHeaderList, - }, -} - -window.Vue = Vue; diff --git a/scipost/static/scipost/assets/vue/components/MessageHeaderListItem.vue b/scipost/static/scipost/assets/vue/components/MessageHeaderListItem.vue new file mode 100644 index 000000000..86e21af6a --- /dev/null +++ b/scipost/static/scipost/assets/vue/components/MessageHeaderListItem.vue @@ -0,0 +1,17 @@ +<template> + <b-list-group-item :id="'item' + [[ message.uuid ]]"> + On {{ message.data.Date }}, from {{ message.data.from }} + </b-list-group-item> +</template> + +<script> +export default { + name: "message-header-list-item", + props: { + message: { + type: Object, + required: true + } + } +} +</script> diff --git a/scipost/static/scipost/assets/vue/message_list.js b/scipost/static/scipost/assets/vue/message_list.js new file mode 100644 index 000000000..3d47456d1 --- /dev/null +++ b/scipost/static/scipost/assets/vue/message_list.js @@ -0,0 +1,26 @@ +import Vue from 'vue'; + +import BootstrapVue from 'bootstrap-vue'; +Vue.use(BootstrapVue); + +import 'bootstrap/dist/css/bootstrap.css'; +import 'bootstrap-vue/dist/bootstrap-vue.css'; + + +import MessageHeaderListItem from './components/MessageHeaderListItem.vue' +Vue.component('message-header-list-item', MessageHeaderListItem); + + +var messageList = new Vue({ + el: '#message-header-list', + data: { + apidata: [], + results: [], + }, + created: function () { + fetch('/mail/api/stored_messages') + .then(stream => stream.json()) + .then(data => this.apidata = data) + .catch(error => console.error(error)) + } +}) diff --git a/webpack.dev.config.js b/webpack.dev.config.js index 6efb60091..a485a453d 100644 --- a/webpack.dev.config.js +++ b/webpack.dev.config.js @@ -20,7 +20,6 @@ module.exports = { "./scipost/static/scipost/assets/js/newsticker.js", ], vue: [ - // "./scipost/static/scipost/assets/js/main.js", "./scipost/static/scipost/assets/vue/message_list.js", ], }, @@ -104,9 +103,9 @@ module.exports = { resolve: { alias: { // If using the runtime only build - // 'vue$': 'vue/dist/vue.runtime.esm.js' + 'vue$': 'vue/dist/vue.runtime.esm.js' // Or if using full build of Vue (runtime + compiler) - 'vue$': 'vue/dist/vue.esm.js' + // 'vue$': 'vue/dist/vue.esm.js' } }, } -- GitLab