Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge changes for version 1.7 #185

Merged
merged 87 commits into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
ae25ba9
Select Bucket via Modal Dialog #112
TheAxelander Jan 2, 2023
7049435
Add Confirmation Dialog before making a Bucket inactive #119
TheAxelander Jan 2, 2023
f95d5ba
Prevent any kind of interaction with Buckets marked as inactive #111
TheAxelander Jan 2, 2023
737e019
Fixed Bucket Group Header in Bucket Select Dialog
TheAxelander Jan 2, 2023
7aa6e27
Select Bucket via Modal Dialog #112
TheAxelander Jan 2, 2023
3aea996
Add Confirmation Dialog before making a Bucket inactive #119
TheAxelander Jan 2, 2023
1726e17
Prevent any kind of interaction with Buckets marked as inactive #111
TheAxelander Jan 2, 2023
ca6b200
Fixed Bucket Group Header in Bucket Select Dialog
TheAxelander Jan 2, 2023
d9e50aa
Fixed CHANGELOG.md
TheAxelander Jan 11, 2023
ebd7983
Merge branch 'pre-release' of https://github.com/TheAxelander/OpenBud…
TheAxelander Jan 11, 2023
ba8cf03
Select Bucket via Modal Dialog #112
TheAxelander Jan 2, 2023
f79f81f
Add Confirmation Dialog before making a Bucket inactive #119
TheAxelander Jan 2, 2023
a50b498
Prevent any kind of interaction with Buckets marked as inactive #111
TheAxelander Jan 2, 2023
b44aa6b
Fixed Bucket Group Header in Bucket Select Dialog
TheAxelander Jan 2, 2023
dfa5e44
Update CHANGELOG
TheAxelander Jan 27, 2023
092ab5f
Fixed width of Bucket Buttons #126 on Transaction Page
TheAxelander Jan 27, 2023
424a813
Add System default Buckets in BucketSelectDialog #129
TheAxelander Jan 28, 2023
47af6e9
Update README.md
TheAxelander Feb 4, 2023
94ac5ad
scss cleanup
TheAxelander Feb 4, 2023
576bf34
Migrated Integer based IDs to Guid
TheAxelander Feb 11, 2023
c5fee92
Prevent deletion of system defined Buckets and BucketGroups
TheAxelander Feb 11, 2023
5e4d68c
Exclude system default Buckets for any calculation
TheAxelander Feb 11, 2023
2bffd54
Update Github actions (pre-release)
TheAxelander Feb 11, 2023
76911a0
Update Github actions (master)
TheAxelander Feb 11, 2023
ae1383c
Update README.md
TheAxelander Feb 11, 2023
2db2c31
Fixed crash on Report page due to missing order
TheAxelander Feb 11, 2023
4670b08
Add Foreign Keys and migration to .Net 7
TheAxelander Feb 16, 2023
d915d07
Fix .Net version for Github Actions
TheAxelander Feb 16, 2023
295abb4
Fix compiler errors for MSBuild version 17.5.0-preview-23061 for Gith…
TheAxelander Feb 16, 2023
800c451
Try specific .Net Version for Github Actions
TheAxelander Feb 16, 2023
de6a283
Take over fix also for master workflow
TheAxelander Feb 16, 2023
d8e6445
Fix .Net version in Dockerfile
TheAxelander Feb 16, 2023
3dd268f
Try tag 7.0 for .Net Docker images
TheAxelander Feb 16, 2023
6a697ac
Update various Github Action versions
TheAxelander Feb 16, 2023
e702112
Try to exclude arm64
TheAxelander Feb 16, 2023
6ca08ea
ISS81 | Implement Postgres support (#142)
csillaggyujto Jul 1, 2023
481dbec
Update CHANGELOG.md
TheAxelander Jul 1, 2023
243934e
Allow '-' char for database name (excluding postgres)
TheAxelander Jul 1, 2023
98158a0
Rework example docker-compose files
TheAxelander Jul 1, 2023
bb8eac0
Update README.md
TheAxelander Jul 1, 2023
f1e97d6
Update README.md adding some comments for parameters
TheAxelander Jul 1, 2023
5ee288a
Fix ID error for BucketType in EditBucketDialog #150
TheAxelander Jul 1, 2023
9e65cae
Fixed wrong exclusion of Income Bucket for Balance Figure calculation…
TheAxelander Jul 1, 2023
9f5b47c
Fixed Bucket activity calculation #152
TheAxelander Jul 1, 2023
bfdb7d8
Quick fix for Import Page to enable de-selection of Payee #148
TheAxelander Jul 1, 2023
f04e364
Set yAxes min value to 0 for some reports on Report Page #137
TheAxelander Jul 1, 2023
a3d0b94
Test if arm64 Docker image works again #131
TheAxelander Jul 1, 2023
facaaca
Undo previous change #131
TheAxelander Jul 1, 2023
9f11a85
ISS143 | Target Alpine (#157)
csillaggyujto Jul 9, 2023
e81ea04
Updates after last PR
TheAxelander Jul 9, 2023
e1a33e0
Test if arm64 Docker image works again #131
TheAxelander Jul 9, 2023
9e0b172
Fix Dockerfile location
TheAxelander Jul 9, 2023
4f874b5
Potentially fix ARM build
TheAxelander Jul 9, 2023
7465935
Remove linux-musl-x64 also for dotnet restore
TheAxelander Jul 9, 2023
1c48ddb
Try another fix
TheAxelander Jul 9, 2023
46df16e
Restore previous Dockerfile version and exclude arm64 again
TheAxelander Jul 9, 2023
a0c6c80
Fix Dockerfile
TheAxelander Jul 9, 2023
7d26573
Fix CHANGELOG.md
TheAxelander Jul 9, 2023
44b2b3e
Correctly detect potential duplicates if payee or memo is equal (#156)
Lucaber Jul 9, 2023
7dd78fb
Update CHANGELOG.md
TheAxelander Jul 9, 2023
f1701f7
Use right function to limit selection of BankTransaction for Account …
TheAxelander Jul 18, 2023
984eab6
Update README.md
TheAxelander Aug 14, 2023
6183c9f
Fixed Negative progress for Buckets with type "Expenses every X month…
TheAxelander Aug 27, 2023
5244a94
Fixed Sqlite Database locked while using "Distribute Budget" #171
TheAxelander Aug 27, 2023
1d433c2
Load Import CSV from Query Parameter (#149)
Lucaber Aug 27, 2023
f8b1776
Create SECURITY.md
TheAxelander Sep 7, 2023
3139e0e
Update issue templates
TheAxelander Sep 7, 2023
c47ef36
Update issue templates
TheAxelander Sep 7, 2023
587c19f
Fix error message closes Modal Dialog for Create/Edit Bucket #170
TheAxelander Sep 8, 2023
987b679
Fix Create/Change Bucket allows 0 months for Bucket Type Expense ever…
TheAxelander Sep 8, 2023
4f0d258
Edit Bucket Dialog: Disable input fields based on selected Bucket Typ…
TheAxelander Sep 8, 2023
e5f9cb7
Fix missing Unicode support for Import #16
TheAxelander Sep 8, 2023
0724d1f
Merge bucket modal dialog changes into pre-release
TheAxelander Sep 8, 2023
f51f24c
Update CHANGELOG.md
TheAxelander Sep 8, 2023
00f2360
Refactoring for Import CSV from Query Parameter
TheAxelander Sep 8, 2023
98538ee
Fixed wrong selection after saving an Import Profile #172
TheAxelander Sep 8, 2023
0fe8d76
Fix compiler warnings on Rules Page
TheAxelander Sep 8, 2023
f11c132
Refactoring onmouseover and onmouseout code style
TheAxelander Sep 8, 2023
764e5aa
Potential fix for "Collection was modified" exception on Rules Page #165
TheAxelander Sep 8, 2023
2d3fff3
Update 3rd party licenses
TheAxelander Sep 8, 2023
4e3bbac
Fix "component parameter should be auto property" compiler warning
TheAxelander Sep 8, 2023
82b1d19
Cleanup BucketDetailsDialog
TheAxelander Sep 8, 2023
31254b9
Allow selection of default system buckets in rules (#191)
Lucaber Oct 3, 2023
5d914a1
Fix navbar in portrait mode (#190)
Lucaber Oct 3, 2023
c5db397
Update CHANGELOG.md
TheAxelander Oct 3, 2023
a45d1ec
Fix BucketGroup creation handling due to changes in DB handling
TheAxelander Oct 3, 2023
3ccfa9e
Update CHANGELOG.md
TheAxelander Oct 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,16 @@
**/secrets.dev.yaml
**/values.dev.yaml
LICENSE
README.md
README.md
# directories
**/bin/
**/obj/
**/out/

# files
Dockerfile*
**/*.trx
**/*.md
**/*.ps1
**/*.cmd
**/*.sh
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report for things that not work as expected
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Additional helpful details**
- Used version [e.g. v1.6.3, pre-release]
- Database [e.g. MySql, PostgreSQL]
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: suggestion
assignees: ''

---

**Describe the solution you'd like**
A clear and concise description of what you would like to request or the idea that you have.

**Additional context**
Add any other context or screenshots about the feature request here.
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
name: Support
about: In case you need help or if you don't understand something
title: ''
labels: support
assignees: ''

---

**Describe the issue where you need some support**
A clear and concise description of the context where you need some help.
38 changes: 32 additions & 6 deletions .github/workflows/docker-image-master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,53 @@ on:
push:
branches: [ master ]

env:
DOTNET_VERSION: '7.0.103' # The .NET SDK version to use

jobs:
build:
test:
runs-on: ubuntu-latest
name: Run Test Cases
steps:
- name: Check out repo
uses: actions/checkout@v3

- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Install Blazor dependencies
run: dotnet restore OpenBudgeteer.Blazor

- name: Build Blazor
run: dotnet build OpenBudgeteer.Blazor --configuration Release --no-restore

- name: Run Core Test Cases
run: dotnet test OpenBudgeteer.Core.Test
deploy-docker:
runs-on: ubuntu-latest
name: Build and Push Docker Image
needs: test
if: success()
steps:
- name: Check out repo
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Docker Login
uses: docker/login-action@v1.10.0
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2

- name: Build and push Docker image
uses: docker/build-push-action@v2
uses: docker/build-push-action@v4
with:
context: .
push: true
Expand Down
41 changes: 32 additions & 9 deletions .github/workflows/docker-image-pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,55 @@ on:
branches: [ pre-release ]

env:
DOTNET_VERSION: '6.0' # The .NET SDK version to use
DOTNET_VERSION: '7.0.103' # The .NET SDK version to use

jobs:
deploy:
test:
runs-on: ubuntu-latest
name: Run Test Cases
steps:
- name: Check out repo
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Setup dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Install Blazor dependencies
run: dotnet restore OpenBudgeteer.Blazor

- name: Build Blazor
run: dotnet build OpenBudgeteer.Blazor --configuration Release --no-restore

- name: Run Core Test Cases
run: dotnet test OpenBudgeteer.Core.Test
deploy-docker:
runs-on: ubuntu-latest
name: Build and Push Docker Image
needs: test
if: success()
steps:
- name: Check out repo
uses: actions/checkout@v3

- name: Docker Login
uses: docker/login-action@v1.10.0
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2

- name: Build and push Docker image
uses: docker/build-push-action@v2
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: axelander/openbudgeteer:pre-release
file: OpenBudgeteer.Blazor/Dockerfile
platforms: linux/arm64,linux/amd64
# file: OpenBudgeteer.Blazor/Dockerfile
platforms: linux/amd64
30 changes: 0 additions & 30 deletions .github/workflows/test-cases.yml

This file was deleted.

31 changes: 29 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
### 1.7 (2023-10-03)

* [Add] PostgreSQL support [#81](https://github.com/TheAxelander/OpenBudgeteer/issues/81) Thanks [csillaggyujto](https://github.com/csillaggyujto)
* [Add] Confirmation Dialog before setting a Bucket inactive [#119](https://github.com/TheAxelander/OpenBudgeteer/issues/119)
* [Add] Some validations for creating and changing Rules
* [Breaking Change] Specific characters are no longer allowed for database names (SQL injection prevention)
* [Breaking Change] For database type `sqlite` the parameter `CONNECTION_DATABASE` can now include a full path (no longer defaulted in `/app/database`). Consider updating your volume mapping.
* [Changed] Migrated to .Net 7
* [Changed] Integer based IDs in database have been migrated to Guid
* [Changed] Overall refactoring of database backend including SQL injection protection. Thanks [csillaggyujto](https://github.com/csillaggyujto)
* [Changed] Blazor Docker Image based on Alpine [#143](https://github.com/TheAxelander/OpenBudgeteer/issues/143) Thanks [csillaggyujto](https://github.com/csillaggyujto)
* [Changed] Prevent any kind of interaction with Buckets marked as inactive [#111](https://github.com/TheAxelander/OpenBudgeteer/issues/111)
* [Changed] Bucket selection on Transaction and Rules Page now happens in a separate dialog which shows a similar overview like on Bucket page [#112](https://github.com/TheAxelander/OpenBudgeteer/issues/112)
* [Changed] Replaced custom solution to fix [#114](https://github.com/TheAxelander/OpenBudgeteer/issues/114) with new `bind:get` and `bind:set` feature from .Net 7
* [Changed] Improved performance for duplicate check on Import Page
* [Changed] Improved visibility of some reports on Report Page [#137](https://github.com/TheAxelander/OpenBudgeteer/issues/137)
* [Changed] Improved Bucket Type handling for Create/Edit Bucket [#184](https://github.com/TheAxelander/OpenBudgeteer/issues/184) [#160](https://github.com/TheAxelander/OpenBudgeteer/issues/160)
* [Fixed] Enable de-selection of Payee on Import Page [#148](https://github.com/TheAxelander/OpenBudgeteer/issues/148)
* [Fixed] Duplicate matching on Import Page [#151](https://github.com/TheAxelander/OpenBudgeteer/issues/151) Thanks [Lucaber](https://github.com/Lucaber)
* [Fixed] Negative progress for Buckets with type "Expenses every X months" [#158](https://github.com/TheAxelander/OpenBudgeteer/issues/158)
* [Fixed] Sqlite Database locked while using "Distribute Budget" [#171](https://github.com/TheAxelander/OpenBudgeteer/issues/171)
* [Fixed] Missing Unicode support for Import [#163](https://github.com/TheAxelander/OpenBudgeteer/issues/163)
* [Fixed] Error message closes Modal Dialog for Create/Edit Bucket [#170](https://github.com/TheAxelander/OpenBudgeteer/issues/170)
* [Fixed] Wrong selection after saving an Import Profile [#172](https://github.com/TheAxelander/OpenBudgeteer/issues/172)
* [Fixed] Allow selection of default system buckets in rules [#191](https://github.com/TheAxelander/OpenBudgeteer/pull/191) Thanks [Lucaber](https://github.com/Lucaber)
* [Fixed] Fix navbar in portrait mode [#190](https://github.com/TheAxelander/OpenBudgeteer/pull/190) Thanks [Lucaber](https://github.com/Lucaber)

### 1.6.3 (2023-01-27)

* [Add] Several Confirmation Dialogs for Import Profile handling [#124](https://github.com/TheAxelander/OpenBudgeteer/issues/124)
Expand All @@ -7,11 +34,11 @@
### 1.6.2 (2023-01-11)

* [Fixed] Due to implemented fix for [#114](https://github.com/TheAxelander/OpenBudgeteer/issues/114) Column mapping on Import Page was not working properly [#121](https://github.com/TheAxelander/OpenBudgeteer/issues/121) [#122](https://github.com/TheAxelander/OpenBudgeteer/issues/122)

### 1.6.1 (2022-12-31)

* [Changed] Slight visual changes for Mapping Rule modification
* [Fixed] Rendering of correct Drop-down selection element for Firefox browser [#114](https://github.com/TheAxelander/OpenBudgeteer/issues/114)
* [Fixed] Rendering of Drop-down selection element for Firefox browser [#114](https://github.com/TheAxelander/OpenBudgeteer/issues/114)

### 1.6 (2022-12-03)

Expand Down
23 changes: 23 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:7.0-alpine AS base
WORKDIR /app
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
ENV DOTNET_RUNNING_IN_CONTAINER=true
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
EXPOSE 80
EXPOSE 443
RUN apk add --no-cache icu-libs icu-data-full

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
WORKDIR /src
COPY . .
RUN dotnet restore -r linux-musl-x64
WORKDIR "/src/OpenBudgeteer.Blazor"
RUN dotnet publish "OpenBudgeteer.Blazor.csproj" -r linux-musl-x64 --no-self-contained -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "OpenBudgeteer.dll"]
42 changes: 32 additions & 10 deletions LICENSE-3RD-PARTY
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
The MIT License (MIT)
applies to:
- BlazorFileReader, Copyright (c) 2018 Tor
- ChartJs.Blazor, Copyright (c) 2019 Marius Muntean
- ChartJs.Blazor, Copyright (c) 2019 Marius Muntean
- efcore, Copyright (c) .NET Foundation and Contributors
- Pomelo.EntityFrameworkCore.MySql, Copyright (c) 2017 Pomelo Foundation
- TinyCsvParser, Copyright (c) Philipp Wagner
- .NET Core, Copyright (c) .NET Foundation and Contributors
- Bootstrap, Copyright (c) 2011-2022 Twitter, Inc.
Copyright (c) 2011-2022 The Bootstrap Authors
- Bootstrap Icons, Copyright (c) 2019-2021 The Bootstrap Authors
- TinyCsvParser, Copyright (c) Philipp Wagner and Contributors
- .NET runtime, Copyright (c) .NET Foundation and Contributors
- Bootstrap, Copyright (c) 2011-2018 Twitter, Inc.
Copyright (c) 2011-2018 The Bootstrap Authors
- Bootstrap Icons, Copyright (c) 2019-2023 The Bootstrap Authors
-----------------------------------------------------------------------------

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand All @@ -30,10 +31,9 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

-----------------------------------------------------------------------------
Apache License
Version 2.0, January 2004
Apache-2.0
applies to:
- Microsoft.EntityFrameworkCore, Copyright Microsoft Corporation
- xunit, Copyright (c) .NET Foundation and Contributors
-----------------------------------------------------------------------------

Licensed under the Apache License, Version 2.0 (the "License");
Expand All @@ -46,4 +46,26 @@ Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.

-----------------------------------------------------------------------------
PostgreSQL License
applies to:
- efcore.pg, Copyright (c) 2002-2021, Npgsql
-----------------------------------------------------------------------------

Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.

IN NO EVENT SHALL NPGSQL BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
Npgsql HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

NPGSQL SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND Npgsql
HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
OR MODIFICATIONS.
23 changes: 0 additions & 23 deletions OpenBudgeteer.Blazor/Dockerfile

This file was deleted.

Loading