diff --git a/README.md b/README.md index c0f70a5..9202783 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ -->
Current Version - 2021.06.27
+Current Version - 2021.07.14
A self-hosted vehicle expense tracking system with support for multiple users.
diff --git a/server/controllers/masters.go b/server/controllers/masters.go
index e1785c6..edf30d6 100644
--- a/server/controllers/masters.go
+++ b/server/controllers/masters.go
@@ -51,7 +51,7 @@ func udpateSettings(c *gin.Context) {
func udpateMySettings(c *gin.Context) {
var model models.UpdateSettingModel
if err := c.ShouldBind(&model); err == nil {
- err := service.UpdateUserSettings(c.MustGet("userId").(string), model.Currency, *model.DistanceUnit)
+ err := service.UpdateUserSettings(c.MustGet("userId").(string), model.Currency, *model.DistanceUnit, model.DateFormat)
if err != nil {
c.JSON(http.StatusUnprocessableEntity, common.NewError("udpateMySettings", err))
return
diff --git a/server/db/clarkson.go b/server/db/clarkson.go
index a4a25c7..7423ded 100644
--- a/server/db/clarkson.go
+++ b/server/db/clarkson.go
@@ -138,6 +138,7 @@ func MigrateClarkson(connectionString string) (bool, error) {
DistanceUnit: distanceUnitMap[v.DistanceUnit],
Role: role,
Name: v.Username,
+ DateFormat: "MM/dd/yyyy",
}
user.SetPassword("hammond")
err = CreateUser(&user)
diff --git a/server/db/dbModels.go b/server/db/dbModels.go
index e3861d5..2d09a08 100644
--- a/server/db/dbModels.go
+++ b/server/db/dbModels.go
@@ -14,6 +14,7 @@ type User struct {
Password string `json:"-"`
Currency string `json:"currency"`
DistanceUnit DistanceUnit `json:"distanceUnit"`
+ DateFormat string `json:"dateFormat"`
Role Role `json:"role"`
Name string `json:"name"`
Vehicles []Vehicle `gorm:"many2many:user_vehicles;" json:"vehicles"`
diff --git a/server/models/misc.go b/server/models/misc.go
index c0b7f44..7f29dce 100644
--- a/server/models/misc.go
+++ b/server/models/misc.go
@@ -4,6 +4,7 @@ import "github.com/akhilrex/hammond/db"
type UpdateSettingModel struct {
Currency string `json:"currency" form:"currency" query:"currency"`
+ DateFormat string `json:"dateFormat" form:"dateFormat" query:"dateFormat"`
DistanceUnit *db.DistanceUnit `json:"distanceUnit" form:"distanceUnit" query:"distanceUnit" `
}
diff --git a/server/service/miscService.go b/server/service/miscService.go
index 19da8b6..d56fd2c 100644
--- a/server/service/miscService.go
+++ b/server/service/miscService.go
@@ -14,7 +14,7 @@ func UpdateSettings(currency string, distanceUnit db.DistanceUnit) error {
setting.DistanceUnit = distanceUnit
return db.UpdateSettings(setting)
}
-func UpdateUserSettings(userId, currency string, distanceUnit db.DistanceUnit) error {
+func UpdateUserSettings(userId, currency string, distanceUnit db.DistanceUnit, dateFormat string) error {
user, err := db.GetUserById(userId)
if err != nil {
return err
@@ -22,6 +22,7 @@ func UpdateUserSettings(userId, currency string, distanceUnit db.DistanceUnit) e
user.Currency = currency
user.DistanceUnit = distanceUnit
+ user.DateFormat = dateFormat
return db.UpdateUser(user)
}
diff --git a/server/service/userService.go b/server/service/userService.go
index 6799afa..bdd568f 100644
--- a/server/service/userService.go
+++ b/server/service/userService.go
@@ -13,6 +13,7 @@ func CreateUser(userModel *models.RegisterRequest, role db.Role) error {
Role: role,
Currency: setting.Currency,
DistanceUnit: setting.DistanceUnit,
+ DateFormat: "MM/dd/yyyy",
}
toCreate.SetPassword(userModel.Password)
diff --git a/ui/src/router/views/createExpense.vue b/ui/src/router/views/createExpense.vue
index e3e17dd..cfc59e6 100644
--- a/ui/src/router/views/createExpense.vue
+++ b/ui/src/router/views/createExpense.vue
@@ -4,6 +4,7 @@ import QuickEntryDisplay from '@components/quickEntryDisplay.vue'
import { mapState } from 'vuex'
import axios from 'axios'
import store from '@state/store'
+import { format } from 'date-fns'
export default {
page: {
@@ -61,6 +62,10 @@ export default {
}
},
methods: {
+ formatDate(date) {
+ const finalFormat = this.me.dateFormat ? this.me.dateFormat : 'MM/dd/yyyy'
+ return format(date, finalFormat)
+ },
getEmptyExpense() {
return {
vehicleId: this.selectedVehicle.id,
@@ -172,7 +177,14 @@ export default {
Current Version
- 2021.06.27
+ 2021.07.14
Website
@@ -202,7 +211,7 @@ export default {
Support the developer
- Support here
+ Buy him a beer!