From 71887f291142da192b05f3b455a5eaddfc03e78d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sen=C3=A9n=20Rodero=20Rodr=C3=ADguez?= Date: Thu, 21 Mar 2019 14:03:38 +0100 Subject: [PATCH] Initialize answers 'after-insert' callback to keep answers order Also provide a function to initialize new set of answers 'affer-insert' callback after adding new questions. --- app/assets/javascripts/answers.js.coffee | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/answers.js.coffee b/app/assets/javascripts/answers.js.coffee index c36d09f12..183e1c628 100644 --- a/app/assets/javascripts/answers.js.coffee +++ b/app/assets/javascripts/answers.js.coffee @@ -1,9 +1,20 @@ App.Answers = + initializeAnswers: (answers) -> + $(answers).on 'cocoon:after-insert', (e, new_answer) -> + given_order = App.Answers.maxGivenOrder(answers) + 1 + $(new_answer).find("[name$='[given_order]']").val(given_order) + + maxGivenOrder: (answers) -> + max_order = 0 + $(answers).find("[name$='[given_order]']").each (index, answer) -> + value = parseFloat($(answer).val()) + max_order = if value > max_given_order then value else max_given_order + return max_given_order + nestedAnswers: -> - $('.nested-answers').on 'cocoon:after-insert', (e, insertedItem) -> - nestedAnswersCount = $("input[type='hidden'][name$='[given_order]']").size() - $(insertedItem).find("input[type='hidden'][name$='[given_order]']").val(nestedAnswersCount) + $('.js-answers').each (index, answers) -> + App.Answers.initializeAnswers(answers) initialize: -> App.Answers.nestedAnswers()