From 17de28965b764767457d469930a2b9d9c0779000 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sun, 7 Jan 2024 14:19:21 +0200 Subject: [PATCH] add LTR script support --- Dockerfile | 11 +++++++- .../elements/folder_autocomplete.js | 2 ++ .../elements/submitter_autocomplete.js | 2 ++ app/javascript/submission_form/area.vue | 1 + app/javascript/submission_form/date_step.vue | 2 +- app/javascript/submission_form/form.vue | 3 +++ .../submission_form/initials_step.vue | 4 +-- .../submission_form/multi_select_step.vue | 1 + .../submission_form/signature_step.vue | 4 +-- app/javascript/submission_form/text_step.vue | 2 ++ app/javascript/template_builder/area.vue | 3 ++- .../template_builder/contenteditable.vue | 1 + app/javascript/template_builder/field.vue | 3 +++ app/views/accounts/show.html.erb | 2 +- app/views/layouts/mailer.html.erb | 2 +- .../_documents_copy_email_form.html.erb | 4 +-- .../_form_completed_button_form.html.erb | 2 +- .../_signature_request_email_form.html.erb | 4 +-- .../_submitter_completed_email_form.html.erb | 4 +-- app/views/profile/index.html.erb | 4 +-- app/views/submissions/_detailed_form.html.erb | 2 +- app/views/submissions/_phone_form.html.erb | 4 +-- app/views/submissions/_send_email.html.erb | 4 +-- app/views/submissions/_value.html.erb | 2 +- app/views/submissions/show.html.erb | 8 +++--- app/views/template_folders/edit.html.erb | 2 +- app/views/templates/new.html.erb | 2 +- app/views/users/_form.html.erb | 4 +-- lib/submissions/generate_audit_trail.rb | 22 +++++++++++++--- .../generate_result_attachments.rb | 26 ++++++++++++++----- 30 files changed, 95 insertions(+), 42 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8b62c9ae..fcc13c8c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,11 @@ +FROM ruby:3.2.2-alpine3.18 as fonts + +WORKDIR /fonts + +RUN apk --no-cache add fontforge wget ttf-liberation && cp /usr/share/fonts/liberation/LiberationSans-Regular.ttf /usr/share/fonts/liberation/LiberationSans-Bold.ttf . && wget https://cdn.jsdelivr.net/gh/notofonts/notofonts.github.io/fonts/NotoSansArabic/hinted/ttf/NotoSansArabic-Regular.ttf && wget https://github.com/impallari/DancingScript/raw/master/fonts/DancingScript-Regular.otf && wget https://github.com/impallari/DancingScript/blob/master/OFL.txt + +RUN fontforge -lang=py -c 'font1 = fontforge.open("LiberationSans-Regular.ttf"); font2 = fontforge.open("NotoSansArabic-Regular.ttf"); font1.mergeFonts(font2); font1.generate("LiberationSans-Regular.ttf")' + FROM ruby:3.2.2-alpine3.18 as webpack ENV RAILS_ENV=production @@ -31,7 +39,7 @@ ENV BUNDLE_WITHOUT="development:test" WORKDIR /app -RUN apk add --no-cache build-base sqlite-dev libpq-dev mariadb-dev vips-dev vips-poppler poppler-utils vips-heif libc6-compat ttf-freefont ttf-liberation && mkdir /fonts && cp /usr/share/fonts/liberation/LiberationSans-Regular.ttf /usr/share/fonts/liberation/LiberationSans-Bold.ttf /fonts && apk del ttf-liberation && wget -O /fonts/DancingScript.otf "https://github.com/impallari/DancingScript/raw/master/fonts/DancingScript-Regular.otf" && wget -O /fonts/DancingScript-License.txt https://github.com/impallari/DancingScript/blob/master/OFL.txt +RUN apk add --no-cache build-base sqlite-dev libpq-dev mariadb-dev vips-dev vips-poppler poppler-utils vips-heif libc6-compat ttf-freefont && mkdir /fonts COPY ./Gemfile ./Gemfile.lock ./ @@ -47,6 +55,7 @@ COPY ./public ./public COPY ./tmp ./tmp COPY LICENSE README.md Rakefile config.ru ./ +COPY --from=fonts /fonts/LiberationSans-Regular.ttf /fonts/LiberationSans-Bold.ttf /fonts/DancingScript-Regular.otf /fonts/OFL.txt /fonts COPY --from=webpack /app/public/packs ./public/packs RUN ln -s /fonts /app/public/fonts diff --git a/app/javascript/elements/folder_autocomplete.js b/app/javascript/elements/folder_autocomplete.js index 3d0bb4e3..2c4a1fe0 100644 --- a/app/javascript/elements/folder_autocomplete.js +++ b/app/javascript/elements/folder_autocomplete.js @@ -32,6 +32,8 @@ export default class extends HTMLElement { render = (item) => { const div = document.createElement('div') + div.setAttribute('dir', 'auto') + div.textContent = item.name return div diff --git a/app/javascript/elements/submitter_autocomplete.js b/app/javascript/elements/submitter_autocomplete.js index 0e5f8a8f..e5820d8e 100644 --- a/app/javascript/elements/submitter_autocomplete.js +++ b/app/javascript/elements/submitter_autocomplete.js @@ -56,6 +56,8 @@ export default class extends HTMLElement { render = (item) => { const div = document.createElement('div') + div.setAttribute('dir', 'auto') + div.textContent = item[this.dataset.field] return div diff --git a/app/javascript/submission_form/area.vue b/app/javascript/submission_form/area.vue index 23019c72..e71b6433 100644 --- a/app/javascript/submission_form/area.vue +++ b/app/javascript/submission_form/area.vue @@ -1,6 +1,7 @@