Merge branch 'feature/IO-3066-1-scaffolding' of bitbucket.org:snaptsoft/bodyshop-desktop into feature/IO-3066-1-scaffolding

This commit is contained in:
Patrick Fic
2025-04-11 09:26:16 -07:00
9 changed files with 52 additions and 22 deletions

View File

@@ -2,4 +2,6 @@ VITE_FIREBASE_CONFIG={"apiKey":"AIzaSyDSezy-jGJreo7ulgpLdlpOwAOrgcaEkhU","authDo
VITE_GRAPHQL_ENDPOINT=https://db.imex.online/v1/graphql VITE_GRAPHQL_ENDPOINT=https://db.imex.online/v1/graphql
VITE_FIREBASE_CONFIG_TEST={ "apiKey":"AIzaSyBw7_GTy7GtQyfkIRPVrWHEGKfcqeyXw0c", "authDomain":"imex-test.firebaseapp.com", "projectId":"imex-test", "storageBucket":"imex-test.appspot.com", "messagingSenderId":"991923618608", "appId":"1:991923618608:web:633437569cdad78299bef5", "measurementId":"G-TW0XLZEH18"} VITE_FIREBASE_CONFIG_TEST={ "apiKey":"AIzaSyBw7_GTy7GtQyfkIRPVrWHEGKfcqeyXw0c", "authDomain":"imex-test.firebaseapp.com", "projectId":"imex-test", "storageBucket":"imex-test.appspot.com", "messagingSenderId":"991923618608", "appId":"1:991923618608:web:633437569cdad78299bef5", "measurementId":"G-TW0XLZEH18"}
VITE_GRAPHQL_ENDPOINT_TEST=https://db.test.bodyshop.app/v1/graphql VITE_GRAPHQL_ENDPOINT_TEST=https://db.test.bodyshop.app/v1/graphql
VITE_COMPANY=IMEX VITE_COMPANY=IMEX
VITE_FE_URL=https://imex.online
VITE_FE_URL_TEST=https://test.imex.online

View File

@@ -2,4 +2,6 @@ VITE_FIREBASE_CONFIG={"apiKey":"AIzaSyDPLT8GiDHDR1R4nI66Qi0BY1aYviDPioc","authDo
VITE_GRAPHQL_ENDPOINT=https://db.dev.imex.online/v1/graphql VITE_GRAPHQL_ENDPOINT=https://db.dev.imex.online/v1/graphql
VITE_FIREBASE_CONFIG_TEST={ "apiKey":"AIzaSyBw7_GTy7GtQyfkIRPVrWHEGKfcqeyXw0c", "authDomain":"imex-test.firebaseapp.com", "projectId":"imex-test", "storageBucket":"imex-test.appspot.com", "messagingSenderId":"991923618608", "appId":"1:991923618608:web:633437569cdad78299bef5", "measurementId":"G-TW0XLZEH18"} VITE_FIREBASE_CONFIG_TEST={ "apiKey":"AIzaSyBw7_GTy7GtQyfkIRPVrWHEGKfcqeyXw0c", "authDomain":"imex-test.firebaseapp.com", "projectId":"imex-test", "storageBucket":"imex-test.appspot.com", "messagingSenderId":"991923618608", "appId":"1:991923618608:web:633437569cdad78299bef5", "measurementId":"G-TW0XLZEH18"}
VITE_GRAPHQL_ENDPOINT_TEST=https://db.test.bodyshop.app/v1/graphql VITE_GRAPHQL_ENDPOINT_TEST=https://db.test.bodyshop.app/v1/graphql
VITE_COMPANY=IMEX VITE_COMPANY=IMEX
VITE_FE_URL=https://imex.online
VITE_FE_URL_TEST=https://test.imex.online

View File

@@ -2,4 +2,6 @@ VITE_FIREBASE_CONFIG={ "apiKey": "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE", "a
VITE_GRAPHQL_ENDPOINT=https://db.romeonline.io/v1/graphql VITE_GRAPHQL_ENDPOINT=https://db.romeonline.io/v1/graphql
VITE_FIREBASE_CONFIG_TEST={ "apiKey": "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE", "authDomain": "rome-prod-1.firebaseapp.com", "projectId": "rome-prod-1", "storageBucket": "rome-prod-1.appspot.com", "messagingSenderId": "147786367145", "appId": "1:147786367145:web:9d4cba68071c3f29a8a9b8", "measurementId": "G-G8Z9DRHTZS"} VITE_FIREBASE_CONFIG_TEST={ "apiKey": "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE", "authDomain": "rome-prod-1.firebaseapp.com", "projectId": "rome-prod-1", "storageBucket": "rome-prod-1.appspot.com", "messagingSenderId": "147786367145", "appId": "1:147786367145:web:9d4cba68071c3f29a8a9b8", "measurementId": "G-G8Z9DRHTZS"}
VITE_GRAPHQL_ENDPOINT_TEST=https://db.test.romeonline.io/v1/graphql VITE_GRAPHQL_ENDPOINT_TEST=https://db.test.romeonline.io/v1/graphql
VITE_COMPANY=ROME VITE_COMPANY=ROME
VITE_FE_URL=https://romeonline.io
VITE_FE_URL_TEST=https://test.romeonline.io

View File

@@ -21,7 +21,6 @@ win:
endpoint: https://eus.codesigning.azure.net endpoint: https://eus.codesigning.azure.net
certificateProfileName: ImEXRPS certificateProfileName: ImEXRPS
codeSigningAccountName: ImEX codeSigningAccountName: ImEX
publisherName: ImEX Systems Inc.
nsis: nsis:
artifactName: ${name}-${version}-setup.${ext} artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName} shortcutName: ${productName}

View File

@@ -21,7 +21,6 @@ win:
endpoint: https://eus.codesigning.azure.net endpoint: https://eus.codesigning.azure.net
certificateProfileName: ImEXRPS certificateProfileName: ImEXRPS
codeSigningAccountName: ImEX codeSigningAccountName: ImEX
publisherName: ImEX Systems Inc.
nsis: nsis:
artifactName: ${name}-${version}-setup.${ext} artifactName: ${name}-${version}-setup.${ext}
shortcutName: ${productName} shortcutName: ${productName}

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "bodyshop-desktop", "name": "bodyshop-desktop",
"version": "0.0.1-alpha.0", "version": "0.0.1-alpha.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "bodyshop-desktop", "name": "bodyshop-desktop",
"version": "0.0.1-alpha.0", "version": "0.0.1-alpha.2",
"hasInstallScript": true, "hasInstallScript": true,
"dependencies": { "dependencies": {
"@apollo/client": "^3.13.6", "@apollo/client": "^3.13.6",

View File

@@ -1,6 +1,6 @@
import { platform } from "@electron-toolkit/utils"; import { platform } from "@electron-toolkit/utils";
import { UUID } from "crypto"; import { UUID } from "crypto";
import { Notification } from "electron"; import { Notification, shell } from "electron";
import log from "electron-log/main"; import log from "electron-log/main";
import fs from "fs"; import fs from "fs";
import _ from "lodash"; import _ from "lodash";
@@ -173,21 +173,32 @@ async function ImportJob(filepath: string): Promise<void> {
}, },
); );
setAppProgressbar(-1); setAppProgressbar(-1);
new Notification({ const uploadNotification = new Notification({
title: "Job Imported", title: "Job Imported",
body: `Job ${newAvailableJob.cieca_id} imported successfully`, //subtitle: `${newAvailableJob.ownr_name} - ${newAvailableJob.vehicle_info}`,
body: `${newAvailableJob.ownr_name} - ${newAvailableJob.vehicle_info}. Click to view.`,
actions: [{ text: "View Job", type: "button" }], actions: [{ text: "View Job", type: "button" }],
subtitle: newAvailableJob.ownr_name, });
}).show(); uploadNotification.on("click", () => {
shell.openExternal(
`${
store.get("app.isTest")
? import.meta.env.VITE_FE_URL_TEST
: import.meta.env.VITE_FE_URL
}/manage/available`,
);
});
uploadNotification.show();
log.debug("Job inserted", insertRecordResult); log.debug("Job inserted", insertRecordResult);
} catch (error) { } catch (error) {
log.error("Error encountered while decoding job. ", errorTypeCheck(error)); log.error("Error encountered while decoding job. ", errorTypeCheck(error));
new Notification({ const uploadNotificationFailure = new Notification({
title: "Job Upload Failure", title: "Job Upload Failure",
body: errorTypeCheck(error).message, //TODO: Remove after debug. body: errorTypeCheck(error).message, //TODO: Remove after debug.
actions: [{ text: "View Job", type: "button" }], });
}).show();
uploadNotificationFailure.show();
} }
} }

