73 Commits

Author SHA1 Message Date
Samuele Locatelli 75c0ea10bf Update conf x email 2025-04-30 09:21:46 +02:00
Samuele Locatelli a1a4a12fe5 Merge tag 'FixUserConnString_01' into develop
Fix stringhe connessione DB
2024-08-19 10:15:25 +02:00
Samuele Locatelli 70f70fc5ba Merge branch 'release/FixUserConnString_01' 2024-08-19 10:15:15 +02:00
Samuele Locatelli f5225b2a14 Update stringhe di conneessione 2024-08-19 10:14:36 +02:00
Samuele Locatelli e6b5de5ceb Pulizia file inutilizzati (jenkins) 2024-08-19 10:13:23 +02:00
Samuele Locatelli b52de35e41 refresh grafico 2024-08-05 19:30:54 +02:00
Samuele Locatelli 2aeda792cd Merge tag 'FixCloneGroupAssign01' into develop
Clone group assign completata
2024-06-24 19:41:01 +02:00
Samuele Locatelli f719bdb22a Merge branch 'release/FixCloneGroupAssign01' 2024-06-24 19:40:46 +02:00
Samuele Locatelli b679d8da4e Aggiunto cloning gruppi dipendenti 2024-06-24 19:40:21 +02:00
Samuele Locatelli 1b84a2e325 Merge tag 'FixToggleCore01' into develop
Fix preselezione toggle Core x smart device
2024-06-24 14:45:34 +02:00
Samuele Locatelli 5cdae01434 Merge branch 'release/FixToggleCore01' 2024-06-24 14:44:49 +02:00
Samuele Locatelli c803ccf1a6 Fix checkCore: di default mostra quello x SMART 2024-06-24 14:44:23 +02:00
Samuele Locatelli 3f1aa9e26d Merge tag 'FixIdxRespDroDown01' into develop
Fix nome dl x recupero dropdown del resp utente
2024-06-24 11:23:58 +02:00
Samuele Locatelli 9588d09046 Merge branch 'release/FixIdxRespDroDown01' 2024-06-24 11:23:41 +02:00
Samuele Locatelli 811586ce48 Fix gedstione inserimento nuovo dip: codice idxResp non mappato correttamente 2024-06-24 11:23:15 +02:00
Samuele Locatelli 102bd0cf3e Merge tag 'AddIdxResp02' into develop
Aggiunta gestione invio email al resp su eventi approvazione
permessi/ferie
2024-06-14 19:01:42 +02:00
Samuele Locatelli 2ca7525781 Merge branch 'release/AddIdxResp02' 2024-06-14 19:01:28 +02:00
Samuele Locatelli 7034fdcf03 Fix invio email al resp su modifiche task 2024-06-14 19:01:15 +02:00
Samuele Locatelli b39352f373 Merge tag 'AddIdxResp01' into develop
Add gestione resp gerarchico x permessi
2024-06-14 18:24:36 +02:00
Samuele Locatelli 8c5a07de6f Merge branch 'release/AddIdxResp01' 2024-06-14 18:23:14 +02:00
Samuele Locatelli b7257ab43b Aggiunta gestione campo responsabile x gestione email notifica richieste permessi 2024-06-14 18:09:54 +02:00
Samuele Locatelli ccff088508 Merge tag 'FixRicalcoloGiustMissing01' into develop
Fix ricalcolo giustificativi missing
2024-04-15 12:19:23 +02:00
Samuele Locatelli e823b58a3e Merge branch 'release/FixRicalcoloGiustMissing01' 2024-04-15 12:19:16 +02:00
Samuele Locatelli b3d0a2bcb2 Fix ricalcolo giustificativi mancanti 2024-04-15 12:18:41 +02:00
Samuele Locatelli 33d5afd4e3 Merge tag 'AddMassApproveTimbr' into develop
Aggiunta approvazione massiva timb
2024-03-25 18:54:50 +01:00
Samuele Locatelli 18eadfd8f2 Merge branch 'release/AddMassApproveTimbr' 2024-03-25 18:52:55 +01:00
Samuele Locatelli 2af2e1edaf Aggiunto mass editing approvazione timb 2024-03-25 18:51:00 +01:00
Samuele Locatelli bbc477cf6c Merge tag 'FixDdlClass' into develop
Fix display dropdown list class
2024-03-21 10:56:34 +01:00
Samuele Locatelli f01359fbd9 Merge branch 'release/FixDdlClass' 2024-03-21 10:56:24 +01:00
Samuele Locatelli 2e0281fd56 Fix grafico ddlist 2024-03-21 10:55:54 +01:00
Samuele Locatelli f7597762bb Merge tag 'AddEditAnagFase' into develop
Aggiunto editing tag anag fasi
2024-03-21 09:52:54 +01:00
Samuele Locatelli cc4593912f Merge branch 'release/AddEditAnagFase' 2024-03-21 09:52:34 +01:00
Samuele Locatelli be2e967ba9 Update x gestione editing tagFasi 2024-03-21 09:52:12 +01:00
Samuele Locatelli 28fdde2955 Merge tag 'AddTagFasi01' into develop
Aggiunta preliminare gestione tagFasi
2024-03-20 19:17:47 +01:00
Samuele Locatelli 805cb3321e Merge branch 'release/AddTagFasi01' 2024-03-20 19:17:24 +01:00
Samuele Locatelli b0c8c5ddda Completo aggiunta gestione AnagTagFasi 2024-03-20 19:17:01 +01:00
Samuele Locatelli 26304ba711 Continuo fix AnagTagFasi 2024-03-20 18:55:57 +01:00
Samuele Locatelli bf3969cf5e Fix iniziale DB x SQL2019 + add AnagFasi (DS) 2024-03-20 17:44:54 +01:00
Samuele Locatelli 8a0f0aee3e Merge tag 'UpdateRedisSentinel02' into develop
Fix trasfprmazione web.config
2024-03-18 15:38:47 +01:00
Samuele Locatelli 1fa79e396c Merge branch 'release/UpdateRedisSentinel02' 2024-03-18 15:34:54 +01:00
Samuele Locatelli 17d5431e93 COmpleto update gestione redis devel/prod x GPW classic 2024-03-18 15:34:38 +01:00
Samuele Locatelli fa42649374 Merge tag 'UpdateRedisSentinel01' into develop
Update x impiego redis sentinel
2024-03-18 11:45:14 +01:00
Samuele Locatelli 03e7c78b97 Merge branch 'release/UpdateRedisSentinel01' 2024-03-18 11:44:33 +01:00
Samuele Locatelli 56d92e929c redisUpdate conf redis x sentinel 2024-03-18 11:44:08 +01:00
Samuele Locatelli b8edad32b2 Merge tag 'UpdateNuget01' into develop
Completo i vari udpate nuget...
2024-03-01 14:22:11 +01:00
Samuele Locatelli 868c51b18d Merge branch 'release/UpdateNuget01' 2024-03-01 14:22:02 +01:00
Samuele Locatelli b954b39cbf Update nuget totale 2024-03-01 14:21:50 +01:00
Samuele Locatelli 3687de3f94 Completata review ADMIn e COmmesse 2024-03-01 11:30:29 +01:00
Samuele Locatelli 4f1e7da206 fix elmah removal BCode 2024-03-01 11:18:15 +01:00
Samuele Locatelli d8a646dbf9 Cleanup and update BARCODE 2024-03-01 11:17:15 +01:00
Samuele Locatelli 8e8fabaea9 Fix build x SMART e Barcode 2024-03-01 10:49:40 +01:00
Samuele Locatelli ca0466f30a fIX smart & cOMMESSE 2024-03-01 10:48:08 +01:00
Samuele Locatelli 41690f4609 Cleanup + update nuget globali 2024-03-01 09:20:00 +01:00
Samuele Locatelli 97e28dcced SMART
- refresh con HOME su IIS01
- fix jqueryUI 1.13.2
2024-02-29 16:57:24 +01:00
Samuele Locatelli f7979137e9 Ancora refresh smart 2024-02-29 16:55:52 +01:00
Samuele Locatelli f10132ee7f FIX GPW Smart x versione 4.8.0 2024-02-29 16:55:45 +01:00
Samuele Locatelli 2589eaad34 Refresh vari 2024-02-29 15:57:51 +01:00
Samuele Locatelli 8b9b080912 HOME
- fix bootstrap
- fix 4.8.0
2024-02-29 15:57:47 +01:00
Samuele Locatelli c3bc2d1cea Commesse
Fix bootstrap5
2024-02-29 15:57:33 +01:00
Samuele Locatelli f35d3c8815 refresh nuget vari 2024-02-29 15:03:24 +01:00
Samuele Locatelli c82907fadb Update smart x versione Bootstrap5 2024-02-29 15:03:16 +01:00
Samuele Locatelli 737dba03ff Update + consolidamento nuget vari 2024-02-28 18:38:10 +01:00
Samuele Locatelli 9995a3ad8f Fix preliminare bootstrap 8da testare...) 2024-02-28 18:29:23 +01:00
Samuele Locatelli c8252a34e0 Fix restsharp 2024-02-28 18:22:42 +01:00
Samuele Locatelli 88cf7b12ff fix nuget AWS token 2024-02-28 18:20:46 +01:00
Samuele Locatelli 69d0e792e8 update ref nuget libmongocrypt 2024-02-28 18:18:10 +01:00
Samuele Locatelli 2e72037508 Agglinta Microsoft.Extensions.Logging.Abstractions x tutti 2024-02-28 18:15:44 +01:00
Samuele Locatelli f225c2105a Aggiunto logging x ADM 2024-02-28 18:14:20 +01:00
Samuele Locatelli 9bf679dda9 test deploy con VS2022 al posto di 2019 2024-02-28 18:12:38 +01:00
Samuele Locatelli d7e163a851 ADM:
- update bootstrap
- update script
- update nuget vari
2024-02-28 18:05:48 +01:00
Samuele Locatelli 3f79a2cca4 Merge tag 'FixAdmB5_01' into develop
Update x classi Bootstrap5 x ADM
2024-02-28 17:18:21 +01:00
Samuele Locatelli ceec3427ec Merge branch 'release/FixAdmB5_01' 2024-02-28 17:17:59 +01:00
Samuele Locatelli 792933bfa3 Fix allineamento progetti GPW/ADM 2024-02-28 17:17:16 +01:00
500 changed files with 242380 additions and 103233 deletions
+2 -1
View File
@@ -1,6 +1,7 @@
variables: variables:
NUGET_PATH: 'C:\Tools\nuget.exe' NUGET_PATH: 'C:\Tools\nuget.exe'
MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe' # MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\MSBuild.exe'
MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe'
ASPNET_MERGE_PATH: 'C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools' ASPNET_MERGE_PATH: 'C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools'
EXE_RELEASE_FOLDER: 'c:\Projetcs\Compiled\GPW\Release' EXE_RELEASE_FOLDER: 'c:\Projetcs\Compiled\GPW\Release'
DEPLOY_FOLDER: 'c:\Projects\Deploy\GPW\Builds' DEPLOY_FOLDER: 'c:\Projects\Deploy\GPW\Builds'
-325
View File
@@ -1,325 +0,0 @@
pipeline {
agent none
environment {
enableIIS02 = 'Y'
enableIIS03 = 'Y'
}
stages {
stage('Checkout') {
agent any
steps {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=4158']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.7.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.7.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'GPW'
}
}
script {
currentBuild.displayName = "${env.versionNumber}"
if (env.BRANCH_NAME == "master") {
currentBuild.description = "BUILD ${env.versionNumber}"
}
else {
currentBuild.description = "TEST ${env.versionNumber}"
}
}
/* CAMBIO numero versione in file sorgente!!! */
bat "e:\\fart.exe VersGen\\GPW.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
fixNuget("${WORKSPACE}\\GPW.sln")
}
}
stage('Build') {
agent any
steps {
parallel (
ALL: {
// ADM
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 GPW_Admin\\GPW_Admin.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
// BCODE
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 GPW_Barcode\\GPW_Barcode.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
// COMMESSE
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 GPW_Commesse\\GPW_Commesse.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
// HOME
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 HOME\\HOME.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
// SMART
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 GPW_Smart\\GPW_Smart.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
},
failFast: false)
}
}
stage('Test') {
steps {
echo 'Testing.. 2 be done...'
}
}
stage('Deploy') {
agent any
steps {
script {
if (env.BRANCH_NAME == "develop") {
/* CAMBIO numero versione in file sorgente!!! */
bat "e:\\fart.exe VersGen\\GPW.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
fixNuget("${WORKSPACE}\\GPW.sln")
parallel (
ALL: {
//ADMIN: {
// sleep 6
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS01 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Admin/GPW_Admin.csproj"
// },
// SMART: {
// sleep 4
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS01 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Smart/GPW_Smart.csproj"
// },
// COMM: {
// sleep 2
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS01 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Commesse/GPW_Commesse.csproj"
// },
// BCODE: {
// sleep 1
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS01 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Barcode/GPW_Barcode.csproj"
// },
// HOME: {
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS01.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS01 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ HOME/HOME.csproj"
},
failFast: false)
}
else if (env.BRANCH_NAME == "master") {
/* CAMBIO numero versione in file sorgente!!! */
bat "e:\\fart.exe VersGen\\GPW.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
fixNuget("${WORKSPACE}\\GPW.sln")
parallel (
ALL: {
// ADMIN: {
if(env.enableIIS03 == "Y")
{
// sleep 4
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS03.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Admin/GPW_Admin.csproj"
}
if(env.enableIIS02 == "Y")
{
// sleep 4
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Admin/GPW_Admin.csproj"
}
// },
// BCODE: {
if(env.enableIIS02 == "Y")
{
// sleep 8
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Barcode/GPW_Barcode.csproj"
}
if(env.enableIIS03 == "Y")
{
// sleep 8
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS03.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Barcode/GPW_Barcode.csproj"
}
// },
// COMM: {
if(env.enableIIS03 == "Y")
{
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS03.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Commesse/GPW_Commesse.csproj"
}
if(env.enableIIS02 == "Y")
{
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Commesse/GPW_Commesse.csproj"
}
// },
// HOME: {
if(env.enableIIS02 == "Y")
{
// sleep 6
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ HOME/HOME.csproj"
}
if(env.enableIIS03 == "Y")
{
// sleep 6
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS03.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ HOME/HOME.csproj"
}
// },
// SMART: {
if(env.enableIIS02 == "Y")
{
// sleep 2
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS02.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Smart/GPW_Smart.csproj"
}
if(env.enableIIS03 == "Y")
{
// sleep 2
bat "\"${tool 'MSBuild-16.0'}\" \"/p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /p:DeployOnBuild=true /p:Targets=Publish /p:PublishProfile=IIS03.pubxml /p:RunCodeAnalysis=false /p:Configuration=IIS02 /p:username=jenkins /p:Password=viadante16 /p:AllowUntrustedCertificate=true /p:OutputPath=bin/ GPW_Smart/GPW_Smart.csproj"
}
},
failFast: false)
}
else {
echo 'Nothing to deploy...'
}
}
}
}
stage('Installers') {
agent any
steps {
script {
/* compilo installers in base al BRANCH del cliente... */
if (env.BRANCH_NAME == "SPS") {
/* CAMBIO numero versione in file sorgente!!! */
bat "e:\\fart.exe VersGen\\GPW.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
fixNuget("${WORKSPACE}\\GPW.sln")
parallel (
HOME: {
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=SPS /p:PublishProfile=SPS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/SPS_PROD/${env.versionNumber}/HOME.zip /p:DeployIisAppPath=\"Default Web Site/GPW/HOME\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ HOME/HOME.csproj"
/*echo 'Copia SPS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\HOME\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\SPS\\HOME\" "
},
ADMIN: {
sleep 1
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=SPS /p:PublishProfile=SPS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/SPS_PROD/${env.versionNumber}/GPW_Admin.zip /p:DeployIisAppPath=\"Default Web Site/GPW/ADMIN\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=SPS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Admin/GPW_Admin.csproj"
/*echo 'Copia SPS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Admin\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\SPS\\ADMIN\" "
},
BCODE: {
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=SPS /p:PublishProfile=SPS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/SPS_PROD/${env.versionNumber}/GPW_Barcode.zip /p:DeployIisAppPath=\"Default Web Site/GPW/BCODE\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=SPS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Barcode/GPW_Barcode.csproj"
/*echo 'Copia SPS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Barcode\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\SPS\\BCODE\" "
},
COMM: {
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=SPS /p:PublishProfile=SPS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/SPS_PROD/${env.versionNumber}/GPW_Commesse.zip /p:DeployIisAppPath=\"Default Web Site/GPW/WRKLG\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=SPS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Commesse/GPW_Commesse.csproj"
/*echo 'Copia SPS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Commesse\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\SPS\\COMM\" "
},
SMART: {
sleep 1
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=SPS /p:PublishProfile=SPS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/SPS_PROD/${env.versionNumber}/GPW_Smart.zip /p:DeployIisAppPath=\"Default Web Site/GPW/SMART\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=SPS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Smart/GPW_Smart.csproj"
/*echo 'Copia SPS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Smart\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\SPS\\SMART\" "
},
failFast: false)
}
else if (env.BRANCH_NAME == "ETS") {
/* CAMBIO numero versione in file sorgente!!! */
bat "e:\\fart.exe VersGen\\GPW.cs 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
parallel (
HOME: {
// sleep 4
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=ETS /p:PublishProfile=ETS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/ETS_PROD/${env.versionNumber}/HOME.zip /p:DeployIisAppPath=\"Default Web Site/GPW/HOME\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ HOME/HOME.csproj"
/*echo 'Copia ETS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\HOME\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\ETS\\HOME\" "
},
ADMIN: {
sleep 2
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=ETS /p:PublishProfile=ETS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/ETS_PROD/${env.versionNumber}/GPW_Admin.zip /p:DeployIisAppPath=\"Default Web Site/GPW/ADMIN\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=ETS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Admin/GPW_Admin.csproj"
/*echo 'Copia ETS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Admin\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\ETS\\ADMIN\" "
},
BCODE: {
// sleep 3
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=ETS /p:PublishProfile=ETS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/ETS_PROD/${env.versionNumber}/GPW_Barcode.zip /p:DeployIisAppPath=\"Default Web Site/GPW/BCODE\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=ETS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Barcode/GPW_Barcode.csproj"
/*echo 'Copia ETS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Barcode\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\ETS\\BCODE\" "
},
COMM: {
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=ETS /p:PublishProfile=ETS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/ETS_PROD/${env.versionNumber}/GPW_Commesse.zip /p:DeployIisAppPath=\"Default Web Site/GPW/WRKLG\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=ETS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Commesse/GPW_Commesse.csproj"
/*echo 'Copia ETS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Commesse\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\ETS\\COMM\" "
},
SMART: {
sleep 1
bat "\"${tool 'MSBuild-16.0'}\" /p:m=8 /p:AspnetMergePath=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.2 Tools\" /T:Package /P:Configuration=ETS /p:PublishProfile=ETS.pubxml /p:RunCodeAnalysis=false /p:PackageLocation=ReleaseClienti/ETS_PROD/${env.versionNumber}/GPW_Smart.zip /p:DeployIisAppPath=\"Default Web Site/GPW/SMART\" /p:PackageAsSingleFile=True /p:OutputPath=bin/ /p:TargetConnectionString=\"Data Source=W2012FS\\SQLEXPRESS;Initial Catalog=ETS_GPW;Persist Security Info=True;User ID=sa;Password=steamware\" GPW_Smart/GPW_Smart.csproj"
/*echo 'Copia ETS'*/
bat "E:\\Jenkins\\exportDropbox.bat \"${WORKSPACE}\\GPW_Smart\\ReleaseClienti\" \"E:\\Staging\\byProd\\GPW\\ETS\\SMART\" "
},
failFast: false)
}
else{
echo 'Questo BRANCH non necessita di installer...'
}
}
}
}
}
post {
success {
sendSlack("Successful", "good")
}
failure {
sendSlack("Failed", "danger")
}
unstable {
sendSlack("Unstable", "warning")
}
}
}
// Funzione x pubblicazione su server IIS di deploy
def publishToDeployServer(prjPath, iisPath, packName) {
echo "Richiesto esecuzione publishToDeployServer con parametri: " + prjPath + " | " + iisPath + " | " + packName
// inizio copiando files di base da area VersGen...
bat "xcopy /y VersGen\\ChangeLog.html " + prjPath + "Resources\\ChangeLog.html "
bat "xcopy /y VersGen\\logoSteamware.png " + prjPath + "Resources\\logoSteamware.png "
bat "xcopy /y VersGen\\manifest.xml " + prjPath + "Resources\\manifest.xml "
// manifest.xml: aggiorno versNumber ed URL del branch di update...
bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml 0.0.0.0 ${env.versionNumber} || EXIT /B 0"
bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml {{BRANCHNAME}} ${env.BRANCH_NAME} || EXIT /B 0"
bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml {{PACKNAME}} " + packName + " || EXIT /B 0"
bat "e:\\fart.exe " + prjPath + "Resources\\ChangeLog.html {{CURRENT-REL}} ${env.versionNumber} || EXIT /B 0"
writeFile file: prjPath + 'changeLog.log', text: "${getChangeString()}"
powershell '(Get-Content ' + prjPath + 'Resources\\ChangeLog.html) | ForEach-Object { $_ -replace \"{{LAST-CHANGES}}\", \"${getChangeString()}\" } | Set-Content ' + prjPath + 'Resources\\ChangeLog.html'
// copio ed esporto in IIS02 i vari files .xml, .html, .zip
bat "xcopy /y " + prjPath + "Resources\\manifest.xml " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
bat "xcopy /y " + prjPath + "Resources\\ChangeLog.html " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
bat "xcopy /y " + prjPath + "Resources\\logoSteamware.png " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
// salvo copia della versione...
bat "xcopy /y " + prjPath + "\\ReleaseClienti\\${env.BRANCH_NAME}\\* E:\\Staging\\byProd\\MP\\${env.BRANCH_NAME}\\" + packName + "\\${env.versionNumber}\\ "
// copio x AutoUpdate deploy
bat "xcopy /y " + prjPath + "\\ReleaseClienti\\${env.BRANCH_NAME}\\" + packName + ".zip " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
}
@NonCPS
// Funzione x recupero changeLog
def getChangeString() {
MAX_MSG_LEN = 100
def changeString = ""
echo "Gathering SCM changes"
def changeLogSets = currentBuild.changeSets
for (int i = 0; i < changeLogSets.size(); i++) {
def entries = changeLogSets[i].items
for (int j = 0; j < entries.length; j++) {
def entry = entries[j]
truncated_msg = entry.msg.take(MAX_MSG_LEN)
changeString += " - ${truncated_msg} [${entry.author}]\n"
}
}
if (!changeString) {
changeString = " - Nessuna Modifica"
}
return changeString
}
// Funzione x invio slack
def sendSlack(status, colorCode) {
slackSend (
color: colorCode,
channel: "#GPW-dev",
failOnError: false,
message: "${env.JOB_NAME} ${env.versionNumber} | " + status + ": Build ${env.BUILD_NUMBER}\n\n" +
"Modifiche:\n " + getChangeString() + "\n\n Verifica build: <${env.BUILD_URL}|Apri>" + "\n"
)
}
// funzione x fix pacchetti nuget da NOSTRO repo Nexus con proxy
def fixNuget(solutionFile) {
// bat "e:\\nuget setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-group"
// solo la prima volta va aggiunta...
hasSource = bat "e:\\nuget sources list | find \"Steamware\" /C"
if (hasSource == "0")
{
bat "e:\\nuget sources Add -Name \"Steamware Nexus\" -Source http://nexus.steamware.net/repository/nuget-group -username \"nugetUser\" -password \"viaDante16\""
}
else
{
bat "e:\\nuget sources Update -Name \"Steamware Nexus\" -Source http://nexus.steamware.net/repository/nuget-group -username \"nugetUser\" -password \"viaDante16\""
}
bat "e:\\nuget.exe restore ${solutionFile}"
}
+2 -48
View File
@@ -1,14 +1,12 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14 # Visual Studio Version 17
VisualStudioVersion = 14.0.25420.1 VisualStudioVersion = 17.9.34607.119
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GPW_Data", "GPW_Data\GPW_Data.csproj", "{7BEA5D99-8486-4592-B01D-FE2C76EB66CF}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GPW_Data", "GPW_Data\GPW_Data.csproj", "{7BEA5D99-8486-4592-B01D-FE2C76EB66CF}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "VersGen\VersGen.csproj", "{A8543046-1C1B-4810-BC08-9AA7F9814BB0}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "VersGen\VersGen.csproj", "{A8543046-1C1B-4810-BC08-9AA7F9814BB0}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SteamWare", "..\..\Steamware\SteamWareLib\SteamWare.csproj", "{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GPW_Admin", "GPW_Admin\GPW_Admin.csproj", "{A74E74E3-77BC-45D3-BC54-8693313542E2}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GPW_Admin", "GPW_Admin\GPW_Admin.csproj", "{A74E74E3-77BC-45D3-BC54-8693313542E2}"
EndProject EndProject
Global Global
@@ -125,50 +123,6 @@ Global
{A8543046-1C1B-4810-BC08-9AA7F9814BB0}.Steamware|Any CPU.Build.0 = Release|Any CPU {A8543046-1C1B-4810-BC08-9AA7F9814BB0}.Steamware|Any CPU.Build.0 = Release|Any CPU
{A8543046-1C1B-4810-BC08-9AA7F9814BB0}.WinLab|Any CPU.ActiveCfg = Release|Any CPU {A8543046-1C1B-4810-BC08-9AA7F9814BB0}.WinLab|Any CPU.ActiveCfg = Release|Any CPU
{A8543046-1C1B-4810-BC08-9AA7F9814BB0}.WinLab|Any CPU.Build.0 = Release|Any CPU {A8543046-1C1B-4810-BC08-9AA7F9814BB0}.WinLab|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.218_SP|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.218_SP|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.218_test|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.218_test|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Alumat|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Alumat|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.CMS|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.CMS|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.DEMO|Any CPU.ActiveCfg = Debug|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.DEMO|Any CPU.Build.0 = Debug|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.deploy|Any CPU.ActiveCfg = Debug|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.deploy|Any CPU.Build.0 = Debug|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.EQUA|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.EQUA|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.ETS|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.ETS|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.ETS-218|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.ETS-218|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS01_SP|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS01_SP|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS01_TK|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS01_TK|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS01|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS01|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS02_SP|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS02_SP|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS02_TK|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS02_TK|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS02|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.IIS02|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.MoonProDemo-OVH|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.MoonProDemo-OVH|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Release|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.SomaschiniUSA|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.SomaschiniUSA|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Steamware|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.Steamware|Any CPU.Build.0 = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.WinLab|Any CPU.ActiveCfg = Release|Any CPU
{2872DCFE-8B46-43B2-BAA0-842A816A2DD5}.WinLab|Any CPU.Build.0 = Release|Any CPU
{A74E74E3-77BC-45D3-BC54-8693313542E2}.218_SP|Any CPU.ActiveCfg = Release|Any CPU {A74E74E3-77BC-45D3-BC54-8693313542E2}.218_SP|Any CPU.ActiveCfg = Release|Any CPU
{A74E74E3-77BC-45D3-BC54-8693313542E2}.218_SP|Any CPU.Build.0 = Release|Any CPU {A74E74E3-77BC-45D3-BC54-8693313542E2}.218_SP|Any CPU.Build.0 = Release|Any CPU
{A74E74E3-77BC-45D3-BC54-8693313542E2}.218_test|Any CPU.ActiveCfg = Release|Any CPU {A74E74E3-77BC-45D3-BC54-8693313542E2}.218_test|Any CPU.ActiveCfg = Release|Any CPU
-15
View File
@@ -1,15 +0,0 @@
A new HTTP handler has been configured in your application for consulting the
error log and its feeds. It is reachable at elmah.axd under your application
root. If, for example, your application is deployed at http://www.example.com,
the URL for ELMAH would be http://www.example.com/elmah.axd. You can, of
course, change this path in your application's configuration file.
ELMAH is also set up to be secure such that it can only be accessed locally.
You can enable remote access but then it is paramount that you secure access
to authorized users or/and roles only. This can be done using standard
authorization rules and configuration already built into ASP.NET. For more
information, see http://code.google.com/p/elmah/wiki/SecuringErrorLogPages on
the project site.
Please review the commented out authorization section under
<location path="elmah.axd"> and make the appropriate changes.
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings> <connectionStrings>
<add name="SteamWare.Properties.Settings.loggerConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=Flamma_SC;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.loggerConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=Flamma_SC;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.SteamWare_VocabolarioConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Vocabolario;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.SteamWare_VocabolarioConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Vocabolario;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.DS_AuthConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.DS_AuthConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Anagrafica;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.AnagraficaBremboConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=AnagraficaBrembo;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.AnagraficaBremboConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=AnagraficaBrembo;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.SteamWare_BremboConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Brembo;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.SteamWare_BremboConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Brembo;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.Flamma_AnagraficaConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=Flamma_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.Flamma_AnagraficaConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=Flamma_Anagrafica;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.AnagraficaConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.AnagraficaConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=SteamWare_Anagrafica;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.SEL_fatture_SteamWareConnectionString" connectionString="Data Source=SQLSTEAM;Initial Catalog=SEL_fatture_SteamWare;User ID=sa;Password=keyhammer;Encrypt=False;TrustServerCertificate=True" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.SEL_fatture_SteamWareConnectionString" connectionString="Data Source=SQLSTEAM;Initial Catalog=SEL_fatture_SteamWare;User ID=sa;Password=keyhammer;Encrypt=False;TrustServerCertificate=True" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.Equa_AnagraficaConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=Equa_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.Equa_AnagraficaConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=Equa_Anagrafica;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.GMWConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=GMW;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.GMWConnectionString" connectionString="Data Source=SQL2012DEV;Initial Catalog=GMW;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.MoonProConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.MoonProConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77" providerName="System.Data.SqlClient" />
<add name="SteamWare.Properties.Settings.DbConfConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=sa;Password=keyhammer16" providerName="System.Data.SqlClient" /> <add name="SteamWare.Properties.Settings.DbConfConnectionString" connectionString="Data Source=SQL2016DEV;Initial Catalog=MoonPro;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77" providerName="System.Data.SqlClient" />
</connectionStrings> </connectionStrings>
</configuration> </configuration>
@@ -2,8 +2,10 @@
_adminEmail samuele@steamware.net,info@steamware.net samuele@steamware.net,info@steamware.net info@steamware.net _adminEmail samuele@steamware.net,info@steamware.net samuele@steamware.net,info@steamware.net info@steamware.net
_allowForceUser true true abilita login forzato _allowForceUser true true abilita login forzato
_commonPages menu menu pagina comune _commonPages menu menu pagina comune
_emailPwd drmfsls16 drmfsls16 drmfsls16 _emailPwd siamoInViaNazionale93 siamoInViaNazionale93 siamoInViaNazionale93
_emailUser steamwarebot@gmail.com steamwarebot@gmail.com steamwarebot@gmail.com _emailUser steamwarebot@outlook.it steamwarebot@outlook.it steamwarebot@outlook.it
_smtpCli smtp-mail.outlook.com smtp-mail.outlook.com smtp-mail.outlook.com
_fromEmail steamwarebot@outlook.it steamwarebot@outlook.it steamwarebot@outlook.it
_enableSSL true true true _enableSSL true true true
_fromEmail webmaster@admodelling.org webmaster@admodelling.org email mittente eventuali msg _fromEmail webmaster@admodelling.org webmaster@admodelling.org email mittente eventuali msg
_righeDataGrid 30 30 Num righe datagrid std _righeDataGrid 30 30 Num righe datagrid std
+61 -38
View File
@@ -1,6 +1,7 @@
using GPW_data; using GPW_data;
using SteamWare; using SteamWare;
using System; using System;
using System.Linq;
namespace GPW_Admin namespace GPW_Admin
{ {
@@ -39,39 +40,10 @@ namespace GPW_Admin
#endregion Public Properties #endregion Public Properties
#region Private Methods
/// <summary>
/// controllo stato licenze!
/// </summary>
private bool doChkLicOk()
{
return (licenzeGPW.checkLicenze && licenzeGPW.checkPayload);
}
#endregion Private Methods
#region Protected Methods
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
#endregion Protected Methods
#region Public Methods #region Public Methods
/// <summary> /// <summary>
/// Verifica se il valore sia > limitValue /// Verifica se il valore sia &gt; limitValue
/// </summary> /// </summary>
/// <param name="_valore"></param> /// <param name="_valore"></param>
/// <param name="minVal"></param> /// <param name="minVal"></param>
@@ -90,7 +62,7 @@ namespace GPW_Admin
} }
/// <summary> /// <summary>
/// Verifica se il valore sia > limitValue /// Verifica se il valore sia &gt; limitValue
/// </summary> /// </summary>
/// <param name="_valore"></param> /// <param name="_valore"></param>
/// <param name="maxVal"></param> /// <param name="maxVal"></param>
@@ -108,7 +80,7 @@ namespace GPW_Admin
} }
/// <summary> /// <summary>
/// Verifica se il valore sia > 0 /// Verifica se il valore sia &gt; 0
/// </summary> /// </summary>
/// <param name="_valore"></param> /// <param name="_valore"></param>
/// <returns></returns> /// <returns></returns>
@@ -139,12 +111,8 @@ namespace GPW_Admin
return answ; return answ;
} }
/// <summary> /// <summary> Verifica se il valore sia < minVal </summary> <param name="_valore"></param>
/// Verifica se il valore sia < minVal /// <param name="minVal"></param> <returns></returns>
/// </summary>
/// <param name="_valore"></param>
/// <param name="minVal"></param>
/// <returns></returns>
public bool ltVal(object _valore, double minVal) public bool ltVal(object _valore, double minVal)
{ {
bool answ = false; bool answ = false;
@@ -239,5 +207,60 @@ namespace GPW_Admin
} }
#endregion Public Methods #endregion Public Methods
#region Protected Properties
protected DS_Applicazione.DipendentiDataTable listaDip { get; set; }
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// Calcola email del responsabile dato idx
/// </summary>
/// <param name="idxResp"></param>
/// <returns></returns>
protected string emailResp(int idxResp)
{
string answ = "";
// recupero email resp...
if (idxResp > 0)
{
var recResp = listaDip.FirstOrDefault(x => x.idxDipendente == idxResp);
if (recResp != null)
{
answ = $"{recResp.email}";
}
}
return answ;
}
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
#endregion Protected Methods
#region Private Methods
/// <summary>
/// controllo stato licenze!
/// </summary>
private bool doChkLicOk()
{
return (licenzeGPW.checkLicenze && licenzeGPW.checkPayload);
}
#endregion Private Methods
} }
} }
+1 -1
View File
@@ -7,7 +7,7 @@
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col-6 text-left"> <div class="col-6 text-start">
<asp:Image runat="server" CssClass="img-fluid" Height="192" ImageUrl="~/Images/LogoSteamware.png" /> <asp:Image runat="server" CssClass="img-fluid" Height="192" ImageUrl="~/Images/LogoSteamware.png" />
</div> </div>
<div class="col-6 text-end"> <div class="col-6 text-end">
+3
View File
@@ -20,6 +20,9 @@ body {
.textBig { .textBig {
font-size: 1.5em; font-size: 1.5em;
} }
.text-strike {
text-decoration: line-through;
}
.table-sm th, .table-sm th,
.table-sm td { .table-sm td {
padding: 0.2rem; padding: 0.2rem;
+6 -5
View File
@@ -25,6 +25,10 @@ body {
font-size: 1.5em; font-size: 1.5em;
} }
.text-strike {
text-decoration: line-through;
}
.table-sm th, .table-sm td { .table-sm th, .table-sm td {
padding: .2rem; padding: .2rem;
} }
@@ -38,6 +42,7 @@ body {
background-color: #AAFFCD; background-color: #AAFFCD;
color: #000000; color: #000000;
} }
.gPerConf { .gPerConf {
background-color: #9966DE; background-color: #9966DE;
color: #DEDEDE; color: #DEDEDE;
@@ -47,6 +52,7 @@ body {
background-color: #CDAAFF; background-color: #CDAAFF;
color: #000000; color: #000000;
} }
.g104Conf { .g104Conf {
background-color: #DE00AB; background-color: #DE00AB;
color: #DEDEDE; color: #DEDEDE;
@@ -56,7 +62,6 @@ body {
background-color: #FFAACD; background-color: #FFAACD;
color: #000000; color: #000000;
} }
/*------------------------------------------------------------------ /*------------------------------------------------------------------
[ Shortcuts / .shortcuts ] [ Shortcuts / .shortcuts ]
*/ */
@@ -188,7 +193,6 @@ textarea {
.body-content { .body-content {
padding: 0; padding: 0;
} }
/* Set widths on the form inputs since otherwise they're 100% wide */ /* Set widths on the form inputs since otherwise they're 100% wide */
input, input,
select, select,
@@ -229,9 +233,6 @@ textarea {
border-bottom: 1px solid #3AC0F2;*/ border-bottom: 1px solid #3AC0F2;*/
font-weight: bold; font-weight: bold;
} }
/* calendar white */ /* calendar white */
.calendar_white_main { .calendar_white_main {
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Grid v5.2.0 (https://getbootstrap.com/) * Bootstrap Grid v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Grid v5.2.0 (https://getbootstrap.com/) * Bootstrap Grid v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Grid v5.2.0 (https://getbootstrap.com/) * Bootstrap Grid v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Grid v5.2.0 (https://getbootstrap.com/) * Bootstrap Grid v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.2.0 (https://getbootstrap.com/) * Bootstrap Reboot v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.2.0 (https://getbootstrap.com/) * Bootstrap Reboot v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.2.0 (https://getbootstrap.com/) * Bootstrap Reboot v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.2.0 (https://getbootstrap.com/) * Bootstrap Reboot v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
File diff suppressed because one or more lines are too long
+70 -1
View File
@@ -1,9 +1,78 @@
/*! /*!
* Bootstrap Utilities v5.2.0 (https://getbootstrap.com/) * Bootstrap Utilities v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
:root {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg-rgb: 255, 255, 255;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-bg: #fff;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-2xl: 2rem;
--bs-border-radius-pill: 50rem;
--bs-link-color: #0d6efd;
--bs-link-hover-color: #0a58ca;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
}
.clearfix::after { .clearfix::after {
display: block; display: block;
clear: both; clear: both;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+70 -1
View File
@@ -1,9 +1,78 @@
/*! /*!
* Bootstrap Utilities v5.2.0 (https://getbootstrap.com/) * Bootstrap Utilities v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
:root {
--bs-blue: #0d6efd;
--bs-indigo: #6610f2;
--bs-purple: #6f42c1;
--bs-pink: #d63384;
--bs-red: #dc3545;
--bs-orange: #fd7e14;
--bs-yellow: #ffc107;
--bs-green: #198754;
--bs-teal: #20c997;
--bs-cyan: #0dcaf0;
--bs-black: #000;
--bs-white: #fff;
--bs-gray: #6c757d;
--bs-gray-dark: #343a40;
--bs-gray-100: #f8f9fa;
--bs-gray-200: #e9ecef;
--bs-gray-300: #dee2e6;
--bs-gray-400: #ced4da;
--bs-gray-500: #adb5bd;
--bs-gray-600: #6c757d;
--bs-gray-700: #495057;
--bs-gray-800: #343a40;
--bs-gray-900: #212529;
--bs-primary: #0d6efd;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-info: #0dcaf0;
--bs-warning: #ffc107;
--bs-danger: #dc3545;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary-rgb: 108, 117, 125;
--bs-success-rgb: 25, 135, 84;
--bs-info-rgb: 13, 202, 240;
--bs-warning-rgb: 255, 193, 7;
--bs-danger-rgb: 220, 53, 69;
--bs-light-rgb: 248, 249, 250;
--bs-dark-rgb: 33, 37, 41;
--bs-white-rgb: 255, 255, 255;
--bs-black-rgb: 0, 0, 0;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg-rgb: 255, 255, 255;
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
--bs-body-font-family: var(--bs-font-sans-serif);
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-body-color: #212529;
--bs-body-bg: #fff;
--bs-border-width: 1px;
--bs-border-style: solid;
--bs-border-color: #dee2e6;
--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-2xl: 2rem;
--bs-border-radius-pill: 50rem;
--bs-link-color: #0d6efd;
--bs-link-hover-color: #0a58ca;
--bs-code-color: #d63384;
--bs-highlight-bg: #fff3cd;
}
.clearfix::after { .clearfix::after {
display: block; display: block;
clear: both; clear: both;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+86 -115
View File
@@ -1,6 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
/*! /*!
* Bootstrap v5.2.0 (https://getbootstrap.com/) * Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -1827,7 +1827,7 @@ progress {
border-color: var(--bs-table-border-color); border-color: var(--bs-table-border-color);
} }
.bg-secondary bg-opacity-50 bg-gradient { .table-secondary {
--bs-table-color: #000; --bs-table-color: #000;
--bs-table-bg: #e2e3e5; --bs-table-bg: #e2e3e5;
--bs-table-border-color: #cbccce; --bs-table-border-color: #cbccce;
@@ -2468,6 +2468,7 @@ textarea.form-control-lg {
height: 100%; height: 100%;
padding: 1rem 0.75rem; padding: 1rem 0.75rem;
overflow: hidden; overflow: hidden;
text-align: start;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
pointer-events: none; pointer-events: none;
@@ -2547,14 +2548,14 @@ textarea.form-control-lg {
.input-group > .form-control:focus, .input-group > .form-control:focus,
.input-group > .form-select:focus, .input-group > .form-select:focus,
.input-group > .form-floating:focus-within { .input-group > .form-floating:focus-within {
z-index: 3; z-index: 5;
} }
.input-group .btn { .input-group .btn {
position: relative; position: relative;
z-index: 2; z-index: 2;
} }
.input-group .btn:focus { .input-group .btn:focus {
z-index: 3; z-index: 5;
} }
.input-group-text { .input-group-text {
@@ -2609,10 +2610,13 @@ textarea.form-control-lg {
border-top-right-radius: 0; border-top-right-radius: 0;
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
.input-group > :not(:first-child):not(.dropdown-menu):not(.form-floating):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback), .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.input-group > .form-floating:not(:first-child) > .form-control, .input-group > .form-floating:not(:first-child) > .form-control,
.input-group > .form-floating:not(:first-child) > .form-select { .input-group > .form-floating:not(:first-child) > .form-select {
margin-left: -1px;
border-top-left-radius: 0; border-top-left-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -2699,14 +2703,11 @@ textarea.form-control-lg {
margin-left: 0.5em; margin-left: 0.5em;
} }
.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid, .was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,
.was-validated .input-group .form-select:valid, .was-validated .input-group > .form-select:not(:focus):valid,
.input-group .form-select.is-valid { .input-group > .form-select:not(:focus).is-valid,
z-index: 1; .was-validated .input-group > .form-floating:not(:focus-within):valid,
} .input-group > .form-floating:not(:focus-within).is-valid {
.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus,
.was-validated .input-group .form-select:valid:focus,
.input-group .form-select.is-valid:focus {
z-index: 3; z-index: 3;
} }
@@ -2792,15 +2793,12 @@ textarea.form-control-lg {
margin-left: 0.5em; margin-left: 0.5em;
} }
.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid, .was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,
.was-validated .input-group .form-select:invalid, .was-validated .input-group > .form-select:not(:focus):invalid,
.input-group .form-select.is-invalid { .input-group > .form-select:not(:focus).is-invalid,
z-index: 2; .was-validated .input-group > .form-floating:not(:focus-within):invalid,
} .input-group > .form-floating:not(:focus-within).is-invalid {
.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus, z-index: 4;
.was-validated .input-group .form-select:invalid:focus,
.input-group .form-select.is-invalid:focus {
z-index: 3;
} }
.btn { .btn {
@@ -2815,6 +2813,7 @@ textarea.form-control-lg {
--bs-btn-border-width: 1px; --bs-btn-border-width: 1px;
--bs-btn-border-color: transparent; --bs-btn-border-color: transparent;
--bs-btn-border-radius: 0.375rem; --bs-btn-border-radius: 0.375rem;
--bs-btn-hover-border-color: transparent;
--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
--bs-btn-disabled-opacity: 0.65; --bs-btn-disabled-opacity: 0.65;
--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
@@ -2847,19 +2846,29 @@ textarea.form-control-lg {
background-color: var(--bs-btn-hover-bg); background-color: var(--bs-btn-hover-bg);
border-color: var(--bs-btn-hover-border-color); border-color: var(--bs-btn-hover-border-color);
} }
.btn-check:focus + .btn, .btn:focus { .btn-check + .btn:hover {
color: var(--bs-btn-color);
background-color: var(--bs-btn-bg);
border-color: var(--bs-btn-border-color);
}
.btn:focus-visible {
color: var(--bs-btn-hover-color); color: var(--bs-btn-hover-color);
background-color: var(--bs-btn-hover-bg); background-color: var(--bs-btn-hover-bg);
border-color: var(--bs-btn-hover-border-color); border-color: var(--bs-btn-hover-border-color);
outline: 0; outline: 0;
box-shadow: var(--bs-btn-focus-box-shadow); box-shadow: var(--bs-btn-focus-box-shadow);
} }
.btn-check:checked + .btn, .btn-check:active + .btn, .btn:active, .btn.active, .btn.show { .btn-check:focus-visible + .btn {
border-color: var(--bs-btn-hover-border-color);
outline: 0;
box-shadow: var(--bs-btn-focus-box-shadow);
}
.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
color: var(--bs-btn-active-color); color: var(--bs-btn-active-color);
background-color: var(--bs-btn-active-bg); background-color: var(--bs-btn-active-bg);
border-color: var(--bs-btn-active-border-color); border-color: var(--bs-btn-active-border-color);
} }
.btn-check:checked + .btn:focus, .btn-check:active + .btn:focus, .btn:active:focus, .btn.active:focus, .btn.show:focus { .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
box-shadow: var(--bs-btn-focus-box-shadow); box-shadow: var(--bs-btn-focus-box-shadow);
} }
.btn:disabled, .btn.disabled, fieldset:disabled .btn { .btn:disabled, .btn.disabled, fieldset:disabled .btn {
@@ -3157,7 +3166,7 @@ textarea.form-control-lg {
--bs-btn-focus-shadow-rgb: 49, 132, 253; --bs-btn-focus-shadow-rgb: 49, 132, 253;
text-decoration: underline; text-decoration: underline;
} }
.btn-link:focus { .btn-link:focus-visible {
color: var(--bs-btn-color); color: var(--bs-btn-color);
} }
.btn-link:hover { .btn-link:hover {
@@ -3242,6 +3251,7 @@ textarea.form-control-lg {
} }
.dropdown-menu { .dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem; --bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0; --bs-dropdown-padding-x: 0;
--bs-dropdown-padding-y: 0.5rem; --bs-dropdown-padding-y: 0.5rem;
@@ -3268,7 +3278,7 @@ textarea.form-control-lg {
--bs-dropdown-header-padding-x: 1rem; --bs-dropdown-header-padding-x: 1rem;
--bs-dropdown-header-padding-y: 0.5rem; --bs-dropdown-header-padding-y: 0.5rem;
position: absolute; position: absolute;
z-index: 1000; z-index: var(--bs-dropdown-zindex);
display: none; display: none;
min-width: var(--bs-dropdown-min-width); min-width: var(--bs-dropdown-min-width);
padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
@@ -3568,7 +3578,7 @@ textarea.form-control-lg {
.btn-group { .btn-group {
border-radius: 0.375rem; border-radius: 0.375rem;
} }
.btn-group > .btn:not(:first-child), .btn-group > :not(.btn-check:first-child) + .btn,
.btn-group > .btn-group:not(:first-child) { .btn-group > .btn-group:not(:first-child) {
margin-left: -1px; margin-left: -1px;
} }
@@ -3678,7 +3688,7 @@ textarea.form-control-lg {
border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
} }
.nav-tabs .nav-link { .nav-tabs .nav-link {
margin-bottom: calc(var(--bs-nav-tabs-border-width) * -1); margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
background: none; background: none;
border: var(--bs-nav-tabs-border-width) solid transparent; border: var(--bs-nav-tabs-border-width) solid transparent;
border-top-left-radius: var(--bs-nav-tabs-border-radius); border-top-left-radius: var(--bs-nav-tabs-border-radius);
@@ -3700,7 +3710,7 @@ textarea.form-control-lg {
border-color: var(--bs-nav-tabs-link-active-border-color); border-color: var(--bs-nav-tabs-link-active-border-color);
} }
.nav-tabs .dropdown-menu { .nav-tabs .dropdown-menu {
margin-top: calc(var(--bs-nav-tabs-border-width) * -1); margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-left-radius: 0; border-top-left-radius: 0;
border-top-right-radius: 0; border-top-right-radius: 0;
} }
@@ -4357,7 +4367,7 @@ textarea.form-control-lg {
} }
.accordion { .accordion {
--bs-accordion-color: #000; --bs-accordion-color: #212529;
--bs-accordion-bg: #fff; --bs-accordion-bg: #fff;
--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
--bs-accordion-border-color: var(--bs-border-color); --bs-accordion-border-color: var(--bs-border-color);
@@ -4366,9 +4376,9 @@ textarea.form-control-lg {
--bs-accordion-inner-border-radius: calc(0.375rem - 1px); --bs-accordion-inner-border-radius: calc(0.375rem - 1px);
--bs-accordion-btn-padding-x: 1.25rem; --bs-accordion-btn-padding-x: 1.25rem;
--bs-accordion-btn-padding-y: 1rem; --bs-accordion-btn-padding-y: 1rem;
--bs-accordion-btn-color: var(--bs-body-color); --bs-accordion-btn-color: #212529;
--bs-accordion-btn-bg: var(--bs-accordion-bg); --bs-accordion-btn-bg: var(--bs-accordion-bg);
--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
--bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-width: 1.25rem;
--bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transform: rotate(-180deg);
--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
@@ -4404,7 +4414,7 @@ textarea.form-control-lg {
.accordion-button:not(.collapsed) { .accordion-button:not(.collapsed) {
color: var(--bs-accordion-active-color); color: var(--bs-accordion-active-color);
background-color: var(--bs-accordion-active-bg); background-color: var(--bs-accordion-active-bg);
box-shadow: inset 0 calc(var(--bs-accordion-border-width) * -1) 0 var(--bs-accordion-border-color); box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
} }
.accordion-button:not(.collapsed)::after { .accordion-button:not(.collapsed)::after {
background-image: var(--bs-accordion-btn-active-icon); background-image: var(--bs-accordion-btn-active-icon);
@@ -4487,7 +4497,7 @@ textarea.form-control-lg {
.accordion-flush .accordion-item:last-child { .accordion-flush .accordion-item:last-child {
border-bottom: 0; border-bottom: 0;
} }
.accordion-flush .accordion-item .accordion-button { .accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
border-radius: 0; border-radius: 0;
} }
@@ -4753,12 +4763,6 @@ textarea.form-control-lg {
color: #101214; color: #101214;
} }
@-webkit-keyframes progress-bar-stripes {
0% {
background-position-x: 1rem;
}
}
@keyframes progress-bar-stripes { @keyframes progress-bar-stripes {
0% { 0% {
background-position-x: 1rem; background-position-x: 1rem;
@@ -4804,12 +4808,10 @@ textarea.form-control-lg {
} }
.progress-bar-animated { .progress-bar-animated {
-webkit-animation: 1s linear infinite progress-bar-stripes;
animation: 1s linear infinite progress-bar-stripes; animation: 1s linear infinite progress-bar-stripes;
} }
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
.progress-bar-animated { .progress-bar-animated {
-webkit-animation: none;
animation: none; animation: none;
} }
} }
@@ -4896,18 +4898,18 @@ textarea.form-control-lg {
border-top-width: 0; border-top-width: 0;
} }
.list-group-item + .list-group-item.active { .list-group-item + .list-group-item.active {
margin-top: calc(var(--bs-list-group-border-width) * -1); margin-top: calc(-1 * var(--bs-list-group-border-width));
border-top-width: var(--bs-list-group-border-width); border-top-width: var(--bs-list-group-border-width);
} }
.list-group-horizontal { .list-group-horizontal {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal > .list-group-item:first-child { .list-group-horizontal > .list-group-item:first-child:not(:last-child) {
border-bottom-left-radius: var(--bs-list-group-border-radius); border-bottom-left-radius: var(--bs-list-group-border-radius);
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.list-group-horizontal > .list-group-item:last-child { .list-group-horizontal > .list-group-item:last-child:not(:first-child) {
border-top-right-radius: var(--bs-list-group-border-radius); border-top-right-radius: var(--bs-list-group-border-radius);
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -4919,7 +4921,7 @@ textarea.form-control-lg {
border-left-width: 0; border-left-width: 0;
} }
.list-group-horizontal > .list-group-item + .list-group-item.active { .list-group-horizontal > .list-group-item + .list-group-item.active {
margin-left: calc(var(--bs-list-group-border-width) * -1); margin-left: calc(-1 * var(--bs-list-group-border-width));
border-left-width: var(--bs-list-group-border-width); border-left-width: var(--bs-list-group-border-width);
} }
@@ -4927,11 +4929,11 @@ textarea.form-control-lg {
.list-group-horizontal-sm { .list-group-horizontal-sm {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-sm > .list-group-item:first-child { .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
border-bottom-left-radius: var(--bs-list-group-border-radius); border-bottom-left-radius: var(--bs-list-group-border-radius);
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.list-group-horizontal-sm > .list-group-item:last-child { .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
border-top-right-radius: var(--bs-list-group-border-radius); border-top-right-radius: var(--bs-list-group-border-radius);
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -4943,7 +4945,7 @@ textarea.form-control-lg {
border-left-width: 0; border-left-width: 0;
} }
.list-group-horizontal-sm > .list-group-item + .list-group-item.active { .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
margin-left: calc(var(--bs-list-group-border-width) * -1); margin-left: calc(-1 * var(--bs-list-group-border-width));
border-left-width: var(--bs-list-group-border-width); border-left-width: var(--bs-list-group-border-width);
} }
} }
@@ -4951,11 +4953,11 @@ textarea.form-control-lg {
.list-group-horizontal-md { .list-group-horizontal-md {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-md > .list-group-item:first-child { .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
border-bottom-left-radius: var(--bs-list-group-border-radius); border-bottom-left-radius: var(--bs-list-group-border-radius);
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.list-group-horizontal-md > .list-group-item:last-child { .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
border-top-right-radius: var(--bs-list-group-border-radius); border-top-right-radius: var(--bs-list-group-border-radius);
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -4967,7 +4969,7 @@ textarea.form-control-lg {
border-left-width: 0; border-left-width: 0;
} }
.list-group-horizontal-md > .list-group-item + .list-group-item.active { .list-group-horizontal-md > .list-group-item + .list-group-item.active {
margin-left: calc(var(--bs-list-group-border-width) * -1); margin-left: calc(-1 * var(--bs-list-group-border-width));
border-left-width: var(--bs-list-group-border-width); border-left-width: var(--bs-list-group-border-width);
} }
} }
@@ -4975,11 +4977,11 @@ textarea.form-control-lg {
.list-group-horizontal-lg { .list-group-horizontal-lg {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-lg > .list-group-item:first-child { .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
border-bottom-left-radius: var(--bs-list-group-border-radius); border-bottom-left-radius: var(--bs-list-group-border-radius);
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.list-group-horizontal-lg > .list-group-item:last-child { .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
border-top-right-radius: var(--bs-list-group-border-radius); border-top-right-radius: var(--bs-list-group-border-radius);
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -4991,7 +4993,7 @@ textarea.form-control-lg {
border-left-width: 0; border-left-width: 0;
} }
.list-group-horizontal-lg > .list-group-item + .list-group-item.active { .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
margin-left: calc(var(--bs-list-group-border-width) * -1); margin-left: calc(-1 * var(--bs-list-group-border-width));
border-left-width: var(--bs-list-group-border-width); border-left-width: var(--bs-list-group-border-width);
} }
} }
@@ -4999,11 +5001,11 @@ textarea.form-control-lg {
.list-group-horizontal-xl { .list-group-horizontal-xl {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-xl > .list-group-item:first-child { .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
border-bottom-left-radius: var(--bs-list-group-border-radius); border-bottom-left-radius: var(--bs-list-group-border-radius);
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.list-group-horizontal-xl > .list-group-item:last-child { .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
border-top-right-radius: var(--bs-list-group-border-radius); border-top-right-radius: var(--bs-list-group-border-radius);
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -5015,7 +5017,7 @@ textarea.form-control-lg {
border-left-width: 0; border-left-width: 0;
} }
.list-group-horizontal-xl > .list-group-item + .list-group-item.active { .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
margin-left: calc(var(--bs-list-group-border-width) * -1); margin-left: calc(-1 * var(--bs-list-group-border-width));
border-left-width: var(--bs-list-group-border-width); border-left-width: var(--bs-list-group-border-width);
} }
} }
@@ -5023,11 +5025,11 @@ textarea.form-control-lg {
.list-group-horizontal-xxl { .list-group-horizontal-xxl {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-xxl > .list-group-item:first-child { .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
border-bottom-left-radius: var(--bs-list-group-border-radius); border-bottom-left-radius: var(--bs-list-group-border-radius);
border-top-right-radius: 0; border-top-right-radius: 0;
} }
.list-group-horizontal-xxl > .list-group-item:last-child { .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
border-top-right-radius: var(--bs-list-group-border-radius); border-top-right-radius: var(--bs-list-group-border-radius);
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
@@ -5039,7 +5041,7 @@ textarea.form-control-lg {
border-left-width: 0; border-left-width: 0;
} }
.list-group-horizontal-xxl > .list-group-item + .list-group-item.active { .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
margin-left: calc(var(--bs-list-group-border-width) * -1); margin-left: calc(-1 * var(--bs-list-group-border-width));
border-left-width: var(--bs-list-group-border-width); border-left-width: var(--bs-list-group-border-width);
} }
} }
@@ -5199,6 +5201,7 @@ textarea.form-control-lg {
} }
.toast { .toast {
--bs-toast-zindex: 1090;
--bs-toast-padding-x: 0.75rem; --bs-toast-padding-x: 0.75rem;
--bs-toast-padding-y: 0.5rem; --bs-toast-padding-y: 0.5rem;
--bs-toast-spacing: 1.5rem; --bs-toast-spacing: 1.5rem;
@@ -5232,8 +5235,9 @@ textarea.form-control-lg {
} }
.toast-container { .toast-container {
--bs-toast-zindex: 1090;
position: absolute; position: absolute;
z-index: 1090; z-index: var(--bs-toast-zindex);
width: -webkit-max-content; width: -webkit-max-content;
width: -moz-max-content; width: -moz-max-content;
width: max-content; width: max-content;
@@ -5256,7 +5260,7 @@ textarea.form-control-lg {
border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
} }
.toast-header .btn-close { .toast-header .btn-close {
margin-right: calc(var(--bs-toast-padding-x) * -0.5); margin-right: calc(-0.5 * var(--bs-toast-padding-x));
margin-left: var(--bs-toast-padding-x); margin-left: var(--bs-toast-padding-x);
} }
@@ -5383,7 +5387,7 @@ textarea.form-control-lg {
} }
.modal-header .btn-close { .modal-header .btn-close {
padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
margin: calc(var(--bs-modal-header-padding-y) * -0.5) calc(var(--bs-modal-header-padding-x) * -0.5) calc(var(--bs-modal-header-padding-y) * -0.5) auto; margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;
} }
.modal-title { .modal-title {
@@ -5673,7 +5677,7 @@ textarea.form-control-lg {
--bs-popover-header-padding-x: 1rem; --bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem; --bs-popover-header-padding-y: 0.5rem;
--bs-popover-header-font-size: 1rem; --bs-popover-header-font-size: 1rem;
--bs-popover-header-color: var(--bs-heading-color); --bs-popover-header-color: ;
--bs-popover-header-bg: #f0f0f0; --bs-popover-header-bg: #f0f0f0;
--bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-x: 1rem;
--bs-popover-body-padding-y: 1rem; --bs-popover-body-padding-y: 1rem;
@@ -5720,7 +5724,7 @@ textarea.form-control-lg {
} }
.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
bottom: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
} }
.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
@@ -5736,7 +5740,7 @@ textarea.form-control-lg {
/* rtl:begin:ignore */ /* rtl:begin:ignore */
.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
left: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
width: var(--bs-popover-arrow-height); width: var(--bs-popover-arrow-height);
height: var(--bs-popover-arrow-width); height: var(--bs-popover-arrow-width);
} }
@@ -5754,7 +5758,7 @@ textarea.form-control-lg {
/* rtl:end:ignore */ /* rtl:end:ignore */
.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
top: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
} }
.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
@@ -5773,14 +5777,14 @@ textarea.form-control-lg {
left: 50%; left: 50%;
display: block; display: block;
width: var(--bs-popover-arrow-width); width: var(--bs-popover-arrow-width);
margin-left: calc(var(--bs-popover-arrow-width) * -0.5); margin-left: calc(-0.5 * var(--bs-popover-arrow-width));
content: ""; content: "";
border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
} }
/* rtl:begin:ignore */ /* rtl:begin:ignore */
.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
right: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
width: var(--bs-popover-arrow-height); width: var(--bs-popover-arrow-height);
height: var(--bs-popover-arrow-width); height: var(--bs-popover-arrow-width);
} }
@@ -5857,7 +5861,6 @@ textarea.form-control-lg {
display: block; display: block;
} }
/* rtl:begin:ignore */
.carousel-item-next:not(.carousel-item-start), .carousel-item-next:not(.carousel-item-start),
.active.carousel-item-end { .active.carousel-item-end {
transform: translateX(100%); transform: translateX(100%);
@@ -5868,7 +5871,6 @@ textarea.form-control-lg {
transform: translateX(-100%); transform: translateX(-100%);
} }
/* rtl:end:ignore */
.carousel-fade .carousel-item { .carousel-fade .carousel-item {
opacity: 0; opacity: 0;
transition-property: opacity; transition-property: opacity;
@@ -6030,16 +6032,9 @@ textarea.form-control-lg {
height: var(--bs-spinner-height); height: var(--bs-spinner-height);
vertical-align: var(--bs-spinner-vertical-align); vertical-align: var(--bs-spinner-vertical-align);
border-radius: 50%; border-radius: 50%;
-webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
} }
@-webkit-keyframes spinner-border {
to {
transform: rotate(360deg) /* rtl:ignore */;
}
}
@keyframes spinner-border { @keyframes spinner-border {
to { to {
transform: rotate(360deg) /* rtl:ignore */; transform: rotate(360deg) /* rtl:ignore */;
@@ -6062,16 +6057,6 @@ textarea.form-control-lg {
--bs-spinner-border-width: 0.2em; --bs-spinner-border-width: 0.2em;
} }
@-webkit-keyframes spinner-grow {
0% {
transform: scale(0);
}
50% {
opacity: 1;
transform: none;
}
}
@keyframes spinner-grow { @keyframes spinner-grow {
0% { 0% {
transform: scale(0); transform: scale(0);
@@ -6103,6 +6088,7 @@ textarea.form-control-lg {
} }
} }
.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { .offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
--bs-offcanvas-zindex: 1045;
--bs-offcanvas-width: 400px; --bs-offcanvas-width: 400px;
--bs-offcanvas-height: 30vh; --bs-offcanvas-height: 30vh;
--bs-offcanvas-padding-x: 1rem; --bs-offcanvas-padding-x: 1rem;
@@ -6118,7 +6104,7 @@ textarea.form-control-lg {
.offcanvas-sm { .offcanvas-sm {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6206,7 +6192,7 @@ textarea.form-control-lg {
.offcanvas-md { .offcanvas-md {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6294,7 +6280,7 @@ textarea.form-control-lg {
.offcanvas-lg { .offcanvas-lg {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6382,7 +6368,7 @@ textarea.form-control-lg {
.offcanvas-xl { .offcanvas-xl {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6470,7 +6456,7 @@ textarea.form-control-lg {
.offcanvas-xxl { .offcanvas-xxl {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6557,7 +6543,7 @@ textarea.form-control-lg {
.offcanvas { .offcanvas {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6635,9 +6621,9 @@ textarea.form-control-lg {
} }
.offcanvas-header .btn-close { .offcanvas-header .btn-close {
padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
margin-top: calc(var(--bs-offcanvas-padding-y) * -0.5); margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
margin-right: calc(var(--bs-offcanvas-padding-x) * -0.5); margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x));
margin-bottom: calc(var(--bs-offcanvas-padding-y) * -0.5); margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
} }
.offcanvas-title { .offcanvas-title {
@@ -6677,16 +6663,9 @@ textarea.form-control-lg {
} }
.placeholder-glow .placeholder { .placeholder-glow .placeholder {
-webkit-animation: placeholder-glow 2s ease-in-out infinite;
animation: placeholder-glow 2s ease-in-out infinite; animation: placeholder-glow 2s ease-in-out infinite;
} }
@-webkit-keyframes placeholder-glow {
50% {
opacity: 0.2;
}
}
@keyframes placeholder-glow { @keyframes placeholder-glow {
50% { 50% {
opacity: 0.2; opacity: 0.2;
@@ -6697,17 +6676,9 @@ textarea.form-control-lg {
mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
-webkit-mask-size: 200% 100%; -webkit-mask-size: 200% 100%;
mask-size: 200% 100%; mask-size: 200% 100%;
-webkit-animation: placeholder-wave 2s linear infinite;
animation: placeholder-wave 2s linear infinite; animation: placeholder-wave 2s linear infinite;
} }
@-webkit-keyframes placeholder-wave {
100% {
-webkit-mask-position: -200% 0%;
mask-position: -200% 0%;
}
}
@keyframes placeholder-wave { @keyframes placeholder-wave {
100% { 100% {
-webkit-mask-position: -200% 0%; -webkit-mask-position: -200% 0%;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+90 -115
View File
@@ -1,6 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
/*! /*!
* Bootstrap v5.2.0 (https://getbootstrap.com/) * Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors * Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc. * Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -1825,7 +1825,7 @@ progress {
border-color: var(--bs-table-border-color); border-color: var(--bs-table-border-color);
} }
.bg-secondary bg-opacity-50 bg-gradient { .table-secondary {
--bs-table-color: #000; --bs-table-color: #000;
--bs-table-bg: #e2e3e5; --bs-table-bg: #e2e3e5;
--bs-table-border-color: #cbccce; --bs-table-border-color: #cbccce;
@@ -2466,6 +2466,7 @@ textarea.form-control-lg {
height: 100%; height: 100%;
padding: 1rem 0.75rem; padding: 1rem 0.75rem;
overflow: hidden; overflow: hidden;
text-align: start;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
pointer-events: none; pointer-events: none;
@@ -2545,14 +2546,14 @@ textarea.form-control-lg {
.input-group > .form-control:focus, .input-group > .form-control:focus,
.input-group > .form-select:focus, .input-group > .form-select:focus,
.input-group > .form-floating:focus-within { .input-group > .form-floating:focus-within {
z-index: 3; z-index: 5;
} }
.input-group .btn { .input-group .btn {
position: relative; position: relative;
z-index: 2; z-index: 2;
} }
.input-group .btn:focus { .input-group .btn:focus {
z-index: 3; z-index: 5;
} }
.input-group-text { .input-group-text {
@@ -2607,10 +2608,13 @@ textarea.form-control-lg {
border-top-left-radius: 0; border-top-left-radius: 0;
border-bottom-left-radius: 0; border-bottom-left-radius: 0;
} }
.input-group > :not(:first-child):not(.dropdown-menu):not(.form-floating):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback), .input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {
margin-right: -1px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group > .form-floating:not(:first-child) > .form-control, .input-group > .form-floating:not(:first-child) > .form-control,
.input-group > .form-floating:not(:first-child) > .form-select { .input-group > .form-floating:not(:first-child) > .form-select {
margin-right: -1px;
border-top-right-radius: 0; border-top-right-radius: 0;
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -2697,14 +2701,11 @@ textarea.form-control-lg {
margin-right: 0.5em; margin-right: 0.5em;
} }
.was-validated .input-group .form-control:valid, .input-group .form-control.is-valid, .was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,
.was-validated .input-group .form-select:valid, .was-validated .input-group > .form-select:not(:focus):valid,
.input-group .form-select.is-valid { .input-group > .form-select:not(:focus).is-valid,
z-index: 1; .was-validated .input-group > .form-floating:not(:focus-within):valid,
} .input-group > .form-floating:not(:focus-within).is-valid {
.was-validated .input-group .form-control:valid:focus, .input-group .form-control.is-valid:focus,
.was-validated .input-group .form-select:valid:focus,
.input-group .form-select.is-valid:focus {
z-index: 3; z-index: 3;
} }
@@ -2790,15 +2791,12 @@ textarea.form-control-lg {
margin-right: 0.5em; margin-right: 0.5em;
} }
.was-validated .input-group .form-control:invalid, .input-group .form-control.is-invalid, .was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,
.was-validated .input-group .form-select:invalid, .was-validated .input-group > .form-select:not(:focus):invalid,
.input-group .form-select.is-invalid { .input-group > .form-select:not(:focus).is-invalid,
z-index: 2; .was-validated .input-group > .form-floating:not(:focus-within):invalid,
} .input-group > .form-floating:not(:focus-within).is-invalid {
.was-validated .input-group .form-control:invalid:focus, .input-group .form-control.is-invalid:focus, z-index: 4;
.was-validated .input-group .form-select:invalid:focus,
.input-group .form-select.is-invalid:focus {
z-index: 3;
} }
.btn { .btn {
@@ -2813,6 +2811,7 @@ textarea.form-control-lg {
--bs-btn-border-width: 1px; --bs-btn-border-width: 1px;
--bs-btn-border-color: transparent; --bs-btn-border-color: transparent;
--bs-btn-border-radius: 0.375rem; --bs-btn-border-radius: 0.375rem;
--bs-btn-hover-border-color: transparent;
--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
--bs-btn-disabled-opacity: 0.65; --bs-btn-disabled-opacity: 0.65;
--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
@@ -2845,19 +2844,29 @@ textarea.form-control-lg {
background-color: var(--bs-btn-hover-bg); background-color: var(--bs-btn-hover-bg);
border-color: var(--bs-btn-hover-border-color); border-color: var(--bs-btn-hover-border-color);
} }
.btn-check:focus + .btn, .btn:focus { .btn-check + .btn:hover {
color: var(--bs-btn-color);
background-color: var(--bs-btn-bg);
border-color: var(--bs-btn-border-color);
}
.btn:focus-visible {
color: var(--bs-btn-hover-color); color: var(--bs-btn-hover-color);
background-color: var(--bs-btn-hover-bg); background-color: var(--bs-btn-hover-bg);
border-color: var(--bs-btn-hover-border-color); border-color: var(--bs-btn-hover-border-color);
outline: 0; outline: 0;
box-shadow: var(--bs-btn-focus-box-shadow); box-shadow: var(--bs-btn-focus-box-shadow);
} }
.btn-check:checked + .btn, .btn-check:active + .btn, .btn:active, .btn.active, .btn.show { .btn-check:focus-visible + .btn {
border-color: var(--bs-btn-hover-border-color);
outline: 0;
box-shadow: var(--bs-btn-focus-box-shadow);
}
.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
color: var(--bs-btn-active-color); color: var(--bs-btn-active-color);
background-color: var(--bs-btn-active-bg); background-color: var(--bs-btn-active-bg);
border-color: var(--bs-btn-active-border-color); border-color: var(--bs-btn-active-border-color);
} }
.btn-check:checked + .btn:focus, .btn-check:active + .btn:focus, .btn:active:focus, .btn.active:focus, .btn.show:focus { .btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
box-shadow: var(--bs-btn-focus-box-shadow); box-shadow: var(--bs-btn-focus-box-shadow);
} }
.btn:disabled, .btn.disabled, fieldset:disabled .btn { .btn:disabled, .btn.disabled, fieldset:disabled .btn {
@@ -3155,7 +3164,7 @@ textarea.form-control-lg {
--bs-btn-focus-shadow-rgb: 49, 132, 253; --bs-btn-focus-shadow-rgb: 49, 132, 253;
text-decoration: underline; text-decoration: underline;
} }
.btn-link:focus { .btn-link:focus-visible {
color: var(--bs-btn-color); color: var(--bs-btn-color);
} }
.btn-link:hover { .btn-link:hover {
@@ -3240,6 +3249,7 @@ textarea.form-control-lg {
} }
.dropdown-menu { .dropdown-menu {
--bs-dropdown-zindex: 1000;
--bs-dropdown-min-width: 10rem; --bs-dropdown-min-width: 10rem;
--bs-dropdown-padding-x: 0; --bs-dropdown-padding-x: 0;
--bs-dropdown-padding-y: 0.5rem; --bs-dropdown-padding-y: 0.5rem;
@@ -3266,7 +3276,7 @@ textarea.form-control-lg {
--bs-dropdown-header-padding-x: 1rem; --bs-dropdown-header-padding-x: 1rem;
--bs-dropdown-header-padding-y: 0.5rem; --bs-dropdown-header-padding-y: 0.5rem;
position: absolute; position: absolute;
z-index: 1000; z-index: var(--bs-dropdown-zindex);
display: none; display: none;
min-width: var(--bs-dropdown-min-width); min-width: var(--bs-dropdown-min-width);
padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
@@ -3566,7 +3576,7 @@ textarea.form-control-lg {
.btn-group { .btn-group {
border-radius: 0.375rem; border-radius: 0.375rem;
} }
.btn-group > .btn:not(:first-child), .btn-group > :not(.btn-check:first-child) + .btn,
.btn-group > .btn-group:not(:first-child) { .btn-group > .btn-group:not(:first-child) {
margin-right: -1px; margin-right: -1px;
} }
@@ -3676,7 +3686,7 @@ textarea.form-control-lg {
border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);
} }
.nav-tabs .nav-link { .nav-tabs .nav-link {
margin-bottom: calc(var(--bs-nav-tabs-border-width) * -1); margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));
background: none; background: none;
border: var(--bs-nav-tabs-border-width) solid transparent; border: var(--bs-nav-tabs-border-width) solid transparent;
border-top-right-radius: var(--bs-nav-tabs-border-radius); border-top-right-radius: var(--bs-nav-tabs-border-radius);
@@ -3698,7 +3708,7 @@ textarea.form-control-lg {
border-color: var(--bs-nav-tabs-link-active-border-color); border-color: var(--bs-nav-tabs-link-active-border-color);
} }
.nav-tabs .dropdown-menu { .nav-tabs .dropdown-menu {
margin-top: calc(var(--bs-nav-tabs-border-width) * -1); margin-top: calc(-1 * var(--bs-nav-tabs-border-width));
border-top-right-radius: 0; border-top-right-radius: 0;
border-top-left-radius: 0; border-top-left-radius: 0;
} }
@@ -4355,7 +4365,7 @@ textarea.form-control-lg {
} }
.accordion { .accordion {
--bs-accordion-color: #000; --bs-accordion-color: #212529;
--bs-accordion-bg: #fff; --bs-accordion-bg: #fff;
--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
--bs-accordion-border-color: var(--bs-border-color); --bs-accordion-border-color: var(--bs-border-color);
@@ -4364,9 +4374,9 @@ textarea.form-control-lg {
--bs-accordion-inner-border-radius: calc(0.375rem - 1px); --bs-accordion-inner-border-radius: calc(0.375rem - 1px);
--bs-accordion-btn-padding-x: 1.25rem; --bs-accordion-btn-padding-x: 1.25rem;
--bs-accordion-btn-padding-y: 1rem; --bs-accordion-btn-padding-y: 1rem;
--bs-accordion-btn-color: var(--bs-body-color); --bs-accordion-btn-color: #212529;
--bs-accordion-btn-bg: var(--bs-accordion-bg); --bs-accordion-btn-bg: var(--bs-accordion-bg);
--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--bs-body-color%29'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
--bs-accordion-btn-icon-width: 1.25rem; --bs-accordion-btn-icon-width: 1.25rem;
--bs-accordion-btn-icon-transform: rotate(-180deg); --bs-accordion-btn-icon-transform: rotate(-180deg);
--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
@@ -4402,7 +4412,7 @@ textarea.form-control-lg {
.accordion-button:not(.collapsed) { .accordion-button:not(.collapsed) {
color: var(--bs-accordion-active-color); color: var(--bs-accordion-active-color);
background-color: var(--bs-accordion-active-bg); background-color: var(--bs-accordion-active-bg);
box-shadow: inset 0 calc(var(--bs-accordion-border-width) * -1) 0 var(--bs-accordion-border-color); box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);
} }
.accordion-button:not(.collapsed)::after { .accordion-button:not(.collapsed)::after {
background-image: var(--bs-accordion-btn-active-icon); background-image: var(--bs-accordion-btn-active-icon);
@@ -4485,7 +4495,7 @@ textarea.form-control-lg {
.accordion-flush .accordion-item:last-child { .accordion-flush .accordion-item:last-child {
border-bottom: 0; border-bottom: 0;
} }
.accordion-flush .accordion-item .accordion-button { .accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed {
border-radius: 0; border-radius: 0;
} }
@@ -4751,12 +4761,6 @@ textarea.form-control-lg {
color: #101214; color: #101214;
} }
@-webkit-keyframes progress-bar-stripes {
0% {
background-position-x: 1rem;
}
}
@keyframes progress-bar-stripes { @keyframes progress-bar-stripes {
0% { 0% {
background-position-x: 1rem; background-position-x: 1rem;
@@ -4802,12 +4806,10 @@ textarea.form-control-lg {
} }
.progress-bar-animated { .progress-bar-animated {
-webkit-animation: 1s linear infinite progress-bar-stripes;
animation: 1s linear infinite progress-bar-stripes; animation: 1s linear infinite progress-bar-stripes;
} }
@media (prefers-reduced-motion: reduce) { @media (prefers-reduced-motion: reduce) {
.progress-bar-animated { .progress-bar-animated {
-webkit-animation: none;
animation: none; animation: none;
} }
} }
@@ -4894,18 +4896,18 @@ textarea.form-control-lg {
border-top-width: 0; border-top-width: 0;
} }
.list-group-item + .list-group-item.active { .list-group-item + .list-group-item.active {
margin-top: calc(var(--bs-list-group-border-width) * -1); margin-top: calc(-1 * var(--bs-list-group-border-width));
border-top-width: var(--bs-list-group-border-width); border-top-width: var(--bs-list-group-border-width);
} }
.list-group-horizontal { .list-group-horizontal {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal > .list-group-item:first-child { .list-group-horizontal > .list-group-item:first-child:not(:last-child) {
border-bottom-right-radius: var(--bs-list-group-border-radius); border-bottom-right-radius: var(--bs-list-group-border-radius);
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.list-group-horizontal > .list-group-item:last-child { .list-group-horizontal > .list-group-item:last-child:not(:first-child) {
border-top-left-radius: var(--bs-list-group-border-radius); border-top-left-radius: var(--bs-list-group-border-radius);
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -4917,7 +4919,7 @@ textarea.form-control-lg {
border-right-width: 0; border-right-width: 0;
} }
.list-group-horizontal > .list-group-item + .list-group-item.active { .list-group-horizontal > .list-group-item + .list-group-item.active {
margin-right: calc(var(--bs-list-group-border-width) * -1); margin-right: calc(-1 * var(--bs-list-group-border-width));
border-right-width: var(--bs-list-group-border-width); border-right-width: var(--bs-list-group-border-width);
} }
@@ -4925,11 +4927,11 @@ textarea.form-control-lg {
.list-group-horizontal-sm { .list-group-horizontal-sm {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-sm > .list-group-item:first-child { .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {
border-bottom-right-radius: var(--bs-list-group-border-radius); border-bottom-right-radius: var(--bs-list-group-border-radius);
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.list-group-horizontal-sm > .list-group-item:last-child { .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {
border-top-left-radius: var(--bs-list-group-border-radius); border-top-left-radius: var(--bs-list-group-border-radius);
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -4941,7 +4943,7 @@ textarea.form-control-lg {
border-right-width: 0; border-right-width: 0;
} }
.list-group-horizontal-sm > .list-group-item + .list-group-item.active { .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
margin-right: calc(var(--bs-list-group-border-width) * -1); margin-right: calc(-1 * var(--bs-list-group-border-width));
border-right-width: var(--bs-list-group-border-width); border-right-width: var(--bs-list-group-border-width);
} }
} }
@@ -4949,11 +4951,11 @@ textarea.form-control-lg {
.list-group-horizontal-md { .list-group-horizontal-md {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-md > .list-group-item:first-child { .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {
border-bottom-right-radius: var(--bs-list-group-border-radius); border-bottom-right-radius: var(--bs-list-group-border-radius);
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.list-group-horizontal-md > .list-group-item:last-child { .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {
border-top-left-radius: var(--bs-list-group-border-radius); border-top-left-radius: var(--bs-list-group-border-radius);
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -4965,7 +4967,7 @@ textarea.form-control-lg {
border-right-width: 0; border-right-width: 0;
} }
.list-group-horizontal-md > .list-group-item + .list-group-item.active { .list-group-horizontal-md > .list-group-item + .list-group-item.active {
margin-right: calc(var(--bs-list-group-border-width) * -1); margin-right: calc(-1 * var(--bs-list-group-border-width));
border-right-width: var(--bs-list-group-border-width); border-right-width: var(--bs-list-group-border-width);
} }
} }
@@ -4973,11 +4975,11 @@ textarea.form-control-lg {
.list-group-horizontal-lg { .list-group-horizontal-lg {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-lg > .list-group-item:first-child { .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {
border-bottom-right-radius: var(--bs-list-group-border-radius); border-bottom-right-radius: var(--bs-list-group-border-radius);
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.list-group-horizontal-lg > .list-group-item:last-child { .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {
border-top-left-radius: var(--bs-list-group-border-radius); border-top-left-radius: var(--bs-list-group-border-radius);
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -4989,7 +4991,7 @@ textarea.form-control-lg {
border-right-width: 0; border-right-width: 0;
} }
.list-group-horizontal-lg > .list-group-item + .list-group-item.active { .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
margin-right: calc(var(--bs-list-group-border-width) * -1); margin-right: calc(-1 * var(--bs-list-group-border-width));
border-right-width: var(--bs-list-group-border-width); border-right-width: var(--bs-list-group-border-width);
} }
} }
@@ -4997,11 +4999,11 @@ textarea.form-control-lg {
.list-group-horizontal-xl { .list-group-horizontal-xl {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-xl > .list-group-item:first-child { .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {
border-bottom-right-radius: var(--bs-list-group-border-radius); border-bottom-right-radius: var(--bs-list-group-border-radius);
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.list-group-horizontal-xl > .list-group-item:last-child { .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {
border-top-left-radius: var(--bs-list-group-border-radius); border-top-left-radius: var(--bs-list-group-border-radius);
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -5013,7 +5015,7 @@ textarea.form-control-lg {
border-right-width: 0; border-right-width: 0;
} }
.list-group-horizontal-xl > .list-group-item + .list-group-item.active { .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
margin-right: calc(var(--bs-list-group-border-width) * -1); margin-right: calc(-1 * var(--bs-list-group-border-width));
border-right-width: var(--bs-list-group-border-width); border-right-width: var(--bs-list-group-border-width);
} }
} }
@@ -5021,11 +5023,11 @@ textarea.form-control-lg {
.list-group-horizontal-xxl { .list-group-horizontal-xxl {
flex-direction: row; flex-direction: row;
} }
.list-group-horizontal-xxl > .list-group-item:first-child { .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {
border-bottom-right-radius: var(--bs-list-group-border-radius); border-bottom-right-radius: var(--bs-list-group-border-radius);
border-top-left-radius: 0; border-top-left-radius: 0;
} }
.list-group-horizontal-xxl > .list-group-item:last-child { .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {
border-top-left-radius: var(--bs-list-group-border-radius); border-top-left-radius: var(--bs-list-group-border-radius);
border-bottom-right-radius: 0; border-bottom-right-radius: 0;
} }
@@ -5037,7 +5039,7 @@ textarea.form-control-lg {
border-right-width: 0; border-right-width: 0;
} }
.list-group-horizontal-xxl > .list-group-item + .list-group-item.active { .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {
margin-right: calc(var(--bs-list-group-border-width) * -1); margin-right: calc(-1 * var(--bs-list-group-border-width));
border-right-width: var(--bs-list-group-border-width); border-right-width: var(--bs-list-group-border-width);
} }
} }
@@ -5197,6 +5199,7 @@ textarea.form-control-lg {
} }
.toast { .toast {
--bs-toast-zindex: 1090;
--bs-toast-padding-x: 0.75rem; --bs-toast-padding-x: 0.75rem;
--bs-toast-padding-y: 0.5rem; --bs-toast-padding-y: 0.5rem;
--bs-toast-spacing: 1.5rem; --bs-toast-spacing: 1.5rem;
@@ -5230,8 +5233,9 @@ textarea.form-control-lg {
} }
.toast-container { .toast-container {
--bs-toast-zindex: 1090;
position: absolute; position: absolute;
z-index: 1090; z-index: var(--bs-toast-zindex);
width: -webkit-max-content; width: -webkit-max-content;
width: -moz-max-content; width: -moz-max-content;
width: max-content; width: max-content;
@@ -5254,7 +5258,7 @@ textarea.form-control-lg {
border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));
} }
.toast-header .btn-close { .toast-header .btn-close {
margin-left: calc(var(--bs-toast-padding-x) * -0.5); margin-left: calc(-0.5 * var(--bs-toast-padding-x));
margin-right: var(--bs-toast-padding-x); margin-right: var(--bs-toast-padding-x);
} }
@@ -5381,7 +5385,7 @@ textarea.form-control-lg {
} }
.modal-header .btn-close { .modal-header .btn-close {
padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);
margin: calc(var(--bs-modal-header-padding-y) * -0.5) auto calc(var(--bs-modal-header-padding-y) * -0.5) calc(var(--bs-modal-header-padding-x) * -0.5); margin: calc(-0.5 * var(--bs-modal-header-padding-y)) auto calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x));
} }
.modal-title { .modal-title {
@@ -5663,7 +5667,7 @@ textarea.form-control-lg {
--bs-popover-header-padding-x: 1rem; --bs-popover-header-padding-x: 1rem;
--bs-popover-header-padding-y: 0.5rem; --bs-popover-header-padding-y: 0.5rem;
--bs-popover-header-font-size: 1rem; --bs-popover-header-font-size: 1rem;
--bs-popover-header-color: var(--bs-heading-color); --bs-popover-header-color: ;
--bs-popover-header-bg: #f0f0f0; --bs-popover-header-bg: #f0f0f0;
--bs-popover-body-padding-x: 1rem; --bs-popover-body-padding-x: 1rem;
--bs-popover-body-padding-y: 1rem; --bs-popover-body-padding-y: 1rem;
@@ -5710,7 +5714,7 @@ textarea.form-control-lg {
} }
.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { .bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {
bottom: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
} }
.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { .bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {
border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;
@@ -5724,7 +5728,7 @@ textarea.form-control-lg {
border-top-color: var(--bs-popover-bg); border-top-color: var(--bs-popover-bg);
} }
.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { .bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {
left: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
width: var(--bs-popover-arrow-height); width: var(--bs-popover-arrow-height);
height: var(--bs-popover-arrow-width); height: var(--bs-popover-arrow-width);
} }
@@ -5740,7 +5744,7 @@ textarea.form-control-lg {
border-right-color: var(--bs-popover-bg); border-right-color: var(--bs-popover-bg);
} }
.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { .bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {
top: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
} }
.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { .bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {
border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);
@@ -5759,12 +5763,12 @@ textarea.form-control-lg {
right: 50%; right: 50%;
display: block; display: block;
width: var(--bs-popover-arrow-width); width: var(--bs-popover-arrow-width);
margin-right: calc(var(--bs-popover-arrow-width) * -0.5); margin-right: calc(-0.5 * var(--bs-popover-arrow-width));
content: ""; content: "";
border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);
} }
.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { .bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {
right: calc(var(--bs-popover-arrow-height) * -1 - var(--bs-popover-border-width)); right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));
width: var(--bs-popover-arrow-height); width: var(--bs-popover-arrow-height);
height: var(--bs-popover-arrow-width); height: var(--bs-popover-arrow-width);
} }
@@ -5838,15 +5842,17 @@ textarea.form-control-lg {
.carousel-item-prev { .carousel-item-prev {
display: block; display: block;
} }
.carousel-item-next:not(.carousel-item-start), .carousel-item-next:not(.carousel-item-start),
.active.carousel-item-end { .active.carousel-item-end {
transform: translateX(100%); transform: translateX(-100%);
} }
.carousel-item-prev:not(.carousel-item-end), .carousel-item-prev:not(.carousel-item-end),
.active.carousel-item-start { .active.carousel-item-start {
transform: translateX(-100%); transform: translateX(100%);
} }
.carousel-fade .carousel-item { .carousel-fade .carousel-item {
opacity: 0; opacity: 0;
transition-property: opacity; transition-property: opacity;
@@ -5999,16 +6005,9 @@ textarea.form-control-lg {
height: var(--bs-spinner-height); height: var(--bs-spinner-height);
vertical-align: var(--bs-spinner-vertical-align); vertical-align: var(--bs-spinner-vertical-align);
border-radius: 50%; border-radius: 50%;
-webkit-animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);
} }
@-webkit-keyframes spinner-border {
to {
transform: rotate(360deg) ;
}
}
@keyframes spinner-border { @keyframes spinner-border {
to { to {
transform: rotate(360deg) ; transform: rotate(360deg) ;
@@ -6031,16 +6030,6 @@ textarea.form-control-lg {
--bs-spinner-border-width: 0.2em; --bs-spinner-border-width: 0.2em;
} }
@-webkit-keyframes spinner-grow {
0% {
transform: scale(0);
}
50% {
opacity: 1;
transform: none;
}
}
@keyframes spinner-grow { @keyframes spinner-grow {
0% { 0% {
transform: scale(0); transform: scale(0);
@@ -6072,6 +6061,7 @@ textarea.form-control-lg {
} }
} }
.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { .offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
--bs-offcanvas-zindex: 1045;
--bs-offcanvas-width: 400px; --bs-offcanvas-width: 400px;
--bs-offcanvas-height: 30vh; --bs-offcanvas-height: 30vh;
--bs-offcanvas-padding-x: 1rem; --bs-offcanvas-padding-x: 1rem;
@@ -6087,7 +6077,7 @@ textarea.form-control-lg {
.offcanvas-sm { .offcanvas-sm {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6175,7 +6165,7 @@ textarea.form-control-lg {
.offcanvas-md { .offcanvas-md {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6263,7 +6253,7 @@ textarea.form-control-lg {
.offcanvas-lg { .offcanvas-lg {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6351,7 +6341,7 @@ textarea.form-control-lg {
.offcanvas-xl { .offcanvas-xl {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6439,7 +6429,7 @@ textarea.form-control-lg {
.offcanvas-xxl { .offcanvas-xxl {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6526,7 +6516,7 @@ textarea.form-control-lg {
.offcanvas { .offcanvas {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
z-index: 1045; z-index: var(--bs-offcanvas-zindex);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
max-width: 100%; max-width: 100%;
@@ -6604,9 +6594,9 @@ textarea.form-control-lg {
} }
.offcanvas-header .btn-close { .offcanvas-header .btn-close {
padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);
margin-top: calc(var(--bs-offcanvas-padding-y) * -0.5); margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y));
margin-left: calc(var(--bs-offcanvas-padding-x) * -0.5); margin-left: calc(-0.5 * var(--bs-offcanvas-padding-x));
margin-bottom: calc(var(--bs-offcanvas-padding-y) * -0.5); margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y));
} }
.offcanvas-title { .offcanvas-title {
@@ -6646,16 +6636,9 @@ textarea.form-control-lg {
} }
.placeholder-glow .placeholder { .placeholder-glow .placeholder {
-webkit-animation: placeholder-glow 2s ease-in-out infinite;
animation: placeholder-glow 2s ease-in-out infinite; animation: placeholder-glow 2s ease-in-out infinite;
} }
@-webkit-keyframes placeholder-glow {
50% {
opacity: 0.2;
}
}
@keyframes placeholder-glow { @keyframes placeholder-glow {
50% { 50% {
opacity: 0.2; opacity: 0.2;
@@ -6666,17 +6649,9 @@ textarea.form-control-lg {
mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
-webkit-mask-size: 200% 100%; -webkit-mask-size: 200% 100%;
mask-size: 200% 100%; mask-size: 200% 100%;
-webkit-animation: placeholder-wave 2s linear infinite;
animation: placeholder-wave 2s linear infinite; animation: placeholder-wave 2s linear infinite;
} }
@-webkit-keyframes placeholder-wave {
100% {
-webkit-mask-position: -200% 0%;
mask-position: -200% 0%;
}
}
@keyframes placeholder-wave { @keyframes placeholder-wave {
100% { 100% {
-webkit-mask-position: -200% 0%; -webkit-mask-position: -200% 0%;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+103 -56
View File
@@ -15,7 +15,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>GPW_Admin</RootNamespace> <RootNamespace>GPW_Admin</RootNamespace>
<AssemblyName>GPW_Admin</AssemblyName> <AssemblyName>GPW_Admin</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<UseIISExpress>true</UseIISExpress> <UseIISExpress>true</UseIISExpress>
<IISExpressSSLPort /> <IISExpressSSLPort />
<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication> <IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>
@@ -26,6 +26,7 @@
</NuGetPackageImportStamp> </NuGetPackageImportStamp>
<Use64BitIISExpress /> <Use64BitIISExpress />
<TypeScriptToolsVersion>Latest</TypeScriptToolsVersion> <TypeScriptToolsVersion>Latest</TypeScriptToolsVersion>
<TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
@@ -55,8 +56,14 @@
<Reference Include="AspNet.ScriptManager.bootstrap, Version=5.2.3.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="AspNet.ScriptManager.bootstrap, Version=5.2.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AspNet.ScriptManager.bootstrap.5.2.3\lib\net45\AspNet.ScriptManager.bootstrap.dll</HintPath> <HintPath>..\packages\AspNet.ScriptManager.bootstrap.5.2.3\lib\net45\AspNet.ScriptManager.bootstrap.dll</HintPath>
</Reference> </Reference>
<Reference Include="AspNet.ScriptManager.jQuery, Version=3.6.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="AspNet.ScriptManager.jQuery, Version=3.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\AspNet.ScriptManager.jQuery.3.6.0\lib\net45\AspNet.ScriptManager.jQuery.dll</HintPath> <HintPath>..\packages\AspNet.ScriptManager.jQuery.3.7.0\lib\net45\AspNet.ScriptManager.jQuery.dll</HintPath>
</Reference>
<Reference Include="AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
<HintPath>..\packages\AWSSDK.Core.3.7.302.14\lib\net45\AWSSDK.Core.dll</HintPath>
</Reference>
<Reference Include="AWSSDK.SecurityToken, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
<HintPath>..\packages\AWSSDK.SecurityToken.3.7.100.14\lib\net45\AWSSDK.SecurityToken.dll</HintPath>
</Reference> </Reference>
<Reference Include="DayPilot, Version=5.0.303.0, Culture=neutral, PublicKeyToken=ce5d34538e20ef65, processorArchitecture=MSIL"> <Reference Include="DayPilot, Version=5.0.303.0, Culture=neutral, PublicKeyToken=ce5d34538e20ef65, processorArchitecture=MSIL">
<HintPath>..\packages\DayPilot.5.0.303\lib\DayPilot.dll</HintPath> <HintPath>..\packages\DayPilot.5.0.303\lib\DayPilot.dll</HintPath>
@@ -64,40 +71,39 @@
<Reference Include="DnsClient, Version=1.6.1.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL"> <Reference Include="DnsClient, Version=1.6.1.0, Culture=neutral, PublicKeyToken=4574bb5573c51424, processorArchitecture=MSIL">
<HintPath>..\packages\DnsClient.1.6.1\lib\net45\DnsClient.dll</HintPath> <HintPath>..\packages\DnsClient.1.6.1\lib\net45\DnsClient.dll</HintPath>
</Reference> </Reference>
<Reference Include="Elmah, Version=1.2.14706.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\elmah.corelibrary.1.2.2\lib\Elmah.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL"> <Reference Include="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath> <HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.AspNet.SessionState.SessionStateModule, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.AspNet.SessionState.SessionStateModule.1.1.0\lib\Net462\Microsoft.AspNet.SessionState.SessionStateModule.dll</HintPath> <HintPath>..\packages\Microsoft.AspNet.SessionState.SessionStateModule.2.0.0\lib\Net462\Microsoft.AspNet.SessionState.SessionStateModule.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath> <HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Web.Infrastructure, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.Infrastructure.2.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath> <HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.Web.RedisSessionStateProvider, Version=4.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Web.RedisSessionStateProvider.4.0.1\lib\net462\Microsoft.Web.RedisSessionStateProvider.dll</HintPath> <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Bson, Version=2.17.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Microsoft.Web.RedisSessionStateProvider, Version=5.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Bson.2.17.1\lib\netstandard2.0\MongoDB.Bson.dll</HintPath> <HintPath>..\packages\Microsoft.Web.RedisSessionStateProvider.5.0.4\lib\net472\Microsoft.Web.RedisSessionStateProvider.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Driver, Version=2.16.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Bson, Version=2.24.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.2.16.1\lib\netstandard2.0\MongoDB.Driver.dll</HintPath> <HintPath>..\packages\MongoDB.Bson.2.24.0\lib\netstandard2.0\MongoDB.Bson.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Driver.Core, Version=2.17.1.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Driver, Version=2.24.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Driver.Core.2.17.1\lib\netstandard2.0\MongoDB.Driver.Core.dll</HintPath> <HintPath>..\packages\MongoDB.Driver.2.24.0\lib\netstandard2.0\MongoDB.Driver.dll</HintPath>
</Reference> </Reference>
<Reference Include="MongoDB.Libmongocrypt, Version=1.5.5.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="MongoDB.Driver.Core, Version=2.24.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Libmongocrypt.1.5.5\lib\netstandard2.0\MongoDB.Libmongocrypt.dll</HintPath> <HintPath>..\packages\MongoDB.Driver.Core.2.24.0\lib\netstandard2.0\MongoDB.Driver.Core.dll</HintPath>
</Reference>
<Reference Include="MongoDB.Libmongocrypt, Version=1.8.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MongoDB.Libmongocrypt.1.8.2\lib\netstandard2.0\MongoDB.Libmongocrypt.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.2.8\lib\net46\NLog.dll</HintPath> <HintPath>..\packages\NLog.5.2.8\lib\net46\NLog.dll</HintPath>
@@ -109,28 +115,37 @@
<HintPath>..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Charting.dll</HintPath> <HintPath>..\packages\PDFsharp.1.50.5147\lib\net20\PdfSharp.Charting.dll</HintPath>
</Reference> </Reference>
<Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL"> <Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
<HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.2\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath> <HintPath>..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll</HintPath>
</Reference> </Reference>
<Reference Include="SharpCompress, Version=0.32.1.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL"> <Reference Include="SharpCompress, Version=0.36.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96, processorArchitecture=MSIL">
<HintPath>..\packages\SharpCompress.0.32.1\lib\net461\SharpCompress.dll</HintPath> <HintPath>..\packages\SharpCompress.0.36.0\lib\net462\SharpCompress.dll</HintPath>
</Reference>
<Reference Include="Snappier, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a1b25124e6e13a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Snappier.1.0.0\lib\netstandard2.0\Snappier.dll</HintPath>
</Reference> </Reference>
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL"> <Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.2.6.48\lib\net461\StackExchange.Redis.dll</HintPath> <HintPath>..\packages\StackExchange.Redis.2.7.27\lib\net461\StackExchange.Redis.dll</HintPath>
</Reference> </Reference>
<Reference Include="SteamWare, Version=5.2.2206.1310, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="StackExchange.Redis.StrongName, Version=1.0.316.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.5.2.2206.1310\lib\net462\SteamWare.dll</HintPath> <HintPath>..\packages\StackExchange.Redis.StrongName.1.0.333\lib\net45\StackExchange.Redis.StrongName.dll</HintPath>
</Reference> </Reference>
<Reference Include="SteamWare.Logger, Version=5.2.2206.1310, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="SteamWare, Version=5.3.2311.2908, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.Logger.5.2.2206.1310\lib\net462\SteamWare.Logger.dll</HintPath> <HintPath>..\packages\SteamWare.5.3.2311.2908\lib\net462\SteamWare.dll</HintPath>
</Reference>
<Reference Include="SteamWare.Logger, Version=5.3.2311.2908, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SteamWare.Logger.5.3.2311.2908\lib\net462\SteamWare.Logger.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath> <HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration.ConfigurationManager, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Configuration.ConfigurationManager.6.0.0\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
</Reference>
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Diagnostics.PerformanceCounter, Version=6.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Diagnostics.PerformanceCounter, Version=6.0.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.PerformanceCounter.6.0.1\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath> <HintPath>..\packages\System.Diagnostics.PerformanceCounter.6.0.1\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
</Reference> </Reference>
@@ -141,6 +156,7 @@
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath> <HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Net" />
<!-- <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <!-- <Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath> <HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private> <Private>True</Private>
@@ -162,6 +178,9 @@
</Reference> </Reference>
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" /> <Reference Include="System.Security" />
<Reference Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath> <HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private> <Private>True</Private>
@@ -181,9 +200,16 @@
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath> <HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="System.Security.Permissions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll</HintPath>
</Reference>
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" /> <Reference Include="System.ServiceModel" />
<Reference Include="System.Text.Encoding.CodePages, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <Reference Include="System.ServiceProcess" />
<HintPath>..\packages\System.Text.Encoding.CodePages.6.0.0\lib\net461\System.Text.Encoding.CodePages.dll</HintPath> <Reference Include="System.Text.Encoding.CodePages, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encoding.CodePages.8.0.0\lib\net462\System.Text.Encoding.CodePages.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.Threading.Channels, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Channels.6.0.0\lib\net461\System.Threading.Channels.dll</HintPath> <HintPath>..\packages\System.Threading.Channels.6.0.0\lib\net461\System.Threading.Channels.dll</HintPath>
@@ -195,10 +221,9 @@
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL"> <Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath> <HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" /> <Reference Include="System.Web.Services" />
@@ -222,10 +247,15 @@
<Reference Include="Microsoft.AspNet.FriendlyUrls"> <Reference Include="Microsoft.AspNet.FriendlyUrls">
<HintPath>..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.2\lib\net45\Microsoft.AspNet.FriendlyUrls.dll</HintPath> <HintPath>..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.2\lib\net45\Microsoft.AspNet.FriendlyUrls.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath> <HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="WindowsBase" />
<Reference Include="ZstdSharp, Version=0.7.5.0, Culture=neutral, PublicKeyToken=8d151af33a4ad5cf, processorArchitecture=MSIL">
<HintPath>..\packages\ZstdSharp.Port.0.7.5\lib\net462\ZstdSharp.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />
@@ -233,7 +263,6 @@
<ItemGroup> <ItemGroup>
<Content Include="About.aspx" /> <Content Include="About.aspx" />
<Content Include="approvTimbrature.aspx" /> <Content Include="approvTimbrature.aspx" />
<Content Include="App_Readme\Elmah.txt" />
<Content Include="App_Readme\README_SteamWare.txt" /> <Content Include="App_Readme\README_SteamWare.txt" />
<Content Include="App_Readme\SteamWare_demo\example-config-table.txt" /> <Content Include="App_Readme\SteamWare_demo\example-config-table.txt" />
<Content Include="App_Readme\SteamWare_demo\example-favicon.ico" /> <Content Include="App_Readme\SteamWare_demo\example-favicon.ico" />
@@ -331,9 +360,6 @@
<Content Include="Content\themes\base\tabs.css" /> <Content Include="Content\themes\base\tabs.css" />
<Content Include="Content\themes\base\theme.css" /> <Content Include="Content\themes\base\theme.css" />
<Content Include="Content\themes\base\tooltip.css" /> <Content Include="Content\themes\base\tooltip.css" />
<Content Include="Core\Compression\Snappy\lib\win\snappy32.dll" />
<Content Include="Core\Compression\Snappy\lib\win\snappy64.dll" />
<Content Include="Core\Compression\Zstandard\lib\win\libzstd.dll" />
<Content Include="dipendenti.aspx" /> <Content Include="dipendenti.aspx" />
<Content Include="ExportCommesse.aspx" /> <Content Include="ExportCommesse.aspx" />
<Content Include="ExportTimbZucchetti.aspx" /> <Content Include="ExportTimbZucchetti.aspx" />
@@ -575,10 +601,6 @@
<Content Include="Content\bootstrap-grid.rtl.css.map" /> <Content Include="Content\bootstrap-grid.rtl.css.map" />
<Content Include="Content\bootstrap-grid.min.css.map" /> <Content Include="Content\bootstrap-grid.min.css.map" />
<Content Include="Content\bootstrap-grid.css.map" /> <Content Include="Content\bootstrap-grid.css.map" />
<Content Include="Core\Compression\Zstandard\lib\osx\libzstd.dylib" />
<Content Include="Core\Compression\Zstandard\lib\linux\libzstd.so" />
<Content Include="Core\Compression\Snappy\lib\osx\libsnappy64.dylib" />
<Content Include="Core\Compression\Snappy\lib\linux\libsnappy64.so" />
<None Include="Properties\PublishProfiles\IIS-PROD.pubxml" /> <None Include="Properties\PublishProfiles\IIS-PROD.pubxml" />
<None Include="Properties\PublishProfiles\IIS03.pubxml" /> <None Include="Properties\PublishProfiles\IIS03.pubxml" />
<Content Include="Scripts\bootstrap.min.js.map" /> <Content Include="Scripts\bootstrap.min.js.map" />
@@ -587,11 +609,11 @@
<Content Include="Scripts\bootstrap.esm.js.map" /> <Content Include="Scripts\bootstrap.esm.js.map" />
<Content Include="Scripts\bootstrap.bundle.min.js.map" /> <Content Include="Scripts\bootstrap.bundle.min.js.map" />
<Content Include="Scripts\bootstrap.bundle.js.map" /> <Content Include="Scripts\bootstrap.bundle.js.map" />
<None Include="Scripts\jquery-3.6.0.intellisense.js" /> <None Include="Scripts\jquery-3.7.0.intellisense.js" />
<Content Include="Scripts\jquery-3.6.0.js" /> <Content Include="Scripts\jquery-3.7.0.js" />
<Content Include="Scripts\jquery-3.6.0.min.js" /> <Content Include="Scripts\jquery-3.7.0.min.js" />
<Content Include="Scripts\jquery-3.6.0.slim.js" /> <Content Include="Scripts\jquery-3.7.0.slim.js" />
<Content Include="Scripts\jquery-3.6.0.slim.min.js" /> <Content Include="Scripts\jquery-3.7.0.slim.min.js" />
<Content Include="Scripts\jquery-ui-1.13.1.js" /> <Content Include="Scripts\jquery-ui-1.13.1.js" />
<Content Include="Scripts\jquery-ui-1.13.1.min.js" /> <Content Include="Scripts\jquery-ui-1.13.1.min.js" />
<Content Include="Scripts\moment-with-locales.js" /> <Content Include="Scripts\moment-with-locales.js" />
@@ -670,6 +692,7 @@
<Content Include="Scripts\umd\popper.js" /> <Content Include="Scripts\umd\popper.js" />
<Content Include="Scripts\umd\popper.min.js" /> <Content Include="Scripts\umd\popper.min.js" />
<Content Include="tagMensili.aspx" /> <Content Include="tagMensili.aspx" />
<Content Include="tags.aspx" />
<Content Include="Test.aspx" /> <Content Include="Test.aspx" />
<Content Include="Test2.aspx" /> <Content Include="Test2.aspx" />
<Content Include="Vocabolario.aspx" /> <Content Include="Vocabolario.aspx" />
@@ -681,6 +704,8 @@
<Content Include="WebUserControls\cmp_footer.ascx" /> <Content Include="WebUserControls\cmp_footer.ascx" />
<Content Include="WebUserControls\cmp_gestMalattia.ascx" /> <Content Include="WebUserControls\cmp_gestMalattia.ascx" />
<Content Include="WebUserControls\cmp_gestRichDip.ascx" /> <Content Include="WebUserControls\cmp_gestRichDip.ascx" />
<Content Include="WebUserControls\cmp_gestTagFasi.ascx" />
<Content Include="WebUserControls\cmp_groupAssignClone.ascx" />
<Content Include="WebUserControls\cmp_homeButtons.ascx" /> <Content Include="WebUserControls\cmp_homeButtons.ascx" />
<Content Include="WebUserControls\cmp_lemmiVocab.ascx" /> <Content Include="WebUserControls\cmp_lemmiVocab.ascx" />
<Content Include="WebUserControls\cmp_menuTop.ascx" /> <Content Include="WebUserControls\cmp_menuTop.ascx" />
@@ -786,10 +811,10 @@
<Content Include="Scripts\popper.js.map" /> <Content Include="Scripts\popper.js.map" />
<Content Include="Scripts\popper-utils.min.js.map" /> <Content Include="Scripts\popper-utils.min.js.map" />
<Content Include="Scripts\popper-utils.js.map" /> <Content Include="Scripts\popper-utils.js.map" />
<Content Include="Scripts\jquery-3.6.0.slim.min.map" />
<Content Include="Scripts\jquery-3.6.0.min.map" />
<Content Include="Scripts\moment.min.js.map" /> <Content Include="Scripts\moment.min.js.map" />
<Content Include="Scripts\moment-with-locales.min.js.map" /> <Content Include="Scripts\moment-with-locales.min.js.map" />
<Content Include="Scripts\jquery-3.7.0.slim.min.map" />
<Content Include="Scripts\jquery-3.7.0.min.map" />
<None Include="Web.Debug.config"> <None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon> <DependentUpon>Web.config</DependentUpon>
</None> </None>
@@ -997,6 +1022,13 @@
<Compile Include="tagMensili.aspx.designer.cs"> <Compile Include="tagMensili.aspx.designer.cs">
<DependentUpon>tagMensili.aspx</DependentUpon> <DependentUpon>tagMensili.aspx</DependentUpon>
</Compile> </Compile>
<Compile Include="tags.aspx.cs">
<DependentUpon>tags.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="tags.aspx.designer.cs">
<DependentUpon>tags.aspx</DependentUpon>
</Compile>
<Compile Include="Test.aspx.cs"> <Compile Include="Test.aspx.cs">
<DependentUpon>Test.aspx</DependentUpon> <DependentUpon>Test.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
@@ -1099,6 +1131,20 @@
<Compile Include="WebUserControls\cmp_gestRichDip.ascx.designer.cs"> <Compile Include="WebUserControls\cmp_gestRichDip.ascx.designer.cs">
<DependentUpon>cmp_gestRichDip.ascx</DependentUpon> <DependentUpon>cmp_gestRichDip.ascx</DependentUpon>
</Compile> </Compile>
<Compile Include="WebUserControls\cmp_gestTagFasi.ascx.cs">
<DependentUpon>cmp_gestTagFasi.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_gestTagFasi.ascx.designer.cs">
<DependentUpon>cmp_gestTagFasi.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_groupAssignClone.ascx.cs">
<DependentUpon>cmp_groupAssignClone.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="WebUserControls\cmp_groupAssignClone.ascx.designer.cs">
<DependentUpon>cmp_groupAssignClone.ascx</DependentUpon>
</Compile>
<Compile Include="WebUserControls\cmp_homeButtons.ascx.cs"> <Compile Include="WebUserControls\cmp_homeButtons.ascx.cs">
<DependentUpon>cmp_homeButtons.ascx</DependentUpon> <DependentUpon>cmp_homeButtons.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType> <SubType>ASPXCodeBehind</SubType>
@@ -1403,6 +1449,7 @@
<TypeScriptCompile Include="Scripts\index.d.ts" /> <TypeScriptCompile Include="Scripts\index.d.ts" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Analyzer Include="..\packages\AWSSDK.SecurityToken.3.7.100.14\analyzers\dotnet\cs\AWSSDK.SecurityToken.CodeAnalysis.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll" /> <Analyzer Include="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.NetAnalyzers.dll" /> <Analyzer Include="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.NetAnalyzers.dll" />
</ItemGroup> </ItemGroup>
@@ -1475,13 +1522,13 @@
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" /> <Error Condition="!Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props'))" /> <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets'))" /> <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets'))" />
<Error Condition="!Exists('..\packages\MongoDB.Libmongocrypt.1.5.5\build\MongoDB.Libmongocrypt.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Libmongocrypt.1.5.5\build\MongoDB.Libmongocrypt.targets'))" /> <Error Condition="!Exists('..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets'))" />
<Error Condition="!Exists('..\packages\MongoDB.Driver.Core.2.17.1\build\MongoDB.Driver.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Driver.Core.2.17.1\build\MongoDB.Driver.Core.targets'))" /> <Error Condition="!Exists('..\packages\MongoDB.Libmongocrypt.1.8.2\build\MongoDB.Libmongocrypt.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MongoDB.Libmongocrypt.1.8.2\build\MongoDB.Libmongocrypt.targets'))" />
</Target> </Target>
<Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" /> <Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" /> <Import Project="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.6.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.targets')" />
<Import Project="..\packages\MongoDB.Libmongocrypt.1.5.5\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.5.5\build\MongoDB.Libmongocrypt.targets')" /> <Import Project="..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets')" />
<Import Project="..\packages\MongoDB.Driver.Core.2.17.1\build\MongoDB.Driver.Core.targets" Condition="Exists('..\packages\MongoDB.Driver.Core.2.17.1\build\MongoDB.Driver.Core.targets')" /> <Import Project="..\packages\MongoDB.Libmongocrypt.1.8.2\build\MongoDB.Libmongocrypt.targets" Condition="Exists('..\packages\MongoDB.Libmongocrypt.1.8.2\build\MongoDB.Libmongocrypt.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">
+2 -2
View File
@@ -1,5 +1,5 @@
/// <reference path="jquery-ui-1.13.1.js" /> /// <reference path="jquery-3.7.0.js" />
/// <reference path="jquery-3.6.0.js" /> /// <reference path="jquery-ui-1.13.1.js" />
/// <autosync enabled="true" /> /// <autosync enabled="true" />
/// <reference path="bootstrap.js" /> /// <reference path="bootstrap.js" />
/// <reference path="jquery-3.1.1.min.js" /> /// <reference path="jquery-3.1.1.min.js" />
+152 -143
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v5.2.0 (https://getbootstrap.com/) * Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@@ -11,7 +11,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/index.js * Bootstrap (v5.2.3): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -326,7 +326,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/event-handler.js * Bootstrap (v5.2.3): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -595,7 +595,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/data.js * Bootstrap (v5.2.3): dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -647,7 +647,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/manipulator.js * Bootstrap (v5.2.3): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -717,7 +717,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/config.js * Bootstrap (v5.2.3): util/config.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -778,7 +778,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): base-component.js * Bootstrap (v5.2.3): base-component.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -786,7 +786,7 @@
* Constants * Constants
*/ */
const VERSION = '5.2.0'; const VERSION = '5.2.3';
/** /**
* Class definition * Class definition
*/ */
@@ -857,7 +857,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/component-functions.js * Bootstrap (v5.2.3): util/component-functions.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -883,7 +883,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): alert.js * Bootstrap (v5.2.3): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -963,7 +963,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): button.js * Bootstrap (v5.2.3): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1025,7 +1025,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/selector-engine.js * Bootstrap (v5.2.3): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1096,7 +1096,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/swipe.js * Bootstrap (v5.2.3): util/swipe.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1232,7 +1232,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): carousel.js * Bootstrap (v5.2.3): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1680,7 +1680,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): collapse.js * Bootstrap (v5.2.3): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2128,38 +2128,57 @@
var min = Math.min; var min = Math.min;
var round = Math.round; var round = Math.round;
function getBoundingClientRect(element, includeScale) { function getUAString() {
var uaData = navigator.userAgentData;
if (uaData != null && uaData.brands) {
return uaData.brands.map(function (item) {
return item.brand + "/" + item.version;
}).join(' ');
}
return navigator.userAgent;
}
function isLayoutViewport() {
return !/^((?!chrome|android).)*safari/i.test(getUAString());
}
function getBoundingClientRect(element, includeScale, isFixedStrategy) {
if (includeScale === void 0) { if (includeScale === void 0) {
includeScale = false; includeScale = false;
} }
var rect = element.getBoundingClientRect(); if (isFixedStrategy === void 0) {
isFixedStrategy = false;
}
var clientRect = element.getBoundingClientRect();
var scaleX = 1; var scaleX = 1;
var scaleY = 1; var scaleY = 1;
if (isHTMLElement(element) && includeScale) { if (includeScale && isHTMLElement(element)) {
var offsetHeight = element.offsetHeight; scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
// Fallback to 1 in case both values are `0`
if (offsetWidth > 0) {
scaleX = round(rect.width) / offsetWidth || 1;
} }
if (offsetHeight > 0) { var _ref = isElement(element) ? getWindow(element) : window,
scaleY = round(rect.height) / offsetHeight || 1; visualViewport = _ref.visualViewport;
}
}
var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
var width = clientRect.width / scaleX;
var height = clientRect.height / scaleY;
return { return {
width: rect.width / scaleX, width: width,
height: rect.height / scaleY, height: height,
top: rect.top / scaleY, top: y,
right: rect.right / scaleX, right: x + width,
bottom: rect.bottom / scaleY, bottom: y + height,
left: rect.left / scaleX, left: x,
x: rect.left / scaleX, x: x,
y: rect.top / scaleY y: y
}; };
} }
@@ -2254,8 +2273,8 @@
function getContainingBlock(element) { function getContainingBlock(element) {
var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1; var isFirefox = /firefox/i.test(getUAString());
var isIE = navigator.userAgent.indexOf('Trident') !== -1; var isIE = /Trident/i.test(getUAString());
if (isIE && isHTMLElement(element)) { if (isIE && isHTMLElement(element)) {
// In IE 9, 10 and 11 fixed elements containing block is always established by the viewport // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
@@ -2676,31 +2695,21 @@
return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
} }
function getViewportRect(element) { function getViewportRect(element, strategy) {
var win = getWindow(element); var win = getWindow(element);
var html = getDocumentElement(element); var html = getDocumentElement(element);
var visualViewport = win.visualViewport; var visualViewport = win.visualViewport;
var width = html.clientWidth; var width = html.clientWidth;
var height = html.clientHeight; var height = html.clientHeight;
var x = 0; var x = 0;
var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper var y = 0;
// can be obscured underneath it.
// Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
// if it isn't open, so if this isn't available, the popper will be detected
// to overflow the bottom of the screen too early.
if (visualViewport) { if (visualViewport) {
width = visualViewport.width; width = visualViewport.width;
height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently) height = visualViewport.height;
// In Chrome, it returns a value very close to 0 (+/-) but contains rounding var layoutViewport = isLayoutViewport();
// errors due to floating point numbers, so we need to check precision.
// Safari returns a number <= 0, usually < -1 when pinch-zoomed
// Feature detection fails in mobile emulation mode in Chrome.
// Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
// 0.001
// Fallback here: "Not Safari" userAgent
if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) { if (layoutViewport || !layoutViewport && strategy === 'fixed') {
x = visualViewport.offsetLeft; x = visualViewport.offsetLeft;
y = visualViewport.offsetTop; y = visualViewport.offsetTop;
} }
@@ -2794,8 +2803,8 @@
}); });
} }
function getInnerBoundingClientRect(element) { function getInnerBoundingClientRect(element, strategy) {
var rect = getBoundingClientRect(element); var rect = getBoundingClientRect(element, false, strategy === 'fixed');
rect.top = rect.top + element.clientTop; rect.top = rect.top + element.clientTop;
rect.left = rect.left + element.clientLeft; rect.left = rect.left + element.clientLeft;
rect.bottom = rect.top + element.clientHeight; rect.bottom = rect.top + element.clientHeight;
@@ -2807,8 +2816,8 @@
return rect; return rect;
} }
function getClientRectFromMixedType(element, clippingParent) { function getClientRectFromMixedType(element, clippingParent, strategy) {
return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element))); return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
} // A "clipping parent" is an overflowable container with the characteristic of } // A "clipping parent" is an overflowable container with the characteristic of
// clipping (or hiding) overflowing elements with a position different from // clipping (or hiding) overflowing elements with a position different from
// `initial` // `initial`
@@ -2831,18 +2840,18 @@
// clipping parents // clipping parents
function getClippingRect(element, boundary, rootBoundary) { function getClippingRect(element, boundary, rootBoundary, strategy) {
var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
var clippingParents = [].concat(mainClippingParents, [rootBoundary]); var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
var firstClippingParent = clippingParents[0]; var firstClippingParent = clippingParents[0];
var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
var rect = getClientRectFromMixedType(element, clippingParent); var rect = getClientRectFromMixedType(element, clippingParent, strategy);
accRect.top = max(rect.top, accRect.top); accRect.top = max(rect.top, accRect.top);
accRect.right = min(rect.right, accRect.right); accRect.right = min(rect.right, accRect.right);
accRect.bottom = min(rect.bottom, accRect.bottom); accRect.bottom = min(rect.bottom, accRect.bottom);
accRect.left = max(rect.left, accRect.left); accRect.left = max(rect.left, accRect.left);
return accRect; return accRect;
}, getClientRectFromMixedType(element, firstClippingParent)); }, getClientRectFromMixedType(element, firstClippingParent, strategy));
clippingRect.width = clippingRect.right - clippingRect.left; clippingRect.width = clippingRect.right - clippingRect.left;
clippingRect.height = clippingRect.bottom - clippingRect.top; clippingRect.height = clippingRect.bottom - clippingRect.top;
clippingRect.x = clippingRect.left; clippingRect.x = clippingRect.left;
@@ -2923,6 +2932,8 @@
var _options = options, var _options = options,
_options$placement = _options.placement, _options$placement = _options.placement,
placement = _options$placement === void 0 ? state.placement : _options$placement, placement = _options$placement === void 0 ? state.placement : _options$placement,
_options$strategy = _options.strategy,
strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
_options$boundary = _options.boundary, _options$boundary = _options.boundary,
boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
_options$rootBoundary = _options.rootBoundary, _options$rootBoundary = _options.rootBoundary,
@@ -2937,7 +2948,7 @@
var altContext = elementContext === popper ? reference : popper; var altContext = elementContext === popper ? reference : popper;
var popperRect = state.rects.popper; var popperRect = state.rects.popper;
var element = state.elements[altBoundary ? altContext : elementContext]; var element = state.elements[altBoundary ? altContext : elementContext];
var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary); var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
var referenceClientRect = getBoundingClientRect(state.elements.reference); var referenceClientRect = getBoundingClientRect(state.elements.reference);
var popperOffsets = computeOffsets({ var popperOffsets = computeOffsets({
reference: referenceClientRect, reference: referenceClientRect,
@@ -3451,7 +3462,7 @@
var isOffsetParentAnElement = isHTMLElement(offsetParent); var isOffsetParentAnElement = isHTMLElement(offsetParent);
var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
var documentElement = getDocumentElement(offsetParent); var documentElement = getDocumentElement(offsetParent);
var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled); var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
var scroll = { var scroll = {
scrollLeft: 0, scrollLeft: 0,
scrollTop: 0 scrollTop: 0
@@ -3805,7 +3816,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dropdown.js * Bootstrap (v5.2.3): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3875,8 +3886,9 @@
super(element, config); super(element, config);
this._popper = null; this._popper = null;
this._parent = this._element.parentNode; // dropdown wrapper this._parent = this._element.parentNode; // dropdown wrapper
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
} // Getters } // Getters
@@ -4192,8 +4204,9 @@
return; return;
} }
event.preventDefault(); event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton); const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) { if (isUpOrDownEvent) {
@@ -4235,7 +4248,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/scrollBar.js * Bootstrap (v5.2.3): util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4354,7 +4367,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/backdrop.js * Bootstrap (v5.2.3): util/backdrop.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4500,7 +4513,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/focustrap.js * Bootstrap (v5.2.3): util/focustrap.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4609,7 +4622,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): modal.js * Bootstrap (v5.2.3): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4628,6 +4641,7 @@
const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
@@ -4820,8 +4834,9 @@
} }
}); });
EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
if (event.target !== event.currentTarget) { // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
// click is inside modal-dialog EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
if (this._element !== event.target || this._element !== event2.target) {
return; return;
} }
@@ -4835,6 +4850,7 @@
this.hide(); this.hide();
} }
}); });
});
} }
_hideModal() { _hideModal() {
@@ -4982,7 +4998,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): offcanvas.js * Bootstrap (v5.2.3): offcanvas.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -5256,7 +5272,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/sanitizer.js * Bootstrap (v5.2.3): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -5361,7 +5377,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/template-factory.js * Bootstrap (v5.2.3): util/template-factory.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -5519,7 +5535,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): tooltip.js * Bootstrap (v5.2.3): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -5608,7 +5624,7 @@
this._isEnabled = true; this._isEnabled = true;
this._timeout = 0; this._timeout = 0;
this._isHovered = false; this._isHovered = null;
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; this._popper = null;
this._templateFactory = null; this._templateFactory = null;
@@ -5617,6 +5633,10 @@
this.tip = null; this.tip = null;
this._setListeners(); this._setListeners();
if (!this._config.selector) {
this._fixTitle();
}
} // Getters } // Getters
@@ -5645,24 +5665,12 @@
this._isEnabled = !this._isEnabled; this._isEnabled = !this._isEnabled;
} }
toggle(event) { toggle() {
if (!this._isEnabled) { if (!this._isEnabled) {
return; return;
} }
if (event) { this._activeTrigger.click = !this._activeTrigger.click;
const context = this._initializeOnDelegatedTarget(event);
context._activeTrigger.click = !context._activeTrigger.click;
if (context._isWithActiveTrigger()) {
context._enter();
} else {
context._leave();
}
return;
}
if (this._isShown()) { if (this._isShown()) {
this._leave(); this._leave();
@@ -5677,8 +5685,8 @@
clearTimeout(this._timeout); clearTimeout(this._timeout);
EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this.tip) { if (this._element.getAttribute('data-bs-original-title')) {
this.tip.remove(); this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
} }
this._disposePopper(); this._disposePopper();
@@ -5705,10 +5713,7 @@
} // todo v6 remove this OR make it optional } // todo v6 remove this OR make it optional
if (this.tip) { this._disposePopper();
this.tip.remove();
this.tip = null;
}
const tip = this._getTipElement(); const tip = this._getTipElement();
@@ -5723,12 +5728,7 @@
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
} }
if (this._popper) {
this._popper.update();
} else {
this._popper = this._createPopper(tip); this._popper = this._createPopper(tip);
}
tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
@@ -5741,13 +5741,13 @@
} }
const complete = () => { const complete = () => {
const previousHoverState = this._isHovered;
this._isHovered = false;
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
if (previousHoverState) { if (this._isHovered === false) {
this._leave(); this._leave();
} }
this._isHovered = false;
}; };
this._queueCallback(complete, this.tip, this._isAnimated()); this._queueCallback(complete, this.tip, this._isAnimated());
@@ -5778,7 +5778,7 @@
this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_CLICK] = false;
this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_FOCUS] = false;
this._activeTrigger[TRIGGER_HOVER] = false; this._activeTrigger[TRIGGER_HOVER] = false;
this._isHovered = false; this._isHovered = null; // it is a trick to support manual triggering
const complete = () => { const complete = () => {
if (this._isWithActiveTrigger()) { if (this._isWithActiveTrigger()) {
@@ -5786,14 +5786,12 @@
} }
if (!this._isHovered) { if (!this._isHovered) {
tip.remove(); this._disposePopper();
} }
this._element.removeAttribute('aria-describedby'); this._element.removeAttribute('aria-describedby');
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
this._disposePopper();
}; };
this._queueCallback(complete, this.tip, this._isAnimated()); this._queueCallback(complete, this.tip, this._isAnimated());
@@ -5871,7 +5869,7 @@
} }
_getTitle() { _getTitle() {
return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');
} // Private } // Private
@@ -5957,7 +5955,11 @@
for (const trigger of triggers) { for (const trigger of triggers) {
if (trigger === 'click') { if (trigger === 'click') {
EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {
const context = this._initializeOnDelegatedTarget(event);
context.toggle();
});
} else if (trigger !== TRIGGER_MANUAL) { } else if (trigger !== TRIGGER_MANUAL) {
const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
@@ -5985,19 +5987,10 @@
}; };
EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this._config.selector) {
this._config = { ...this._config,
trigger: 'manual',
selector: ''
};
} else {
this._fixTitle();
}
} }
_fixTitle() { _fixTitle() {
const title = this._config.originalTitle; const title = this._element.getAttribute('title');
if (!title) { if (!title) {
return; return;
@@ -6007,6 +6000,9 @@
this._element.setAttribute('aria-label', title); this._element.setAttribute('aria-label', title);
} }
this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility
this._element.removeAttribute('title'); this._element.removeAttribute('title');
} }
@@ -6078,8 +6074,6 @@
}; };
} }
config.originalTitle = this._element.getAttribute('title') || '';
if (typeof config.title === 'number') { if (typeof config.title === 'number') {
config.title = config.title.toString(); config.title = config.title.toString();
} }
@@ -6098,11 +6092,13 @@
if (this.constructor.Default[key] !== this._config[key]) { if (this.constructor.Default[key] !== this._config[key]) {
config[key] = this._config[key]; config[key] = this._config[key];
} }
} // In the future can be replaced with: }
config.selector = false;
config.trigger = 'manual'; // In the future can be replaced with:
// const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
// `Object.fromEntries(keysWithDifferentValues)` // `Object.fromEntries(keysWithDifferentValues)`
return config; return config;
} }
@@ -6112,6 +6108,11 @@
this._popper = null; this._popper = null;
} }
if (this.tip) {
this.tip.remove();
this.tip = null;
}
} // Static } // Static
@@ -6141,7 +6142,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): popover.js * Bootstrap (v5.2.3): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -6224,7 +6225,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): scrollspy.js * Bootstrap (v5.2.3): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -6255,14 +6256,16 @@
// TODO: v6 @deprecated, keep it for backwards compatibility reasons // TODO: v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: '0px 0px -25%', rootMargin: '0px 0px -25%',
smoothScroll: false, smoothScroll: false,
target: null target: null,
threshold: [0.1, 0.5, 1]
}; };
const DefaultType$1 = { const DefaultType$1 = {
offset: '(number|null)', offset: '(number|null)',
// TODO v6 @deprecated, keep it for backwards compatibility reasons // TODO v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: 'string', rootMargin: 'string',
smoothScroll: 'boolean', smoothScroll: 'boolean',
target: 'element' target: 'element',
threshold: 'array'
}; };
/** /**
* Class definition * Class definition
@@ -6323,7 +6326,14 @@
_configAfterMerge(config) { _configAfterMerge(config) {
// TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
config.target = getElement(config.target) || document.body; config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
if (typeof config.threshold === 'string') {
config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
}
return config; return config;
} }
@@ -6359,8 +6369,8 @@
_getNewObserver() { _getNewObserver() {
const options = { const options = {
root: this._rootElement, root: this._rootElement,
threshold: [0.1, 0.5, 1], threshold: this._config.threshold,
rootMargin: this._getRootMargin() rootMargin: this._config.rootMargin
}; };
return new IntersectionObserver(entries => this._observerCallback(entries), options); return new IntersectionObserver(entries => this._observerCallback(entries), options);
} // The logic of selection } // The logic of selection
@@ -6405,11 +6415,6 @@
activate(entry); activate(entry);
} }
} }
} // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
_getRootMargin() {
return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin;
} }
_initializeTargetsAndObservables() { _initializeTargetsAndObservables() {
@@ -6511,7 +6516,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): tab.js * Bootstrap (v5.2.3): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -6539,7 +6544,6 @@
const CLASS_DROPDOWN = 'dropdown'; const CLASS_DROPDOWN = 'dropdown';
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = '.nav-item, .list-group-item'; const SELECTOR_OUTER = '.nav-item, .list-group-item';
@@ -6618,7 +6622,6 @@
return; return;
} }
element.focus();
element.removeAttribute('tabindex'); element.removeAttribute('tabindex');
element.setAttribute('aria-selected', true); element.setAttribute('aria-selected', true);
@@ -6674,6 +6677,9 @@
const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);
if (nextActiveElement) { if (nextActiveElement) {
nextActiveElement.focus({
preventScroll: true
});
Tab.getOrCreateInstance(nextActiveElement).show(); Tab.getOrCreateInstance(nextActiveElement).show();
} }
} }
@@ -6749,7 +6755,6 @@
toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);
outerElem.setAttribute('aria-expanded', open); outerElem.setAttribute('aria-expanded', open);
} }
@@ -6824,7 +6829,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): toast.js * Bootstrap (v5.2.3): toast.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -6975,14 +6980,18 @@
switch (event.type) { switch (event.type) {
case 'mouseover': case 'mouseover':
case 'mouseout': case 'mouseout':
{
this._hasMouseInteraction = isInteracting; this._hasMouseInteraction = isInteracting;
break; break;
}
case 'focusin': case 'focusin':
case 'focusout': case 'focusout':
{
this._hasKeyboardInteraction = isInteracting; this._hasKeyboardInteraction = isInteracting;
break; break;
} }
}
if (isInteracting) { if (isInteracting) {
this._clearTimeout(); this._clearTimeout();
@@ -7041,7 +7050,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): index.umd.js * Bootstrap (v5.2.3): index.umd.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+93 -95
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v5.2.0 (https://getbootstrap.com/) * Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@@ -7,7 +7,7 @@ import * as Popper from '@popperjs/core';
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/index.js * Bootstrap (v5.2.3): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -322,7 +322,7 @@ const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/event-handler.js * Bootstrap (v5.2.3): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -591,7 +591,7 @@ function hydrateObj(obj, meta) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/data.js * Bootstrap (v5.2.3): dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -643,7 +643,7 @@ const Data = {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/manipulator.js * Bootstrap (v5.2.3): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -713,7 +713,7 @@ const Manipulator = {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/config.js * Bootstrap (v5.2.3): util/config.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -774,7 +774,7 @@ class Config {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): base-component.js * Bootstrap (v5.2.3): base-component.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -782,7 +782,7 @@ class Config {
* Constants * Constants
*/ */
const VERSION = '5.2.0'; const VERSION = '5.2.3';
/** /**
* Class definition * Class definition
*/ */
@@ -853,7 +853,7 @@ class BaseComponent extends Config {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/component-functions.js * Bootstrap (v5.2.3): util/component-functions.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -879,7 +879,7 @@ const enableDismissTrigger = (component, method = 'hide') => {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): alert.js * Bootstrap (v5.2.3): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -959,7 +959,7 @@ defineJQueryPlugin(Alert);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): button.js * Bootstrap (v5.2.3): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1021,7 +1021,7 @@ defineJQueryPlugin(Button);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/selector-engine.js * Bootstrap (v5.2.3): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1092,7 +1092,7 @@ const SelectorEngine = {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/swipe.js * Bootstrap (v5.2.3): util/swipe.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1228,7 +1228,7 @@ class Swipe extends Config {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): carousel.js * Bootstrap (v5.2.3): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1676,7 +1676,7 @@ defineJQueryPlugin(Carousel);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): collapse.js * Bootstrap (v5.2.3): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1966,7 +1966,7 @@ defineJQueryPlugin(Collapse);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dropdown.js * Bootstrap (v5.2.3): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2036,8 +2036,9 @@ class Dropdown extends BaseComponent {
super(element, config); super(element, config);
this._popper = null; this._popper = null;
this._parent = this._element.parentNode; // dropdown wrapper this._parent = this._element.parentNode; // dropdown wrapper
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
} // Getters } // Getters
@@ -2353,8 +2354,9 @@ class Dropdown extends BaseComponent {
return; return;
} }
event.preventDefault(); event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton); const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) { if (isUpOrDownEvent) {
@@ -2396,7 +2398,7 @@ defineJQueryPlugin(Dropdown);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/scrollBar.js * Bootstrap (v5.2.3): util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2515,7 +2517,7 @@ class ScrollBarHelper {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/backdrop.js * Bootstrap (v5.2.3): util/backdrop.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2661,7 +2663,7 @@ class Backdrop extends Config {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/focustrap.js * Bootstrap (v5.2.3): util/focustrap.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2770,7 +2772,7 @@ class FocusTrap extends Config {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): modal.js * Bootstrap (v5.2.3): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2789,6 +2791,7 @@ const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
@@ -2981,8 +2984,9 @@ class Modal extends BaseComponent {
} }
}); });
EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
if (event.target !== event.currentTarget) { // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
// click is inside modal-dialog EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
if (this._element !== event.target || this._element !== event2.target) {
return; return;
} }
@@ -2996,6 +3000,7 @@ class Modal extends BaseComponent {
this.hide(); this.hide();
} }
}); });
});
} }
_hideModal() { _hideModal() {
@@ -3143,7 +3148,7 @@ defineJQueryPlugin(Modal);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): offcanvas.js * Bootstrap (v5.2.3): offcanvas.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3417,7 +3422,7 @@ defineJQueryPlugin(Offcanvas);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/sanitizer.js * Bootstrap (v5.2.3): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3522,7 +3527,7 @@ function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/template-factory.js * Bootstrap (v5.2.3): util/template-factory.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3680,7 +3685,7 @@ class TemplateFactory extends Config {
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): tooltip.js * Bootstrap (v5.2.3): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3769,7 +3774,7 @@ class Tooltip extends BaseComponent {
this._isEnabled = true; this._isEnabled = true;
this._timeout = 0; this._timeout = 0;
this._isHovered = false; this._isHovered = null;
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; this._popper = null;
this._templateFactory = null; this._templateFactory = null;
@@ -3778,6 +3783,10 @@ class Tooltip extends BaseComponent {
this.tip = null; this.tip = null;
this._setListeners(); this._setListeners();
if (!this._config.selector) {
this._fixTitle();
}
} // Getters } // Getters
@@ -3806,24 +3815,12 @@ class Tooltip extends BaseComponent {
this._isEnabled = !this._isEnabled; this._isEnabled = !this._isEnabled;
} }
toggle(event) { toggle() {
if (!this._isEnabled) { if (!this._isEnabled) {
return; return;
} }
if (event) { this._activeTrigger.click = !this._activeTrigger.click;
const context = this._initializeOnDelegatedTarget(event);
context._activeTrigger.click = !context._activeTrigger.click;
if (context._isWithActiveTrigger()) {
context._enter();
} else {
context._leave();
}
return;
}
if (this._isShown()) { if (this._isShown()) {
this._leave(); this._leave();
@@ -3838,8 +3835,8 @@ class Tooltip extends BaseComponent {
clearTimeout(this._timeout); clearTimeout(this._timeout);
EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this.tip) { if (this._element.getAttribute('data-bs-original-title')) {
this.tip.remove(); this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
} }
this._disposePopper(); this._disposePopper();
@@ -3866,10 +3863,7 @@ class Tooltip extends BaseComponent {
} // todo v6 remove this OR make it optional } // todo v6 remove this OR make it optional
if (this.tip) { this._disposePopper();
this.tip.remove();
this.tip = null;
}
const tip = this._getTipElement(); const tip = this._getTipElement();
@@ -3884,12 +3878,7 @@ class Tooltip extends BaseComponent {
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
} }
if (this._popper) {
this._popper.update();
} else {
this._popper = this._createPopper(tip); this._popper = this._createPopper(tip);
}
tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
@@ -3902,13 +3891,13 @@ class Tooltip extends BaseComponent {
} }
const complete = () => { const complete = () => {
const previousHoverState = this._isHovered;
this._isHovered = false;
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
if (previousHoverState) { if (this._isHovered === false) {
this._leave(); this._leave();
} }
this._isHovered = false;
}; };
this._queueCallback(complete, this.tip, this._isAnimated()); this._queueCallback(complete, this.tip, this._isAnimated());
@@ -3939,7 +3928,7 @@ class Tooltip extends BaseComponent {
this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_CLICK] = false;
this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_FOCUS] = false;
this._activeTrigger[TRIGGER_HOVER] = false; this._activeTrigger[TRIGGER_HOVER] = false;
this._isHovered = false; this._isHovered = null; // it is a trick to support manual triggering
const complete = () => { const complete = () => {
if (this._isWithActiveTrigger()) { if (this._isWithActiveTrigger()) {
@@ -3947,14 +3936,12 @@ class Tooltip extends BaseComponent {
} }
if (!this._isHovered) { if (!this._isHovered) {
tip.remove(); this._disposePopper();
} }
this._element.removeAttribute('aria-describedby'); this._element.removeAttribute('aria-describedby');
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
this._disposePopper();
}; };
this._queueCallback(complete, this.tip, this._isAnimated()); this._queueCallback(complete, this.tip, this._isAnimated());
@@ -4032,7 +4019,7 @@ class Tooltip extends BaseComponent {
} }
_getTitle() { _getTitle() {
return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');
} // Private } // Private
@@ -4118,7 +4105,11 @@ class Tooltip extends BaseComponent {
for (const trigger of triggers) { for (const trigger of triggers) {
if (trigger === 'click') { if (trigger === 'click') {
EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {
const context = this._initializeOnDelegatedTarget(event);
context.toggle();
});
} else if (trigger !== TRIGGER_MANUAL) { } else if (trigger !== TRIGGER_MANUAL) {
const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
@@ -4146,19 +4137,10 @@ class Tooltip extends BaseComponent {
}; };
EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this._config.selector) {
this._config = { ...this._config,
trigger: 'manual',
selector: ''
};
} else {
this._fixTitle();
}
} }
_fixTitle() { _fixTitle() {
const title = this._config.originalTitle; const title = this._element.getAttribute('title');
if (!title) { if (!title) {
return; return;
@@ -4168,6 +4150,9 @@ class Tooltip extends BaseComponent {
this._element.setAttribute('aria-label', title); this._element.setAttribute('aria-label', title);
} }
this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility
this._element.removeAttribute('title'); this._element.removeAttribute('title');
} }
@@ -4239,8 +4224,6 @@ class Tooltip extends BaseComponent {
}; };
} }
config.originalTitle = this._element.getAttribute('title') || '';
if (typeof config.title === 'number') { if (typeof config.title === 'number') {
config.title = config.title.toString(); config.title = config.title.toString();
} }
@@ -4259,11 +4242,13 @@ class Tooltip extends BaseComponent {
if (this.constructor.Default[key] !== this._config[key]) { if (this.constructor.Default[key] !== this._config[key]) {
config[key] = this._config[key]; config[key] = this._config[key];
} }
} // In the future can be replaced with: }
config.selector = false;
config.trigger = 'manual'; // In the future can be replaced with:
// const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
// `Object.fromEntries(keysWithDifferentValues)` // `Object.fromEntries(keysWithDifferentValues)`
return config; return config;
} }
@@ -4273,6 +4258,11 @@ class Tooltip extends BaseComponent {
this._popper = null; this._popper = null;
} }
if (this.tip) {
this.tip.remove();
this.tip = null;
}
} // Static } // Static
@@ -4302,7 +4292,7 @@ defineJQueryPlugin(Tooltip);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): popover.js * Bootstrap (v5.2.3): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4385,7 +4375,7 @@ defineJQueryPlugin(Popover);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): scrollspy.js * Bootstrap (v5.2.3): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4416,14 +4406,16 @@ const Default$1 = {
// TODO: v6 @deprecated, keep it for backwards compatibility reasons // TODO: v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: '0px 0px -25%', rootMargin: '0px 0px -25%',
smoothScroll: false, smoothScroll: false,
target: null target: null,
threshold: [0.1, 0.5, 1]
}; };
const DefaultType$1 = { const DefaultType$1 = {
offset: '(number|null)', offset: '(number|null)',
// TODO v6 @deprecated, keep it for backwards compatibility reasons // TODO v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: 'string', rootMargin: 'string',
smoothScroll: 'boolean', smoothScroll: 'boolean',
target: 'element' target: 'element',
threshold: 'array'
}; };
/** /**
* Class definition * Class definition
@@ -4484,7 +4476,14 @@ class ScrollSpy extends BaseComponent {
_configAfterMerge(config) { _configAfterMerge(config) {
// TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
config.target = getElement(config.target) || document.body; config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
if (typeof config.threshold === 'string') {
config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
}
return config; return config;
} }
@@ -4520,8 +4519,8 @@ class ScrollSpy extends BaseComponent {
_getNewObserver() { _getNewObserver() {
const options = { const options = {
root: this._rootElement, root: this._rootElement,
threshold: [0.1, 0.5, 1], threshold: this._config.threshold,
rootMargin: this._getRootMargin() rootMargin: this._config.rootMargin
}; };
return new IntersectionObserver(entries => this._observerCallback(entries), options); return new IntersectionObserver(entries => this._observerCallback(entries), options);
} // The logic of selection } // The logic of selection
@@ -4566,11 +4565,6 @@ class ScrollSpy extends BaseComponent {
activate(entry); activate(entry);
} }
} }
} // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
_getRootMargin() {
return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin;
} }
_initializeTargetsAndObservables() { _initializeTargetsAndObservables() {
@@ -4672,7 +4666,7 @@ defineJQueryPlugin(ScrollSpy);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): tab.js * Bootstrap (v5.2.3): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4700,7 +4694,6 @@ const CLASS_NAME_SHOW$1 = 'show';
const CLASS_DROPDOWN = 'dropdown'; const CLASS_DROPDOWN = 'dropdown';
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = '.nav-item, .list-group-item'; const SELECTOR_OUTER = '.nav-item, .list-group-item';
@@ -4779,7 +4772,6 @@ class Tab extends BaseComponent {
return; return;
} }
element.focus();
element.removeAttribute('tabindex'); element.removeAttribute('tabindex');
element.setAttribute('aria-selected', true); element.setAttribute('aria-selected', true);
@@ -4835,6 +4827,9 @@ class Tab extends BaseComponent {
const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);
if (nextActiveElement) { if (nextActiveElement) {
nextActiveElement.focus({
preventScroll: true
});
Tab.getOrCreateInstance(nextActiveElement).show(); Tab.getOrCreateInstance(nextActiveElement).show();
} }
} }
@@ -4910,7 +4905,6 @@ class Tab extends BaseComponent {
toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);
outerElem.setAttribute('aria-expanded', open); outerElem.setAttribute('aria-expanded', open);
} }
@@ -4985,7 +4979,7 @@ defineJQueryPlugin(Tab);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): toast.js * Bootstrap (v5.2.3): toast.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -5136,14 +5130,18 @@ class Toast extends BaseComponent {
switch (event.type) { switch (event.type) {
case 'mouseover': case 'mouseover':
case 'mouseout': case 'mouseout':
{
this._hasMouseInteraction = isInteracting; this._hasMouseInteraction = isInteracting;
break; break;
}
case 'focusin': case 'focusin':
case 'focusout': case 'focusout':
{
this._hasKeyboardInteraction = isInteracting; this._hasKeyboardInteraction = isInteracting;
break; break;
} }
}
if (isInteracting) { if (isInteracting) {
this._clearTimeout(); this._clearTimeout();
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+94 -96
View File
@@ -1,5 +1,5 @@
/*! /*!
* Bootstrap v5.2.0 (https://getbootstrap.com/) * Bootstrap v5.2.3 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@@ -31,7 +31,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/index.js * Bootstrap (v5.2.3): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -346,7 +346,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/event-handler.js * Bootstrap (v5.2.3): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -615,7 +615,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/data.js * Bootstrap (v5.2.3): dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -667,7 +667,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/manipulator.js * Bootstrap (v5.2.3): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -737,7 +737,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/config.js * Bootstrap (v5.2.3): util/config.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -798,7 +798,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): base-component.js * Bootstrap (v5.2.3): base-component.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -806,7 +806,7 @@
* Constants * Constants
*/ */
const VERSION = '5.2.0'; const VERSION = '5.2.3';
/** /**
* Class definition * Class definition
*/ */
@@ -877,7 +877,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/component-functions.js * Bootstrap (v5.2.3): util/component-functions.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -903,7 +903,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): alert.js * Bootstrap (v5.2.3): alert.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -983,7 +983,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): button.js * Bootstrap (v5.2.3): button.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1045,7 +1045,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dom/selector-engine.js * Bootstrap (v5.2.3): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1116,7 +1116,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/swipe.js * Bootstrap (v5.2.3): util/swipe.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1252,7 +1252,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): carousel.js * Bootstrap (v5.2.3): carousel.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1700,7 +1700,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): collapse.js * Bootstrap (v5.2.3): collapse.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -1990,7 +1990,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): dropdown.js * Bootstrap (v5.2.3): dropdown.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2060,8 +2060,9 @@
super(element, config); super(element, config);
this._popper = null; this._popper = null;
this._parent = this._element.parentNode; // dropdown wrapper this._parent = this._element.parentNode; // dropdown wrapper
// todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
this._menu = SelectorEngine.findOne(SELECTOR_MENU, this._parent); this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
} // Getters } // Getters
@@ -2377,8 +2378,9 @@
return; return;
} }
event.preventDefault(); event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/
const getToggleButton = SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
const instance = Dropdown.getOrCreateInstance(getToggleButton); const instance = Dropdown.getOrCreateInstance(getToggleButton);
if (isUpOrDownEvent) { if (isUpOrDownEvent) {
@@ -2420,7 +2422,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/scrollBar.js * Bootstrap (v5.2.3): util/scrollBar.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2539,7 +2541,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/backdrop.js * Bootstrap (v5.2.3): util/backdrop.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2685,7 +2687,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/focustrap.js * Bootstrap (v5.2.3): util/focustrap.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2794,7 +2796,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): modal.js * Bootstrap (v5.2.3): modal.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -2813,6 +2815,7 @@
const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
@@ -3005,8 +3008,9 @@
} }
}); });
EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
if (event.target !== event.currentTarget) { // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
// click is inside modal-dialog EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
if (this._element !== event.target || this._element !== event2.target) {
return; return;
} }
@@ -3020,6 +3024,7 @@
this.hide(); this.hide();
} }
}); });
});
} }
_hideModal() { _hideModal() {
@@ -3167,7 +3172,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): offcanvas.js * Bootstrap (v5.2.3): offcanvas.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3441,7 +3446,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/sanitizer.js * Bootstrap (v5.2.3): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3546,7 +3551,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): util/template-factory.js * Bootstrap (v5.2.3): util/template-factory.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3704,7 +3709,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): tooltip.js * Bootstrap (v5.2.3): tooltip.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -3793,7 +3798,7 @@
this._isEnabled = true; this._isEnabled = true;
this._timeout = 0; this._timeout = 0;
this._isHovered = false; this._isHovered = null;
this._activeTrigger = {}; this._activeTrigger = {};
this._popper = null; this._popper = null;
this._templateFactory = null; this._templateFactory = null;
@@ -3802,6 +3807,10 @@
this.tip = null; this.tip = null;
this._setListeners(); this._setListeners();
if (!this._config.selector) {
this._fixTitle();
}
} // Getters } // Getters
@@ -3830,24 +3839,12 @@
this._isEnabled = !this._isEnabled; this._isEnabled = !this._isEnabled;
} }
toggle(event) { toggle() {
if (!this._isEnabled) { if (!this._isEnabled) {
return; return;
} }
if (event) { this._activeTrigger.click = !this._activeTrigger.click;
const context = this._initializeOnDelegatedTarget(event);
context._activeTrigger.click = !context._activeTrigger.click;
if (context._isWithActiveTrigger()) {
context._enter();
} else {
context._leave();
}
return;
}
if (this._isShown()) { if (this._isShown()) {
this._leave(); this._leave();
@@ -3862,8 +3859,8 @@
clearTimeout(this._timeout); clearTimeout(this._timeout);
EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this.tip) { if (this._element.getAttribute('data-bs-original-title')) {
this.tip.remove(); this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
} }
this._disposePopper(); this._disposePopper();
@@ -3890,10 +3887,7 @@
} // todo v6 remove this OR make it optional } // todo v6 remove this OR make it optional
if (this.tip) { this._disposePopper();
this.tip.remove();
this.tip = null;
}
const tip = this._getTipElement(); const tip = this._getTipElement();
@@ -3908,12 +3902,7 @@
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
} }
if (this._popper) {
this._popper.update();
} else {
this._popper = this._createPopper(tip); this._popper = this._createPopper(tip);
}
tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
@@ -3926,13 +3915,13 @@
} }
const complete = () => { const complete = () => {
const previousHoverState = this._isHovered;
this._isHovered = false;
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
if (previousHoverState) { if (this._isHovered === false) {
this._leave(); this._leave();
} }
this._isHovered = false;
}; };
this._queueCallback(complete, this.tip, this._isAnimated()); this._queueCallback(complete, this.tip, this._isAnimated());
@@ -3963,7 +3952,7 @@
this._activeTrigger[TRIGGER_CLICK] = false; this._activeTrigger[TRIGGER_CLICK] = false;
this._activeTrigger[TRIGGER_FOCUS] = false; this._activeTrigger[TRIGGER_FOCUS] = false;
this._activeTrigger[TRIGGER_HOVER] = false; this._activeTrigger[TRIGGER_HOVER] = false;
this._isHovered = false; this._isHovered = null; // it is a trick to support manual triggering
const complete = () => { const complete = () => {
if (this._isWithActiveTrigger()) { if (this._isWithActiveTrigger()) {
@@ -3971,14 +3960,12 @@
} }
if (!this._isHovered) { if (!this._isHovered) {
tip.remove(); this._disposePopper();
} }
this._element.removeAttribute('aria-describedby'); this._element.removeAttribute('aria-describedby');
EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
this._disposePopper();
}; };
this._queueCallback(complete, this.tip, this._isAnimated()); this._queueCallback(complete, this.tip, this._isAnimated());
@@ -4056,7 +4043,7 @@
} }
_getTitle() { _getTitle() {
return this._resolvePossibleFunction(this._config.title) || this._config.originalTitle; return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');
} // Private } // Private
@@ -4142,7 +4129,11 @@
for (const trigger of triggers) { for (const trigger of triggers) {
if (trigger === 'click') { if (trigger === 'click') {
EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => this.toggle(event)); EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {
const context = this._initializeOnDelegatedTarget(event);
context.toggle();
});
} else if (trigger !== TRIGGER_MANUAL) { } else if (trigger !== TRIGGER_MANUAL) {
const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
@@ -4170,19 +4161,10 @@
}; };
EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if (this._config.selector) {
this._config = { ...this._config,
trigger: 'manual',
selector: ''
};
} else {
this._fixTitle();
}
} }
_fixTitle() { _fixTitle() {
const title = this._config.originalTitle; const title = this._element.getAttribute('title');
if (!title) { if (!title) {
return; return;
@@ -4192,6 +4174,9 @@
this._element.setAttribute('aria-label', title); this._element.setAttribute('aria-label', title);
} }
this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility
this._element.removeAttribute('title'); this._element.removeAttribute('title');
} }
@@ -4263,8 +4248,6 @@
}; };
} }
config.originalTitle = this._element.getAttribute('title') || '';
if (typeof config.title === 'number') { if (typeof config.title === 'number') {
config.title = config.title.toString(); config.title = config.title.toString();
} }
@@ -4283,11 +4266,13 @@
if (this.constructor.Default[key] !== this._config[key]) { if (this.constructor.Default[key] !== this._config[key]) {
config[key] = this._config[key]; config[key] = this._config[key];
} }
} // In the future can be replaced with: }
config.selector = false;
config.trigger = 'manual'; // In the future can be replaced with:
// const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
// `Object.fromEntries(keysWithDifferentValues)` // `Object.fromEntries(keysWithDifferentValues)`
return config; return config;
} }
@@ -4297,6 +4282,11 @@
this._popper = null; this._popper = null;
} }
if (this.tip) {
this.tip.remove();
this.tip = null;
}
} // Static } // Static
@@ -4326,7 +4316,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): popover.js * Bootstrap (v5.2.3): popover.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4409,7 +4399,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): scrollspy.js * Bootstrap (v5.2.3): scrollspy.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4440,14 +4430,16 @@
// TODO: v6 @deprecated, keep it for backwards compatibility reasons // TODO: v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: '0px 0px -25%', rootMargin: '0px 0px -25%',
smoothScroll: false, smoothScroll: false,
target: null target: null,
threshold: [0.1, 0.5, 1]
}; };
const DefaultType$1 = { const DefaultType$1 = {
offset: '(number|null)', offset: '(number|null)',
// TODO v6 @deprecated, keep it for backwards compatibility reasons // TODO v6 @deprecated, keep it for backwards compatibility reasons
rootMargin: 'string', rootMargin: 'string',
smoothScroll: 'boolean', smoothScroll: 'boolean',
target: 'element' target: 'element',
threshold: 'array'
}; };
/** /**
* Class definition * Class definition
@@ -4508,7 +4500,14 @@
_configAfterMerge(config) { _configAfterMerge(config) {
// TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
config.target = getElement(config.target) || document.body; config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
if (typeof config.threshold === 'string') {
config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
}
return config; return config;
} }
@@ -4544,8 +4543,8 @@
_getNewObserver() { _getNewObserver() {
const options = { const options = {
root: this._rootElement, root: this._rootElement,
threshold: [0.1, 0.5, 1], threshold: this._config.threshold,
rootMargin: this._getRootMargin() rootMargin: this._config.rootMargin
}; };
return new IntersectionObserver(entries => this._observerCallback(entries), options); return new IntersectionObserver(entries => this._observerCallback(entries), options);
} // The logic of selection } // The logic of selection
@@ -4590,11 +4589,6 @@
activate(entry); activate(entry);
} }
} }
} // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
_getRootMargin() {
return this._config.offset ? `${this._config.offset}px 0px -30%` : this._config.rootMargin;
} }
_initializeTargetsAndObservables() { _initializeTargetsAndObservables() {
@@ -4696,7 +4690,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): tab.js * Bootstrap (v5.2.3): tab.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -4724,7 +4718,6 @@
const CLASS_DROPDOWN = 'dropdown'; const CLASS_DROPDOWN = 'dropdown';
const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
const SELECTOR_DROPDOWN_ITEM = '.dropdown-item';
const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)';
const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
const SELECTOR_OUTER = '.nav-item, .list-group-item'; const SELECTOR_OUTER = '.nav-item, .list-group-item';
@@ -4803,7 +4796,6 @@
return; return;
} }
element.focus();
element.removeAttribute('tabindex'); element.removeAttribute('tabindex');
element.setAttribute('aria-selected', true); element.setAttribute('aria-selected', true);
@@ -4859,6 +4851,9 @@
const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true);
if (nextActiveElement) { if (nextActiveElement) {
nextActiveElement.focus({
preventScroll: true
});
Tab.getOrCreateInstance(nextActiveElement).show(); Tab.getOrCreateInstance(nextActiveElement).show();
} }
} }
@@ -4934,7 +4929,6 @@
toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
toggle(SELECTOR_DROPDOWN_ITEM, CLASS_NAME_ACTIVE);
outerElem.setAttribute('aria-expanded', open); outerElem.setAttribute('aria-expanded', open);
} }
@@ -5009,7 +5003,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): toast.js * Bootstrap (v5.2.3): toast.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@@ -5160,14 +5154,18 @@
switch (event.type) { switch (event.type) {
case 'mouseover': case 'mouseover':
case 'mouseout': case 'mouseout':
{
this._hasMouseInteraction = isInteracting; this._hasMouseInteraction = isInteracting;
break; break;
}
case 'focusin': case 'focusin':
case 'focusout': case 'focusout':
{
this._hasKeyboardInteraction = isInteracting; this._hasKeyboardInteraction = isInteracting;
break; break;
} }
}
if (isInteracting) { if (isInteracting) {
this._clearTimeout(); this._clearTimeout();
@@ -5226,7 +5224,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.2.0): index.umd.js * Bootstrap (v5.2.3): index.umd.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+11
View File
@@ -14,6 +14,12 @@
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings> </connectionStrings>
--> -->
<appSettings>
<add key="RedisConn" value="localhost:26379, serviceName=prod, DefaultDatabase=1, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="RedisConnAdmin" value="localhost:26379, serviceName=prod, DefaultDatabase=1, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG, allowAdmin=true" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="urlRedirRich" value="https://office.egalware.com/GPW/ADMIN/richiesteDip" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="urlRedirMal" value="https://office.egalware.com/GPW/ADMIN/malattia" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
<system.web> <system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" /> <compilation xdt:Transform="RemoveAttributes(debug)" />
<!-- <!--
@@ -27,5 +33,10 @@
<error statusCode="500" redirect="InternalError.htm"/> <error statusCode="500" redirect="InternalError.htm"/>
</customErrors> </customErrors>
--> -->
<sessionState>
<providers>
<add name="MySessionStateStore" connectionString="localhost:26379, serviceName=prod, DefaultDatabase=1, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG" xdt:Transform="SetAttributes(connectionString)" xdt:Locator="Match(name)" />
</providers>
</sessionState>
</system.web> </system.web>
</configuration> </configuration>
+58 -303
View File
@@ -1,19 +1,24 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0"?>
<!-- <!--
For more information on how to configure your ASP.NET application, please visit For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433 http://go.microsoft.com/fwlink/?LinkId=169433
--> -->
<configuration> <configuration>
<configSections> <!--
<sectionGroup name="elmah"> For a description of web.config changes see http://go.microsoft.com/fwlink/?LinkId=235367.
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> The following attributes can be set on the <httpRuntime> tag.
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" /> <system.Web>
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" /> <httpRuntime targetFramework="4.8" />
</sectionGroup> </system.Web>
</configSections> -->
<system.web> <system.web>
<compilation targetFramework="4.6.2" debug="true" /> <compilation targetFramework="4.8" debug="true">
<assemblies>
<add assembly="System.Web.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpRuntime targetFramework="4.6.2"/> <httpRuntime targetFramework="4.6.2"/>
<pages> <pages>
<namespaces> <namespaces>
@@ -26,20 +31,17 @@
</pages> </pages>
<customErrors mode="Off"/> <customErrors mode="Off"/>
<globalization culture="it-IT" enableClientBasedCulture="true" uiCulture="it"/> <globalization culture="it-IT" enableClientBasedCulture="true" uiCulture="it"/>
<httpModules> <sessionState>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
</httpModules>
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers> <providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="127.0.0.1" accessKey="" ssl="false" applicationName="GPW_ADM" /> <add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" connectionString="localhost:26379, serviceName=devel, DefaultDatabase=1, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false" applicationName="GPW_ADM"/>
</providers> </providers>
</sessionState> </sessionState>
</system.web> </system.web>
<appSettings> <appSettings>
<!--Impostazione gestione serializzazione variabili in sessione (es per Redis)--> <!--Impostazione gestione serializzazione variabili in sessione (es per Redis)-->
<add key="serializeSession" value="true"/> <add key="serializeSession" value="true"/>
<add key="RedisConn" value="localhost:26379, serviceName=devel, DefaultDatabase=1, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false"/>
<add key="RedisConnAdmin" value="localhost:26379, serviceName=devel, DefaultDatabase=1, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, allowAdmin=true"/>
<!--Conf generale--> <!--Conf generale-->
<add key="appName" value="GPW"/> <add key="appName" value="GPW"/>
<add key="titleApp" value="GPW"/> <add key="titleApp" value="GPW"/>
@@ -48,6 +50,7 @@
<add key="copyRight" value="SteamWare"/> <add key="copyRight" value="SteamWare"/>
<add key="CodModulo" value="GPW"/> <add key="CodModulo" value="GPW"/>
<add key="_safePages" value="unauthorized#forceUser#login#login.aspx#test#Test.aspx"/> <add key="_safePages" value="unauthorized#forceUser#login#login.aspx#test#Test.aspx"/>
<add key="adminRole" value="GPW_admin"/>
<!--Gestione forzatura priam timbratura ad entrata--> <!--Gestione forzatura priam timbratura ad entrata-->
<add key="firstIsIN" value="true"/> <add key="firstIsIN" value="true"/>
<!--Gestione notifiche anomalie--> <!--Gestione notifiche anomalie-->
@@ -55,8 +58,8 @@
<add key="adminContinuatoEmail" value="samuele@steamware.net"/> <add key="adminContinuatoEmail" value="samuele@steamware.net"/>
<add key="adminOreLavEmail" value="samuele@steamware.net"/> <add key="adminOreLavEmail" value="samuele@steamware.net"/>
<add key="adminRichDip" value="samuele.locatelli@egalware.com,mara.baroni@egalware.com"/> <add key="adminRichDip" value="samuele.locatelli@egalware.com,mara.baroni@egalware.com"/>
<add key="urlRedirRich" value="https://iis03.egalware.com/GPW/ADMIN/richiesteDip" /> <add key="urlRedirRich" value="https://iis01.egalware.com/GPW/ADMIN/richiesteDip"/>
<add key="urlRedirMal" value="https://iis03.egalware.com/GPW/ADMIN/malattia" /> <add key="urlRedirMal" value="https://iis01.egalware.com/GPW/ADMIN/malattia"/>
<add key="gg2Chk" value="60"/> <add key="gg2Chk" value="60"/>
<add key="gg2ChkCont" value="30"/> <add key="gg2ChkCont" value="30"/>
<add key="gg2ChkOreCaricate" value="30"/> <add key="gg2ChkOreCaricate" value="30"/>
@@ -119,10 +122,10 @@
<!--Timbratrice x Zucchetti--> <!--Timbratrice x Zucchetti-->
<add key="codTimbra" value="90"/> <add key="codTimbra" value="90"/>
<!--Gestione email--> <!--Gestione email-->
<add key="_fromEmail" value="steamwarebot@outlook.it" /> <add key="_fromEmail" value="services@steamware.net"/>
<add key="_smtpCli" value="smtp-mail.outlook.com" /> <add key="_smtpCli" value="smtp.gmail.com"/>
<add key="_emailUser" value="steamwarebot@outlook.it" /> <add key="_emailUser" value="services@steamware.net"/>
<add key="_emailPwd" value="siamoInViaNazionale93!" /> <add key="_emailPwd" value="ruejpcwgycvbmmsr"/>
<add key="_enableSSL" value="true"/> <add key="_enableSSL" value="true"/>
<!--gestione tac cloud--> <!--gestione tac cloud-->
<add key="TagCloudMode" value="elenco"/> <add key="TagCloudMode" value="elenco"/>
@@ -135,259 +138,55 @@
<!--Gestione SSRS--> <!--Gestione SSRS-->
<add key="reportBaseUrl" value="http://W2019-SQL-STEAM/ReportServer?/Steamware/"/> <add key="reportBaseUrl" value="http://W2019-SQL-STEAM/ReportServer?/Steamware/"/>
<!--CONF DB--> <!--CONF DB-->
<add key="PermessiConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer16" /> <add key="PermessiConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77"/>
<add key="UtenteCdcConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=Steamware_Anagrafica;Persist Security Info=True;User ID=sa;Password=keyhammer16" /> <add key="UtenteCdcConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=Steamware_Anagrafica;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77"/>
<add key="VocabolarioConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW_vocabolario;Persist Security Info=True;User ID=sa;Password=keyhammer16" /> <add key="VocabolarioConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW_vocabolario;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77"/>
<add key="GPWConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer16" /> <add key="GPWConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77"/>
<add key="DbConfConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer16" /> <add key="DbConfConnectionString" value="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77"/>
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;"/> <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;"/>
</appSettings> </appSettings>
<connectionStrings> <connectionStrings>
<add name="GPW_data.Properties.Settings.GPWConnectionString" connectionString="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=sa;Password=keyhammer16" providerName="System.Data.SqlClient" /> <add name="GPW_data.Properties.Settings.GPWConnectionString" connectionString="Data Source=W2019-SQL-STEAM;Initial Catalog=GPW;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77" providerName="System.Data.SqlClient"/>
<add name="ErrorLog" connectionString="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=sa;Password=keyhammer16;" providerName="System.Data.SqlClient" /> <add name="ErrorLog" connectionString="Data Source=SQL2016DEV;Initial Catalog=Elmah;Persist Security Info=True;User ID=UserGPW; Password=Us3rGpw!75x93$77;" providerName="System.Data.SqlClient"/>
</connectionStrings> </connectionStrings>
<runtime> <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Xml.XPath.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" /> <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" /> <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Xml.XmlSerializer" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Xml.XDocument" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Timer" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Parallel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Overlapped" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.RegularExpressions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encoding" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.SecureString" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Principal" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Algorithms" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Xml" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.3.0" newVersion="4.1.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Json" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Numerics" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Resources.ResourceManager" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ObjectModel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Sockets" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Requests" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Primitives" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.NetworkInformation" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Linq.Queryable" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Linq.Parallel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Linq" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO.Compression" publicKeyToken="B77A5C561934E089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Globalization.Extensions" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Globalization" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Dynamic.Runtime" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Tracing" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Tools" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.StackTrace" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Debug" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Diagnostics.Contracts" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data.Common" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.EventBasedAsync" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Concurrent" publicKeyToken="B03F5F7F11D50A3A" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="CC7B13FFCD2DDD51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Security.Cryptography.Pkcs" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.1" newVersion="6.0.0.1" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-0.36.0.0" newVersion="0.36.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ZstdSharp" publicKeyToken="8d151af33a4ad5cf" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-0.7.5.0" newVersion="0.7.5.0"/>
</dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/> <assemblyIdentity name="System.IO.Pipelines" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.3" newVersion="6.0.0.3"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.3" newVersion="6.0.0.3"/>
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/> <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Channels" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.3.3.11" newVersion="1.3.3.11" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/> <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
@@ -397,48 +196,20 @@
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/> <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="DnsClient" publicKeyToken="4574bb5573c51424" culture="neutral" /> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.1.0" newVersion="1.6.1.0" /> <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.32.1.0" newVersion="0.32.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Web.Infrastructure" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/> <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.5" newVersion="6.0.0.5" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.9" newVersion="6.0.0.9"/>
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" /> <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
</dependentAssembly> </dependentAssembly>
</assemblyBinding> </assemblyBinding>
</runtime> </runtime>
<system.webServer> <system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
<remove name="Session" />
<add name="Session" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync, Microsoft.AspNet.SessionState.SessionStateModule, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode" />
</modules>
<staticContent> <staticContent>
<remove fileExtension=".json"/> <remove fileExtension=".json"/>
<remove fileExtension=".svg"/> <remove fileExtension=".svg"/>
@@ -450,21 +221,5 @@
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2"/> <mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2"/>
</staticContent> </staticContent>
</system.webServer> </system.webServer>
<elmah>
<errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="ErrorLog" />
<security allowRemoteAccess="false" />
</elmah>
<location path="elmah.axd" inheritInChildApplications="false">
<system.web>
<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
</location>
</configuration> </configuration>
<!--ProjectGuid: A74E74E3-77BC-45D3-BC54-8693313542E2--> <!--ProjectGuid: A74E74E3-77BC-45D3-BC54-8693313542E2-->
-2
View File
@@ -46,8 +46,6 @@
<%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%> <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
<%--Framework Scripts--%> <%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" /> <asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<%--<asp:ScriptReference Name="bootstrap" />--%>
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
+1 -1
View File
@@ -12,7 +12,7 @@
<div class="input-group-prepend"> <div class="input-group-prepend">
<span class="input-group-text">Filtro visualizzazione</span> <span class="input-group-text">Filtro visualizzazione</span>
</div> </div>
<asp:DropDownList runat="server" ID="ddlDip" CssClass="form-control" DataSourceID="odsDip" DataTextField="label" DataValueField="value" AutoPostBack="true"> <asp:DropDownList runat="server" ID="ddlDip" CssClass="form-select-sm" DataSourceID="odsDip" DataTextField="label" DataValueField="value" AutoPostBack="true">
</asp:DropDownList> </asp:DropDownList>
<asp:ObjectDataSource runat="server" ID="odsDip" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter" /> <asp:ObjectDataSource runat="server" ID="odsDip" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter" />
</div> </div>
+17 -6
View File
@@ -2,8 +2,8 @@
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<div class="input-group mb-3" runat="server" id="divAddNew"> <div class="input-group mb-3" runat="server" id="divAddNew">
<%--<asp:TextBox runat="server" ID="txtSearch" type="text" class="form-control" placeholder="Search"></asp:TextBox>--%> <asp:Label runat="server" ID="lblAdd" CssClass="input-group-text">Aggiungi</asp:Label>
<asp:DropDownList runat="server" ID="ddlDip" class="form-control" DataSourceID="odsAvail" DataTextField="label" DataValueField="value"></asp:DropDownList> <asp:DropDownList runat="server" ID="ddlDip" class="form-select" DataSourceID="odsAvail" DataTextField="label" DataValueField="value"></asp:DropDownList>
<asp:ObjectDataSource ID="odsAvail" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByGruppo" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter" FilterExpression=" conditio = 1 "> <asp:ObjectDataSource ID="odsAvail" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByGruppo" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter" FilterExpression=" conditio = 1 ">
<SelectParameters> <SelectParameters>
<asp:ControlParameter ControlID="hfGruppo" DefaultValue="###" Name="gruppo" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="hfGruppo" DefaultValue="###" Name="gruppo" PropertyName="Value" Type="String" />
@@ -18,18 +18,29 @@
<asp:GridView runat="server" ID="grView" DataSourceID="ods" AutoGenerateColumns="False" DataKeyNames="value" CssClass="table table-striped table-sm"> <asp:GridView runat="server" ID="grView" DataSourceID="ods" AutoGenerateColumns="False" DataKeyNames="value" CssClass="table table-striped table-sm">
<EmptyDataTemplate>No record</EmptyDataTemplate> <EmptyDataTemplate>No record</EmptyDataTemplate>
<Columns> <Columns>
<asp:BoundField DataField="label" HeaderText="Dipendente" SortExpression="label" ReadOnly="True" /> <asp:TemplateField SortExpression="label">
<HeaderTemplate>
<b>Dipendente</b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="lblDip" Text='<%# Eval("label") %>' CssClass=' <%# cssByDip(Eval("value")) %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Left" />
<HeaderStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField ShowHeader="False"> <asp:TemplateField ShowHeader="False">
<HeaderTemplate> <HeaderTemplate>
</HeaderTemplate> </HeaderTemplate>
<ItemTemplate> <ItemTemplate>
<asp:LinkButton runat="server" ID="lbtDelete" CssClass="btn btn-sm btn-danger" CausesValidation="False" CommandName="Delete" ToolTip='<%# traduci("Delete") %>'><i class="fa fa-trash" aria-hidden="true"></i></asp:LinkButton> <asp:LinkButton runat="server" ID="lbtDelete" CssClass="btn btn-sm btn-danger" CausesValidation="False" CommandName="Delete" ToolTip='<%# traduci("Delete") %>'><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
<asp:ConfirmButtonExtender ID="cbeDelete" runat="server" ConfirmText='<%# traduci("confermaDel")%>' TargetControlID="lbtDelete"></asp:ConfirmButtonExtender> <asp:ConfirmButtonExtender ID="cbeDelete" runat="server" ConfirmText='<%# traduci("confermaDel")%>' TargetControlID="lbtDelete"></asp:ConfirmButtonExtender>
</ItemTemplate> </ItemTemplate>
<EditItemTemplate> <EditItemTemplate>
</EditItemTemplate> </EditItemTemplate>
<ItemStyle HorizontalAlign="Center" /> <ItemStyle HorizontalAlign="Right" />
<HeaderStyle HorizontalAlign="Center" /> <HeaderStyle HorizontalAlign="Right" />
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>
</asp:GridView> </asp:GridView>
@@ -1,24 +1,14 @@
using GPW_data; using GPW_data;
using GPW_data.DS_UtilityTableAdapters;
using System; using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace GPW_Admin.WebUserControls namespace GPW_Admin.WebUserControls
{ {
public partial class cmp_dip2gruppi : BaseUserControl public partial class cmp_dip2gruppi : BaseUserControl
{ {
#region Protected Properties
protected int idxDipSel
{
get
{
int answ = 0;
int.TryParse(ddlDip.SelectedValue, out answ);
return answ;
}
}
#endregion Protected Properties
#region Public Properties #region Public Properties
public string gruppoSel public string gruppoSel
@@ -33,8 +23,55 @@ namespace GPW_Admin.WebUserControls
#endregion Public Properties #endregion Public Properties
#region Public Methods
public string cssByDip(object idxDip)
{
int IdxDip = 0;
int.TryParse($"{idxDip}", out IdxDip);
bool attivo = false;
if (listActive == null || listActive.Count == 0)
{
reloadDip();
}
if (IdxDip > 0)
{
attivo = listActive.Where(x => x.value == IdxDip).Count() > 0;
}
// colore da stato attivo
string answ = attivo ? "text-dark" : "text-secondary text-strike";
return answ;
}
#endregion Public Methods
#region Protected Fields
protected List<DS_Utility.v_selDipendentiRow> listActive = new List<DS_Utility.v_selDipendentiRow>();
#endregion Protected Fields
#region Protected Properties
protected int idxDipSel
{
get
{
int answ = 0;
int.TryParse(ddlDip.SelectedValue, out answ);
return answ;
}
}
#endregion Protected Properties
#region Protected Methods #region Protected Methods
/// <summary>
/// aggiunge dipendente al gruppo selezionato
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtAdd_Click(object sender, EventArgs e) protected void lbtAdd_Click(object sender, EventArgs e)
{ {
// eseguo inserimento valore in schema // eseguo inserimento valore in schema
@@ -46,6 +83,16 @@ namespace GPW_Admin.WebUserControls
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!Page.IsPostBack)
{
reloadDip();
}
}
protected void reloadDip()
{
var rawTab = DataProxy.DP.taVSD.getByConditio(true).OfType<DS_Utility.v_selDipendentiRow>().ToList();
listActive = rawTab.Where(x => x.conditio == 1).ToList();
} }
#endregion Protected Methods #endregion Protected Methods
@@ -23,6 +23,15 @@ namespace GPW_Admin.WebUserControls
/// </remarks> /// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAddNew; protected global::System.Web.UI.HtmlControls.HtmlGenericControl divAddNew;
/// <summary>
/// lblAdd control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblAdd;
/// <summary> /// <summary>
/// ddlDip control. /// ddlDip control.
/// </summary> /// </summary>
+1 -1
View File
@@ -1,7 +1,7 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_footer.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_footer" %> <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_footer.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_footer" %>
<footer class="fixed-bottom bg-dark text-light textCondens px-2"> <footer class="fixed-bottom bg-dark text-light textCondens px-2">
<div class="row" runat="server" id="divFooter"> <div class="row" runat="server" id="divFooter">
<div class="col-6 text-left"> <div class="col-6 text-start">
<asp:Label ID="lblDateTime" runat="server" Text="..." /> <asp:Label ID="lblDateTime" runat="server" Text="..." />
&nbsp;|&nbsp;<asp:Label ID="lblCodOperatore" runat="server" Text="-" /> &nbsp;|&nbsp;<asp:Label ID="lblCodOperatore" runat="server" Text="-" />
</div> </div>
@@ -90,7 +90,6 @@ namespace GPW_Admin.WebUserControls
} }
} }
protected DS_Applicazione.DipendentiDataTable listaDip { get; set; }
protected List<DS_Applicazione.RegistroMalattieRow> listRM { get; set; } protected List<DS_Applicazione.RegistroMalattieRow> listRM { get; set; }
#endregion Protected Properties #endregion Protected Properties
@@ -164,7 +163,16 @@ namespace GPW_Admin.WebUserControls
var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault(); var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault();
string destEmail = currUser.email; string destEmail = currUser.email;
string fromEmail = memLayer.ML.CRS("_fromEmail"); string fromEmail = memLayer.ML.CRS("_fromEmail");
string adminRichDip = memLayer.ML.CRS("adminRichDip"); string adminEmail = memLayer.ML.CRS("adminRichDip");
// calcolo il responsabile
if (currUser.idxResp > 0)
{
string mailResp = emailResp(currUser.idxResp);
if (!string.IsNullOrEmpty(mailResp) && !adminEmail.Contains(mailResp))
{
adminEmail += $",{mailResp}";
}
}
string subjMess = $"ELIMINAZIONE richiesta Malattia n.{IdxRegMal}"; string subjMess = $"ELIMINAZIONE richiesta Malattia n.{IdxRegMal}";
DateTime adesso = DateTime.Now; DateTime adesso = DateTime.Now;
StringBuilder sbMain = new StringBuilder(); StringBuilder sbMain = new StringBuilder();
@@ -190,7 +198,7 @@ namespace GPW_Admin.WebUserControls
// invio email! // invio email!
gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess); gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess);
// ora sistemo x admin // ora sistemo x admin
var adminList = adminRichDip.Split(','); var adminList = adminEmail.Split(',');
string urlRedir = memLayer.ML.CRS("urlRedirMal"); string urlRedir = memLayer.ML.CRS("urlRedirMal");
bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione"; bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione";
foreach (var dest in adminList) foreach (var dest in adminList)
@@ -247,7 +255,16 @@ namespace GPW_Admin.WebUserControls
var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault(); var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault();
string destEmail = currUser.email; string destEmail = currUser.email;
string fromEmail = memLayer.ML.CRS("_fromEmail"); string fromEmail = memLayer.ML.CRS("_fromEmail");
string adminRichDip = memLayer.ML.CRS("adminRichDip"); string adminEmail = memLayer.ML.CRS("adminRichDip");
// calcolo il responsabile
if (currUser.idxResp > 0)
{
string mailResp = emailResp(currUser.idxResp);
if (!string.IsNullOrEmpty(mailResp) && !adminEmail.Contains(mailResp))
{
adminEmail += $",{mailResp}";
}
}
string subjMess = $"Aggiornamento richiesta Malattia n.{IdxRegMal}"; string subjMess = $"Aggiornamento richiesta Malattia n.{IdxRegMal}";
DateTime adesso = DateTime.Now; DateTime adesso = DateTime.Now;
StringBuilder sbMain = new StringBuilder(); StringBuilder sbMain = new StringBuilder();
@@ -273,7 +290,7 @@ namespace GPW_Admin.WebUserControls
// invio email! // invio email!
gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess); gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess);
// ora sistemo x admin // ora sistemo x admin
var adminList = adminRichDip.Split(','); var adminList = adminEmail.Split(',');
string urlRedir = memLayer.ML.CRS("urlRedirMal"); string urlRedir = memLayer.ML.CRS("urlRedirMal");
bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione"; bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione";
foreach (var dest in adminList) foreach (var dest in adminList)
@@ -66,7 +66,7 @@
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Giust" SortExpression="CodGiust"> <asp:TemplateField HeaderText="Giust" SortExpression="CodGiust">
<EditItemTemplate> <EditItemTemplate>
<asp:DropDownList runat="server" ID="ddlCodGiust" SelectedValue='<%# Bind("CodGiust") %>'> <asp:DropDownList runat="server" ID="ddlCodGiust" SelectedValue='<%# Bind("CodGiust") %>' CssClass="form-select-sm">
<asp:ListItem Value="104" Text="104"></asp:ListItem> <asp:ListItem Value="104" Text="104"></asp:ListItem>
<asp:ListItem Value="FER" Text="FERIE"></asp:ListItem> <asp:ListItem Value="FER" Text="FERIE"></asp:ListItem>
<asp:ListItem Value="PERM" Text="PERMESSO"></asp:ListItem> <asp:ListItem Value="PERM" Text="PERMESSO"></asp:ListItem>
@@ -5,6 +5,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
using System.Web.UI; using System.Web.UI;
using System.Web.UI.WebControls; using System.Web.UI.WebControls;
@@ -91,7 +92,6 @@ namespace GPW_Admin.WebUserControls
} }
} }
protected DS_Applicazione.DipendentiDataTable listaDip { get; set; }
protected List<DS_Applicazione.RegistroRichiesteRow> listRR { get; set; } protected List<DS_Applicazione.RegistroRichiesteRow> listRR { get; set; }
#endregion Protected Properties #endregion Protected Properties
@@ -198,7 +198,16 @@ namespace GPW_Admin.WebUserControls
var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault(); var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault();
string destEmail = currUser.email; string destEmail = currUser.email;
string fromEmail = memLayer.ML.CRS("_fromEmail"); string fromEmail = memLayer.ML.CRS("_fromEmail");
string adminRichDip = memLayer.ML.CRS("adminRichDip"); string adminEmail = memLayer.ML.CRS("adminRichDip");
// calcolo il responsabile
if (currUser.idxResp > 0)
{
string mailResp = emailResp(currUser.idxResp);
if (!string.IsNullOrEmpty(mailResp) && !adminEmail.Contains(mailResp))
{
adminEmail += $",{mailResp}";
}
}
string subjMess = $"ELIMINAZIONE richiesta n.{IdxRegRich}"; string subjMess = $"ELIMINAZIONE richiesta n.{IdxRegRich}";
DateTime adesso = DateTime.Now; DateTime adesso = DateTime.Now;
StringBuilder sbMain = new StringBuilder(); StringBuilder sbMain = new StringBuilder();
@@ -222,7 +231,7 @@ namespace GPW_Admin.WebUserControls
// invio email! // invio email!
gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess); gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess);
// ora sistemo x admin // ora sistemo x admin
var adminList = adminRichDip.Split(','); var adminList = adminEmail.Split(',');
string urlRedir = memLayer.ML.CRS("urlRedirRich"); string urlRedir = memLayer.ML.CRS("urlRedirRich");
bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione"; bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione";
foreach (var dest in adminList) foreach (var dest in adminList)
@@ -290,7 +299,16 @@ namespace GPW_Admin.WebUserControls
var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault(); var currUser = listaDip.Where(x => x.idxDipendente == richDip.IdxDipendente).FirstOrDefault();
string destEmail = currUser.email; string destEmail = currUser.email;
string fromEmail = memLayer.ML.CRS("_fromEmail"); string fromEmail = memLayer.ML.CRS("_fromEmail");
string adminRichDip = memLayer.ML.CRS("adminRichDip"); string adminEmail = memLayer.ML.CRS("adminRichDip");
// calcolo il responsabile
if (currUser.idxResp > 0)
{
string mailResp = emailResp(currUser.idxResp);
if (!string.IsNullOrEmpty(mailResp) && !adminEmail.Contains(mailResp))
{
adminEmail += $",{mailResp}";
}
}
string subjMess = $"Aggiornamento richiesta n.{IdxRegRich}"; string subjMess = $"Aggiornamento richiesta n.{IdxRegRich}";
DateTime adesso = DateTime.Now; DateTime adesso = DateTime.Now;
StringBuilder sbMain = new StringBuilder(); StringBuilder sbMain = new StringBuilder();
@@ -314,7 +332,7 @@ namespace GPW_Admin.WebUserControls
// invio email! // invio email!
gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess); gestEmail.geAuth.mandaEmail(fromEmail, destEmail, subjMess, bodyMess);
// ora sistemo x admin // ora sistemo x admin
var adminList = adminRichDip.Split(','); var adminList = adminEmail.Split(',');
string urlRedir = memLayer.ML.CRS("urlRedirRich"); string urlRedir = memLayer.ML.CRS("urlRedirRich");
bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione"; bodyMess += $"<hr/><br/>Cliccare sul <a href=\"{urlRedir}\">seguente link</a> per accedere alla pagina di gestione";
foreach (var dest in adminList) foreach (var dest in adminList)
@@ -0,0 +1,68 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_gestTagFasi.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_gestTagFasi" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<div class="row small">
<div class="col-12">
<asp:GridView runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="CodTagFase" DataSourceID="ods" CssClass="table table-striped table-sm table-bordered small" ID="grView" OnDataBound="grView_DataBound" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<EditRowStyle CssClass="table-primary" />
<SelectedRowStyle CssClass="table-info" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:LinkButton ID="lbtReset" runat="server" CssClass="btn btn-sm btn-info" ToolTip='<%# traduci("Reset") %>' CausesValidation="False" OnClick="btnReset_Click" Visible="true"><i class="fa fa-refresh" aria-hidden="true"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<div class="text-nowrap">
<asp:LinkButton runat="server" ID="lbtSelect" CssClass="btn btn-sm btn-info" CausesValidation="False" CommandName="Select" ToolTip='<%# traduci("Select") %>'><i class="fa fa-search" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtEdit" CssClass="btn btn-sm btn-primary" CausesValidation="False" CommandName="Edit" ToolTip='<%# traduci("Edit") %>' Visible='<%# chkLicOk %>'><i class="fa fa-edit" aria-hidden="true"></i></asp:LinkButton>
</div>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton runat="server" ID="lbtUpdate" CssClass="btn btn-sm btn-success" CausesValidation="False" CommandName="Update" ToolTip='<%# traduci("Update") %>'><i class="fa fa-check" aria-hidden="true"></i></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtCancel" CssClass="btn btn-sm btn-warning" CausesValidation="False" CommandName="Cancel" ToolTip='<%# traduci("Cancel") %>'><i class="fa fa-ban" aria-hidden="true"></i></asp:LinkButton>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
</asp:TemplateField>
<asp:BoundField DataField="CodTagFase" HeaderText="CodTagFase" SortExpression="CodTagFase" />
<asp:BoundField DataField="CodGruppo" HeaderText="CodGruppo" SortExpression="CodGruppo" />
<asp:BoundField DataField="Descrizione" HeaderText="Descrizione" SortExpression="Descrizione" />
<asp:CheckBoxField DataField="Enabled" HeaderText="Enabled" SortExpression="Enabled" />
<asp:BoundField DataField="NumFasi" HeaderText="NumFasi" SortExpression="NumFasi" ReadOnly="true" />
<asp:TemplateField>
<HeaderTemplate>
<asp:LinkButton runat="server" ID="lbt" CssClass="btn btn-sm btn-success" OnClick="btnNew_Click" ToolTip='<%# traduci("New") %>' Visible='<%# chkLicOk %>'><i class="fa fa-plus" aria-hidden="true"></i></asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbtDelete" CssClass="btn btn-sm btn-danger" CausesValidation="False" CommandArgument='<%# Eval("CodTagFase") %>' CommandName="Delete" ToolTip='<%# traduci("Delete") %>' Visible='<%# Eval("NumFasi").ToString() == "0" %>'><i class="fa fa-trash" aria-hidden="true"></i></asp:LinkButton>
<asp:ConfirmButtonExtender ID="cbeDelete" runat="server" ConfirmText='<%# traduci("confermaDel")%>' TargetControlID="lbtDelete"></asp:ConfirmButtonExtender>
</ItemTemplate>
<EditItemTemplate>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource runat="server" ID="ods" OldValuesParameterFormatString="Original_{0}" SelectMethod="GetData" TypeName="GPW_data.DS_ApplicazioneTableAdapters.AnagTagFasiTableAdapter" OnUpdating="ods_Updating" DeleteMethod="deleteQuery" InsertMethod="insertQuery" UpdateMethod="updateQuery">
<DeleteParameters>
<asp:Parameter Name="Original_CodTagFase" Type="String"></asp:Parameter>
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="CodTagFase" Type="String"></asp:Parameter>
<asp:Parameter Name="Descrizione" Type="String"></asp:Parameter>
<asp:Parameter Name="Enabled" Type="Boolean"></asp:Parameter>
<asp:Parameter Name="CodGruppo" Type="String"></asp:Parameter>
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="CodTagFase" Type="String"></asp:Parameter>
<asp:Parameter Name="Descrizione" Type="String"></asp:Parameter>
<asp:Parameter Name="Enabled" Type="Boolean"></asp:Parameter>
<asp:Parameter Name="CodGruppo" Type="String"></asp:Parameter>
<asp:Parameter Name="Original_CodTagFase" Type="String"></asp:Parameter>
</UpdateParameters>
</asp:ObjectDataSource>
<asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" />
</div>
</div>
@@ -0,0 +1,156 @@
using GPW_data;
using SteamWare;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace GPW_Admin.WebUserControls
{
public partial class cmp_gestTagFasi : BaseUserControl
{
#region Public Methods
public void doUpdate()
{
grView.PageSize = utils.pageSize;
grView.DataBind();
}
/// <summary>
/// resetta la selezione dei valori in caso di modifiche su altri controlli
/// </summary>
public void resetSelezione()
{
grView.SelectedIndex = -1;
grView.DataBind();
raiseReset();
}
#endregion Public Methods
#region Protected Methods
/// <summary>
/// gestione evento richiesta nuovo valore (mostra footer, ...)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
DataProxy.DP.taATF.insertQuery("NEW TAG", "Descrizione", true, "");
resetSelezione();
}
/// <summary>
/// reset della selezione
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnReset_Click(object sender, EventArgs e)
{
resetSelezione();
}
/// <summary>
/// elenco colonne del datagrid
/// </summary>
/// <returns></returns>
protected DataColumnCollection colonneObj()
{
DataColumnCollection colonne = null;
using (
DS_Applicazione.AnagClientiDataTable tabella = new DS_Applicazione.AnagClientiDataTable())
{
colonne = tabella.Columns;
}
return colonne;
}
/// <summary>
/// traduce gli header delle colonne
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void grView_DataBound(object sender, EventArgs e)
{
if (grView.Rows.Count > 0)
{
LinkButton lb;
// aggiorno gli headers
foreach (TableCell cella in grView.HeaderRow.Cells)
{
try
{
lb = (LinkButton)cella.Controls[0];
lb.Text = traduci(lb.Text);
}
catch
{ }
}
int totRecord = grView.Rows.Count + grView.PageSize * (grView.PageCount - 1);
lblNumRec.Text = string.Format("{0} records of ~ {1}", grView.Rows.Count, totRecord);
}
else
{
lblNumRec.Text = "";
}
}
protected void grView_SelectedIndexChanged(object sender, EventArgs e)
{
raiseEvent();
}
/// <summary>
/// annulla inserimento nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblCanc_click(object sender, EventArgs e)
{
// annullo inserimento: nascondo footer, bind controlli...
grView.FooterRow.Visible = false;
}
/// <summary>
/// inserisce nuovo valore da footer
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lblIns_click(object sender, EventArgs e)
{
// click su inserimento, chiamo il metodo insert dell'ObjectDataSource
ods.Insert();
}
/// <summary>
/// check licenze in fase di update...
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
if (!licenzeGPW.checkLicenze)
{
if (e != null)
{
// annullo insert se licenze sforate...
e.Cancel = true;
grView.EditIndex = -1;
grView.DataBind();
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
grView.PageSize = utils.pageSize;
}
#endregion Protected Methods
}
}
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GPW_Admin.WebUserControls
{
public partial class cmp_gestTagFasi
{
/// <summary>
/// grView control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.GridView grView;
/// <summary>
/// ods control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource ods;
/// <summary>
/// lblNumRec control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblNumRec;
}
}
@@ -0,0 +1,21 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_groupAssignClone.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_groupAssignClone" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<div class="input-group mb-3" runat="server" id="divClone">
<asp:Label runat="server" ID="lblClona" CssClass="input-group-text">Clona</asp:Label>
<asp:DropDownList runat="server" ID="ddlFrom" class="form-select" DataSourceID="odsFrom" DataTextField="label" DataValueField="value"></asp:DropDownList>
<asp:ObjectDataSource ID="odsFrom" runat="server" SelectMethod="getByConditio" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter" FilterExpression=" value > 0 ">
<SelectParameters>
<asp:Parameter Type="Boolean" Name="Conditio" DefaultValue="true" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:LinkButton runat="server" ID="lbtClona" CssClass="btn btn-success" OnClick="lbtClona_Click"><i class="fa fa-angle-double-right px-3" aria-hidden="true" title="Clona Assegnazioni"></i></asp:LinkButton>
<asp:ConfirmButtonExtender ID="cbeClone" runat="server" ConfirmText='<%# traduci("confirmClone")%>' TargetControlID="lbtClona"></asp:ConfirmButtonExtender>
<asp:DropDownList runat="server" ID="ddlTo" class="form-select" DataSourceID="odsTo" DataTextField="label" DataValueField="value"></asp:DropDownList>
<asp:ObjectDataSource ID="odsTo" runat="server" SelectMethod="getByConditio" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter" FilterExpression=" value > 0 ">
<SelectParameters>
<asp:Parameter Type="Boolean" Name="Conditio" DefaultValue="false" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
@@ -0,0 +1,59 @@
using GPW_data;
using System;
namespace GPW_Admin.WebUserControls
{
public partial class cmp_groupAssignClone : BaseUserControl
{
#region Protected Properties
protected int idxDipFrom
{
get
{
int answ = 0;
int.TryParse(ddlFrom.SelectedValue, out answ);
return answ;
}
}
protected int idxDipTo
{
get
{
int answ = 0;
int.TryParse(ddlTo.SelectedValue, out answ);
return answ;
}
}
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// Clona assegnazioni dip FROM a dipendente TO
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtClona_Click(object sender, EventArgs e)
{
// eseguo cloning assegnazioni dip a nuovo (deve essere attivo)
if (idxDipFrom > 0 && idxDipTo > 0)
{
DataProxy.DP.taDip2Gruppi.cloneDip(idxDipFrom, idxDipTo);
}
raiseAddNew();
}
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
cbeClone.DataBind();
}
}
#endregion Protected Methods
}
}
@@ -0,0 +1,89 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace GPW_Admin.WebUserControls
{
public partial class cmp_groupAssignClone
{
/// <summary>
/// divClone control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl divClone;
/// <summary>
/// lblClona control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblClona;
/// <summary>
/// ddlFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlFrom;
/// <summary>
/// odsFrom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsFrom;
/// <summary>
/// lbtClona control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton lbtClona;
/// <summary>
/// cbeClone control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.ConfirmButtonExtender cbeClone;
/// <summary>
/// ddlTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList ddlTo;
/// <summary>
/// odsTo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsTo;
}
}
@@ -33,7 +33,7 @@
}); });
</script> </script>
<div runat="server" id="divGroup" class='<%# controlStyle %>'> <div runat="server" id="divGroup" class='<%# controlStyle %>'>
<asp:DropDownList ID="ddlSelPeriodo" runat="server" AutoPostBack="True" class="input-group-text" OnSelectedIndexChanged="ddlSelPeriodo_SelectedIndexChanged" DataSourceID="ods_ddlSelPeriodo" DataTextField="label" DataValueField="value"> <asp:DropDownList ID="ddlSelPeriodo" runat="server" AutoPostBack="True" class="form-select-sm" OnSelectedIndexChanged="ddlSelPeriodo_SelectedIndexChanged" DataSourceID="ods_ddlSelPeriodo" DataTextField="label" DataValueField="value">
</asp:DropDownList> </asp:DropDownList>
<asp:ObjectDataSource ID="ods_ddlSelPeriodo" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByTableField" TypeName="GPW_Data.DS_UtilityTableAdapters.v_selListValTableAdapter"> <asp:ObjectDataSource ID="ods_ddlSelPeriodo" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByTableField" TypeName="GPW_Data.DS_UtilityTableAdapters.v_selListValTableAdapter">
<SelectParameters> <SelectParameters>
@@ -1,7 +1,7 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_selettoreMesi.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_selettoreMesi" %> <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="cmp_selettoreMesi.ascx.cs" Inherits="GPW_Admin.WebUserControls.cmp_selettoreMesi" %>
<div runat="server" id="divGroup" class='<%# controlStyle %>'> <div runat="server" id="divGroup" class='<%# controlStyle %>'>
<asp:DropDownList ID="ddlSelPeriodo" runat="server" AutoPostBack="True" class="input-group-text text-left" OnSelectedIndexChanged="ddlSelPeriodo_SelectedIndexChanged" DataSourceID="ods_ddlSelPeriodo" DataTextField="label" DataValueField="value"> <asp:DropDownList ID="ddlSelPeriodo" runat="server" AutoPostBack="True" class="form-select-sm text-start" OnSelectedIndexChanged="ddlSelPeriodo_SelectedIndexChanged" DataSourceID="ods_ddlSelPeriodo" DataTextField="label" DataValueField="value">
</asp:DropDownList> </asp:DropDownList>
<asp:ObjectDataSource ID="ods_ddlSelPeriodo" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByTableField" TypeName="GPW_Data.DS_UtilityTableAdapters.v_selListValTableAdapter"> <asp:ObjectDataSource ID="ods_ddlSelPeriodo" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByTableField" TypeName="GPW_Data.DS_UtilityTableAdapters.v_selListValTableAdapter">
<SelectParameters> <SelectParameters>
@@ -107,9 +107,14 @@ namespace GPW_Admin.WebUserControls
string baseUrl = $"{memLayer.ML.CRS("UrlQRCodeGen")}/HOME/QR_site/{memLayer.ML.CRS("UrlQuery")}"; string baseUrl = $"{memLayer.ML.CRS("UrlQRCodeGen")}/HOME/QR_site/{memLayer.ML.CRS("UrlQuery")}";
string urlEncoded = memLayer.ML.CRS(urlName) + HttpUtility.UrlEncode("jumper?idxDipendente={0}&UserAuthkey={1}"); string urlEncoded = memLayer.ML.CRS(urlName) + HttpUtility.UrlEncode("jumper?idxDipendente={0}&UserAuthkey={1}");
#if false
if (linkCore)
{
urlEncoded = memLayer.ML.CRS(urlName) + HttpUtility.UrlEncode("jumper?idxDipendente={0}&authKey={1}");
}
//string rawUrl = memLayer.ML.CRS(urlName) + "jumper?idxDipendente={0}&UserAuthkey={1}"; //string rawUrl = memLayer.ML.CRS(urlName) + "jumper?idxDipendente={0}&UserAuthkey={1}";
//string urlEncoded = HttpUtility.UrlEncode(rawUrl); //string urlEncoded = HttpUtility.UrlEncode(rawUrl);
#endif
qrPayload currPayload = new qrPayload() qrPayload currPayload = new qrPayload()
{ {
@@ -95,11 +95,11 @@
<asp:Label ID="lblcodOrario" runat="server" Text='<%# Eval("codOrario") %>' /> <asp:Label ID="lblcodOrario" runat="server" Text='<%# Eval("codOrario") %>' />
</ItemTemplate> </ItemTemplate>
<EditItemTemplate> <EditItemTemplate>
<asp:DropDownList runat="server" ID="dlCodOrario" SelectedValue='<%# Bind("codOrario") %>' DataSourceID="odsOrario" DataTextField="label" <asp:DropDownList runat="server" ID="dlCodOrario" CssClass="form-select-sm" SelectedValue='<%# Bind("codOrario") %>' DataSourceID="odsOrario" DataTextField="label"
DataValueField="value" /> DataValueField="value" />
</EditItemTemplate> </EditItemTemplate>
<FooterTemplate> <FooterTemplate>
<asp:DropDownList runat="server" ID="dlCodOrario" SelectedValue='<%# Bind("codOrario") %>' DataSourceID="odsOrario" DataTextField="label" <asp:DropDownList runat="server" ID="dlCodOrario" CssClass="form-select-sm" SelectedValue='<%# Bind("codOrario") %>' DataSourceID="odsOrario" DataTextField="label"
DataValueField="value" /> DataValueField="value" />
</FooterTemplate> </FooterTemplate>
</asp:TemplateField> </asp:TemplateField>
@@ -227,12 +227,10 @@
<asp:Label ID="lblgruppo" runat="server" Text='<%# Eval("gruppo") %>' /></b> <asp:Label ID="lblgruppo" runat="server" Text='<%# Eval("gruppo") %>' /></b>
</ItemTemplate> </ItemTemplate>
<EditItemTemplate> <EditItemTemplate>
<asp:DropDownList runat="server" ID="dlgruppo" SelectedValue='<%# Bind("gruppo") %>' DataSourceID="odsGruppi" DataTextField="label" <asp:DropDownList runat="server" ID="dlgruppo" CssClass="form-select-sm" SelectedValue='<%# Bind("gruppo") %>' DataSourceID="odsGruppi" DataTextField="label" DataValueField="value" Width="150" />
DataValueField="value" />
</EditItemTemplate> </EditItemTemplate>
<FooterTemplate> <FooterTemplate>
<asp:DropDownList runat="server" ID="dlgruppo" SelectedValue='<%# Bind("gruppo") %>' DataSourceID="odsGruppi" DataTextField="label" <asp:DropDownList runat="server" ID="dlgruppo" CssClass="form-select-sm" SelectedValue='<%# Bind("gruppo") %>' DataSourceID="odsGruppi" DataTextField="label" DataValueField="value" Width="150" />
DataValueField="value" />
</FooterTemplate> </FooterTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" HeaderText="StatoLicenza" SortExpression="attivo"> <asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" HeaderText="StatoLicenza" SortExpression="attivo">
@@ -271,6 +269,17 @@
<asp:CheckBox ID="chkattivo" runat="server" Checked='<%# Bind("attivo") %>' Enabled="false" /> <asp:CheckBox ID="chkattivo" runat="server" Checked='<%# Bind("attivo") %>' Enabled="false" />
</FooterTemplate> </FooterTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" HeaderText="Responsabile" SortExpression="idxDesp">
<ItemTemplate>
<asp:DropDownList runat="server" ID="dlidxResp" DataSourceID="odsDip" CssClass="form-select-sm" SelectedValue='<%# Bind("idxResp") %>' DataValueField="value" DataTextField="label" Enabled="false"></asp:DropDownList>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" ID="dlidxResp" DataSourceID="odsDip" CssClass="form-select-sm" SelectedValue='<%# Bind("idxResp") %>' DataValueField="value" DataTextField="label"></asp:DropDownList>
</EditItemTemplate>
<FooterTemplate>
<asp:DropDownList runat="server" ID="dlidxResp" DataSourceID="odsDip" CssClass="form-select-sm" SelectedValue='<%# Bind("idxResp") %>' DataValueField="value" DataTextField="label"></asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False"> <asp:TemplateField ShowHeader="False">
<HeaderTemplate> <HeaderTemplate>
<asp:LinkButton runat="server" ID="lbtNew" CssClass="btn btn-sm btn-success" OnClick="btnNew_Click" ToolTip='<%# traduci("New") %>' Visible='<%# chkLicOk %>'><i class="fa fa-plus" aria-hidden="true"></i></asp:LinkButton> <asp:LinkButton runat="server" ID="lbtNew" CssClass="btn btn-sm btn-success" OnClick="btnNew_Click" ToolTip='<%# traduci("New") %>' Visible='<%# chkLicOk %>'><i class="fa fa-plus" aria-hidden="true"></i></asp:LinkButton>
@@ -285,7 +294,7 @@
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>
</asp:GridView> </asp:GridView>
<asp:ObjectDataSource ID="ods" runat="server" OnInserting="recuperaFooter" DeleteMethod="deleteQuery" InsertMethod="insertQuery" OldValuesParameterFormatString="original_{0}" SelectMethod="getAttivi" TypeName="GPW_data.DS_ApplicazioneTableAdapters.DipendentiTableAdapter" UpdateMethod="updateQuery" FilterExpression=" (Cognome like '%{0}%') OR (Nome like '%{0}%') OR (CF like '%{0}%') OR (matricola like '%{0}%') OR (email like '%{0}%') " OnUpdating="ods_Updating" OnDeleting="ods_Deleting"> <asp:ObjectDataSource ID="ods" runat="server" OnInserting="recuperaFooter" DeleteMethod="deleteQuery" InsertMethod="insertQuery" OldValuesParameterFormatString="Original_{0}" SelectMethod="getAttivi" TypeName="GPW_data.DS_ApplicazioneTableAdapters.DipendentiTableAdapter" UpdateMethod="updateQuery" FilterExpression=" (Cognome like '%{0}%') OR (Nome like '%{0}%') OR (CF like '%{0}%') OR (matricola like '%{0}%') OR (email like '%{0}%') " OnUpdating="ods_Updating" OnDeleting="ods_Deleting">
<FilterParameters> <FilterParameters>
<asp:SessionParameter SessionField="valoreSearch" Type="String" /> <asp:SessionParameter SessionField="valoreSearch" Type="String" />
</FilterParameters> </FilterParameters>
@@ -309,6 +318,7 @@
<asp:Parameter Name="gruppo" Type="String" /> <asp:Parameter Name="gruppo" Type="String" />
<asp:Parameter Name="authKey" Type="String" /> <asp:Parameter Name="authKey" Type="String" />
<asp:Parameter Name="attivo" Type="Boolean" DefaultValue="false" /> <asp:Parameter Name="attivo" Type="Boolean" DefaultValue="false" />
<asp:Parameter Name="idxResp" Type="Int32" />
</InsertParameters> </InsertParameters>
<SelectParameters> <SelectParameters>
<asp:ControlParameter ControlID="chkshowAll" DefaultValue="false" Name="showAll" PropertyName="Checked" Type="Boolean" /> <asp:ControlParameter ControlID="chkshowAll" DefaultValue="false" Name="showAll" PropertyName="Checked" Type="Boolean" />
@@ -331,9 +341,15 @@
<asp:Parameter Name="gruppo" Type="String" /> <asp:Parameter Name="gruppo" Type="String" />
<asp:Parameter Name="dataAssunzione" Type="DateTime" /> <asp:Parameter Name="dataAssunzione" Type="DateTime" />
<asp:Parameter Name="dataCessazione" Type="DateTime" /> <asp:Parameter Name="dataCessazione" Type="DateTime" />
<asp:Parameter Name="idxResp" Type="Int32" />
<asp:Parameter Name="Original_idxDipendente" Type="Int32" /> <asp:Parameter Name="Original_idxDipendente" Type="Int32" />
</UpdateParameters> </UpdateParameters>
</asp:ObjectDataSource> </asp:ObjectDataSource>
<asp:ObjectDataSource ID="odsDip" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByRuolo" TypeName="GPW_data.DS_UtilityTableAdapters.v_selDipendentiTableAdapter">
<SelectParameters>
<asp:Parameter Name="CodRuolo" Type="String" DefaultValue="Responsabile" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" /> <asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" />
</div> </div>
<asp:ObjectDataSource ID="odsOrario" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" <asp:ObjectDataSource ID="odsOrario" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
@@ -505,6 +505,15 @@ namespace GPW_Admin.WebUserControls
DateTime adesso = DateTime.Now; DateTime adesso = DateTime.Now;
string md5UserAuthKey = SteamCrypto.EncryptString($"{codCF}.{adesso:yyMMddHHmmss}", "AuthGPW"); string md5UserAuthKey = SteamCrypto.EncryptString($"{codCF}.{adesso:yyMMddHHmmss}", "AuthGPW");
e.InputParameters["authKey"] = $"{md5UserAuthKey}"; e.InputParameters["authKey"] = $"{md5UserAuthKey}";
// fix confersione dt
DateTime dtNasc = DateTime.Today;
try
{
dtNasc = DateTime.Parse($"{e.InputParameters["dataNascita"]}");
}
catch
{ }
e.InputParameters["dataNascita"] = $"{dtNasc:yyyy-MM-dd}";
} }
else else
{ {
@@ -95,6 +95,15 @@ namespace GPW_Admin.WebUserControls
/// </remarks> /// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource ods; protected global::System.Web.UI.WebControls.ObjectDataSource ods;
/// <summary>
/// odsDip control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ObjectDataSource odsDip;
/// <summary> /// <summary>
/// lblNumRec control. /// lblNumRec control.
/// </summary> /// </summary>
+54 -21
View File
@@ -11,12 +11,14 @@
<div class="col-2" runat="server" id="divReturn"> <div class="col-2" runat="server" id="divReturn">
<asp:HyperLink runat="server" ID="hlReturnProj" NavigateUrl="~/progetti" CssClass="btn w-100 btn-warning"><i class="fa fa-arrow-left" aria-hidden="true"></i> Progetti</asp:HyperLink> <asp:HyperLink runat="server" ID="hlReturnProj" NavigateUrl="~/progetti" CssClass="btn w-100 btn-warning"><i class="fa fa-arrow-left" aria-hidden="true"></i> Progetti</asp:HyperLink>
</div> </div>
<div class="col-4"> <div class="col-6">
<div class="d-flex">
<div>
<uc1:mod_filtro ID="filtroCli" runat="server" filterChekText="filtroCliente" comboWidth="150" changeCheckVisible="false" isChecked="true" /> <uc1:mod_filtro ID="filtroCli" runat="server" filterChekText="filtroCliente" comboWidth="150" changeCheckVisible="false" isChecked="true" />
<asp:ObjectDataSource ID="odsClienti" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" <asp:ObjectDataSource ID="odsClienti" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="GPW_data.DS_UtilityTableAdapters.v_selClientiTableAdapter"></asp:ObjectDataSource> TypeName="GPW_data.DS_UtilityTableAdapters.v_selClientiTableAdapter"></asp:ObjectDataSource>
</div> </div>
<div class="col-6"> <div>
<uc1:mod_filtro ID="filtroPrj" runat="server" filterChekText="filtroProgetto" comboWidth="200" changeCheckEnabled="false" changeCheckVisible="false" isChecked="true" /> <uc1:mod_filtro ID="filtroPrj" runat="server" filterChekText="filtroProgetto" comboWidth="200" changeCheckEnabled="false" changeCheckVisible="false" isChecked="true" />
<asp:ObjectDataSource ID="odsProj" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByConditio" <asp:ObjectDataSource ID="odsProj" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="getByConditio"
TypeName="GPW_data.DS_UtilityTableAdapters.v_selProgettiTableAdapter"> TypeName="GPW_data.DS_UtilityTableAdapters.v_selProgettiTableAdapter">
@@ -28,6 +30,15 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-4">
<div class="input-group">
<asp:DropDownList runat="server" ID="ddlTagFaseSet" class="form-select-sm" DataSourceID="odsTagFase" DataTextField="label" DataValueField="value"></asp:DropDownList>
<asp:LinkButton runat="server" ID="lbtForceSet" CssClass="btn btn-danger" OnClick="lbtForceSet_Click"><i class="fa fa-arrow-left" aria-hidden="true" ></i> Force SET All</asp:LinkButton>
<asp:ConfirmButtonExtender ID="cbeForceSet" runat="server" ConfirmText='<%# traduci("confermaForceSet")%>' TargetControlID="lbtForceSet"></asp:ConfirmButtonExtender>
</div>
</div>
</div>
</div>
<div class="card-body"> <div class="card-body">
<asp:GridView ID="grView" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="idxFase" DataSourceID="ods" CssClass="table table-sm table-striped textCondens table-bordered small" OnDataBound="grView_DataBound" OnSelectedIndexChanged="grView_SelectedIndexChanged"> <asp:GridView ID="grView" runat="server" AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="idxFase" DataSourceID="ods" CssClass="table table-sm table-striped textCondens table-bordered small" OnDataBound="grView_DataBound" OnSelectedIndexChanged="grView_SelectedIndexChanged">
<EditRowStyle CssClass="table-primary" /> <EditRowStyle CssClass="table-primary" />
@@ -61,7 +72,7 @@
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="nomeFase" SortExpression="nomeFase"> <asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="nomeFase" SortExpression="nomeFase">
<ItemTemplate> <ItemTemplate>
<div class="d-flex text-left"> <div class="d-flex text-start">
<div class="p-0"> <div class="p-0">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" /> <asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" />
</div> </div>
@@ -77,27 +88,40 @@
</div> </div>
</ItemTemplate> </ItemTemplate>
<EditItemTemplate> <EditItemTemplate>
<div class="divSx"> <div class="input-group input-group-sm">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" /> <span class="input-group-text">nome:</span>
</div> <asp:TextBox ID="txtnomeFase" CssClass="form-control" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" />
<div class="divSx"> <span class="input-group-text">desc:</span>
<asp:TextBox ID="txtnomeFase" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" /> <asp:TextBox ID="txtdescrizioneFase" CssClass="form-control" runat="server" Text='<%# Bind("descrizioneFase") %>' Width="20em" />
&nbsp;
<asp:TextBox ID="txtdescrizioneFase" runat="server" Text='<%# Bind("descrizioneFase") %>' Width="20em" />
</div> </div>
</EditItemTemplate> </EditItemTemplate>
<FooterTemplate> <FooterTemplate>
<div class="divSx"> <div class="input-group input-group-sm">
<asp:Image runat="server" ID="imgSpaz" Width='<%# widthByCod(Eval("codFase")) %>' ImageUrl="~/images/EmptyImg.png" /> <span class="input-group-text">nome:</span>
</div> <asp:TextBox ID="txtnomeFase" CssClass="form-control" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" />
<div class="divSx"> <span class="input-group-text">desc:</span>
<asp:TextBox ID="txtnomeFase" runat="server" Text='<%# Bind("nomeFase") %>' Width="20em" /> <asp:TextBox ID="txtdescrizioneFase" CssClass="form-control" runat="server" Text='<%# Bind("descrizioneFase") %>' Width="20em" />
&nbsp;
<asp:TextBox ID="txtdescrizioneFase" runat="server" Text='<%# Bind("descrizioneFase") %>' Width="20em" />
</div> </div>
</FooterTemplate> </FooterTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle> <ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" HeaderText="CodTagFase" SortExpression="CodTagFase">
<ItemTemplate>
<asp:Panel runat="server" ID="pnlTagFase" Width="14em" Visible='<%# Bind("enableTime") %>'>
<asp:DropDownList runat="server" ID="ddlTagFase" class="form-select-sm" DataSourceID="odsTagFase" DataTextField="label" DataValueField="value" Enabled="false" SelectedValue='<%# Bind("CodTagFase") %>'></asp:DropDownList>
</asp:Panel>
</ItemTemplate>
<EditItemTemplate>
<asp:Panel runat="server" ID="pnlTagFase" Width="14em">
<asp:DropDownList runat="server" ID="ddlTagFase" class="form-select-sm small" DataSourceID="odsTagFase" DataTextField="label" DataValueField="value" SelectedValue='<%# Bind("CodTagFase") %>'></asp:DropDownList>
</asp:Panel>
</EditItemTemplate>
<FooterTemplate>
<asp:Panel runat="server" ID="pnlTagFase" Width="14em">
<asp:DropDownList runat="server" ID="ddlTagFase" class="form-select-sm" DataSourceID="odsTagFase" DataTextField="label" DataValueField="value" SelectedValue='<%# Bind("CodTagFase") %>'></asp:DropDownList>
</asp:Panel>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="timeTrack" SortExpression="enableTime"> <asp:TemplateField HeaderText="timeTrack" SortExpression="enableTime">
<ItemTemplate> <ItemTemplate>
<ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22" <ajaxToolkit:ToggleButtonExtender ID="tglTime" runat="server" TargetControlID="chkenableTime" ImageWidth="22" ImageHeight="22"
@@ -149,11 +173,15 @@
</asp:Panel> </asp:Panel>
</ItemTemplate> </ItemTemplate>
<EditItemTemplate> <EditItemTemplate>
<asp:TextBox ID="txtbudgetTime" runat="server" Text='<%# Bind("budgetTime") %>' Width="3em" /> <div class="input-group input-group-sm">
<asp:TextBox ID="txtbudgetTime" runat="server" CssClass="form-control" Text='<%# Bind("budgetTime") %>' Width="6em" />
</div>
</EditItemTemplate> </EditItemTemplate>
<FooterTemplate> <FooterTemplate>
<asp:TextBox ID="txtbudgetTime" runat="server" Text='<%# Bind("budgetTime") %>' Width="3em" /> <div class="input-group input-group-sm">
<asp:TextBox ID="txtbudgetTime" runat="server" CssClass="form-control" Text='<%# Bind("budgetTime") %>' Width="6em" />
<asp:RequiredFieldValidator runat="server" ID="rfvBudgetTime" ControlToValidate="txtbudgetTime" CssClass="text-danger" ErrorMessage="!!!" /> <asp:RequiredFieldValidator runat="server" ID="rfvBudgetTime" ControlToValidate="txtbudgetTime" CssClass="text-danger" ErrorMessage="!!!" />
</div>
</FooterTemplate> </FooterTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="percOpen" SortExpression="percOpen" ItemStyle-HorizontalAlign="Center"> <asp:TemplateField HeaderText="percOpen" SortExpression="percOpen" ItemStyle-HorizontalAlign="Center">
@@ -161,11 +189,15 @@
<asp:Label ID="lblpercOpen" runat="server" Text='<%# Eval("percOpen","{0:P2}") %>' Visible='<%# Eval("IdxFaseAncest").ToString() == "0" %>' /> <asp:Label ID="lblpercOpen" runat="server" Text='<%# Eval("percOpen","{0:P2}") %>' Visible='<%# Eval("IdxFaseAncest").ToString() == "0" %>' />
</ItemTemplate> </ItemTemplate>
<EditItemTemplate> <EditItemTemplate>
<asp:TextBox ID="txtpercOpen" runat="server" Text='<%# Bind("percOpen") %>' Width="3em" Enabled='<%# Eval("IdxFaseAncest").ToString() == "0" %>' /> <div class="input-group input-group-sm">
<asp:TextBox ID="txtpercOpen" runat="server" CssClass="form-control" Text='<%# Bind("percOpen") %>' Width="3em" Enabled='<%# Eval("IdxFaseAncest").ToString() == "0" %>' />
</div>
</EditItemTemplate> </EditItemTemplate>
<FooterTemplate> <FooterTemplate>
<asp:TextBox ID="txtpercOpen" runat="server" Text='<%# Bind("percOpen") %>' Width="3em" /> <div class="input-group input-group-sm">
<asp:TextBox ID="txtpercOpen" runat="server" CssClass="form-control" Text='<%# Bind("percOpen") %>' Width="3em" />
<asp:RequiredFieldValidator runat="server" ID="rfvpercOpen" ControlToValidate="txtpercOpen" CssClass="text-danger" ErrorMessage="!!!" /> <asp:RequiredFieldValidator runat="server" ID="rfvpercOpen" ControlToValidate="txtpercOpen" CssClass="text-danger" ErrorMessage="!!!" />
</div>
</FooterTemplate> </FooterTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Attivo" SortExpression="Attivo" ItemStyle-HorizontalAlign="Center"> <asp:TemplateField HeaderText="Attivo" SortExpression="Attivo" ItemStyle-HorizontalAlign="Center">
@@ -243,6 +275,7 @@
<asp:Parameter Name="Original_idxFase" Type="Int32" /> <asp:Parameter Name="Original_idxFase" Type="Int32" />
</UpdateParameters> </UpdateParameters>
</asp:ObjectDataSource> </asp:ObjectDataSource>
<asp:ObjectDataSource ID="odsTagFase" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="GPW_data.DS_UtilityTableAdapters.v_selTagFasiTableAdapter"></asp:ObjectDataSource>
<asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" /> <asp:Label ID="lblNumRec" runat="server" CssClass="txtMini" />
<asp:Panel runat="server" ID="pnlDetRA"> <asp:Panel runat="server" ID="pnlDetRA">
<asp:Label runat="server" ID="lblDet" Text="---" /> <asp:Label runat="server" ID="lblDet" Text="---" />
@@ -283,6 +283,18 @@ namespace GPW_Admin.WebUserControls
resetSelezione(); resetSelezione();
} }
/// <summary>
/// Effettua mass update del CodTagFase x tutte le fasi di progetto
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtForceSet_Click(object sender, EventArgs e)
{
string codTagFase = ddlTagFaseSet.SelectedValue;
DataProxy.DP.taAF.updCodFaseByProj(idxProgetto, codTagFase);
resetSelezione();
}
/// <summary> /// <summary>
/// elenco colonne del datagrid /// elenco colonne del datagrid
/// </summary> /// </summary>

Some files were not shown because too many files have changed in this diff Show More