mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-10-04 04:21:40 +00:00
Merge branch 'main' into fix/reply-draft-persistence
This commit is contained in:
+15
-3
@@ -13,6 +13,7 @@ import (
|
||||
|
||||
var (
|
||||
oidcStateSessKey = "oidc_state"
|
||||
oidcNextSessKey = "oidc_next"
|
||||
)
|
||||
|
||||
// handleOIDCLogin redirects to the OIDC provider for login.
|
||||
@@ -33,9 +34,13 @@ func handleOIDCLogin(r *fastglue.Request) error {
|
||||
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.errorGenerating", "name", "state"), nil, envelope.GeneralError)
|
||||
}
|
||||
|
||||
if err = app.auth.SetSessionValues(r, map[string]interface{}{
|
||||
sessionValues := map[string]any{
|
||||
oidcStateSessKey: state,
|
||||
}); err != nil {
|
||||
// For redirecting after login
|
||||
oidcNextSessKey: string(r.RequestCtx.QueryArgs().Peek("next")),
|
||||
}
|
||||
|
||||
if err = app.auth.SetSessionValues(r, sessionValues); err != nil {
|
||||
app.lo.Error("error saving state in session", "error", err)
|
||||
return r.SendErrorEnvelope(fasthttp.StatusInternalServerError, app.i18n.Ts("globals.messages.errorSaving", "name", "{globals.terms.session}"), nil, envelope.GeneralError)
|
||||
}
|
||||
@@ -104,5 +109,12 @@ func handleOIDCCallback(r *fastglue.Request) error {
|
||||
app.lo.Error("error creating login activity log", "error", err)
|
||||
}
|
||||
|
||||
return r.Redirect("/", fasthttp.StatusFound, nil, "")
|
||||
// Read the 'next' parameter from session to redirect after login.
|
||||
nextParam, _ := app.auth.GetSessionValue(r, oidcNextSessKey)
|
||||
redirectURL := "/"
|
||||
if nextStr, ok := nextParam.(string); ok && nextStr != "" {
|
||||
redirectURL = nextStr
|
||||
}
|
||||
|
||||
return r.RedirectURI(redirectURL, fasthttp.StatusFound, nil, "")
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
"start-server-and-test": "^2.0.3",
|
||||
"tailwindcss": "^3.4.17",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"vite": "^5.4.20",
|
||||
"vite": "^5.4.21",
|
||||
"vitest": "^3.2.2"
|
||||
},
|
||||
"packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a"
|
||||
|
||||
Generated
+110
-101
@@ -146,7 +146,7 @@ importers:
|
||||
version: 1.10.5
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: ^5.0.3
|
||||
version: 5.2.1(vite@5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))(vue@3.5.13(typescript@5.7.3))
|
||||
version: 5.2.1(vite@5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))(vue@3.5.13(typescript@5.7.3))
|
||||
'@vue/eslint-config-prettier':
|
||||
specifier: ^8.0.0
|
||||
version: 8.0.0(eslint@8.57.1)(prettier@3.4.2)
|
||||
@@ -184,8 +184,8 @@ importers:
|
||||
specifier: ^1.0.7
|
||||
version: 1.0.7(tailwindcss@3.4.17)
|
||||
vite:
|
||||
specifier: ^5.4.20
|
||||
version: 5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
specifier: ^5.4.21
|
||||
version: 5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vitest:
|
||||
specifier: ^3.2.2
|
||||
version: 3.2.2(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
@@ -708,108 +708,113 @@ packages:
|
||||
'@remirror/core-constants@3.0.0':
|
||||
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.50.2':
|
||||
resolution: {integrity: sha512-uLN8NAiFVIRKX9ZQha8wy6UUs06UNSZ32xj6giK/rmMXAgKahwExvK6SsmgU5/brh4w/nSgj8e0k3c1HBQpa0A==}
|
||||
'@rollup/rollup-android-arm-eabi@4.53.3':
|
||||
resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
'@rollup/rollup-android-arm64@4.50.2':
|
||||
resolution: {integrity: sha512-oEouqQk2/zxxj22PNcGSskya+3kV0ZKH+nQxuCCOGJ4oTXBdNTbv+f/E3c74cNLeMO1S5wVWacSws10TTSB77g==}
|
||||
'@rollup/rollup-android-arm64@4.53.3':
|
||||
resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@rollup/rollup-darwin-arm64@4.50.2':
|
||||
resolution: {integrity: sha512-OZuTVTpj3CDSIxmPgGH8en/XtirV5nfljHZ3wrNwvgkT5DQLhIKAeuFSiwtbMto6oVexV0k1F1zqURPKf5rI1Q==}
|
||||
'@rollup/rollup-darwin-arm64@4.53.3':
|
||||
resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@rollup/rollup-darwin-x64@4.50.2':
|
||||
resolution: {integrity: sha512-Wa/Wn8RFkIkr1vy1k1PB//VYhLnlnn5eaJkfTQKivirOvzu5uVd2It01ukeQstMursuz7S1bU+8WW+1UPXpa8A==}
|
||||
'@rollup/rollup-darwin-x64@4.53.3':
|
||||
resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@rollup/rollup-freebsd-arm64@4.50.2':
|
||||
resolution: {integrity: sha512-QkzxvH3kYN9J1w7D1A+yIMdI1pPekD+pWx7G5rXgnIlQ1TVYVC6hLl7SOV9pi5q9uIDF9AuIGkuzcbF7+fAhow==}
|
||||
'@rollup/rollup-freebsd-arm64@4.53.3':
|
||||
resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==}
|
||||
cpu: [arm64]
|
||||
os: [freebsd]
|
||||
|
||||
'@rollup/rollup-freebsd-x64@4.50.2':
|
||||
resolution: {integrity: sha512-dkYXB0c2XAS3a3jmyDkX4Jk0m7gWLFzq1C3qUnJJ38AyxIF5G/dyS4N9B30nvFseCfgtCEdbYFhk0ChoCGxPog==}
|
||||
'@rollup/rollup-freebsd-x64@4.53.3':
|
||||
resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.50.2':
|
||||
resolution: {integrity: sha512-9VlPY/BN3AgbukfVHAB8zNFWB/lKEuvzRo1NKev0Po8sYFKx0i+AQlCYftgEjcL43F2h9Ui1ZSdVBc4En/sP2w==}
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.53.3':
|
||||
resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.50.2':
|
||||
resolution: {integrity: sha512-+GdKWOvsifaYNlIVf07QYan1J5F141+vGm5/Y8b9uCZnG/nxoGqgCmR24mv0koIWWuqvFYnbURRqw1lv7IBINw==}
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.53.3':
|
||||
resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.50.2':
|
||||
resolution: {integrity: sha512-df0Eou14ojtUdLQdPFnymEQteENwSJAdLf5KCDrmZNsy1c3YaCNaJvYsEUHnrg+/DLBH612/R0xd3dD03uz2dg==}
|
||||
'@rollup/rollup-linux-arm64-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.50.2':
|
||||
resolution: {integrity: sha512-iPeouV0UIDtz8j1YFR4OJ/zf7evjauqv7jQ/EFs0ClIyL+by++hiaDAfFipjOgyz6y6xbDvJuiU4HwpVMpRFDQ==}
|
||||
'@rollup/rollup-linux-arm64-musl@4.53.3':
|
||||
resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-loong64-gnu@4.50.2':
|
||||
resolution: {integrity: sha512-OL6KaNvBopLlj5fTa5D5bau4W82f+1TyTZRr2BdnfsrnQnmdxh4okMxR2DcDkJuh4KeoQZVuvHvzuD/lyLn2Kw==}
|
||||
'@rollup/rollup-linux-loong64-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-ppc64-gnu@4.50.2':
|
||||
resolution: {integrity: sha512-I21VJl1w6z/K5OTRl6aS9DDsqezEZ/yKpbqlvfHbW0CEF5IL8ATBMuUx6/mp683rKTK8thjs/0BaNrZLXetLag==}
|
||||
'@rollup/rollup-linux-ppc64-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.50.2':
|
||||
resolution: {integrity: sha512-Hq6aQJT/qFFHrYMjS20nV+9SKrXL2lvFBENZoKfoTH2kKDOJqff5OSJr4x72ZaG/uUn+XmBnGhfr4lwMRrmqCQ==}
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-musl@4.50.2':
|
||||
resolution: {integrity: sha512-82rBSEXRv5qtKyr0xZ/YMF531oj2AIpLZkeNYxmKNN6I2sVE9PGegN99tYDLK2fYHJITL1P2Lgb4ZXnv0PjQvw==}
|
||||
'@rollup/rollup-linux-riscv64-musl@4.53.3':
|
||||
resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.50.2':
|
||||
resolution: {integrity: sha512-4Q3S3Hy7pC6uaRo9gtXUTJ+EKo9AKs3BXKc2jYypEcMQ49gDPFU2P1ariX9SEtBzE5egIX6fSUmbmGazwBVF9w==}
|
||||
'@rollup/rollup-linux-s390x-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.50.2':
|
||||
resolution: {integrity: sha512-9Jie/At6qk70dNIcopcL4p+1UirusEtznpNtcq/u/C5cC4HBX7qSGsYIcG6bdxj15EYWhHiu02YvmdPzylIZlA==}
|
||||
'@rollup/rollup-linux-x64-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.50.2':
|
||||
resolution: {integrity: sha512-HPNJwxPL3EmhzeAnsWQCM3DcoqOz3/IC6de9rWfGR8ZCuEHETi9km66bH/wG3YH0V3nyzyFEGUZeL5PKyy4xvw==}
|
||||
'@rollup/rollup-linux-x64-musl@4.53.3':
|
||||
resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-openharmony-arm64@4.50.2':
|
||||
resolution: {integrity: sha512-nMKvq6FRHSzYfKLHZ+cChowlEkR2lj/V0jYj9JnGUVPL2/mIeFGmVM2mLaFeNa5Jev7W7TovXqXIG2d39y1KYA==}
|
||||
'@rollup/rollup-openharmony-arm64@4.53.3':
|
||||
resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==}
|
||||
cpu: [arm64]
|
||||
os: [openharmony]
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.50.2':
|
||||
resolution: {integrity: sha512-eFUvvnTYEKeTyHEijQKz81bLrUQOXKZqECeiWH6tb8eXXbZk+CXSG2aFrig2BQ/pjiVRj36zysjgILkqarS2YA==}
|
||||
'@rollup/rollup-win32-arm64-msvc@4.53.3':
|
||||
resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-ia32-msvc@4.50.2':
|
||||
resolution: {integrity: sha512-cBaWmXqyfRhH8zmUxK3d3sAhEWLrtMjWBRwdMMHJIXSjvjLKvv49adxiEz+FJ8AP90apSDDBx2Tyd/WylV6ikA==}
|
||||
'@rollup/rollup-win32-ia32-msvc@4.53.3':
|
||||
resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.50.2':
|
||||
resolution: {integrity: sha512-APwKy6YUhvZaEoHyM+9xqmTpviEI+9eL7LoCH+aLcvWYHJ663qG5zx7WzWZY+a9qkg5JtzcMyJ9z0WtQBMDmgA==}
|
||||
'@rollup/rollup-win32-x64-gnu@4.53.3':
|
||||
resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.53.3':
|
||||
resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
@@ -3006,8 +3011,8 @@ packages:
|
||||
robust-predicates@3.0.2:
|
||||
resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==}
|
||||
|
||||
rollup@4.50.2:
|
||||
resolution: {integrity: sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w==}
|
||||
rollup@4.53.3:
|
||||
resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==}
|
||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||
hasBin: true
|
||||
|
||||
@@ -3369,8 +3374,8 @@ packages:
|
||||
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
|
||||
hasBin: true
|
||||
|
||||
vite@5.4.20:
|
||||
resolution: {integrity: sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==}
|
||||
vite@5.4.21:
|
||||
resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -4105,67 +4110,70 @@ snapshots:
|
||||
|
||||
'@remirror/core-constants@3.0.0': {}
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.50.2':
|
||||
'@rollup/rollup-android-arm-eabi@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-android-arm64@4.50.2':
|
||||
'@rollup/rollup-android-arm64@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-darwin-arm64@4.50.2':
|
||||
'@rollup/rollup-darwin-arm64@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-darwin-x64@4.50.2':
|
||||
'@rollup/rollup-darwin-x64@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-freebsd-arm64@4.50.2':
|
||||
'@rollup/rollup-freebsd-arm64@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-freebsd-x64@4.50.2':
|
||||
'@rollup/rollup-freebsd-x64@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.50.2':
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.50.2':
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.50.2':
|
||||
'@rollup/rollup-linux-arm64-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.50.2':
|
||||
'@rollup/rollup-linux-arm64-musl@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-loong64-gnu@4.50.2':
|
||||
'@rollup/rollup-linux-loong64-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-ppc64-gnu@4.50.2':
|
||||
'@rollup/rollup-linux-ppc64-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.50.2':
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-riscv64-musl@4.50.2':
|
||||
'@rollup/rollup-linux-riscv64-musl@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.50.2':
|
||||
'@rollup/rollup-linux-s390x-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.50.2':
|
||||
'@rollup/rollup-linux-x64-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.50.2':
|
||||
'@rollup/rollup-linux-x64-musl@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-openharmony-arm64@4.50.2':
|
||||
'@rollup/rollup-openharmony-arm64@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.50.2':
|
||||
'@rollup/rollup-win32-arm64-msvc@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-ia32-msvc@4.50.2':
|
||||
'@rollup/rollup-win32-ia32-msvc@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.50.2':
|
||||
'@rollup/rollup-win32-x64-gnu@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.53.3':
|
||||
optional: true
|
||||
|
||||
'@rushstack/eslint-patch@1.10.5': {}
|
||||
@@ -4676,9 +4684,9 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- vue
|
||||
|
||||
'@vitejs/plugin-vue@5.2.1(vite@5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))(vue@3.5.13(typescript@5.7.3))':
|
||||
'@vitejs/plugin-vue@5.2.1(vite@5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))(vue@3.5.13(typescript@5.7.3))':
|
||||
dependencies:
|
||||
vite: 5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vite: 5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vue: 3.5.13(typescript@5.7.3)
|
||||
|
||||
'@vitest/expect@3.2.2':
|
||||
@@ -4689,13 +4697,13 @@ snapshots:
|
||||
chai: 5.2.0
|
||||
tinyrainbow: 2.0.0
|
||||
|
||||
'@vitest/mocker@3.2.2(vite@5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))':
|
||||
'@vitest/mocker@3.2.2(vite@5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))':
|
||||
dependencies:
|
||||
'@vitest/spy': 3.2.2
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.17
|
||||
optionalDependencies:
|
||||
vite: 5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vite: 5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
|
||||
'@vitest/pretty-format@3.2.2':
|
||||
dependencies:
|
||||
@@ -6604,31 +6612,32 @@ snapshots:
|
||||
|
||||
robust-predicates@3.0.2: {}
|
||||
|
||||
rollup@4.50.2:
|
||||
rollup@4.53.3:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.8
|
||||
optionalDependencies:
|
||||
'@rollup/rollup-android-arm-eabi': 4.50.2
|
||||
'@rollup/rollup-android-arm64': 4.50.2
|
||||
'@rollup/rollup-darwin-arm64': 4.50.2
|
||||
'@rollup/rollup-darwin-x64': 4.50.2
|
||||
'@rollup/rollup-freebsd-arm64': 4.50.2
|
||||
'@rollup/rollup-freebsd-x64': 4.50.2
|
||||
'@rollup/rollup-linux-arm-gnueabihf': 4.50.2
|
||||
'@rollup/rollup-linux-arm-musleabihf': 4.50.2
|
||||
'@rollup/rollup-linux-arm64-gnu': 4.50.2
|
||||
'@rollup/rollup-linux-arm64-musl': 4.50.2
|
||||
'@rollup/rollup-linux-loong64-gnu': 4.50.2
|
||||
'@rollup/rollup-linux-ppc64-gnu': 4.50.2
|
||||
'@rollup/rollup-linux-riscv64-gnu': 4.50.2
|
||||
'@rollup/rollup-linux-riscv64-musl': 4.50.2
|
||||
'@rollup/rollup-linux-s390x-gnu': 4.50.2
|
||||
'@rollup/rollup-linux-x64-gnu': 4.50.2
|
||||
'@rollup/rollup-linux-x64-musl': 4.50.2
|
||||
'@rollup/rollup-openharmony-arm64': 4.50.2
|
||||
'@rollup/rollup-win32-arm64-msvc': 4.50.2
|
||||
'@rollup/rollup-win32-ia32-msvc': 4.50.2
|
||||
'@rollup/rollup-win32-x64-msvc': 4.50.2
|
||||
'@rollup/rollup-android-arm-eabi': 4.53.3
|
||||
'@rollup/rollup-android-arm64': 4.53.3
|
||||
'@rollup/rollup-darwin-arm64': 4.53.3
|
||||
'@rollup/rollup-darwin-x64': 4.53.3
|
||||
'@rollup/rollup-freebsd-arm64': 4.53.3
|
||||
'@rollup/rollup-freebsd-x64': 4.53.3
|
||||
'@rollup/rollup-linux-arm-gnueabihf': 4.53.3
|
||||
'@rollup/rollup-linux-arm-musleabihf': 4.53.3
|
||||
'@rollup/rollup-linux-arm64-gnu': 4.53.3
|
||||
'@rollup/rollup-linux-arm64-musl': 4.53.3
|
||||
'@rollup/rollup-linux-loong64-gnu': 4.53.3
|
||||
'@rollup/rollup-linux-ppc64-gnu': 4.53.3
|
||||
'@rollup/rollup-linux-riscv64-gnu': 4.53.3
|
||||
'@rollup/rollup-linux-riscv64-musl': 4.53.3
|
||||
'@rollup/rollup-linux-s390x-gnu': 4.53.3
|
||||
'@rollup/rollup-linux-x64-gnu': 4.53.3
|
||||
'@rollup/rollup-linux-x64-musl': 4.53.3
|
||||
'@rollup/rollup-openharmony-arm64': 4.53.3
|
||||
'@rollup/rollup-win32-arm64-msvc': 4.53.3
|
||||
'@rollup/rollup-win32-ia32-msvc': 4.53.3
|
||||
'@rollup/rollup-win32-x64-gnu': 4.53.3
|
||||
'@rollup/rollup-win32-x64-msvc': 4.53.3
|
||||
fsevents: 2.3.3
|
||||
|
||||
rope-sequence@1.3.4: {}
|
||||
@@ -7006,7 +7015,7 @@ snapshots:
|
||||
debug: 4.4.1
|
||||
es-module-lexer: 1.7.0
|
||||
pathe: 2.0.3
|
||||
vite: 5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vite: 5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@@ -7018,11 +7027,11 @@ snapshots:
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite@5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0):
|
||||
vite@5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.49
|
||||
rollup: 4.50.2
|
||||
rollup: 4.53.3
|
||||
optionalDependencies:
|
||||
'@types/node': 22.10.5
|
||||
fsevents: 2.3.3
|
||||
@@ -7033,7 +7042,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/chai': 5.2.2
|
||||
'@vitest/expect': 3.2.2
|
||||
'@vitest/mocker': 3.2.2(vite@5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))
|
||||
'@vitest/mocker': 3.2.2(vite@5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0))
|
||||
'@vitest/pretty-format': 3.2.2
|
||||
'@vitest/runner': 3.2.2
|
||||
'@vitest/snapshot': 3.2.2
|
||||
@@ -7051,7 +7060,7 @@ snapshots:
|
||||
tinyglobby: 0.2.14
|
||||
tinypool: 1.1.0
|
||||
tinyrainbow: 2.0.0
|
||||
vite: 5.4.20(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vite: 5.4.21(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
vite-node: 3.2.2(@types/node@22.10.5)(sass@1.83.1)(stylus@0.57.0)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
table {
|
||||
width: 100% !important;
|
||||
table-layout: fixed !important;
|
||||
table-layout: auto !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -68,23 +68,41 @@
|
||||
>
|
||||
<LinkIcon size="14" />
|
||||
</Button>
|
||||
<div v-if="showLinkInput" class="flex space-x-2 p-2 bg-background border rounded">
|
||||
<Input
|
||||
v-model="linkUrl"
|
||||
type="text"
|
||||
placeholder="Enter link URL"
|
||||
class="border p-1 text-sm w-[200px]"
|
||||
/>
|
||||
<Button size="sm" @click="setLink">
|
||||
<Check size="14" />
|
||||
</Button>
|
||||
<Button size="sm" @click="unsetLink">
|
||||
<X size="14" />
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</BubbleMenu>
|
||||
<EditorContent :editor="editor" class="native-html" />
|
||||
|
||||
<Dialog v-model:open="showLinkDialog">
|
||||
<DialogContent class="sm:max-w-[425px]">
|
||||
<DialogHeader>
|
||||
<DialogTitle>
|
||||
{{ editor?.isActive('link')
|
||||
? $t('globals.messages.edit', { name: $t('globals.terms.link', 1).toLowerCase() + ' ' + $t('globals.terms.url', 1).toLowerCase() })
|
||||
: $t('globals.messages.add', { name: $t('globals.terms.link', 1).toLowerCase() + ' ' + $t('globals.terms.url', 1).toLowerCase() })
|
||||
}}
|
||||
</DialogTitle>
|
||||
<DialogDescription></DialogDescription>
|
||||
</DialogHeader>
|
||||
<form @submit.stop.prevent="setLink">
|
||||
<div class="grid gap-4 py-4">
|
||||
<Input
|
||||
v-model="linkUrl"
|
||||
type="text"
|
||||
:placeholder="$t('globals.messages.enter', { name: $t('globals.terms.url', 1) })"
|
||||
@keydown.enter.prevent="setLink"
|
||||
/>
|
||||
</div>
|
||||
<DialogFooter>
|
||||
<Button type="button" variant="outline" @click="unsetLink" v-if="editor?.isActive('link')">
|
||||
{{ $t('globals.messages.remove', { name: $t('globals.terms.link', 1) }) }}
|
||||
</Button>
|
||||
<Button type="submit">
|
||||
{{ $t('globals.messages.save') }}
|
||||
</Button>
|
||||
</DialogFooter>
|
||||
</form>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -99,8 +117,6 @@ import {
|
||||
List,
|
||||
ListOrdered,
|
||||
Link as LinkIcon,
|
||||
Check,
|
||||
X
|
||||
} from 'lucide-vue-next'
|
||||
import { Button } from '@/components/ui/button'
|
||||
import {
|
||||
@@ -110,6 +126,14 @@ import {
|
||||
DropdownMenuTrigger
|
||||
} from '@/components/ui/dropdown-menu'
|
||||
import { Input } from '@/components/ui/input'
|
||||
import {
|
||||
Dialog,
|
||||
DialogContent,
|
||||
DialogFooter,
|
||||
DialogHeader,
|
||||
DialogTitle,
|
||||
DialogDescription
|
||||
} from '@/components/ui/dialog'
|
||||
import Placeholder from '@tiptap/extension-placeholder'
|
||||
import Image from '@tiptap/extension-image'
|
||||
import StarterKit from '@tiptap/starter-kit'
|
||||
@@ -121,7 +145,7 @@ import TableHeader from '@tiptap/extension-table-header'
|
||||
|
||||
const textContent = defineModel('textContent', { default: '' })
|
||||
const htmlContent = defineModel('htmlContent', { default: '' })
|
||||
const showLinkInput = ref(false)
|
||||
const showLinkDialog = ref(false)
|
||||
const linkUrl = ref('')
|
||||
|
||||
const props = defineProps({
|
||||
@@ -149,7 +173,8 @@ const CustomTable = Table.extend({
|
||||
...this.parent?.(),
|
||||
style: {
|
||||
parseHTML: (element) =>
|
||||
(element.getAttribute('style') || '') + '; border: 1px solid #dee2e6 !important; width: 100%; margin:0; table-layout: fixed; border-collapse: collapse; position:relative; border-radius: 0.25rem;'
|
||||
(element.getAttribute('style') || '') +
|
||||
'; border: 1px solid #dee2e6 !important; width: 100%; margin:0; table-layout: fixed; border-collapse: collapse; position:relative; border-radius: 0.25rem;'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -199,11 +224,10 @@ const editor = useEditor({
|
||||
editorProps: {
|
||||
attributes: { class: 'outline-none' },
|
||||
handleKeyDown: (view, event) => {
|
||||
|
||||
if (event.ctrlKey && event.key.toLowerCase() === 'b') {
|
||||
event.stopPropagation();
|
||||
return false;
|
||||
}
|
||||
event.stopPropagation()
|
||||
return false
|
||||
}
|
||||
if (event.ctrlKey && event.key === 'Enter') {
|
||||
emit('send')
|
||||
return true
|
||||
@@ -249,19 +273,19 @@ const openLinkModal = () => {
|
||||
} else {
|
||||
linkUrl.value = ''
|
||||
}
|
||||
showLinkInput.value = true
|
||||
showLinkDialog.value = true
|
||||
}
|
||||
|
||||
const setLink = () => {
|
||||
if (linkUrl.value) {
|
||||
editor.value?.chain().focus().extendMarkRange('link').setLink({ href: linkUrl.value }).run()
|
||||
}
|
||||
showLinkInput.value = false
|
||||
showLinkDialog.value = false
|
||||
}
|
||||
|
||||
const unsetLink = () => {
|
||||
editor.value?.chain().focus().unsetLink().run()
|
||||
showLinkInput.value = false
|
||||
showLinkDialog.value = false
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
<!-- Note content -->
|
||||
<CardContent class="pt-4 pb-5">
|
||||
<p class="whitespace-pre-wrap text-sm leading-relaxed" v-dompurify-html="note.note"></p>
|
||||
<p class="whitespace-pre-wrap text-sm native-html" v-dompurify-html="note.note"></p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
|
||||
@@ -29,7 +29,11 @@
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
<div v-else></div>
|
||||
<div v-else>
|
||||
<Button variant="ghost" class="w-30">
|
||||
<span>{{ conversationStore.conversations.total }}</span>
|
||||
</Button>
|
||||
</div>
|
||||
|
||||
<!-- Sort dropdown-menu -->
|
||||
<DropdownMenu>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="flex justify-center mb-6">
|
||||
<a
|
||||
href="https://libredesk.io/"
|
||||
class="text-sm text-center text-muted-foreground"
|
||||
class="text-xs text-center text-muted-foreground"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
|
||||
@@ -438,7 +438,8 @@ export const useConversationStore = defineStore('conversation', () => {
|
||||
page: page,
|
||||
page_size: CONV_LIST_PAGE_SIZE,
|
||||
order_by: sortFieldMap[conversations.sortField].model + "." + sortFieldMap[conversations.sortField].field,
|
||||
order: sortFieldMap[conversations.sortField].order
|
||||
order: sortFieldMap[conversations.sortField].order,
|
||||
filters
|
||||
})
|
||||
case CONVERSATION_LIST_TYPE.VIEW:
|
||||
return await api.getViewConversations(viewID, {
|
||||
|
||||
@@ -34,6 +34,7 @@ export const useUserStore = defineStore('user', () => {
|
||||
const getFullName = computed(() => {
|
||||
const first = user.value.first_name ?? ''
|
||||
const last = user.value.last_name ?? ''
|
||||
if (!last) return first
|
||||
return `${first} ${last}`.trim()
|
||||
})
|
||||
|
||||
|
||||
@@ -185,7 +185,12 @@ const fetchOIDCProviders = async () => {
|
||||
}
|
||||
|
||||
const redirectToOIDC = (provider) => {
|
||||
window.location.href = `/api/v1/oidc/${provider.id}/login`
|
||||
// Pass the 'next' parameter to OIDC login if it exists
|
||||
const nextParam = router.currentRoute.value.query.next
|
||||
const url = nextParam
|
||||
? `/api/v1/oidc/${provider.id}/login?next=${encodeURIComponent(nextParam)}`
|
||||
: `/api/v1/oidc/${provider.id}/login`
|
||||
window.location.href = url
|
||||
}
|
||||
|
||||
const validateForm = () => {
|
||||
@@ -221,8 +226,14 @@ const loginAction = () => {
|
||||
}
|
||||
// Also fetch general setting as user's logged in.
|
||||
appSettingsStore.fetchSettings('general')
|
||||
// Navigate to inboxes
|
||||
router.push({ name: 'inboxes' })
|
||||
|
||||
// Redirect to the 'next' parameter if it exists
|
||||
const nextParam = router.currentRoute.value.query.next
|
||||
if (nextParam) {
|
||||
router.push(nextParam)
|
||||
} else {
|
||||
router.push({ name: 'inboxes' })
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
errorMessage.value = handleHTTPError(error).message
|
||||
|
||||
@@ -37,8 +37,8 @@ require (
|
||||
github.com/zerodha/logf v0.5.5
|
||||
github.com/zerodha/simplesessions/stores/redis/v3 v3.0.0
|
||||
github.com/zerodha/simplesessions/v3 v3.0.0
|
||||
golang.org/x/crypto v0.38.0
|
||||
golang.org/x/mod v0.17.0
|
||||
golang.org/x/crypto v0.45.0
|
||||
golang.org/x/mod v0.29.0
|
||||
golang.org/x/oauth2 v0.27.0
|
||||
)
|
||||
|
||||
@@ -73,8 +73,8 @@ require (
|
||||
github.com/stretchr/objx v0.5.2 // indirect
|
||||
github.com/valyala/bytebufferpool v1.0.0 // indirect
|
||||
golang.org/x/image v0.18.0 // indirect
|
||||
golang.org/x/net v0.40.0 // indirect
|
||||
golang.org/x/sys v0.33.0 // indirect
|
||||
golang.org/x/text v0.25.0 // indirect
|
||||
golang.org/x/net v0.47.0 // indirect
|
||||
golang.org/x/sys v0.38.0 // indirect
|
||||
golang.org/x/text v0.31.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
@@ -140,8 +140,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/redis/go-redis/v9 v9.5.5 h1:51VEyMF8eOO+NUHFm8fpg+IOc1xFuFOhxs3R+kPu1FM=
|
||||
github.com/redis/go-redis/v9 v9.5.5/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
|
||||
github.com/rhnvrm/simples3 v0.9.1 h1:pYfEe2wTjx8B2zFzUdy4kZn3I3Otd9ZvzIhHkFR85kE=
|
||||
github.com/rhnvrm/simples3 v0.9.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA=
|
||||
github.com/rhnvrm/simples3 v0.9.2 h1:XrwsiMnwWf7t/kskvhMYXW6keqp5u3u6t5Va3ltzCQI=
|
||||
github.com/rhnvrm/simples3 v0.9.2/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
@@ -192,15 +190,15 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
|
||||
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
|
||||
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
|
||||
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
|
||||
golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
|
||||
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
|
||||
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
|
||||
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
@@ -211,8 +209,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx
|
||||
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
|
||||
golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
|
||||
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
|
||||
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
|
||||
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
|
||||
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@@ -229,8 +227,8 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
|
||||
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
|
||||
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
@@ -241,8 +239,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
|
||||
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
|
||||
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
|
||||
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
|
||||
@@ -153,6 +153,9 @@ type ConversationContact struct {
|
||||
}
|
||||
|
||||
func (c *ConversationContact) FullName() string {
|
||||
if c.LastName == "" {
|
||||
return c.FirstName
|
||||
}
|
||||
return c.FirstName + " " + c.LastName
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user