.container-fluid#reportsPage v-cloak="" data-controller="reports" .row .col-md-3 = render partial: "respondent_categories/sidebar" .col-md-9 = render_breadcrumbs([ \ { name: 'Home', path: projects_path }, \ { name: @project.title, path: project_path(@project) }, \ { name: @respondent_category.name, path: [@project, @respondent_category] }, \ { name: "Section Reports", path: section_reports_project_respondent_category_path(@project, @respondent_category) }, \ { name: "All Data Report" } \ ]) - if @respondent_category.transcript_sections.present? .fs-16.semi-bold.mb-4 = @respondent_category.name .d-flex.justify-content-between .fs-24 | Section Reports / Summaries .d-flex.mb-2.flex-wrap.gap-2 = link_to sections_csv_project_respondent_category_path(@project, @respondent_category), class: "btn btn-success fs-12", target: "_blank" do i.bi.bi-file-earmark-excel.me-2.fs-10 | Download button.transliteration-toggle.btn.btn-secondary.d-flex.align-items-center.fs-14 @click="toggleTransliteration" vue-feather type="eye" class="text-primary me-2" size="12" v-if="transliterationEnabled == false" vue-feather type="eye-off" class="text-primary me-2" size="12" v-if="transliterationEnabled == true" | Transliteration button.btn.btn-secondary.fs-12[ :class="{ active: isAnalysisView }" @click="toggleView(tableViews.ANALYSIS)" ] {{ isAnalysisView ? 'Toggle to Raw Grid' : 'Toggle to Summary Grid' }} button.btn.btn-primary.fs-12[ :class="{ active: isAggregateView }" @click="toggleView(tableViews.AGGREGATE)" ] {{ isAggregateView ? 'Hide Aggregate Summary' : 'View Aggregate Summary' }} .reports-container .reports-table v-show="isRawView" ref="rawTable" table.table-striped.table.table-bordered.table-responsive style="transform: translate3d(0, 0, 0);" thead.fs-12 tr th button.btn.btn-sm.btn-outline-primary.py-1.px-2.fs-12[ @click="toggleAllInTable" style="width: fit-content; min-height: 22px; line-height: 1.2" ] vue-feather.mt-1[ :type="tableExpanded ? 'minimize-2' : 'maximize-2'" size="16" ] - @respondents.each do |respondent| th.p-4 style="min-width: 300px;" = link_to respondent.name, [respondent.project, respondent.respondent_category, respondent], target: "_blank" - unless respondent.tags.empty? .d-flex.flex-wrap.gap-1.mt-1 - respondent.tags.includes(:tag_category).each do |tag| span.badge.bg-secondary.me-2.text-black.fs-10 = tag.tag_category.name |: = tag.name tbody.fs-12 - @sections.each do |section| tr td.p-4.align-top.semi-bold expandable-row[ :section-name="'#{section[0]}'" :section-id="'#{section[1]}'" :parent-expanded="tableExpanded" @toggle-row="expanded => toggleRowExpansion('#{section[1]}', expanded)" ] - @respondents.each do |r| td.align-top.p-4 - transcript_sections = r.transcript_sections.select{|x|x.master_section_id == section[1]} - if !transcript_sections.empty? - transcript_sections.each_with_index do |transcript_section, i| - if transcript_sections.count > 1 strong = "Excerpt #{i+1}" - if ["hi", "multi"].include?(r.language) expandable-text( :text="transliterate(#{transcript_section.content.to_json})" :force-expanded="getRowExpansionState('#{section[1]}')" @expansion-changed="expanded => handleCellExpansion('#{section[1]}')" ) - else expandable-text( :text="#{transcript_section.content.to_json}" :force-expanded="getRowExpansionState('#{section[1]}')" @expansion-changed="expanded => handleCellExpansion('#{section[1]}')" ) - if transcript_sections.count > 1 .mb-2 - else .text-muted.fst-italic | No Data Found .reports-table v-show="isAnalysisView" ref="analysisTable" table.table-striped.table.table-bordered.table-responsive style="transform: translate3d(0, 0, 0);" thead.fs-12 tr th button.btn.btn-sm.btn-outline-primary.py-1.px-2.fs-12[ @click="toggleAllInTable" style="width: fit-content; min-height: 22px; line-height: 1.2" ] vue-feather.mt-1[ :type="tableExpanded ? 'minimize-2' : 'maximize-2'" size="16" ] - @respondents.each do |respondent| th.p-4 style="min-width: 300px;" = link_to respondent.name, [respondent.project, respondent.respondent_category, respondent], target: "_blank" - unless respondent.tags.empty? .d-flex.flex-wrap.gap-1.mt-1 - respondent.tags.includes(:tag_category).each do |tag| span.badge.bg-secondary.me-2.text-black.fs-10 = tag.tag_category.name |: = tag.name tbody.fs-12 - @sections.each do |section| tr td.p-4.align-top.semi-bold expandable-row[ :section-name="'#{section[0]}'" :section-id="'#{section[1]}'" :parent-expanded="tableExpanded" @toggle-row="expanded => toggleRowExpansion('#{section[1]}', expanded)" ] - @respondents.each do |r| td.align-top.p-4 - transcript_sections = r.transcript_sections.select{|x| x.master_section_id == section[1]} - if !transcript_sections.empty? - transcript_sections.each_with_index do |transcript_section, i| - if transcript_section and !transcript_section.ai_summary.blank? - if transcript_sections.count > 1 strong = "Excerpt #{i+1} summary" expandable-text( :text="#{transcript_section.ai_summary_markdown.to_json}" :force-expanded="getRowExpansionState('#{section[1]}')" @expansion-changed="expanded => handleCellExpansion('#{section[1]}')" ) - if transcript_sections.count > 1 .mb-2 - else .text-muted.fst-italic | (Excerpt #{i+1}) No Data Found - else .text-muted.fst-italic | No Data Found .reports-table v-show="isAggregateView" ref="aggregateTable" table.table-striped.table.table-bordered.table-responsive style="transform: translate3d(0, 0, 0);" thead.fs-12 tr th button.btn.btn-sm.btn-outline-primary.py-1.px-2.fs-12[ @click="toggleAllInTable" style="width: fit-content; min-height: 22px; line-height: 1.2" ] vue-feather.mt-1[ :type="tableExpanded ? 'minimize-2' : 'maximize-2'" size="16" ] th Aggregate Summary tbody.fs-12 - @sections.each do |section| tr td.p-4.align-top.semi-bold expandable-row[ :section-name="'#{section[0]}'" :section-id="'#{section[1]}'" :parent-expanded="tableExpanded" @toggle-row="expanded => toggleRowExpansion('#{section[1]}', expanded)" ] td.align-top.p-4 - section_summary = SectionSummary.where(all_data: true, groupable: @respondent_category).select{|x|x.master_section_id == section[1]}.last - if section_summary expandable-text( :text="#{section_summary.summary_markdown.to_json}" :force-expanded="getRowExpansionState('#{section[1]}')" @expansion-changed="expanded => handleCellExpansion('#{section[1]}')" ) - else .text-muted.fst-italic | No Data Found - else .text-center.my-5 .custom-card .card.border-primary.shadow-sm.mx-auto style="max-width: 500px" .card-body.p-5 i.bi.bi-inbox.text-primary.fs-1.mb-3 h5.card-title.text-primary.mb-3 No Data Available p.card-text.text-muted.mb-0 There are currently no items to display in this table.