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 console.log(this.element.dataset) 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("#document_id").val(doctrine.document_id) $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) } }); $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("#document_id").val(document_id) } } save () { var $modal = $("#doctrineModal"), document_id = this.document_idTarget.value, doctrine_id = this.doctrine_idTarget.value const 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: "/jurisprudences/" + document_id + "/doctrines/" + doctrine_id, type: 'PUT', data: params }) } else { $.post("/jurisprudences/" + document_id + "/doctrines", params) } } }