From 9d3c8373ef6a0626f2a07ba491f8de6d48ad8d2c Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Wed, 8 May 2024 23:20:59 +0200 Subject: [PATCH 001/169] fix: typo --- src/components/ResizeImageModal.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ResizeImageModal.vue b/src/components/ResizeImageModal.vue index e77c608..68f8c83 100644 --- a/src/components/ResizeImageModal.vue +++ b/src/components/ResizeImageModal.vue @@ -39,7 +39,7 @@ - Recadrez l'image pour que votre carte tiennent dans le rectangle. + Recadrez l'image pour que votre carte tienne dans le rectangle. From 25a87be3dc2868e3291468d6a77cdee4b0f2711f Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Thu, 9 May 2024 11:46:31 +0200 Subject: [PATCH 002/169] add: upgrade storage function --- src/functions/cache.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/functions/cache.ts b/src/functions/cache.ts index b66cee2..68d9fce 100644 --- a/src/functions/cache.ts +++ b/src/functions/cache.ts @@ -48,3 +48,10 @@ export async function getCacheStats(): Promise<{ length: number, size: number }> } }) } + +/* +Following function upgrade storage (remove old local storage values, upgrade indexed db ect...) + */ +export function upgradeStorage() { + localStorage.deleteItem("advantagesCache") +} From 8befd4474b0a38dce257fb1839f3b24c283a2847 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 12:19:18 +0200 Subject: [PATCH 003/169] fix: cgu --- CGU.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CGU.md b/CGU.md index ddd1e2d..8b43fbe 100644 --- a/CGU.md +++ b/CGU.md @@ -7,10 +7,10 @@ Ce texte vient en complétion des [Mentions Légales](https://github.com/camarm- - Vos identifiants Avantages Jeunes - Sont utilisés pour se connecter et récupérer les informations de votre compte - - _Sont sauvegardés et utilisés uniquement par votre smartphone_ + - _Sont sauvegardés et utilisés uniquement par votre smartphone, dans un stockage sécurisé (géré par votre téléphone)_ - Votre géolocalisation - Est utilisé pour récupérer les avantages autour de vous - - _N'est pas stockée, ni sur nos serveurs, ni sur votre smartphone_ + - _N'est pas stockée, ni sur nos serveurs, ni sur votre smartphone. Elle est uniquement envoyée sur nos serveurs pour récupérer les avantages alentours, via le protocole sécurisé HTTPS, mais n'y pas stockée._ ## Récupération des données From db890cd5e33d7f3120c99108d14d0dc948abcd5d Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 12:22:43 +0200 Subject: [PATCH 004/169] fix: Ajout d'un disclaimer sur la version papier --- src/components/MyCard.vue | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/components/MyCard.vue b/src/components/MyCard.vue index b327640..bf6bffa 100644 --- a/src/components/MyCard.vue +++ b/src/components/MyCard.vue @@ -64,7 +64,20 @@

{{ user.carte.date_vente }}

+ + + +

Version

+

{{ user.carte.livret ? 'Papier': 'Numérique' }}

+
+
+
Actions @@ -113,7 +126,8 @@ import { BadgeCheck, BadgeX, Focus, - Trash2 + Trash2, + Compass } from "lucide-vue-next" import {scanOutline} from "ionicons/icons" import PulseItem from "@/components/PulseItem.vue" @@ -232,4 +246,8 @@ export default { width: 10px !important; height: 10px !important; } + +.alert-wrapper { + background: var(--ion-background-color) !important; +} From e6b803c5ed9226982e3e28c47bc0dc605981e979 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:10:52 +0200 Subject: [PATCH 005/169] fix: upgrade cache function --- src/functions/cache.ts | 2 +- src/views/ResumePage.vue | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/functions/cache.ts b/src/functions/cache.ts index 68d9fce..4e6f7ab 100644 --- a/src/functions/cache.ts +++ b/src/functions/cache.ts @@ -53,5 +53,5 @@ export async function getCacheStats(): Promise<{ length: number, size: number }> Following function upgrade storage (remove old local storage values, upgrade indexed db ect...) */ export function upgradeStorage() { - localStorage.deleteItem("advantagesCache") + localStorage.removeItem("advantagesCache") } diff --git a/src/views/ResumePage.vue b/src/views/ResumePage.vue index 96a6044..45138b4 100644 --- a/src/views/ResumePage.vue +++ b/src/views/ResumePage.vue @@ -228,6 +228,7 @@ import {Badge} from "@/types/badges" import {Avantage, Transaction, TransactionAvantage} from "@/types/avantages" import {RefresherCustomEvent} from "@ionic/vue" import {getCredentials} from "@/functions/credentials" +import {upgradeStorage} from "@/functions/cache"; const refs = { modalLogin: ref(null), @@ -287,6 +288,7 @@ export default { } }, mounted() { + upgradeStorage() localStorage.setItem("userApiUrl", "https://api-ajc.camarm.fr") window.addEventListener("reload", () => { this.refreshAccount() From 2e5a8c2465c59e968d0ad247b71400c639e58af2 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:11:11 +0200 Subject: [PATCH 006/169] fix: error toast --- src/functions/native/camera.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/functions/native/camera.ts b/src/functions/native/camera.ts index 0dd9df1..ad05c03 100644 --- a/src/functions/native/camera.ts +++ b/src/functions/native/camera.ts @@ -1,6 +1,7 @@ import { Camera, CameraResultType, CameraSource } from "@capacitor/camera" import {modalController} from "@ionic/vue" import ResizeImageModal from "@/components/ResizeImageModal.vue" +import {displayToast} from "@/functions/toasts"; async function openImageResizingModal(image: string, event: string) { @@ -32,7 +33,7 @@ async function getPhoto() { const image = await Camera.getPhoto({ resultType: CameraResultType.Base64, source: CameraSource.Prompt, - quality: 100, + quality: 20, allowEditing: true }) return image.base64String as string @@ -46,8 +47,12 @@ async function saveCardImage(savingId: string, text: string, callback: CallableF // @ts-ignore window.addEventListener(savingId, (event: CustomEvent) => { const resizedBase64Image = event.detail.image - localStorage.setItem(savingId, resizedBase64Image) - callback() + try { + localStorage.setItem(savingId, resizedBase64Image) + callback() + } catch (e) { + displayToast('Error', `${e}`, 10000, 'danger') + } }) } From 65b2f814d332ce709efa5689a966ad9018e22541 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:16:56 +0200 Subject: [PATCH 007/169] fix: reset images --- src/functions/cache.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/functions/cache.ts b/src/functions/cache.ts index 4e6f7ab..68f4e52 100644 --- a/src/functions/cache.ts +++ b/src/functions/cache.ts @@ -54,4 +54,6 @@ Following function upgrade storage (remove old local storage values, upgrade ind */ export function upgradeStorage() { localStorage.removeItem("advantagesCache") + localStorage.removeItem("frontCardImage") + localStorage.removeItem("backCardImage") } From 79a9346305481e4f3c2758df85a9edffdbe821da Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:17:36 +0200 Subject: [PATCH 008/169] add: images storage (#53) --- src/functions/native/camera.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/functions/native/camera.ts b/src/functions/native/camera.ts index ad05c03..c8869b9 100644 --- a/src/functions/native/camera.ts +++ b/src/functions/native/camera.ts @@ -2,6 +2,7 @@ import { Camera, CameraResultType, CameraSource } from "@capacitor/camera" import {modalController} from "@ionic/vue" import ResizeImageModal from "@/components/ResizeImageModal.vue" import {displayToast} from "@/functions/toasts"; +import { Preferences } from '@capacitor/preferences'; async function openImageResizingModal(image: string, event: string) { @@ -48,15 +49,28 @@ async function saveCardImage(savingId: string, text: string, callback: CallableF window.addEventListener(savingId, (event: CustomEvent) => { const resizedBase64Image = event.detail.image try { - localStorage.setItem(savingId, resizedBase64Image) - callback() + setImage(savingId, resizedBase64Image).then(() => { + callback() + }) } catch (e) { displayToast('Error', `${e}`, 10000, 'danger') } }) } +async function getImage(imageId: string) { + return (await Preferences.get({ key: imageId })).value +} + +async function setImage(imageId: string, base64Image: string) { + await Preferences.set({ + key: imageId, + value: base64Image, + }); +} + export { saveCardImage, - getPhoto + getPhoto, + getImage } From 5f2e4ccaff1bbf18d5deaed836333461cbdf377d Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:21:13 +0200 Subject: [PATCH 009/169] add: remove image from preference function --- src/functions/native/camera.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/functions/native/camera.ts b/src/functions/native/camera.ts index c8869b9..40d3107 100644 --- a/src/functions/native/camera.ts +++ b/src/functions/native/camera.ts @@ -69,8 +69,13 @@ async function setImage(imageId: string, base64Image: string) { }); } +async function removeImage(imageId: string) { + await Preferences.remove({ key: imageId }) +} + export { saveCardImage, getPhoto, - getImage + getImage, + removeImage } From a155cbfdf93be23356b7dc52ebb627c2562a4974 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:31:03 +0200 Subject: [PATCH 010/169] fix: using preferences to store images; fix #53 --- src/components/MyCard.vue | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/components/MyCard.vue b/src/components/MyCard.vue index bf6bffa..8fb5bab 100644 --- a/src/components/MyCard.vue +++ b/src/components/MyCard.vue @@ -144,6 +144,7 @@ import "@ionic/vue/css/ionic-swiper.css" import FullscreenCardModal from "@/components/FullscreenCardModal.vue" import {ref} from "vue" import ScanCardModal from "@/components/ScanCardModal.vue" +import {getImage, removeImage} from "@/functions/native/camera"; const refs = { modalFullscreen: ref(null), @@ -160,8 +161,8 @@ window.addEventListener("closeModals", () => { export default { data () { return { - frontCardImage: localStorage.getItem("frontCardImage") || "/carte.png", - backCardImage: localStorage.getItem("backCardImage") || "/carte-dos.png", + frontCardImage: "/carte.png", + backCardImage: "/carte-dos.png", user: { image_url: "", carte: { @@ -178,8 +179,13 @@ export default { }, mounted() { this.refreshAccount() + this.loadImages() }, methods: { + async loadImages() { + this.frontCardImage = (await getImage('frontCardImage')) || "/carte.png" + this.backCardImage = (await getImage('backCardImage')) || "/carte-dos.png" + }, open(url: string) { window.open(url) }, @@ -199,9 +205,9 @@ export default { async openCardFullscreen() { await createModal(FullscreenCardModal, "modalFullscreen", refs, { front: this.frontCardImage, back: this.backCardImage }, true, [0, 0.9], true) }, - removeCardScans() { - localStorage.removeItem("frontCardImage") - localStorage.removeItem("backCardImage") + async removeCardScans() { + await removeImage("frontCardImage") + await removeImage("backCardImage") this.frontCardImage = "/carte.png" this.backCardImage = "/carte-dos.png" } From dec51e82c930caf8267816397e8d919e27f36195 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:32:58 +0200 Subject: [PATCH 011/169] fix: version 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 701ee3d..9967c8a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "avantages-jeunes-connect", "private": true, - "version": "1.0.0-rc.2", + "version": "1.0.0", "type": "module", "license": "CECILL-2.1", "scripts": { From 71dc3521d47715f714996a44749fe3dcd906c4be Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 18:33:31 +0200 Subject: [PATCH 012/169] fix: update version --- android/app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index ce249d7..8bda4a9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "com.camarm.ajc" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 3 - versionName "1.0.0-rc.2" + versionCode 6 + versionName "1.0.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. From f0d679b5ea1e08008e1f145d6ff2caf0adc4504c Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sat, 11 May 2024 19:06:11 +0200 Subject: [PATCH 013/169] fix: changed icon --- .github/icon.png | Bin 0 -> 10574 bytes README.md | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 .github/icon.png diff --git a/.github/icon.png b/.github/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c009ac82523e9bf7b90d02b6120d10b321e50d31 GIT binary patch literal 10574 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
-Icon +Icon # Avantages Jeunes Connect Une application mobile pour la carte avantages jeunes en Bourgogne Franche-Comté. +[Website](https://avantagesjeunesconnect.camarm.fr) [Download](/releases) +
Créée pour rechercher plus facilement les avantages dont vous pouvez bénéficier, Avantages Jeunes Connect est une application non officielle ! From dce11c86eb7a54e03dd2debd1c7f5567227d1496 Mon Sep 17 00:00:00 2001 From: camarm-dev Date: Sun, 12 May 2024 09:21:05 +0200 Subject: [PATCH 014/169] =?UTF-8?q?fix:=20lien=20de=20premi=C3=A8re=20conn?= =?UTF-8?q?exion:=20fix=20#54?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ResumePage.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/views/ResumePage.vue b/src/views/ResumePage.vue index 45138b4..3165a04 100644 --- a/src/views/ResumePage.vue +++ b/src/views/ResumePage.vue @@ -151,6 +151,9 @@ Ajouter votre carte, accédez à vos avantages utilisés et recherchez plus facilement ceux dont vous pouvez bénéficiez !

+ + Première connexion +