Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c48f043f7c | ||
|
|
fbc214d56c | ||
|
|
486ce47c39 | ||
|
|
b9ac324d21 |
@@ -12,9 +12,12 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CN_APPLICATION: "trweb/court-pilot"
|
||||
CN_APPLICATION: 'trweb/court-pilot'
|
||||
|
||||
jobs:
|
||||
# ---------------------------------------------------------
|
||||
# Create CrabNebula draft release
|
||||
# ---------------------------------------------------------
|
||||
draft:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
@@ -27,18 +30,13 @@ jobs:
|
||||
command: release draft ${{ env.CN_APPLICATION }} --framework tauri
|
||||
api-key: ${{ secrets.CN_API_KEY }}
|
||||
|
||||
build:
|
||||
# ---------------------------------------------------------
|
||||
# Windows Tauri build
|
||||
# ---------------------------------------------------------
|
||||
windows:
|
||||
needs: draft
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-22.04
|
||||
- windows-latest
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -56,16 +54,6 @@ jobs:
|
||||
toolchain: stable
|
||||
cache: true
|
||||
|
||||
- name: Install Linux dependencies
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
webkit2gtk-4.1 \
|
||||
libappindicator3-dev \
|
||||
librsvg2-dev \
|
||||
patchelf
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
@@ -85,8 +73,97 @@ jobs:
|
||||
api-key: ${{ secrets.CN_API_KEY }}
|
||||
path: ./src-tauri
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Linux Tauri build + Snap
|
||||
# ---------------------------------------------------------
|
||||
snap:
|
||||
needs: draft
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: npm
|
||||
|
||||
- name: Setup Rust
|
||||
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
cache: true
|
||||
|
||||
- name: Install Linux dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
libssl-dev \
|
||||
libxdo-dev \
|
||||
libayatana-appindicator3-dev \
|
||||
librsvg2-dev \
|
||||
libwebkit2gtk-4.1-dev \
|
||||
dpkg
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Install Ionic CLI
|
||||
run: npm install -g @ionic/cli
|
||||
|
||||
- name: Build Tauri Debian package
|
||||
env:
|
||||
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
||||
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
||||
run: npm run tauri build -- --bundles deb
|
||||
|
||||
- name: Extract Debian package
|
||||
run: |
|
||||
rm -rf snap-root
|
||||
mkdir -p snap-root
|
||||
|
||||
dpkg -x src-tauri/target/release/bundle/deb/*.deb snap-root/
|
||||
|
||||
- name: Show extracted Snap filesystem
|
||||
run: |
|
||||
echo "Snap root:"
|
||||
find snap-root -maxdepth 5 -type f | sort
|
||||
|
||||
- name: Build Snap
|
||||
uses: snapcore/action-build@v1
|
||||
id: snapcraft
|
||||
with:
|
||||
snapcraft-channel: stable
|
||||
|
||||
- name: Show generated Snap
|
||||
run: |
|
||||
echo "Snap created:"
|
||||
echo "${{ steps.snapcraft.outputs.snap }}"
|
||||
|
||||
- name: Upload Snap as GitHub artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: court-pilot-snap
|
||||
path: ${{ steps.snapcraft.outputs.snap }}
|
||||
|
||||
- name: Publish Snap to Snap Store
|
||||
uses: snapcore/action-publish@v1
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
|
||||
with:
|
||||
snap: ${{ steps.snapcraft.outputs.snap }}
|
||||
release: stable
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Publish CrabNebula release
|
||||
# ---------------------------------------------------------
|
||||
publish:
|
||||
needs: build
|
||||
needs:
|
||||
- windows
|
||||
- snap
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Court Pilot
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
Generated
+12
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "court-pilot",
|
||||
"version": "0.0.1",
|
||||
"version": "1.1.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "court-pilot",
|
||||
"version": "0.0.1",
|
||||
"version": "1.1.2",
|
||||
"dependencies": {
|
||||
"@angular/animations": "^20.3.28",
|
||||
"@angular/cdk": "^20.2.14",
|
||||
@@ -23,6 +23,7 @@
|
||||
"@capacitor/keyboard": "8.0.3",
|
||||
"@capacitor/status-bar": "8.0.2",
|
||||
"@ionic/angular": "^8.0.0",
|
||||
"@tauri-apps/plugin-os": "^2.3.2",
|
||||
"@tauri-apps/plugin-process": "^2.3.1",
|
||||
"@tauri-apps/plugin-updater": "^2.10.1",
|
||||
"dexie": "^4.4.2",
|
||||
@@ -6833,6 +6834,15 @@
|
||||
"node": ">= 10"
|
||||
}
|
||||
},
|
||||
"node_modules/@tauri-apps/plugin-os": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-os/-/plugin-os-2.3.2.tgz",
|
||||
"integrity": "sha512-n+nXWeuSeF9wcEsSPmRnBEGrRgOy6jjkSU+UVCOV8YUGKb2erhDOxis7IqRXiRVHhY8XMKks00BJ0OAdkpf6+A==",
|
||||
"license": "MIT OR Apache-2.0",
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^2.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@tauri-apps/plugin-process": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-process/-/plugin-process-2.3.1.tgz",
|
||||
|
||||
+2
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "court-pilot",
|
||||
"version": "1.1.2",
|
||||
"version": "1.1.3",
|
||||
"author": "Ionic Framework",
|
||||
"homepage": "https://ionicframework.com/",
|
||||
"scripts": {
|
||||
@@ -29,6 +29,7 @@
|
||||
"@capacitor/keyboard": "8.0.3",
|
||||
"@capacitor/status-bar": "8.0.2",
|
||||
"@ionic/angular": "^8.0.0",
|
||||
"@tauri-apps/plugin-os": "^2.3.2",
|
||||
"@tauri-apps/plugin-process": "^2.3.1",
|
||||
"@tauri-apps/plugin-updater": "^2.10.1",
|
||||
"dexie": "^4.4.2",
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Categories=
|
||||
Comment=Court Pilot
|
||||
Exec=court-pilot
|
||||
StartupWMClass=court-pilot
|
||||
Icon=${SNAP}/meta/gui/court-pilot.png
|
||||
Name=court-pilot
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
@@ -0,0 +1,48 @@
|
||||
name: court-pilot
|
||||
title: Court Pilot
|
||||
contact:
|
||||
- toth.richard@trweb.hu
|
||||
issues:
|
||||
- https://github.com/tricsusz/court-pilot/issues
|
||||
source-code:
|
||||
- https://github.com/tricsusz/court-pilot
|
||||
website:
|
||||
- https://github.com/tricsusz/court-pilot
|
||||
license: MIT
|
||||
base: core24
|
||||
icon: snap/gui/court-pilot.png
|
||||
|
||||
version: '1.1.4'
|
||||
|
||||
summary: Badminton umpire rotation application
|
||||
|
||||
description: |
|
||||
Court Pilot is a desktop application for managing badminton
|
||||
umpire rotations and court assignments.
|
||||
|
||||
grade: stable
|
||||
confinement: strict
|
||||
|
||||
apps:
|
||||
court-pilot:
|
||||
command: usr/bin/court-pilot
|
||||
desktop: usr/share/applications/court-pilot.desktop
|
||||
|
||||
extensions:
|
||||
- gnome
|
||||
|
||||
plugs:
|
||||
- network
|
||||
- home
|
||||
|
||||
environment:
|
||||
LD_LIBRARY_PATH: $SNAP_DESKTOP_RUNTIME/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
|
||||
|
||||
parts:
|
||||
court-pilot:
|
||||
plugin: dump
|
||||
source: snap-root
|
||||
|
||||
stage-packages:
|
||||
- libwebkit2gtk-4.1-0
|
||||
- libayatana-appindicator3-1
|
||||
Generated
+80
-14
@@ -75,20 +75,6 @@ version = "1.0.102"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
||||
|
||||
[[package]]
|
||||
name = "app"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tauri",
|
||||
"tauri-build",
|
||||
"tauri-plugin-log",
|
||||
"tauri-plugin-process",
|
||||
"tauri-plugin-updater",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "arbitrary"
|
||||
version = "1.4.2"
|
||||
@@ -514,6 +500,21 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "court-pilot"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"log",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tauri",
|
||||
"tauri-build",
|
||||
"tauri-plugin-log",
|
||||
"tauri-plugin-os",
|
||||
"tauri-plugin-process",
|
||||
"tauri-plugin-updater",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cpufeatures"
|
||||
version = "0.2.17"
|
||||
@@ -1183,6 +1184,16 @@ dependencies = [
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gethostname"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8"
|
||||
dependencies = [
|
||||
"rustix",
|
||||
"windows-link 0.2.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "getrandom"
|
||||
version = "0.2.17"
|
||||
@@ -2055,6 +2066,18 @@ version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
|
||||
|
||||
[[package]]
|
||||
name = "nix"
|
||||
version = "0.31.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d"
|
||||
dependencies = [
|
||||
"bitflags 2.11.1",
|
||||
"cfg-if",
|
||||
"cfg_aliases",
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "num-conv"
|
||||
version = "0.2.1"
|
||||
@@ -2327,6 +2350,22 @@ version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
|
||||
|
||||
[[package]]
|
||||
name = "os_info"
|
||||
version = "3.15.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9cf20a545b305cf1da722b236b5155c9bb35f1d5ceb28c048bd96ca842f41b5b"
|
||||
dependencies = [
|
||||
"android_system_properties",
|
||||
"log",
|
||||
"nix",
|
||||
"objc2",
|
||||
"objc2-foundation",
|
||||
"objc2-ui-kit",
|
||||
"serde",
|
||||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "osakit"
|
||||
version = "0.3.1"
|
||||
@@ -3478,6 +3517,15 @@ dependencies = [
|
||||
"syn 2.0.117",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sys-locale"
|
||||
version = "0.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
|
||||
dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "system-deps"
|
||||
version = "6.2.2"
|
||||
@@ -3716,6 +3764,24 @@ dependencies = [
|
||||
"time",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tauri-plugin-os"
|
||||
version = "2.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8f08346c8deb39e96f86973da0e2d76cbb933d7ac9b750f6dc4daf955a6f997"
|
||||
dependencies = [
|
||||
"gethostname",
|
||||
"log",
|
||||
"os_info",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serialize-to-javascript",
|
||||
"sys-locale",
|
||||
"tauri",
|
||||
"tauri-plugin",
|
||||
"thiserror 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tauri-plugin-process"
|
||||
version = "2.3.1"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[package]
|
||||
name = "app"
|
||||
name = "court-pilot"
|
||||
version = "0.1.0"
|
||||
description = "A Tauri App"
|
||||
authors = ["you"]
|
||||
license = ""
|
||||
repository = ""
|
||||
description = "Court Pilot"
|
||||
authors = ["Richard Toth"]
|
||||
license = "MIT"
|
||||
repository = "https://github.com/tricsusz/court-pilot"
|
||||
edition = "2021"
|
||||
rust-version = "1.77.2"
|
||||
|
||||
@@ -24,6 +24,7 @@ log = "0.4"
|
||||
tauri = { version = "2.11.2", features = [] }
|
||||
tauri-plugin-log = "2"
|
||||
tauri-plugin-process = "2"
|
||||
tauri-plugin-os = "2"
|
||||
|
||||
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
||||
tauri-plugin-updater = "2"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
],
|
||||
"permissions": [
|
||||
"core:default",
|
||||
"process:default"
|
||||
"process:default",
|
||||
"os:default"
|
||||
]
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
"main"
|
||||
],
|
||||
"permissions": [
|
||||
"updater:default"
|
||||
"updater:default",
|
||||
"os:default"
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||
pub fn run() {
|
||||
tauri::Builder::default()
|
||||
.plugin(tauri_plugin_os::init())
|
||||
.plugin(tauri_plugin_process::init())
|
||||
.plugin(tauri_plugin_updater::Builder::new().build())
|
||||
.setup(|app| {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
||||
"productName": "court-pilot",
|
||||
"version": "1.1.2",
|
||||
"mainBinaryName": "Court Pilot",
|
||||
"version": "1.1.4",
|
||||
"identifier": "com.courtpilot.dev",
|
||||
"build": {
|
||||
"frontendDist": "../www",
|
||||
@@ -39,7 +40,9 @@
|
||||
"android": {
|
||||
"debugApplicationIdSuffix": ".debug"
|
||||
},
|
||||
"createUpdaterArtifacts": true
|
||||
"createUpdaterArtifacts": true,
|
||||
"license": "MIT",
|
||||
"licenseFile": "../LICENSE"
|
||||
},
|
||||
"plugins": {
|
||||
"updater": {
|
||||
|
||||
+60
-18
@@ -2,13 +2,17 @@ import { Component, inject } from '@angular/core';
|
||||
import {
|
||||
AlertController,
|
||||
IonApp,
|
||||
IonRouterOutlet
|
||||
IonRouterOutlet,
|
||||
LoadingController
|
||||
} from '@ionic/angular/standalone';
|
||||
import { check } from '@tauri-apps/plugin-updater';
|
||||
import { check, DownloadEvent } from '@tauri-apps/plugin-updater';
|
||||
import { isTauri } from '@tauri-apps/api/core';
|
||||
import { platform } from '@tauri-apps/plugin-os';
|
||||
import { relaunch } from '@tauri-apps/plugin-process';
|
||||
import { TranslationService } from './i18n/translation.service';
|
||||
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
templateUrl: 'app.component.html',
|
||||
@@ -16,6 +20,7 @@ import { TranslationService } from './i18n/translation.service';
|
||||
})
|
||||
export class AppComponent {
|
||||
readonly alertController: AlertController = inject(AlertController);
|
||||
readonly loadingController: LoadingController = inject(LoadingController);
|
||||
readonly translationService: TranslationService = inject(TranslationService);
|
||||
|
||||
constructor() {
|
||||
@@ -27,6 +32,11 @@ export class AppComponent {
|
||||
return;
|
||||
}
|
||||
|
||||
// Snap handles updates on Linux.
|
||||
if (platform() === 'linux') {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const update = await check();
|
||||
|
||||
@@ -40,29 +50,61 @@ export class AppComponent {
|
||||
{
|
||||
text: 'OK',
|
||||
handler: async () => {
|
||||
const loading = await this.loadingController.create({
|
||||
message:
|
||||
this.translationService.translate('updateDownloading'),
|
||||
spinner: 'crescent',
|
||||
backdropDismiss: false
|
||||
});
|
||||
|
||||
await loading.present();
|
||||
|
||||
let downloaded = 0;
|
||||
let total = 0;
|
||||
|
||||
try {
|
||||
// Show loading message
|
||||
alert.message =
|
||||
this.translationService.translate('updateDownloading');
|
||||
await update.downloadAndInstall((event: DownloadEvent) => {
|
||||
switch (event.event) {
|
||||
case 'Started':
|
||||
total = event.data.contentLength ?? 0;
|
||||
downloaded = 0;
|
||||
break;
|
||||
|
||||
// Disable the button while updating
|
||||
const okButton = alert.buttons[0];
|
||||
if (typeof okButton !== 'string') {
|
||||
okButton.htmlAttributes = { disabled: true };
|
||||
}
|
||||
case 'Progress':
|
||||
downloaded += event.data.chunkLength;
|
||||
|
||||
await update.downloadAndInstall();
|
||||
if (total > 0) {
|
||||
const percent = Math.min(
|
||||
100,
|
||||
Math.round((downloaded / total) * 100)
|
||||
);
|
||||
|
||||
loading.message = `${this.translationService.translate('updateDownloading')} ${percent}%`;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'Finished':
|
||||
loading.message =
|
||||
this.translationService.translate('updateInstalling');
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
await loading.dismiss();
|
||||
await relaunch();
|
||||
} catch (error) {
|
||||
console.error('Failed to install update:', error);
|
||||
alert.message =
|
||||
this.translationService.translate('updateFailed');
|
||||
|
||||
const okButton = alert.buttons[0];
|
||||
// Re-enable the button if the update failed
|
||||
if (typeof okButton !== 'string') {
|
||||
okButton.htmlAttributes = { disabled: false };
|
||||
}
|
||||
await loading.dismiss();
|
||||
|
||||
const errorAlert = await this.alertController.create({
|
||||
header: this.translationService.translate('updateFailed'),
|
||||
message: String(error),
|
||||
buttons: ['OK']
|
||||
});
|
||||
|
||||
await errorAlert.present();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,11 +42,13 @@ export const translations = {
|
||||
sendUmpiresMessage: '{umpire} - {serviceJudge}',
|
||||
version: 'Version',
|
||||
updateAvailable: 'Update available',
|
||||
newVersion: 'A new version {version} is available. The application will restart to install the update.',
|
||||
newVersion:
|
||||
'A new version {version} is available. The application will restart to install the update.',
|
||||
english: 'English',
|
||||
hungarian: 'Hungarian',
|
||||
updateDownloading: 'Downloading and installing update...',
|
||||
updateFailed: 'Failed to install the update. Please try again.',
|
||||
updateDownloading: 'Downloading update...',
|
||||
updateInstalling: 'Installing update...',
|
||||
updateFailed: 'Failed to install the update. Please try again.'
|
||||
},
|
||||
|
||||
hu: {
|
||||
@@ -87,11 +89,13 @@ export const translations = {
|
||||
sendUmpiresMessage: '{umpire} - {serviceJudge}',
|
||||
version: 'Verzió',
|
||||
updateAvailable: 'Új verzió elérhető',
|
||||
newVersion: 'Új elérhető verzió: {version}. A frissítések telepítése után az alkalmazás újraindul.',
|
||||
newVersion:
|
||||
'Új elérhető verzió: {version}. A frissítések telepítése után az alkalmazás újraindul.',
|
||||
english: 'Angol',
|
||||
hungarian: 'Magyar',
|
||||
updateDownloading: 'Frissítés letöltése és telepítése...',
|
||||
updateDownloading: 'Frissítés letöltése...',
|
||||
updateFailed: 'Frissítés sikertelen. Kérlek próbáld újra.',
|
||||
updateInstalling: 'Frissítés telepítése...'
|
||||
}
|
||||
} as const;
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<ion-col sizeLg="6" pushLg="3">
|
||||
<ion-item>
|
||||
<ion-label class="ion-text-center"
|
||||
>{{ 'version' | translate }}: 1.1.2</ion-label
|
||||
>{{ 'version' | translate }}: 1.1.4</ion-label
|
||||
>
|
||||
</ion-item>
|
||||
</ion-col>
|
||||
|
||||
Reference in New Issue
Block a user