{"version":3,"file":"js/module_events.abstracts.f753efdd.bundle.js","mappings":"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","sources":["webpack:///indico/modules/events/abstracts/client/js/boa.jsx","webpack:///indico/modules/events/abstracts/client/js/index.js"],"sourcesContent":["// This file is part of Indico.\n// Copyright (C) 2002 - 2024 CERN\n//\n// Indico is free software; you can redistribute it and/or\n// modify it under the terms of the MIT License; see the\n// LICENSE file for more details.\n\nimport customBOAURL from 'indico-url:abstracts.manage_custom_boa';\nimport uploadBOAFileURL from 'indico-url:abstracts.upload_boa_file';\n\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport ReactDOM from 'react-dom';\nimport {Modal, Button} from 'semantic-ui-react';\n\nimport {FinalSingleFileManager} from 'indico/react/components';\nimport {fileDetailsShape} from 'indico/react/components/files/props';\nimport {handleSubmitError} from 'indico/react/forms';\nimport {FinalModalForm} from 'indico/react/forms/final-form';\nimport {Translate} from 'indico/react/i18n';\nimport {indicoAxios, handleAxiosError} from 'indico/utils/axios';\n\nexport default function CustomBOAModal({eventId, initialFile, hasLatex}) {\n const [modalOpen, setModalOpen] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [confirmDeleteOpen, setConfirmDeleteOpen] = useState(false);\n\n const deleteExistingBOA = async () => {\n setDeleting(true);\n try {\n await indicoAxios.delete(customBOAURL({event_id: eventId}));\n } catch (e) {\n handleAxiosError(e);\n setDeleting(false);\n return;\n }\n location.reload();\n };\n\n const handleSubmit = async ({file}) => {\n try {\n await indicoAxios.post(customBOAURL({event_id: eventId}), {file});\n } catch (e) {\n return handleSubmitError(e);\n }\n location.reload();\n // never finish submitting to avoid fields being re-enabled\n await new Promise(() => {});\n };\n\n let buttonLabel;\n if (hasLatex) {\n buttonLabel = initialFile\n ? Translate.string('Manage custom PDF')\n : Translate.string('Upload custom PDF');\n } else {\n buttonLabel = initialFile ? Translate.string('Manage PDF') : Translate.string('Upload PDF');\n }\n\n return (\n <>\n setModalOpen(true)}\n >\n {buttonLabel}\n \n {modalOpen && (\n setModalOpen(false)}\n onSubmit={handleSubmit}\n submitLabel={Translate.string('Upload BoA')}\n initialValues={{file: initialFile ? initialFile.uuid : null}}\n size=\"small\"\n header={\n hasLatex ? (\n Manage custom Book of Abstracts\n ) : (\n Manage Book of Abstracts\n )\n }\n extraActions={fprops =>\n initialFile !== null && (\n setConfirmDeleteOpen(true)}\n disabled={fprops.submitting}\n negative\n >\n {hasLatex ? (\n Delete custom PDF\n ) : (\n Delete current PDF\n )}\n \n )\n }\n >\n
\n \n
\n
\n {hasLatex ? (\n \n You can upload a custom PDF for your Book of Abstracts. Please note that this\n overrides the autogenerated file. To switch back to the default book of abstracts\n you'll have to delete the custom file.\n \n ) : (\n You can upload a PDF file with the Book of Abstracts here.\n )}\n
\n \n )}\n setConfirmDeleteOpen(false)}\n size=\"tiny\"\n closeOnDimmerClick={false}\n >\n \n \n {hasLatex ? (\n \n Do you really want to delete the custom Book of Abstracts? This will revert to the\n default auto-generated one.\n \n ) : (\n \n Do you really want to delete the Book of Abstracts? This will disable the Book of\n Abstracts until you upload a new one.\n \n )}\n \n \n \n \n \n \n \n );\n}\n\nCustomBOAModal.propTypes = {\n eventId: PropTypes.number.isRequired,\n hasLatex: PropTypes.bool.isRequired,\n initialFile: fileDetailsShape,\n};\n\nCustomBOAModal.defaultProps = {\n initialFile: null,\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const container = document.querySelector('#boa-custom-upload');\n if (!container) {\n return;\n }\n const eventId = parseInt(container.dataset.eventId, 10);\n const customFile = JSON.parse(container.dataset.file);\n const hasLatex = 'hasLatex' in container.dataset;\n ReactDOM.render(\n ,\n container\n );\n});\n","// This file is part of Indico.\n// Copyright (C) 2002 - 2024 CERN\n//\n// Indico is free software; you can redistribute it and/or\n// modify it under the terms of the MIT License; see the\n// LICENSE file for more details.\n\n/* global setupListGenerator:false, setupSearchBox:false, handleAjaxError:false */\n\nimport _ from 'lodash';\n\nimport {$T} from 'indico/utils/i18n';\n\nimport 'indico/modules/events/reviews';\nimport 'indico/modules/events/util/types_dialog';\nimport 'indico/react/components/AffiliationPopup';\n\nimport './boa';\n\n(function(global) {\n global.setupAbstractList = function setupAbstractList() {\n const abstractListContainer = $('#abstract-list');\n\n const filterConfig = {\n itemHandle: 'tr',\n listItems: '#abstract-list tbody tr',\n term: '#search-input',\n state: '#filtering-state',\n placeholder: '#filter-placeholder',\n };\n const applySearchFilters = setupListGenerator(filterConfig);\n abstractListContainer.on('indico:htmlUpdated', function() {\n abstractListContainer.find('.js-mathjax').mathJax();\n _.defer(applySearchFilters);\n });\n };\n\n global.setupAbstractEmailTemplatesPage = function setupAbstractEmailTemplatesPage() {\n $('.js-edit-tpl-dropdown')\n .parent()\n .dropdown();\n $('.email-templates > ul').sortable({\n axis: 'y',\n containment: 'parent',\n cursor: 'move',\n distance: 2,\n handle: '.ui-i-box-sortable-handle',\n items: '> li',\n tolerance: 'pointer',\n forcePlaceholderSize: true,\n placeholder: 'regform-section-sortable-placeholder',\n update() {\n const $elem = $('.email-templates > ul');\n const sortedList = $elem\n .find('li.js-email-template')\n .map((i, elem) => $(elem).data('id'))\n .get();\n\n $.ajax({\n url: $elem.data('url'),\n method: 'POST',\n contentType: 'application/json',\n data: JSON.stringify({sort_order: sortedList}),\n complete: IndicoUI.Dialogs.Util.progress(),\n error: handleAjaxError,\n });\n },\n });\n\n $('.email-preview-btn').on('click', function(evt) {\n evt.preventDefault();\n const id = $(this).data('id');\n const $previewBtn = $(`#email-preview-btn-${id}`);\n if ($previewBtn.data('visible')) {\n $previewBtn.text($T.gettext('Show preview'));\n $(`#email-preview-${id}`).slideToggle();\n $previewBtn.data('visible', false);\n } else {\n $previewBtn.text($T.gettext('Hide preview'));\n $(`#email-preview-${id}`).slideToggle();\n $previewBtn.data('visible', true);\n }\n });\n\n $('#email-template-manager .ui-i-box-sortable-handle').on('mousedown', function() {\n $('.email-preview').hide();\n $('.email-preview-btn')\n .text($T.gettext('Show preview'))\n .data('visible', false);\n });\n\n $('.js-toggle-stop-on-match').on('click', function(evt) {\n evt.preventDefault();\n const $this = $(this);\n const stopOnMatch = !$this.data('stop-on-match');\n\n if ($this.hasClass('disabled')) {\n return;\n }\n\n $.ajax({\n url: $this.data('href'),\n method: $this.data('method'),\n data: JSON.stringify({stop_on_match: stopOnMatch}),\n dataType: 'json',\n contentType: 'application/json',\n error: handleAjaxError,\n success() {\n $this.data('stop-on-match', stopOnMatch);\n $this.toggleClass('stop-processing-enabled', stopOnMatch);\n },\n });\n });\n };\n\n global.setupCallForAbstractsPage = function setupCallForAbstractsPage(options) {\n options = $.extend(\n {\n hasAbstracts: false,\n },\n options\n );\n\n // show the form after login when using the submit button as a guest\n if (location.hash === '#submit-abstract') {\n $(document).ready(function() {\n $('.js-show-abstract-form').trigger('click');\n });\n }\n\n if (options.hasAbstracts) {\n const filterConfig = {\n itemHandle: 'div.contribution-row',\n listItems: '#display-contribution-list div.contribution-row',\n term: '#search-input',\n state: '#filtering-state',\n placeholder: '#filter-placeholder',\n };\n\n const applySearchFilters = setupSearchBox(filterConfig);\n applySearchFilters();\n }\n };\n\n global.setupAbstractJudgment = function setupAbstractJudgment(options) {\n options = $.extend(\n {\n trackSessionMap: {},\n },\n options\n );\n\n $('body').on('change', '#accepted_track', function() {\n const sessionId = options.trackSessionMap[$(this).val()];\n $('#session').val(sessionId || '__None');\n });\n $('#accepted_track').trigger('change');\n };\n})(window);\n"],"names":["customBOAURL","_buildFlaskURL","bind","endpoint","rules","args","converters","event_id","defaults","trace","data","isDynamic","uploadBOAFileURL","CustomBOAModal","_ref","eventId","initialFile","hasLatex","modalOpen","setModalOpen","useState","deleting","setDeleting","confirmDeleteOpen","setConfirmDeleteOpen","buttonLabel","Translate","string","React","className","style","marginRight","onClick","FinalModalForm","id","onClose","onSubmit","async","file","_ref2","indicoAxios","post","e","handleSubmitError","location","reload","Promise","submitLabel","initialValues","uuid","size","header","extraActions","fprops","Button","disabled","submitting","negative","marginBottom","textAlign","FinalSingleFileManager","name","validExtensions","initialFileDetails","uploadURL","required","hideValidationError","margin","Modal","open","closeOnDimmerClick","Header","content","Content","Actions","delete","handleAxiosError","loading","global","propTypes","PropTypes","isRequired","fileDetailsShape","defaultProps","document","addEventListener","container","querySelector","parseInt","dataset","customFile","JSON","parse","ReactDOM","window","setupAbstractList","abstractListContainer","$","applySearchFilters","setupListGenerator","itemHandle","listItems","term","state","placeholder","on","find","mathJax","_defer","setupAbstractEmailTemplatesPage","parent","dropdown","sortable","axis","containment","cursor","distance","handle","items","tolerance","forcePlaceholderSize","update","$elem","sortedList","map","i","elem","get","ajax","url","method","contentType","stringify","sort_order","complete","IndicoUI","Dialogs","Util","progress","error","handleAjaxError","evt","preventDefault","this","$previewBtn","text","$T","gettext","slideToggle","hide","$this","stopOnMatch","hasClass","stop_on_match","dataType","success","toggleClass","setupCallForAbstractsPage","options","extend","hasAbstracts","hash","ready","trigger","setupSearchBox","setupAbstractJudgment","trackSessionMap","sessionId","val"],"sourceRoot":""}