var Prismic = PrismicJS, PrismicDOM = PrismicDOM, prismicEndpoint = "https://aurora-faq.prismic.io/api/v2", faqMenuRows = $("#faq-menu-rows"), faqCategoryContainer = $("#faq-category-container"), faqMenuContainer = $("#faq-menu-container"), strainLoader = document.getElementById("strains-loader-fr"), categories = [], categoryID = "", categoryTitle = "", categoryIcon = "", categoryQA = []; // Make Prismic request Prismic.getApi(prismicEndpoint).then(function(api) { // Display loader return api.query("", { lang: "fr-ca" }); // An empty query will return all the documents }).then(function(response) { // strainLoader.style.display = "none"; var faq = response.results; formatFaq(faq); }, function(err) { console.log(err); strainLoader.style.display = "none"; }); function formatFaq(faq) { categories = _.map(faq, function(category) { category.heading = category.data.category_title; category.image = category.data.icon.url; category.anchor = category.data.category_title.toLowerCase().replace(/[^A-Z0-9]/ig, ""); category.QA = category.data.questions_and_answers; category.icon = category.data.font_icon; return _.pick(category, 'heading', 'image', 'anchor', 'icon', 'QA' ); }); formatMarkup(categories); } function formatMarkup(categories) { function formatQuestionId(questionTitle) { return(questionTitle.toLowerCase().replace(/[^A-Z0-9]/ig, "")); } function formatCategoryId(categoryTitle) { return(categoryTitle.toLowerCase().replace(/[^A-Z0-9]/ig, "")); } for(var i = 0; i < categories.length; i++) { var thisOutput = '
'; if (categories[i].icon) { thisOutput += '

'; } else { thisOutput += ''; } thisOutput += '

' + categories[i].heading + '

'; faqMenuRows.append( thisOutput ); faqCategoryContainer.append( "

" + categories[i].heading + "

" ); for(var j = 0; j < categories[i].QA.length; j++) { var thisSelector = '#accordion-' + categories[i].anchor; $(thisSelector).append( "

" + categories[i].QA[j].question + "

" + PrismicDOM.RichText.asHtml(categories[i].QA[j].answer) + "
" ); } } $('.collapse').on('show.bs.collapse', function(e) { var thisTargetId = '#icon-' + e.currentTarget.id; $(thisTargetId).removeClass("glyphicon glyphicon-plus"); $(thisTargetId).addClass("glyphicon glyphicon-minus"); }); $('.collapse').on('hide.bs.collapse', function(e) { var thisTargetSelector = '#icon-' + e.currentTarget.id; $(thisTargetSelector).removeClass("glyphicon glyphicon-minus"); $(thisTargetSelector).addClass("glyphicon glyphicon-plus"); }); }