{% extends "base.html" %} {% block header_script_files %} {% endblock %} {% block header %} {{ emit_tep('new_releases_page_header') }} {% endblock %} {% block content %}
{% endblock %} {% block button_container %} {{ emit_tep('new_releases_page_button_container') }} {% endblock %} {% block script %} Vue.component('modals', { props: [ 'volume' ], template: `
{{ emit_tep('new_releases_page_modals') }}
`, methods: { add_to_library() { console.log('adding to library') app.$refs.releases.$children.find(child => { return child.$vnode.key == this.volume.new_release_id }).subscribe_to_volume() }, }, delimiters: ["[[","]]"] }) Vue.component('release-item', { props: ['release'], template: `
  • #[[ release.new_release_issue_number ]]
    [[ release.new_release_comic_name ]]
  • `, computed: { className() { let classname = 'text-danger'; try { if (this.release.status) { classname = 'text-success'; } } finally { return classname; } }, subText() { let text = 'Not In Library'; try { if (this.release.status) { text = 'In Library'; } } finally { return text; } }, subStatus() { let status = false; try { if (this.release.status) { status = true; } } finally { return status } }, }, methods: { subscribe_to_volume() { axios.post('{{ url_for('api.api_post_single_volume', volume_id='VOLUMESTRING') }}'.replace('VOLUMESTRING', this.release.new_release_volume_id)) .then(res => { console.log(res) if (res.data.status_code == 200) { this.release.status = {'volume_status': true}; stashrToast('Added to Library', 'success') } else { stashrToast(res.data.message, 'error') } }) .catch(err => console.log(err)) }, changeModal() { app.changeModal(this.release) }, }, data () { return { hover: false, subscribed: false, } }, delimiters: ["[[","]]"], }) Vue.component('releases', { props: ['releases'], template: `
    `, data() { return { search: '', } }, computed: { filteredList() { return this.releases.filter(release => { return release.new_release_comic_name.toLowerCase().includes(this.search.toLowerCase()) }) }, }, delimiters: ["[[","]]"] }) var app = new Vue({ el: '#app', data: { releaseList: [], volume: [], }, created() { this.getNewReleases() }, methods: { getNewReleases(){ axios.get('{{ url_for('api.api_get_new_releases') }}', { params: { offset: this.releaseList.length } }) .then(res => { if(res.data.number_of_page_results > 0) { res.data.results.forEach(result => { this.releaseList.push(result) }); if(this.releaseList.length < res.data.number_of_total_results) { this.getNewReleases() } } }) }, updateNewReleases() { stashrToast('Updating New Releases', 'info') axios.post('{{ url_for('api.api_post_new_releases') }}') .then(res => { if(res.data.status_code == '200') { this.releaseList = []; this.getNewReleases(); } else { stashrToast(res.data.message, 'error') } }) .catch(err => console.log(err)) }, changeModal(volume) { console.log('changing modal') this.volume = volume } }, delimiters: ["[[","]]"] }) {{ emit_tep('new_releases_page_script') }} {% endblock %}