import ApplicationController from './application_controller' export default class extends ApplicationController { static targets = ["input", "document_id", "doctrine_id", "content"] connect () { super.connect() } renderForm () { var document_id = this.element.dataset["documentId"], doctrine_id = this.element.dataset["doctrineId"], $modal = $("#doctrineModal"), $subject_ids_el = $modal.find(".subject-ids-selectize"), $subject_ids_selectize = $subject_ids_el[0].selectize $modal.find("#document_id").val(document_id) if (doctrine_id !== null && doctrine_id !== undefined && doctrine_id !== "") { $modal.find("#doctine_content_suggestions_div").hide() $.get("/api/doctrines/" + doctrine_id + ".json", {}, function (doctrine, status) { $modal.find("#doctrine_id").val(doctrine.id) if (status === "success") { $.get("/api/subjects.json?doctrine_ids=" + doctrine.id, { per_page: 100 }, function (subjects, status) { if (status === "success") { $.each(subjects, function(i, subject) { $subject_ids_selectize.addOption(subject) }) $subject_ids_selectize.refreshOptions() $subject_ids_selectize.setValue(doctrine.subject_ids, true) $subject_ids_selectize.blur() $subject_ids_selectize.close() } }); $modal.find(".trix-content").val(doctrine.content) } }) $modal.find(".modal-title").text("Update Doctrine") $(".selectize-dropdown").hide() } else { $modal.find("#doctine_content_suggestions_div").show() $modal.find(".modal-title").text("New Doctrine") $modal.find(".trix-content").val("") $subject_ids_selectize.setValue([]) $modal.find("#doctrine_id").val('') } } save () { var $modal = $("#doctrineModal"), document_id = this.document_idTarget.value, doctrine_id = this.doctrine_idTarget.value var params = { subject_ids: $modal.find("select[name='subject_ids[]']").val(), content: this.contentTarget.value } if (doctrine_id !== null && doctrine_id !== undefined && doctrine_id !== "") { $.ajax({ url: "/api/doctrines/" + doctrine_id, type: 'PUT', data: params, success: function() { location.pathname = "/documents/" + document_id + "/doctrines/" + doctrine_id } }) } else { $.post("/api/doctrines", $.extend({ jurisprudence_ids: [document_id] }, params), function(data, status) { if(status === 'success') { location.pathname = "/documents/" + document_id + "/doctrines/" + data.id } }) } } }