{% extends "base.html" %} {% block header_script_files %} {% endblock %} {% block header %} {{ emit_tep('all_publishers_page_header') }} {% endblock %} {% block content %}
{% endblock %} {% block modals %} {{ emit_tep('all_publishers_modals') }} {% endblock %} {% block button_container %} {{ emit_tep('all_publishers_button_container') }} {% endblock %} {% block script %} Vue.component('publishers', { props: ['publishers'], template: `
`, data() { return { search: '', } }, computed: { filteredList() { return this.publishers.filter(publisher => { return publisher.publisher_name.toLowerCase().includes(this.search.toLowerCase()) }) } }, delimiters: ["[[","]]"], }) Vue.component('publisher',{ props: ['publisher'], template: `
  • `, data() { return { hover: false, } }, delimiters: ["[[","]]"], }) var app = new Vue({ el: '#app', data: { publishers: [], }, created() { this.getPublishers() }, methods: { getPublishers() { axios.get('{{ url_for('api.api_get_all_publishers') }}', { params: { offset: this.publishers.length } }) .then(res => { if(res.data.number_of_page_results > 0) { res.data.results.forEach(result => { this.publishers.push(result) }) if(this.publishers.length < res.data.number_of_total_results) { this.getPublishers() } } }) }, }, delimiters: ["[[","]]"] }); {{ emit_tep('all_publishers_page_script') }} {% endblock %}