/* eslint-disable new-cap */ /* eslint-disable camelcase */ /* eslint-disable no-console */ let uuid; let pdf_uploaded = false; import('./pdf_api_wrapper.js'); // eslint-disable-next-line no-undef, no-unused-vars const vueInstance = new Vue({ el: '#app', data() { return { pdf_file: null, project_uuid: null, }; }, mounted() { window.addEventListener('load', () => this.side_loaded()); window.addEventListener('resize', () => this.scale_page_view()); }, methods: { move_page(from_page, to_page) { console.debug('trying to move page: ', from_page, to_page); fetch(`/move_page/${this.project_uuid}/${from_page}/${to_page}`, { method: 'GET', }) .then((response) => response.json()) .then((data) => { console.debug('data from Backend: ', data); if (data.status === 200) { this.display_pages(); console.info('Page was moved'); } else { console.error('Page could not be moved'); } }) .catch((error) => console.error(error)); }, scale_page_view() { const overview_wrapper_width = document.getElementById('overview-wrapper').offsetWidth; // console.debug('width: ', overview_wrapper_width) const page_overview = document.getElementById('page_overview'); const page_overview_height = `${overview_wrapper_width}px`; page_overview.style.height = page_overview_height; let page_overview_margin_bottom = ''; if (!pdf_uploaded) { page_overview_margin_bottom = `${-1 * (overview_wrapper_width)}px`; page_overview.style.width = '0px'; } else { page_overview_margin_bottom = `${-1 * (overview_wrapper_width - 500)}px`; page_overview.style.width = '500px'; } console.debug('page_overview_margin_bottom: ', page_overview_margin_bottom); page_overview.style['margin-bottom'] = page_overview_margin_bottom; document.getElementById('overview-wrapper').style['border-bottom'] = '1px solid #fff'; }, display_pages() { const div_overview = document.getElementById('page_overview'); div_overview.innerHTML = ''; console.debug('div_overview', div_overview); fetch(`/get_single_pages_info/${uuid}/`, { method: 'GET', }) .then((response) => response.json()) .then((data) => { console.debug('data from Backend: ', data); if (data.status === 200) { document.getElementById('page_overview').style.width = '500px'; // Set initial width... this.scale_page_view(); // eslint-disable-next-line no-restricted-syntax for (const page in data.pages) { if (data.pages[page] !== undefined) { console.debug(page); const node = document.createElement('embed'); node.type = 'application/pdf'; node.src = data.pages[page]; node.classList.add('single_page_embed'); const div_page = document.createElement('div'); div_page.classList.add('single_page_div'); div_page.appendChild(node); div_page.innerHTML += '
'; div_page.innerHTML += ``; div_page.innerHTML += ''; div_page.innerHTML += ``; div_page.innerHTML += '
'; // node.display = 'inline-block' div_overview.appendChild(div_page); } } console.debug(data.status); } else { console.debug(data.status); console.error('Project could not be created'); } }) .catch((error) => console.error(error)); console.debug('div_overview', div_overview); }, side_loaded() { document.getElementById('btn_download_complete').addEventListener('click', () => new pdf_api_wrapper(`${uuid}`).download_pdf()); document.getElementById('btn_download_singel_pages').addEventListener('click', () => new pdf_api_wrapper(`${uuid}`).download_split_pdf()); this.scale_page_view(); fetch('/init_project/', { method: 'GET', }) .then((response) => response.json()) .then((data) => { console.debug('data from Backend: ', data); if (data.status === 200) { this.project_uuid = data.project_uuid; uuid = data.project_uuid; } else { this.project_uuid = null; console.error('Project could not be created'); } }) .catch((error) => console.error(error)); // Dropzone has been added as a global variable. // eslint-disable-next-line no-undef const dropzone = new Dropzone('div#pdf-dropzone', { url: '/add_pdf_to_project/', paramName: 'pdf', }); dropzone.on('addedfile', (file) => { console.log('A file has been added'); // eslint-disable-next-line no-param-reassign file.previewElement.innerHTML = ''; console.debug('Suppress file.previewElement'); console.debug('PDF Project UUID: ', this.project_uuid); }); dropzone.on('sending', (file, xhr, formData) => { formData.append('uuid', uuid); }); // eslint-disable-next-line no-unused-vars dropzone.on('complete', (file, xhr, formData) => { pdf_uploaded = true; document.getElementById('btn-group-download').style.display = 'flex'; this.display_pages(); }); }, }, });