Skip to content

Commit d814842

Browse files
Translations Preview (#289)
1 parent eadabeb commit d814842

File tree

3 files changed

+56
-2
lines changed

3 files changed

+56
-2
lines changed

app/models/downloadable_resource.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,13 @@ def quran_script?
332332
resource_type == 'quran-script'
333333
end
334334

335+
def translation_preview?
336+
resource_type == 'translation'
337+
end
338+
339+
335340
def previewable?
336-
mushaf_layout? || quran_script? || font?
341+
mushaf_layout? || quran_script? || font? || translation_preview?
337342
end
338343

339344
def notify_users

app/views/resources/_preview.html.erb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
<%= render 'resources/previews/quran_script', resource: resource %>
77
<% end %>
88

9+
<% if resource.translation_preview? %>
10+
<%= render 'resources/previews/translation', resource: resource %>
11+
<% end %>
12+
913
<% if resource.font? %>
1014
<%= render 'resources/previews/font', resource: resource %>
11-
<% end %>
15+
<% end %>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<%
2+
dr = resource
3+
rc = dr.resource_content
4+
key = params[:ayah] || '73:4'
5+
ayah = Verse.find_by(verse_key: key) || Verse.find_by(verse_key: '73:4')
6+
translation = Translation.find_by(
7+
resource_content_id: rc.id,
8+
verse_id: ayah.id
9+
)
10+
%>
11+
12+
<script>
13+
function jumpToAyah(selectAyah) {
14+
const currentUrl = new URL(window.location.href);
15+
currentUrl.searchParams.set("ayah", selectAyah);
16+
Turbo.visit(currentUrl.toString());
17+
}
18+
</script>
19+
20+
<div class="tw-flex tw-justify-center tw-flex-col tw-items-center mb-4">
21+
<div class="tw-mb-4">
22+
<%= label_tag :ayah, 'Jump to ayah', class: 'tw-me-2' %>
23+
<%= select_tag :ayah,
24+
options_for_select(Verse.pluck(:verse_key), ayah.verse_key),
25+
onchange: "jumpToAyah(this.value)",
26+
style: 'min-width:200px',
27+
data: { controller: 'select2' } %>
28+
</div>
29+
</div>
30+
31+
<div class="tw-mb-3">
32+
<h4 class="tw-text-lg tw-font-semibold">
33+
Preview of translation from Surah <%= ayah.chapter.name_simple %>, Ayah <%= ayah.verse_number %>
34+
</h4>
35+
</div>
36+
37+
<div class="border p-3 rounded max-w-2xl mx-auto tw-bg-white border c text-center rounded quran-text ">
38+
<% if translation&.text.present? %>
39+
<p class="tw-text-base tw-leading-relaxed">
40+
<%= translation.text.html_safe %>
41+
</p>
42+
<% else %>
43+
<p class="tw-text-gray-500">Translation not available</p>
44+
<% end %>
45+
</div>

0 commit comments

Comments
 (0)