From b312e505dcd7ee741db12db21d98976cff3a08c6 Mon Sep 17 00:00:00 2001 From: Florian Vessaz Date: Tue, 12 Apr 2016 16:18:10 +0200 Subject: [PATCH] Importer: Use build_url --- importer/indico_importer/plugin.py | 11 +++- .../indico_importer/static/js/importer.js | 65 ++++++++++++------- 2 files changed, 51 insertions(+), 25 deletions(-) diff --git a/importer/indico_importer/plugin.py b/importer/indico_importer/plugin.py index 1b93fe9..421278c 100644 --- a/importer/indico_importer/plugin.py +++ b/importer/indico_importer/plugin.py @@ -19,6 +19,7 @@ from __future__ import unicode_literals from indico.core import signals from indico.core.plugins import IndicoPlugin, IndicoPluginBlueprint, plugin_url_rule_to_js, PluginCategory from indico.modules.events.timetable.views import WPManageTimetable +from indico.web.flask.util import url_rule_to_js from indico_importer import _ from indico_importer.controllers import RHGetImporters, RHImportData, RHDayEndTime, RHBlockEndTime @@ -47,7 +48,15 @@ class ImporterPlugin(IndicoPlugin): def get_vars_js(self): return {'urls': {'import_data': plugin_url_rule_to_js('importer.import_data'), - 'importers': plugin_url_rule_to_js('importer.importers')}} + 'importers': plugin_url_rule_to_js('importer.importers'), + 'day_end_date': plugin_url_rule_to_js('importer.day_end_date'), + 'block_end_date': plugin_url_rule_to_js('importer.block_end_date'), + 'add_contrib': url_rule_to_js('timetable.add_contribution'), + 'create_subcontrib_rest': url_rule_to_js('contributions.create_subcontrib_rest'), + 'create_contrib_reference_rest': url_rule_to_js('contributions.create_contrib_reference_rest'), + 'create_subcontrib_reference_rest': url_rule_to_js('contributions' + '.create_subcontrib_reference_rest'), + 'add_link': url_rule_to_js('attachments.add_link')}} def register_assets(self): self.register_js_bundle('importer_js', 'js/importer.js') diff --git a/importer/indico_importer/static/js/importer.js b/importer/indico_importer/static/js/importer.js index e788e3f..bc4677b 100644 --- a/importer/indico_importer/static/js/importer.js +++ b/importer/indico_importer/static/js/importer.js @@ -422,13 +422,17 @@ } else { var url; if (this.destination.entryType == 'Day') { - // FIXME build URL in a better way - url = '/importers/indico_importer/event/' + this.confId + '/day-end-date' + url = build_url(ImporterPlugin.urls.day_end_date, { + importer_name: 'indico_importer', + confId: this.confId + }); } if (this.destination.entryType == 'Session') { - // FIXME build URL in a better way - url = '/importers/indico_importer/event/' + this.confId + '/entry/' + - this.destination.scheduleEntryId + '/block-end-date'; + url = build_url(ImporterPlugin.urls.block_end_date, { + importer_name: 'indico_importer', + confId: this.confId, + entry_id: this.destination.scheduleEntryId + }); } $.ajax({ url: url, @@ -482,20 +486,21 @@ }, _getUrl: function(eventId, day, destination) { - var params = "?" + $.param({'day': day}); + var params = { + 'confId': eventId, + }; if (destination.entryType == 'Day') { - // FIXME build URL in a better way - return '/event/' + eventId + '/manage/timetable/add-contribution' + params; + params.day = day; + return build_url(ImporterPlugin.urls.add_contrib, params); } if (destination.entryType == 'Session') { - params += '&' + $.param({'session_block_id': destination.sessionSlotId}); - // FIXME build URL in a better way - return '/event/' + eventId + '/manage/timetable/add-contribution' + params; + params.day = day; + params.session_block_id = destination.sessionSlotId + return build_url(ImporterPlugin.urls.add_contrib, params); } if (destination.entryType == 'Contribution') { - // FIXME build URL in a better way - return '/event/' + eventId + '/manage/contributions/' + destination.contributionId + - '/subcontributions/'; + params.contrib_id = destination.contributionId; + return build_url(ImporterPlugin.urls.create_subcontrib_rest, params); } }, @@ -521,13 +526,20 @@ }, _addContributionMaterial: function(title, link_url, eventId, contributionId, subContributionId) { - var request_url; + var requestUrl; if (subContributionId !== undefined) { - request_url = '/event/' + eventId + '/manage/contributions/' + contributionId + - '/subcontribution/' + subContributionId + '/attachments/add/link'; + requestUrl = build_url(ImporterPlugin.urls.add_link, { + 'confId': eventId, + 'contrib_id': contributionId, + 'subcontrib_id': subContributionId, + 'object_type': 'subcontribution' + }); } else { - request_url = '/event/' + eventId + '/manage/contributions/' + contributionId + - '/attachments/add/link'; + requestUrl = build_url(ImporterPlugin.urls.add_link, { + 'confId': eventId, + 'contrib_id': contributionId, + 'object_type': 'contribution' + }); } var params = { 'csrf_token': $('#csrf-token').attr('content'), @@ -536,17 +548,22 @@ 'folder': '__None', 'acl': '[]' }; - ImporterUtils._sendRequest(request_url, params); + ImporterUtils._sendRequest(requestUrl, params); }, _addReference: function(type, value, eventId, contributionId, subContributionId) { var url; if (subContributionId !== undefined) { - url = '/event/' + eventId + '/manage/contributions/' + contributionId + - '/subcontributions/' + subContributionId + '/references'; + url = build_url(ImporterPlugin.urls.create_subcontrib_reference_rest, { + 'confId': eventId, + 'contrib_id': contributionId, + 'subcontrib_id': subContributionId + }); } else { - url = '/event/' + eventId + '/manage/contributions/' + contributionId + - '/references'; + url = build_url(ImporterPlugin.urls.create_contrib_reference_rest, { + 'confId': eventId, + 'contrib_id': contributionId + }); } var params = { 'csrf_token': $('#csrf-token').attr('content'),