Browse Source

fix: port exposed

feat: fusion of ring and trinket column on bis list
feat: optimize columns display in table
feat: startingDateRaid for config display and management
master
sebastien.cassan@geomod.fr 1 year ago
parent
commit
3fbdf5e74d
  1. 2
      Dockerfile
  2. 4
      nginx.conf
  3. 178
      package-lock.json
  4. 96
      src/components/BisList.vue
  5. 37
      src/components/RosterList.vue

2
Dockerfile

@ -18,6 +18,6 @@ RUN chmod +x /docker-entrypoint.sh
COPY nginx.conf /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 3020 EXPOSE 3200
ENTRYPOINT "/docker-entrypoint.sh" ENTRYPOINT "/docker-entrypoint.sh"

4
nginx.conf

@ -4,8 +4,8 @@ gzip_types text/plain text/css application/json application/javascript text/xml
server { server {
listen 3020; listen 3200;
listen [::]:3020; listen [::]:3200;
root /usr/share/nginx/html; root /usr/share/nginx/html;

178
package-lock.json generated

@ -409,9 +409,9 @@
"dev": true "dev": true
}, },
"node_modules/@rollup/rollup-android-arm-eabi": { "node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz",
"integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -422,9 +422,9 @@
] ]
}, },
"node_modules/@rollup/rollup-android-arm64": { "node_modules/@rollup/rollup-android-arm64": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz",
"integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -435,9 +435,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-arm64": { "node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz",
"integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -448,9 +448,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-x64": { "node_modules/@rollup/rollup-darwin-x64": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz",
"integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -461,9 +461,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": { "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz",
"integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -474,9 +474,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-musleabihf": { "node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz",
"integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@ -487,9 +487,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-gnu": { "node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz",
"integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -500,9 +500,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-musl": { "node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz",
"integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -513,9 +513,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": { "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz",
"integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@ -526,9 +526,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-gnu": { "node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz",
"integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@ -539,9 +539,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-s390x-gnu": { "node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz",
"integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@ -552,9 +552,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-gnu": { "node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz",
"integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -565,9 +565,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-musl": { "node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz",
"integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -578,9 +578,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-arm64-msvc": { "node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz",
"integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@ -591,9 +591,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-ia32-msvc": { "node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz",
"integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@ -604,9 +604,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-msvc": { "node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz",
"integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@ -617,9 +617,9 @@
] ]
}, },
"node_modules/@types/estree": { "node_modules/@types/estree": {
"version": "1.0.5", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
"dev": true "dev": true
}, },
"node_modules/@vitejs/plugin-vue": { "node_modules/@vitejs/plugin-vue": {
@ -833,14 +833,14 @@
} }
}, },
"node_modules/picocolors": { "node_modules/picocolors": {
"version": "1.0.1", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
"integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw=="
}, },
"node_modules/postcss": { "node_modules/postcss": {
"version": "8.4.39", "version": "8.4.47",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
"integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
"funding": [ "funding": [
{ {
"type": "opencollective", "type": "opencollective",
@ -857,20 +857,20 @@
], ],
"dependencies": { "dependencies": {
"nanoid": "^3.3.7", "nanoid": "^3.3.7",
"picocolors": "^1.0.1", "picocolors": "^1.1.0",
"source-map-js": "^1.2.0" "source-map-js": "^1.2.1"
}, },
"engines": { "engines": {
"node": "^10 || ^12 || >=14" "node": "^10 || ^12 || >=14"
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "4.18.1", "version": "4.24.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz",
"integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/estree": "1.0.5" "@types/estree": "1.0.6"
}, },
"bin": { "bin": {
"rollup": "dist/bin/rollup" "rollup": "dist/bin/rollup"
@ -880,42 +880,42 @@
"npm": ">=8.0.0" "npm": ">=8.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.18.1", "@rollup/rollup-android-arm-eabi": "4.24.0",
"@rollup/rollup-android-arm64": "4.18.1", "@rollup/rollup-android-arm64": "4.24.0",
"@rollup/rollup-darwin-arm64": "4.18.1", "@rollup/rollup-darwin-arm64": "4.24.0",
"@rollup/rollup-darwin-x64": "4.18.1", "@rollup/rollup-darwin-x64": "4.24.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.18.1", "@rollup/rollup-linux-arm-gnueabihf": "4.24.0",
"@rollup/rollup-linux-arm-musleabihf": "4.18.1", "@rollup/rollup-linux-arm-musleabihf": "4.24.0",
"@rollup/rollup-linux-arm64-gnu": "4.18.1", "@rollup/rollup-linux-arm64-gnu": "4.24.0",
"@rollup/rollup-linux-arm64-musl": "4.18.1", "@rollup/rollup-linux-arm64-musl": "4.24.0",
"@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0",
"@rollup/rollup-linux-riscv64-gnu": "4.18.1", "@rollup/rollup-linux-riscv64-gnu": "4.24.0",
"@rollup/rollup-linux-s390x-gnu": "4.18.1", "@rollup/rollup-linux-s390x-gnu": "4.24.0",
"@rollup/rollup-linux-x64-gnu": "4.18.1", "@rollup/rollup-linux-x64-gnu": "4.24.0",
"@rollup/rollup-linux-x64-musl": "4.18.1", "@rollup/rollup-linux-x64-musl": "4.24.0",
"@rollup/rollup-win32-arm64-msvc": "4.18.1", "@rollup/rollup-win32-arm64-msvc": "4.24.0",
"@rollup/rollup-win32-ia32-msvc": "4.18.1", "@rollup/rollup-win32-ia32-msvc": "4.24.0",
"@rollup/rollup-win32-x64-msvc": "4.18.1", "@rollup/rollup-win32-x64-msvc": "4.24.0",
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/source-map-js": { "node_modules/source-map-js": {
"version": "1.2.0", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "5.3.4", "version": "5.4.8",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
"integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"esbuild": "^0.21.3", "esbuild": "^0.21.3",
"postcss": "^8.4.39", "postcss": "^8.4.43",
"rollup": "^4.13.0" "rollup": "^4.20.0"
}, },
"bin": { "bin": {
"vite": "bin/vite.js" "vite": "bin/vite.js"
@ -934,6 +934,7 @@
"less": "*", "less": "*",
"lightningcss": "^1.21.0", "lightningcss": "^1.21.0",
"sass": "*", "sass": "*",
"sass-embedded": "*",
"stylus": "*", "stylus": "*",
"sugarss": "*", "sugarss": "*",
"terser": "^5.4.0" "terser": "^5.4.0"
@ -951,6 +952,9 @@
"sass": { "sass": {
"optional": true "optional": true
}, },
"sass-embedded": {
"optional": true
},
"stylus": { "stylus": {
"optional": true "optional": true
}, },

96
src/components/BisList.vue

@ -7,6 +7,8 @@ const itemsPerPage = ref(40)
const bisList = reactive([]) const bisList = reactive([])
const selected = ref([]) const selected = ref([])
const slotList = ref(['tete', 'cou', 'epaules', 'dos', 'torse', 'poignets', 'mains', 'taille', 'jambes', 'pied', 'doigt', 'bijou', 'arme', 'mainGauche', 'relique'])
const headers = [ const headers = [
{ value: 'name', title: 'Membre', sortable: true }, { value: 'name', title: 'Membre', sortable: true },
{ key: 'tete', value: 'data.tete', title: 'Tête', align: 'center' }, { key: 'tete', value: 'data.tete', title: 'Tête', align: 'center' },
@ -19,15 +21,13 @@ const headers = [
{ key: 'taille', value: 'data.taille', title: 'Taille', align: 'center' }, { key: 'taille', value: 'data.taille', title: 'Taille', align: 'center' },
{ key: 'jambes', value: 'data.jambes', title: 'Jambes', align: 'center' }, { key: 'jambes', value: 'data.jambes', title: 'Jambes', align: 'center' },
{ key: 'pied', value: 'data.pied', title: 'Pieds', align: 'center' }, { key: 'pied', value: 'data.pied', title: 'Pieds', align: 'center' },
{ key: 'doigt1', value: 'data.doigt1', title: 'Doigt 1', align: 'center' }, { key: 'doigt', value: 'data.doigt', title: 'Doigts', align: 'center' },
{ key: 'doigt2', value: 'data.doigt2', title: 'Doigt 2', align: 'center' }, { key: 'bijou', value: 'data.bijou', title: 'Bijoux', align: 'center' },
{ key: 'bijou1', value: 'data.bijou1', title: 'Bijou 1', align: 'center' },
{ key: 'bijou2', value: 'data.bijou2', title: 'Bijou 2', align: 'center' },
{ key: 'arme', value: 'data.arme', title: 'Arme', align: 'center' }, { key: 'arme', value: 'data.arme', title: 'Arme', align: 'center' },
{ key: 'mainGauche', value: 'data.mainGauche', title: 'Main Gauche', align: 'center' }, { key: 'mainGauche', value: 'data.mainGauche', title: 'Main Gauche', align: 'center' },
{ key: 'relique', value: 'data.relique', title: 'Relique / Distance', align: 'center' }, { key: 'relique', value: 'data.relique', title: 'Relique / Dist', align: 'center' },
{ value: 'totalBIS', title: 'Total BIS', align: 'center', sortable: true }, { value: 'totalBIS', title: 'Total BIS', sortable: true, align: 'center' },
{ value: 'tokenHM', title: 'Tokens HM', align: 'center', sortable: true } { value: 'tokenHM', title: 'Tokens HM', sortable: true, align: 'center' }
] ]
onMounted(async () => { onMounted(async () => {
@ -52,87 +52,7 @@ const colorRowItem = (row) => {
<template #item.name="{ item }"> <template #item.name="{ item }">
<span :class="`color-${item.classe}`">{{ item.name }}</span> <span :class="`color-${item.classe}`">{{ item.name }}</span>
</template> </template>
<template #item.tete="{ value }"> <template v-for="slot of slotList" #[`item.${slot}`]="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.cou="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.epaules="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.dos="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.torse="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.poignets="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.mains="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.taille="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.jambes="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.pied="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.doigt1="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.doigt2="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.bijou1="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.bijou2="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.arme="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.mainGauche="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span>
</template>
<template #item.relique="{ value }">
<v-icon v-if="value === 0" icon="mdi-close" color="error" /> <v-icon v-if="value === 0" icon="mdi-close" color="error" />
<v-icon v-else icon="mdi-check" color="success" /> <v-icon v-else icon="mdi-check" color="success" />
<span v-if="value > 1">{{ value }}</span> <span v-if="value > 1">{{ value }}</span>

37
src/components/RosterList.vue

@ -1,6 +1,7 @@
<script setup> <script setup>
import { ref, reactive, computed, onMounted } from 'vue' import { ref, reactive, computed, onMounted } from 'vue'
import { httpRequest } from '@/plugins/httpRequest.js' import { httpRequest } from '@/plugins/httpRequest.js'
import { DateTime } from 'luxon';
const itemsPerPage = ref(40) const itemsPerPage = ref(40)
const addMemberDialog = ref(false) const addMemberDialog = ref(false)
@ -16,9 +17,13 @@ const errorMessageRole = ref('')
const formValid = ref(true) const formValid = ref(true)
const errorMessage = ref('') const errorMessage = ref('')
const config = ref('')
const itemToDelete = ref(null) const itemToDelete = ref(null)
const deleteMemberDialog = ref(false) const deleteMemberDialog = ref(false)
const startingDateRaid = ref('')
const classList = [ const classList = [
{ title: 'Chaman', value: 'SHAMAN' }, { title: 'Chaman', value: 'SHAMAN' },
{ title: 'Chasseur', value: 'HUNTER' }, { title: 'Chasseur', value: 'HUNTER' },
@ -68,6 +73,7 @@ const headers = [
] ]
onMounted(async () => { onMounted(async () => {
if (isLogged.value) await getConfig()
await getRoster() await getRoster()
}) })
@ -77,6 +83,13 @@ const getRoster = async () => {
rosterList.push(...result.rosters) rosterList.push(...result.rosters)
} }
const getConfig = async () => {
config.value = ''
const result = await httpRequest('/config', { method: 'GET' }, true, true )
config.value = result.config
startingDateRaid.value = DateTime.fromMillis(config.value.startingDateRaid).toFormat('yyyy-MM-dd')
}
const formatClasseName = (classe) => { const formatClasseName = (classe) => {
const item = classList.find(c => c.value === classe) const item = classList.find(c => c.value === classe)
if (item) return item.title if (item) return item.title
@ -161,6 +174,26 @@ const submitDeleteMember = async () => {
} }
} }
} }
const saveRaidDate = async () => {
const newDate = DateTime.fromFormat(startingDateRaid.value, 'yyyy-MM-dd').toMillis()
if (newDate !== config.value.startingDateRaid) {
const body = {
id: config.value.id,
startingDateRaid: newDate
}
try {
const result = await httpRequest( '/config', { method: 'POST', body }, true, true)
if (result.success) {
await getConfig()
} else {
console.error('Une erreur est survenue')
}
} catch (e) {
console.error(e)
}
}
}
</script> </script>
<template> <template>
@ -168,6 +201,10 @@ const submitDeleteMember = async () => {
<v-data-table class="datatable-height" :headers="headers" :items="rosterList" :items-per-page="itemsPerPage" density="compact"> <v-data-table class="datatable-height" :headers="headers" :items="rosterList" :items-per-page="itemsPerPage" density="compact">
<template v-if="isLogged" #top> <template v-if="isLogged" #top>
<v-toolbar flat> <v-toolbar flat>
<div class="d-inline-flex pl-3 pt-5 gc-4">
<v-text-field variant="outlined" density="compact" v-model="startingDateRaid" label="Date début du raid" type="date" />
<v-btn icon="mdi-content-save-outline" variant="outlined" color="primary" @click="saveRaidDate" />
</div>
<v-spacer /> <v-spacer />
<v-btn class="mr-5" prepend-icon="mdi-plus-circle" variant="outlined" color="primary" text="Ajouter" @click="addMember" /> <v-btn class="mr-5" prepend-icon="mdi-plus-circle" variant="outlined" color="primary" text="Ajouter" @click="addMember" />
</v-toolbar> </v-toolbar>

Loading…
Cancel
Save