View File

@@ -325,7 +325,22 @@ app.whenReady().then(async () => {
optimizer.watchWindowShortcuts(window); optimizer.watchWindowShortcuts(window);
}); });
const isDefaultProtocolClient = app.setAsDefaultProtocolClient(protocol); let isDefaultProtocolClient;
// remove so we can register each time as we run the app.
app.removeAsDefaultProtocolClient(protocol);
// If we are running a non-packaged version of the app && on windows
if (process.env.NODE_ENV === "development" && process.platform === "win32") {
// Set the path of electron.exe and your app.
// These two additional parameters are only available on windows.
isDefaultProtocolClient = app.setAsDefaultProtocolClient(
protocol,
process.execPath,
[path.resolve(process.argv[1])],
);
} else {
isDefaultProtocolClient = app.setAsDefaultProtocolClient(protocol);
}
if (isDefaultProtocolClient) { if (isDefaultProtocolClient) {
log.info("Protocol handler registered successfully."); log.info("Protocol handler registered successfully.");
} else { } else {
@@ -486,6 +501,6 @@ function openMainWindow(): void {
function openInExplorer(url: string): void { function openInExplorer(url: string): void {
const folderPath: string = decodeURIComponent(url.split(`${protocol}://`)[1]); const folderPath: string = decodeURIComponent(url.split(`${protocol}://`)[1]);
log.info("Opening folder in explorer", path.dirname(folderPath)); log.info("Opening folder in explorer", folderPath);
shell.openPath(path.dirname(folderPath)); shell.openPath(folderPath);
} }

View File

@@ -11,7 +11,7 @@ import {
QUERY_ACTIVE_BODYSHOP_TYPED, QUERY_ACTIVE_BODYSHOP_TYPED,
QUERY_MASTERDATA_TYPED, QUERY_MASTERDATA_TYPED,
} from "../graphql/queries"; } from "../graphql/queries";
import Store from "../store/store"; import { default as Store, default as store } from "../store/store";
import { checkForAppUpdatesContinuously } from "../util/checkForAppUpdates"; import { checkForAppUpdatesContinuously } from "../util/checkForAppUpdates";
import { sendIpcToRenderer } from "../util/toRenderer"; import { sendIpcToRenderer } from "../util/toRenderer";
@@ -66,9 +66,9 @@ const ipcMainHandleAuthStateChanged = async (
const ipMainHandleResetPassword = async (): Promise<void> => { const ipMainHandleResetPassword = async (): Promise<void> => {
shell.openExternal( shell.openExternal(
import.meta.env.VITE_COMPANY === "IMEX" store.get("app.isTest")
? "https://imex.online/resetpassword" ? `${import.meta.env.VITE_FE_URL_TEST}/resetpassword`
: "https://romeonline.io/resetpassword", : `${import.meta.env.VITE_FE_URL}/resetpassword`,
); );
}; };