From bfef9b94983def3fab0c3050bb563e1642fbedc2 Mon Sep 17 00:00:00 2001 From: Hargata Softworks <155338622+hargata@users.noreply.github.com> Date: Sat, 6 Jan 2024 13:02:22 -0700 Subject: [PATCH 01/10] Create docker-image.yml --- .github/workflows/docker-image.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..302d53a --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,18 @@ +name: Docker Image CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker build . --file Dockerfile --tag lubelogger:$(date +%s) From d625a91ed70f17bb5fbc689d9c429199dc182ae9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sat, 6 Jan 2024 21:46:29 -0700 Subject: [PATCH 02/10] auto publish to GHCR --- .github/workflows/docker-image.yml | 7 +++++-- docker-compose.traefik.yml | 2 +- docker-compose.yml | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 302d53a..22f5e7e 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -14,5 +14,8 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Build the Docker image - run: docker build . --file Dockerfile --tag lubelogger:$(date +%s) + - name: Build and push the Docker image + run: | + docker login --username hargata --password {{ secrets.GHCR_PAT }} ghcr.io + docker build . --file Dockerfile --tag ghcr.io/hargata/lubelogger:latest + docker push ghcr.io/hargata/lubelogger:latest \ No newline at end of file diff --git a/docker-compose.traefik.yml b/docker-compose.traefik.yml index 1dc2489..2307174 100644 --- a/docker-compose.traefik.yml +++ b/docker-compose.traefik.yml @@ -3,7 +3,7 @@ version: "3.4" services: app: - image: hargata/lubelog:latest + image: ghcr.io/hargata/lubelogger:latest build: . restart: unless-stopped # volumes used to keep data persistent diff --git a/docker-compose.yml b/docker-compose.yml index aea0f00..1490ad8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: "3.4" services: app: - image: hargata/lubelog:latest + image: ghcr.io/hargata/lubelogger:latest build: . restart: unless-stopped # volumes used to keep data persistent From f2386fc9d859965bad14cfe8205e154724ef1edb Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sat, 6 Jan 2024 21:49:29 -0700 Subject: [PATCH 03/10] weird. --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 22f5e7e..993056e 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@v3 - name: Build and push the Docker image run: | - docker login --username hargata --password {{ secrets.GHCR_PAT }} ghcr.io + docker login -u hargata -p {{ secrets.GHCR_PAT }} ghcr.io docker build . --file Dockerfile --tag ghcr.io/hargata/lubelogger:latest docker push ghcr.io/hargata/lubelogger:latest \ No newline at end of file From b2b129389ac6b432e4468cb8ae31c62d82cbf305 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sat, 6 Jan 2024 22:00:45 -0700 Subject: [PATCH 04/10] test --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 993056e..d4445f0 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@v3 - name: Build and push the Docker image run: | - docker login -u hargata -p {{ secrets.GHCR_PAT }} ghcr.io + docker login -u "hargata" -p "{{ secrets.GHCR_PAT }}" ghcr.io docker build . --file Dockerfile --tag ghcr.io/hargata/lubelogger:latest docker push ghcr.io/hargata/lubelogger:latest \ No newline at end of file From f126a309f05a52dad9c45a9831c2f31ed8ef923e Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sat, 6 Jan 2024 22:01:43 -0700 Subject: [PATCH 05/10] try again --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index d4445f0..8db2461 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@v3 - name: Build and push the Docker image run: | - docker login -u "hargata" -p "{{ secrets.GHCR_PAT }}" ghcr.io + docker login -u "hargata" -p {{ secrets.GHCR_PAT }} ghcr.io docker build . --file Dockerfile --tag ghcr.io/hargata/lubelogger:latest docker push ghcr.io/hargata/lubelogger:latest \ No newline at end of file From a1fe446c2aa29ac13223a8099a40c27beec65ff4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sat, 6 Jan 2024 22:04:09 -0700 Subject: [PATCH 06/10] quotes --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 8db2461..3e72102 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -16,6 +16,6 @@ jobs: - uses: actions/checkout@v3 - name: Build and push the Docker image run: | - docker login -u "hargata" -p {{ secrets.GHCR_PAT }} ghcr.io + docker login -u "hargata" -p "${{ secrets.GHCR_PAT }}" ghcr.io docker build . --file Dockerfile --tag ghcr.io/hargata/lubelogger:latest docker push ghcr.io/hargata/lubelogger:latest \ No newline at end of file From 4e5d8938500bc5202f9248138d2cc66edf530612 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sat, 6 Jan 2024 22:07:07 -0700 Subject: [PATCH 07/10] removed pull request that forces a branch on main. --- .github/workflows/docker-image.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 3e72102..c7769f2 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -3,8 +3,6 @@ name: Docker Image CI on: push: branches: [ "main" ] - pull_request: - branches: [ "main" ] jobs: From 4e92155f5b5072c3395cd65293c0b389c0e855aa Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sun, 7 Jan 2024 07:13:06 -0700 Subject: [PATCH 08/10] Update docker compose file and move env to own file. --- .env | 2 ++ Dockerfile | 2 -- Views/Vehicle/_Gas.cshtml | 6 +++--- docker-compose.traefik.yml | 2 ++ docker-compose.yml | 7 +++++++ 5 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..95605b0 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +LC_ALL=en_US.UTF-8 +LANG=en_US.UTF-8 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 7a218cc..42b2509 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,4 @@ FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /App COPY --from=build-env /App/out . EXPOSE 8080 -ENV LC_ALL=en_US.UTF-8 \ - LANG=en_US.UTF-8 CMD ["./CarCareTracker"] \ No newline at end of file diff --git a/Views/Vehicle/_Gas.cshtml b/Views/Vehicle/_Gas.cshtml index e9bbb1b..7bcd2c9 100644 --- a/Views/Vehicle/_Gas.cshtml +++ b/Views/Vehicle/_Gas.cshtml @@ -27,7 +27,7 @@ @($"Max Fuel Economy: {Model.Max(x => x.MilesPerGallon).ToString("F") ?? "0"}") } @($"Total Fuel Consumed: {Model.Sum(x=>x.Gallons).ToString("F")}") - @($"Total Cost: {Model.Sum(x => x.Cost).ToString("C")}") + @($"Total Cost: {Model.Sum(x => x.Cost).ToString("C3")}") @if (enableCsvImports) { @@ -66,8 +66,8 @@ @gasRecord.Mileage @gasRecord.Gallons.ToString("F") @(gasRecord.MilesPerGallon == 0 ? "---" : gasRecord.MilesPerGallon.ToString("F")) - @gasRecord.Cost.ToString("C") - @gasRecord.CostPerGallon.ToString("C") + @gasRecord.Cost.ToString("C3") + @gasRecord.CostPerGallon.ToString("C3") } diff --git a/docker-compose.traefik.yml b/docker-compose.traefik.yml index 2307174..882ad99 100644 --- a/docker-compose.traefik.yml +++ b/docker-compose.traefik.yml @@ -16,6 +16,8 @@ services: # expose port and/or use serving via traefik ports: - 8080:8080 + env_file: + - .env # traefik configurations, including networks can be commented out if not needed networks: - traefik-ingress diff --git a/docker-compose.yml b/docker-compose.yml index 1490ad8..81df8a7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,10 +16,17 @@ services: # expose port and/or use serving via traefik ports: - 8080:8080 + env_file: + - .env volumes: config: + external: true data: + external: true documents: + external: true images: + external: true log: + external: true From f639c2c38b6b8777664b8f1adb93e46464e723a0 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sun, 7 Jan 2024 07:28:52 -0700 Subject: [PATCH 09/10] accidentally comitted my volume configs, fixed bug related to missing userconfig file. --- Controllers/HomeController.cs | 5 +++++ docker-compose.yml | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Controllers/HomeController.cs b/Controllers/HomeController.cs index cbbe21b..af8615b 100644 --- a/Controllers/HomeController.cs +++ b/Controllers/HomeController.cs @@ -55,6 +55,11 @@ namespace CarCareTracker.Controllers { try { + if (!System.IO.File.Exists("config/userConfig.json")) + { + //if file doesn't exist it might be because it's running on a mounted volume in docker. + System.IO.File.WriteAllText("config/userConfig.json", System.Text.Json.JsonSerializer.Serialize(new UserConfig())); + } var configFileContents = System.IO.File.ReadAllText("config/userConfig.json"); var existingUserConfig = System.Text.Json.JsonSerializer.Deserialize(configFileContents); if (existingUserConfig is not null) diff --git a/docker-compose.yml b/docker-compose.yml index 81df8a7..e9b2e61 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,12 +21,7 @@ services: volumes: config: - external: true data: - external: true documents: - external: true images: - external: true log: - external: true From e64d4f75b556e60826e1492f849dcc58cc73c850 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Sun, 7 Jan 2024 07:52:45 -0700 Subject: [PATCH 10/10] fixed short date pattern for datetimepicker. --- Views/Shared/_Layout.cshtml | 15 +++++++++++++++ wwwroot/js/collisionrecord.js | 6 ++++-- wwwroot/js/gasrecord.js | 6 ++++-- wwwroot/js/servicerecord.js | 6 ++++-- wwwroot/js/taxrecord.js | 6 ++++-- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/Views/Shared/_Layout.cshtml b/Views/Shared/_Layout.cshtml index e7fdc7c..a74dc37 100644 --- a/Views/Shared/_Layout.cshtml +++ b/Views/Shared/_Layout.cshtml @@ -3,6 +3,16 @@ @{ var useDarkMode = bool.Parse(Configuration["UseDarkMode"]); var enableCsvImports = bool.Parse(Configuration["EnableCsvImports"]); + var shortDatePattern = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern; + shortDatePattern = shortDatePattern.ToLower(); + if (!shortDatePattern.Contains("dd")) + { + shortDatePattern = shortDatePattern.Replace("d", "dd"); + } + if (!shortDatePattern.Contains("mm")) + { + shortDatePattern = shortDatePattern.Replace("m", "mm"); + } } @@ -28,6 +38,11 @@ enableCsvImport : "@enableCsvImports" == "True" } } + function getShortDatePattern() { + return { + pattern: "@shortDatePattern" + } + } @await RenderSectionAsync("Scripts", required: false) diff --git a/wwwroot/js/collisionrecord.js b/wwwroot/js/collisionrecord.js index 6732d0a..d48c7c8 100644 --- a/wwwroot/js/collisionrecord.js +++ b/wwwroot/js/collisionrecord.js @@ -4,7 +4,8 @@ $("#collisionRecordModalContent").html(data); //initiate datepicker $('#collisionRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#collisionRecordModal').modal('show'); } @@ -16,7 +17,8 @@ function showEditCollisionRecordModal(collisionRecordId) { $("#collisionRecordModalContent").html(data); //initiate datepicker $('#collisionRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#collisionRecordModal').modal('show'); } diff --git a/wwwroot/js/gasrecord.js b/wwwroot/js/gasrecord.js index a175bca..406cf7f 100644 --- a/wwwroot/js/gasrecord.js +++ b/wwwroot/js/gasrecord.js @@ -4,7 +4,8 @@ $("#gasRecordModalContent").html(data); //initiate datepicker $('#gasRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#gasRecordModal').modal('show'); } @@ -16,7 +17,8 @@ function showEditGasRecordModal(gasRecordId) { $("#gasRecordModalContent").html(data); //initiate datepicker $('#gasRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#gasRecordModal').modal('show'); } diff --git a/wwwroot/js/servicerecord.js b/wwwroot/js/servicerecord.js index e224a79..47dbb3c 100644 --- a/wwwroot/js/servicerecord.js +++ b/wwwroot/js/servicerecord.js @@ -4,7 +4,8 @@ $("#serviceRecordModalContent").html(data); //initiate datepicker $('#serviceRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#serviceRecordModal').modal('show'); } @@ -16,7 +17,8 @@ function showEditServiceRecordModal(serviceRecordId) { $("#serviceRecordModalContent").html(data); //initiate datepicker $('#serviceRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#serviceRecordModal').modal('show'); } diff --git a/wwwroot/js/taxrecord.js b/wwwroot/js/taxrecord.js index 1e665ab..09550e0 100644 --- a/wwwroot/js/taxrecord.js +++ b/wwwroot/js/taxrecord.js @@ -4,7 +4,8 @@ $("#taxRecordModalContent").html(data); //initiate datepicker $('#taxRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#taxRecordModal').modal('show'); } @@ -16,7 +17,8 @@ function showEditTaxRecordModal(taxRecordId) { $("#taxRecordModalContent").html(data); //initiate datepicker $('#taxRecordDate').datepicker({ - endDate: "+0d" + endDate: "+0d", + format: getShortDatePattern().pattern }); $('#taxRecordModal').modal('show'); }