Sha256: e93489c5f1bfa6f5578a13316d026b6dce7ff77be64a8ed3dbf9e199d161ef6b

Contents?: true

Size: 1.49 KB

Versions: 35

Compression:

Stored size: 1.49 KB

Contents

class Quby.Logic.InitQuestions
  constructor: (questionAttributes) ->
    @questions = new Quby.Collections.Questions
    @questionAttributes = questionAttributes

  initializeQuestions: ->
    _.each @questionAttributes, (questionAttribute) =>
      options = @initializeOptions questionAttribute.options
      question = @initializeQuestion(questionAttribute, options)
      @questions.add question
    @questions

  initializeOptions: (optionAttributes) ->
    options = new Quby.Collections.QuestionOptions
    _.each optionAttributes, (attrs) =>
      option = new Quby.Models.QuestionOption
        key: attrs.key
        showsQuestionsKeys: attrs.showsQuestions
        hidesQuestionsKeys: attrs.hidesQuestions
        startChosen: attrs.startChosen
      element = @initializeOptionViewElement attrs.viewId
      new Quby.Views.QuestionOptionView(model: option, el: element)
      options.add option
    options

  initializeOptionViewElement: (view_id) ->
    $("#" + view_id)[0]

  initializeQuestion: (question, options) ->
    parentQuestion = @questions.findWhere(key: question.parentKey)
    if parentQuestion
      parentOption = parentQuestion.get("options").findWhere(key: question.parentOptionKey)
    new Quby.Models.Question(
      key: question.key
      viewSelector: question.viewSelector
      options: options
      type: question.type
      defaultInvisible: question.defaultInvisible
      parentQuestion: parentQuestion
      parentOption: parentOption
      deselectable: question.deselectable
    )

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
quby-5.6.7 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.6.6 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.6.5 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.6.3 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.6.2 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.6.1 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.6.0 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.5.0 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.4.0 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.3.1 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.3.0 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.2.0 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.1.3 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.1.2 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.1.1 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.1.0 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.0.5 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.0.4 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.0.3 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee
quby-5.0.2 app/assets/javascripts/quby/backbone/logic/init_questions.js.coffee