mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-06 18:30:57 +00:00
Merge branch 'main' into session_2025_03_22
This commit is contained in:
commit
8ae52105a0
@ -6,13 +6,15 @@ on:
|
|||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
issues: write # Required for adding reactions to comments
|
||||||
|
pull-requests: read # Required for reading PR information
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-comment:
|
check-comment:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
|
issues: write
|
||||||
pull-requests: read
|
pull-requests: read
|
||||||
issues: read
|
|
||||||
if: |
|
if: |
|
||||||
github.event.issue.pull_request &&
|
github.event.issue.pull_request &&
|
||||||
(
|
(
|
||||||
@ -34,6 +36,7 @@ jobs:
|
|||||||
pr_number: ${{ steps.get-pr.outputs.pr_number }}
|
pr_number: ${{ steps.get-pr.outputs.pr_number }}
|
||||||
pr_repository: ${{ steps.get-pr-info.outputs.repository }}
|
pr_repository: ${{ steps.get-pr-info.outputs.repository }}
|
||||||
pr_ref: ${{ steps.get-pr-info.outputs.ref }}
|
pr_ref: ${{ steps.get-pr-info.outputs.ref }}
|
||||||
|
comment_id: ${{ github.event.comment.id }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Harden Runner
|
- name: Harden Runner
|
||||||
@ -41,6 +44,14 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
|
# Generate GitHub App token
|
||||||
|
- name: Generate GitHub App Token
|
||||||
|
id: generate-token
|
||||||
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.GH_APP_ID }}
|
||||||
|
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
- name: Get PR data
|
- name: Get PR data
|
||||||
id: get-pr
|
id: get-pr
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
@ -73,11 +84,33 @@ jobs:
|
|||||||
core.setOutput('repository', repository);
|
core.setOutput('repository', repository);
|
||||||
core.setOutput('ref', pr.head.ref);
|
core.setOutput('ref', pr.head.ref);
|
||||||
|
|
||||||
|
- name: Add 'in_progress' reaction to comment
|
||||||
|
id: add-eyes-reaction
|
||||||
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
script: |
|
||||||
|
console.log(`Adding eyes reaction to comment ID: ${context.payload.comment.id}`);
|
||||||
|
try {
|
||||||
|
const { data: reaction } = await github.rest.reactions.createForIssueComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
comment_id: context.payload.comment.id,
|
||||||
|
content: 'eyes'
|
||||||
|
});
|
||||||
|
console.log(`Added reaction with ID: ${reaction.id}`);
|
||||||
|
return { success: true, id: reaction.id };
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Failed to add reaction: ${error.message}`);
|
||||||
|
console.error(error);
|
||||||
|
return { success: false, error: error.message };
|
||||||
|
}
|
||||||
|
|
||||||
deploy-pr:
|
deploy-pr:
|
||||||
needs: check-comment
|
needs: check-comment
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
contents: read
|
||||||
issues: write
|
issues: write
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@ -86,6 +119,13 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
egress-policy: audit
|
egress-policy: audit
|
||||||
|
|
||||||
|
- name: Generate GitHub App Token
|
||||||
|
id: generate-token
|
||||||
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.GH_APP_ID }}
|
||||||
|
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
|
||||||
|
|
||||||
- name: Checkout PR
|
- name: Checkout PR
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
with:
|
with:
|
||||||
@ -137,6 +177,7 @@ jobs:
|
|||||||
sudo chmod 600 ../private.key
|
sudo chmod 600 ../private.key
|
||||||
|
|
||||||
- name: Deploy to VPS
|
- name: Deploy to VPS
|
||||||
|
id: deploy
|
||||||
run: |
|
run: |
|
||||||
# First create the docker-compose content locally
|
# First create the docker-compose content locally
|
||||||
cat > docker-compose.yml << 'EOF'
|
cat > docker-compose.yml << 'EOF'
|
||||||
@ -180,10 +221,51 @@ jobs:
|
|||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
ENDSSH
|
ENDSSH
|
||||||
|
|
||||||
|
- name: Add success reaction to comment
|
||||||
|
if: success()
|
||||||
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
script: |
|
||||||
|
console.log(`Adding rocket reaction to comment ID: ${{ needs.check-comment.outputs.comment_id }}`);
|
||||||
|
try {
|
||||||
|
const { data: reaction } = await github.rest.reactions.createForIssueComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
comment_id: ${{ needs.check-comment.outputs.comment_id }},
|
||||||
|
content: 'rocket'
|
||||||
|
});
|
||||||
|
console.log(`Added rocket reaction with ID: ${reaction.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Failed to add reaction: ${error.message}`);
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
- name: Add failure reaction to comment
|
||||||
|
if: failure()
|
||||||
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
script: |
|
||||||
|
console.log(`Adding -1 reaction to comment ID: ${{ needs.check-comment.outputs.comment_id }}`);
|
||||||
|
try {
|
||||||
|
const { data: reaction } = await github.rest.reactions.createForIssueComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
comment_id: ${{ needs.check-comment.outputs.comment_id }},
|
||||||
|
content: '-1'
|
||||||
|
});
|
||||||
|
console.log(`Added -1 reaction with ID: ${reaction.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Failed to add reaction: ${error.message}`);
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
|
||||||
- name: Post deployment URL to PR
|
- name: Post deployment URL to PR
|
||||||
if: success()
|
if: success()
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||||
with:
|
with:
|
||||||
|
github-token: ${{ steps.generate-token.outputs.token }}
|
||||||
script: |
|
script: |
|
||||||
const { GITHUB_REPOSITORY } = process.env;
|
const { GITHUB_REPOSITORY } = process.env;
|
||||||
const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/');
|
const [repoOwner, repoName] = GITHUB_REPOSITORY.split('/');
|
1
.github/workflows/multiOSReleases.yml
vendored
1
.github/workflows/multiOSReleases.yml
vendored
@ -264,6 +264,7 @@ jobs:
|
|||||||
name: ${{ matrix.platform }}signed
|
name: ${{ matrix.platform }}signed
|
||||||
path: |
|
path: |
|
||||||
./Stirling-PDF-${{ matrix.platform }}installer.*
|
./Stirling-PDF-${{ matrix.platform }}installer.*
|
||||||
|
./Stirling-PDF-${{ matrix.platform }}-x86_64-installer.*
|
||||||
!cosign.*
|
!cosign.*
|
||||||
|
|
||||||
create-release:
|
create-release:
|
||||||
|
@ -134,7 +134,7 @@ Stirling-PDF currently supports 39 languages!
|
|||||||
| Hungarian (Magyar) (hu_HU) |  |
|
| Hungarian (Magyar) (hu_HU) |  |
|
||||||
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
||||||
| Irish (Gaeilge) (ga_IE) |  |
|
| Irish (Gaeilge) (ga_IE) |  |
|
||||||
| Italian (Italiano) (it_IT) |  |
|
| Italian (Italiano) (it_IT) |  |
|
||||||
| Japanese (日本語) (ja_JP) |  |
|
| Japanese (日本語) (ja_JP) |  |
|
||||||
| Korean (한국어) (ko_KR) |  |
|
| Korean (한국어) (ko_KR) |  |
|
||||||
| Norwegian (Norsk) (no_NB) |  |
|
| Norwegian (Norsk) (no_NB) |  |
|
||||||
|
@ -29,7 +29,7 @@ ext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "stirling.software"
|
group = "stirling.software"
|
||||||
version = "0.45.3"
|
version = "0.45.4"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
// 17 is lowest but we support and recommend 21
|
// 17 is lowest but we support and recommend 21
|
||||||
|
@ -1405,25 +1405,25 @@ validateSignature.cert.bits=bit
|
|||||||
####################
|
####################
|
||||||
# Cookie banner #
|
# Cookie banner #
|
||||||
####################
|
####################
|
||||||
cookieBanner.popUp.title=How we use Cookies
|
cookieBanner.popUp.title=Come utilizziamo i cookie
|
||||||
cookieBanner.popUp.description.1=We use cookies and other technologies to make Stirling PDF work better for you—helping us improve our tools and keep building features you'll love.
|
cookieBanner.popUp.description.1=Utilizziamo cookie e altre tecnologie per migliorare l'esperienza utente di Stirling PDF, aiutandoci a perfezionare i nostri strumenti e a continuare a sviluppare funzionalità che amerai.
|
||||||
cookieBanner.popUp.description.2=If you’d rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly.
|
cookieBanner.popUp.description.2=Se preferisci non farlo, cliccando su "No grazie" verranno abilitati solo i cookie essenziali, necessari per il corretto funzionamento del sito.
|
||||||
cookieBanner.popUp.acceptAllBtn=Okay
|
cookieBanner.popUp.acceptAllBtn=Acconsento
|
||||||
cookieBanner.popUp.acceptNecessaryBtn=No Thanks
|
cookieBanner.popUp.acceptNecessaryBtn=No grazie
|
||||||
cookieBanner.popUp.showPreferencesBtn=Manage preferences
|
cookieBanner.popUp.showPreferencesBtn=Gestisci preferenze
|
||||||
cookieBanner.preferencesModal.title=Consent Preferences Center
|
cookieBanner.preferencesModal.title=Gestore delle preferenze per il consenso
|
||||||
cookieBanner.preferencesModal.acceptAllBtn=Accept all
|
cookieBanner.preferencesModal.acceptAllBtn=Accetta tutto
|
||||||
cookieBanner.preferencesModal.acceptNecessaryBtn=Reject all
|
cookieBanner.preferencesModal.acceptNecessaryBtn=Rifiuta tutto
|
||||||
cookieBanner.preferencesModal.savePreferencesBtn=Save preferences
|
cookieBanner.preferencesModal.savePreferencesBtn=Salva preferenze
|
||||||
cookieBanner.preferencesModal.closeIconLabel=Close modal
|
cookieBanner.preferencesModal.closeIconLabel=Close modal
|
||||||
cookieBanner.preferencesModal.serviceCounterLabel=Service|Services
|
cookieBanner.preferencesModal.serviceCounterLabel=Servizio|Servizi
|
||||||
cookieBanner.preferencesModal.subtitle=Cookie Usage
|
cookieBanner.preferencesModal.subtitle=Utilizzo dei cookie
|
||||||
cookieBanner.preferencesModal.description.1=Stirling PDF uses cookies and similar technologies to enhance your experience and understand how our tools are used. This helps us improve performance, develop the features you care about, and provide ongoing support to our users.
|
cookieBanner.preferencesModal.description.1=Stirling PDF utilizza cookie e tecnologie simili per migliorare la tua esperienza e comprendere come vengono utilizzati i nostri strumenti. Questo ci aiuta a migliorare le prestazioni, a sviluppare le funzionalità che ti interessano e a fornire supporto continuo ai nostri utenti.
|
||||||
cookieBanner.preferencesModal.description.2=Stirling PDF cannot—and will never—track or access the content of the documents you use.
|
cookieBanner.preferencesModal.description.2=Stirling PDF non può e non potrà mai tracciare o accedere al contenuto dei documenti che utilizzi.
|
||||||
cookieBanner.preferencesModal.description.3=Your privacy and trust are at the core of what we do.
|
cookieBanner.preferencesModal.description.3=La tua privacy e la tua fiducia sono al centro del nostro operato.
|
||||||
cookieBanner.preferencesModal.necessary.title.1=Strictly Necessary Cookies
|
cookieBanner.preferencesModal.necessary.title.1=Cookie strettamente necessari
|
||||||
cookieBanner.preferencesModal.necessary.title.2=Always Enabled
|
cookieBanner.preferencesModal.necessary.title.2=Sempre abilitati
|
||||||
cookieBanner.preferencesModal.necessary.description=These cookies are essential for the website to function properly. They enable core features like setting your privacy preferences, logging in, and filling out forms—which is why they can’t be turned off.
|
cookieBanner.preferencesModal.necessary.description=Questi cookie sono essenziali per il corretto funzionamento del sito web. Abilitano funzionalità fondamentali come l'impostazione delle preferenze sulla privacy, l'accesso e la compilazione di moduli, motivo per cui non possono essere disattivati.
|
||||||
cookieBanner.preferencesModal.analytics.title=Analytics
|
cookieBanner.preferencesModal.analytics.title=Analytics
|
||||||
cookieBanner.preferencesModal.analytics.description=These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with.
|
cookieBanner.preferencesModal.analytics.description=Questi cookie ci aiutano a capire come vengono utilizzati i nostri strumenti, così possiamo concentrarci sullo sviluppo delle funzionalità che la nostra community apprezza di più. Non preoccuparti: Stirling PDF non può e non traccerà mai il contenuto dei documenti con cui lavori.
|
||||||
|
|
||||||
|
@ -89,6 +89,22 @@
|
|||||||
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); /* Auto-fill columns, with a minimum width of 180px */
|
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); /* Auto-fill columns, with a minimum width of 180px */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(4))) .lang-dropdown-item-wrapper:last-child {
|
||||||
|
border: 0px !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:has(> *:nth-child(1)) {
|
||||||
|
--count: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:has(> *:nth-child(2)) {
|
||||||
|
--count: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:has(> *:nth-child(3)) {
|
||||||
|
--count: 3;
|
||||||
|
}
|
||||||
|
|
||||||
html[dir="ltr"] .lang-dropdown-item-wrapper {
|
html[dir="ltr"] .lang-dropdown-item-wrapper {
|
||||||
border-right: 2px solid var(--md-nav-color-on-seperator);
|
border-right: 2px solid var(--md-nav-color-on-seperator);
|
||||||
}
|
}
|
||||||
@ -99,8 +115,8 @@ html[dir="rtl"] .lang-dropdown-item-wrapper {
|
|||||||
|
|
||||||
/* Responsive adjustments */
|
/* Responsive adjustments */
|
||||||
@media (min-width: 1200px){
|
@media (min-width: 1200px){
|
||||||
.lang_dropdown-mw{
|
.lang-dropdown-item-wrapper .dropdown-item {
|
||||||
min-width: 800px
|
min-width: 200px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,7 +124,9 @@ html[dir="rtl"] .lang-dropdown-item-wrapper {
|
|||||||
.scalable-languages-container {
|
.scalable-languages-container {
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
}
|
}
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(2))){
|
||||||
|
grid-template-columns: repeat(var(--count), 1fr) !important;
|
||||||
|
}
|
||||||
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(2n) {
|
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(2n) {
|
||||||
border: 0px
|
border: 0px
|
||||||
}
|
}
|
||||||
@ -118,15 +136,23 @@ html[dir="rtl"] .lang-dropdown-item-wrapper {
|
|||||||
.scalable-languages-container {
|
.scalable-languages-container {
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
}
|
}
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(3))){
|
||||||
|
grid-template-columns: repeat(var(--count), 1fr) !important;
|
||||||
|
}
|
||||||
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(3n) {
|
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(3n) {
|
||||||
border: 0px
|
border: 0px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 901px) {
|
@media (min-width: 901px) {
|
||||||
.scalable-languages-container {
|
.scalable-languages-container {
|
||||||
grid-template-columns: repeat(4, 1fr);
|
grid-template-columns: repeat(4, 1fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scalable-languages-container:not(:has(> :nth-child(4))){
|
||||||
|
grid-template-columns: repeat(var(--count), 1fr) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(4n) {
|
.scalable-languages-container .lang-dropdown-item-wrapper:nth-child(4n) {
|
||||||
border: 0px
|
border: 0px
|
||||||
}
|
}
|
||||||
@ -215,13 +241,13 @@ span.icon-text::after {
|
|||||||
|
|
||||||
.dropdown-menu.scrollable-y {
|
.dropdown-menu.scrollable-y {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
height: 360px;
|
max-height: 360px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dropdown Scrollbar*/
|
/* Dropdown Scrollbar*/
|
||||||
.scrollable-y {
|
.scrollable-y {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
height: 190px;
|
max-height: 190px;
|
||||||
overscroll-behavior: contain;
|
overscroll-behavior: contain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import './cookieconsent.umd.js';
|
import './cookieconsent.umd.js';
|
||||||
import 'https://cdn.jsdelivr.net/gh/orestbida/cookieconsent@3.1.0/dist/cookieconsent.umd.js';
|
|
||||||
|
|
||||||
// Enable dark mode
|
// Enable dark mode
|
||||||
document.documentElement.classList.add('cc--darkmode');
|
document.documentElement.classList.add('cc--darkmode');
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<th:block th:fragment="languageEntry(code, name)">
|
<th:block th:fragment="languageEntry(code, name)">
|
||||||
<div class="lang-dropdown-item-wrapper">
|
<div th:if="${code} == 'en_GB' or ${#lists.isEmpty(@languages) or #lists.contains(@languages, code)}" class="lang-dropdown-item-wrapper">
|
||||||
<a th:if="${code} == 'en_GB' or ${#lists.isEmpty(@languages) or #lists.contains(@languages, code)}"
|
<a
|
||||||
class="dropdown-item lang_dropdown-item" href="" th:data-bs-language-code="@{${code}}" th:text="${name}">
|
class="dropdown-item lang_dropdown-item" href="" th:data-bs-language-code="@{${code}}" th:text="${name}">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user